Настоящее изобретение относится к способу и устройству для оптимизации кодирования и/или декодирования компенсационных смещений для набора восстановленных выборок изображения, чтобы повышать эффективность кодирования видеокодека и/или сложности декодирования. Изобретение дополнительно относится к способу и устройству для кодирования или декодирования последовательности цифровых изображений.
Изобретение может применяться в области техники обработки цифровых сигналов и, в частности, в области сжатия видео с использованием компенсации движения, чтобы уменьшать пространственные и временные избыточности в видеопотоках.
Множество форматов сжатия видео, таких как, например, H.263, H.264, MPEG-1, MPEG-2, MPEG-4, SVC, используют дискретное косинусное преобразование (DCT) на основе блоков и компенсацию движения для того, чтобы удалять пространственные и временные избыточности. Они зачастую упоминаются в качестве прогнозирующих видеоформатов. Каждый кадр или изображение видеосигнала разделяется на слайсы, которые кодируются и могут декодироваться независимо. Слайс типично представляет собой прямоугольную часть кадра либо, если обобщать, часть кадра или весь кадр. Дополнительно, каждый слайс может быть разделен на макроблоки (MB), и каждый макроблок дополнительно разделяется на блоки, типично блоки по 64x64, 32x32, 16x16 или 8x8 пикселов.
В стандарте высокоэффективного кодирования видео (HEVC), могут использоваться блоки от 64x64 до 4x4. Сегментирование организуется согласно структуре в виде дерева квадрантов на основе наибольшей единицы кодирования (LCU). LCU соответствует, например, к квадратному блоку 64x64. Если LCU должна быть разделена, флаг разбиения указывает, что LCU разбивается на 4 блока 32x32. Аналогичным образом, если какой-либо из этих 4 блоков должен разбиваться, флаг разбиения задается как "истина", и блок 32x32 разделяется на 4 блока 16x16 и т.д. Когда флаг разбиения задается как "ложь", текущий блок представляет собой единицу CU кодирования. CU имеет размер, равный 64x64, 32x32, 16x16 или 8x8 пикселов.
Предусмотрено два семейства режимов кодирования для кодирования блоков изображения: режимы кодирования на основе пространственного прогнозирования, называемые "внутренним прогнозированием", и режимы кодирования на основе временного прогнозирования (внешний, объединение, пропуск). В режимах пространственного и временного прогнозирования, остаток вычисляется посредством вычитания прогнозирования из исходного блока.
Внутренний блок, в общем, прогнозируется посредством процесса внутреннего прогнозирования из кодированных пикселов на причинной границе. При внутреннем прогнозировании кодируется направление прогнозирования.
Временное прогнозирование состоит в нахождении в опорном кадре, предыдущем или будущем кадре видеопоследовательности, части изображения или опорной области, которая является ближайшей к блоку, который должен быть кодирован. Этот этап типично известен в качестве оценки движения. Затем, блок, который должен быть кодирован, прогнозируется с использованием опорной области на этапе, типично называемом "компенсацией движения", при этом разность между блоком, который должен быть кодирован, и опорной частью кодируется, вместе с элементом информации движения относительно вектора движения, который указывает опорную область для использования для компенсации движения. При временном прогнозировании кодируется по меньшей мере один вектор движения.
Чтобы дополнительно уменьшать затраты на кодирование информации движения, вместо непосредственного кодирования вектора движения, при условии, что движение является гомогенным, вектор движения может быть кодирован с точки зрения разности между вектором движения и предиктором вектора движения, типично вычисляемой из одного или более векторов движения блоков, окружающих блок, который должен быть кодирован.
В H.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-фильтрации.
Для иллюстрации, смещение, которое должно суммироваться с пиксельным значением C (или выборкой), может быть определено, для данного направления, согласно правилам, как указано в таблице 2 приложения, при этом Cn1 и Cn2 обозначают значение двух соседних пикселов или выборок (согласно данному направлению). Соответственно, когда значение C меньше двух значений Cn1 и Cn2, смещение, которое должно суммироваться с C, составляет +O1, когда оно меньше Cn1 или Cn2 и равно другому значению (Cn1 или Cn2), смещение, которое должно быть использовано, составляет +O2, когда оно превышает Cn1 или Cn2, и равно другому значению (Cn1 или Cn2), смещение, которое должно быть использовано, составляет -O3, а когда оно превышает Cn1 и Cn2, смещение, которое должно быть использовано, составляет -O4. Когда ни одно из этих условий не удовлетворяется, значение смещения не суммируется с текущим пиксельным значением C.
Следует отметить, что согласно режиму краевого смещения, только абсолютное значение каждого смещения кодируется в потоке битов, причем знак, который должен применяться, определяется в качестве функции от категории, которой принадлежит текущий пиксел. Следовательно, согласно таблице 2 приложения, положительное смещение ассоциировано с категориями 1 и 2, в то время как отрицательное смещение ассоциировано с категориями 3 и 4.
Второй тип классификации представляет собой классификацию полосовых смещений, которая зависит от пиксельного значения. Класс в полосовом SAO-смещении соответствует диапазону пиксельных значений. Таким образом, идентичное смещение добавляется во все пикселы, имеющие пиксельное значение в данном диапазоне пиксельных значений.
Чтобы обеспечивать большую адаптивность к контенту кадра, SAO-фильтрация применяется к нескольким областям кадра, которые разделяют текущий кадр на несколько пространственных областей. В настоящее время, области кадра соответствуют конечному номеру наибольшей единицы кодирования в HEVC. Следовательно, одна область кадра может фильтроваться или не фильтроваться посредством SAO, так что фильтруются только некоторые области кадра. Кроме того, когда активируется SAO, используется только одна SAO-классификация: краевое смещение или полосовое смещение, согласно связанным параметрам, передаваемым для каждой классификации. В завершение, для каждого концевого SAO-узла, передается SAO-классификация, а также ее параметры и смещения всех классов.
Изображение видеоданных, которые должны кодироваться, может предоставляться в качестве набора двумерных матриц (также известных как цветовые каналы) значений выборки, каждая запись которых представляет интенсивность цветового компонента, к примеру, показатель интенсивности яркости и интенсивности цветности от нейтрального полутонового цвета к синему или красному (YUV), либо показатель интенсивности компонентов красного, зеленого или синего света (RGB). YUV-модель задает цветовое пространство с точки зрения одного компонента сигнала (Y) яркости и двух компонентов цветности (UV). В общем, Y означает компонент сигнала яркости, а 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. Аналогично, классы или диапазоны 202-204 связаны с пикселами, имеющими значения, содержащиеся значения между 72 и 79, 80 и 87, 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), а O_RDj задается равным значению Oj.
На этапе 405 определяется то, все или нет возможные значения смещения Oj обработаны (т.е. Oj=0). Если смещение Oj равно нулю, петля завершается, и идентифицируется улучшенное значение (O_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 области 605 кадра, содержащей N пикселов, извлекается на этапе 606 и классифицируется на этапе 607 согласно классификации краевых смещений или классификации полосовых смещений, как описано выше.
На этапе 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 с тем, чтобы применять фильтр аналогично следующему пикселу области 605 текущего кадра.
На этапе 615 определяется то, все или нет N пикселов области 605 текущего кадра обработаны (i≥N). Если да, область 616 обработанного кадра восстанавливается и может добавляться в восстановленный SAO-кадр, как описано выше в отношении фиг. 1 (ссылка с номером 105).
Недостаток известного процесса для выбора и передачи компенсаций состоит в том, что большое число параметров должно быть передано из кодера в декодер и сохранено в SAO-буфере. Кроме того, процесс, выполняемый посредством декодера для декодирования и обработки этих параметров, является сложным.
Настоящее изобретение разработано, чтобы разрешать одну или более вышеприведенных проблем.
Согласно первому аспекту настоящего изобретения, предусмотрен способ кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- кодирование первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- декодирование по меньшей мере одной закодированной выборки;
- вычисление по меньшей мере одного параметра фильтрации в качестве функции разности между по меньшей мере одним компонентом по меньшей мере одной выборки изображения и по меньшей мере одним соответствующим компонентом по меньшей мере одной соответствующей декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре в качестве общего параметра фильтрации для фильтрации и первого и второго компонентов декодированной выборки.
Фильтрация представляет собой петлевую фильтрацию на основе адаптивного к выборке смещения.
Первый и второй компоненты представляют собой соответственно компоненты сигнала цветности U и V.
Указанный или один упомянутый общий параметр фильтрации представляет собой параметр типа адаптивного к выборке смещения, указывающий, используется ли петлевая фильтрация на основе краевого, полосового адаптивного к выборке смещения или без него для по меньшей мере одной восстановленной выборки.
Тип петлевой фильтрации на основе адаптивного к выборке смещения и направление петлевой фильтрации на основе краевого адаптивного к выборке смещения представляют собой общие параметры фильтрации.
По меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения.
Когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные параметры фильтрации вычисляются для использования в качестве выделенных параметров фильтрации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один параметр фильтрации вычисляется для использования в качестве общего параметра фильтрации для указания классификации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные параметры фильтрации вычисляются для использования в качестве выделенных параметров фильтрации для указания классификации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
По меньшей мере один параметр фильтрации вычисляется для использования в качестве выделенного параметра фильтрации для фильтрации отдельного одного из первого и второго компонентов по меньшей мере одной восстановленной выборки.
Смещения представляют собой выделенные параметры фильтрации.
Указанный или один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной выборки, что один или более параметров фильтрации, используемых для фильтрации другой выборки, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
Один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, отличающейся от упомянутой первой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
Один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для данной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, непосредственно слева от упомянутой первой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно второму аспекту настоящего изобретения, предусмотрен способ декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- декодирование первого и второго компонента по меньшей мере одной закодированной выборки, чтобы предоставлять первый и второй компонент по меньшей мере одной восстановленной выборки;
- декодирование по меньшей мере одного параметра фильтрации;
- фильтрацию по меньшей мере одной восстановленной выборки в петлевом фильтре, причем фильтрация содержит использование по меньшей мере одного декодированного параметра фильтрации в качестве общего параметра фильтрации для фильтрации как первого компонента, так и второго компонента по меньшей мере одной восстановленной выборки.
Фильтрация представляет собой фильтрацию на основе адаптивного к выборке смещения.
Первый и второй компоненты представляют собой соответственно компоненты сигнала цветности U и V.
Указанный или один упомянутый общий параметр фильтрации представляет собой параметр SAO-типа, указывающий, используется ли петлевая фильтрация на основе краевого, полосового адаптивного к выборке смещения или без него для по меньшей мере одной восстановленной выборки.
Тип петлевой фильтрации на основе адаптивного к выборке смещения и направление петлевой фильтрации на основе краевого адаптивного к выборке смещения представляют собой общие параметры фильтрации.
Способ декодирования согласно второму аспекту настоящего изобретения дополнительно содержит этап, на котором используют по меньшей мере один декодированный параметр фильтрации в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения.
Когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один декодированный параметр фильтрации используется в качестве общего параметра фильтрации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные декодированные параметры фильтрации используются в качестве выделенных параметров фильтрации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип по меньшей мере один декодированный параметр фильтрации используется в качестве общего параметра фильтрации для указания классификации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, различные декодированные параметры фильтрации используются в качестве выделенных параметров фильтрации для указания классификации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
По меньшей мере один декодированный параметр фильтрации выделяется для фильтрации отдельного одного из первого и второго компонентов по меньшей мере одной восстановленной выборки.
Смещения представляют собой выделенные параметры фильтрации.
Указанный или один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, отличающейся от первой упомянутой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, непосредственно слева от первой упомянутой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной восстановленной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Согласно третьему аспекту настоящего изобретения, предусмотрено устройство кодирования для кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство кодирования содержит:
- средство для кодирования первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- средство для декодирования по меньшей мере одной закодированной выборки;
- средство для вычисления по меньшей мере одного параметра фильтрации в качестве функции разности между по меньшей мере одним компонентом по меньшей мере одной выборки изображения и по меньшей мере одним соответствующим компонентом по меньшей мере одной соответствующей декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре в качестве общего параметра фильтрации для фильтрации и первого и второго компонентов декодированной выборки.
Согласно четвертому аспекту настоящего изобретения, предусмотрено устройство декодирования для декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство декодирования содержит:
- средство для декодирования первого и второго компонента по меньшей мере одной закодированной выборки, чтобы предоставлять первый и второй компонент по меньшей мере одной восстановленной выборки;
- средство для декодирования по меньшей мере одного параметра фильтрации;
- средство для фильтрации по меньшей мере одной восстановленной выборки в петлевом фильтре, причем фильтрация содержит использование по меньшей мере одного декодированного параметра фильтрации в качестве общего параметра фильтрации для фильтрации как первого компонента, так и второго компонента по меньшей мере одной восстановленной выборки.
Фильтрация представляет собой петлевую фильтрацию на основе адаптивного к выборке смещения.
Первый и второй компоненты представляют собой соответственно компоненты сигнала цветности U и V.
Указанный или один упомянутый общий параметр фильтрации представляет собой параметр типа адаптивного к выборке смещения, указывающий, используется ли петлевая фильтрация на основе краевого, полосового адаптивного к выборке смещения или без него для по меньшей мере одной восстановленной выборки.
Тип петлевой фильтрации на основе адаптивного к выборке смещения и направление петлевой фильтрации на основе краевого адаптивного к выборке смещения представляют собой общие параметры фильтрации.
Средство фильтрации сконфигурировано с возможностью использовать по меньшей мере один декодированный параметр фильтрации в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения.
Средство фильтрации сконфигурировано с возможностью, когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип, использовать по меньшей мере один декодированный параметр фильтрации в качестве общего параметра фильтрации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, и дополнительно сконфигурировано с возможностью, когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, использовать различные декодированные параметры фильтрации в качестве выделенных параметров фильтрации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Средство фильтрации сконфигурировано с возможностью, когда петлевая фильтрация на основе адаптивного к выборке смещения имеет первый тип, использовать по меньшей мере один декодированный параметр фильтрации в качестве общего параметра фильтрации для указания классификации для фильтрации первого типа, причем первый тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, и дополнительно сконфигурировано с возможностью, когда петлевая фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличающийся от первого типа, использовать различные декодированные параметры фильтрации в качестве выделенных параметров фильтрации для указания классификации для фильтрации первого и второго компонентов, соответственно, причем второй тип петлевой фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
По меньшей мере один декодированный параметр фильтрации выделяется для фильтрации отдельного одного из первого и второго компонентов по меньшей мере одной восстановленной выборки.
Смещения представляют собой выделенные параметры фильтрации.
Указанный или один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг, указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, отличающейся от первой упомянутой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для данной восстановленной выборки в первой упомянутой части изображения то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, непосредственно слева от первой упомянутой части, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной восстановленной выборки то, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для того, чтобы предоставлять соответствующие параметры фильтрации для фильтрации данной восстановленной выборки.
Согласно пятому аспекту настоящего изобретения, предусмотрен компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт содержит последовательность инструкций для реализации каждого этапа способа по любому из вышеуказанных аспектов настоящего изобретения, при загрузке и исполнении посредством программируемого устройства.
Согласно пятому аспекту настоящего изобретения, предусмотрен считываемый компьютером носитель данных, хранящий инструкции компьютерной программы для реализации каждого этапа способа по любому из вышеуказанных аспектов настоящего изобретения.
По меньшей мере, части способов согласно изобретению могут быть реализованы компьютером. Соответственно, настоящее изобретение может принимать форму полностью аппаратного варианта осуществления, полностью программного варианта осуществления (включающего в себя микропрограммное обеспечение, резидентное программное обеспечение, микрокод и т.д.) или варианта осуществления, комбинирующего программные и аппаратные аспекты, которые могут совместно, в общем, упоминаться в данном документе как "схема", "модуль" или "система". Кроме того, настоящее изобретение может принимать форму компьютерного программного продукта, осуществленного в любом материальном носителе, в представлении, имеющем применяемый компьютером программный код, осуществленный на носителе.
Поскольку настоящее изобретение может быть реализовано в программном обеспечении, настоящее изобретение может быть осуществлено в качестве считываемого компьютером кода для предоставления в программируемое устройство на любом подходящем носителе. Материальный носитель может содержать носитель данных, такой как гибкий диск, CD-ROM, жесткий диск, устройство на магнитных лентах или полупроводниковое запоминающее устройство и т.п. Переходная несущая среда может включать в себя такой сигнал, как электрический сигнал, электронный сигнал, оптический сигнал, акустический сигнал, магнитный сигнал либо электромагнитный сигнал, например, микроволновый или RF-сигнал.
Таким образом, согласно пятому аспекту настоящего изобретения, предусмотрен компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт содержит последовательность инструкций для реализации каждого этапа способа, осуществляющего вышеуказанный первый или второй аспект настоящего изобретения, при загрузке и исполнении посредством программируемого устройства.
Аналогично, согласно шестому аспекту настоящего изобретения, предусмотрен считываемый компьютером носитель данных, хранящий инструкции компьютерной программы для реализации каждого этапа способа, осуществляющего вышеуказанный первый или второй аспект настоящего изобретения.
Далее описываются варианты осуществления изобретения, только в качестве примера и со ссылкой на прилагаемые чертежи, на которых:
Фиг. 1 является блок-схемой последовательности операций способа, иллюстрирующей этапы процесса петлевой фильтрации предшествующего уровня техники;
Фиг. 2 графически иллюстрирует классификацию адаптивного к выборке полосового смещения HEVC-процесса предшествующего уровня техники;
Фиг. 3 является блок-схемой последовательности операций способа, иллюстрирующей этапы процесса для определения компенсационных смещений для полосового SAO-смещения HEVC;
Фиг. 4 является блок-схемой последовательности операций способа, иллюстрирующей процесс для того, чтобы выбирать SAO-смещение с точки зрения искажения в зависимости от скорости передачи;
Фиг. 5 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения полосовой SAO-позиции для полосового SAO-смещения HEVC;
Фиг. 6 является блок-схемой последовательности операций, иллюстрирующей этапы способа для фильтрации области кадра согласно петлевому SAO-фильтру;
Фиг. 7 является блок-схемой, схематично иллюстрирующей систему передачи данных, в которой могут быть реализованы один или более вариантов осуществления изобретения;
Фиг. 8 является блок-схемой, иллюстрирующей компоненты устройства обработки, в котором могут быть реализованы один или более вариантов осуществления изобретения;
Фиг. 9 является блок-схемой последовательности операций, иллюстрирующей этапы способа кодирования согласно вариантам осуществления изобретения;
Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей этапы процесса петлевой фильтрации в соответствии с одним или более вариантов осуществления изобретения;
Фиг. 11 является блок-схемой последовательности операций, иллюстрирующей этапы способа декодирования согласно вариантам осуществления изобретения;
Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения SAO-параметров из потока битов согласно режиму адаптивного набора параметров;
Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения SAO-параметров из потока битов согласно LCU-режиму;
Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей этапы способа для считывания SAO-параметров в потоке битов;
Фиг. 15 и 16 являются блок-схемами последовательности операций, иллюстрирующими этапы способа согласно первому варианту осуществления изобретения для определения параметров, которые должны быть использованы в петлевом фильтре для обработки области текущего кадра;
Фиг. 17 иллюстрирует конкретный вариант осуществления, согласно которому значения смещений, ассоциированных с компонентом, соответствуют зеркальным значениям смещений, ассоциированных со вторым компонентом;
Фиг. 18 иллюстрирует то, как значения смещений, ассоциированных со вторым компонентом, могут быть получены из значений смещений, ассоциированных с первым компонентом, при применении петлевого SAO-фильтра с использованием классификации полосовых смещений;
Фиг. 19 иллюстрирует то, как значение параметра sao_band_position, ассоциированного со вторым компонентом Z, может быть получено из значения параметра sao_band_position, ассоциированного с первым компонентом X, при применении петлевого SAO-фильтра с использованием классификации полосовых смещений;
Фиг. 20 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения оптимального смещения, которое должно быть использовано посредством двух или трех компонентов согласно критерию искажения в зависимости от скорости передачи;
Фиг. 21 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения полосовой SAO-позиции, совместно используемой двумя компонентами;
Фиг. 22 является блок-схемой последовательности операций, иллюстрирующей этапы способа для декодирования потока битов согласно конкретному варианту осуществления изобретения; и
Фиг. 23 иллюстрирует использование SAO-классификации одного компонента X для того, чтобы аналогично фильтровать другой компонент Z.
Фиг. 7 иллюстрирует систему передачи данных, в которой могут быть реализованы или более вариантов осуществления изобретения. Система передачи данных содержит передающее устройство, в этом случае сервер 701, который выполнен с возможностью передавать пакеты данных из потока данных в приемное устройство, в этом случае клиентский терминал 702, через сеть 700 передачи данных. Сеть 700 передачи данных может быть глобальной вычислительной сетью (WAN) или локальной вычислительной сетью (LAN). Эта сеть, например, может представлять собой беспроводную сеть (Wi-Fi/802.11a или b или g), Ethernet-сеть, Интернет-сеть либо смешанную сеть, состоящую из нескольких различных сетей. В конкретном варианте осуществления изобретения, система передачи данных может быть системой цифровой телевизионной широковещательной передачи, в которой сервер 701 отправляет идентичный контент данных в несколько клиентов.
Поток 704 данных, предоставленный посредством сервера 701, может состоять из мультимедийных данных, представляющих видео- и аудиоданные. Потоки аудио- и видеоданных, в некоторых вариантах осуществления изобретения, могут захватываться посредством сервера 701 с использованием микрофона и камеры, соответственно. В некоторых вариантах осуществления, потоки данных могут быть сохранены на сервере 701 или приняты посредством сервера 701 от другого поставщика данных либо сформированы на сервере 701. Сервер 701 содержит кодер для кодирования видео- и аудиопотоков, в частности, чтобы предоставлять сжатый поток битов для передачи, которая является более компактным представлением данных, представленных в качестве ввода в кодер.
Чтобы получать лучшее отношение качества передаваемых данных к количеству передаваемых данных, сжатие видеоданных может выполняться, например, в соответствии с HEVC-форматом или H.264/AVC-форматом.
Клиент 702 принимает передаваемый поток битов и декодирует восстановленный поток битов, чтобы воспроизводить видеоизображения на устройстве отображения и аудиоданные посредством громкоговорителя.
Хотя сценарий потоковой передачи рассматривается в примере по фиг. 7, следует принимать во внимание, что в некоторых вариантах осуществления изобретения передача данных между кодером и декодером может выполняться с использованием, например, устройства хранения данных, такого как оптический диск.
В одном или более вариантов осуществления изобретения, видеоизображение передается с данными, представляющими компенсационные смещения для применения к восстановленным пикселам изображения, чтобы предоставлять фильтрованные пикселы в конечном изображении.
Фиг. 8 схематично иллюстрирует устройство 800 обработки, сконфигурированное с возможностью реализовывать по меньшей мере один вариант осуществления настоящего изобретения. Устройство 800 обработки может быть таким устройством, как микрокомпьютер, рабочая станция или легкое портативное устройство. Устройство 800 содержит шину 813 связи, соединенную со следующим:
- центральный процессор 811, такой как микропроцессор, обозначаемый CPU;
- постоянное запоминающее устройство 807, обозначаемое ROM, для сохранения компьютерных программ для реализации изобретения;
- оперативное запоминающее устройство 812, обозначаемое RAM, для сохранения исполняемого кода способа вариантов осуществления изобретения, а также регистров, сконфигурированных с возможностью записывать переменные и параметры, необходимые для реализации способа кодирования последовательности цифровых изображений и/или способа декодирования потока битов согласно вариантам осуществления изобретения; и
- интерфейс 802 связи, подключенный к сети 803 связи, по которой передаются или принимаются цифровые данные, которые должны быть обработаны.
Необязательно, устройство 800 также может включать в себя следующие компоненты:
- средство 804 хранения данных, такое как жесткий диск, для сохранения компьютерных программ для реализации способов одного или более вариантов осуществления изобретения и данных, используемых или сформированных во время реализации одного или более вариантов осуществления изобретения;
- накопитель 805 на дисках для диска 806, причем накопитель на дисках выполнен с возможностью считывать данные с диска 806 или записывать данные на упомянутый диск;
- экран 809 для отображения данных и/или выступания в качестве графического интерфейса с пользователем, посредством клавиатуры 810 или любого другого средства указания.
Устройство 800 может подключаться к различным периферийным устройствам, такими как, например, цифровая камера 820 или микрофон 808, подключенным к плате ввода-вывода (не показана), с тем чтобы предоставлять мультимедийные данные в устройство 800.
Шина связи предоставляет связь и функциональную совместимость между различными элементами, включенными в устройство 800 или подключенными к нему. Представление шины не является ограничивающим, и, в частности, центральный процессор выполнен с возможностью передавать инструкции в любой элемент устройства 800 непосредственно или посредством другого элемента устройства 800.
Диск 806 может быть заменен посредством любого носителя информации, такого как, например, компакт-диск (CD-ROM), перезаписываемый или нет, Zip-диск или карта памяти, и в общих чертах, посредством средства хранения информации, которое может считываться посредством микрокомпьютера или посредством микропроцессора, интегрированного или нет в устройство, возможно съемного и сконфигурированного с возможностью сохранять одну или более программ, выполнение которых обеспечивает возможность реализации способа кодирования последовательности цифровых изображений и/или способа декодирования потока битов согласно изобретению.
Исполняемый код может быть сохранен либо в постоянном запоминающем устройстве 807 на жестком диске 804, либо на съемном цифровом носителе, таком как, например, диск 806, как описано выше. Согласно разновидности, исполняемый код программ может быть принят посредством сети 803 связи через интерфейс 802, чтобы сохраняться на одном из средств хранения устройства 800 перед выполнением, таком как жесткий диск 804.
Центральный процессор 811 выполнен с возможностью управлять и направлять выполнение инструкций или части программного кода программы или программ согласно изобретению, инструкций, которые сохраняются на одном из вышеуказанных средств хранения. При включении питания программа или программы, которые сохраняются в энергонезависимом запоминающем устройстве, например, на жестком диске 804 или в постоянном запоминающем устройстве 807, передаются в оперативное запоминающее устройство 812, которое в таком случае содержит исполняемый код программы или программ, а также регистры для сохранения переменных и параметров, необходимых для реализации изобретения.
В этом варианте осуществления, устройство является программируемым устройством, которое использует программное обеспечение для того, чтобы реализовывать изобретение. Тем не менее, альтернативно настоящее изобретение может быть реализовано в аппаратных средствах (например, в форме специализированной интегральной схемы, или ASIC).
Фиг. 9 иллюстрирует блок-схему кодера 900 согласно, по меньшей мере, одному варианту осуществления изобретения. Кодер представляется посредством соединенных модулей, причем каждый модуль выполнен с возможностью реализовывать, например, в форме инструкций программирования, которые должны быть выполнены посредством CPU 811 устройства 800 по меньшей мере один соответствующий этап способа, реализующего по меньшей мере один вариант осуществления кодирования изображения из последовательности изображений согласно одному или более вариантов осуществления изобретения.
Исходная последовательность цифровых изображений i0-in 901 принимается как ввод посредством кодера 900. Каждое цифровое изображение представляется посредством набора выборок, известных как пикселы.
Поток 910 битов выводится посредством кодера 900 после реализации процесса кодирования. Поток 910 битов содержит множество единиц кодирования или слайсов, причем каждый слайс содержит заголовок слайса для передачи значений для кодирования параметров кодирования, используемых для того, чтобы кодировать слайс, и тело слайса, содержащее кодированные видеоданные.
Входные цифровые изображения i0-i0 901 разделяются на блоки пикселов посредством модуля 902. Блоки соответствуют частям изображения и могут иметь переменные размеры (например, 4x4, 8x8, 16x16, 32x32, 64x64 пикселов). Режим кодирования выбирается для каждого входного блока. Предоставляются два семейства режимов кодирования: режимы кодирования на основе кодирования с пространственным прогнозированием (внутреннего прогнозирования) и режимы кодирования на основе временного прогнозирования (внешнее кодирование, объединение, пропуск). Возможные режимы кодирования тестируются.
Модуль 903 реализует процесс внутреннего прогнозирования, при котором данный блок, который должен быть кодирован, прогнозируется посредством предиктора, вычисленного из пикселов окружения упомянутого блока, который должен быть кодирован. Индикатор относительно выбранного внутреннего предиктора и разность между данным блоком и его предиктором кодируются для того, чтобы предоставлять остаток, если выбирается внутреннее кодирование.
Временное прогнозирование реализуется посредством модуля 904 оценки движения и модуля 905 компенсации движения. Во-первых, выбирается опорное изображение из числа набора 916 опорных изображений, и часть опорного изображения, также называемая "опорной областью", или часть изображения, которая является ближайшей областью к данному блоку, который должен быть кодирован, выбирается посредством модуля 904 оценки движения. Модуль 905 компенсации движения затем прогнозирует блок, который должен быть кодирован, с использованием выбранной области. Разность между выбранной опорной областью и данным блоком, также называемая "остаточным блоком", вычисляется посредством модуля 905 компенсации движения. Выбранная опорная область указывается посредством вектора движения.
Таким образом, в обоих случаях (пространственное и временное прогнозирование), остаток вычисляется посредством вычитания прогнозирования из исходного блока.
При внутреннем прогнозировании, реализованном посредством модуля 903, кодируется направление прогнозирования. При временном прогнозировании кодируется по меньшей мере один вектор движения.
Информация относительно вектора движения и остаточного блока кодируется, если выбирается внешнее прогнозирование. Чтобы дополнительно снижать скорость передачи битов, при условии что движение является гомогенным, вектор движения кодируется посредством разности относительно предиктора вектора движения. Предикторы векторов движения из набора предикторов информации движения получаются из поля 918 векторов движения посредством модуля 917 прогнозирования и кодирования векторов движения.
Кодер 900 дополнительно содержит модуль 906 выбора для выбора режима кодирования посредством применения критерия затрат на кодирование, к примеру, критерия искажения в зависимости от скорости передачи. Чтобы дополнительно уменьшать избыточность, преобразование (к примеру, DCT) применяется посредством модуля 907 преобразования к остаточному блоку, преобразованные полученные данные затем квантуются посредством модуля 908 квантования и энтропийно кодируются посредством модуля 909 энтропийного кодирования. В завершение, кодированный остаточный блок кодируемого текущего блока вставляется в поток 910 битов.
Кодер 900 также выполняет декодирование кодированного изображения для того, чтобы формировать опорное изображение для оценки движения последующих изображений. Это позволяет кодеру и декодеру, принимающим поток битов, иметь идентичные опорные кадры. Модуль 911 обратного квантования выполняет обратное квантование квантованных данных, после чего выполняется обратное преобразование посредством модуля 912 обратного преобразования. Модуль 913 обратного внутреннего прогнозирования использует информацию прогнозирования, чтобы определять то, какой предиктор использовать для данного блока, и модуль 914 обратной компенсации движения фактически добавляет остаток, полученный посредством модуля 912, в опорную область, полученную из набора 916 опорных изображений.
Постфильтрация затем применяется посредством модуля 915, чтобы фильтровать восстановленный кадр пикселов. В вариантах осуществления изобретения, используется петлевой SAO-фильтр, в котором компенсационные смещения суммируются с пиксельными значениями восстановленных пикселов восстановленного изображения.
Фиг. 10 является блок-схемой последовательности операций способа, иллюстрирующей этапы процесса петлевой фильтрации согласно, по меньшей мере, одному варианту осуществления изобретения. На начальном этапе 1001 кодер формирует восстановление полного кадра. Затем, на этапе 1002 фильтр удаления блочности применяется для этого первого восстановления, чтобы формировать восстановление 1003 с удаленной блочностью. Цель фильтра удаления блочности состоит в том, чтобы удалять артефакты блочности, сформированные посредством остаточного квантования и блочной компенсации движения или блочного внутреннего прогнозирования. Эти артефакты являются визуально важными на низких скоростях передачи битов. Фильтр удаления блочности работает с возможностью сглаживать границы блоков согласно характеристикам двух соседних блоков. Учитываются режим кодирования каждого блока, параметры квантования, используемые для остаточного кодирования, и соседние пиксельные разности на границе. Идентичный критерий/классификация применяется для всех кадров, и дополнительные данные не передаются. Фильтр удаления блочности повышает визуальное качество текущего кадра посредством удаления артефактов блочности, и он также улучшает оценку движения и компенсацию движения для последующих кадров. Фактически, высокие частоты артефакта блочности удаляются, и в силу этого данные высокие частоты не должны компенсироваться с помощью остатка текстуры следующих кадров.
После фильтра удаления блочности восстановление с удаленной блочностью фильтруется посредством петлевого фильтра на основе адаптивного к выборке смещения (SAO) на этапе 1004 на основе классификации пикселов. Результирующий кадр 1005 затем может фильтроваться с помощью адаптивного петлевого фильтра (ALF) на этапе 1006, чтобы формировать восстановленный кадр 1007, который должен отображаться и использоваться в качестве опорного кадра для следующих внешних кадров.
На этапе 1004 каждый пиксел области кадра классифицируется на класс определенной классификации согласно своему пиксельному значению. Класс соответствует определенному диапазону пиксельных значений. Идентичное значение компенсационного смещения суммируется с пиксельным значением всех пикселов, имеющих пиксельное значение в данном диапазоне пиксельных значений.
Далее подробнее поясняется кодирование и/или декодирование SAO-параметров, которые должны передаваться между сервером и клиентом и/или сохраняться локально или удаленно, для декодирования пикселов для фильтрации на основе адаптивного к выборке смещения, в отношении любого из фиг. 12-23.
Фиг. 11 иллюстрирует блок-схему декодера 1100, который может быть использован для того, чтобы принимать данные из кодера согласно варианту осуществления изобретения. Декодер представляется посредством соединенных модулей, причем каждый модуль выполнен с возможностью реализовывать, например, в форме инструкций программирования, которые должны быть выполнены посредством CPU 811 устройства 800, соответствующий этап способа, реализованного посредством декодера 1100.
Декодер 1100 принимает поток 1101 битов, содержащий единицы кодирования, каждая из которых состоит из заголовка, содержащего информацию относительно параметров кодирования, и тела, содержащего кодированные видеоданные. Как пояснено относительно фиг. 9, кодированные видеоданные энтропийно кодируются, и индексы предикторов векторов движения кодируются, для данного блока, для предварительно определенного числа битов. Принятые кодированные видеоданные энтропийно декодируются посредством модуля 1102. Остаточные данные затем деквантуются посредством модуля 1103, и затем обратное преобразование применяется посредством модуля 1104, чтобы получать пиксельные значения.
Данные режима, указывающие режим кодирования, также энтропийно декодируются, и на основе режима внутреннее декодирование или внешнее декодирование выполняется для кодированных блоков данных изображений.
В случае внутреннего режима внутренний предиктор определяется посредством модуля 1105 обратного внутреннего прогнозирования на основе режима внутреннего прогнозирования, указываемого в потоке битов.
Если режим является внешним, информация прогнозирования движения извлекается из потока битов, с тем чтобы находить опорную область, используемую посредством кодера. Информация прогнозирования движения состоит из индекса опорного кадра и остатка вектора движения. Предиктор вектора движения добавляется в остаток вектора движения, чтобы получать вектор движения посредством модуля 1110 декодирования на основе векторов движения.
Модуль 1110 декодирования на основе векторов движения применяет декодирование на основе векторов движения для каждого текущего блока, кодированного посредством прогнозирования движения. После того, как получен индекс предиктора вектора движения для текущего блока, фактическое значение вектора движения, ассоциированного с текущим блоком, может быть декодировано и использовано для того, чтобы применять обратную компенсацию движения посредством модуля 1106. Часть опорного изображения, указываемая посредством декодированного вектора движения, извлекается из опорного изображения 1108, чтобы применять обратную компенсацию 1106 движения. Данные 1111 поля векторов движения обновляются с помощью декодированного вектора движения, с тем чтобы использоваться для обратного прогнозирования следующих декодированных векторов движения.
В завершение, получается декодированный блок. Постфильтрация применяется посредством модуля 1107 постфильтрации, аналогично модулю 915 постфильтрации, применяемому в кодере, как описано со ссылкой на фиг. 9. Декодированный видеосигнал 1109 в завершение предоставляется посредством декодера 1000.
Фиг. 12 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения SAO-параметров из потока битов согласно режиму адаптивного набора параметров (APS). Соответственно, фиг. 12 иллюстрирует то, как SAO-параметры сохраняются в потоке битов, когда режим адаптивного набора параметров используется для того, чтобы ассоциировать один набор SAO-параметров в расчете на область кадра. Согласно этому режиму, набор SAO-параметров является допустимым для области прямоугольного кадра, размер которой составляет кратное размера наибольшей единицы кодирования (LCU). Чтобы уменьшать число битов для того, чтобы сохранять все SAO-параметры кадра для этого конкретного режима, используется технология кодирования по длинам серий, а также флаг прогнозирования из вышеуказанной области кадра.
Согласно APS-режиму, реализованному в текущих технических спецификациях HEVC, существуют флаги, указывающие то, активируется или нет петлевая SAO-фильтрация для компонентов данного изображения. Это означает то, что, например, при рассмотрении изображения, кодированного согласно YUV-схеме, SAO-параметры для компонента U или V могут активироваться или деактивироваться.
Такие флаги считываются на начальном этапе 1201. Затем, на этапе 1202 получается размер области кадра, к которой должен применяться набор SAO-параметров. Как описано выше, область кадра, в которой должна применяться петлевая SAO-фильтрация при использовании APS-режима, соответствует области, которая равна LCU-размеру или которая соответствует нескольким размерам относительно LCU-размера.
Затем, на этапе 1203 начинается петля для того, чтобы обрабатывать последовательно каждый цветовой компонент последовательности, обозначаемый X. Эта петля обеспечивает считывание флага "уникальности" для каждого компонента, которое выполняется на этапе 1204. Затем, на этапе 1205 выполняется тест, чтобы определять то, представляет собой или нет считанный флаг "уникальности" "истину". Если считанный флаг "уникальности" представляет собой "истину", имеется всего один набор SAO-параметров касательно текущего обработанного компонента X для всего изображения. В таком случае, SAO-параметры считываются в потоке битов на этапе 1206. Этот этап описывается подробно в отношении фиг. 14. В противном случае, если считанный флаг "уникальности" не представляет собой "истину", имеется несколько SAO-параметров для всего изображения касательно текущего обработанного компонента X. В таком случае, SAO-параметры считываются на следующих этапах, как описано в отношении этапов 1208-1218.
Затем, на этапе 1207 выполняется тест, чтобы определять то, является или нет текущий обработанный компонент X последним компонентом для обработки. Если текущий обработанный компонент X является последним компонентом для обработки, алгоритм переходит к этапу 1203, и предыдущие этапы повторяются для оставшегося компонента(ов).
Следует отметить, что, если флаг "уникальности" представляет собой "истину" для одного компонента, этапы 1208-1218 не выполняются для этого компонента.
Из этапа 1208, SAO-параметры определяются для каждой области кадра и для каждого компонента, когда имеется несколько наборов SAO-параметров в расчете на компонент.
На этапе 1208 начинается петля для того, чтобы обрабатывать последовательно каждую область кадра данного изображения, которое должно быть обработано, согласно размеру области кадра, определенному на этапе 1202. В данном примере по фиг. 12, области кадра обрабатываются в порядке растрового сканирования, посредством чего процесс начинается с первой строки областей кадра изображения и продолжается до последней строки изображения. Области кадра обрабатываются от левой стороны к правой стороне изображения.
Затем, на этапе 1209 начинается другая петля для того, чтобы обрабатывать последовательно обозначаемый X каждого компонента. Здесь следует отметить, что если флаг "активации" текущего компонента, считанный на этапе 1201, представляет собой "ложь", следующие этапы для заинтересованного компонента игнорируются на этапе 1209, и следующий компонент выбирается для обработки. На этапе 1210 считывается флаг "повторения строки". Затем, на этапе 1211a выполняется тест, чтобы определять то, представляет собой или нет этот флаг "истину". Если он представляет собой "истину", SAO-параметры предыдущей строки области кадра используются для текущей строки области кадра. Это позволяет сэкономить значительное число битов при представлении SAO-параметров в потоке битов посредством передачи в служебных сигналах только того, что текущая строка использует параметры, идентичные параметрами предыдущей строки.
В противном случае, если считанный флаг "повторения строки" представляет собой "ложь", область текущего кадра кодируется в потоке битов, и алгоритм переходит к этапу 1213, на котором выполняется тест, чтобы определять то, используется или нет прогнозирующая технология (с использованием кодирования по длинам серий или значения SAO-параметров вышеуказанной области кадра) для того, чтобы кодировать и представлять SAO-параметры, ассоциированные с областью предыдущего кадра в текущей строке. В этом случае, SAO-параметры области текущего кадра выводятся, в текущей строке, на этапе 1214, из области предыдущего кадра. Более конкретно, используются два элемента синтаксиса: sao_run_diff и sao_merge_up_flag, которые, соответственно, указывают то, кодируются SAO-параметры согласно способу по длинам серий или выводятся из SAO-параметров вышеуказанной области кадра. В противном случае, если ответ является отрицательным на этапе (1213), SAO-параметры для этой конкретной области кадра явно кодируются в потоке битов. Соответственно, эти SAO-параметры считываются из потока битов на этапе 1215. Этот этап является аналогичным 1206 и дополнительно описывается в отношении фиг. 14.
После этапа 1212, когда SAO-параметры определяются для всей строки, на этапе 1216 выполняется тест, чтобы определять то, является или нет текущий компонент последним компонентом, который должен быть обработан. Если он не является последним компонентом, который должен быть обработан, алгоритм переходит к этапу 1209, чтобы обрабатывать следующий компонент(ы). Аналогично, когда SAO-параметры определяются для области текущего кадра, или посредством выполнения этапа 1214 или этапа 1215, алгоритм переходит к этапу 1216, чтобы определять то, является или нет текущий компонент последним компонентом, который должен быть обработан. С другой стороны, если он не является последним компонентом, который должен быть обработан, алгоритм переходит к этапу 1209, чтобы обрабатывать следующий компонент(ы).
В противном случае, если все компоненты обработаны, на этапе 1217 выполняется тест, чтобы определять то, обработана или нет последняя область кадра. Если последняя область кадра не обработана, процесс переходит к этапу 1208, и предыдущие этапы повторяются. В противном случае процесс завершается.
На этой стадии набор SAO-параметров, с различными параметрами, представленными в отношении фиг. 14, ассоциирован с каждой областью кадра и для каждого компонента.
Фиг. 13 является блок-схемой последовательности операций, иллюстрирующей этапы способа для получения SAO-параметров из потока битов согласно LCU-режиму. Следовательно, фиг. 13 иллюстрирует альтернативу, чтобы кодировать SAO-параметры для APS-режима. Более конкретно, фиг. 13 иллюстрирует то, как SAO-параметры могут быть сохранены в потоке битов, когда представление режима наибольшей единицы кодирования (LCU) используется для того, чтобы ассоциировать один набор SAO-параметров в расчете на LCU. Во избежание кодирования одного набора SAO-параметров в расчете на LCU, которое является затратным, может быть использована прогнозирующая схема. В данном примере, этот прогнозирующий режим состоит в проверке того, использует или нет LCU, размещенная слева от текущей LCU, идентичные SAO-параметры. Если нет, вторая проверка выполняется для LCU, размещенной выше текущей LCU. Эта прогнозирующая технология обеспечивает уменьшение объема данных для того, чтобы представлять SAO-параметры для LCU-режима. Это основано на использовании выделенных флагов, называемых "флагами объединения".
На этапе 1301 начинается петля для того, чтобы обрабатывать последовательно каждый компонент, обозначаемый X. Для иллюстрации, изображения по-прежнему кодируются согласно YUV-схеме. Затем, на этапе 1303 флаг, обозначаемый sao_merge_left_flag_X (при этом X означает Y, U или V), считывается из потока 1302 битов, который должен быть обработан и декодирован. Если его значение представляет собой "истину", SAO-параметры LCU, размещенной слева от текущей LCU, выбираются на этапе 1304 для использования для обработки текущей LCU. Более конкретно, это предоставляет возможность применения определения на этапе 1308 относительно типа петлевого SAO-фильтра к текущей LCU.
В противном случае, если считанный флаг, обозначаемый sao_merge_left_flag_X, представляет собой "ложь", флаг, обозначаемый sao_merge_up_flag_X (при этом X означает Y, U или V), считывается из потока 1302 битов и декодируется. Если его значение представляет собой "истину", SAO-параметры LCU, размещенной выше текущей LCU, выбираются на этапе 1306 для использования для обработки текущей LCU. С другой стороны, это предоставляет возможность применения определения на этапе 1308 относительно типа петлевого SAO-фильтра к текущей LCU.
В противном случае, если считанный флаг, обозначаемый sao_merge_up_flag_X, представляет собой "ложь", SAO-параметры, которые должны быть использованы для обработки текущей LCU, считываются и декодируются из потока 1302 битов на этапе 1307, причем последнее описывается в отношении фиг. 14.
На этой стадии получаются SAO-параметры для обработки текущей LCU, и тип петлевого SAO-фильтра, который должен применяться к текущей LCU, определяется на этапе 1308.
Затем, на этапе 1309, выполняется тест, чтобы определять то, все или нет компоненты Y, U и V обработаны для текущей LCU. Если не все компоненты обработаны, следующий компонент выбирается, алгоритм переходит к этапу 1301, и предыдущие этапы повторяются.
Затем, следующая LCU может быть обработана аналогично.
Фиг. 14 является блок-схемой последовательности операций, иллюстрирующей этапы способа для считывания SAO-параметров в потоке битов. Соответственно, фиг. 14 иллюстрирует способ, которым SAO-параметры сохраняются в кодированном потоке битов.
На начальном этапе 1402 флаг, обозначаемый sao_type_idx_X (при этом X означает Y, U или V), считывается из потока 1401 битов и декодируется. Кодовое слово, которое представляет этот элемент синтаксиса, может использовать код фиксированной длины или любой способ арифметического кодирования.
Как описано выше в отношении таблицы 1 приложения, этот элемент синтаксиса позволяет определять тип петлевого SAO-фильтра, который должен применяться к области кадра, чтобы обрабатывать компонент X. Согласно данному примеру, флаг sao_type_idx_X (или обобщенно sao_type_idx) может принимать одно из пяти значений, что зависит от петлевого SAO-фильтра, который должен применяться. Как указано в таблице 1 приложения, 0 соответствует отсутствию петлевого SAO-фильтра, 1-4 соответствуют 4 категориям петлевого SAO-фильтра краевого смещения, как описано в отношении таблицы 2 приложения, а значение 5 соответствует петлевому SAO-фильтру полосового смещения.
На этапе 1402, после считывания и декодирования флага sao_type_idx_X, выполняется тест, чтобы определять то, является или нет значение этого индекса строго положительным. Если значение этого индекса равно нулю, что означает то, что петлевой SAO-фильтр не должен применяться к области текущего кадра, определение SAO-параметров завершается на этапе 1407. В противном случае, если значение флага sao_type_idx_X является строго положительным, SAO-параметры существуют в потоке 1401 битов для области текущего кадра.
Затем, на этапе 1403 выполняется тест, чтобы определять то, представляет собой или нет тип петлевого SAO-фильтра, который должен применяться, тип полосового смещения (sao_type_idx_X==5). Если петлевой SAO-фильтр, который должен применяться, имеет тип полосового смещения, полосовая SAO-позиция считывается на этапе 1404 в потоке 1401 битов и декодируется.
После считывания полосовой SAO-позиции на этапе 1404, на этапе 1405 начинается петля для считывания и декодирования четырех Offsetj (j варьируется от 1 до 4) на этапе 1406 из потока 1401 битов. Эти четыре смещения соответствуют четырем смещениям, связанным с четырьмя диапазонами полосового SAO-смещения, как описано в отношении фиг. 2.
Аналогично, если значение флага sao_type_idx_X является положительным и отличается от 5, на этапе 1405 начинается петля для считывания и декодирования четырех Offsetj (j варьируется от 1 до 4) из потока 1401 битов. Эти четыре смещения соответствуют четырем смещениям четырех типов краевого SAO-смещения, как описано в отношении таблицы 2 приложения.
Когда четыре смещения считаны и декодированы на этапе 1406, считывание SAO-параметров завершается на этапе 1407.
Согласно первому основному варианту осуществления, некоторые или все SAO-параметры совместно используются компонентами. С этой целью, задаются процессы для того, чтобы извлекать SAO-параметры покомпонентно. Такие зависимости между компонентами могут быть заданы для двух видов SAO-классификаций (краевые и полосовые смещения).
Как описано выше в отношении фиг. 13, два флага, обозначаемые sao_merge_left_flag_X и sao_merge_up_flag_X, используются в текущей реализации HEVC для LCU-режима, с тем чтобы получать SAO-параметры в качестве функции от ранее обработанных SAO-параметров. Флаг, обозначаемый sao_merge_left_flag_X, направлен на указание того, что SAO-параметры, которые должны быть использованы для обработки компонента X текущей LCU, представляют собой SAO-параметры, используемые для обработки идентичного компонента LCU, размещенной слева от текущей LCU. Аналогично, флаг, обозначаемый sao_merge_up_flag_X, направлен на указание того, что SAO-параметры, которые должны быть использованы для обработки компонента X текущей LCU, представляют собой SAO-параметры, используемые для обработки идентичного компонента LCU, размещенной выше текущей LCU.
Согласно конкретному варианту осуществления, эти флаги являются общими для двух или трех компонентов текущей LCU. Другими словами, флаги типов sao_merge_left_flag и sao_merge_up_flag больше не используются для того, чтобы указывать, что SAO-параметры, которые должны быть использованы для обработки компонента текущей LCU, представляют собой SAO-параметры, используемые для обработки идентичного компонента другой LCU, но указывать, что SAO-параметры, которые должны быть использованы для обработки двух или трех компонентов текущей LCU, представляют собой SAO-параметры, используемые для обработки идентичных двух-трех компонентов другой LCU. Для иллюстрации, флаги, обозначаемые sao_merge_left_flag_UV и sao_merge_up_flag_UV, могут рассматриваться для того, чтобы указывать, что SAO-параметры, которые должны быть использованы для обработки компонентов U и V текущей LCU, представляют собой SAO-параметры, используемые для обработки компонентов U и V LCU, размещенной слева или выше текущей LCU, соответственно.
Согласно другому конкретному варианту осуществления, флаги используются для того, чтобы указывать, что SAO-параметры, которые должны быть использованы для обработки двух или трех компонентов текущей LCU, представляют собой SAO-параметры, используемые для обработки компонента другой LCU. Как следствие, флаг, ассоциированный с компонентом текущей LCU, может указывать, какая из левой или верхней LCU должна быть использована в качестве ссылки, и в этой LCU, какой из компонентов должен быть использована для получения SAO-параметров. Следовательно, флаги могут быть следующими: sao_merge_left_flag_Y, sao_merge_left_flag_U, sao_merge_left_flag_V, sao_merge_up_flag_Y, sao_merge_up_flag_U и sao_merge_up_flag_V. Для иллюстрации, SAO-параметры компонента текущей LCU, которая ссылается на флаг sao_merge_left_flag_V, представляют собой SAO-параметры, ассоциированные с компонентом V LCU, размещенной слева от текущей LCU.
В этом варианте осуществления, SAO-параметры, ассоциированные с каждым компонентом LCU, предпочтительно являются идентичными (для каждого компонента этой LCU), когда они ссылаются на компоненты другой LCU. Для иллюстрации, SAO-параметры всех компонентов текущей LCU, компонент которой ссылается на флаг sao_merge_left_flag_V, представляют собой SAO-параметры, ассоциированные с компонентом V LCU, размещенной слева от текущей LCU. Соответственно, SAO-параметры левого компонента сигнала (Y) яркости могут использоваться для фильтрации компонента сигнала (U) цветности текущей LCU.
Фиг. 15 является блок-схемой последовательности операций, иллюстрирующей этапы способа согласно первому варианту осуществления изобретения для определения параметров, которые должны быть использованы в петлевом фильтре для обработки области текущего кадра. Пример, приведенный на фиг. 15, может рассматриваться в качестве комбинации двух конкретных вариантов осуществления, описанных выше в данном документе.
На этапе 1502, флаг, обозначаемый sao_merge_left_flag_Y, получается из потока 1501 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет). Если флаг, обозначаемый sao_merge_left_flag_Y, представляет собой "истину", на этапе 1503 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов Y, U и V текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации компонента Y в LCU, размещенной слева от текущей LCU.
Соответственно, значение флагов sao_type_idx_Ul и sao_type_idx_V для текущей LCU, задающих тип петлевого фильтра, который должен применяться к компоненту U и V текущей LCU, считается равным значению флага sao_type_idx_Y LCU, размещенной слева от текущей LCU. Аналогично, другие SAO-параметры, используемые для фильтрации компонентов U и V текущей LCU, например, значения смещения и, если требуется, полосовые позиции (sao_band_position_U и sao_band_position_V), получаются из SAO-параметров компонента Y LCU, размещенной слева от текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_left_flag_Y, представляет собой "ложь", флаг, обозначаемый sao_merge_up_flag_Y, получается из потока 1501 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет), на этапе 1504. Если флаг, обозначаемый sao_merge_up_flag_Y, представляет собой "истину", на этапе 1505 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов Y, U и V текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации компонента Y в LCU, размещенной выше текущей LCU.
Соответственно, значение флагов sao_type_idx_U и sao_type_idx_V для текущей LCU, задающих тип петлевого фильтра, который должен применяться к компонентам U и V текущей LCU, считается равным значению флага sao_type_idx_Y LCU, размещенной выше текущей LCU. Аналогично, другие SAO-параметры, используемые для фильтрации компонентов U и V текущей LCU, например, значения смещения и, если требуется, полосовые позиции (sao_band_position_U и sao_band_position_V) получаются из SAO-параметров компонента Y LCU, размещенной выше текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_up_flag_Y, представляет собой "ложь", SAO-параметры для компонента Y текущей LCU извлекаются из потока 1501 битов на этапе 1511, как описано выше в отношении фиг. 14. В таком случае, значение флагов sao_type_idx_Y, sao_band_position_Y (при необходимости) и четыре Offsetj_Y извлекаются из потока 1501 битов.
Затем, если флаг, обозначаемый sao_merge_up_flag_Y, представляет собой "ложь", на этапе 1506 флаг, обозначаемый sao_merge_left_flag_UV, получается из потока 1501 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет). Если флаг, обозначаемый sao_merge_left_flag_UV, представляет собой "истину", на этапе 1507 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов U и V текущей LCU равны SAO-параметрам, ранее определенным для фильтрации компонентов U и V, соответственно, в LCU, размещенной слева от текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_left_flag_UV, представляет собой "ложь", флаг, обозначаемый sao_merge_up_flag_UV, получается из потока 1501 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет), на этапе 1508. Если флаг, обозначаемый sao_merge_up_flag_UV, представляет собой "истину", на этапе 1509 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов U и V текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации компонентов U и V, соответственно, в LCU, размещенной выше текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_up_flag_UV, представляет собой "ложь", SAO-параметры для компонентов U и V текущей LCU извлекаются из потока 1501 битов на этапе 1510, как описано выше в отношении фиг. 14. В таком случае, значение флагов sao_type_idx_U, sao_type_idx_V, sao_band_position_U (при необходимости), sao_band_position_V (при необходимости), четыре Offsetj_U и четыре Offsetj_V извлекаются из потока 1501 битов. На этой стадии (ссылка с номером 1512) доступны все SAO-параметры для всех компонентов текущей LCU.
Затем, на этапе 1513, петлевой SAO-фильтр применяется ко всем компонентам текущей LCU, и процесс декодирования переходит к следующему этапу 1314 декодирования.
Также согласно конкретному варианту осуществления, могут использоваться флаги, общие для всех компонентов текущей LCU, например, флаги sao_merge_left_flag_YUV и sao_merge_up_flag_YUV. В таком случае, если оба флага представляют собой "ложь", могут использоваться флаги, направленные на каждый компонент, обобщенно называемые sao_merge_left_flag_X и sao_merge_up_flag_X (при этом X означает Y, U или V).
Фиг. 16 является блок-схемой последовательности операций, иллюстрирующей этапы способа согласно первому варианту осуществления изобретения для определения параметров, которые должны быть использованы в петлевом фильтре для обработки области текущего кадра. Пример, приведенный на фиг. 16, более конкретно направлен на третий конкретный вариант осуществления, описанный выше в данном документе.
На этапе 1602, флаг, обозначаемый sao_merge_left_flag_YUV, получается из потока 1601 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет). Если флаг, обозначаемый sao_merge_left_flag_YUV, представляет собой "истину", на этапе 1603 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов V, U и V текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации компонента V, U и V, соответственно, в LCU, размещенной слева от текущей LCU.
Соответственно, значение флагов sao_type_idx_Y, sao_type_idx_U и sao_type_idx_V для текущей LCU, задающих тип петлевого фильтра, который должен применяться к компонентам V, U и V текущей LCU, считается равным значению соответствующих флагов LCU, размещенной слева от текущей LCU. Аналогично, другие SAO-параметры, используемые для фильтрации компонентов V, U и V текущей LCU, получаются из SAO-параметров соответствующего компонента LCU, размещенной слева от текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_left_flag_YUV, представляет собой "ложь", флаг, обозначаемый sao_merge_up_flag_YUV, получается из потока 1601 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет), на этапе 1604. Если флаг, обозначаемый sao_merge_up_flag_YUV, представляет собой "истину", на этапе 1605 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонентов V, U и V текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации компонентов V, U и V, соответственно, в LCU, размещенной выше текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_up_flag_YUV, представляет собой "ложь", декодируются флаги, ассоциированные с каждым компонентом текущей LCU, для определения того, должны или нет SAO-параметры быть получены в качестве функции от предыдущих обработанных SAO-параметров.
С этой целью, на этапе 1606 начинается петля для последовательной обработки каждого компонента текущей LCU. Для каждого компонента X (где X равно Y, U или V), флаг, обозначаемый sao_merge_left_flag_X, извлекается из потока 1601 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет), на этапе 1607. Если флаг, обозначаемый sao_merge_left_flag_X, представляет собой "истину", на этапе 1608 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонента X текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации идентичного компонента в LCU, размещенной слева от текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_left_flag_X, представляет собой "ложь", флаг, обозначаемый sao_merge_up_flag_X, получается из потока 1601 битов, и выполняется тест, чтобы определять то, равно или нет значение этого флага единице (т.е. представляет он собой "истину" или нет), на этапе 1609. Если флаг, обозначаемый sao_merge_up_flag_X, представляет собой "истину", на этапе 1610 определяется то, что SAO-параметры, которые должны использоваться для фильтрации компонента X текущей LCU, равны SAO-параметрам, ранее определенным для фильтрации идентичного компонента в LCU, размещенной выше текущей LCU.
В противном случае, если флаг, обозначаемый sao_merge_up_flag_X, представляет собой "ложь", SAO-параметры для компонента X для текущей LCU извлекаются из потока 1601 битов на этапе 1611.
Затем, после получения SAO-параметров для компонента X текущей LCU, на этапе 1612, выполняется тест, чтобы определять то, является или нет компонент X компонентом V. Если компонент X не является компонентом V, процесс переходит к этапу 1606, чтобы обрабатывать следующий компонент. В противном случае, если компонент X является компонентом V, SAO-параметры декодируются и доступны для всех компонентов текущей LCU на этапе 1613.
Затем, на этапе 1614, компоненты текущей LCU фильтруются в петлевом SAO-фильтре с использованием полученных SAO-параметров, и декодер переходит к следующему этапу декодирования на этапе 1615.
Следует отметить, что варианты осуществления, описанные в отношении фиг. 15 и 16, основаны на LCU-синтаксисе, описанном в отношении фиг. 13. Тем не менее, эти варианты осуществления также могут быть основаны на SAO-синтаксисе для APS, как описано в отношении фиг. 12. В этом конкретном случае, параметры, совместно используемые компонентами, представляют собой SAO-параметры, а также флаги, обозначаемые "уникальность" и "повторение строки", и элементы синтаксиса, обозначаемые sao_run_diff и sao_merge_up_flag.
Как описано выше, в частности, в отношении таблицы 1 приложения, элемент синтаксиса или флаг, обозначаемый sao_type_idx, указывает, что текущий компонент текущей LCU не обрабатывается, когда его значение равно нулю. В противном случае, он указывает SAO-тип. Если значение флага sao_type_idx равно 1, 2, 3 или 4, классификация краевых смещений используется для того, чтобы фильтровать текущую LCU, а если значение флага sao_type_idx равно 5, полосовое SAO-смещение используется для того, чтобы фильтровать текущую LCU.
Согласно вариантам осуществления изобретения, как описано выше, такие флаги, обозначаемые sao_type_idx, могут быть совместно использованы двумя или тремя компонентами.
В другом конкретном варианте осуществления, компоненты могут совместно использовать только некоторые значения флага, обозначаемого sao_type_idx. Другими словами, второй компонент совместно использует значение флага, обозначаемого sao_type_idx первого компонента, только если это значение принадлежит предварительно определенному набору значений. Следовательно, согласно этому варианту осуществления, значение флага, обозначаемого sao_type_idx, условно совместно используется.
Для иллюстрации, можно предположить, что значение флага, обозначаемого sao_type_idx, ассоциированного с компонентом Y, совместно используется, для данной LCU, с компонентом U. Тем не менее, может появляться возможность того, что если это значение указывает SAO-классификацию типа краевого смещения (т.е. sao_type_idx=1, 2, 3 или 4), направление краевого смещения при этом получается из части потока битов, ассоциированной с компонентом U, вместо использования направления классификации краевых смещений, как представлено посредством компонента Y. Если значение флага, обозначаемого sao_type_idx, ассоциированного с компонентом Y, не равно краевому смещению (sao_type_idx=0 или 5), информация направления не извлекается из потока битов. Другими словами, если SAO-тип для компонента Y равен нулю или пяти, то этот SAO-параметр (связанный с типом) должен быть использован посредством компонентов U и V. Тем не менее, если SAO-тип представляет собой тип краевого смещения (т.е. значение от одного до четырех) для компонента Y, то выделенные SAO-типы должны быть использованы для компонентов U и V.
Как описано выше, SAO-параметры (ассоциированные с петлевым SAO-фильтром с использованием классификации пикселов типа краевого смещения) содержат четыре смещения, которые связаны с четырьмя классами из пяти возможных классов. Первый класс (класс "0") соответствует отсутствию SAO-фильтрации. Здесь следует напомнить, что направление классификации краевых смещений передается в служебных сигналах в SAO-типе.
Согласно вариантам осуществления изобретения, эти четыре смещения могут быть совместно использованы двумя или тремя компонентами, когда фильтр на основе краевого смещения выбирается для текущей LCU, независимо от направления классификации краевых смещений.
Согласно первому конкретному варианту осуществления, идентичные смещения используются для двух или трех компонентов. Следовательно, только четыре смещения должны быть извлечены из потока битов вместо восьми или двенадцати, если, соответственно, два или три компонента совместно используют идентичные четыре смещения для фильтрации пикселов с тремя компонентами.
Естественно, такие общие смещения должны быть вычислены на стороне кодера для обеспечения возможности обработки двух или трех компонентов с идентичными смещениями. Как описано ниже, этот выбор кодирования является идентичным выбору, используемому для фильтрации на основе полосового смещения.
В другом конкретном варианте осуществления, смещения Ozj, ассоциированные с компонентом Z, извлекаются из смещений Oxj другого компонента X согласно весовому коэффициенту βj следующим образом:
Ozj=βj Oxj
Весовой коэффициент βj может быть идентичным независимо от того, составляет значение j (β=βj) или нет. Значение β или значения βj могут быть предварительно определены и равны константе либо могут передаваться в конкретных заголовках, таких как заголовок последовательности или заголовок слайса, либо могут даже передаваться на основе каждой LCU (или, если обобщать, на основе каждой области кадра).
Когда значения варьируются между LCU, они могут быть динамически вычислены на сторонах кодера и декодера.
Значения весовых коэффициентов могут быть вычислены согласно следующей формуле:
,
где cZi является значением компонента Z пиксела i класса j, и где cZin1 и cZin2 являются значениями компонента Z соседних узлов пиксела i класса j, как описано выше, в частности, в отношении таблицы 2 приложения.
Соответственно, значение весового коэффициента βj является отношением между средней (максимальной) разностью компонента Z классифицированных пикселов и их соседними пикселами и средней (максимальной) разностью компонента X классифицированных пикселов и их соседними пикселами. Другие взаимосвязи или формулы могут быть использованы для того, чтобы вычислять значения весового коэффициента βj (или β).
В еще одном другом конкретном варианте осуществления, значение смещений, кодированных в потоке битов, может зависеть от значений весового коэффициента βj (или β) независимо от того, как они определяются. В таком варианте осуществления, если значение весового коэффициента β или βj меньше единицы, значение смещения Ozj кодируется в потоке битов вместо значения смещения Oxj.
Фактически, в формуле Ozj=βj Oxj, Ozj<Oxj, если βj<1. Как следствие, значению Ozj смещения требуется меньшее число битов для кодирования в потоке битов, чем значению Oxj. Поскольку декодер знает или может определять значения весового коэффициента βj, он может декодировать значение Ozj из потока битов и определять значение Oxj согласно следующей формуле:
Ozj=(1/βj)× Oxj
В еще одном конкретном варианте осуществления, абсолютное значение смещений Ozj, ассоциированных со вторым компонентом Z, равно абсолютному значению смещений Ox(5-j), ассоциированных с первым компонентом X. Здесь следует отметить, что согласно этому конкретному варианту осуществления, используется только абсолютное значение, поскольку знак смещения для класса краевого смещения предварительно определяется, чтобы уменьшать артефакты.
Фиг. 17 иллюстрирует такой конкретный вариант осуществления, согласно которому значения смещений, ассоциированных с компонентом, соответствуют зеркальным значениям смещений, ассоциированных со вторым компонентом. Как проиллюстрировано, смещение для 4 классов компонента Z извлекается из смещений от компонента X посредством рассмотрения обратного порядка смещений. Здесь следует напомнить, что знаки, применяемые к смещениям, выводятся из классификации.
В еще одном другом конкретном варианте осуществления, зеркальные значения смещений, ассоциированных с первым компонентом, используемым в качестве смещений, ассоциированных со вторым компонентом, могут быть взвешены с помощью весовых коэффициентов βj. Согласно этому конкретному варианту осуществления, абсолютное значение смещений Ozj, ассоциированных со вторым компонентом Z, равно взвешенному абсолютному значению смещений Ox(5-j), ассоциированных с первым компонентом X, согласно следующей формуле:
Ozj=βj Ox(5-j)
Как описано выше, фильтру на основе полосового SAO-смещения требуются два типа параметров. Первый тип направлен на позицию (sao_band_position), а второй тип направлен на четыре смещения, связанные с четырьмя классами полосы, которая задается от данной позиции. Согласно вариантам осуществления изобретения, два типа параметров, ассоциированных с компонентами области кадра, могут быть получены отдельно от соответствующих параметров, ассоциированных с компонентами другой, уже обработанной, области кадра. Тем не менее, варианты осуществления, которые связаны с позицией (sao_band_position), и варианты осуществления, которые связаны со смещениями, могут быть легко комбинированы. Кроме того, как описано выше в отношении вариантов осуществления для краевого смещения, эти варианты осуществления или комбинации вариантов осуществления, которые связаны с позициями и смещениями для фильтрации на основе полосового смещения, применяются в качестве функции от значений флагов объединения или SAO-синтаксиса для APS, как описано выше.
Следует отметить, что поскольку SAO-параметры, ассоциированные с компонентом, могут быть использованы для того, чтобы обрабатывать два или три компонента, нижеприведенное описание фокусируется на использовании SAO-параметров, ассоциированных с одним компонентом, для обработки двух компонентов для иллюстрации.
Фиг. 18 иллюстрирует то, как значения смещений, ассоциированных со вторым компонентом Z, могут быть получены из значений смещений, ассоциированных с первым компонентом X, при применении петлевого SAO-фильтра с использованием классификации полосовых смещений.
Ссылка с номером 1801 иллюстрирует использование SAO-параметров, в частности, смещений, ассоциированных с компонентами для применения петлевого SAO-фильтра с использованием классификации полосовых смещений, согласно текущим техническим требованиям HEVC. Смещения, ассоциированные с каждым компонентом, кодируются в потоке битов, используемом для передачи кодированных изображений. Для иллюстрации, поток битов содержит смещения 0x1-0x4, обобщенно называемые Oxj, ассоциированные с первым компонентом X, и смещения Oz1-Oz4, обобщенно называемые Ozj, ассоциированные с первым компонентом Z. Как проиллюстрировано посредством ссылки с номером 1801, смещения Oxj соответствуют первой полосе, содержащей четыре последовательных класса, обозначаемые BO X, и смещения Ozj соответствуют второй полосе, также содержащей четыре последовательных класса, обозначаемые BO Z.
Ссылка с номером 1802 показывает первый конкретный вариант осуществления, в котором смещения Ozj равны смещениям Oxj. Следовательно, смещение Ozj не кодируется в потоке битов. Они могут быть восстановлены посредством использования соответствующих флагов объединения, как описано выше в отношении фильтрации на основе краевого смещения. Аналогично, весовой коэффициент β или βj может быть использован таким образом, что смещения Ozj могут быть определены в качестве функции от смещений Oxj (Ozj=βj Oxj). С другой стороны, значение или значения весового коэффициента β или βj могут быть предварительно определены или представлены на разных уровнях в потоке битов (на уровне последовательности, уровне кадра, уровне слайса или уровне LCU). В этом контексте, значение или значения весового коэффициента β или βj могут быть отрицательными (для краевого смещения, знак смещений определяется в качестве функции от класса). В частности, весовой коэффициент может быть равным минус один (β=-1).
В еще одном другом конкретном варианте осуществления, значение или значения весового коэффициента β или βj могут быть определены динамически. Для иллюстрации, значение или значения весового коэффициента β или βj могут быть определены в качестве функции от позиции полосы (sao_band_position). Например, если класс j полосы Z и класс j полосы X не находятся в идентичных подыинтервалах в виде центра интервала (представлен полужирной линией на фиг. 18), β=-1, в противном случае β=1. Здесь считается, что полный интервал разбивается на два подыинтервала, причем первый из них представляет собой интервал пиксельных значений от 0 до 127, а второй из них представляет собой интервал пиксельных значений от 128 до 256 (когда 8 битовых глубин используются для пиксельного значения).
Согласно другому варианту осуществления, значения весового коэффициента βj определяются в качестве функции от отношения между расстоянием от текущего класса компонента Z (или набора классов для значения весового коэффициента β) до центра интервала и расстоянием от текущего класса компонента X (или набора классов для значения весового коэффициента β) до центра интервала, которое может выражаться следующим образом:
,
где sao_band_position_Zj-16 является расстоянием между текущим компонентом Z и центром интервала, а sao_band_position_Xj-16 является расстоянием между текущим компонентом X и центром интервала. В другом варианте осуществления, может рассматриваться обратное отношение. Что касается краевого смещения, другие взаимосвязи и формулы могут быть использованы для того, чтобы определять значение или значения весового коэффициента β или βj. Кроме того, как описано выше, смещения Oxj или смещения Ozj могут быть вставлены в поток битов в зависимости от значения или значений весового коэффициента β или βj (независимо от того, как они определяются), чтобы уменьшать число битов, требуемое для того, чтобы кодировать смещения Oxj или смещения Ozj.
Ссылка с номером 1803 иллюстрирует то, как зеркальные значения смещений, ассоциированных с первым компонентом, могут быть использованы в качестве значений смещений, ассоциированных со вторым компонентом для фильтрации на основе полосового смещения. Как описано выше в отношении фильтрации на основе краевого смещения, взаимосвязи между смещениями Ozj и Oxj могут выражаться посредством следующей формулы:
С другой стороны, этот конкретный вариант осуществления может быть комбинирован с использованием весового коэффициента согласно формуле Ozj=βj Ox(5-j). В конкретном варианте осуществления, βj равен -1.
Конкретное извлечение смещений для фильтрации на основе полосового смещения является увеличением или снижением размера классов, обеспечивающих модификацию классификации полосовых смещений пикселов. Ссылка с номером 1604 иллюстрирует пример такой адаптации классификации. Согласно проиллюстрированному примеру, число пикселов в расчете на класс делится на два для компонента Z по сравнению с классификацией полос для компонента X. Следовательно, классификация пикселов для компонента Z, согласно фильтрации на основе полосового смещения, требует проверки шести битов. Другими словами, шесть старших битов должны проверяться на предмет классификации пиксела. Следовательно, можно считать, что интервал в полнопиксельное значение разделяется на 64 диапазона для компонента Z.
Эта взаимосвязь может быть фиксированной для реализации либо может быть передана в служебных сигналах на уровне последовательности, кадра, слайса или LCU. Она может определяться динамически с учетом отношения размера диапазона пикселов для компонента X и размера диапазона пикселов для компонента Z на уровне LCU (либо последовательности, кадра или слайса). Соответственно, размер классов для компонента Z может быть определен следующим образом:
,
для всех i=0-N, где Pzi являются пикселами компонента Z, а Pxi являются пикселами компонента X. Чтобы упрощать классификацию полос, число пиксельных значений в расчете на класс равно степени двух (обеспечивая возможность битовой проверки старших битов).
Этот конкретный вариант осуществления может быть комбинирован со всеми другими конкретными вариантами осуществления, описанными для извлечения смещений полосового смещения, как проиллюстрировано посредством ссылки с номером 1805, на которой этот вариант осуществления комбинируется с использованием смещений зеркальных значений, ассоциированных с компонентом X.
В другом конкретном варианте осуществления, который является применимым как к краевой, так и к полосовой SAO-фильтрации, смещения от одного компонента могут извлекаться из двух или трех компонентов.
Все описанные варианты осуществления, применимые как к краевой, так и к полосовой SAO-фильтрации, которые связаны с использованием смещений из одного компонента для того, чтобы определять (или извлекать) смещения для одного или двух других компонентов, представляют преимущества, в частности, касательно размера запрашиваемого буфера запоминающего устройства, когда такое извлечение систематически используется (для всех LCU), поскольку смещения второго компонента и/или третьего компонента не должны обязательно сохраняться.
В другом конкретном варианте осуществления (как для краевой, так и для полосовой SAO-фильтрации), извлечение смещений между компонентами может быть использовано для того, чтобы прогнозировать смещения от второго компонента согласно смещениям от первого компонента. (Описание посвящено совместному использованию смещений между компонентами). В этом варианте осуществления, остатки смещений компонента Z кодируются в потоке битов вместо кодирования непосредственно значения смещений компонента Z. На стороне декодера смещения компонента Z получаются посредством суммирования остаточных смещений со смещениями компонента X.
В другом конкретном варианте осуществления, применимом к SAO-фильтрации как на основе краевого, так и на основе полосового смещения, извлечение смещений между компонентами может быть использовано в качестве контекста для контекстного арифметического кодирования смещений, ассоциированных со вторым компонентом, согласно смещениям, ассоциированным с первым компонентом.
В еще одном другом конкретном варианте осуществления, применимом как к краевой, так и к полосовой SAO-фильтрации, извлечение смещений между двумя компонентами может передаваться в служебных сигналах в потоке битов и может конкурировать с традиционным режимом, посредством чего смещения кодируются в потоке битов для всех компонентов.
Как описано выше, полосовая позиция (sao_band_position) является позицией первого класса полосы в интервалах в полнопиксельное значение. Посредством рассмотрения стандартной пятибитовой проверки значение параметра sao_band_position принадлежит диапазону [0; 32]. Согласно вариантам осуществления изобретения, этот параметр может быть совместно использован двумя или тремя компонентами. Для иллюстрации, описание фокусируется на извлечении этого параметра, связанного с компонентом Z, из его значения, ассоциированного с компонентом X.
Фиг. 19 иллюстрирует то, как значение параметра sao_band_position, ассоциированного со вторым компонентом Z, может быть получено из значения параметра sao_band_position, ассоциированного с первым компонентом X, при применении петлевого SAO-фильтра с использованием классификации полосовых смещений.
Ссылка с номером 1901 иллюстрирует пример двух значений sao_band_position, которые передаются в потоке битов согласно текущим техническим требованиям HEVC.
В конкретном варианте осуществления, проиллюстрированном посредством ссылки с номером 1902, общее значение sao_band_position используется как для компонента Z, так и для компонента X.
В конкретных вариантах осуществления, центральная позиция полосы сравнивается с центром полнопиксельного интервала. Результирующее значение равно sao_band_position-14 (14 соответствует центру интервала (16) минус центр полосы (-2)).
Соответственно, в конкретном варианте осуществления, проиллюстрированном посредством ссылки с номером 1903, sao_band_position_Z, ассоциированный с компонентом Z, задается симметричным sao_band_position_X, ассоциированному с компонентом X, относительно центра полнопиксельного интервала. Следовательно, считается, что (sao_band_position_Z-14) равен -(sao_band_position_X-14). Поскольку sao_band_position_X равен шести в этом примере, sao_band_position_Z в силу этого равен двадцати двум (-(6-14)+14=22).
В еще одном конкретном варианте осуществления, проиллюстрированном посредством ссылки с номером 1904, весовой коэффициент β используется для того, чтобы определять значение sao_band_position_Z, ассоциированное с компонентом Z, в качестве функции от значения sao_band_position_X, ассоциированного с компонентом X, и позиции центра полнопиксельного интервала. Это основано, аналогично предыдущему варианту осуществления, на относительной позиции между центром полнопиксельного интервала и значением sao_band_position каждого компонента X и Z. Согласно этому примеру, взаимосвязь, которая должна быть использована, может представлять собой следующее:
sao_band_position_Z-14=β(sao_band_position_X-14)
Другими словами:
sao_band_position_Z=β(sao_band_position_X-14)+14.
В примере, приведенном на фиг. 19, β=-1/2. В этом случае, sao_band_position_X равен 6, и, следовательно, sao_band_position_Z равен восемнадцати (-1/2 (6-14)+14=18).
Значение весового коэффициента β может быть предварительно определено для реализации либо передано на любом уровне (последовательности, кадра, слайса или LCU).
В еще одном другом конкретном варианте осуществления, применимом как к краевой, так и к полосовой SAO-фильтрации, извлечение параметра sao_band_position между двумя компонентами может передаваться в служебных сигналах в потоке битов и конкурировать с традиционным режимом, в котором значение параметра sao_band_position кодируется в потоке битов для всех компонентов.
Выбор при кодировании SAO-параметров, когда SAO-параметры совместно используются двумя или тремя цветовыми компонентами, предпочтительно связан с эффективностью кодирования. Другими словами, выбор совместно используемых SAO-параметров преимущественно учитывает эффективность кодирования этих параметров и ассоциированных значений. Здесь следует напомнить, что выбор наилучшего смещения с точки зрения функции затрат на искажение в зависимости от скорости передачи является идентичным для фильтрации на основе как краевого, так и полосового смещения.
Выборы при кодировании смещений, когда эти смещения совместно используются двумя компонентами Z и X, безотносительно используемого SAO-типа (краевое или полосовое), описаны в данном документе ниже перед выбором середины полосы.
Как описано в отношении фиг. 3, иллюстрирующего процесс кодирования для определения оптимального смещения с точки зрения искажения для одного компонента, значения SumXj и SumNbPixXj, связанные с компонентом X, и значения SumZj и SumNbPixZj, связанные с компонентом Z, известны для всех классов j. SumXj и SumZj являются суммами разностей между пиксельными значениями в классе j и их исходными значениями, соответственно, для компонентов X и Z. SumNbPixXj и SumNbPixZj являются числом пикселов в классе j, соответственно, для компонентов X и Z. Предполагается, что значения этих четырех параметров уже вычислены для всех классов.
В конкретном варианте осуществления, согласно тому, для какого объекта необходимо получать Ozj=Oxj, оптимальное смещение Ooptj может быть определено посредством следующей формулы:
Ooptj=Ozj=Oxj=(SumXj+SumZj)/(SumNbPixXj+SumNbPixZj)
Затем, как описано выше для независимой обработки каждого компонента, кодер определяет наилучшее смещение Oxj с точки зрения критерия искажения в зависимости от скорости передачи.
Это состоит, в конкретном варианте осуществления согласно который Ozj=Oxj, в минимизации функции затрат на искажение в зависимости от скорости передачи следующим образом:
J(Oxj, Ozj)=SumNbPixXj×(Oxj×Oxj)-SumXj×Oxj×2+SumNbPixZ(j)×(Oxj×Oxj)-SumZ(j)×Oxj×2+λ R(Oxj)
Это может быть упрощено согласно следующему выражению:
J(Oxj, Ozj)=(SumNbPixXj+SumNbPixZj)×(Oj×Oj)-(SumXj+SumZj)×Oj×2+λ R(Oj)
В конкретном варианте осуществления, согласно которому зеркальные значения предназначены для того, чтобы определять смещения (Ozj=-Ox(5-j)) для случая краевого смещения, оптимальное смещение может быть задано посредством следующей формулы:
Ooptj=Oz(5-j)=Oxj=(SumXj-SumZ(5-j))/(SumNbPixXj+SumNbPixZ(5-j))
Затем, кодер определяет наилучшее смещение Oxj с точки зрения критерия искажения в зависимости от скорости передачи. Это состоит, согласно конкретному варианту осуществления, согласно которому Oz(5-j)=-Oxj, в минимизации функции затрат на искажение в зависимости от скорости передачи следующим образом:
J(Oxj, Ozj)=SumNbPixXj×(Oxj×Oxj)-SumXj×Oxj×2+SumNbPixZ(5-j)×(Oz(5-j)×Oz(5-j))-SumZ(5-j)×Oz(5-j)×2+λ R(Oxj)
или
J(Oxj, Ozj)=SumNbPixXj×(Oxj×Oxj)-SumXj×Oxj×2+SumNbPixZ(5-j)×(Oxj×Oxj)+SumZ(5-j)×Oxj×2+λ R(Oxj)
В конкретном варианте осуществления, согласно которому Ozj=-Oxj, оптимальное смещение Ooptj определяется посредством следующей формулы:
Ooptj=(SumXj-SumZj)/(SumNbPixXj+SumNbPixZj)
Затем, кодер определяет наилучшее смещение Oxj с точки зрения критерия искажения в зависимости от скорости передачи. Это состоит, согласно конкретному варианту осуществления, согласно которому Ozj=-Oxj, в минимизации функции затрат на искажение в зависимости от скорости передачи следующим образом:
J(Oxj, Ozj)=SumNbPixXj×(Oxj×Oxj)-SumXj×Oxj×2+SumNbPixZ(j)×(Ox(j)×Ox(j))+SumZ(j)×Ox(j) ×2+λ R(Oxj),
Это может быть упрощено посредством следующего выражения:
J(Oxj, Ozj)=(SumNbPixXj+SumNbPixZj)×(Oxj×Oxj)-(SumXj-SumZj)×Oxj×2+λ R(Oxj)
В конкретном варианте осуществления, согласно которому Ozj=βj Oxj, кодер определяет независимо оптимальное значение OoptXj для компонента X и оптимальное значение OoptZj для компонента Z. Затем, кодер определяет наилучшее смещение Oxj с точки зрения критерия искажения в зависимости от скорости передачи. Это состоит, согласно конкретному варианту осуществления Ozj=βj Oxj, в минимизации функции затрат на искажение в зависимости от скорости передачи, как описано в отношении фиг. 4.
Фиг. 20 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения оптимального смещения, которое должно быть использовано посредством двух или трех компонентов согласно критерию искажения в зависимости от скорости передачи. Процесс, проиллюстрированный на фиг. 20, основан на процессе, описанном в отношении фиг. 4. Этапы 2001, 2004, 2005 и 2006 являются аналогичными этапам 401, 404, 405 и 406, соответственно.
Этап 2002 отличается от этапа 402 тем, что петля, начинаемая на этапе 2002, задает смещение Oxj варьирующимся от sign(OoptXj)×max(f×OoptXj, OoptZj) до нуля, где f равен 1/βj, если βj<1, и βj в противном случае.
В обобщенном варианте осуществления, в котором Ozj=βj Oxj, критерий искажения в зависимости от скорости передачи вычисляется согласно следующей формуле:
J(Oxj, Ozj)=SumNbPixXj×(Oxj×Oxj)-SumXj×Oxj×2+SumNbPixZ(j)×(βj×Oxj×βj×Oxj)-SumZ(j)×βj×Oxj×2+λ R(Oxj)
Это также может записываться следующим образом:
J(Oxj, Ozj)=(SumNbPixXj+SumNbPixZ(j)×(βj)×(βj))×(Oxj×Oxj)-(SumXj+SumZ(j)×βj)×Oxj×2+λ R(Oxj)
На этапе 2003, для иллюстрации рассматривается конкретный случай, в котором βj=-1.
Выбор значения sao_band_position, совместно используемого двумя компонентами X и Z, может быть определен согласно следующим взаимосвязям:
sao_band_position_Z=β(sao_band_position_X-14)+14.
Фиг. 21 является блок-схемой последовательности операций, иллюстрирующей этапы способа для определения полосовой SAO-позиции, совместно используемой двумя компонентами. Это основано на процессе, описанном в отношении фиг. 5. Процесс, проиллюстрированный на фиг. 21, направлен на определение значения sao_band_position_Z, ассоциированного с компонентом Z, из значения sao_band_position_X, ассоциированного с компонентом X.
Основное отличие между процессом, проиллюстрированным на фиг. 21, и процессом, проиллюстрированным на фиг. 5, связано с модулем 2105, в котором значения искажения в зависимости от скорости передачи классов, ассоциированных с компонентом Z, и классов, ассоциированных с компонентом X, суммируются согласно следующей формуле:
J'i=J'i+JZj+JXjx,
где JZj является значением искажения в зависимости от скорости передачи для класса j компонента Z, и JXjx является значением искажения в зависимости от скорости передачи для класса jx компонента X. Кроме того, чтобы выбирать совместно sao_band_position_Z с sao_band_position_X, индекс jx извлекается согласно следующей формуле:
sao_band_position_Z=β(sao_band_position_X-14)+14.
Соответственно, jx равен β(j-14)+14.
Согласно второму основному варианту осуществления, который не допускает компонентной классификации, чтобы уменьшать сложность декодирования, пикселы в SAO-классе определяются в качестве функции от одного компонента. Пиксельные позиции затем используются для того, чтобы определять компонент или компоненты, которые должны фильтроваться. Соответственно, если пиксельный компонент должен фильтроваться согласно этому компоненту, фильтруются другой компонент или два других компонента этого пиксела.
Фиг. 22 является блок-схемой последовательности операций, иллюстрирующей этапы способа для декодирования потока битов согласно конкретному варианту осуществления изобретения. Процесс, проиллюстрированный на этом чертеже, основан на процессе, проиллюстрированном на фиг. 6. Он направлен на использование классификации компонента X для того, чтобы фильтровать компонент Z.
Начальный этап 2201 состоит в определении SAO-параметров согласно процессам, описанным в отношении фиг. 12, 13 и 14. Тем не менее, согласно алгоритму, проиллюстрированному на фиг. 22, только значение параметра sao_type_idx и, если оно равно пяти, значение параметра sao_band_position для компонента X, определяются на этапе 2202 из потока битов (не представлен). Фактически, эти параметры связаны с классификацией, они не необходимы для того, чтобы классифицировать компонент Z, который фильтруется согласно классификации компонента X.
Затем, на этапе 2203 четыре смещения, ассоциированные с компонентом X, получаются из потока битов. Аналогично, четыре смещения, ассоциированные с компонентом Z, получаются из потока битов на этапе 2204. Следует отметить, что эти смещения могут быть определены в качестве функции от других смещений, ассоциированных с другими компонентами и/или с другой LCU, как описано выше.
На этапе 2205, счетная переменная j задается равной значению нуль. Затем, первый пиксел Pxi области кадра компонента X (ссылка с номером 2206), содержащей N пикселов, извлекается на этапе 2207. Аналогично, первый пиксел Pzi области кадра компонента Z (ссылка с номером 2208) извлекается на этапе 2209. Для иллюстрации, здесь следует принимать во внимание, что область кадра компонента Z содержит также N пикселов (компоненты X и Z имеют идентичное число пикселов в расчете на область кадра).
Затем, на этапе 2210, компонент X первого пиксела Pxi классифицируется согласно классификации краевых смещений или классификации полосовых смещений благодаря значению параметра sao_type_idx_X (и при необходимости значению параметра sao_band_position_X), как описано выше в отношении таблицы 2 приложения и фиг. 2, соответственно.
На этапе 2211, выполняется тест, чтобы определять то, должен или нет фильтроваться компонент X пиксела Pxi (т.е. принадлежит или нет Pxi SAO-классу). Если Pxi принадлежит SAO-классу, связанное число j классов идентифицируется, и соответствующее значение смещения получается на этапе 2212 из таблицы смещений, ассоциированной с компонентом X. Затем, на этапе 2213, компонент X пиксела Pxi фильтруется посредством суммирования полученного смещения с его значением. Фильтрованный компонент X пиксела Pxi упоминается как P'xi (ссылка с номером 2214). Одновременно или последовательно, значение смещения, ассоциированное с компонентом Z и соответствующее числу j классов, получается на этапе 2215 из таблицы смещений, ассоциированной с компонентом Z. Затем, на этапе 2216, компонент Z пиксела Pzi фильтруется посредством суммирования полученного смещения с его значением. Фильтрованный компонент Z пиксела Pzi упоминается как P'zi (ссылка с номером 2217).
Затем, на этапе 2218, фильтрованные компоненты P'xi и P'zj помещаются в компонент X и компонент Z фильтрованной области кадра, упоминаемые как 2219 и 2220, соответственно. На этапе 2218, фильтрованные пикселы P'xi и P'zj, соответственно, заменяют пикселы Pxi и Pzj обработанных кадров, упоминаемые как 2219 и 2220.
Если Pxi не принадлежит SAO-классу, компоненты Pxi и Pzj в компоненте X и компоненте Z фильтрованных областей кадра остаются неизменными на этапах 2221, 2222 и 2218.
Затем, на этапе 2223, счетная переменная i увеличивается на единицу с тем, чтобы применять процесс фильтрации аналогично следующим пикселам области текущего кадра.
На этапе 2224, определяется то, все или нет N пикселов области текущего кадра обработаны (i≥N). Если да, фильтрованные компоненты X и Z области кадра восстанавливаются и могут добавляться в восстановленный SAO-кадр.
Фиг. 22 иллюстрирует использование SAO-классификации одного компонента X для того, чтобы аналогично фильтровать другой компонент Z, когда оба компонента имеют идентичное число пикселов для области текущего кадра.
Тем не менее, компоненты области кадра не всегда имеют идентичное число пикселов. В зависимости от относительного числа пикселов для компонента X, обозначаемого Nx, касательно числа пикселов для компонента Z, обозначаемого A/z, могут рассматриваться два случая. Поскольку разность между числами пикселов двух различных компонентов в области кадра типично составляет кратное двух, в общем, не обязательно учитывать нецелочисленные взаимосвязи между числами пиксельных компонентов.
При рассмотрении случая, согласно которому число пикселов компонента Z превышает число пикселов компонента X (Nx<Nz), алгоритм, описанный в отношении фиг. 22, может быть легко адаптирован с учетом того, что Pzi представляет собой группу из Nz/Nx пикселов. Соответственно, когда смещение OffsetZi добавляется в группу Pzi пикселов, это смещение применяется ко всем пикселам из группы Pzi пикселов. Кроме того, в конкретном варианте осуществления, можно считать, что смещение OffsetZi является группой смещений с размером, идентичным размеру группы Pzi пикселов.
При рассмотрении случая, согласно которому число пикселов компонента X превышает число пикселов компонента Z(Nx>Nz), могут рассматриваться несколько вариантов осуществления. В таком случае, этапы 2216 и 2218, описанные в отношении фиг. 22, должны учитывать взаимосвязь между числом пикселов компонента X и числом пикселов компонента Z. На фиг. 22, Pzi изменяется посредством Pz(i/Nx).
В первом конкретном варианте осуществления, смещение OffsetZi добавляется в группу Pz(i/Nx), только если Pxi фильтруется по меньшей мере один раз.
Согласно другому конкретному варианту осуществления, этап 2218 по фиг. 22 учитывает число раз, когда Pxi фильтруется. Если оно превышает 2xNx/Nz, то OffsetZi добавляется в Pz(i/Nx).
Также согласно конкретному варианту осуществления, этап 2218 принимает Nx/Nz раз Pz(i/Nx) или P'z(i/Nx), и он вычисляет среднее, чтобы формировать пиксельное значение, вставленное в фильтрованную область кадра для компонента Z (2220).
Фиг. 23 иллюстрирует использование SAO-классификации одного компонента X для того, чтобы аналогично фильтровать другой компонент Z.
Для иллюстрации, выделенные серым пикселы блока 2301 представляют пикселы, фильтрованные для петлевого SAO-фильтра типа i текущего класса j для компонента X согласно текущей HEVC-реализации. Аналогично, черные пикселы блока 2302 представляют пикселы, фильтрованные для петлевого SAO-фильтра типа i текущего класса j для компонента Z согласно текущим техническим требованиям HEVC.
Следовательно, как проиллюстрировано на фиг. 23, выделенные серым пикселы в компоненте X и черные пикселы в компоненте Z не всегда находятся в идентичной позиции, с учетом текущих технических требований HEVC.
Также для иллюстрации, выделенные серым пикселы блока 2303 представляют пикселы, фильтрованные для петлевого SAO-фильтра типа i текущего класса j для компонента X согласно текущей HEVC-реализации. Тем не менее, выделенные черным пикселы блока 2304 представляют пикселы, фильтрованные для петлевого SAO-фильтра для компонента Z согласно классификации компонента X (блока 2303). Соответственно, выделенные серым пикселы и выделенные черным пикселы расположены в идентичных позициях. Это приводит к использованию только одной классификации для обоих компонентов.
Следует отметить, что оба основных варианта осуществления могут быть комбинированы, чтобы оптимизировать эффективность кодирования и сложность декодирования.
Хотя настоящее изобретение описано выше в отношении конкретных вариантов осуществления, настоящее изобретение не ограничено конкретными вариантами осуществления, и для специалистов в данной области техники должны быть очевидными модификации, которые находятся в пределах объема настоящего изобретения. В частности, хотя предыдущее описание ссылается на YUV-компоненты, для иллюстрации, могут использоваться другие схемы, к примеру RGB (компоненты красного, зеленого и синего цвета).
Например, хотя предыдущие варианты осуществления описаны относительно пикселов изображения и их соответствующих пиксельных значений, следует принимать во внимание, что в контексте изобретения, группа пикселов может рассматриваться вместе с соответствующим пиксельным значением группы. Таким образом, выборка может соответствовать одному или более пикселов изображения.
Дополнительные аспекты настоящего изобретения задаются ниже.
Согласно первому дополнительному аспекту изобретения, предусмотрен способ кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- кодирование первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- декодирование по меньшей мере одной закодированной выборки;
- вычисление по меньшей мере одного параметра фильтрации в качестве функции разности между по меньшей мере одним компонентом по меньшей мере одной выборки изображения и по меньшей мере одним соответствующим компонентом по меньшей мере одной соответствующей декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре для того, чтобы фильтровать независимо, по меньшей мере, первый и второй компонент декодированной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления по меньшей мере один параметр фильтрации определяется в качестве функции от множества оцененных параметров фильтрации так, что эффективность кодирования по меньшей мере одного параметра фильтрации является оптимальной.
В варианте осуществления по меньшей мере один параметр фильтрации определяется в качестве функции разностей, по меньшей мере, между компонентом выборок части изображения и по меньшей мере одним соответствующим компонентом соответствующих декодированных выборок, из числа выборок по меньшей мере одного компонента в части изображения и значений двух компонентов выборок части изображения.
В варианте осуществления по меньшей мере один параметр фильтрации определяется в качестве функции от первого параметра фильтрации, вычисленного в качестве функции разности между первым компонентом по меньшей мере одной выборки изображения и соответствующим первым компонентом по меньшей мере одной соответствующей декодированной выборки, и второго параметра фильтрации, вычисленного в качестве функции разности между вторым компонентом по меньшей мере одной выборки изображения и соответствующим вторым компонентом по меньшей мере одной соответствующей декодированной выборки.
В варианте осуществления, первый и второй параметры фильтрации вычисляются в качестве функции от множества выборок части изображения.
В варианте осуществления по меньшей мере один параметр фильтрации содержит, по меньшей мере, одно смещение, которое должно суммироваться с компонентом выборки, который должен фильтроваться.
В варианте осуществления по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере один весовой коэффициент для взвешивания по меньшей мере одного смещения.
В варианте осуществления по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере одну позицию полосы, которая задает по меньшей мере один класс компонентов выборки, которые должны фильтроваться.
В варианте осуществления, способ дополнительно содержит этап определения по меньшей мере одной позиции в качестве функции от различных значений искажения в зависимости от скорости передачи, оцененных для различных компонентов.
В еще одном варианте осуществления по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере один флаг, ассоциированный, по меньшей мере, с первым компонентом первой выборки, причем по меньшей мере один флаг служит признаком ссылки, по меньшей мере, на один параметр фильтрации, ассоциированный, по меньшей мере, со вторым компонентом второй выборки, для фильтрации, по меньшей мере, первого компонента.
В варианте осуществления по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере один флаг, ассоциированный, по меньшей мере, с первым компонентом первой выборки, причем по меньшей мере один флаг служит признаком ссылки, по меньшей мере, на один параметр фильтрации, ассоциированный, по меньшей мере, со вторым компонентом второй выборки, для фильтрации множества компонентов первой выборки.
Согласно второму дополнительному аспекту изобретения, предусмотрен способ декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- декодирование первого и второго компонента по меньшей мере одной закодированной выборки, чтобы предоставлять первый и второй компонент по меньшей мере одной восстановленной выборки;
- декодирование по меньшей мере одного параметра фильтрации;
- фильтрацию по меньшей мере одной восстановленной выборки в петлевом фильтре, причем фильтрация первого компонента и второго компонента по меньшей мере одной восстановленной выборки основана, по меньшей мере, на одном общем параметре фильтрации декодированного по меньшей мере одного параметра фильтрации.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления, способ дополнительно содержит этап получения по меньшей мере одного флага, указывающего ссылки, по меньшей мере, на один параметр фильтрации.
В варианте осуществления, способ дополнительно содержит этап анализа полученного по меньшей мере одного флага и, в ответ на анализ, получения по меньшей мере одного общего параметра фильтрации.
В еще одном варианте осуществления, способ дополнительно содержит этап получения, по меньшей мере, другого флага, указывающего ссылки, по меньшей мере, на один параметр фильтрации, и этап анализа полученного, по меньшей мере, другого флага, причем этап получения по меньшей мере одного флага выполняется в ответ на этап анализа полученного, по меньшей мере, другого флага.
В варианте осуществления, способ дополнительно содержит этап вычисления параметра фильтрации, который должен использоваться для фильтрации, по меньшей мере, первого компонента по меньшей мере одной восстановленной выборки в качестве функции от декодированного по меньшей мере одного параметра фильтрации.
В варианте осуществления, способ дополнительно содержит этап вычисления параметра фильтрации, который должен использоваться для фильтрации первого и второго компонентов по меньшей мере одной восстановленной выборки в качестве функции от декодированного по меньшей мере одного параметра фильтрации.
В еще одном варианте осуществления, способ дополнительно содержит этап получения по меньшей мере одного весового коэффициента, причем вычисленный параметр фильтрации основан на полученном, по меньшей мере, одном весовом коэффициенте.
В варианте осуществления, способ дополнительно содержит этап декодирования по меньшей мере одного весового коэффициента, причем по меньшей мере один весовой коэффициент принимается вместе с частью изображения, которое должно быть декодировано.
В варианте осуществления, общий параметр фильтрации содержит, по меньшей мере, одно значение смещения, которое должно суммироваться, по меньшей мере, с первым компонентом по меньшей мере одной восстановленной выборки.
В варианте осуществления, общий параметр фильтрации содержит по меньшей мере одну позицию полосы, которая задает по меньшей мере один класс компонентов выборки, которые должны фильтроваться.
В еще одном варианте осуществления, способ дополнительно содержит этап получения по меньшей мере одного весового коэффициента, чтобы применять, по меньшей мере, к одной позиции полосы для фильтрации, по меньшей мере, первого компонента по меньшей мере одной восстановленной выборки.
Согласно третьему дополнительному аспекту изобретения, предусмотрен способ кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- кодирование первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- декодирование по меньшей мере одной закодированной выборки;
- вычисление по меньшей мере одного параметра фильтрации в качестве функции разности между компонентом по меньшей мере одной выборки изображения и соответствующим компонентом по меньшей мере одной декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре для того, чтобы фильтровать независимо, по меньшей мере, первый и второй компонент декодированной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно четвертому дополнительному аспекту изобретения, предусмотрен способ декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, при этом способ содержит:
- декодирование первого компонента первой кодированной выборки и второго компонента второй кодированной выборки, чтобы предоставлять первый компонент первой восстановленной выборки и второй компонент второй восстановленной выборки;
- декодирование по меньшей мере одного параметра фильтрации;
- фильтрацию восстановленных выборок в петлевом фильтре, причем фильтрация первого компонента первой восстановленной выборки и второго компонента второй восстановленной выборки основана, по меньшей мере, на одном общем параметре фильтрации декодированного по меньшей мере одного параметра фильтрации.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления, способ дополнительно содержит этап вычисления параметра фильтрации, который должен использоваться для фильтрации первого компонента по меньшей мере одной восстановленной выборки в качестве функции от параметра фильтрации, который должен использоваться для фильтрации второго компонента по меньшей мере одной восстановленной выборки.
В варианте осуществления, первое множество параметров фильтрации ассоциировано с первым компонентом первой восстановленной выборки, а второе множество параметров фильтрации ассоциировано со вторым компонентом второй восстановленной выборки, причем значения параметров фильтрации из первого множества параметров фильтрации равны значениям параметров фильтрации из второго множества параметров фильтрации, и значения параметров фильтрации из первого множества параметров фильтрации располагаются в обратном порядке относительно порядка значений параметров фильтрации из второго множества параметров фильтрации.
В другом варианте осуществления, первое множество параметров фильтрации ассоциировано с первым компонентом первой восстановленной выборки, а второе множество параметров фильтрации ассоциировано со вторым компонентом второй восстановленной выборки, причем значения параметров фильтрации из первого множества параметров фильтрации равны значениям параметров фильтрации из второго множества параметров фильтрации, умноженных на предварительно определенный весовой коэффициент.
Согласно пятому дополнительному аспекту изобретения, предусмотрен компьютерный программный продукт для программируемого устройства, причем компьютерный программный продукт содержит последовательность инструкций для реализации каждого этапа способа, осуществляющего один из первого-четвертого дополнительных аспектов, описанных выше, при загрузке и исполнении посредством программируемого устройства.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно шестому дополнительному аспекту изобретения, предусмотрен считываемый компьютером носитель данных, хранящий инструкции компьютерной программы для реализации каждого этапа способа, осуществляющего один из первого-четвертого дополнительных аспектов, описанных выше.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно седьмому дополнительному аспекту изобретения, предусмотрено устройство кодирования для кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство кодирования содержит:
- средство для кодирования первого и второго компонента по меньшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- средство для декодирования по меньшей мере одной закодированной выборки;
- средство для вычисления по меньшей мере одного параметра фильтрации в качестве функции разности между по меньшей мере одним компонентом по меньшей мере одной выборки изображения и по меньшей мере одним соответствующим компонентом по меньшей мере одной соответствующей декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре для того, чтобы фильтровать независимо, по меньшей мере, первый и второй компонент декодированной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления, устройство дополнительно содержит средство для кодирования флагов, причем по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере один флаг, ассоциированный, по меньшей мере, с первым компонентом первой выборки, причем по меньшей мере один флаг служит признаком ссылки, по меньшей мере, на один параметр фильтрации, ассоциированный, по меньшей мере, со вторым компонентом второй выборки, для фильтрации, по меньшей мере, первого компонента.
В другом варианте осуществления, устройство дополнительно содержит средство для кодирования флагов, причем по меньшей мере один параметр фильтрации дополнительно содержит по меньшей мере один флаг, ассоциированный, по меньшей мере, с первым компонентом первой выборки, причем по меньшей мере один флаг служит признаком ссылки, по меньшей мере, на один параметр фильтрации, ассоциированный, по меньшей мере, со вторым компонентом второй выборки, для фильтрации множества компонентов первой выборки.
Согласно восьмому дополнительному аспекту изобретения, предусмотрено устройство декодирования для декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство содержит:
- средство для декодирования первого и второго компонента по меньшей мере одной закодированной выборки, чтобы предоставлять первый и второй компонент по меньшей мере одной восстановленной выборки;
- средство для декодирования по меньшей мере одного параметра фильтрации;
- средство для фильтрации по меньшей мере одной восстановленной выборки в петлевом фильтре, причем фильтрация первого компонента и второго компонента по меньшей мере одной восстановленной выборки основана, по меньшей мере, на одном общем параметре фильтрации декодированного по меньшей мере одного параметра фильтрации.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления, устройство дополнительно содержит
средство для получения по меньшей мере одного флага, указывающего ссылки, по меньшей мере, на один параметр фильтрации, причем средство для получения, по меньшей мере, другого флага указывает ссылки, по меньшей мере, на один параметр фильтрации, и средство для анализа полученного, по меньшей мере, другого флага, причем средство для получения по меньшей мере одного флага реагирует в зависимости от средства для анализа полученного, по меньшей мере, другого флага.
В варианте осуществления, устройство дополнительно содержит средство для вычисления параметра фильтрации, который должен использоваться для фильтрации, по меньшей мере, первого компонента по меньшей мере одной восстановленной выборки в качестве функции от декодированного по меньшей мере одного параметра фильтрации.
В еще одном варианте осуществления, устройство дополнительно содержит средство для вычисления параметра фильтрации, который должен использоваться для фильтрации первого и второго компонентов по меньшей мере одной восстановленной выборки в качестве функции от декодированного по меньшей мере одного параметра фильтрации.
Согласно девятому дополнительному аспекту изобретения, предусмотрено устройство кодирования для кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство содержит:
- средство для кодирования первого и второго компонента поменьшей мере одной выборки изображения, чтобы предоставлять по меньшей мере одну закодированную выборку;
- средство для декодирования по меньшей мере одной закодированной выборки;
- средство для вычисления по меньшей мере одного параметра фильтрации в качестве функции разности между компонентом по меньшей мере одной выборки изображения и соответствующим компонентом по меньшей мере одной декодированной выборки, причем по меньшей мере один параметр фильтрации вычисляется таким образом, что он используется в петлевом фильтре для того, чтобы фильтровать независимо, по меньшей мере, первый и второй компонент декодированной выборки.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
Согласно десятому дополнительному аспекту изобретения, предусмотрено устройство декодирования для декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере два компонента, причем закодированное изображение содержит по меньшей мере один параметр фильтрации, причем устройство содержит:
- средство для декодирования первого компонента первой кодированной выборки и второго компонента второй кодированной выборки, чтобы предоставлять первый компонент первой восстановленной выборки и второй компонент второй восстановленной выборки;
- средство для декодирования по меньшей мере одного параметра фильтрации;
- средство для фильтрации восстановленных выборок в петлевом фильтре, причем фильтрация первого компонента первой восстановленной выборки и второго компонента второй восстановленной выборки основана, по меньшей мере, на одном общем параметре фильтрации декодированного по меньшей мере одного параметра фильтрации.
С учетом взаимозависимостей между компонентами, изобретение позволяет повышать эффективность кодирования SAO, уменьшать буфер запоминающего устройства, требуемый для того, чтобы сохранять SAO-параметры, и уменьшать сложность классификации.
В варианте осуществления, устройство дополнительно содержит средство для вычисления параметров фильтрации, при этом первое множество параметров фильтрации ассоциировано с первым компонентом первой восстановленной выборки, а второе множество параметров фильтрации ассоциировано со вторым компонентом второй восстановленной выборки, причем значения параметров фильтрации из первого множества параметров фильтрации равны значениям параметров фильтрации из второго множества параметров фильтрации, и значения параметров фильтрации из первого множества параметров фильтрации располагаются в обратном порядке относительно порядка значений параметров фильтрации из второго множества параметров фильтрации.
В другом варианте осуществления, устройство дополнительно содержит средство для вычисления параметров фильтрации, при этом первое множество параметров фильтрации ассоциировано с первым компонентом первой восстановленной выборки, а второе множество параметров фильтрации ассоциировано со вторым компонентом второй восстановленной выборки, причем значения параметров фильтрации из первого множества параметров фильтрации равны значениям параметров фильтрации из второго множества параметров фильтрации, умноженных на предварительно определенный весовой коэффициент.
Согласно одиннадцатому дополнительному аспекту изобретения, предусмотрен способ кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем способ содержит: определение по меньшей мере одного параметра адаптивного к выборке смещения, отличного от смещения, в качестве общего параметра как для первой, так и для второй компонент цветности декодированной выборки.
В упомянутом способе первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом способе первый параметр адаптивного к выборке смещения, отличный от смещения, определяется в качестве общего параметра как для первой, так и для второй компонент цветности декодированной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет и краевой тип, и полосовой тип, а второй параметр адаптивного к выборке смещения, отличный от смещения, определяется в качестве общего параметра как для первой, так и для второй компонент цветности декодированной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет один из краевого типа и полосового типа, но не другой.
В упомянутом способе, когда фильтрация на основе адаптивного к выборке смещения имеет первый тип, по меньшей мере один параметр адаптивного к выборке смещения, отличный от смещения, вычисляется для использования в качестве общего параметра для фильтрации первого типа, причем первый тип фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, а когда фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличный от упомянутого первого типа, различные параметры фильтрации вычисляются для использования в качестве выделенных параметров, соответственно, для первой и второй компонент цветности, причем второй тип фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Упомянутый способ дополнительно содержит получение для каждой наибольшей единицы кодирования ассоциированного набора параметров адаптивного к выборке смещения, при этом в случае по меньшей мере одной наибольшей единицы кодирования, по меньшей мере один упомянутый параметр адаптивного к выборке смещения, отличный от смещения, определяется для использования в качестве общего параметра для обеих компонент цветности декодированных выборок рассматриваемой наибольшей единицы(единиц) кодирования.
Согласно двенадцатому дополнительному аспекту изобретения, предусмотрен способ декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем закодированное изображение содержит по меньшей мере один параметр адаптивного к выборке смещения, при этом способ содержит этапы, на которых: декодируют первую компоненту цветности и вторую компоненту цветности по меньшей мере одной закодированной выборки, чтобы предоставлять первую компоненту цветности и вторую компоненту цветности по меньшей мере одной восстановленной выборки; декодируют упомянутый по меньшей мере один параметр адаптивного к выборке смещения; используют по меньшей мере один декодированный параметр адаптивного к выборке смещения, отличный от смещения, в качестве общего параметра как для первой компоненты цветности, так и для второй компоненты цветности упомянутой по меньшей мере одной восстановленной выборки.
В упомянутом способе первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом способе первый декодированный параметр адаптивного к выборке смещения, отличный от смещения, используется в качестве общего параметра как для первой, так и для второй компонент цветности восстановленной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет и краевой тип, и полосовой тип, а второй декодированный параметр адаптивного к выборке смещения, отличный от смещения, используется в качестве общего параметра как для первой, так и для второй компонент цветности восстановленной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет один из краевого типа и полосового типа, но не другой.
В упомянутом способе, когда фильтрация на основе адаптивного к выборке смещения имеет первый тип, по меньшей мере один декодированный параметр адаптивного к выборке смещения используется в качестве общего параметра для фильтрации первого типа, причем первый тип фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, и когда фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличный от упомянутого первого типа, различные декодированные параметры адаптивного к выборке смещения используются в качестве выделенных параметров, соответственно, для первой и второй компонент цветности, причем второй тип фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Упомянутый способ дополнительно содержит прием для каждой наибольшей единицы кодирования ассоциированного набора параметров адаптивного к выборке смещения, при этом в случае по меньшей мере одной наибольшей единицы кодирования, по меньшей мере один упомянутый параметр адаптивного к выборке смещения, отличный от смещения, используется в качестве общего параметра для обеих компонент цветности восстановленных выборок рассматриваемой наибольшей единицы(единиц) кодирования.
Согласно тринадцатому дополнительному аспекту изобретения, предусмотрен считываемый компьютером носитель данных, имеющий компьютерную программу для программируемого устройства, причем компьютерная программа содержит последовательность инструкций для реализации каждого этапа способа по одиннадцатому и/или двенадцатому вышеуказанным аспектам изобретения, при загрузке и исполнении посредством программируемого устройства.
Согласно четырнадцатому дополнительному аспекту изобретения, предусмотрено устройство кодирования для кодирования, по меньшей мере, части изображения, содержащего множество выборок, причем устройство кодирования содержит: средство для определения по меньшей мере одного параметра адаптивного к выборке смещения в качестве общего параметра как для первой, так и для второй компонент цветности декодированной выборки.
Согласно пятнадцатому дополнительному аспекту изобретения, предусмотрено устройство декодирования для декодирования, по меньшей мере, части изображения, содержащего множество выборок, причем закодированное изображение содержит по меньшей мере один параметр адаптивного к выборке смещения, при этом устройство декодирования содержит: средство для декодирования первой компоненты цветности и второй компоненты цветности по меньшей мере одной закодированной выборки, чтобы предоставлять первую компоненту цветности и вторую компоненту цветности по меньшей мере одной восстановленной выборки; средство для декодирования упомянутого по меньшей мере одного параметра адаптивного к выборке смещения; средство для использования по меньшей мере одного декодированного параметра адаптивного к выборке смещения в качестве общего параметра как для первой компоненты цветности, так и для второй компоненты цветности упомянутой по меньшей мере одной восстановленной выборки.
При этом первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом устройстве средство использования выполнено с возможностью использования первого декодированного параметра адаптивного к выборке смещения, отличного от смещения, в качестве общего параметра как для первой, так и для второй компонент цветности восстановленной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет и краевой тип, и полосовой тип, и дополнительно выполнено с возможностью использования второго декодированного параметра адаптивного к выборке смещения, отличного от смещения, в качестве общего параметра как для первой, так и для второй компонент цветности восстановленной выборки, когда фильтрация на основе адаптивного к выборке смещения имеет один из краевого типа и полосового типа, но не другой.
В упомянутом устройстве средство использования выполнено с возможностью, когда фильтрация на основе адаптивного к выборке смещения имеет первый тип, использования по меньшей мере одного декодированного параметра адаптивного к выборке смещения в качестве общего параметра для фильтрации первого типа, причем первый тип фильтрации на основе адаптивного к выборке смещения представляет собой одно из краевой фильтрации и полосовой фильтрации, и дополнительно выполнено с возможностью, когда фильтрация на основе адаптивного к выборке смещения имеет второй тип, отличный от упомянутого первого типа, использования различных декодированных параметров адаптивного к выборке смещения в качестве выделенных параметров, соответственно, для первой и второй компонент цветности, причем второй тип фильтрации на основе адаптивного к выборке смещения представляет собой другое из краевой фильтрации и полосовой фильтрации.
Упомянутое устройство дополнительно содержит средство для приема для каждой наибольшей единицы кодирования ассоциированного набора параметров адаптивного к выборке смещения, при этом в случае по меньшей мере одной наибольшей единицы кодирования, по меньшей мере один упомянутый параметр адаптивного к выборке смещения, отличный от смещения, используется в качестве общего параметра для обеих компонент цветности восстановленных выборок рассматриваемой наибольшей единицы(единиц) кодирования.
В другом аспекте настоящего изобретения обеспечен способ кодирования по меньшей мере части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере две компоненты, причем способ содержит этапы, на которых: кодируют первую компоненту цветности и вторую компоненту цветности по меньшей мере одной выборки изображения для обеспечения по меньшей мере одной закодированной выборки; декодируют упомянутую по меньшей мере одну закодированную выборку; и определяют по меньшей мере один параметр фильтрации для кодированного изображения как функцию разности между по меньшей мере одной компонентой упомянутой по меньшей мере одной выборки изображения и упомянутой по меньшей мере одной соответствующей компонентой упомянутой по меньшей мере одной соответствующей декодированной выборки, причем первый параметр фильтрации определяется для того, чтобы использоваться в качестве общего параметра фильтрации для выполнения петлевой фильтрации на основе адаптивного к выборке смещения как над первой, так и над второй компонентами цветности декодированной выборки, причем первый параметр фильтрации определяется для использования в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения; и второй параметр фильтрации определяется для того, чтобы использоваться в качестве другого общего параметра фильтрации для выполнения петлевой фильтрации на основе адаптивного к выборке смещения как над первой, так и над второй компонентами цветности декодированной выборки, причем второй параметр фильтрации является параметром типа адаптивного к выборке смещения, указывающим, используется ли петлевая фильтрация на основе адаптивного к выборке смещения краевого типа или полосового типа в качестве упомянутого типа петлевой фильтрации на основе адаптивного к выборке смещения для упомянутой по меньшей мере одной декодированной выборки или никакая петлевая фильтрация на основе адаптивного к выборке смещения не используется для упомянутой по меньшей мере одной декодированной выборки.
В упомянутом способе первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом способе первый параметр фильтрации представляет собой направление петлевой фильтрации на основе адаптивного к выборке смещения краевого типа.
В упомянутом способе по меньшей мере один параметр фильтрации определяется для использования в качестве выделенного параметра фильтрации для фильтрации отдельной одной из первой и второй компонент цветности упомянутой по меньшей мере одной декодированной выборки.
В упомянутом способе смещения являются выделенными параметрами фильтрации.
В упомянутом способе один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной выборки, что один или более параметров фильтрации, используемых для фильтрации другой выборки, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной выборки.
В упомянутом способе один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, отличной от упомянутой первой части, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной выборки.
В упомянутом способе один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для некоторой данной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой выборки во второй упомянутой части изображения, непосредственно слева от упомянутой первой части, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной выборки, что один или более параметров фильтрации, используемых для фильтрации другой выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной выборки.
В другом аспекте настоящего изобретения обеспечен считываемый компьютером носитель данных, хранящий инструкции компьютерной программы для реализации каждого этапа вышеупомянутого способа.
В другом аспекте настоящего изобретения обеспечен способ декодирования по меньшей мере части кодированного изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере две компоненты, причем способ содержит этапы, на которых: декодируют первую компоненту цветности и вторую компоненту цветности по меньшей мере одной закодированной выборки, чтобы обеспечить первую компоненту цветности и вторую компоненту цветности по меньшей мере одной восстановленной выборки; декодируют по меньшей мере один параметр фильтрации для кодированного изображения; и выполняют петлевую фильтрацию на основе адаптивного к выборке смещения над упомянутой по меньшей мере одной восстановленной выборкой, причем фильтрация содержит: использование первого декодированного параметра фильтрации в качестве общего параметра фильтрации для выполнения фильтрации как над первой компонентой цветности, так и над второй компонентой цветности упомянутой по меньшей мере одной восстановленной выборки, и использование второго декодированного параметра фильтрации в качестве другого общего параметра фильтрации для выполнения фильтрации как над первой компонентой цветности, так и над второй компонентой упомянутой по меньшей мере одной восстановленной выборки; при этом первый декодированный параметр фильтрации используется в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения; и при этом второй декодированный параметр фильтрации является параметром типа адаптивного к выборке смещения, указывающим, используется ли петлевая фильтрация на основе адаптивного к выборке смещения краевого типа или полосового типа в качестве упомянутого типа петлевой фильтрации на основе адаптивного к выборке смещения для упомянутой по меньшей мере одной восстановленной выборки или никакая петлевая фильтрация на основе адаптивного к выборке смещения не используется для упомянутой по меньшей мере одной восстановленной выборки.
В упомянутом способе первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом способе первый декодированный параметр фильтрации представляет собой направление петлевой фильтрации на основе адаптивного к выборке смещения краевого типа.
В упомянутом способе по меньшей мере один декодированный параметр фильтрации выделен для фильтрации отдельной одной из первой и второй компонент цветности упомянутой по меньшей мере одной восстановленной выборки.
В упомянутом способе смещения являются выделенными параметрами фильтрации.
В упомянутом способе один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной восстановленной выборки, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной восстановленной выборки.
В упомянутом способе один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной восстановленной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, отличной от первой упомянутой части, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной восстановленной выборки.
В упомянутом способе один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для некоторой данной восстановленной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, непосредственно слева от первой упомянутой части, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной восстановленной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной восстановленной выборки, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной восстановленной выборки.
В другом аспекте настоящего изобретения обеспечен считываемый компьютером носитель данных, хранящий инструкции компьютерной программы для реализации каждого этапа вышеупомянутого способа.
В другом аспекте настоящего изобретения обеспечено устройство кодирования для кодирования по меньшей мере части изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере две компоненты, причем устройство кодирования содержит: блок кодирования, который кодирует первую компоненту цветности и вторую компоненту цветности по меньшей мере одной выборки изображения для обеспечения по меньшей мере одной закодированной выборки; блок декодирования, который декодирует упомянутую по меньшей мере одну закодированную выборку; и блок определения, который определяет по меньшей мере один параметр фильтрации для кодированного изображения как функцию разности между по меньшей мере одной компонентой цветности упомянутой по меньшей мере одной выборки изображения и упомянутой по меньшей мере одной соответствующей компонентой цветности упомянутой по меньшей мере одной соответствующей декодированной выборки, причем первый параметр фильтрации определяется для того, чтобы использоваться в качестве общего параметра фильтрации для выполнения петлевой фильтрации на основе адаптивного к выборке смещения как над первой, так и над второй компонентами цветности декодированной выборки; при этом блок определения выполнен с возможностью определения первого параметра фильтрации для использования в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения; и при этом блок определения дополнительно выполнен с возможностью определения второго параметра фильтрации в качестве общего параметра фильтрации, причем второй параметр фильтрации является параметром типа адаптивного к выборке смещения, указывающим, используется ли петлевая фильтрация на основе адаптивного к выборке смещения краевого типа или полосового типа в качестве упомянутого типа адаптивной к выборке петлевой фильтрации для упомянутой по меньшей мере одной декодированной выборки или никакая петлевая фильтрация на основе адаптивного к выборке смещения не используется для упомянутой по меньшей мере одной декодированной выборки.
В другом аспекте настоящего изобретения обеспечено устройство декодирования для декодирования по меньшей мере части кодированного изображения, содержащего множество выборок, причем каждая выборка содержит по меньшей мере две компоненты, причем устройство декодирования содержит: блок декодирования выборок, который декодирует первую компоненту цветности и вторую компоненту цветности по меньшей мере одной закодированной выборки, чтобы обеспечить первую компоненту цветности и вторую компоненту цветности по меньшей мере одной восстановленной выборки; блок декодирования параметров, который декодирует по меньшей мере один параметр фильтрации для кодированного изображения; и блок фильтрации, который выполняет петлевую фильтрацию на основе адаптивного к выборке смещения над упомянутой по меньшей мере одной восстановленной выборкой, причем фильтрация содержит: использование первого декодированного параметра фильтрации в качестве общего параметра фильтрации для выполнения фильтрации как над первой компонентой цветности, так и над второй компонентой цветности упомянутой по меньшей мере одной восстановленной выборки, и использование второго декодированного параметра фильтрации в качестве другого общего параметра фильтрации для выполнения фильтрации как над первой компонентой цветности, так и над второй компонентой цветности упомянутой по меньшей мере одной восстановленной выборки; при этом блок фильтрации выполнен с возможностью использования первого декодированного параметра фильтрации в качестве общего параметра фильтрации условно согласно типу петлевой фильтрации на основе адаптивного к выборке смещения; и при этом второй декодированный параметр фильтрации является параметром типа адаптивного к выборке смещения, указывающим, используется ли петлевая фильтрация на основе адаптивного к выборке смещения краевого типа или полосового типа в качестве упомянутого типа петлевой фильтрации на основе адаптивного к выборке смещения для упомянутой по меньшей мере одной восстановленной выборки или никакая петлевая фильтрация на основе адаптивного к выборке смещения не используется для упомянутой по меньшей мере одной восстановленной выборки.
В упомянутом устройстве первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
В упомянутом устройстве первый декодированный параметр фильтрации представляет собой направление петлевой фильтрации на основе адаптивного к выборке смещения краевого типа.
В упомянутом устройстве по меньшей мере один декодированный параметр фильтрации выделен для фильтрации отдельной одной из первой и второй компонент цветности упомянутой по меньшей мере одной восстановленной выборки.
В упомянутом устройстве смещения являются выделенными параметрами фильтрации.
В упомянутом устройстве один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной восстановленной выборки, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной восстановленной выборки.
В упомянутом устройстве один упомянутый параметр фильтрации является флагом, указывающим, для некоторой данной восстановленной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, отличной от первой упомянутой части, должны использоваться для обеспечения соответствующих параметров фильтрации для фильтрации этой данной восстановленной выборки.
В упомянутом устройстве один упомянутый параметр фильтрации представляет собой флаг "слева", указывающий для некоторой данной восстановленной выборки в первой упомянутой части изображения, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки во второй упомянутой части изображения, непосредственно слева от первой упомянутой части, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной восстановленной выборки, а другой упомянутый параметр фильтрации представляет собой флаг "сверху", указывающий для упомянутой данной восстановленной выборки, что один или более параметров фильтрации, используемых для фильтрации другой восстановленной выборки в третьей упомянутой части изображения, непосредственно над упомянутой первой частью, должны быть использованы для обеспечения соответствующих параметров фильтрации для фильтрации упомянутой данной восстановленной выборки.
Множество дополнительных модификаций и изменений предполагаются специалистами в данной области техники после прочтения вышеприведенных иллюстративных вариантов осуществления, которые приводятся только в качестве примера и которые не имеют намерение ограничивать объем изобретения, который определяется исключительно посредством прилагаемой формулы изобретения. В частности, при необходимости различные признаки из различных вариантов осуществления могут меняться местами.
В формуле изобретения, слово "содержащий" не исключает другие элементы или этапы, и единственное число не исключает множества. Простой факт того, что различные признаки упомянуты во взаимно различных зависимых пунктах формулы изобретения, не означает того, что комбинация этих признаков не может быть преимущественно использована.
ПРИЛОЖЕНИЕ
Изобретение относится к области вычислительной техники. Техническим результатом является обеспечение выполнения процесса фильтрации над декодированными выборками по меньшей мере части изображения с использованием адаптивного к выборке смещения. Раскрыт способ выполнения процесса фильтрации над декодированными выборками по меньшей мере части изображения с использованием адаптивного к выборке смещения, причем способ содержит: этап декодирования кодированных выборок первой компоненты цветности и кодированных выборок второй компоненты цветности, этап декодирования параметров, связанных с процессом фильтрации, посредством адаптивного к выборке смещения, этап выполнения для каждой наибольшей единицы кодирования процесса фильтрации над первой компонентой цветности и второй компонентой цветности на основе параметров адаптивного к выборке смещения, при этом в случае, когда параметры относятся к первому типу адаптивного к выборке смещения, декодированные параметры совместно используются между первой компонентой цветности и второй компонентой цветности, и при этом в случае, когда параметры относятся ко второму типу адаптивного к выборке смещения, отличному от упомянутого первого типа, параметры декодируются соответственно для первой компоненты цветности и второй компоненты цветности. 3 н. и 4 з.п. ф-лы, 23 ил., 2 табл.
1. Способ выполнения процесса фильтрации над декодированными выборками по меньшей мере части изображения с использованием адаптивного к выборке смещения, причем способ содержит:
этап декодирования кодированных выборок первой компоненты цветности и кодированных выборок второй компоненты цветности,
этап декодирования параметров, связанных с процессом фильтрации, посредством адаптивного к выборке смещения,
этап выполнения для каждой наибольшей единицы кодирования процесса фильтрации над первой компонентой цветности и второй компонентой цветности на основе параметров адаптивного к выборке смещения,
при этом в случае, когда параметры относятся к первому типу адаптивного к выборке смещения, декодированные параметры совместно используются между первой компонентой цветности и второй компонентой цветности, и
при этом в случае, когда параметры относятся ко второму типу адаптивного к выборке смещения, отличному от упомянутого первого типа, параметры декодируются соответственно для первой компоненты цветности и второй компоненты цветности.
2. Способ по п. 1, в котором первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
3. Способ по п. 1 или 2, в котором:
в случае, когда параметры относятся к первому типу адаптивного к выборке смещения, совместно используемый параметр(ы) фильтрации представляет собой или включает в себя совместно используемый параметр фильтрации для указания классификации для фильтрации первого типа, и
в случае, когда параметры относятся ко второму типу адаптивного к выборке смещения, упомянутые параметры фильтрации, декодируемые соответственно для первой компоненты цветности и второй компоненты цветности, представляют собой или включают в себя выделенные параметры фильтрации для указания классификации для фильтрации первой и второй компонент цветности соответственно.
4. Считываемый компьютером носитель, хранящий программу для выполнения способа по п. 1, 2 или 3.
5. Устройство для выполнения процесса фильтрации над декодированными выборками по меньшей мере части изображения с использованием адаптивного к выборке смещения, причем устройство содержит:
блок декодирования выборок для декодирования кодированных выборок первой компоненты цветности и кодированных выборок второй компоненты цветности,
блок декодирования параметров для декодирования параметров, связанных с процессом фильтрации, посредством адаптивного к выборке смещения,
блок фильтрации для выполнения для каждой наибольшей единицы кодирования процесса фильтрации над первой компонентой цветности и второй компонентой цветности на основе параметров адаптивного к выборке смещения,
при этом в случае, когда параметры относятся к первому типу адаптивного к выборке смещения, декодированные параметры совместно используются между первой компонентой цветности и второй компонентой цветности, и
при этом в случае, когда параметры относятся ко второму типу адаптивного к выборке смещения, отличному от упомянутого первого типа, параметры декодируются соответственно для первой компоненты цветности и второй компоненты цветности.
6. Устройство по п. 5, в котором первая и вторая компоненты цветности представляют собой соответственно компоненты цветности U и V.
7. Устройство по п. 5 или 6, в котором:
в случае, когда параметры относятся к первому типу адаптивного к выборке смещения, совместно используемый параметр(ы) фильтрации представляет собой или включает в себя совместно используемый параметр фильтрации для указания классификации для фильтрации первого типа, и
в случае, когда параметры относятся ко второму типу адаптивного к выборке смещения, упомянутые параметры фильтрации, декодируемые соответственно для первой компоненты цветности и второй компоненты цветности, представляют собой или включают в себя выделенные параметры фильтрации для указания классификации для фильтрации первой и второй компонент цветности соответственно.
СПОСОБ ЭЛЕКТРОННО-ЛУЧЕВОЙ СВАРКИ | 2002 |
|
RU2237557C2 |
Способ приготовления лака | 1924 |
|
SU2011A1 |
US 5502489 A1, 26.03.1996 | |||
Приспособление для суммирования отрезков прямых линий | 1923 |
|
SU2010A1 |
СПОСОБ КОДИРОВАНИЯ ЦИФРОВЫХ ВИДЕОСИГНАЛОВ С ПОДАВЛЕНИЕМ ГРАНИЧНЫХ ИСКАЖЕНИЙ, СПОСОБ ДЕКОДИРОВАНИЯ ЦИФРОВЫХ ВИДЕОСИГНАЛОВ С ПОДАВЛЕНИЕМ ГРАНИЧНЫХ ИСКАЖЕНИЙ И УСТРОЙСТВА ДЛЯ ИХ ОСУЩЕСТВЛЕНИЯ | 1993 |
|
RU2072562C1 |
Авторы
Даты
2020-03-12—Публикация
2019-09-18—Подача