Способ и устройство для оптимизации кодирования/декодирования компенсационных смещений для набора восстановленных выборок изображения
Иллюстрации
Показать всеИзобретение относится к области кодирования и декодирования изображений. Техническим результатом является оптимизация кодирования и/или декодирования компенсационных смещений для набора восстановленных выборок изображения, чтобы обеспечивать улучшение в отношении эффективности кодирования видеокодека и/или сложности декодирования. Раскрыт способ определения по меньшей мере одного параметра адаптивного к выборке смещения при кодировании по меньшей мере части изображения, содержащего множество выборок, причем способ содержит определение по меньшей мере одного параметра адаптивного к выборке смещения, отличного от смещения, в качестве общего параметра как для первой, так и для второй компонент цветности декодированной выборки, при этом упомянутый по меньшей мере один параметр адаптивного к выборке смещения определяют на основе взаимозависимостей между по меньшей мере одной из первой и второй компонент цветности выборки изображения и по меньшей мере одной соответствующей компонентой соответствующей декодированной выборки. 6 н. и 12 з.п. ф-лы, 23 ил., 2 табл.
Реферат
Настоящее изобретение относится к способу и устройству для оптимизации кодирования и/или декодирования компенсационных смещений для набора восстановленных выборок изображения, чтобы повышать эффективность кодирования видеокодека и/или сложности декодирования. Изобретение дополнительно относится к способу и устройству для кодирования или декодирования последовательности цифровых изображений.
Изобретение может применяться в области техники обработки цифровых сигналов и, в частности, в области сжатия видео с использованием компенсации движения, чтобы уменьшать
пространственные и временные избыточности в видеопотоках.
Множество форматов сжатия видео, таких как, например, Н.263, Н.264, MPEG-1, MPEG-2, MPEG-4, SVC, используют дискретное косинусное преобразование (DCT) на основе блоков и компенсацию движения для того, чтобы удалять пространственные и временные избыточности. Они зачастую упоминаются в качестве прогнозирующих видеоформатов. Каждый кадр или изображение видеосигнала разделяется на слайсы, которые кодируются и могут декодироваться независимо. Слайс типично представляет собой прямоугольную часть кадра либо, если обобщать, часть кадра или весь кадр. Дополнительно, каждый слайс может быть разделен на макроблоки (MB), и каждый макроблок дополнительно разделяется на блоки, типично блоки по 64×64, 32×32, 16×16 или 8×8 пикселов.
В стандарте высокоэффективного кодирования видео (HEVC), могут использоваться блоки от 64×64 до 4×4. Сегментирование организуется согласно структуре в виде дерева квадрантов на основе наибольшей единицы кодирования (LCU). LCU соответствует, например, квадратному блоку 64×64. Если LCU должна быть разделена, флаг разбиения указывает, что LCU разбивается на 4 блока 32×32. Аналогичным образом, если какой-либо из этих 4 блоков должен разбиваться, флаг разбиения задается как "истина", и блок 32×32 разделяется на 4 блока 16×16 и т.д. Когда флаг разбиения задается как "ложь", текущий блок представляет собой единицу CU кодирования. CU имеет размер, равный 64×64, 32×32, 16×16 или 8×8 пикселов.
Предусмотрено два семейства режимов кодирования для кодирования блоков изображения: режимы кодирования на основе пространственного прогнозирования, называемые "внутренним прогнозированием", и режимы кодирования на основе временного прогнозирования (внешний, объединение, пропуск). В режимах пространственного и временного прогнозирования, остаток вычисляется посредством вычитания прогнозирования из исходного блока.
Внутренний блок, в общем, прогнозируется посредством процесса внутреннего прогнозирования из кодированных пикселов на причинной границе. При внутреннем прогнозировании кодируется направление прогнозирования.
Временное прогнозирование состоит в нахождении в опорном кадре, предыдущем или будущем кадре видеопоследовательности, части изображения или опорной области, которая является ближайшей к блоку, который должен быть кодирован. Этот этап типично известен в качестве оценки движения. Затем блок, который должен быть кодирован, прогнозируется с использованием опорной области на этапе, типично называемом "компенсацией движения", при этом разность между блоком, который должен быть кодирован, и опорной частью кодируется, вместе с элементом информации движения относительно вектора движения, который указывает опорную область для использования для компенсации движения. При временном прогнозировании кодируется по меньшей мере один вектор движения.
Чтобы дополнительно уменьшать затраты на кодирование информации движения, вместо непосредственного кодирования вектора движения, при условии, что движение является гомогенным, вектор движения может быть кодирован с точки зрения разности между вектором движения и предиктором вектора движения, типично вычисляемой из одного или более векторов движения блоков, окружающих блок, который должен быть кодирован.
В Н.264, например, векторы движения кодируются относительно среднего предиктора, вычисленного из векторов движения, расположенных в причинном окружении блока, который должен быть кодирован, например, из трех блоков, расположенных выше и слева от блока, который должен быть кодирован. Только разность, называемая "остаточным вектором движения", между средним предиктором и вектором движения текущего блока кодируется в потоке битов для того, чтобы уменьшать затраты на кодирование.
Кодирование с использованием остаточных векторов движения дает некоторую экономию скорости передачи битов, но требует того, чтобы декодер выполнял идентичное вычисление предиктора вектора движения, чтобы декодировать значение вектора движения блока, который должен быть декодирован.
Процессы кодирования и декодирования могут заключать в себе процесс декодирования кодированного изображения. Этот процесс типично выполняется на стороне кодера в целях будущей оценки движения, что позволяет кодеру и соответствующему декодеру иметь идентичные опорные кадры.
Чтобы восстанавливать кодированный кадр, остаток обратно квантуется и обратно преобразуется, чтобы предоставлять "декодированный" остаток в пиксельной области. Первое восстановление затем фильтруется посредством одного или нескольких видов процессов постфильтрации. Эти постфильтры применяются для восстановленного кадра на стороне кодера и декодера, чтобы идентичный опорный кадр использовался на обеих сторонах. Цель этой постфильтрации состоит в том, чтобы удалять артефакты сжатия и повышать качество изображений. Например, H.264/AVC использует фильтр удаления блочности. Этот фильтр может удалять артефакты блочности вследствие DCT-квантования остатка и блочной компенсации движения. В текущем HEVC-стандарте, используются 3 типа контурных фильтров: фильтр удаления блочности, адаптивное к выборке смещение (SAO) и адаптивный контурный фильтр (ALF).
Фиг. 1 является блок-схемой последовательности операций способа, иллюстрирующей этапы процесса контурной фильтрации в известной HEVC-реализации. На начальном этапе 101, кодер или декодер формирует восстановление полного кадра. Затем, на этапе 102 фильтр удаления блочности применяется для этого первого восстановления, чтобы формировать восстановление 103 с удаленной блочностью. Цель фильтра удаления блочности состоит в том, чтобы удалять артефакты блочности, сформированные посредством остаточного квантования и блочной компенсации движения или блочного внутреннего прогнозирования. Эти артефакты являются визуально важными на низких скоростях передачи битов. Фильтр удаления блочности работает с возможностью сглаживать границы блоков согласно характеристикам двух соседних блоков. Учитываются режим кодирования каждого блока, параметры квантования, используемые для остаточного кодирования, и соседние пиксельные разности на границе. Идентичный критерий/классификация применяется для всех кадров, и дополнительные данные не передаются. Фильтр удаления блочности повышает визуальное качество текущего кадра посредством удаления артефактов блочности, и он также улучшает оценку движения и компенсацию движения для последующих кадров. Фактически, высокие частоты артефакта блочности удаляются, и в силу этого данные высокие частоты не должны компенсироваться с помощью остатка текстуры следующих кадров.
После фильтра удаления блочности восстановление с удаленной блочностью фильтруется посредством контурного фильтра на основе адаптивного к выборке смещения (SAO) на этапе 104. Результирующий кадр 105 затем фильтруется с помощью адаптивного контурного фильтра (ALF) на этапе 106, чтобы формировать восстановленный кадр 107, который должен отображаться и использоваться в качестве опорного кадра для следующих внешних кадров.
Цель контурного SAO-фильтра и ALF состоит в том, чтобы улучшать восстановление кадра посредством отправки дополнительных данных, в отличие от фильтра удаления блочности, в котором информация не передается.
Принцип контурного SAO-фильтра состоит в том, чтобы классифицировать каждый пиксел на класс и суммировать идентичное значение смещения с соответствующим пиксельным значением каждого пиксела класса. Таким образом, одно смещение передается для каждого класса. Контурная SAO-фильтрация предоставляет два вида классификации для области кадра: краевое смещение и полосовое смещение. Классификация краевых смещений заключает в себе определение класса для каждого пиксела посредством сравнения его соответствующего пиксельного значения с пиксельными значениями двух соседних пикселов. Кроме того, два соседних пиксела зависят от параметра, который указывает направление 2 соседних пикселов. Эти направления составляют 0 градусов (горизонтальное направление), 45 градусов (диагональное направление), 90 градусов (вертикальное направление) и 135 градусов (второе диагональное направление). Направление, которое должно быть использовано, задается посредством SAO-параметра, называемого sao_type_idx в текущих технических спецификациях HEVC. Его значение типично варьируется от нуля до пяти, как показано в таблице 1 приложения. Sao_type_idx также используется для того, чтобы указывать, должна или нет выполняться SAO-фильтрация, и тип SAO-фильтрации.
Для иллюстрации, смещение, которое должно суммироваться с пиксельным значением С (или выборкой), может быть определено, для данного направления, согласно правилам, как указано в таблице 2 приложения, при этом Cn1 и Cn2 обозначают значение двух соседних пикселов или выборок (согласно данному направлению). Соответственно, когда значение С меньше двух значений Cn1 и Cn2, смещение, которое должно суммироваться с С, составляет +O1, когда оно меньше Cn1 или Cn2 и равно другому значению (Cn1 или Cn2), смещение, которое должно быть использовано, составляет +O2, когда оно превышает Cn1 или Cn2, и равно другому значению (Cn1 или Cn2), смещение, которое должно быть использовано, составляет -О3, а когда оно превышает Cn1 и Cn2, смещение, которое должно быть использовано, составляет -О4. Когда ни одно из этих условий не удовлетворяется, значение смещения не суммируется с текущим пиксельным значением С.
Следует отметить, что согласно режиму краевого смещения, только абсолютное значение каждого смещения кодируется в потоке битов, причем знак, который должен применяться, определяется в качестве функции от категории, которой принадлежит текущий пиксел. Следовательно, согласно таблице 2 приложения, положительное смещение ассоциировано с категориями 1 и 2, в то время как отрицательное смещение ассоциировано с категориями 3 и 4.
Второй тип классификации представляет собой классификацию полосовых смещений, которая зависит от пиксельного значения. Класс в полосовом SAO-смещении соответствует диапазону пиксельных значений. Таким образом, идентичное смещение добавляется во все пикселы, имеющие пиксельное значение в данном диапазоне пиксельных значений.
Чтобы обеспечивать большую адаптивность к контенту кадра, SAO-фильтрация применяется к нескольким областям кадра, которые разделяют текущий кадр на несколько пространственных областей. В настоящее время, области кадра соответствуют конечному номеру наибольшей единицы кодирования в HEVC. Следовательно, одна область кадра может фильтроваться или не фильтроваться посредством SAO, так что фильтруются только некоторые области кадра. Кроме того, когда активируется SAO, используется только одна SAO-классификация: краевое смещение или полосовое смещение, согласно связанным параметрам, передаваемым для каждой классификации. В завершение, для каждого концевого SAO-узла, передается SAO-классификация, а также ее параметры и смещения всех классов.
Изображение видеоданных, которые должны кодироваться, может предоставляться в качестве набора двумерных матриц (также известных как цветовые каналы) значений выборки, каждая запись которых представляет интенсивность цветового компонента, к примеру, показатель интенсивности яркости и интенсивности цветности от нейтрального полутонового цвета к синему или красному (YUV), либо показатель интенсивности компонентов красного, зеленого или синего света (RGB). YUV-модель задает цветовое пространство с точки зрения одного компонента сигнала (Y) яркости и двух компонентов цветности (UV). В общем, Y означает компонент сигнала яркости, a U и V - компоненты цветности (цвета) или сигнала цветности.
SAO-фильтрация типично применяется независимо для компонента сигнала яркости и для компонентов сигнала цветности U и V.
Известная реализация полосового SAO-смещения разбивает диапазон пиксельных значений на 32 предварительно заданных диапазона идентичного размера, как проиллюстрировано на фиг. 2. Минимальное значение диапазона пиксельных значений всегда равно нулю, а максимальное значение зависит от битовой глубины пиксельных значений согласно следующей взаимосвязи Max=2Bitdepth-1.
Разбиение полного диапазона пиксельных значений на 32 диапазона обеспечивает использование пяти битов для классификации каждого пиксела, обеспечивая возможность быстрой классификации. Соответственно, только 5 битов проверяются, чтобы классифицировать пиксел в одном из 32 классов или диапазонах полного диапазона. Это, в общем, выполняется посредством проверки пяти старших битов значений, кодированных для 8 битов.
Например, когда битовая глубина составляет 8 битов, максимальное возможное значение пиксела составляет 255. Таким образом, диапазон пиксельных значений составляет между 0 и 255. Для этой битовой глубины 8 битов каждый класс включает в себя диапазон из 8 пиксельных значений.
Целью полосовой SAO-фильтрации является фильтрация пикселов, принадлежащих группе из четырех последовательных классов или диапазонов, которая определяется посредством первого класса или полосы. Второе передается в потоке битов таким образом, что декодер может определять четыре последовательных класса или диапазона пикселов, которые должны быть фильтрованы. Параметр, представляющий эту позицию, упоминается как sao_band_position в текущих технических спецификациях HEVC.
Для иллюстрации, группа из четырех последовательных классов или диапазонов 201-204 пикселов, которые должны быть фильтрованы, представляется на фиг. 2 в качестве серой области. Как описано выше, эта группа может быть идентифицирована посредством ее позиции (например, sao_band_position). Согласно данному примеру, класс или диапазон 201 связан с пикселами, имеющими значения, содержащиеся между 64 и 71. Аналогично, классы или диапазоны 2 02-204 связаны с пикселами, имеющими значения, содержащиеся значения между 72 и 79, 80 и 8 7, 88 и 96, соответственно.
Фиг. 3 является блок-схемой последовательности операций, иллюстрирующей этапы способа для выбора смещений в кодере для текущей области 303 кадра (типично LCU-блока, соответствующего одному компоненту обработанного изображения). Область кадра содержит N пикселов. На начальном этапе 301 переменные Sumj и SumNbPiXj задаются равными значению нуль для каждого из четырех диапазонов; j обозначает текущее число диапазонов или классов. Sumj обозначает сумму разности между значением пикселов в диапазоне j и значением их соответствующих исходных пикселов. SumNbPiXj обозначает число пикселов в диапазоне j.
На этапе 302, счетная переменная i задается равной значению нуль. Затем, первый пиксел Pi области 303 кадра извлекается на этапе 304, и число J классов, соответствующее текущему пикселу Pi, получается на этапе 305. Затем, на этапе 306 выполняется тест, чтобы определять то, соответствует или нет число J классов текущего пиксела Pi значению "Н/д", как описано выше в отношении таблицы 2 приложения. Если число J классов текущего пиксела Pi соответствует значению "Н/д", значение счетной переменной i увеличивается на единицу, чтобы классифицировать последующие пикселы области 303 кадра. В противном случае, если число J классов текущего пиксела Pi не соответствует значению "Н/д", переменная SumNbPiXj, соответствующая текущему пикселу Pi, увеличивается на единицу, и разность между Pi и его исходным значением Piorg суммируется с Sumj на этапе 307.
На следующем этапе счетная переменная i увеличивается на единицу с тем, чтобы применять классификацию к другим пикселам области 303 кадра. На этапе 309 определяется то, все или нет N пикселов области 303 кадра классифицированы (т.е. i≥N); если да, Offsetj для каждого класса вычисляется на этапе 310, чтобы формировать таблицу 311 смещений, представляющую смещение для каждого класса j в качестве окончательного результата алгоритма выбора смещения. Это смещение вычисляется в качестве среднего разности между пиксельными значениями пикселов класса j и их соответствующими исходными пиксельными значениями. Offsetj для класса j задается посредством следующего уравнения:
Вычисленное смещение Offsetj может рассматриваться как оптимальное смещение с точки зрения искажения. Оно упоминается как Ooptj далее. Из этого смещения, можно определять улучшенное значение 0_RDj смещения согласно критерию искажения в зависимости от скорости передачи.
Фиг. 4 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения улучшенного смещения согласно критерию искажения в зависимости от скорости передачи. На начальном этапе 401, значение Jj искажения в зависимости от скорости передачи текущего числа диапазонов или классов инициализируется равным предварительно определенному максимальному возможному значению (MAX_VALUE).
Затем, на этапе 402 начинается контур для того, чтобы инструктировать смещению Oj варьироваться от Ooptj до нуля. Если значение Ooptj является отрицательным, переменная Oj увеличивается на единицу до тех пор, пока она не достигнет нуля, а если значение Ooptj является положительным, переменная Oj уменьшается на единицу до тех пор, пока она не достигнет нуля.
На этапе 403, вычисляется функция затрат на искажение в зависимости от скорости передачи, связанная с переменной Oj, обозначаемой J(Oj), например, согласно следующей формуле:
λ является параметром Лагранжа, и R(Oj) является функцией, которая предоставляет число битов, необходимое для кодового слова, ассоциированного с Oj. Часть формулы, соответствующая SumNbPixj×Oj×Oj-Sumj×Oj×2, относится к улучшению с точки зрения искажения, заданному посредством смещения Oj.
На этапе 404, значения J(Oj) и Jj сравниваются между собой. Если значение J(Oj) меньше значения Jj, то Jj задается равным значению J(Oj), a 0_RDj задается равным значению Oj.
На этапе 405 определяется то, все или нет возможные значения смещения Oj обработаны (т.е. Oj=0). Если смещение Oj равно нулю, контур завершается, и идентифицируется улучшенное значение (0_RDj) смещения для класса j. В противном случае, контур продолжается для следующего значения Oj.
Следует отметить, что алгоритм, описанный в отношении фиг. 3, может быть использован для того, чтобы определять позицию первого класса или диапазона (sao_band_position) согласно типу классификации полосовых смещений. С этой целью, индекс j представляет значение интервала [0, 32] (вместо [1, 4]). Другими словами, значение 4 заменяется на значение 32 в модулях 301, 310 и 311 по фиг. 3.
Более конкретно, разность Sumj между значением текущего пиксела и его исходным значением Porgi может быть вычислена для каждого из 32 классов, представленных на фиг. 2, другими словами для каждого диапазона j (j принадлежит интервалу [0, 32]).
Затем, улучшенное смещение 0_RDj, с точки зрения искажения в зависимости от скорости передачи, может быть вычислено для 32 классов согласно алгоритму, аналогичному алгоритму, описанному в отношении фиг. 4.
Далее может определяться позиция первого класса или диапазона.
Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения полосовой SAO-позиции для полосового SAO-смещения HEVC. Поскольку эти этапы выполняются после этапов, описанных в отношении фиг. 4, значение искажения в зависимости от скорости передачи, обозначаемое Jj, уже вычислено для каждого класса j.
На начальном этапе 501 значение J искажения в зависимости от скорости передачи инициализируется равным предварительно определенному максимальному возможному значению (MAX_VALUE). Затем, на этапе 502 начинается контур для того, чтобы инструктировать индексу i варьироваться от нуля до 27 согласно 28 возможным позициям первого класса группы из четырех последовательных классов.
На этапе 503, переменная J'j, соответствующая значению искажения в зависимости от скорости передачи текущей полосы, другими словами полосы, содержащей четыре последовательных класса из класса, имеющего индекс i, инициализируется равной нулю. Затем, на этапе 504 начинается контур для того, чтобы инструктировать индексу j варьироваться от I до i+3 согласно 4 классам текущей полосы.
Затем, на этапе 505, значение переменной J'i увеличивается на значение искажения в зависимости от скорости передачи класса, имеющего индекс j (Jj). Этот этап повторяется для четырех классов текущей полосы, другими словами, до тех пор, пока индекс j не достигнет i+3 (этап 506). На этапе 507, выполняется тест, чтобы определять то, меньше или нет значение J'j искажения в зависимости от скорости передачи текущей полосы значения J искажения в зависимости от скорости передачи. Если значение J'j искажения в зависимости от скорости передачи текущей полосы меньше значения J искажения в зависимости от скорости передачи, значение J искажения в зависимости от скорости передачи задается равным значению искажения J'j в зависимости от скорости передачи текущей полосы, и значение полосовой позиции, обозначаемое sao_band_position, задается равным значению индекса i.
Эти этапы повторяются для 28 возможных позиций первого класса группы из четырех последовательных классов (этап 508), чтобы определять полосовую позицию, которая должна быть использована.
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей этапы способа для фильтрации области кадра, типично LCU-блока, соответствующего одному компоненту обработанного изображения, согласно контурному SAO-фильтру.
Такой алгоритм, в общем, реализуется в декодере для того, чтобы декодировать кадры, и в кодере для того, чтобы формировать опорные кадры, которые используются для оценки и компенсации движения следующих кадров.
На начальном этапе 601, получаются параметры SAO-фильтрации, например, из принимаемого потока битов. Для данной области кадра эти параметры типично содержат четыре смещения, которые могут быть сохранены в таблице 603, и параметр sao_type_idx. В зависимости от последнего, эти параметры дополнительно могут содержать полосовую SAO-позицию. Для иллюстрации, если полученный параметр типа sao_type_idx равен пяти, то получается соответствующий параметр типа sao_band_position (602). Могут быть получаться другие параметры, к примеру, параметры, позволяющие определять значение SAO-параметра данной области кадра в качестве функции от значения соответствующего параметра области предыдущего кадра. Следует отметить, что данное значение данного SAO-параметра, к примеру, значение нуль для параметра sao_type_idx может указывать, что SAO-фильтрация не должна применяться.
На этапе 604, счетная переменная j задается равной значению нуль. Затем, первый пиксел Pi области 6 05 кадра, содержащей N пикселов, извлекается на этапе 606 и классифицируется на этапе 6 07 согласно классификации краевых смещений или классификации полосовых смещений, как описано выше.
На этапе 608 выполняется тест, чтобы определять то, принадлежит или нет пиксел Pi классу пикселов, которые должны быть фильтрованы. Если пиксел Pi принадлежит классу пикселов, которые должны быть фильтрованы, его связанное число j классов идентифицируется, и его связанное значение Offsetj смещения получается на этапе 610 из таблицы смещений 603. Затем, на этапе 611, Offsetj суммируется со значением пиксела Pi, чтобы формировать новое пиксельное значение, упоминаемое как P'i (612). На этапе 613, пиксел P'i заменяет пиксел Pi в области 616 обработанного кадра. В противном случае, если пиксел Pi не принадлежит классу пикселов, которые должны быть фильтрованы, пиксел Pi 609 остается неизменным в области кадра на этапе 613.
Затем, после обработки пиксела Pi счетная переменная i увеличивается на единицу на этапе 614 с тем, чтобы применять фильтр аналогично следующему пикселу области 6 05 текущего кадра.
На этапе 615 определяется то, все или нет N пикселов области 605 текущего кадра обработаны (i≥N). Если да, область 616 обработанного кадра восстанавливается и может добавляться в восстановленный SAO-кадр, как описано выше в отношении фиг. 1 (ссылка с номером 105).
Недостаток известного процесса для выбора и передачи компенсаций состоит в том, что большое число параметров должно быть передано из кодера в декодер и сохранено в SAO-буфере. Кроме того, процесс, выполняемый посредством декодера для декодирования и обработки этих параметров, является сложным.
Настоящее изобретение разработано, чтобы разрешать одну или более вышеприведенных проблем.
Согласно первому аспекту настоящего изобретения, предусмотрен способ кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- кодирование первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- декодирование по меньшей мере одной закодированной выборки;
- вычисление по меньшей мере одного параметра фильтрации в качестве функции разности между по меньшей мере одним компонентом по меньшей мере одной выборки изображения и по меньшей мере одним соответствующим компонентом по меньшей мере одной соответствующей декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в контурном фильтре в качестве общего параметра фильтрации для фильтрации и первого и второго компонентов декодированной выборки.
Фильтрация представляет собой контурную фильтрацию на основе адаптивного к выборке смещения.
Первый и второй компоненты представляют собой соответственно компоненты сигнала цветности U и V.
Указанный или один упомянутый общий параметр фильтрации представляет собой параметр типа адаптивного к выборке смещения, указывающий, используется ли контурная фильтрация на основе краевого, полосового адаптивного к выборке смещения или без него для по меньшей мере одной восстановленной выборки.
Тип контурной фильтрации на основе адаптивного к выборке смещения и направление контурной фильтрации на основе краевого адаптивного к выборке смещения представляют собой общие параметры фильтрации.
По меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации условно согласно типу контурной фильтрации на основе адаптивного к выборке смещения.
Когда контурная фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации для фильтрации первого типа, причем первый тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда контурная фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные параметры фильтрации вычисляются для использования в качестве выделенных параметров фильтрации для фильтрации первого и второго компонентов, соответственно, причем второй тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Когда контурная фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации для указания классификации для фильтрации первого типа, причем первый тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда контурная фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные параметры фильтрации вычисляются для использования в качестве выделенных параметров фильтрации для указания классификации для фильтрации первого и второго компонентов, соответственно, причем второй тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
По меньшей мере один параметр фильтрации вычисляется для использования в качестве выделенного параметра фильтрации для фильтрации отдельного одного из первого и второго компонентов по меньшей мере одной восстановленной выборки.
Смещения представляют собой выделенные параметры фильтрации.
Указанный или один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной выборки, что один или более параметров фильтрации, используемых для фильтрации другой выборки, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
Один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, отличающейся от упомянутой первой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
Один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для данной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, непосредственно слева от упомянутой первой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно второму аспекту настоящего изобретения, предусмотрен способ декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- декодирование первого и второго компонента по меньшей мере одной закодированной выборки, чтобы предоставлять первый и второй компонент по меньшей мере одной восстановленной выборки;
- декодирование по меньшей мере одного параметра фильтрации;
- фильтрацию по меньшей мере одной восстановленной выборки в контурном фильтре, причем фильтрация содержит использование по меньшей мере одного декодированного параметра фильтрации в качестве общего параметра фильтрации для фильтрации как первого компонента, так и второго компонента по меньшей мере одной восстановленной выборки.
Фильтрация представляет собой фильтрацию на основе адаптивного к выборке смещения.
Первый и второй компоненты представляют собой соответственно компоненты сигнала цветности U и V.
Указанный или один упомянутый общий параметр фильтрации представляет собой параметр SAO-типа, указывающий, используется ли контурная фильтрация на основе краевого, полосового адаптивного к выборке смещения или без него для по меньшей мере одной восстановленной выборки.
Тип контурной фильтрации на основе адаптивного к выборке смещения и направление контурной фильтрации на основе краевого адаптивного к выборке смещения представляют собой общие параметры фильтрации.
Способ декодирования согласно второму аспекту настоящего изобретения дополнительно содержит этап, на котором используют по меньшей мере один декодированный параметр фильтрации в качестве общего параметра фильтрации условно согласно типу контурной фильтрации на основе адаптивного к выборке смещения.
Когда контурная фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один декодированный параметр фильтрации используется в качестве общего параметра фильтрации для фильтрации первого типа, причем первый тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда контурная фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные декодированные параметры фильтрации используются в качестве выделенных параметров фильтрации для фильтрации первого и второго компонентов, соответственно, причем второй тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Когда контурная фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один декодированный параметр фильтрации используется в качестве общего параметра фильтрации для указания классификации для фильтрации первого типа, причем первый тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда контурная фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные декодированные параметры фильтрации используются в качестве выделенных параметров фильтрации для указания классификации для фильтрации первого и второго компонентов, соответственно, причем второй тип контурной фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
По меньшей мере один декодированный параметр фильтрации выделяется для фильтрации отдельного одного из первого и второго компонентов по меньшей мере одной восстановленной выборки.
Смещения представляют собой выделенные параметры фильтрации.
Указанный или один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, отличающейся от первой упомянутой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, испол