УСТРОЙСТВО ОБРАБОТКИ ИЗОБРАЖЕНИЙ И СПОСОБ ВЫПОЛНЕНИЯ УСТРАНЕНИЯ БЛОЧНОСТИ С ОПТИМИЗАЦИЕЙ КАЧЕСТВА
IMAGE PROCESSING DEVICE AND METHOD OF PERFORMING DEBLOCKING WITH QUALITY OPTIMIZATION

Область техники, к которой относится изобретение
[0001] Варианты осуществления настоящего изобретения относятся к области обработки изображений, например, кодирования статических изображений и/или видеоизображений. В частности, изобретение касается усовершенствований фильтра устранения блочности (deblocking filter, фильтр деблокинга).
Уровень техники
[0002] Варианты осуществления настоящего изобретения относятся к области обработки изображений, например, кодирования статических изображений и/или видеоизображений. В частности, изобретение касается усовершенствований фильтра устранения блочности.
[0003] Схемы кодирования видео, такие как H.264/AVC (Avanced Video Coding) и HEVC (High Efficiency Video Coding), разработаны на основе успешного принципа гибридного кодирования видео на основе блоков. Используя этот принцип, изображение сначала разделяется на блоки, а затем каждый блок предсказывается с использованием внутрикадрового или межкадрового предсказания. Эти блоки кодируются относительно соседних блоков и аппроксимируют исходный сигнал с некоторой степенью сходства. Поскольку кодированные блоки только аппроксимируют исходный сигнал, разница между аппроксимациями может вызвать разрывы на границах блоков предсказания и преобразования. Эти неоднородности подавляются фильтром устранения блочности. HEVC заменяет структуру макроблоков H.264/AVC концепцией единицы дерева кодирования (Coding Tree Unit, CTU) с максимальным размером 64×64 пикселей. CTU может быть дополнительно разделена на схему разложения дерева квадрантов на меньшие единицы кодирования (Coding Unit, CU), которые могут быть подразделены до минимального размера 8×8 пикселей. HEVC также вводит концепции блоков предсказания (Prediction Block, PB) и блоков преобразования (Transform Block, TB).
[0004] В HEVC в фильтре устранения блочности определены(образованы) два фильтра: обычный фильтр и сильный фильтр. Обычный фильтр изменяет (модифицирует) не более двух выборок по обе стороны от края. Сильный фильтр изменяет (модифицирует) трех дополнительных выборок по краю по сравнению с порогом. Если все эти проверки верны, применяется сильный фильтр. Сильный фильтр имеет более ыинтенсивный эффект сглаживания для выборок по краю и может изменять не более трех выборок по обеим сторонам края.
[0005] ITU-T VCEG (Q6/16) и ISO/IEC MPEG (JTC 1/SC 29/WG 11) изучают видеокодек следующего поколения: Универсальное кодирование видео (Versatile Video Coding, VVC). Этот новый стандарт видеокодеков нацелен на возможности сжатия, которые значительно превосходят возможности текущего стандарта HEVC (включая его текущие расширения и краткосрочные расширения для кодирования содержимого экрана и кодирования с высоким динамическим диапазоном). Группы работают вместе над этой исследовательской деятельностью в рамках совместной работы, известной как Joint Video Exploration Team (JVET), для оценки проектов технологий сжатия, предложенных их экспертами в этой области.
[0006] Тестовая модель VVC (VTM) описывает функции, которые изучаются посредством скоординированной тестовой модели Joint Video Exploration Team (JVET) ITU-T VCEG и ISO/IEC MPEG как потенциально улучшенная технология кодирования видео, выходящая за рамки возможностей HEVC. Фильтр устранения блочности, используемый в настоящее время в VTM 2.0, такой же, как и в HEVC.
[0007] В настоящее время устранение блочности часто приводит к чрезмерному сглаживанию или размытию, особенно в областях, не расположенных непосредственно рядом с краями блока. Это приводит к не оптимально низкому качеству устранения блочности.
Раскрытие сущности изобретения
[0008] Принимая во внимание вышеупомянутые проблемы, настоящее изобретение направлено на улучшение обычной фильтрации устранения блочности. Цель настоящего изобретение - обеспечить устройство обработки изображений, которое может выполнять фильтрацию устранения блочности с оптимизированным качеством. Кроме того, устранение блочности должно быть эффективным и точным.
[0009] Варианты осуществления изобретения определяются признаками независимых пунктов формулы изобретения, а дополнительные преимущественные реализации вариантов осуществления изобретения - признаками зависимых пунктов формулы изобретения.
[0010] Согласно первому варианту осуществления изобретения обеспечено устройство обработки изображения для использования в кодере изображения и/или декодере изображения для устранения блочности края блока между первым блоком кодирования и вторым блоком кодирования изображения, закодированного посредством блочного кода. Устройство обработки изображения содержит фильтр для фильтрации края блока, выполненный с возможностью по меньшей мере для некоторых пикселей, подлежащих фильтрации, в пределах диапазона устранения блочности от края блока, при этом диапазон устранения блочности перпендикулярен краю блока, определения отфильтрованного значения пикселя из исходного значения пикселя для пикселя и по меньшей мере одного дополнительного значения пикселя, определения значения отсечения пикселя в зависимости от расстояния пикселя от края блока и отсечения отфильтрованного значения пикселя, используя значение отсечения, в результате получая значение пикселя с устраненной блочностью. Это уменьшает эффект чрезмерного сглаживания или размытия, значительно повышая качество устранения блочности. Устройство обработки изображений может обрабатывать схемы для выполнения операций, описанных в этом изобретении. Схема обработки может содержать аппаратное и программное обеспечение. Схема обработки может содержать, например, один или несколько процессоров и энергонезависимую память, несущую программный код для выполнения одним или несколькими процессорами. Программный код при исполнении одним или несколькими процессорами предлагает устройству обработки изображений выполнить соответствующие операции.
[0011] Преимущественно значение отсечения представляет собой максимально допустимую величину изменения между исходным значением пикселя и значением пикселя с устраненной блочностью. Это дополнительно ограничивает чрезмерное сглаживание или размытие.
[0012] Кроме того, предпочтительно, отсечение отфильтрованного значения пикселя, используя значения отсечения, в результате получая значение пикселя с устраненной блочностью, содержит установку значения пикселя с устраненной блочностью равным отфильтрованному значению пикселя, если абсолютное значение разницы между отфильтрованным значением пикселя и значение пикселя с устраненной блочностью не превышает значение отсечения пикселя, установку значения пикселя с устраненной блочностью равным исходному значению пикселя плюс значение отсечения пикселя, если отфильтрованное значение пикселя превышает исходное значение пикселя плюс значение отсечения, и установку значения пикселя с устраненной блочностью равным исходному значению пикселя минус значение отсечения пикселя, если отфильтрованное значение пикселя ниже исходного значения пикселя минус значение отсечения. Это дополнительно увеличивает качество устранения блочности.
[0013] Преимущественно фильтр выполнен с возможностью определения значения отсечения пикселя в зависимости от расстояния пикселя от края блока посредством функции или таблицы соответствия. Это позволяет очень точно установить значение отсечения и тем самым еще больше повысить качество устранения блочности.
[0014] Кроме того, предпочтительно, фильтр выполнен с возможностью определения значения отсечения пикселя в зависимости от расстояния пикселя от края блока, используя функцию, которая монотонно уменьшается с увеличением расстояния пикселя от края блока. Это значительно снижает эффект чрезмерного сглаживания или размытия при увеличении расстояния от края блока и, таким образом, повышает качество устранения блочности.
[0015] Преимущественно функция является экспоненциальной функцией. Это приводит к особенно высокому качеству устранения блочности.
[0016] Предпочтительно, тогда функция имеет вид
[0017] tc’ = tc + (tc >> i),
[0018] где tc’- значение отсечения,
[0019] где tc - постоянное значение,
[0020] где i - расстояние пикселя от края (403, 800) блока, и
[0021] где >> означает сдвиг вправо. Это позволяет просто вычислить экспоненциальную функцию.
[0022] Другая альтернативная экспоненциальная функция, которую можно использовать, имеет вид:
[0023] tc’ = ((2 * tc) >> i),
[0024] где tc’- значение отсечения,
[0025] где tc - постоянное значение,
[0026] где i - расстояние пикселя от края (403, 800) блока, и
[0027] где >> означает сдвиг вправо. Это позволяет просто вычислить экспоненциальную функцию.
[0028] В качестве альтернативы функция является линейной функцией. Это позволяет повысить качество устранения блочности, в то же время сохраняя вычислительную сложность на минимальном уровне.
[0029] Преимущественно, тогда функция имеет вид
[0030] tc’ = tc + (tc - (i * x),
[0031] где tc’- значение отсечения,
[0032] где tc - постоянное значение,
[0033] где i - расстояние пикселя от края (403, 800) блока, и
[0034] где x - постоянное значение. Это позволяет особенно просто вычислить линейную функцию.
[0035] Предпочтительно, фильтр выполнен с возможностью для каждого пикселя, подлежащего фильтрации в пределах диапазона устранения блочности от края блока, при этом диапазон устранения блочности перпендикулярен краю блока, определения отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя, определения значения отсечения пикселя в зависимости от расстояния пикселя от края блока и отсечения отфильтрованного значения пикселя, используя значение отсечения, в результате получая значение пикселя с устраненной блочностью. Благодаря использованию одного и того же вычисления для каждого пикселя, подлежащего фильтрации, достигается особенно простая реализация.
[0036] В качестве альтернативы, фильтр выполнен с возможностью определения необходимости фильтрации края блока на основании того, что количество линий пикселей решения меньше количества линий пикселей в блоке, окружающем край блока, в случае вертикального края блока, и того, что количество рядов пикселей решения меньше количества рядов пикселей в блоке, окружающем край блока, в случае горизонтального края блока. Кроме того, фильтр выполнен с возможностью для каждого пикселя, подлежащего фильтрации не в ряду пикселей решения или линии пикселей решения в пределах диапазона устранения блочности от края блока, причем диапазон устранения блочности перпендикулярен краю блока, определения отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя, определения значения отсечения пикселя в зависимости от расстояния пикселя от края блока, отсечения отфильтрованного значения пикселя, используя значение отсечения, в результате получая значение пикселя с устраненной блочностью. Кроме того, фильтр выполнен с возможностью для каждого пикселя, подлежащего фильтрации в ряду пикселей решения или линии пикселей решения в пределах диапазона устранения блочности от края блока, причем диапазон устранения блочности перпендикулярен краю блока, определения значения пикселя фильтра из исходного значения пикселя для пикселя и по меньшей мере одного дополнительного значения пикселя, и отсечения отфильтрованного значения пикселя, используя постоянное значение отсечения, в результате чего получая значение пикселя с устраненной блочностью. Это означает, что пиксели в рядах и линиях пикселей решения фильтруются с использованием фиксированного значения отсечения, в то время как значения пикселей не в рядах или линиях решения фильтруются с использованием значения отсечения, зависящего от диапазона. Это дополнительно увеличивает качество устранения блочности за счет увеличения вычислительной сложности.
[0037] Преимущественно фильтр имеет длину отвода фильтра, равную 1, или по меньшей мере двум, или по меньшей мере трем, или по меньшей мере четырем, или по меньшей мере пяти, или по меньшей мере шести, или по меньшей мере семи, или по меньшей мере восьми, или по меньшей мере девяти, или по меньшей мере десяти, или по меньшей мере одиннадцати, или по меньшей мере двенадцати, или по меньшей мере тринадцати, или по меньшей мере четырнадцати, или по меньшей мере пятнадцати, или по меньшей мере шестнадцати пикселям. Это позволяет применять изобретение к большому количеству различных конструкций фильтров.
[0038] Согласно второму аспекту изобретения обеспечен кодер для кодирования изображения, содержащий устройство обработки изображения согласно первому аспекту изобретения.
[0039] Согласно третьему аспекту изобретения, обеспечен декодер для декодирования изображения, содержащий устройство обработки изображения согласно первому аспекту изобретения.
[0040] Согласно четвертому аспекту изобретения, обеспечен способ устранения блочности для устранения блочности края блока между первым блоком кодирования и вторым блоком кодирования изображения, закодированного посредством блочного кода. Способ содержит по меньшей мере для некоторых пикселей, подлежащих фильтрации, в пределах диапазона устранения блочности от края блока, при этом диапазон устранения блочности перпендикулярен краю блока, определение отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одно дополнительное значение пикселя, определение значения отсечения пикселя в зависимости от расстояния пикселя от края блока и отсечение отфильтрованного значения пикселя, используя значения отсечения, в результате получая значение пикселя с устраненной блочностью. Это уменьшает эффект чрезмерного сглаживания или размытия, значительно повышая качество устранения блочности.
[0041] Согласно пятому аспекту изобретения обеспечен способ кодирования для кодирования изображения, содержащий способ устранения блочности согласно четвертому аспекту изобретения.
[0042] Согласно шестому аспекту изобретения обеспечен способ декодирования для декодирования изображения, содержащий способ устранения блочности согласно четвертому аспекту изобретения.
[0043] Наконец, согласно седьмому аспекту изобретения обеспечена компьютерная программа с программным кодом для выполнения способа согласно четвертому аспекту, пятому аспекту или шестому аспекту изобретения при выполнении компьютерной программы на компьютере.
[0044] Подробности одного или нескольких вариантов осуществления изобретения изложены на сопроводительных чертежах и в описании ниже. Другие особенности, объекты и преимущества будут очевидны из описания, чертежей и формулы изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0045] Следующие вариантах осуществления изобретения описаны более подробно со ссылкой на прилагаемые фигуры и чертежи, на которых:
[0046] ФИГ. 1 - блок-схема, показывающая пример видеокодера, выполненного с возможностью реализации вариантов осуществления изобретения;
[0047] ФИГ. 2 - блок-схема, показывающая пример структуры видеодекодера, выполненного с возможностью реализации вариантов осуществления изобретения;
[0048] ФИГ. 3 - блок-схема, показывающая пример системы видеокодирования, выполненной с возможностью реализации вариантов осуществления изобретения;
[0049] ФИГ. 4 показывает два примерных блока кодирования;
[0050] ФИГ. 5 показывает вариант осуществления предлагаемого устройства обработки изображений согласно первому аспекту изобретения;
[0051] ФИГ. 6 показывает вариант осуществления кодера согласно настоящему изобретению согласно второму аспекту изобретения;
[0052] ФИГ. 7 показывает вариант осуществления декодера согласно настоящему изобретению согласно третьему аспекту изобретения;
[0053] ФИГ. 8 показывает примерный край блока с соответствующими значениями пикселей перед фильтрацией устранения блочности, и
[0054] ФИГ. 9 показывает блок-схему варианта осуществления способа обработки изображения согласно четвертому аспекту изобретения.
[0055] В дальнейшем идентичные ссылочные позиции относятся к идентичным или по меньшей мере функционально эквивалентным элементам. Частично на разных фигурах использовались разные ссылочные позиции, относящиеся к одним и тем же объектам.
Описание вариантов осуществления изобретения
[0056] Сначала мы продемонстрируем общую концепцию кодирования изображений на фиг. 1-3. На фигурах 4 и 8 показан недостаток обычного фильтра устранения блочности. На фиг. 5-7 показаны и описаны конструкция и функции различных вариантов осуществления устройства согласно настоящему изобретению. Наконец, что касается фиг. 9, показан и описан вариант осуществления способа согласно настоящему изобретению. Подобные объекты и ссылочные номера на разных фигурах частично опущены.
[0057] В нижеследующем описании делается ссылка на сопроводительные чертежи, которые составляют часть изобретения и показывают в качестве иллюстрации конкретные аспекты вариантов осуществления настоящего изобретения или конкретные аспекты, в которых могут использоваться варианты осуществления настоящего изобретения. Понятно, что варианты осуществления изобретения могут использоваться в других аспектах и содержать структурные или логические изменения, не изображенные на фигурах. Поэтому нижеследующее подробное описание не следует воспринимать в ограничивающем смысле, и объем настоящего изобретения определяется прилагаемой формулой изобретения.
[0058] Например, понятно, что изобретение в связи с описанным способом также может быть верным для соответствующего устройства или системы, выполненной с возможностью выполнения способа, и наоборот. Например, если описан один или множество конкретных этапов способа, соответствующее устройство может включать в себя один или множество блоков, например, функциональных блоков, для выполнения описанного одного или множества этапов способа (например, один блок, выполняющий один или множество этапов, или множество блоков, каждый из которых выполняет один или несколько из множества этапов), даже если такой один или более блоков явно не описаны или не проиллюстрированы на чертежах. С другой стороны, например, если конкретное устройство описывается на основе одного или множества блоков, например функциональных блоков, соответствующий способ может включать в себя один этап для выполнения функциональных возможностей одного или множества блоков (например, один этап, выполняющий функциональные возможности одного или множества блоков или множества этапов, каждый из которых выполняет функциональные возможности одного или нескольких из множества блоков), даже если такой один или множество этапов явно не описаны или не проиллюстрированы на фигурах. Кроме того, понятно, что признаки различных примерных вариантов осуществления и/или аспектов, описанных в данном документе, могут быть объединены друг с другом, если специально не указано иное.
[0059] Кодирование видео обычно относится к обработке последовательности изображений, которые образуют видео или видеопоследовательность. Вместо термина «изображение» термины «кадр» или «изображение» могут использоваться как синонимы в области видеокодирования. Кодирование видео состоит из двух частей: кодирования видео и декодирования видео. Кодирование видео выполняется на стороне источника, обычно содержащее обработку (например, путем сжатия) исходных видеоизображений для уменьшения объема данных, необходимых для представления видеоизображений (для более эффективного хранения и/или передачи). Декодирование видео выполняется на стороне назначения и обычно содержит обратную обработку по сравнению с кодером для восстановления видеоизображений. Варианты осуществления, относящиеся к «кодированию» видеоизображений (или изображений в целом, как будет объяснено позже), следует понимать как относящиеся к «кодированию», так и «декодированию» видеоизображений. Комбинация части кодирования и части декодирования также называется CODEC (COding and DECoding).
[0060] В случае кодирования видео без потерь исходные видеоизображения могут быть восстановлены, т. е. восстановленные видеоизображения имеют то же качество, что и исходные видеоизображения (при условии отсутствия потерь при передаче или других потерь данных во время хранения или передачи). В случае кодирования видео с потерями выполняется дополнительное сжатие, например, путем квантования, чтобы уменьшить объем данных, представляющих видеоизображения, которые не могут быть полностью восстановлены в декодере, т.е. качество восстановленных видеоизображений ниже или хуже по сравнению с качеством исходных видеоизображений.
[0061] Несколько стандартов видеокодирования, начиная с H.261, принадлежат к группе «гибридных видеокодеков с потерями» (т. е. сочетают пространственное и временное предсказание в области выборки и кодирование с двумерным преобразованием для применения квантования в области преобразования). Каждое изображение видеопоследовательности обычно разделяется на набор неперекрывающихся блоков, и кодирование обычно выполняется на уровне блоков. Другими словами, в кодере видео обычно обрабатывается, то есть кодируется на уровне блока (видеоблока), например, с использованием пространственного (внутрикадрового) предсказания и временного (межкадрового) предсказания для генерации блока предсказания, вычитая блок предсказания из текущего блока (блок, который в настоящее время обрабатывается/должен быть обработан) для получения остаточного блока, преобразования остаточного блока и квантования остаточного блока в области преобразования, чтобы уменьшить объем данных, которые должны быть переданы (сжатие), тогда как в декодере обратная обработка по сравнению с кодером применяется к кодированному или сжатому блоку, чтобы восстановить текущий блок для представления. Кроме того, кодер дублирует цикл обработки декодера, так что оба будут генерировать идентичные предсказания (например, внутри - и межкадровое предсказание) и/или реконструкцию для обработки, то есть кодирования, последующих блоков.
[0062] Как обработка видеоизображения (также называемая обработкой движущегося изображения) и обработка неподвижного изображения (термин обработка, содержащая кодирование), имеют много общих концепций и технологий или инструментов, в дальнейшем термин «изображение» используется для обозначения видеоизображения видеопоследовательность (как объяснено выше) и/или неподвижное изображение, чтобы избежать ненужных повторов и различий между видеоизображениями и неподвижными изображениями, где это не обязательно. В случае, если описание относится только к неподвижным изображениям (или неподвижным изображениям), следует использовать термин «неподвижное изображение».
[0063] В следующих вариантах осуществления кодера 100, декодера 200 и системы 300 кодирования описаны на основе фиг. 1-3 перед более подробным описанием вариантов осуществления изобретения на основе фиг. 4-14.
[0064] Фиг. 3 является концептуальной или схематической блок-схемой, иллюстрирующей вариант осуществления системы 300 кодирования, например, системы 300 кодирования изображения, в которой система 300 кодирования содержит устройство-источник 310, выполненное с возможностью обеспечения кодированных данных 330, например, кодированного изображения 330, например, к целевому устройству 320 для декодирования закодированных данных 330.
[0065] Устройство-источник 310 содержит кодер 100 или блок 100 кодирования и может дополнительно, т.е. возможно, содержать источник 312 изображения, блок 314 предварительной обработки, например, блок 314 предварительной обработки изображения, и интерфейс связи или блок 318 связи.
[0066] Источник 312 изображения может содержать или быть устройством захвата изображения любого типа, например, для захвата изображения реального мира, и/или устройством генерации изображения любого типа, например, процессором компьютерной графики для генерации компьютерного анимированного изображения, или устройства любого типа для получения и/или обеспечения реального изображения, компьютерного анимированного изображения (например, содержимого экрана, изображения виртуальной реальности (Virtual Reality, VR)) и/или любой их комбинации (например, изображения дополненной реальности (Augmented Reality, AR)). В дальнейшем все эти виды изображений и любые другие изображения будут называться «изображение» или «изображение», если специально не указано иное, в то время как предыдущие пояснения в отношении термина «изображение» охватывают «видеоизображения» и «неподвижные изображения» по-прежнему остаются в силе, если явно не указано иное.
[0067] (Цифровое) изображение представляет собой или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности. Выборка в массиве также может называться пикселем (pixel, сокращение от picture element - элемент изображения) или точкой. Количество выборок в горизонтальном и вертикальном направлении (или по оси) массива или изображения определяет размер и/или разрешение изображения. Для представления цвета обычно используются три цветовых компонента, то есть изображение может быть представлено или включать в себя три массива выборки. В формате RGB или цветовом пространстве изображение содержит соответствующий массив выборки красного, зеленого и синего цветов. Однако при кодировании видео каждый пиксель обычно представлен в формате яркости/цветности или цветовом пространстве, например, YCbCr, который содержит компонент яркости, обозначенный Y (иногда вместо этого также используется L), и два компонента цветности, обозначенные Cb и Cr. Компонент Y яркости (или короткой яркости) представляет яркость или интенсивность уровня серого (например, как в полутоновом изображении), в то время как два компонента цветности (или короткой цветности) Cb и Cr представляют компоненты информации цветности или цвета. Соответственно, изображение в формате YCbCr содержит массив выборки яркости значений выборки яркости (Y) и два массива выборки цветности значений цветности (Cb и Cr). Изображения в формате RGB могут быть конвертированы или преобразованы в формат YCbCr, и наоборот, этот процесс также известен как преобразование цвета или конвертирование. Если изображение является монохромным, оно может содержать только массив выборки яркости.
[0068] Источником 312 изображения может быть, например, камера для захвата изображения, память, например, память изображений, содержащая или хранящая ранее захваченное или сгенерированное изображение, и/или интерфейс любого типа (внутренний или внешний) для получения или приема изображения. Камера может быть, например, локальной или интегрированной камерой, интегрированной в устройство-источник, память может быть локальной или интегрированной памятью, например, интегрированной в устройство-источник. Интерфейс может быть, например, внешним интерфейсом для приема изображения от внешнего источника видео, например, внешнего устройства захвата изображения, такого как камера, внешней памяти или внешнего устройства создания изображения, например, внешнего компьютерного графического процессора, компьютера или сервера. Интерфейс может быть интерфейсом любого типа, например, проводным или беспроводным интерфейсом, оптическим интерфейсом в соответствии с любым частным или стандартизованным протоколом интерфейса. Интерфейс для получения данных 312 изображения может быть тем же интерфейсом, что и интерфейс 318 связи, или его частью.
[0069] В отличие от блока 314 предварительной обработки и обработки, выполняемой посредством блока 314 предварительной обработки, изображение или данные 313 изображения также могут называться необработанным изображением или необработанными данными 313 изображения.
[0070] Блок 314 предварительной обработки выполнен с возможностью приема (необработанных) данных 313 изображения и для выполнения предварительной обработки данных 313 изображения для получения предварительно обработанного изображения 315 или предварительно обработанных данных 315 изображения. Предварительная обработка, выполняемая блоком 314 предварительной обработки, может, например, содержать обрезку, преобразование цветового формата (например, из RGB в YCbCr), цветокоррекцию или уменьшение шума.
[0071] Кодер 100 выполнен с возможностью приема предварительно обработанных данных 315 изображения и обеспечения кодированных данных 171 изображения (дополнительные подробности будут описаны, например, на основе фиг. 1).
[0072] Интерфейс 318 связи устройства-источника 310 может быть выполнен с возможностью приема кодированных данных 171 изображения и прямой передачи их другому устройству, например, целевому устройству 320 или любому другому устройству, для хранения или прямого восстановления или для обработки кодированных данных 171 изображения для соответственно перед сохранением кодированных данных 330 и/или передачей кодированных данных 330 на другое устройство, например, на целевое устройство 320 или любое другое устройство для декодирования или сохранения.
[0073] Целевое устройство 320 содержит декодер 200 или блок 200 декодирования и может дополнительно, т.е. возможно, содержать интерфейс связи или блок 322 связи, блок 326 постобработки и устройство 328 отображения.
[0074] Интерфейс 322 связи целевого устройства 320 выполнен с возможностью приема кодированных данных 171 изображения или кодированных данных 330, например, непосредственно от устройства-источника 310 или из любого другого источника, например памяти, например, памяти кодированных данных изображения.
[0075] Интерфейс 318 связи и интерфейс 322 связи могут быть выполнены с возможностью передачи, соответственно, приема кодированных данных 171 изображения или кодированных данных 330 через прямой канал связи между устройством-источником 310 и целевым устройством 320, например, прямое проводное или беспроводное соединение, или через сеть любого типа, например, проводную или беспроводную сеть или любую их комбинацию, или любую частную и общедоступную сеть, или любую их комбинацию.
[0076] Интерфейс 318 связи может быть, например, выполнен с возможностью упаковки/пакетирования кодированных данных 171 изображения в соответствующий формат, например пакеты, для передачи по каналу связи или сети связи, и может дополнительно содержать защиту от потери данных и восстановление после потери данных.
[0077] Интерфейс 322 связи, образующий аналог интерфейса 318 связи, может быть, например, выполнен с возможностью распаковки/ депакетирования кодированных данных 330 для получения кодированного данных 171 изображения, а также может быть выполнен с возможностью выполнения защиты от потери данных и восстановления после потери данных, например, содержащий маскировку ошибок.
[0078] Интерфейс 318 связи и интерфейс 322 связи могут быть сконфигурированы как однонаправленные интерфейсы связи, как указано стрелкой для кодированных данных 330 изображения на фиг.3, указывающей от устройства-источника 310 к целевому устройству 320, или как двунаправленные интерфейсы связи, и могут быть выполнены с возможностью, например, отправки и приема сообщений, например, для установки соединения, для подтверждения и/или повторной отправки потерянных или задержанных данных, включая данные изображения, и обмена любой другой информацией, относящейся к каналу связи и/или данным передачи, например, передачи кодированных данных изображения.
[0079] Декодер 200 выполнен с возможностью приема кодированных данных 171 изображения и обеспечения декодированных данных 231 изображения или декодированного изображения 231 (дополнительные подробности будут описаны, например, на основе фиг. 2).
[0080] Постпроцессор 326 целевого устройства 320 выполнен с возможностью постобработки декодированных данных 231 изображения, например декодированного изображения 231, для получения постобработанных данных 327 изображения, например, постобработанного изображения 327. Постобработка, выполняемая блоком 326 постобработки, может содержать, например, преобразование цветового формата (например, из YCbCr в RGB), цветокоррекцию, обрезку или повторную выборку, или любую другую обработку, например, для подготовки декодированных данных 231 изображения для отображения, например, устройством 328 отображения.
[0081] Устройство 328 отображения целевого устройства 320 выполнено с возможностью приема постобработанных данных 327 изображения для отображения изображения, например, пользователю или зрителю. Устройство 328 отображения может быть или содержать любой вид дисплея для представления восстановленного изображения, например, интегрированный или внешний дисплей или монитор. Дисплеи могут, например, содержать электронно-лучевые трубки (cathode ray tubes, CRT), жидкокристаллические дисплеи (liquid crystal displays, LCD), плазменные дисплеи, дисплеи на органических светодиодах (organic light emitting diodes, OLED) или дисплей любого другого типа, проектор, голограмма (3D).
[0082] Хотя фиг. 3 изображает устройство-источник 310 и целевое устройство 320 как отдельные устройства, варианты осуществления устройств также могут содержать оба или обе функциональные возможности, устройство-источник 310 или соответствующие функциональные возможности и целевое устройство 320 или соответствующие функциональные возможности. В таких вариантах осуществления устройство-источник 310 или соответствующие функциональные возможности и целевое устройство 320 или соответствующие функциональные возможности могут быть реализованы с использованием одного и того же аппаратного и/или программного обеспечения или посредством отдельного аппаратного и/или программного обеспечения или любой их комбинации.
[0083] Как будет очевидно для специалиста на основе описания, наличие и (точное) разделение функциональных возможностей различных блоков или функций в устройстве-источнике 310 и/или целевом устройстве 320, как показано на фиг.3, может варьироваться в зависимости от фактического устройства и приложения.
[0084] Следовательно, устройство-источник 310 и целевое устройство 320, как показано на фиг. 3, являются просто примерными вариантами осуществления изобретения, и варианты осуществления изобретения не ограничиваются теми, которые показаны на фиг. 3.
[0085] Устройство-источник 310 и целевое устройство 320 могут содержать любое из широкого диапазона устройств, включая любые виды портативных или стационарных устройств, например, ноутбуки или портативные компьютеры, мобильные телефоны, смартфоны, планшеты или планшетные компьютеры, камеры, настольные компьютеры, дополнительные внешние устройства, телевизоры, устройства отображения, цифровые медиаплееры, игровые приставки, устройства потоковой передачи видео, широковещательные приемные устройства и т.п. (также серверы и рабочие станции для крупномасштабного профессионального кодирования/декодирования, например, сетевые объекты) и могут не использовать никакую операционную систему или какую-либо другую.
[0086] Фиг. 1 показывает схематическую/концептуальную блок-схему варианта осуществления кодера 100, например, кодера 100 изображения, который содержит вход 102, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования, блок 110 обратного квантования и блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (decoded picture buffer, DPB), блок 160 предсказания [блок 142 межкадровой оценки, блок 144 межкадрового предсказания, блок 152 внутренней (внутрикадровой) оценки, блок 154 внутреннего (внутрикадрового) предсказания,] блок 162 выбора режима, блок 170 энтропийного кодирования и выход 172. Видеокодер 100, показанный на фиг.1, также может называться гибридным видеокодером или видеокодером согласно гибридному видеокодеку.
[0087] Например, блок 104 вычисления остатка, блок 106 преобразования, блок 108 квантования и блок 170 энтропийного кодирования образуют прямой путь сигнала кодера 100, тогда как, например, блок 110 обратного квантования, блок 112 обратного преобразования, блок 114 восстановления, буфер 118, контурный фильтр 120, буфер 130 декодированных изображений (DPB), блок 144 межкадрового предсказания и блок 154 внутреннего предсказания образуют обратный путь сигнала кодера, при этом обратный путь сигнала кодера соответствует пути сигнала декодера (см. декодер 200 на фиг. 2).
[0088] Кодер выполнен с возможностью приема, например, посредством входа 102 изображения 101 или блока 103 изображения 101, например, изображения последовательности изображений, образующих видео или видеопоследовательность. Блок 103 изображения также может называться как текущий блок изображения или блок изображения, подлежащий кодированию, а изображение 101 как текущее изображение или изображение, подлежащее кодированию (в частности, при кодировании видео, чтобы отличать текущее изображение от других изображений, например, ранее кодированные и/или декодированные изображения одной и той же видеопоследовательности, то есть видеопоследовательности, которая также содержит текущее изображение).
[0089] Варианты осуществления кодера 100 могут содержать блок разделения (не показан на фиг.1), например, который также может называться блоком разделения изображения, выполненный с возможностью разделения изображения 101 на множество блоков, например, блоки, подобные блоку 103 , как правило, на множество неперекрывающихся блоков. Блок разделения может быть выполнен с возможностью использования одного и того же размера блока для всех изображений видеопоследовательности и соответствующей сетки, определяющей размер блока, или для изменения размера блока между изображениями, подмножествами или группами изображений и разделения каждого изображения на соответствующие блоки.
[0090] Подобно изображению 101, блок 103 снова является или может рассматриваться как двумерный массив или матрица выборок со значениями интенсивности (значениями выборок), хотя и меньшего размера, чем изображение 101. Другими словами, блок 103 может содержать, например, один массив выборок (например, массив яркости в случае монохромного изображения 101) или три массива выборок (например, массив яркости и два массива цветности в случае цветного изображения 101), или любое другое количество и/или вид массивов в зависимости от применяемого цветового формата. Количество выборок в горизонтальном и вертикальном направлении (или по оси) блока 103 определяет размер блока 103.
[0091] Кодер 100, как показано на фиг.1, выполнен с возможностью кодирования изображения 101 блок за блоком, например, кодирование и предсказание выполняются для каждого блока 103.
[0092] Блок 104 вычисления остатка выполнен с возможностью вычисления остаточного блока 105 на основе блока 103 изображения и блока 165 предсказания (дополнительные подробности о блоке 165 предсказания предоставлены позже), например, путем вычитания значений выборки блока 165 предсказания из выборки значения блока 103 изображения, выборка за выборкой (пиксель за пикселем), чтобы получить остаточный блок 105 в области выборки.
[0093] Блок 106 преобразования выполнен с возможностью применения преобразования, например, пространственно-частотного преобразования или линейного пространственного преобразования, например дискретного косинусного преобразования (discrete cosine transform, DCT) или дискретного синусоидального преобразования (discrete sine transform, DST), к значениям выборок остаточного блока 105, чтобы получить преобразованные коэффициенты 107 в области преобразования. Преобразованные коэффициенты 107 также могут называться преобразованными остаточными коэффициентами и представлять остаточный блок 105 в области преобразования.
[0094] Блок 106 преобразования может быть выполнен с возможностью применения целочисленных аппроксимаций DCT/DST, таких как базовые преобразования, определенные для HEVC/H.265. По сравнению с ортонормированным преобразованием DCT, такие целочисленные аппроксимации обычно масштабируются с определенным коэффициентом. Чтобы сохранить норму остаточного блока, который обрабатывается прямым и обратным преобразованиями, в процессе преобразования применяются дополнительные коэффициенты масштабирования. Коэффициенты масштабирования обычно выбираются на основе определенных ограничений, таких как коэффициенты масштабирования, являющиеся степенью двойки для операции сдвига, разрядность преобразованных коэффициентов, компромисс между точностью и затратами на реализацию и т. д. Конкретные коэффициенты масштабирования, например, указываются для обратного преобразования, например, блоком 212 обратного преобразования в декодере 200 (и соответствующее обратное преобразование, например, блоком 112 обратного преобразования в кодере 100), и соответствующие коэффициенты масштабирования для прямого преобразования, например, посредством блока 106 преобразования, в кодере 100 могут быть определены соответствующим образом.
[0095] Блок 108 квантования выполнен с возможностью квантования преобразованных коэффициентов 107 для получения квантованных коэффициентов 109, например, путем применения скалярного квантования или векторного квантования. Квантованные коэффициенты 109 также могут упоминаться как квантованные остаточные коэффициенты 109. Например, для скалярного квантования может применяться другое масштабирование для достижения более тонкого или более грубого квантования. Меньшие размеры шагов квантования соответствуют более тонкому квантованию, тогда как большие размеры шагов квантования соответствуют более грубому квантованию. Применимый размер шага квантования может быть указан параметром квантования (quantization parameter, QP). Параметр квантования может, например, быть индексом для заранее определенного набора применимых размеров шага квантования. Например, малые параметры квантования могут соответствовать точному квантованию (малые размеры шагов квантования), а большие параметры квантования могут соответствовать грубому квантованию (большие размеры шагов квантования) или наоборот. Квантование может включать в себя деление на размер шага квантования, и соответствующее или обратное деквантование, например, посредством обратного квантования 110, может включать в себя умножение на размер шага квантования.
[0096] Варианты осуществления изобретения согласно HEVC могут быть выполнены с возможностью использования параметра квантования для определения размера шага квантования. Обычно размер шага квантования может быть вычислен на основе параметра квантования с использованием аппроксимации с фиксированной точкой уравнения, включающего деление. Дополнительные коэффициенты масштабирования могут быть введены для квантования и деквантизации, чтобы восстановить норму остаточного блока, который может быть изменен из-за масштабирования, используемого в приближении фиксированной точки уравнения для размера шага квантования и параметра квантования. В одной примерной реализации масштабирование обратного преобразования и деквантизация могут быть объединены. В качестве альтернативы могут использоваться настроенные таблицы квантования, и кодер может передавать их в декодер, например, в битовом потоке. Квантование - это операция с потерями, при которой потери возрастают с увеличением размеров шагов квантования.
[0097] Варианты осуществления кодера 100 (или, соответственно, блока 108 квантования) могут быть выполнены с возможностью вывода схемы квантования и размера шага квантования, например, посредством соответствующего параметра квантования, так что декодер 200 может принимать и применять соответствующее обратное квантование. Варианты осуществления кодера 100 (или блока 108 квантования) могут быть выполнены с возможностью вывода схемы квантования и размера шага квантования, например, напрямую или энтропийно, закодированных через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования.
[0098] Блок 110 обратного квантования выполнен с возможностью применения обратного квантования блока 108 квантования к квантованным коэффициентам для получения деквантованных коэффициентов 111, например, путем применения обратной схемы квантования, применяемой блоком 108 квантования на основе или с использованием тот же размер шага квантования, что и блок 108 квантования. Деквантованные коэффициенты 111 также могут называться как деквантованные остаточные коэффициенты 111 и соответствовать - хотя обычно не идентичны преобразованным коэффициентам из-за потери при квантовании - преобразованным коэффициентам 108.
[0099] Блок 112 обратного преобразования выполнен с возможностью применения обратного преобразования преобразования, применяемого блоком 106 преобразования, например, обратного дискретного косинусного преобразования (DCT) или обратного дискретного синусоидального преобразования (DST), чтобы получить блок 113 обратного преобразования в области выборки. Блок 113 обратного преобразования также может называться как деквантованный блок 113 обратного преобразования или остаточный блок 113 обратного преобразования.
[00100] Блок 114 восстановления выполнен с возможностью объединения блока 113 обратного преобразования и блока 165 предсказания для получения восстановленного блока 115 в области выборки, например, путем последовательного добавления выборочных значений декодированного остаточного блока 113 и значений выборок блока 165 предсказания.
[00101] Блок 116 буфера (или короткий «буфер» 116), например, линейный буфер 116, выполнен с возможностью буферизации или хранения восстановленного блока и соответствующих значений выборок, например, для внутренней оценки и/или внутреннего предсказания. В дополнительных вариантах осуществления изобретения кодер может быть выполнен с возможностью использования нефильтрованных восстановленных блоков и/или соответствующих значений выборок, хранящихся в блоке 116 буфера, для любого вида оценки и/или предсказания.
[00102] Варианты осуществления кодера 100 могут быть сконфигурированы таким образом, что, например, блок 116 буфера используется не только для хранения восстановленных блоков 115 для внутренней оценки 152 и/или внутреннего предсказания 154, но также для блока 120 контурного фильтра (не показан на фиг.1), и/или так, что, например, блок 116 буфера и блок 130 буфера декодированного изображения образуют один буфер. Дополнительные варианты осуществления изобретения могут быть выполнены с возможностью использования фильтрованных блоков 121 и/или блоков или выборок из буфера 130 декодированных изображений (оба не показаны на фиг.1) в качестве входных данных или основы для внутренней оценки 152 и/или внутреннего предсказания 154.
[00103] Блок 120 контурного фильтра (или для краткости «контурный фильтр» 120) выполнен с возможностью фильтрации восстановленного блока 115 для получения отфильтрованного блока 121, например, путем применения деблокирующего фильтра с адаптивным смещением выборки (sample-adaptive offset, SAO) или других фильтров, например, фильтры повышения резкости или сглаживания или объединенные фильтры. Отфильтрованный блок 121 также может называться фильтрованным восстановленным блоком 121. Контурный фильтр 120 далее также называется фильтром устранения блочности.
[00104] Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг. 1) блок анализа фильтра и фактический блок фильтра, при этом блок анализа фильтра выполнен с возможностью определения параметров контурного фильтра для фактического фильтра. Блок анализа фильтра может быть выполнен с возможностью применения фиксированных заранее определенных параметров фильтра к фактическому контурному фильтру, адаптивного выбора параметров фильтра из набора заранее определенных параметров фильтра или адаптивного вычисления параметров фильтра для фактического контурного фильтра.
[00105] Варианты осуществления блока 120 контурного фильтра могут содержать (не показаны на фиг. 1) один или множество фильтров (компоненты/подфильтры контурного фильтра), например, один или несколько различных видов или типов фильтров, например, соединенных последовательно или параллельно или в любой их комбинации, при этом каждый из фильтров может содержать отдельно или совместно с другими фильтрами из множества фильтров блок анализа фильтра для определения соответствующих параметров контурного фильтра, например, как описано в предыдущем абзаце.
[00106] Варианты осуществления кодера 100 (соответственно блока 120 контурного фильтра) могут быть выполнены с возможностью вывода параметров контурного фильтра, например, непосредственно или энтропийно закодированных через блок 170 энтропийного кодирования или любой другой блок энтропийного кодирования, так что, например, декодер 200 может принимать и применять одни и те же параметры контурного фильтра для декодирования.
[00107] Буфер 130 декодированных изображений (decoded picture buffer, DPB) выполнен с возможностью приема и хранения отфильтрованного блока 121. Буфер 130 декодированного изображения может быть дополнительно выполнен с возможностью хранения других ранее отфильтрованных блоков, например, ранее восстановленных и отфильтрованных блоков 121 одного и того же текущего изображения или различных изображений, например, ранее восстановленных изображений, и может предоставлять полностью ранее восстановленные, то есть декодированные , изображения (и соответствующие опорные блоки и выборки) и/или частично восстановленное текущее изображение (и соответствующие опорные блоки и выборки), например, для межкадровой оценки и/или межкадрового предсказания.
[00108] Дополнительные варианты осуществления изобретения также могут быть выполнены с возможностью использования ранее отфильтрованных блоков и соответствующих отфильтрованных значений выборок буфера 130 декодированных изображений для любого вида оценки или предсказания, например, внутренней и межкадровой оценки и предсказания.
[00109] Блок 160 предсказания, также называемый блоком 160 предсказания, выполнен с возможностью приема или получения блока 103 изображения (текущего блока 103 изображения текущего изображения 101) и декодирования или по меньшей мере восстановленных данных изображения, например, опорных выборок одно и то же (текущее) изображение из буфера 116 и/или декодированные данные 231 изображения из одного или множества ранее декодированных изображений из буфера 130 декодированных изображений, и для обработки таких данных для предсказания, то есть для обеспечения блока 165 предсказания, который может быть блок 145 с межкадровым предсказанием или блок 155 с внутренним предсказанием.
[00110] Блок 162 выбора режима может быть выполнен с возможностью выбора режима предсказания (например, режима внутреннего или межкадрового предсказания) и/или соответствующего блока 145 или 155 предсказания, который будет использоваться в качестве блока 165 предсказания для вычисления остаточного блока 105 и для восстановления восстановленного блока 115.
[00111] Варианты осуществления блока 162 выбора режима могут быть выполнены с возможностью выбора режима предсказания (например, из тех, которые поддерживаются блоком 160 предсказания, который обеспечивает наилучшее совпадение или, другими словами, минимальный остаток (минимальный остаток означает лучшее сжатие для передачи или хранения) или минимальные накладные расходы на сигнализацию (минимальные накладные расходы на сигнализацию означают лучшее сжатие для передачи или хранения), или который учитывает или уравновешивает оба. Блок 162 выбора режима может быть выполнен с возможностью определения режима предсказания на основе оптимизации искажения скорости (rate distortion optimization, RDO), то есть выбора режима предсказания, который обеспечивает оптимизацию искажения с минимальной скоростью, или какое связанное искажение скорости по меньшей мере a удовлетворяет критерию выбора режима предсказания.
[00112] Далее обработка предсказания (например, блок 160 предсказания и выбор режима (например, блоком 162 выбора режима), выполняемые примерным кодером 100, будут объяснены более подробно.
[00113] Как описано выше, кодер 100 выполнен с возможностью определения или выбора наилучшего или оптимального режима предсказания из набора (заранее определенных) режимов предсказания. Набор режимов предсказания может содержать, например, режимы внутреннего предсказания и/или режимы межкадрового предсказания.
[00114] Набор режимов внутреннего предсказания может содержать 32 различных режима внутреннего предсказания, например, ненаправленные режимы, такие как режим постоянного (или среднего) и планарный режим, или направленные режимы, например, как определено в H.264, или может содержать 65 различные режимы внутреннего предсказания, например, ненаправленные режимы, такие как режим постоянного тока (или среднего) и планарный режим, или направленные режимы, например, как определено в H.265.
[00115] Набор (или возможно) режимы межкадрового предсказания зависят от доступных опорных изображений (т.е. предыдущими, по меньшей мере, частично декодированные изображений, например, хранить в DBP 230) и других параметров межкадрового предсказания, например, будь то в целом опорное изображение или только часть, например, окно поиска область вокруг области текущего блока, опорного изображения используется для поиска наилучшего соответствия опорного блока, и/или, например, применяется ли пиксельная интерполяции, например, полу-пиксельная (half/semi-pel interpolation) и/или четверть-пиксельная (quarter-pel interpolation) интерполяция, или нет.
[00116] В дополнение к вышеупомянутым режимам предсказания могут применяться режим пропуска и/или прямой режим.
[00117] Блок 160 предсказания может быть дополнительно выполнен с возможностью разделения блока 103 на более мелкие части или подблоки, например, итеративно с использованием квадратичного разделения (QT), двоичного разделения (BT) или тройного разделения дерева (TT) или любую их комбинацию, и выполнять, например, предсказание для каждого из разделов или подблоков блока, при этом выбор режима содержит выбор древовидной структуры разделенного блока 103 и режимов предсказания, применяемых к каждому из разделений блоков или подблоков.
[00118] Блок 142 межкадровой оценки, также называемый блоком 142 межкадровой оценки, выполнен с возможностью приема или получения блока 103 изображения (текущего блока 103 изображения текущего изображения 101) и декодированного изображения 231, или по меньшей мере одного или множества ранее восстановленных блоков, например, восстановленных блоков одного или множества других/различных ранее декодированных изображений 231, для межкадровой оценки (или «межкадровой оценки»). Например, видеопоследовательность может содержать текущее изображение и ранее декодированные изображения 231, или, другими словами, текущее изображение и ранее декодированные изображения 231 могут быть частью или формировать последовательность изображений, образующих видеопоследовательность.
[00119] Кодер 100 может, например, быть выполнен с возможностью выбора опорного блока из множества опорных блоков одинаковых или различных изображений из множества других изображений и обеспечивает опорное изображение (или индекс опорного изображения) и/или смещение (пространственное смещение) между положением (X, Y) координаты опорного блока и положение текущего блока в качестве межкадровых оценочных параметров 143 к блоку 144 межкадрового предсказания,. Это смещение также называется вектором движения (motion vector, MV). Межкадровая оценка также называется оценкой движения (motion estimation, ME), а межкадровое предсказание также называется предсказанием движения (motion prediction, MP).
[00120] Блок 144 межкадрового предсказания выполнен с возможностью получения, например, приема параметра 143 межкадрового предсказания и выполнения межкадрового предсказания на основе или с использованием параметра 143 межкадрового предсказания для получения блока 145 межкадрового предсказания.
[00121] Хотя на фиг.1 показаны два отдельных блока (или этапа) для межкадрового кодирования, а именно межкадровая оценка 142 и межкадровае предсказание 152, обе функции могут выполняться, поскольку одна (межкадровая оценка) требует/содержит вычисление некого/определенного межкадрового предсказания блока, т.е. или некого или определенного «вида» межкадрового предсказания 154), например, путем итеративного тестирования всех возможных или заранее определенного подмножества возможных режимов межкадрового предсказания с сохранением лучшего на данный момент режима межкадрового предсказания и соответствующего блока межкадрового предсказания и с использованием лучшего в настоящее время режимом межкадрового предсказания и соответствующего блока межкадрового предсказания в качестве (окончательного) параметра 143 межкадрового предсказания и блока 145 межкадрового предсказания без выполнения другого межкадрового предсказания 144.
[00122] Блок 152 внутренней оценки выполнен с возможностью получения, например, приема блока 103 изображения (текущего блока изображения) и одного или множества ранее восстановленных блоков, например, восстановленных соседних блоков, одного и того же изображения для внутренней оценки. Кодер 100 может, например, быть выполнен с возможностью выбора режима внутреннего предсказания из множества (заранее определенных) режимов внутреннего предсказания и обеспечения его в качестве параметра 153 внутренней оценки в блок 154 внутреннего предсказания.
[00123] Варианты осуществления кодера 100 могут быть выполнены с возможностью выбора режима внутреннего предсказания на основе критерия оптимизации, например, минимального остатка (например, режим внутреннего предсказания, обеспечивающий блок 155 предсказания, наиболее похожий на текущий блок 103 изображения) или минимальную скорость искажения.
[00124] Блок 154 внутреннего предсказания выполнен с возможностью определения на основе параметра 153 внутреннего предсказания, например, выбранного режима 153 внутреннего предсказания, блока 155 внутреннего предсказания.
[00125] Хотя на фиг.1 показаны два отдельных блока (или этапа) для внутреннего кодирования, а именно внутренняя оценка 152 и внутреннее предсказание 154, обе функции могут выполняться, поскольку одна (внутренняя оценка) требует/содержит вычисление блока внутреннего предсказания, т. е. некого или определенного «вида» внутреннего предсказания 154), например, путем итеративного тестирования всех возможных или заранее определенного подмножества возможных режимов внутреннего предсказания с сохранением лучшего в настоящее время режима внутреннего предсказания и соответствующего блока внутреннего предсказания и с использованием лучшего в настоящее время режима внутреннего предсказания и соответствующий блок внутреннего предсказания в качестве (окончательного) параметра 153 внутреннего предсказания и блок 155 внутреннего предсказания без выполнения другого внутреннего предсказания 154.
[00126] Блок 170 энтропийного кодирования выполнен с возможностью применения алгоритма или схемы энтропийного кодирования (например, схемы кодирования с переменной длиной (variable length coding, VLC), контекстно-адаптивной схемы VLC (context adaptive, CALVC), схемы арифметического кодирования, контекстно-адаптивного двоичного арифметического кодирования (context adaptive binary arithmetic coding, CABAC) на квантованных остаточных коэффициентах 109, параметрах 143 межкадрового предсказания, параметре 153 внутреннего предсказания и/или параметрах контурного фильтра, индивидуально или совместно (или не совсем), чтобы получить кодированные данные 171 изображения, которые могут выводиться выходом 172, например, в виде кодированного битового потока 171.
[00127] ФИГ. 2 показывает примерный видеодекодер 200, выполненный с возможностью приема кодированных данных 171 изображения (например, кодированного битового потока), например, закодированных кодером 100, для получения декодированного изображения 231.
[00128] Декодер 200 содержит вход 202, блок 204 энтропийного декодирования, блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания. , блок 244 межкадрового предсказания, блок 254 внутреннего предсказания, блок 260 выбора режима и выходной сигнал 232.
[00129] Блок 204 энтропийного декодирования выполнен с возможностью выполнения энтропийного декодирования кодированных данных 171 изображения для получения, например, квантованных коэффициентов 209 и/или декодированных параметров кодирования (не показаны на фиг. 2), например, (декодированных) любого или всех параметров 143 межкадрового предсказания, параметра 153 внутреннего предсказания и/или параметров контурного фильтра.
[00130] В вариантах осуществления декодера 200 блок 210 обратного квантования, блок 212 обратного преобразования, блок 214 восстановления, буфер 216, контурный фильтр 220, буфер 230 декодированных изображений, блок 260 предсказания и блок 260 выбора режима выполнены с возможностью выполнения обратной обработки кодера 100 (и соответствующих функциональных блоков) для декодирования кодированных данных 171 изображения.
[00131] В частности, блок 210 обратного квантования может быть идентичен по функциям блоку 110 обратного квантования, блок 212 обратного преобразования может быть идентичным по функциям блоку 112 обратного преобразования, блок 214 восстановления может быть идентичным по функциям блоку 114 восстановления, буфер 216 может быть идентичен по функциям буферу 116, контурный фильтр 220 может быть идентичен по функции контурному фильтру 220 (в отношении фактического контурного фильтра, поскольку контурный фильтр 220 обычно не содержит блок анализа фильтра для определения параметров фильтра, основанных на исходном изображении 101 или блоке 103, но принимает (явно или неявно) или получает параметры фильтра, используемые для кодирования, например, из блока 204 энтропийного декодирования), и буфер 230 декодированного изображения может быть идентичен по функциям буферу 130 декодированных изображений.
[00132] Блок 260 предсказания может содержать блок 244 межкадрового предсказания и блок 254 межкадрового предсказания, при этом блок 144 межкадрового предсказания может быть идентичен по функциям блоку 144 межкадрового предсказания, а блок 154 межкадрового предсказания может быть идентичен по функциям блоку 154 внутреннего предсказания.. Блок 260 предсказания и блок 262 выбора режима обычно конфигурируются для выполнения предсказания блока и/или получения предсказанного блока 265 только из кодированных данных 171 (без какой-либо дополнительной информации об исходном изображении 101) и для приема или получения (явно или неявно) параметов 143 или 153 предсказания и/или информацию о выбранном режиме предсказания, например, из блока 204 энтропийного декодирования.
[00133] Декодер 200 выполнен с возможностью вывода декодированного изображения 230, например, через выход 232 для представления или просмотра пользователю.
[00134] Хотя варианты осуществления изобретения были в основном описаны на основе кодирования видео, следует отметить, что варианты осуществления кодера 100 и декодера 200 (и, соответственно, системы 300) также могут быть выполнены с возможностью обработки или кодирования неподвижных изображений, то есть обработки или кодирования отдельного изображения независимо от любого предыдущего или последующего изображения, как при кодировании видео. В общем, только межкадровая оценка 142, межкадровое предсказание 144, 242 недоступны в случае, если кодирование обработки изображения ограничено одним изображением 101. Большинство, если не все другие функции (также называемые инструментами или технологиями) видеокодера 100 и видеодекодера 200 могут в равной степени использоваться для статических изображений, например, разделение, преобразование (масштабирование) 106, квантование 108, обратное квантование 110, обратное преобразование 112, внутренняя оценка 142, внутреннее предсказание 154, 254 и/или контурная фильтрация 120, 220, энтропийное кодирование 170 и энтропийное декодирование 204.
[00135] Настоящее изобретение касается внутренней работы фильтра устранения блочности, также называемого контурным фильтром на фиг.1 и фиг.2.
[00136] На фиг. 4 показаны два примерных блока 401, 402 кодирования, разделенных краем 403 блока. Блоки 401, 402 кодирования содержат линии 402-407 пикселей и ряды 408-415 пикселей. В частности, здесь край блока - это вертикальный край блока. В этом примере блоки имеют размер 4×4 пикселя. Однако на практике могут использоваться блоки других размеров.
[00137] Решения устранении блочности принимаются отдельно для каждого сегмента границы блока.
[00138] Сильный фильтр устранения блочности в HEVC применяется к сглаженным областям, где артефакты блоков более заметны. Режим фильтрации изменяет три выборки от границы блока и обеспечивает сильную фильтрацию нижних частот. Для каждой выборки дополнительно выполняется операция отсечения. Причина выполнения операции отсечения состоит в том, чтобы ограничить объем фильтрации, чтобы убедиться, что нет чрезмерной фильтрации на линиях, которые не были оценены в решениях о фильтрации. Как показано на фиг.4, линии 405 и 406 пикселей не используются при принятии решения о фильтрации или не фильтрации. Это сделано по причинам вычислительной сложности. Здесь используются только линии 404 и 407 пикселей решения для определения того, должна ли выполняться фильтрация.
[00139] Далее показаны функции для определения значений пикселей с устраненной блочностью:
[00140] P0’, P1’, P2’представляют собой отфильтрованные значения пикселей, соответствующие исходным значениям пикселей P0, P1 и P2, соответственно. Второй индекс, показанный на фиг. 4, здесь опущен.
[00141] Символ «>>» означает сдвиг вправо. Сдвиг вправо соответствует делению на 2y, где y - величина сдвига вправо. Например, в функции 7.17 «>> 3» означает деление на 23 = 8.
[00142] Затем измененные значения выборки обрезаются до диапазона [Pi - 2tc, Pi + 2tc], где Pi - значение пикселя i, а tc - постоянное значение. tc может, например, быть получен из таблицы с использованием среднего параметра квантования QP в качестве индекса в таблице. Обычно, чем выше значение QP, тем больше значение tc.
[00143] Фиг. 9 изображает типичный блокирующий артефакт на краю 900 блока. Легко видеть, что выборки P0 и Q0 имеют максимальное искажение, а выборки, расположенные дальше от края блока, имеют тенденцию иметь меньшее искажение, например, выборки P3 и Q3.
[00144] Поскольку все значения пикселей обрезаются до одного и того же диапазона отсечения [Pi - 2tc, Pi + 2tc], значения пикселей вдали от границы блока, например, P3 и Q3, также используют тот же диапазон отсечения и, следовательно, могут быть изменены в пределах тот же диапазон, что и значения пикселей P0 и Q0. Этот постоянный диапазон отсечения приведет к тому, что выборки, находящиеся далеко от границы, также будут сильно изменены и, следовательно, приведет к чрезмерному сглаживанию или размытию, а иногда даже к неправильной фильтрации устранения блочности с потерей значимого содержимого изображения.
[00145] Вместо использования фиксированного диапазона ограничения для всех значений пикселей, согласно настоящему изобретнию, диапазон ограничения делается адаптивным. В частности, диапазон отсечения делается адаптивным в зависимости от расстояния соответствующего пикселя от края блока.
[00146] Выгодно использовать таблицу соответствия или функцию для определения значения отсечения, посредством которого отсекается отфильтрованное значение пикселя. Предпочтительно такая функция представляет собой монотонно убывающую функцию в зависимости от расстояния пикселя от края. Чем больше расстояние выборки от края/границы, тем меньше значение отсечения, определенное для пикселя. Следовательно, значениям пикселей, удаленным от края блока, разрешено иметь меньшее значение отсечения и, следовательно, разрешено иметь меньшее отклонение после ограничения по сравнению со значениями пикселей, которые находятся ближе к краю блока. Таким образом, степень фильтрации контролируется и, следовательно, предотвращается чрезмерное сглаживание или размытие.
[00147] Выгодно использовать экспоненциальную функцию для определения значения отсечения. Затем значение отсечения может быть определено как
[00148] tc’ = tc + (tc >> i),
[00149] где tc’- значение отсечения,
[00150] где tc - постоянное значение,
[00151] где i - расстояние пикселя от края блока, и
[00152] где >> означает сдвиг вправо.
[00153] Это приводит к следующей формуле для отсечения значения пикселя с устраненной блочностью:
[00154] P’a, b = (Pa, b - (tc + (tc >> i)),
[00155] Pa, b + (tc + (tc >> i))).
[00156] при этом:
[00157] P’ a, b - значение пикселя с устраненной блочностью пикселя a, b,</GipSegment>
[00158] a - целочисленный индекс ряда пикселей,
[00159] b - целочисленный индекс линии пикселей,
[00160] Pa, b - исходное значение пикселя a, b,</GipSegment>
[00161] i - целочисленное расстояние пикселя от края блока.
[00162] Например, для P0,0 и Q0,0 отсечение остается таким же, как описано в формулах 7.17-7.19, потому что значение i равно 0 (расстояние равно 0). Значение отсечения устанавливается на tc’ = tc + (tc >> 0) = 2tc, в результате получается P’0,0 = (P0,0-2tc), P0,0 + 2tc))
[00163] Например, для P’1,0 отсечение уменьшается до tc’ = tc + (tc >> 1) = tc + tc / 2 = 1,5 tc, в результате чего P’1,0 = (P1,0-1,5tc), P1,0 + 1,5tc)).
[00164] Например, для P’2,0 отсечение уменьшается до tc’ = tc + (tc >> 2) = tc + tc/4 = 1,25 tc, в результате чего P’2,0 = (P2,0-1,25tc), P2,0 + 1,25tc)).
[00165] Как мы видим, значение отсечения постепенно уменьшается по мере увеличения расстояния i выборки от края блока.
[00166] Другая альтернативная экспоненциальная функция, которую можно использовать, выглядит следующим образом:
[00167] tc’ = ((2 * tc) >> i),
[00168] где tc’- значение отсечения,
[00169] где tc - постоянное значение,
[00170] где i - расстояние пикселя от края блока, и
[00171] где >> означает сдвиг вправо.
[00172] Это приводит к следующей формуле для отсечения значения пикселя с устраненной блочностью:
[00173] P’a, b = (Pa, b - ((2 * tc) >> i)),
[00174] Pa, b + ((2 * tc) >> i))).
[00175] при этом:
[00176] P’ a, b - значение пикселя с устраненной блочностью пикселя a, b,</GipSegment>
[00177] a - целочисленный индекс ряда пикселей,
[00178] b - целочисленный индекс линии пикселей,
[00179] Pa, b - исходное значение пикселя a, b, </GipSegment>
[00180] i - целочисленное расстояние пикселя от края блока.
[00181] Однако вычисление экспоненциальной функции приводит к значительной вычислительной сложности. В альтернативном варианте может использоваться линейная функция. В этом случае значение отсечения установлено на
[00182] tc’ = tc + (tc - (i * x),
[00183] где tc’- значение отсечения,
[00184] где tc - постоянное значение,
[00185] где i - расстояние пикселя от края блока, а
[00186] где x - постоянное значение.
[00187] Это приводит к тому, что значение пикселя с устраненной блочностью будет обрезано до
[00188] P’a, b =
[00189] (PaПа, b - (tc + (tc - (i * x)), Па, b + (tc + (tc - (i * x))),
[00190] при этом:
[00191] P’ a, b - значение пикселя с устраненной блочностью пикселя a, b,</GipSegment>
[00192] a - целочисленный индекс ряда пикселей,
[00193] b - целочисленный индекс линии пикселей,
[00194] Pa, b - исходное значение пикселя a, b, </GipSegment>
[00195] i - целочисленное расстояние пикселя от края блока, и
[00196] x - постоянное целочисленное значение.
[00197] Преимущественно x зависит от среднего параметра квантования QP, используемого в процессе устранения блочности. Обычно значение x увеличивается с увеличением значения QP. Также значение x может быть получено отдельно для 8-битного видео и 10-битного видео.
[00198] Например, значение x для 10-битного видео можно установить следующим образом:
QP
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
X
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
QP
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
X
1
1
1
1
1
1
1
1
1
1
1
1
1
2
2
2
2
QP
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
X
2
2
2
2
2
4
4
5
5
6
6
7
7
8
18
18
QP
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
X
10
10
12
12
12
14
14
16
16
16
16
16
16
16
16
[00199] Например, для среднего значения QP, равного 37, значение x равно 2, и поэтому значения пикселей изменяются следующим образом:
[00200] Например, для P0,0 отсечение остается таким же, как описано в формулах 7.17-7.19, потому что значение i равно 0 (расстояние равно 0). Значение отсечения устанавливается на tc’ = tc + (tc - (0 * 2) = 2tc, в результате получается P’0,0 = (P0,0 - (tc + (tc - (0 * 2)), P0, 0 + (tc + (tc - (0 * 2))).
[00201] Например, для P’1,0 отсечение уменьшается до tc’ = tc + (tc - (1 * 2) = 2tc - 2, в результате чего P’1,0 = (P1,0-2tc - 2), P1,0 + 2 tc - 2)).
[00202] Например, для P’2,0 отсечение уменьшается до tc’ = tc + (tc - 2 * 2) = tc + (tc - 4) = 2tc - 4, в результате чего P’2,0 = (P2, 0 - (2tc - 4)), P2,0 + (2tc - 4)).
[00203] В дополнительном предпочтительном варианте осуществления изобретения использование зависящего от расстояния отсечения, как показано ранее, ограничено линиями пикселей без решения и рядами пикселей без решения, как показано на фиг. 4. Как объяснялось ранее, для определения того, выполняется ли фильтрация края блока, используется количество пикселей из линии пикселей решения (вертикальный край блока) или ряда пикселей решения (горизонтальный край блока). Однако не все линии/ряды пикселей в блоках используются для принятия этого решения, чтобы снизить вычислительную сложность. Однако зависящее от диапазона отсечение выполняется только в линиях/рядах пикселей без решения, но не в пиксельных линиях/рядах, Которые являются линиями/рядами пикселей решения. В линиях/рядах пикселей решения выполняется обычное отсечение с использованием постоянного значения.
[00204] На фиг. 5 показан вариант осуществления первого аспекта изобретения. В частности, здесь показано устройство 501 обработки изображения, содержащее фильтр 502. Фильтр 502 выполнен с возможностью выполнения фильтрации устранения блочности, показанной выше.
[00205] На фиг. 6 показан вариант осуществления второго аспекта изобретения. В частности, здесь показан кодер 600, содержащий устройство 601 обработки изображения, снова содержащее фильтр 602. Фильтр 602 выполняет фильтрацию устранения блочности, как показано выше.
[00206] На фиг. 7 показан вариант осуществления третьего аспекта изобретения. В частности, здесь показан декодер 700, содержащий устройство 701 обработки изображений, в свою очередь, содержащее фильтр 702. Фильтр 702 выполняет фильтрацию устранения блочности, как показано выше.
[00207] Наконец, на фиг. 9 вариант осуществления пятого аспекта изобретения показан в виде блок-схемы. На первом этапе 1000 по меньшей мере для некоторых пикселей подлежащих фильтрации, в пределах диапазона устранения блочности от края блока, отфильтрованное значение пикселя определяется из исходного значения пикселя для пикселя и по меньшей мере одного дополнительного значения пикселя. На втором этапе 1001 значение отсечения пикселя определяется в зависимости от расстояния пикселя от края блока. На последнем третьем этапе 1002 отфильтрованное значение пикселя обрезается с использованием значения отсечения, что приводит к получению значения пикселя с устраненной блочностью.
[00208] Следует отметить, что уточнения, касающиеся того, как выполняется фильтрация устранения блочности сверху, также применимы к способу согласно четвертому аспекту изобретения.
[00209] Важно отметить, что изобретение не ограничивается вариантами осуществления и особенно размерами блоков кодирования и длинами отводов фильтра, показанными выше. Изобретение может применяться к любым размерам блоков кодирования и к любой длине отводов фильтра.
ОПРЕДЕЛЕНИЯ СОКРАЩЕНИЙ
[00210] CTU/CTB - Блок дерева кодирования/Блок дерева кодирования
[00211] CU/CB - модуль кодирования/блок кодирования
[00212] PU/PB - модуль предсказания/блок предсказания
[00213] TU/TB - модуль преобразования/блок преобразования
[00214] HEVC - высокоэффективное кодирование видео
ПЕРЕЧЕНЬ ССЫЛОЧНЫХ НОМЕРОВ
[00215] Фиг. 1
[00216] 100 Кодировщик
[00217] 103 Блок изображения
[00218] 102 Вход (например, входной порт, входной интерфейс)
[00219] 104 Расчет остатка [блок или этап]
[00220] 105 Остаточный блок
[00221] 106 Преобразование (например, дополнительно содержащее масштабирование) [блок или этап]
[00222] 107 Преобразованные коэффициенты
[00223] 108 Квантование [блок или этап]
[00224] 109 Квантованные коэффициенты
[00225] 110 Обратное квантование [блок или этап]
[00226] 111 Деквантованные коэффициенты
[00227] 112 Обратное преобразование (например, дополнительно содержащее масштабирование) [блок или этап]
[00228] 113 Блок с обратным преобразованием
[00229] 114 Восстановление [блок или этап]
[00230] 115 Восстановленный блок
[00231] 116 (Линейный) буфер [блок или этап]
[00232] 117 Опорные выборки
[00233] 120 Контурный фильтр [блок или этап]
[00234] 121 Отфильтрованный блок
[00235] 130 Буфер декодированного изображения (DPB) [блок или этап]
[00236] 142 Межкадровая оценка (или межкадровая оценка) [блок или этап]
[00237] 143 Параметры межкадровой оценки (например, опорный кадр/индекс опорного изображения, вектор движения/смещение)
[00238] 144 Межкадровое предсказание (или межкадровое предсказание) [блок или этап]
[00239] 145 Блок межкадрового предсказания
[00240] 152 Внутренняя оценка (или внутренняя оценка изображения) [блок или этап]
[00241] 153 Параметры внутреннего предсказания (например, режим внутреннего предсказания)
[00242] 154 Внутреннее предсказание (внутреннее предсказание кадра/изображения) [блок или этап]
[00243] 155 Блок внутреннего предсказания
[00244] 162 Выбор режима [блок или этап]
[00245] 165 Блок предсказания (блок 145 межкадрового предсказания или блок 155 внутреннего предсказания)
[00246] 170 Энтропийное кодирование [блок или этап]
[00247] 171 Кодированные данные изображения (например, битовый поток)
[00248] 172 Выход (выходной порт, выходной интерфейс)
[00249] 231 Декодированное изображение
[00250] Фиг. 2
[00251] 200 Декодер
[00252] 171 Кодированные данные изображения (например, битовый поток)
[00253] 202 Вход (порт/интерфейс)
[00254] 204 Энтропийное декодирование
[00255] 209 Квантованные коэффициенты
[00256] 210 Обратное квантование
[00257] 211 Деквантованные коэффициенты
[00258] 212 Обратное преобразование (масштабирование)
[00259] 213 Обратно преобразованный блок
[00260] 214 Восстановление (блок)
[00261] 215 Восстановленный блок
[00262] 216 (Линейный) буфер
[00263] 217 Опорные выборки
[00264] 220 Контурный фильтр (в контурном фильтре)
[00265] 221 Отфильтрованный блок
[00266] 230 Буфер декодированного изображения (DPB)
[00267] 231 Декодированное изображение
[00268] 232 Выход (порт/интерфейс)
[00269] 244 Межкадровое предсказание (межкадровое предсказание/предсказание изображения)
[00270] 245 Блок межкадрового предсказания
[00271] 254 Внутреннее предсказание (внутрикадровое предсказание/предсказание изображения)
[00272] 255 Блок внутреннего предсказания
[00273] 260 Выбор режима
[00274] 265 Блок предсказания (блок 245 межкадрового предсказания или блок 255 внутреннего предсказания)
[00275] Фиг. 3
[00276] 300 Система кодирования
[00277] 310 Устройство-источник
[00278] 312 Источник изображения
[00279] 313 (Raw) данные изображения
[00280] 314 Препроцессор/блок предварительной обработки
[00281] 315 Предварительно обработанные данные изображения
[00282] 318 Блок/интерфейс связи
[00283] 320 Целевое устройство
[00284] 322 Блок/интерфейс связи
[00285] 326 Постпроцессор/Блок постобработки
[00286] 327 Постобработка данных изображения
[00287] 328 Устройство отображения/блок
[00288] 330 Переданные/полученные/сообщенные (кодированные) данные изображения
[00289] Фиг. 4
[00290] 401 Блок кодирования
[00291] 402 Блок кодирования
[00292] 403 Край блока
[00293] 404 Линия пикселей
[00294] 405 Линия пикселей
[00295] 406 Линия пикселей
[00296] 407 Линия пикселей
[00297] 408 Ряд пикселей
[00298] 409 Ряд пикселей
[00299] 410 Ряд пикселей
[00300] 411 Ряд пикселей
[00301] 412 Ряд пикселей
[00302] 413 Ряд пикселей
[00303] 414 Ряд пикселей
[00304] 415 Ряд пикселей[00305] Фиг. 5
[00306] 501 Устройство обработки изображений
[00307] 502 Фильтр
[00308] Фиг. 6
[00309] 600 Кодер
[00310] 601 Устройство обработки изображений
[00311] 602 Фильтр
[00312] Фиг. 7
[00313] 700 Декодер
[00314] 701 Устройство обработки изображений
[00315] 702 Фильтр
[00316] Фиг. 8
[00317] 800 Край блока
[00318] Фиг. 9
[00319] 1000 Первый этап
[00320] 1001 Второй этап
[00321] 1002 Третий этап
[00322] Дополнительные сведения об этом изобретении представлены в Приложении A.
[00323] Хотя в настоящем изобретении представлено несколько вариантов осуществления, следует понимать, что раскрытые системы и способы могут быть воплощены во многих других конкретных формах без отступления от сущности или объема настоящего изобретения. Настоящие примеры следует рассматривать как иллюстративные, а не как ограничительные, и цель не ограничиваться приведенными здесь деталями. Например, различные элементы или компоненты могут быть объединены или интегрированы в другую систему, или определенные функции могут быть опущены или не реализованы.
[00324] Кроме того, методики, системы, подсистемы и способы, описанные и проиллюстрированные в различных вариантах осуществления как отдельные или отдельные, могут быть объединены или интегрированы с другими системами, блоками, технологиями или способами без отклонения от объема настоящего изобретения. Другие элементы, показанные или обсуждаемые как связанные или непосредственно связанные или взаимодействующие друг с другом, могут быть косвенно связаны или взаимодействовать через некоторый интерфейс, устройство или промежуточный компонент, электрически, механически или иным образом. Другие примеры изменений, замен и изменений могут быть установлены специалистом в данной области техники и могут быть выполнены без отклонения от сущности и объема, раскрытых в данном документе.
Ниже приводится список конкретных вариантов осуществления. Ссылочные номера в скобках следует рассматривать как примерные, а не как ограничивающие.
Вариант 1 осуществления изобретения. Устройство (501, 601, 701) обработки изображения для использования в кодере изображения (600) и/или декодере изображения (700) для устранения блочности края блока (403, 800) между первым блоком кодирования (401) и вторым блоком (402) кодирования изображения, закодированного посредством блочного кода, при этом устройство обработки изображения (501, 601, 701) содержит фильтр (502, 602, 702) для фильтрации края (403, 800) блока, выполненный с возможностью для по меньшей мере некоторых пикселей, подлежащих фильтрации, в пределах диапазона устранения блочности от края (403, 800) блока, причем диапазон устранения блочности перпендикулярен краю (403, 800) блока:
определения отфильтрованного значение пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя,
определения значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока и
обрезания отфильтрованного значения пикселя, используя значение отсечения, в результате чего получая значение пикселя с устраненной блочностью.
Вариант 2 осуществления изобретения. Устройство (501, 601, 701) обработки изображения согласно варианту 1 осуществления изобретения, в котором значение отсечения представляет собой максимально допустимую величину изменения между исходным значением пикселя и значением пикселя с устраненной блочностью.
Вариант 3 осуществления изобретения. Устройство (501, 601, 701)обработки изображения согласно варианту 1 осуществления изобретения или 2, в котором отсечение отфильтрованного значения пикселя используя значения отсечения, в результате получая значение пикселя с устраненной блочностью, содержит:
установку значения пикселя с устраненной блочностью равным отфильтрованному значению пикселя, если абсолютное значение разницы между отфильтрованным значением пикселя и значением пикселя с устраненной блочностью не превышает значение отсечения пикселя,
установку значения пикселя с устраненной блочностью равным исходному значению пикселя плюс значение отсечения пикселя, если отфильтрованное значение пикселя превышает исходное значение пикселя плюс значение отсечения, и
установку значения пикселя с устраненной блочностью равным исходному значению пикселя минус значение отсечения пикселя, если отфильтрованное значение пикселя ниже, чем исходное значение пикселя минус значение отсечения.
Вариант 4 осуществления изобретения. Устройство (501, 601, 701) обработки изображения согласно любому из вариантов осуществления изобретения с 1 по 3, в котором фильтр (502, 602, 702) выполнен с возможностью определения значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока посредством функции или таблицы соответствия.
Вариант 5 осуществления изобретения. Устройство (501, 601, 701) обработки изображения согласно любому из вариантов осуществления изобретения с 1 по 3, в котором фильтр (502, 602, 702) выполнен с возможностью определения значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока, используя функцию, которая монотонно уменьшается с увеличением расстояния пикселя от края (403, 800) блока.
Вариант 6 осуществления изобретения. Устройство (501, 601, 701) обработки изображений согласно варианту 5 осуществления изобретния, в котором функция является экспоненциальной функцией.
Вариант 7 осуществления изобретения. Устройство (501, 601, 701) обработки изображений согласно варианту 6 осуществления изобретения, в котором функция tc’ = tc + (tc >> i), где tc’ - значение отсечения, где tc - постоянное значение, где i - расстояние пикселя от края (403, 800) блока, где >> означает сдвиг вправо.
Вариант 8 осуществления изобретения. Устройство (501, 601, 701) обработки изображений согласно варианту 5 осуществления изобретения, в котором функция является линейной функцией.
Вариант 9 осуществления изобретения. Устройство (501, 601, 701) обработки изображений варианта осуществления 8 изобретения в котором функция имеет вид tc’ = tc + (tc - (i * x), где tc’ - значение отсечения, где tc - постоянное значение, где i - это расстояние пикселя от края блока (403, 800), где x - постоянное значение.
Вариант 10 осуществления изобретения. Устройство (501, 601, 701) обработки изображения любого из вариантов осуществления с 1 по 9, в котором фильтр (502, 602, 702) выполнен с возможностью, для каждого пикселя, подлежащего фильтрации в пределах диапазона устранения блочности от края (403, 800) блока, диапазон устранения блочности перпендикулярен краю (403, 800)блока:
определения отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя, определения значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока и отсечение отфильтрованного значения пикселя, используя значение отсечения, в результате получая значение пикселя с устраненной блочностью.
Вариант 11 осуществления изобретения. Устройство обработки (501, 601, 701) изображения согласно любому из вариантов осуществления с 1 по 9, в котором фильтр (502, 602, 702) выполнен с возможностью определения необходимости фильтрации края (403, 800)блока на основе того, что количество линий пикселей решения меньше количества линий пикселей в блоках, окружающих край (403, 800) блока, в случае вертикального края (403, 800) блока, и того, что количество рядов пикселей решения меньше количества рядов пикселей в блоках, окружающих край (403, 800) блока, в случае горизонтального края (403, 800) блока, при этом фильтр (502, 602, 702) выполнен с возможностью, для каждого пикселя, подлежащего фильтрации, не в ряду пикселей решения или линии пикселей решения, в пределах диапазона устранения блочности от края (403, 800) блока, при этом диапазон устранения блочности перпендикулярен (403, 800) краю блока:
определения отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя,
определения значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока,
отсечения отфильтрованного значения пикселя, используя значения отсечения, в результате получая значение пикселя с устраненной блочностью, и
при этом фильтр (502, 602, 702) выполнен с возможностью, для каждого пикселя, подлежащего фильтрации, в ряду пикселей решения или линии пикселей решения в пределах диапазона устранения блочности от края (403, 800) блока, причем диапазон устранения блочности перпендикулярен краю (403, 800) блока:
определения отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя, и
отсечения отфильтрованного значения пикселя, используя постоянное значение отсечения, в результате получая значение пикселя с устраненной блочностью.
Вариант 12 осуществления изобретения. Устройство (501, 601, 701) обработки изображений любого из вариантов осуществления изобретения с 1 по 11, в котором фильтр (502, 602, 702) имеет длину отвода фильтра 1 или по меньшей мере два, или по меньшей мере три, или по меньшей мере четыре, или по меньшей мере пять, или по меньшей мере шесть, или по меньшей мере семь, или по меньшей мере восемь, или по меньшей мере девять, или по меньшей мере десять, или по меньшей мере одиннадцать, или по меньшей мере двенадцать, или по меньшей мере тринадцать, или по меньшей мере четырнадцать, или по меньшей мере пятнадцать, или по меньшей мере шестнадцать пикселей.
Вариант 13 осуществления изобретения. Кодер для кодирования изображения, содержащий устройство (501, 601, 701) обработки изображения согласно любому из вариантов осуществления изобретения с 1 по 12.
Вариант 14 осуществления изобретения. Декодер для декодирования изображения, содержащий устройство (501, 601, 701) обработки изображения согласно любому из вариантов осуществления изобретения с 1 по 12.
Вариант 15 осуществления изобретения. Способ устранения блочности для устранения блочности края (403, 800) блока между первым блоком кодирования и вторым блоком кодирования изображения, закодированного посредством блочного кода, при этом способ содержит по меньшей мере некоторые из пикселей, подлежащих фильтрации, в пределах диапазона устранения блочности от края (403, 800) блока, при этом диапазон устранения блочности перпендикулярен краю (403, 800) блока:
определение (1000) отфильтрованного значения пикселя из исходного значения пикселя и по меньшей мере одного дополнительного значения пикселя,
определение (1001) значения отсечения пикселя в зависимости от расстояния пикселя от края (403, 800) блока, и
отсечение (1002) отфильтрованного значения пикселя, используя значение отсечения, в результате получая значение пикселя с устраненной блочностью.
Вариант 16 осуществления изобретения. Способ кодирования для кодирования изображения, содержащий способ устранения блочности согласно варианту 15 осуществления изобретения.
Вариант 17 осуществления изобретения. Способ декодирования для декодирования изображения, содержащий способ устранения блочности согласно варианту 15 осуществления изобретения.
Вариант 18 осуществления изобретения. Компьютерный программный продукт, содержащий программный код для выполнения способа согласно любому из вариантов 15-17 осуществления изобретения при выполнении компьютерной программы на компьютере.