Уровень техники
Область техники, к которой относится изобретение
Данное раскрытие относится к кодированию и декодированию данных.
Описание предшествующего уровня техники
Описание "Предшествующего уровня техники", представленное здесь, предназначено для общего представления контекста раскрытия. Работа названных в настоящее время авторов изобретения, в той степени, как она описана в этом разделе "Предшествующий уровень техники", так же, как и аспекты описания, которые, не могут быть квалифицированы, как предшествующий уровень техники во время подачи, ни в явном виде, ни скрыто не допущены, как предшествующий уровень техники, против настоящего раскрытия.
Существует несколько систем кодирования и декодирования видеоданных, в которых используется преобразование видеоданных в представление в области частоты, квантование коэффициентов в области частоты и затем применение определенной формы энтропийного кодирования для квантованных коэффициентов. Это позволяет достичь сжатия видеоданных. Соответствующая технология декодирования или разворачивания данных применяется для восстановления реконструированной версии оригинальных видеоданных.
Используемые в настоящее время видеокодеки (декодеры - кодеры), такие как используются в H.264/MPEG-4 Усовершенствованное видеокодирование (AVC) обеспечивают сжатие данных, в основном, только благодаря кодированию разности между последовательными видеокадрами. В таких кодеках используются регулярные массивы, так называемых, макроблоков, каждый из которых используется в качестве области сравнения с соответствующим макроблоком в предыдущем видеокадре, и область изображения в макроблоке затем кодируют в соответствии со степенью движения, определенной между соответствующими текущими и предыдущими макроблоками в последовательности видеоданных, или между соседними макроблоками в пределах одного кадра последовательности видеоданных.
Высокоэффективной кодирование видеоданных (HEVC), также известное как Н.265 или MPEG-H Часть 2, является предложенным преемником для H.264/MPEG-4 AVC. Для HEVC предполагается улучшение качества видеоизображения и удвоение степени сжатия данных по сравнению с Н.264, и обеспечение возможности масштабирования от 128×96 до 7680×4320 пикселей разрешения, что приблизительно эквивалентно скоростям передачи битов в диапазоне от 128 кбит/с до 800 Мбит/с.
В HEVC, так называемая, структура блока 4:2:0 предложена для оборудования потребителя, в которой объем данных, используемый в каждом канале цветности, составляет одну четверть канала яркости. Это связано с тем, что субъективно люди в большей степени чувствительны к вариациям яркости, чем к вариациям цвета, и, таким образом, возможно использовать большую степень сжатия и/или меньше информации в каналах цветности без субъективной потери качества.
HEVC заменяет макроблоки, определенные в существующих стандартах Н.264 и MPEG, более гибкой схемой на основе модулей кодирования (CU), которые представляют собой структуры переменного размера.
Следовательно, при кодировании данных изображения в видеокадрах, размеры CU можно выбирать в соответствии с кажущейся сложностью изображения или детектируемыми уровнями движения, вместо использования равномерно распределенных макроблоков. Следовательно, может быть достигнута гораздо большая степень сжатия в областях, в которых присутствует мало движения между кадрами, и с малыми вариациями в пределах кадра, в то время, как лучшее качество изображения может быть сохранено в областях с большим движением между кадрами движения или с большей сложностью изображения.
Каждый CU содержит один или больше модулей прогнозирования (PU) с переменным размером блока, либо для прогнозирования внутри кадра, или для прогнозирования между кадрами, и один или больше модулей преобразования (TU), которые содержат коэффициенты для пространственного преобразования блоков и квантования.
Кроме того, блоки PU и TU предусмотрены для каждого из трех каналов; яркости (Y), который представляет яркость или канал яркости, и который можно рассматривать, как канал серой шкалы, и два цветоразностных канала или канала цветности (chroma); Cb и Cr. Эти каналы обеспечивают цвет для изображения серой шкалы канала яркости. Термины Y, яркость и luma используются взаимозаменяемо в данном описании, и аналогично термины Cb и Cr цветности и chroma используются здесь взаимозаменяемо, соответственно, с учетом того, что термины цветность или chroma могут использоваться в общем смысле для "одного или обоих Cr и Cb", когда будет описываться один конкретный канал цветности, он будет обозначен термином Cb или Cr.
В общем случае PU рассматривается, как независимый от канала, за исключением того, что PU имеет часть яркости и часть цветности. В общем, это означает, что образцы, формирующие часть PU для каждого канала, представляют ту же область изображения, таким образом, что существует фиксированная взаимосвязь между PU, между тремя каналами. Например, для видеоизображения 4:2:0, PU 8×8 для яркости всегда имеет соответствующие PU 4×4 для цветности, при этом части цветности PU, представляющие те же области, что и часть яркости, но содержащие меньшее количество пикселей, благодаря свойствам подвыборки данных цветности 4:2:0 по сравнению с данными яркости в видеоизображении 4:2:0. (В 4:4:4 частоты дискретизации являются такими же, и поэтому те же самые структуры PU могут использоваться для выборок яркости и цветности). Два канала цветности совместно используют информацию прогнозирования внутри кадра; и три канала совместно используют информацию прогнозирования между кадрами. Точно так же, структуры TU также имеют фиксированную взаимосвязь между этими тремя каналами.
Однако, для профессиональной широковещательной передачи и оборудования цифрового кино желательно иметь меньшую степень сжатия (или большее количество информации) в каналах цветности, и это может повлиять, как то, как работают современная и предложенная обработка HEVC.
Раскрытие изобретения
Настоящее раскрытие направлено на устранение или уменьшение проблем, возникающих при такой обработке.
Соответствующие аспекты и свойства настоящего раскрытия определены в приложенной формуле изобретения.
Следует понимать, что, как представленное выше общее описание, так и следующее подробное описание изобретения являются примерными, но не являются ограничительными в отношении настоящей технологии.
Краткое описание чертежей
Более полная оценка раскрытия и множества его сопутствующих преимуществ будут легко достигнуты по мере их лучшего понимания, со ссылкой на следующее подробное описание изобретения, которое рассматривается совместно с приложенными чертежами, на которых:
на фиг. 1 схематично иллюстрируется система передачи и приема аудио/видео (A/V) данных, в которой используется сжатие и распаковка видеоданных;
на фиг. 2 схематично показана система видеодисплея, в которой используется распаковка видеоданных;
на фиг. 3 схематично показана система накопителя аудио/видеоданных, используя сжатие и распаковку видеоданных;
на фиг. 4 схематично показана видеокамера, в которой используется сжатие видеоданных;
на фиг. 5 представлен общий обзор описания схемы устройства сжатия и распаковки видеоданных;
на фиг. 6 схематично показано генерирование прогнозируемых изображений;
на фиг. 7 схематично показан самый большой модуль кодирования (LCU);
на фиг. 8 схематично показан набор из четырех модулей кодирования (CU);
на фиг. 9 и 10 схематично представлены модули кодирования по фиг. 8, разделенные на меньшие модули кодирования;
на фиг. 11 схематично показан массив модулей прогнозирования (PU);
на фиг. 12 схематично показан массив модулей преобразования (TU);
на фиг. 13 схематично показано частично кодированное изображение;
на фиг. 14 схематично показан набор возможных направлений прогнозирования внутри кадра;
на фиг. 15 схематично показан набор режимов прогнозирования;
на фиг. 16 схематично показана диагональная развертка сверху-вправо;
на фиг. 17 схематично показано устройство сжатия видеоданных;
на фиг. 18A и 18B схематично представлены возможные размеры блока;
на фиг. 19 схематично показано использование совместно размещенной информации из блоков цветности и яркости;
на фиг. 20 схематично показана ситуация, в которой совместно размещенная информация из одного канала цветности используется относительно другого канала цветности;
на фиг. 21 схематично показаны пиксели, используемые для режима LM-ЦВЕТНОСТИ;
на фиг. 22 схематично показан набор направлений прогнозирования яркости;
на фиг. 23 схематично показаны направления для фиг. 22, в применении к горизонтальному прореженному каналу цветности;
на фиг. 24 схематично показаны направления для фиг. 22, отображенные на прямоугольную матрицу пикселей цветности;
на фиг. 25-28 схематично представлена интерполяция пикселя яркости и цветности;
на фиг. 29A и 29B схематично представлены таблицы параметров квантования для 4:2:0 и 4:2:2 соответственно;
на фиг. 30 и 31 схематично представлены таблицы изменения квантования;
Осуществление изобретения
Рассматривая теперь чертежи, фиг. 1-4 предусмотрены для предоставления схематичной иллюстрации устройства или систем с использованием устройства сжатия и/или распаковки, которое описано ниже в связи с вариантами осуществления настоящей технологии.
Все из устройств сжатия и/или распаковки данных, которые будут описаны ниже, могут быть воплощены в виде аппаратных средствах, в виде программного обеспечения, работающего в устройстве обработки данных общего назначения, таком как компьютер общего назначения, в виде программируемых аппаратных средств, таких как специализированная интегральная схема (ASIC) или программируемая пользователем вентильная матрица (FPGA) или как их комбинации. В случаях, когда варианты осуществления воплощены в виде программных средств и/или встроенного программного обеспечения, следует понимать, что такие программное средство и/или встроенное программное обеспечение, и энергонезависимые носители для сохранения данных, на которых такие программное средство и/или встроенное программное обеспечение сохранены или по-другому предусмотрены, рассматриваются, как варианты осуществления настоящего раскрытия.
На фиг. 1 схематично иллюстрируется система передачи и приема аудио/видеоданных, использующая сжатие и распаковку видеоданных.
Входной аудио/видеосигнал 10 подают в устройство 20 сжатия видеоданных, которое сжимает, по меньшей мере, видеокомпонент аудио/видеосигнала 10 для передачи по маршруту 30 передачи, такому как кабель, оптическое волокно, беспроводное соединение и т.п. Сжатый сигнал обрабатывается устройством 40 распаковки, для предоставления выходного аудио/видеосигнала 50. Для обратного пути, устройство 60 сжатия сжимает аудио/видеосигнал для передачи вдоль маршрута 30 передачи в устройство 70 распаковки.
Устройство 20 сжатия и устройство 70 распаковки, поэтому, могут формировать один узел соединения передачи. Устройство 40 распаковки и устройство 60 распаковки могут формировать другой узел соединения передачи. Конечно, в случаях, когда соединение передачи является однонаправленным, только в одном из узлов могло бы потребоваться устройство сжатия, и в другом узле могло бы потребоваться только устройство для распаковки.
На фиг. 2 схематично иллюстрируется система отображения видеоизображения, в которой используется распаковка видеоданных. В частности, сжатый аудио/видеосигнал 100 обрабатывают в устройстве 110 распаковки для получения распакованного сигнала, который может отображаться на дисплее 120. Устройство 110 распаковки может быть воплощено, как единая часть дисплея 120, например, может быть установлено в том же корпусе, что и устройство дисплея. В качестве альтернативы, устройство 110 распаковки может быть предусмотрено, как (например), так называемая, телевизионная приставка (STB), следует отметить, что выражение "телевизионная приставка" не подразумевает требования того, чтобы приставка была установлена в какой-либо конкретной ориентации или положении относительно дисплея 120; это просто термин, используемый в данной области техники для обозначения устройства, которое может быть подключено к дисплею, как периферийное устройство.
На фиг. 3 схематично иллюстрируется система сохранения аудио/видеоданных, в которой используются сжатие и распаковка видеоданных. Входной аудио/видеосигнал 130 поступает в устройство 140 сжатия, которое генерирует сжатый сигнал для сохранения устройством 150 сохранения, таким как устройство магнитного диска, устройство оптического диска, устройство на магнитной ленте, твердотельное устройство сохранения данных, такое как полупроводниковое запоминающее устройство или другое устройство сохранения. Для повторного воспроизведения сжатые данные считывают из устройства 150 сохранения и передают в устройство 160 распаковки для распаковки, для получения выходного аудио/видеосигнала 170.
Следует понимать, что сжатый или кодированный сигнал и носитель сохранения информации, на котором содержится такой сигнал, рассматриваются, как варианты осуществления настоящего раскрытия.
На фиг. 4 схематично иллюстрируется видеокамера, в которой используется сжатие видеоданных. На фиг. 4 устройство изображения съемки 180, такое как датчик изображения на основе прибора с зарядовой связью (CCD) и соответствующие элементы управления и электронной схемы считывания, генерирует видеосигнал, который поступает в устройство 190 сжатия. Микрофон (или множество микрофонов) 200 генерируют аудиосигнал, который должен быть передан в устройство 190 сжатия. Устройство 190 сжатия генерирует сжатый аудио/видеосигнал 210, который должен быть сохранен и/или передан (в общем, обозначен, как этап 220 на схеме).
Технологии, которые будут описаны ниже, относятся, в основном, к сжатию и распаковке видеоданных. Следует понимать, что множество существующих технологий могут использоваться для сжатия аудиоданных совместно с технологиями сжатия видеоданных, которые будут описаны для генерирования сжатого аудио/видеосигнала. Соответственно, отдельная дискуссия сжатия аудиоданных не будет предусмотрена. Следует также понимать, что скорость передачи данных, ассоциированных с видеоданными, в частности, видеоданными качественной широковещательной передачи, обычно намного выше, чем скорость передачи данных, ассоциированных с аудиоданными (сжатыми или несжатыми). Следует, поэтому, понимать, что несжатые аудиоданные могут сопровождать сжатые видеоданные для формирования сжатого аудио/видеосигнала. Также, следует понимать, что, хотя настоящие примеры (показаны на фиг. 1-4) относятся к аудио/видеоданным, технологии, которые будут описаны ниже, могут найти использование в системе, которая просто работает (то есть сжимает, распаковывает, сохраняет, отображает и/или передает) с видеоданными. То есть, в вариантах осуществления может применяться сжатие видеоданных без необходимости использовать любую ассоциированную обработку аудиоданных вообще.
На фиг. 5 схематично показан общий обзор устройства сжатия и распаковки видеоданных.
Контроллер 343 управляет общей работой устройства и, в частности, со ссылкой на режим сжатия, управляет процессом кодирования с проверкой (будет описан ниже), действуя как селектор, для выбора различных режимов работы, таких как CU, PU и размеры блока TU и должны ли видеоданные быть закодированы без потерь или по другому.
Последовательные изображения входного видеосигнала 300 поступают в сумматор 310 и в блок 320 прогнозирования изображения. Блок 320 прогнозирования изображения будет описан ниже более подробно со ссылкой на фиг. 6. Сумматор 310 фактически выполняет операцию вычитания (отрицательное суммирование), состоящую в том, что он принимает входной видеосигнал 300 на входе "+" и вывод блока 320 прогнозирования изображения на входе "-", таким образом, что прогнозируемое изображение вычитается из входного изображения. Результат представляет собой генерирование, так называемого, остаточного сигнала 330 изображения, представляющего разность между фактическим и проектируемым изображениями.
Одна из причин, по которой генерируется остаточный сигнал видеоизображения, состоит в следующем. Технологии кодирования данных, которые будут описаны, то есть, технологии, которые применяются к сигналу остаточного изображения, проявляют тенденцию более эффективной работы, когда в изображении, предназначенном для кодирования, меньше "энергии". Здесь термин "эффективно" относится к генерированию малого количества кодированных данных; для конкретного уровня качества изображения желательно (и рассматривается, как "эффективно"), генерировать так мало данных, насколько это практически возможно. Ссылка на "энергию" в остаточном изображении относится к количеству информации, содержащейся в остаточном изображении. Если прогнозируемое изображение было идентично реальному изображению, разность между ними двумя (то есть, остаточное изображение) содержала бы нулевую информацию (ноль энергии), и была бы очень легко кодирована в кодированные данные с малым объемом. В общем, если добиться обоснованно хорошей работы процесса прогнозирования, можно ожидать, что данные остаточного изображения будут содержать меньше информации (меньше энергии), чем входное изображение, и так его будет проще кодировать с получением кодированных данных с малым объемом.
Остальная часть устройства, действует, как кодер (для кодирования разности или остаточного изображения), будет теперь описан. Данные 330 остаточного изображения подают в модуль 340 преобразования, который генерирует представление дискретного косинусного преобразования (DCT) данных остаточного изображения. Сама по себе технология DCT хорошо известна и не будет подробно описана здесь. Существуют, однако, аспекты технологий, используемых в настоящем устройстве, которые будут более подробно описаны ниже, в частности, в отношении выбора разных блоков данных, в которых применяется операция DCT. Они будут описаны со ссылкой на фиг. 7-12, представленные ниже.
Выход модуля 340 преобразования, который можно представить, как набор коэффициентов DCT для каждого преобразованного блока данных изображения, подают в блок 350 квантования. Различные технологии квантования известны в области сжатия видеоданных, в диапазоне от простого умножения на коэффициент масштабирования квантования до применения сложных справочных таблиц под управлением параметра квантования. Общая цель является двойной. Во-первых, процесс квантования уменьшает количество возможных значений преобразованных данных. Во-вторых, процесс квантования позволяет увеличить вероятность того, что значения преобразованных данных равны нулю. Оба эти эффекта могут обеспечить более эффективную работу процесса энтропийного кодирования, который будет описан ниже, при генерировании малых объемов сжатых видеоданных.
Процесс развертки данных применяется модулем 360 развертки. Назначение процесса развертки состоит в том, чтобы изменить порядок квантованных преобразованных данных, так, чтобы собрать вместе, как можно большее количество ненулевых квантованных преобразованных коэффициентов, и, конечно, потому, чтобы собрать вместе как можно больше коэффициентов со значением ноль. Эти свойства могут обеспечить, так называемое, неравномерное кодирование или аналогичные технологии, которые будут применены эффективно. Таким образом, процесс развертки подразумевает выбор коэффициентов из квантованных преобразованных данных, и, в частности, из блока коэффициентов, соответствующего блоку данных изображения, который был преобразован и квантован, в соответствии с "порядком развертки" таким образом, что (а), все коэффициенты выбирают один раз, как часть развертки, и (b) развертка проявляет тенденцию предоставления требуемого изменения порядка. Один пример порядка развертки, которая может проявлять тенденцию получения полезных результатов, представляет собой, так называемый, порядок диагональной развертки сверху-вправо.
Коэффициенты, полученные в результате развертки затем передают в энтропийный кодер 370 (ЕЕ). И снова, могут использоваться различные типы энтропийного кодирования. Два примера представляют собой вариант, так называемой, системы САВАС (адаптивное к контексту двоичное арифметическое кодирование) и варианты так называемой системы CAVLC (адаптивное к контексту кодирование переменной длины). В общем, САВАС рассматривается, как обеспечивающее лучшую эффективность, и в некоторых исследованиях было показано, что оно обеспечивает уменьшение на 10-20% качества кодированных выходных данных при качестве изображения, сравнимом с CAVLC. Однако, считается, что CAVLC представляет гораздо более низкий уровень сложности (в смысле его воплощения), чем САВАС. Следует отметить, что процесс развертки и процесс энтропийного кодирования представлены, как отдельные процессы, но фактически могут быть скомбинированы или могут обрабатываться совместно. То есть, считывание данных в энтропийный кодер может происходить в порядке развертки. Соответствующие обсуждения, применимые для соответствующих обратных процессов, будут описаны ниже. Следует отметить, что текущие документы HEVC, которые рассматривались во время подачи, больше не включают в себя возможности кодера коэффициента CAVLC.
Выход энтропийного кодера 370, вместе с дополнительными данными (упомянутыми выше и/или описанными ниже), например, определяющий подход, в соответствии с которым блок 320 прогнозирования, сгенерировавший изображение прогнозирования, обеспечивает сжатый выходной видеосигнал 380.
Однако обратный путь также обеспечивается, поскольку операция самого блока 320 прогнозирования зависит от распакованной версии сжатых выходных данных.
Причина такого свойства состоит в следующем. В качестве соответствующего этапа в процессе распаковки (будет описан ниже) генерируется распакованная версия остаточных данных. Такие распакованные остаточные данные должны быть добавлены к прогнозируемому изображению для генерирования выходного изображения (поскольку оригинальные остаточные данные представляли собой разность между входным изображением и прогнозируемым изображением). Для того чтобы такой процесс был сравнимым, как между стороной сжатия, так и распакованной стороной, прогнозируемые изображения, генерируемые блоком 320 прогнозирования, должны быть одинаковыми в ходе процесса сжатия и во время процесса распаковки. Конечно, во время распаковки, устройство не имеет доступа к оригинальным входным изображениям, но только к распакованным изображениям. Поэтому, при сжатии, устройство 320 прогнозирования основывает свое прогнозирование (по меньшей мере, для кодирования между изображениями) на распакованных версиях сжатых изображений.
Такой процесс энтропийного кодирования, выполняемый энтропийным кодером 370, рассматривается, как кодирование "без потерь", то есть, можно сказать, что его можно реверсировать для получения в точности тех же данных, которые были вначале поданы в энтропийный кодер 370. Таким образом, обратный путь может быть воплощен перед этапом энтропийного кодирования. Действительно, процесс развертки, выполняемый модулем 360 развертки, также рассматривается, как выполняемый без потерь, но в настоящем варианте осуществления обратный путь 390 осуществляется с выхода квантователя 350 на вход взаимодополняющего обратного квантователя 420.
В общих чертах, энтропийный декодер 410, модуль 400 реверсной развертки, обратный квантователь 420 и модуль 430 обратного преобразования обеспечивают соответствующие инверсные функции энтропийного кодера 370, модуля 360 развертки, квантователя 350 и модуля 340 преобразования. От этого момента описание будет продолжено в отношении процесса сжатия; процесс распаковки входного сжатого видеосигнала будет описан ниже отдельно.
В процессе сжатия коэффициенты после развертки передают через обратный путь 390 из квантователя 350 в обратный квантователь 420, который выполняет обратную операцию модуля 360 развертки. Обратное квантование и процесс обратного преобразования выполняются модулями 420, 430 для генерирования сжатого-распакованного сигнала 440 остаточного изображения.
Сигнал 440 изображения добавляют в сумматор 450 к выходу блока 320 прогнозирования, для генерирования реконструированного выходного изображения 460. Это формирует входные данные для блока 320 прогнозирования изображения, как будет описано ниже.
Возвращаясь теперь к процессу, применяемому для распаковки принятого сжатого видеосигнала 470, сигнал подают в энтропийный декодер 410 и оттуда в цепочку модуля 400 обратной развертки, обратного квантователя 420 и модуля 430 обратного преобразования перед добавлением к выходу модуля 320 прогнозирования изображения через сумматор 450. Таким образом, на стороне декодера декодер реконструирует версию остаточного изображения и затем применяет ее (в сумматоре 450) для прогнозируемой версии изображения (на основании от блока к блоку), чтобы декодировать каждый блок.
В понятных терминах выход 460 сумматора 450 формирует выходной распакованный видеосигнал 480. На практике дополнительная фильтрация может применяться перед выводом сигнала.
Таким образом, устройство на фиг. 5 и 6 может действовать как устройство сжатия или устройство распаковки. Функции двух типов устройства накладываются в большой степени. Модуль 360 развертки и энтропийный кодер 370 не используется в режиме распаковки, и в операции блока 320 прогнозирования (который будет более подробно описан ниже), и другие модули следуют режиму и информации параметра, содержащимся в принятом сжатом потоке битов, вместо генерирования такой информации самостоятельно.
На фиг. 6 схематично иллюстрируется генерирование прогнозируемых изображений, и, в частности, операция блока 320 прогнозирования изображения.
Существуют два основных режима прогнозирования, выполняемых блоком 320 прогнозирования изображения, так называемое, прогнозирование внутри изображения и, так называемое, прогнозирование между изображениями, или с компенсацией движения (МС). На стороне кодера каждый из них вовлекает детектирование направления прогнозирования относительно текущего блока, предназначенного для прогнозирования, и генерирование прогнозируемого блока выборок в соответствии с другими выборками (в том же самом изображение (внутри изображения), или в другом (между изображениями). На основании модулей 310 или 450, разность между прогнозируемым блоком и фактическим блоком кодируют или применяют, чтобы закодировать или декодировать блок, соответственно.
Прогнозирование внутри изображения основывает прогнозирование содержания блока изображения данных в пределах одного изображения. Это соответствует, так называемому, кодированию I-кадра в других технологиях сжатия видеоданных. В отличие от кодирования I-кадра, в случае, когда все изображение кодируют внутри изображения, в настоящих вариантах осуществления выбор между кодированием внутри изображения и между изображениями может быть выполнен на основе от блока к блоку, хотя в других вариантах осуществления настоящей технологии выбор все еще делают на основе от изображения к изображению.
Прогнозирование с компенсацией движения представляет собой пример прогнозирования изображения между изображениями, и в нем используется информация о движении, которая стремится определить источник в другом соседнем или расположенном рядом изображении, детали изображения, которые должны быть кодированы в текущем изображении. В соответствии с этим, в идеальном примере, содержание блока данных изображения в прогнозируемом изображении может быть кодировано очень просто, как опорное изображение (вектор движения), указывающий на соответствующий блок в том же или несколько отличающемся положении в расположенном рядом изображении.
Возвращаясь к фиг. 6, здесь показаны две компоновки прогнозирования изображения (соответствующие прогнозированию внутри и прогнозированию между изображениями), результаты которых выбирают с помощью мультиплексора 500 под управлением сигнала 510 режима, так, чтобы обеспечить блоки прогнозируемого изображения для передачи в сумматоры 310 и 450. Выбор делают в зависимости от того, какой выбор дает самую низкую "энергию" (которая, как описано выше, может рассматриваться, как объем информации, требующей кодирования), и выбор передают в кодер в пределах кодированного выходного потока данных. Энергия изображения, в этом контексте, может быть детектирована, например, при выполнении пробного вычитания в области из двух версий прогнозируемого изображения из входного изображения, возведении в квадрат каждого значения пикселя изображения разности, суммировании возведенных в квадрат значений и идентификации, какая из этих двух версий приводит к повышению значения низкого среднеквадратичного изображения разности, относящегося к этой области изображения.
Фактическое прогнозирование, в системе кодирования внутри изображения выполняется на основе блоков изображения, принятых, как часть сигнала 460, то есть, прогнозирование основано на кодированных - декодированных блоках изображения для того, чтобы точно такое же прогнозирование можно было выполнить в устройстве распаковки. Однако, данные могут быть выведены из входного видеосигнала 300 с помощью селектора 520 режима внутри изображения, для управления операцией блока 530 прогнозирования изображения внутри изображения.
Для прогнозирования между изображениями блок 540 прогнозирования с компенсированным движение (МС) использует информацию о движении, такую как векторы движения, выведенные блоком 550 оценки движения из входного видеосигнала 300. Такие векторы движения применяют к обрабатываемой версии реконструированного изображения 460 с помощью блока 540 прогнозирования компенсированного движения, для генерирования блоков прогнозирования между изображениями.
Соответственно, модули 530 и 540 (работающие с блоком 550 оценки) каждый действует, как детекторы, чтобы детектировать направление прогнозирования относительно текущего блока, который будет прогнозирован, и как генератор, чтобы генерировать прогнозируемый блок выборок (формирующий часть прогнозирования, переданного в модули 310 и 450) в соответствии с другими выборками, определенными направлением прогнозирования.
Обработка, применяемая для сигнала 460, будет описана ниже. Вначале сигнал фильтруют с помощью модуля 560 фильтра, который будет описан более подробно ниже. Это улучшает применение фильтра "удаления блоков", для удаления или, по меньшей мере, проявления тенденции к уменьшению эффектов обработки на основе блока, выполняемой модулем 340 преобразования и при последующих операциях. Фильтр, адаптивный к выборке смещения (SAO) (более подробно описан ниже) также может использоваться. Кроме того, адаптивный контурный фильтр применяют, используя коэффициенты, выведенные при обработке реконструированного сигнала 460 и входного видеосигнала 300. Адаптивный контурный фильтр представляет собой фильтр такого типа, который, используя известные технологии, применяет адаптивные коэффициенты фильтра к данным, которые должны быть отфильтрованы. То есть, коэффициенты фильтра могут изменяться в зависимости от различных факторов. Данные, определяющие, какие коэффициенты фильтра следует использовать, включены, как часть кодированного выходного потока данных.
Адаптивная фильтрация представляет фильтрацию в контуре для восстановления изображения. LCU может быть отфильтрован, используя вплоть до 16 фильтров, с выбором фильтра и выводом статуса включено/выключено ALF (фильтр с адаптивным контуром, см. ниже) в отношении каждого CU в пределах LCU. В настоящее время управление выполняется на уровне LCU, а не на уровне CU.
Отфильтрованный выход из модуля 560 фильтра фактически формирует выходной видеосигнал 480, когда устройство работает, как устройство сжатия. Его также помещают в буфер в одном или больше хранилищ 570 изображения или кадра; сохранение последующих изображений является необходимым при обработке компенсированного прогнозирования движения, и, в частности, при генерировании векторов движения. Для сохранения в соответствии с требованиями к сохранению, сохраненные изображения в хранилищах 570 изображения могут содержаться в сжатой форме и затем могут быть распакованы для использования при генерировании векторов движения. С этой конкретной целью может использоваться любая известная система сжатия/распаковки.
Сохраненные изображения пропускают в фильтр 580 интерполяции, который генерирует более высокую версию разрешения сохраненных изображений; в этом примере промежуточные выборки (подвыборки) генерируют так, что разрешение интерполированного изображения выводят с помощью фильтра 580 интерполяции, которое составляет 4-кратное (в каждом измерении) значение, чем у канала яркости для схемы 4:2:0, является 8 кратным для канала яркости (в каждом измерении), чем у изображений, сохраняемых в хранилищах 570 изображении, для каналов цветности по схеме 4:2:0. Интерполированные изображения пропускают на вход блока 550 оценки движения и также блока 540 прогнозирования компенсированного движения.
В вариантах осуществления настоящей технологии предусмотрен дополнительный необязательный этап, который предназначен для умножения значения данных входного видеосигнала на коэффициент четыре, используя множитель 600 (эффективно просто сдвигающий данные на два бита), и применения соответствующей операции деления (сдвиг вправо на два бита) на выходе устройства, используя делитель или модуль 610 сдвига вправо. Таким образом, сдвиг влево и сдвиг вправо изменяют данные просто для внутренней операции устройства. Эта мера может обеспечить более высокую точность расчета внутри устройства, поскольку уменьшается эффект каких-либо ошибок, связанных с округлением данных.
Способ, в соответствии с которым данные разделяют для обработки сжатия, будет описан ниже. На основном уровне изображение, которое предназначено для сжатия, рассматривают, как массив блоков из выборок. Для назначения настоящего описания наибольший такой рассматриваемый блок представляет собой, так называемый, наибольший модуль 700 кодирования (LCU) (фиг. 17), который представляет собой квадратный массив обычно из 64×64 выборок (размер LCU можно конфигурировать с помощью кодера, вплоть до максимального размера, такого, как определено документами HEVC). Здесь описание относится к выборкам яркости. В зависимости от режима цветности, такого как 4:4:4, 4:2:2, 4:2:0 или 4:4:4:4 (данные GBR "плюс" данные ключа), существует разное количество соответствующих выборок цветности, соответствующих блоку яркости.
Ниже будут описаны три основных типа блоков: модули кодирования, модули прогнозирования и модули преобразования. В общих чертах, рекурсивное подразделение LCU позволяет вводить изображение, которое должно быть разделено, таким способом, что, как размеры блока, так и параметры кодирования блока (такие как режимы прогнозирования или остаточного кодирования) могут быть установлены в соответствии с определенными характеристиками изображения, предназначенного для кодирования.
LCU может быть подразделен на, так называемые, модули кодирования (CU). Модули кодирования всегда являются квадратными и имеют размер от 8×8 выборок до полного размера LCU 700. Модули кодирования могут быть размещены в виде, своего рода, структуры дерева, таким образом, что первое подразделение может происходить, как показано на фиг. 8, при котором делят модули 710 кодирования из 32×32 выборок; и затем могут произойти последующие подразделения на избирательной основе, для того, чтобы подать некоторые модули кодирования 720 из 16×16 выборок (фиг. 9) и потенциально некоторые модули 730 кодирования размером 8×8 выборок (фиг. 10). В целом, этот процесс может обеспечить структуру дерева кодирования с адаптацией к содержанию из блоков CU, каждый из которых может быть настолько большим, как LCU или настолько малым, как 8×8 выборок. Кодирование выходных видеоданных происходит на основе структуры модуля кодирования, то есть, кодируют один LCU, и затем обработка переходит в следующий LCU, и так далее.
На фиг. 11 схематично иллюстрируется массив из модулей прогнозирования (PU). Модуль прогнозирования представляет собой основной модуль для переноса информации, относящейся к процессам прогнозирования изображения, или, другими словами, к дополнительным данным, добавленным к остаточным данным изображения после энтропийного кодирования, для формирования выходного видеосигнала из устройства по фиг. 5. В общем, модули прогнозирования не ограничены квадратной формой. Они могут принимать другие формы, в частности, прямоугольную форму, формируя половину одного из квадратных модулей кодирования (например, 8×8, CU могут иметь PU размером 8×4 или 4×8). Использование PU, которые совмещаются со свойством изображения, не является обязательной частью системы HEVC, но общая цель может состоять в том, чтобы обеспечить хороший кодер, который выравнивает границу соседних модулей прогнозирования так, чтобы они соответствовали (как можно более плотно) границе реальных объектов в изображении, так, чтобы разные параметры прогнозирования можно было применять для разных реальных объектов. Каждый модуль кодирования может содержать один или больше модулей прогнозирования.
На фиг. 12 схематично иллюстрируется массив из модулей преобразования (TU). Модуль преобразования представляет собой основной модуль процесса квантования и преобразования. Модули преобразования могут быть или могут не быть квадратными и могут иметь размер выборок от 4×4 до 32×32. Каждый модуль кодирования может содержать один или больше модулей преобразования. Акроним SDIP-P на фиг. 12 обозначает, так называемое, разделение прогнозирования внутри изображения на коротком расстоянии. При такой компоновке используются только одномерные преобразования, таким образом, что блок 4×N пропускают через N преобразований со входными данными, при этом преобразования основаны на ранее декодированных соседних блоках и ранее декодированных соседних строках в пределах текущего SDIP-P. SDIP-P в настоящее время не включен в HEVC, на время подачи настоящей заявки.
Как отмечено выше, кодирование происходит, как один LCU, затем следующий LCU и так далее. В пределах LCU кодирование выполняется CU за CU. В пределах CU кодирование выполняют для одного TU, затем следующий TU и так далее.
Далее будет описан процесс прогнозирования внутри изображения. В общих чертах, прогнозирование внутри изображения подразумевает генерирование прогнозирования текущим блоком (модулем прогнозирования) выборок из ранее кодированных и декодированных выборок того же изображения. На фиг. 13 схематично иллюстрируется частично кодированное изображение 800. Здесь изображение кодируют от верхнего левого к нижнему правому на основе LCU. Пример LCU, частично кодированного в результате обработки всего изображения, показан в блоке 810. Затененная область 820 выше и левее блока 810 уже была кодирована. При выполнении прогнозирования внутри изображения содержания блока 810 может использоваться любая затененная область 820, но не может использоваться незатененная область ниже нее. Следует, однако, отметить, что для индивидуального TU в текущем LCU, иерархический порядок кодирования (CU за CU затем TU за TU), описанные выше, означают, что должны присутствовать ранее кодированные выборки в текущем LCU и доступные для кодирования этого TU, которые, например, расположены выше справа или ниже слева от TU.
Блок 810 представляет LCU; как описано выше, с целью обработки прогнозирования внутри изображения, он может быть подразделен на ряд меньших модулей прогнозирования и модулей преобразования. Пример текущего TU 830 показан в LCU 810.
Прогнозирование внутри изображения учитывает выборки, кодированные текущим рассматриваемым TU, такие как находящиеся выше и/или левее от текущего TU. Выборки - источники, по которым прогнозируют требуемые выборки, могут быть расположены в разных положениях или направлениях относительно текущего TU. Для принятия решения, какое направление является соответствующим для текущего модуля прогнозирования, селектор 520 режима примерного кодера может тестировать все комбинации доступных структур TU для каждого направления кандидата и выбирать направление PU и структуру TU с наилучшей эффективностью сжатия.
Изображение также может быть кодировано на основе "среза". В одном примере срез представляет собой горизонтально расположенную рядом друг с другом группу LCU. Но в более общих чертах, все остаточное изображение может формировать срез, или срез может представлять собой отдельный LCU, или срез может представлять собой ряд LCU, и так далее. Срезы могут обеспечить определенную устойчивость к ошибкам, поскольку их кодируют, как независимые модули. Состояния кодера и декодера полностью сбрасывают на границе среза. Например, прогнозирование внутри изображения не выполняется за пределами границ среза; границы среза обрабатывают, как границы изображения с этой целью.
На фиг. 14 схематично иллюстрируется набор возможных направлений прогнозирования (кандидаты). Полный набор из 34 направлений кандидатов является доступным для модуля прогнозирования из 8×8, 16×16 или 32×32 выборок. Особые случаи размера модуля прогнозирования с размером 4×4 и 64×64 выборки имеют уменьшенный набор направлений кандидатов, доступных для них (17 направлений кандидатов и 5 направлений кандидатов, соответственно). Направления определяют по горизонтальному и вертикальному смещениям относительно текущего положения блока, но их кодируют, как "режимы" прогнозирования, набор, который показан на фиг. 15. Следует отметить, что, так называемый, режим DC представляет простое среднее арифметическое окружающих находящихся сверху и с левой стороны выборок.
В общем, после детектирования направления прогнозирования относительно каждого модуля прогнозирования, системы работают, чтобы генерировать прогнозируемый блок образцов в соответствии с другими образцами, определенными направлением прогнозирования.
На фиг. 16 схематично иллюстрируется, так называемая, диагональная развертка сверху-вправо, которая представляет собой пример структуры развертки, которая может применяться модулем 360 развертки. На фиг. 16 показана структура для примерного блока коэффициентов 8×8 DCT, при этом коэффициент DC установлен в верхнем левом положении 840 блока, и с увеличением горизонтальной и вертикальной пространственных скоростей, представляемых коэффициентами, на увеличивающихся расстояниях вниз и вправо от верхнего - левого положения 840. Другие альтернативные порядки развертки могут использоваться вместо нее.
Вариации компоновок блока и структур CU, PU и TU будут описаны ниже. Они будут описаны в контексте устройства по фиг. 17, которое аналогично во многих отношениях тому, что представлено на описанных выше фиг. 5 и 6. Действительно, используется множество одинаковых номеров ссылочных позиций, и эти детали не будут описаны дополнительно.
Основная существенная разница между фиг. 5 и 6 относится к фильтру 560 (фиг. 6), который на фиг. 17 показан более подробно, как содержащий фильтр 1000 удаления блоков и соответствующий блок 1030 принятия решения об ассоциированном кодировании, фильтр 1010 адаптивного смещения выборки (SAO) и ассоциированный генератор 1040 коэффициента, и фильтр 1020 адаптивного контура (ALF) и ассоциированный генератор 1050 коэффициента.
Фильтр 1000 удаления блоков пытается уменьшить искажение и улучшить визуальное качество и характеристики прогнозирования путем сглаживания резких углов, которые могут сформироваться между границами CU, PU и TU, когда используются технологии кодирования блока.
Фильтр 1010 SAO классифицирует реконструированные пиксели по разным категориям и затем пытается уменьшить искажение путем простого добавления смещения для каждой категории пикселей. Интенсивность пикселей и свойства кромки используются для классификации пикселя. Для дополнительного повышения эффективности кодирования, изображение может быть разделено на области для локализации параметров смещения.
ALF 1020 пытается восстановить сжатое изображение таким образом, чтобы разность между реконструированными кадрами и кадрами источника была сведена к минимуму. Коэффициенты ALF рассчитывают и передают на основе кадра). ALF затем может применяться для всего кадра или в локальных областях.
Как отмечено выше, в предложенных документах HEVC используют определенную схему выборок цветности, известную как схема 4:2:0. Схема 4:2:0 может использоваться для домашнего оборудования/бытового оборудования. Однако, возможны некоторые другие схемы.
В частности, так называемая, схема 4:4:4 может быть пригодной для профессиональной, широковещательной передачи, мастеринга и цифровых кинофильмов, и, в принципе, может иметь наивысшее качество и скорость передачи данных.
Аналогично, так называемая, схема 4:2:2 может использоваться для профессиональной, широковещательной передачи, для мастеринга и цифровых кинофильмов с некоторой потерей точности воспроизведения.
Эти схемы и их соответствующие структуры блоков PU и TU описаны ниже.
Кроме того, другие схемы включают в себя монохромную схему 4:0:0.
В схеме 4:4:4 каждый из трех каналов Y, Cb и Cr имеет одинаковую скорость выборки. В принципе, поэтому, в этой схеме присутствует вдвое больше данных цветности, чем данных яркости.
Следовательно, в HEVC, в этой схеме каждый из трех каналов Y, Cb и Cr мог бы иметь соответствующие блоки PU и TU, которые имеют одинаковый размер; например, блоки яркости 8×8 могли бы иметь соответствующие блоки цветности 8×8 для каждого из двух каналов цветности.
Следовательно, в этой схеме обычно используется непосредственная взаимосвязь 1:1 между размерами блока в каждом канале.
В схеме 4:2:2, для двух компонентов цветности получают выборку с половиной частоты выборки яркости (например, используя вертикальную или горизонтальную подвыборки, но с целью настоящего описания, предполагается горизонтальная подвыборка). Поэтому, в принципе, в этой схеме присутствует такое же количество данных цветности, как и данных яркости, хотя данные цветности могли бы быть разделены между двумя каналами цветности.
Следовательно, при использовании HEVC, в этой схеме каналы Cb и Cr могут иметь разный размер блоков PU и TU по сравнению с каналом яркости; например, блок яркости 8×8 мог бы иметь соответствующие блоки цветности размером 4 в ширину × 8 в высоту для каждого канала цветности.
В частности, поэтому, в данной схеме блоки цветности могут не быть квадратными, даже при том, что они соответствуют квадратным блокам яркости.
В предложенной в настоящее время схеме HEVC 4:2:0, в двух компонентах цветности получают выборку для четверти частоты выборки яркости (например, используя вертикальную и горизонтальную подвыборки). Поэтому, в принципе, в этой схеме присутствует только половина данных цветности, чем данных яркости, и данные цветности разделены между двумя каналами цветности.
Следовательно, в HEVC, в такой схеме снова каналы Cb и Cr имеют другой размер блоков PU и TU, чем в канале яркости. Например, блок яркости 8×8 может иметь соответствующие 4×4 блока цветности для каждого канала цветности.
Описанные выше схемы известны в уровне техники на уровне обсуждения, как "отношение каналов", как в выражении "отношение каналов 4:2:0"; следует, однако, понимать, что в представленном выше описании фактически это не всегда означает, что каналы Y, Cb и Cr сжимают или по-другому предоставляют с этим отношением. Следовательно, в то время, как их называют отношением каналов, не следует понимать это буквально. Фактически, скорректированные отношения для схемы 4:2:0 представляет собой 4:1:1 (отношения для схемы 4:2:2 и схемы 4:4:4 фактически являются корректными).
Перед описанием конкретных компоновок со ссылкой на фиг. 18A и 18B, будет кратко представлена некоторая общая терминология.
Наибольший модуль кодирования (LCU) представляет собой корневое изображение объекта. Как правило, он охватывает область, эквивалентную 64×64 пикселям яркости. Его можно рекурсивно разделять для формирования иерархии дерева модулей кодирования (CU). В общих чертах, три канала (один канал яркости и два канала цветности) имеют одинаковую иерархию дерева CU. Однако, после такого утверждения, в зависимости от отношения каналов, определенный CU яркости может содержать другое количество пикселей, чем соответствующие CU цветности.
CU в конце иерархии дерева, то есть CU наименьшего размера, получаемые в процессе рекурсивного разделения (которые могут называться CU листьев) затем разделяют на модули прогнозирования (PU). Три канала (канал яркости и два канала цветности) имеют одинаковую структуру PU, за исключением случаев, когда соответствующие PU для канала цветности могли бы иметь слишком мало выборок, и в этом случае только один PU для этого канала является доступным. Это можно конфигурировать, но обычно минимальный размер PU внутри изображения составляет 4 выборки; минимальный размер PU между изображениями составляет 4 выборки яркости (или 2 выборки цветности для 4:2:0). Реконструкция минимального размера CU всегда является достаточно крупной для, по меньшей мере, одного PU для любого канала.
Листовые CU также разделяют на модули преобразования (TU). TU могут, и когда они слишком большие (например, больше 32×32 выборки), должны быть разделены на дополнительные TU. Накладывается предел, связанный в тем, что TU могут быть разделены до максимальной глубины дерева, сконфигурированного в настоящее время из 2 уровней, то есть, может присутствовать не больше, чем 16 TU для каждого CU. Иллюстративный наименьший допустимый размер TU составляет 4×4 выборки, и наибольший допустимый размер TU составляет 32×32 выборки. И снова, три канала имеют одинаковую структуру TU каждый раз, когда это возможно, но если TU не может быть разделен до определенной глубины для заданного канала, из-за ограничения по размеру, он остается с большим размером. Так называемая неквадратная компоновка преобразования квадрадерева (NSQT) является аналогичной, но способ разделения на четыре TU не обязательно должен представлять собой 2×2, но может 4×1 или 1×4.
Обращаясь к фиг. 18A и 18B, разные возможные размеры блоков сведены для блоков CU, PU и TU, при этом "Y" обозначает блоки яркости, и "С" обозначает в общем смысле представителя одного из блоков цветности, и цифры, относящиеся к пикселям. "Интер" относится к прогнозированию PU между изображениями (в отличие от прогнозирования PU внутри изображения). Во многих случаях, показаны только размеры блока для блоков яркости. Соответствующие размеры ассоциированных блоков цветности соотносятся с размерами блока яркости в соответствии с отношениями канала. Таким образом, для 4:4:4 каналы цветности имеют такие же размеры блока, как и у блока яркости, показанного на фиг. 18A и 18B. Для 4:2:2 и 4:2:0, каждый из блоков цветности будет иметь меньшее количество пикселей, чем у соответствующего блока яркости, в соответствии с отношением каналов.
Так, для 4:4:4, каналы цветности имеют те же самые размеры блока, как и у блока яркости, показанного на фиг. 18A и 18B. Соответственно, структура PU цветности отображает (или, соответственно, идентична) структуру PU яркости на всех уровнях разделения (где "уровень разделения" относится к выбору опции размера CU и, в пределах опции размера CU, к выбору размера PU и опциям формы). В то время как было бы возможно использовать тот же набор возможных размеров и форм блока, но разрешить выбор других (из этого набора) в отношении компонентов яркости и цветности CU, в некоторых вариантах осуществления раскрытия выбирают одинаковый размер блока PU и форму для компонентов цветности и яркости, соответствующих CU. Поэтому, какой бы размер (размеры) PU и форма (формы) не были выбраны для CU яркости, идентичные размер и форму PU выбирают для компонентов цветности этого CU. Следует отметить, что как описано ниже, выбор размеров блока и формы и PU выполняют на основе решения кодера, под управлением контроллера 343. В таких компоновках выборки яркости и цветности находятся в формате 4:4:4, и располагаются как множество модулей кодирования, каждый содержащий блок выборок цветности и яркости; и направление прогнозирования детектируют относительно текущего модуля прогнозирования, который представляет собой блок яркости или выборки цветности, представляющие, по меньшей мере, поднабор соответствующего модуля кодирования. Для конкретного модуля кодирования размер и форму одного или больше модулей прогнозирования, каждый содержащий выборки яркости и цветности, из этого модуля кодирования, делают (например контроллером 343) такими, что выбор размера и формы модуля прогнозирования является одинаковым для образцов яркости и для образцов цветности.
Для форматов 4:2:2 и 4:2:0 каждый блок цветности имеет меньше пикселей, чем соответствующий блок яркости, в соответствии с соотношением каналов.
Компоновки, показанные на фиг. 18A и 18B, относятся к четырем возможным размерам CU: 64×64, 32×32, 16×16 и 8×8 пикселей яркости, соответственно. Каждый из этих CU имеет соответствующий вариант опций PU (показаны в столбце 1140) и опций TU (показаны в столбце 1150). Для возможных размеров CU, определенных выше, ряды и опции обозначены, как 1100, 1110, 1120 и 1130, соответственно.
Следует отметить, что 64×64 в настоящее время является максимальным размером CU, но это ограничение будет меняться.
В каждом из рядов 1100.…1130 показаны разные опции PU, применимые для этого размера CU. Опции TU, применимые для этих конфигураций PU, показаны с горизонтальным выравниванием с соответствующей опции (опций) PU.
Следует отметить, что в нескольких случаях, предусмотрено множество опций PU. Как отмечено выше, цель устройства при выборе конфигурации PU состоит в том, чтобы соответствовать (как можно более тесно) границе реальных объектов в изображениях, так, что разные параметры прогнозирования могут применяться для разных реальных объектов.
Размеры и формы блока PU основаны на решении кодера, под управлением контроллера 343. Данный способ подразумевают проведение испытаний множества структур дерева TU для множества направлений, получение наилучшей "стоимости" на каждом уровне. Здесь стоимость может быть выражена, как мера искажения, или шумы, или ошибки, или скорость передачи битов, получаемая из структуры каждого блока. Таким образом, кодер может попытаться выполнить две или больше (или даже все доступные) перестановки размеров блока и формы в пределах этих разрешенных трех подструктур дерева и иерархий, описанных выше, перед выбором одного из результатов испытаний, который получил самую низкую скорость передачи битов для определенной требуемой меры качества, или самое низкое искажение (или уровень ошибок или шумов, или комбинации этих мер) для требуемой скорости передачи битов, или комбинации этих мер.
Исходя из выбора конкретной конфигурации PU, различные уровни разделения могут применяться для генерирования соответствующих TU. Рассмотрим ряд 1100, в случае PU 64×64, этот размер блока слишком велик для использования в качестве TU и, таким образом, первый уровень разделения (с "уровня 0" (не разделен), до "уровня 1") является обязательным, в результате чего, получают массив из четырех TU яркости 32×32. Каждый из них может подвергаться дальнейшему разделению в иерархии дерева (с "уровня 1" до "уровня 2"), если требуется, при этом разделение выполняют перед преобразованием или квантованием, выполнявшимися этим TU. Максимальное количество уровней в дереве TU ограничено (например) документами HEVC.
Другие опции предусмотрены для размеров PU и форм, в случае пикселя CU яркости 64×64. Они ограничены использованием только с изображениями, кодированными между изображениями и, в некоторых случаях с, так называемой, включенной опцией AMP. AMP относится к асимметричному разделению движения и позволяет асимметрично разделить PU.
Аналогично, в некоторых случаях предусмотрены опции для размеров и форм TU. Если разрешено NQST (неквадратное преобразование квадродерева, в принципе, позволяющее неквадратное TU), то разделение до уровня 1 и/или уровня 2 может быть выполнено, как показано, тогда как, если NQST не разрешено, размеры TU соответствуют структуре разделения соответствующего наибольшего TU для этого размера CU.
Аналогичные возможности предусмотрены для других размеров CU.
В дополнение к графическому изображению, показанному на фиг. 18A и 18B, цифровая часть той же информации представлена в следующей таблице, хотя представление на фиг. 18A и 18B, рассматривается, как определяющее, "n/а" обозначает режим, который не разрешен. Горизонтальный размер пикселя указан первым. Если представлен третий чертеж, он относится к количеству случаев размера этого блока, как и в блоках (горизонтальный) × (вертикальный) × (количество случаев) блоков. N представляет собой целое число.
Варианты структуры блока 4:2:0, 4:2:2 и 4:4:4
Следует понимать, что обе схемы 4:2:0 и 4:4:4 имеют квадратные блоки PU для кодирования с прогнозированием внутри изображения. Кроме того, в настоящее время в схемах 4:2:0 разрешают использовать 4×4 пикселя для блоков PU & TU.
В вариантах осуществления настоящего раскрытия, далее предложено, чтобы для схемы 4:4:4 была разрешена рекурсия для блоков CU, вплоть до 4×4 пикселя, вместо 8×8 пикселей, поскольку, как отмечено выше в режиме 4:4:4 блоки яркости и цветности будут иметь одинаковый размер (то есть, не требуется делать подвыборку данных цветности), и таким образом, для CU 4×4, не требуется, чтобы PU или TU были меньше, чем уже разрешенный минимум 4×4 пикселя. Это, поэтому, представляет собой пример выбора, для конкретного модуля кодирования, размера и формы одного или больше модулей прогнозирования, каждый содержащий выборки яркости или цветности из, по меньшей мере, подмножества этого модуля кодирования, выбора размера и формы модуля прогнозирования, которые являются такими же для выборок яркости и для выборок цветности.
Аналогично схеме 4:4:4, в варианте осуществления каждый из каналов Y, Cr, Cb, или Y и двух каналов Cr, Cb, вместе, могли бы иметь соответствующие иерархии дерева CU. Флаг затем можно использовать для передачи сигнала, какая иерархия или компоновка иерархий должны использоваться. Такой подход мог бы также использоваться для схемы цветов RGB 4:4:4. Однако, в качестве альтернативы, иерархии дерева для цветности и яркости могут вместо этого быть независимыми.
В примере 8×8 CU в схеме 4:2:0, это приводит к четырем PU яркости 4×4 и одному PU цветности 4×4. Следовательно, в схеме 4:2:2, имеющей в два раза больше данных цветности, одна из опций в таком случае состоит в том, чтобы иметь два PU цветности 4×4, где (например) нижний блок цветности мог бы соответствовать по положению нижнему левому блоку яркости. Однако, следует понимать, что использование одного неквадратного PU цветности размером 4×8 в этом случае могло больше соответствовать компоновкам формата цветности 4:2:0.
В схеме 4:2:0, в принципе, имеются некоторые неквадратные блоки TU, разрешенные для определенных классов кодирования с прогнозированием между изображениями, но не для кодирования с прогнозированием внутри изображения. Однако, при кодировании с прогнозированием между изображениями, когда неквадратное преобразование квадродерева (NSQT) не разрешено (что принято по умолчанию в настоящее время значение для схемы 4:2:0), все TU будут квадратными. Следовательно, фактически схема 4:2:0 в настоящее время принудительно устанавливает квадратные TU. Например, TU яркости 16×16 для схемы 4:2:0 могут соответствовать соответствующим Cb & Cr 8×8 для TU цветности схемы 4:2:0.
Однако, как отмечено выше, схема 4:2:2 может иметь неквадратный PU. Следовательно, в варианте осуществления предложено разрешить неквадратные TU для схемы 4:2:2.
Например, в то время, как TU яркости 16×16 для схемы 4:2:2 соответствует двум соответствующим Cb & Cr 8×8 TU цветности для схемы 4:2:2, в этом варианте осуществления они могут вместо этого соответствовать соответствующим Cb & Cr размером 8×16 для TU цветности для схемы 4:2:2.
Аналогично, четыре TU яркости 4×4 для схемы 4:2:2 могли бы соответствовать двум соответствующим Cb+Cr размером 4×4 для TU для схемы 4:2:2, или в этом варианте осуществления вместо этого могли бы соответствовать соответствующим Cb & Cr размером 4×8 TU для схемы 4:2:2.
Использование неквадратных TU цветности и, следовательно, меньшего количества TU может быть более эффективными, поскольку они, вероятно, будут содержать меньше информации. Однако, это может повлиять на процессы преобразования и развертки таких TU, как будет описано ниже.
В конечном итоге, для схемы 4:4:4 может быть предпочтительным иметь независимую от канала структуру TU и выбираемую на уровне последовательности, изображения, среза или на более тонком уровне.
Как отмечено выше, NSQT в настоящее время отключена в схеме 4:2:0 HEVC. Однако, если для прогнозирования между изображениями NSQT будет включена, и будет разрешено разделение с асимметричным движением (AMP), это позволяет выполнять асимметричное разделение PU; таким образом, например, CU 16×16 может иметь PU 4×16 и PU 12×16. В этих обстоятельствах важно дополнительно рассмотреть структуру блока для каждой из схем 4:2:0 и 4:2:2.
Для схемы 4:2:0, в NSQT минимальная ширина/высота TU может быть ограничена 4 выборками яркости/цветности:
Следовательно, в не ограничительном примере, структура PU размером 16×4/16×12 яркости имеет четыре TU 16×4 яркости и четыре TU 4×4 цветности, где TU яркости находятся в вертикальной компоновке блока 1×4, и TU цветности, находятся в компоновке блока 2×2.
В аналогичной компоновке, когда разделение было выполнено скорее вертикально, чем горизонтально, структура PU яркости 4×16/12×16 имеет четыре TU яркости 4×16 и четыре TU цветности 4×4, где TU яркости установлены в компоновке горизонтального блока 4×1, и TU цветности расположены в компоновке блока 2×2.
Для схемы 4:2:2, в NSQT, в качестве не ограничительного примера структура PU яркости 4×16/12×16 имеет четыре TU яркости 4×16 и четыре TU цветности 4×8, где TU яркости находится в горизонтальной компоновке блока размером 4×1; TU цветности находится в компоновке блока 2×2.
Однако следует понимать, что другую структуру можно рассмотреть для некоторых случаев. Следовательно, в варианте осуществления, в NSQT, в качестве неограничительного примера, структура PU яркости 16×4/16×12 имеет четыре TU яркости 16×4 и четыре TU цветности 8×4, но теперь TU яркости и цветности расположены в компоновке вертикального блока 1×4, будучи выровненными с компоновкой PU (в отличие от компоновки в стиле 4:2:0 из четырех TU цветности 4×8, в компоновке блока 2×2).
Аналогично, PU 32×8 могут иметь четыре TU яркости 16×4 и четыре TU цветности 8×4, но теперь TU яркости и цветности расположены в компоновке блока 2×2.
Следовательно, в более общем случае, для схемы 4:2:2, в NSQT размеры блока TU выбирают так, чтобы он совмещался с асимметричной компоновкой блока PU. Следовательно, NSQT с пользой обеспечивает возможность выравнивания границ TU с границами PU, что уменьшает высокочастотные артефакты, которые в противном случае могли бы возникнуть.
В общих чертах, варианты осуществления настоящей технологии могут относиться к способу кодирования видеоданных, устройству или программе, работающим в отношении изображений видеосигнала в формате 4:2:2. Изображение, предназначенное для кодирования, разделяют на модули кодирования, модули прогнозирования и модули преобразования, для кодирования, модуль кодирования представляет собой квадратный массив из выборок яркости и соответствующих выборок цветности, причем здесь используется один или больше модулей прогнозирования в модуле кодирования, и в модуле кодирования содержится один или больше модулей преобразования; в которых модуль прогнозирования представляет собой элементарный модуль прогнозирования так, что все выборки в пределах одного модуля прогнозирования будут спрогнозированы, используя общую технологию прогнозирования, и модуль преобразования представляет собой основной модуль преобразования и квантования.
Режим неквадратного преобразования (такой как режим NSQT) разрешают с тем, чтобы обеспечить возможность неквадратных модулей прогнозирования. В случае необходимости, обеспечивается возможность асимметричного разделения движения, с тем, чтобы разрешить асимметрию между двумя или больше модулями прогнозирования, соответствующими одному модулю кодирования.
Контроллер 343 управляет выбором размера блока модуля преобразования для выравнивания с компоновкой блока модуля прогнозирования, например, путем детектирования свойств изображения на участке изображения, соответствующем PU и выбора размеров блока TU в отношении этого PU, с тем, чтобы выровнять границы TU с кромками свойств изображения на участке изображения.
Описанные выше правила диктуют, какие комбинации размеров блока являются доступными. Кодер может только попробовать разные комбинации. Как описано выше, проверка может включать в себя две или больше, и вплоть до всех доступных опций. Проверочные процессы кодирования могут выполняться в соответствии с результатами измерений функции стоимости и результатом, выбранным в соответствии с оценкой функции стоимости.
Учитывая, что имеется три уровня вариаций, в соответствии с размером и формой CU, размером и формой PU, и размером и формой TU, это может привести к большому количеству взаимных замен, которые потребуется закодировать для проверки. Для уменьшения этих вариаций, система может выполнять кодирование для проверки, для размера CU, используя произвольно выбранную одну из конфигурации PU / TU, допустимую для каждого размера CU; затем, после выбора размера CU, могут быть выбраны размер и форма PU, используя кодирование для проверки разных опций PU, каждая с произвольно выбранной одной конфигурацией TU. Затем, после выбора CU и PU, система может попытаться проверить все допустимые конфигурации TU для выбора конечной конфигурации TU.
Другая возможность состоит в том, что некоторые кодеры могут использовать фиксированный выбор конфигурации блока, или могут обеспечить возможность ограниченного поднабора из набора комбинаций, описанных выше.
Прогнозирование внутри изображения
4:2:0 прогнозирование внутри изображения
Возвращаясь теперь к фиг. 22, для прогнозирования внутри изображения, HEVC разрешает угловое прогнозирование цветности.
В качестве введения, на фиг. 22 иллюстрируется 35 режимов прогнозирования, применимых для блоков яркости, 33 из которых устанавливают направления для опорных выборок, для текущих прогнозируемых положений 110 выборки. Остальные два режима представляют собой режим 0 (плоский) и режим 1 (dc).
В HEVC разрешено, чтобы цветность имела DC, вертикальный, горизонтальный, плоский, DM_CHROMA и LM_CHROMA режимы.
DM_CHROMA обозначает, что режим прогнозирования, который должен использоваться, представляет собой такой же, как и режим у PU яркости, расположенный в том же месте (то есть, один из 35, показанных на фиг. 22).
LM_CHROMA (цветность в линейном режиме) обозначает, что совместно расположенные выборки яркости (с дополнительной выборкой, в соответствии с отношением каналов) используются для вывода прогнозируемых выборок цветности. В этом случае, если PU яркости, из которого мог бы быть выбран режим прогнозирования DM_CHROMA, выбрал режим DC, вертикальный, горизонтальный или плоский, эта запись в списке прогнозирования цветности будет заменена, используя режим 34. В режиме LM_CHROMA пиксели яркости, из которых прогнозируют пиксели цветности, масштабируют (и имеют приложенное смещение, если соответствует), в соответствии с линейной взаимозависимостью между яркостью и цветностью. Такая линейная взаимозависимость поступает из окружающих пикселей, и вывод может быть выполнен на основе от блока к блоку, при этом декодер заканчивает декодирование одного блока перед перемещением к следующему.
Известно, что в режимах 2-34 прогнозирования выборка углового диапазона составляет от 45 градусов до 225 градусов; то есть, одну диагональную половину квадрата. Такой подход является полезным в случае схемы 4:2:0, в которой, как отмечено выше, используется только квадратный PU цветности для прогнозирования внутри изображения.
Варианты прогнозирования внутри изображения 4:2:2
Однако, также, как отмечено выше, схема 4:2:2 могла бы иметь прямоугольный (неквадратный) PU цветности, даже когда PU яркости является квадратным. Или действительно, может выполняться противоположное условие: прямоугольные PU яркости могут соответствовать квадратному PU цветности. Причина несоответствия состоит в том, что в 4:2:2, для цветности выполняют подвыборку в горизонтальном направлении (относительно яркости), но не в вертикальном. Таким образом, размер блока яркости и соответствующего блока цветности, как можно ожидать, будет разным.
Следовательно, в варианте осуществления, для PU цветности, имеющих разное соотношение размеров для соответствующего блока яркости, таблица отображения может потребоваться для направления. Предположим (например), соотношение размеров 1 к 2 для прямоугольных PU цветности, затем, например, режим 18 (в настоящее время под углом 135 градусов) может быть повторно отображен на 123 градуса. В качестве альтернативы, выбор текущего режима 18 может быть повторно отображен на выбор текущего режима 22 для получения, в основном, того же эффекта.
Следовательно, в более общем случае, для неквадратных PU, могут быть предусмотрены разное отображение между направлением опорной выборки, и выбранный режим прогнозирования внутри изображения может быть предусмотрен по сравнению с тем, который используется для квадратных PU.
Также, в более общем случае, любой из режимов, включая в себя ненаправленные режимы, также может быть повторно отображен на основе эмпирических данных.
Возможно, чтобы такое отображение приводило к соотношению "множество к одному", что делает спецификацию полного набора режимов избыточной для PU цветности 4:2:2. В этом случае, например, возможно, что только 17 режимов (соответствующих половине углового разрешения) являются необходимыми. В качестве альтернативы или в дополнение, эти режимы могут быть распределены неоднородно по углу.
Аналогично, сглаживающий фильтр, используемый для опорной выборки, при прогнозировании пикселя в положении выборки, может использоваться по-разному; в схеме 4:2:0 он используется только для сглаживания пикселей яркости, но не пикселей цветности. Однако, в схемах 4:2:2 и 4:4:4 этот фильтр также может использоваться для PU цветности. В схеме 4:2:2, снова фильтр может быть модифицирован в соответствии с разными отношениями размеров PU, например, когда он используется только для поднабора режимов, близких к горизонтальному. Примерный поднабор режимов, предпочтительно, представляет собой 2-18 и 34, или более предпочтительно 7-14. В 4:2:2, сглаживание может быть выполнено только для левого столбца опорных выборок, в вариантах осуществления.
Эти компоновки более подробно описаны ниже.
Варианты прогнозирования внутри изображения 4:4:4
В схеме 4:4:4, PU цветности и яркости имеют одинаковый размер, и, таким образом, режим прогнозирования внутри изображения для PU цветности может быть либо тем же, что и для расположенного в том же месте PU яркости (что позволяет сэкономить некоторое количество служебных сигналов в потоке битов, благодаря тому, что не требуется кодировать отдельный режим), или, в качестве альтернативы, он может быть выбран независимо.
В этом последнем случае, поэтому, в варианте осуществления, система может иметь 1, 2 или 3 разных режима прогнозирования для каждого из PU в CU;
В первом примере PU Y, Cb и Cr все могут использовать одинаковый режим прогнозирования внутри изображения.
Во втором примере Y PU может использовать один режим прогнозирования внутри изображения, и PU Cb и Cr оба используют другой независимо выбранный режим прогнозирования внутри изображения.
В третьем примере, PU для Y, Cb и Cr каждый использует соответствующий независимо выбранный режим прогнозирования внутри изображения.
Следует понимать, что при наличии независимых режимов прогнозирования для каналов цветности (или каждого канала цветности) улучшается точность прогнозирования цвета. Но это происходит за счет дополнительной передачи служебных данных для передачи независимых режимов прогнозирования, как часть данных кодирования.
Для устранения этого, выбор количества режимов может быть обозначен в синтаксисе высокого уровня (например, в последовательности, в изображении или на уровне среза). В качестве альтернативы, количество независимых режимов могло бы быть выведено из видеоформата; например, GBR мог бы иметь вплоть до 3, в то время, как YCbCr мог быт быть ограничен 2.
В дополнение к независимому выбору режимов может быть разрешено, чтобы доступные режимы отличались от схемы 4:2:0 в схеме 4:4:4.
Например, поскольку PU яркости и цветности имеет одинаковый размер в 4:4:4, PU цветности могут получать пользу от доступа ко всем 35+LM_CHROMA+DM_CHROMA доступных направлений. Следовательно, для случая Y, Cb и Cr, каждый из которых имеет независимый режим прогнозирования, канал Cb мог бы иметь доступ к DM_CHROMA & LM_CHROMA, в то время, как канал Cr мог бы иметь доступ к DM_CHROMA_Y, DM_CHROMA_Cb, LM_CHROMA_Y и LM_CHROMA_Cb, где эти каналы заменяют опорные значения для канала яркости со ссылками на каналы цветности Y или Cb.
В случае, когда режимы прогнозирования яркости передают в виде сигналов, путем вывода списка из наиболее вероятных режимов и установки индекса для этого списка, тогда если режим (режимы) прогнозирования цветности будут независимыми, может потребоваться вывести независимые списки наиболее вероятных режимов для каждого канала.
В конечном итоге, аналогично тому, что отмечено для представленного выше случая 4:2:2, в схеме 4:4:4 сглаживающий фильтр, используемый для опорной выборки при прогнозировании пикселя в положении выборки может использоваться для PU цветности аналогично PU яркости. В настоящее время, может применяться фильтр низкой частоты [1,2,1] для опорных выборок перед прогнозированием внутри изображения. Это используется только для TU яркости при использовании определенных режимов прогнозирования.
Один из режимов прогнозирования внутри изображения, доступных для TU цветности, состоит в том, чтобы основывать прогнозируемые выборки на, так называемых, выборках яркости. Такая компоновка схематично представлена на фиг. 19, на которой представлен массив из 1200 TU (из области изображения источника), представленный малыми квадратами в каналах Cb, Cr и Y, представляющими специальное выравнивание между свойствами изображения (схематично обозначенные квадратами 1200 с темнотой и светлой штриховкой) в каналах Cb и Y и в каналах Cr и Y. В этом примере предпочтительно заставить TU цветности основывать свои прогнозируемые выборки на выборках яркости, расположенных в том же месте. Однако, свойства изображения не всегда соответствуют между тремя каналами. Фактически, определенные свойства могут появляться только в одном или двух из каналов, и обычно содержание изображения трех каналов может отличаться.
В вариантах осуществления для TU Cr, LM_Chroma, в случае необходимости, могут быть размещены в расположенных в одном месте выборках из канала Cb (или, в других вариантах осуществления, может существовать другая зависимость, может быть выполнена по-другому). Такая компоновка схематично показана на фиг. 20. Здесь пространственно выровненные TU представлены между каналами Cr, Cb и Y. Дополнительный набор TU, помеченный, как "источник", представляет собой схематическое представление цветного изображения, в том виде, как его можно видеть в целом. Свойства изображения (верхний левый треугольник и нижний правый треугольник), которые можно видеть в изображении источника, фактически не представляют изменения яркости, но только изменения цветности между двумя треугольными областями. В этом случае, основываясь на LM_Chroma для Cr выборок яркости можно получить плохое прогнозирование, но основывая его на выборках Cb, можно получить лучшее прогнозирование.
Решение, в соответствии с каким режимом использовать LM_Chroma, может быть принято контроллером 343 и/или контроллером 520 режима, на основе кодирования с проверкой разных опций (включая в себя опцию, основанную на LM_Chroma, для расположенных в одном месте выборок яркости или расположенных в одном месте выборок цветности), при этом решение, какой режим следует выбрать, принимается путем оценки функции стоимости, аналогично тому, как описано выше, в отношении разного кодирования с проверкой. Примеры функции стоимости представляют собой шум, искажение, частоту ошибок или скорость следования битов. Выбирают режим среди режимов, подвергаемых кодированию с проверкой, который позволяет получить самую низкую из любой одной или больше из этих функций стоимости.
На фиг. 21 схематично иллюстрируется способ, используемый для получения опорных выборок для прогнозирования внутри изображения в вариантах осуществления. При рассмотрении фиг. 21 следует понимать, что кодирование выполняется в соответствии со структурой развертки, таким образом, что в общих чертах кодированные версии блоков выше и левее текущего блока, предназначенного для кодирования, доступны для процесса кодирования. Иногда используют выборки, расположенные ниже слева или выше справа, если они были ранее кодированы, как часть других уже кодированных TU в текущем LCU. Ссылка делается на фиг. 13, как, например, описано выше.
Затушеванная область 1210 представляет текущий TU, то есть, TU, который в данный момент кодируют.
В схемах 4:2:0 и 4:2:2 столбец пикселей непосредственно слева от текущего TU не содержит расположенные в одном месте выборки яркости и цветности из-за горизонтальной подвыборки. Другими словами, это связано с тем, что форматы 4:2:0 и 4:2:2 имеют на половину меньше пикселей цветности, чем пикселей яркости (в горизонтальном направлении), таким образом, не каждое положение выборки яркости имеет расположенную в этом же месте выборку цветности. Поэтому, хотя выборки яркости могут присутствовать в столбце пикселей непосредственно слева от TU, выборки цветности не присутствуют. Поэтому, в вариантах осуществления, столбец, расположенный на две выборки левее текущего TU, используется для обеспечения опорных выборок для LM_Chroma. Следует отметить, что ситуация отличается в схеме 4:4:4 тем, что столбец, расположенный непосредственно слева от текущего TU, действительно содержит расположенные в том же месте выборки яркости и цветности. Такой столбец, поэтому, должен использоваться для предоставления опорных выборок.
Опорные выборки используются следующим образом.
В режиме LM_Chroma прогнозируемые выборки цветности выводят из реконструированных выборок яркости, в соответствии с линейной взаимосвязью. Таким образом, в общих чертах, можно сказать, что прогнозируемые значения цветности в TU определяют из следующей формулы:
где PC представляет собой значение выборки цветности, PL представляет собой реконструированное значение выборки яркости в том же положении, и а, и b являются константами. Константы выводят для определенного блока, детектируя взаимосвязь между реконструированными выборками яркости и выборками цветности в ряду, который расположен непосредственно выше этого блока и в столбце, который расположен непосредственно левее этого блока, и эти положения представляют собой положения выборок, которые уже были кодированы (см. выше).
В некоторых вариантах осуществления константы а и b выводят следующим образом:
где R представляет собой линейную функцию регрессии (наименьшие квадраты), и , и представляют собой выборки яркости и цветности, соответственно, из соседнего ряда и столбца, как описано выше, и:
Для 4:4:4, значения и получают из столбца, расположенного непосредственно слева от текущего TU, и из ряда, расположенного непосредственно выше текущего TU. Для 4:2:2, значения и получают из ряда, непосредственно выше текущего TU и столбца в соседнем блоке, который расположен на два положения выборки от левой кромки текущего TU. Для 4:2:0 (для которого подвыборки выполняют вертикально и горизонтально) значения и в идеале можно было бы получить из ряда, который расположен на два ряда выше текущего TU, но фактически его получают из ряда в соседнем блоке, который находится в положении одной выборки выше текущего TU, и столбца в соседнем блоке, который находится в положении двух выборок от левой кромки текущего TU. Причина этого состоит в том, чтобы исключить необходимость поддержания дополнительных полных необработанных данных в запоминающем устройстве. В этом отношении, 4:2:2 и 4:2:0 обрабатывают с аналогичным подходом.
В соответствии с этим, такие технологии применяются для способов кодирования видеоданных, имеющих режим прогнозирования цветности, в котором текущий блок выборок цветности, представляющих область изображения, кодируют путем вывода и кодирования взаимосвязи выборок цветности в отношении блока, расположенного в том же месте для выборок яркости (таких как реконструированные выборки яркости), представляющих ту же область изображения. Взаимосвязь (такую как линейная взаимосвязь) выводят путем сравнения расположенных в одном месте (по-другому выраженные, как расположенные соответствующим образом) выборок яркости и цветности из соседних уже кодированных блоков. Выборки цветности выводят из выборок яркости в соответствии со взаимосвязью; и разность между прогнозируемыми выборками цветности и фактическими выборками цветности кодируют, как остаточные данные.
Что касается первого разрешения выборки (такого как 4:4:4), в случае, когда выборки цветности имеют такую же частоту выборки, как и у выборки яркости, выборки, находящиеся в том же месте, представляют собой выборки в положениях выборки, расположенных рядом с текущим блоком.
Что касается второго разрешения выборки (такого как 4:2:2 или 4:2:0), где выборки цветности имеют меньшую частоту выборки, чем у выборок яркости, ближайший столбец или ряд расположенных в том же месте выборок яркости и цветности от соседнего уже кодированного блока, используется для предоставления выборок, находящихся в том же месте. Или в случае, когда второе разрешение выборок представляет собой разрешение выборки 4:2:0, выборки в соответствующих местах представляют собой ряд выборок, расположенных рядом с текущим блоком и ближайшим столбцом, или выборки яркости и цветности в соответствующем месте от соседних, уже кодированных блоков.
На фиг. 22 схематично иллюстрируется доступные углы прогнозирования для выборок яркости. Текущий пиксель, прогнозируют, как показано в центре схемы, как пиксель 1220. Меньшие точки 1230 представляют соседние пиксели. Те, которые расположены в верхней или с левой сторон текущего пикселя, являются доступными, как опорные выборки для генерирования прогнозирования, поскольку они были уже ранее кодированы. Другие пиксели в данный момент неизвестны (во время прогнозирования пикселя 1220) и будут сами спрогнозированы соответствующим образом.
Каждое пронумерованное направление прогнозирования указывает на опорные выборки 1230 из группы опорных выборок кандидатов верхней или левой кромок текущего блока, которые используются для генерирования текущего прогнозируемого пикселя. В случае блоков меньшего размера, когда направление прогнозирования указывает на места между опорными выборками, используется линейная интерполяция между соседними опорными выборками.
Возвращаясь к прогнозированию внутри угла для выборок цветности, для схемы 4:2:0, меньшее количество направлений прогнозирования доступно из-за относительного недостатка выборок цветности. Однако если будет выбран режим DM_CHROMA, тогда текущий блок цветности будет использовать то же направление прогнозирования, что и расположенный в том же месте блок яркости. В свою очередь, это означает, что направления яркости для прогнозирования внутри изображения также доступны для цветности.
Однако, для выборок цветности в 4:2:2, использование того же алгоритма прогнозирования и направления, что и для яркости, при выборе DM_CHROMA, можно рассматривать алогичным, при условии, что блоки цветности не имеют разное соотношение размеров с блоками яркости. Например, линия под углом 45° для квадратного массива яркости из выборок все еще должна отображаться на линии 45° для выборок цветности, хотя с массивом выборок прямоугольных размеров. Наложение прямоугольной сетки на квадратную сетку обозначает, что линия 45° затем фактически должна отображаться на линии 26,6°.
На фиг. 23 схематично иллюстрируются направления прогнозирования внутри кадров яркости, такие как применяются для пикселей цветности в 4:2:2, в отношении текущего пикселя, который прогнозирует 1220. Следует отметить, что существует на половину меньше пикселей по горизонтали, чем по вертикали, поскольку в схеме 4:2:2 частота горизонтальных выборок в канале цветности составляет половину по сравнению с каналом яркости.
На фиг. 24 схематично иллюстрируется преобразование или отображение пикселей цветности 4:2:2 на квадратную сетку, и затем, как такое преобразование изменяет направления прогнозирования.
Направления прогнозирования яркости показаны, как пунктирные линии 1240. Пиксели 1250 цветности повторно отображают на квадратную сетку, предоставляя для прямоугольного массива половину ширины 1260 соответствующего массива яркости (как показано на фиг. 22). Направления прогнозирования, показанные на фиг. 23, были повторно отображены на прямоугольный массив. Как можно видеть, некоторые пары направлений (пара, представляющая собой направление яркости и направление цветности), либо накладывается, или находится в близкой взаимосвязи. Например, направление 2 в массиве яркости, по существу, накладывается на направление 6 в массиве цветности. Однако, следует также отметить, что некоторые направления яркости, приблизительно их половина, не имеют соответствующего направления цветности. Пример представляет собой направление яркости номер 3. Кроме того, некоторые направления цветности (2-5) не имеют эквивалент в массиве яркости, и некоторые направления яркости (31-34) не имеют эквивалент в массиве цветности. Но, в общем, наложение, такое как показано на фиг. 24, демонстрирует, что было бы неуместно использовать тот же угол для обоих каналов яркости и цветности.
Соответственно, для вывода соответствующего угла прогнозирования, для цветности, когда (а) выбирают DM_CHROMA и (b) режим DM_CHROMA, используемый в настоящее время, обозначает, что направление прогнозирования цветности должно представлять собой направление для совместно размещенного блока яркости, модификатор 1500 применяет следующую процедуру:
(i) вывести угловой шаг для прогнозирования внутри изображения и его инверсию в соответствии с направлением яркости в соответствии с правилами HEVC.
(ii) если направление яркости является, преимущественно, вертикальным (то есть, например, режим с номерами от 18 до 34 включительно), тогда угловой шаг прогнозирования внутри изображения делят пополам (и его инверсию удваивают).
(iii) в противном случае, если направление яркости является, преимущественно, горизонтальным (то есть, например, режим с номерами от 2 до 17 включительно) тогда угловой шаг прогнозирования внутри изображения удваивают (и его инверсию делят пополам).
Соответственно, эти варианты осуществления относятся к способам кодирования или декодирования видеоданных, устройству или программам, в которых прогнозируют выборки яркости и цветности из других соответствующих опорных выборок, в соответствии с направлением прогнозирования, ассоциированным с текущей выборкой, предназначенной для прогнозирования. В таких режимах, как 4:2:2, выборки цветности имеют более низкую горизонтальную и/или вертикальную частоту выборки, чем у выборок яркости, поэтому отношение горизонтального разрешения яркости к горизонтальному разрешению цветности отличается от отношения вертикального разрешения яркости к вертикальному разрешению цветности. Вкратце, это означает, что блок выборок яркости имеет другое отношение размеров, чем соответствующий блок выборок цветности.
Модуль 530 прогнозирования внутри изображения, например, работает для детектирования первого направления прогнозирования, определенного в отношении сетки, с первым соотношением размеров, относительно набора текущих выборок, предназначенных для прогнозирования; и для применения отображения направления на направление прогнозирования, для генерирования второго направления прогнозирования, определенного в отношении сетки выборок с другим соотношением размеров того же набора текущих выборок, предназначенных для прогнозирования.
В вариантах осуществления первое направление прогнозирования определено в отношении одной из выборок яркости или цветности, и второе направление прогнозирования определена в отношении других из выборок цветности или яркости. В конкретных примерах, описанных в настоящем описании, направление прогнозирования яркости может быть модифицировано для обеспечения направления прогнозирования цветности. Но может использоваться совершенно другой способ.
Данная технология, в частности, применима для прогнозирования внутри изображения, таким образом, что опорные выборки представляют собой выборки, того же соответствующего изображения, что и выборки, предназначенные для прогнозирования.
По меньшей мере, в некоторых компоновках, первое направление прогнозирования определено в отношении квадратного блока выборок яркости, включающего в себя текущую выборку яркости; и второе направление прогнозирования определено в отношении прямоугольного блока выборок цветности, включающего в себя текущую выборку цветности.
При этом возможно обеспечить независимые режимы прогнозирования для двух компонентов цветности. В такой компоновке выборки цветности содержат выборки первого и второго компонентов цветности, и технология содержит: применяют описанный выше этап отображения направления в отношении первого компонента цветности (такого как Cb); и предоставляют другой режим прогнозирования в отношении второго компонента цветности (такого как Cr), что может (например) вовлекать прогнозирование второго компонента цветности из выборок первого компонента цветности.
Видеоданные могут иметь, например, формат 4:2:2 или, например, формат 4:4:4.
В общих чертах, варианты осуществления могут предоставлять независимые режимы прогнозирования для компонентов цветности (например, для каждого из компонентов яркости и цветности по-отдельности). Эти варианты осуществления относятся к способам видеокодирования, в которых выборки яркости и цветности изображения прогнозируют из других соответствующих опорных выборок, выведенных из того же изображения, в соответствии с направлением прогнозирования, ассоциированным с выборкой, предназначенной для прогнозирования, выборки цветности, имеющие более низкую горизонтальную и/или вертикальную частоту выборки, чем у выборок яркости, таким образом, что отношение горизонтального разрешения яркости к горизонтальному разрешению цветности будет отличаться от отношения вертикального разрешения яркости к вертикальному разрешению цветности так, что блок выборок яркости имеет другое отношение размеров, чем соответствующий блок выборок цветности, и выборки цветности, представляющие первый и второй компоненты цветности.
Селектор 520 режима внутри изображения выбирает режим прогнозирования, определяющий выбор одной или больше опорных выборок для прогнозирования текущей выборки цветности первого компонента цветности (такого, как Cb). Он также выбирает другой режим прогнозирования, определяющий другой выбор одной или больше опорных выборок для прогнозирования текущей выборки цветности второго компонента цветности (такого, как Cr), расположенного в том же месте, что и текущая выборка цветности первого компонента цветности.
Фильтр опорной выборки, в случае необходимости, можно применять, например, как часть операции накопителя 570 кадра или модулей 530, 540 прогнозирования, действующих как компоновка фильтра для горизонтальных выборок или вертикальных выборок (или для обеих). Фильтр может представлять собой нормализованный фильтр "1 2 1" с 3 выводами, в настоящее время применяемый для всех опорных выборок яркости, за исключением нижней левой и верхней правой (выборки блока N×N собирают вместе, для формирования одного массив 1D с размером 2N+1, и затем, в случае необходимости, фильтруют). В вариантах осуществления технологии применяют только первые (левая кромка) или последние (верхняя кромка) N+1 выборок цветности для 4:2:2, но следует отметить, что нижняя левая, верхняя правая и верхняя левая затем не будут отрегулированы; или все выборки цветности (что касается яркости), для 4:2:2 и 4:4:4.
Варианты осуществления также предоставляют способы кодирования или декодирования видеоданных, устройство или программы, для которых прогнозируют выборки яркости и первого, и второго компонентов цветности из других соответствующих опорных выборок, в соответствии с направлением прогнозирования, ассоциированным с выборкой, предназначенной для прогнозирования, что подразумевает прогнозирование выборок второго компонента цветности из выборок первого компонента цветности.
Варианты осуществления также могут обеспечивать способы кодирования или декодирования видеоданных, устройство или программы, в которых выборки яркости и первого и второго компонента цветности прогнозируют из других соответствующих опорных выборок, в соответствии с направлением прогнозирования, ассоциированным с выборкой, предназначенной для прогнозирования, используя фильтрацию опорных выборов.
Как описано со ссылкой на фиг. 19 и 20, возможно, чтобы разный режим прогнозирования содержал режим, в соответствии с которым выборки второго компонента цветности прогнозировали из выборок первого компонента цветности.
Следует отметить, что режимы 0 и 1 не являются режимами углового прогнозирования, и они не включены в эту процедуру. Эффект процедуры, показанной выше, состоит в том, чтобы отображать направления прогнозирования цветности на направления прогнозирования яркости на фиг. 24.
Для 4:2:0, когда выбирают любой из чисто горизонтального режима прогнозирования (режим 10 яркости) или чисто вертикального режима прогнозирования (режим 26 яркости), верхнюю или левую кромки прогнозируемого TU подвергают фильтрации только для канала яркости. Для горизонтального режима прогнозирования верхний ряд фильтруют в вертикальном направлении. Для вертикального режима прогнозирования фильтруют левый столбец в горизонтальном направлении.
Под фильтрацией столбца выборок в горизонтальном направлении можно понимать, применение горизонтально ориентированного фильтра для каждой выборки по очереди столбцов выборок. Таким образом, для индивидуальной выборки ее значение будет модифицировано действием фильтра, на основе фильтруемого значения, генерируемого из текущего значения этой выборки и одной или больше других выборок в положениях выборки, смещенных от этой выборки в горизонтальном направлении (то есть, одной или больше других выборок, расположенных слева и/или справа от рассматриваемой выборки).
Фильтрацию ряда выборок в вертикальном направлении можно понимать, как применение вертикально-ориентированного фильтра к каждой выборке по очереди рядов выборок. Таким образом, для индивидуальной выборки ее значение будет модифицировано действием фильтра, на основе фильтруемого значения, генерируемого из текущего значения этой выборки и одной или больше других выборок в положениях выборки, смещенных от этой выборки в вертикальном направлении (то есть, одной или больше других выборок, расположенных выше и/или ниже от рассматриваемой выборки).
Одно из назначений процесса фильтрации пикселя на кромке, описанного выше, состоит в том, чтобы уменьшить блок на основе эффектов кромки при прогнозировании, стремясь, таким образом, уменьшить энергию остаточных данных изображения.
В вариантах осуществления соответствующий процесс фильтрации также предусмотрен для TU цветности в 4:4:4 и 4:2:2. Принимая во внимание горизонтальную подвыборку, одно из предложений состоит только в том, чтобы фильтровать только верхний ряд TU цветности в 4:2:2, но фильтровать, как верхний ряд, так и левый столбец (соответственно, в соответствии с выбранным режимом) в 4:4:4. При этом считается соответствующим фильтровать только эти области, с тем, чтобы исключить фильтрацию слишком большого количества полезных деталей, которые (будучи отфильтрованными), приведут к увеличению энергии остаточных данных.
Для 4:2:0, когда выбирают режим DC, один или оба из главных и/или левых краев прогнозируемого TU подвергают фильтрации только для канала яркости. Здесь представлен пример корпуса, где выборки яркости представляют компонент яркости, и соответствующие выборки цветности представляют два компонента цветности, этап фильтрации применяют к подмножеству этих трех компонентов, подмножество составляют один или два из этих трех компонентов. Подмножество может состоять из компонента яркости. Фильтрация может вовлекать фильтрацию одного или обоих из левого столбца выборок в прогнозируемом блоке выборок и верхнем ряду выборок в прогнозируемом блоке выборок.
Фильтрация может быть выполнена таким образом, что в Режиме DC, фильтр выполняет операцию (1 × смежный за пределами выборки +3 * кромка выборки)/4 усреднения для всех выборок на обеих кромках. Однако, для верхнего левого участка функция фильтра представляет собой (2 × текущая выборка +1 × расположенная выше выборки +1 × левая выборка)/4. Здесь представлен пример операции, в которой в режиме DC, в котором генерируют прогнозируемую выборку, как простое среднее арифметическое окружающих выборок, этап фильтрации, содержащий фильтрацию левого столбца выборок в прогнозируемом блоке выборок и фильтрацию верхнего ряда выборок в прогнозируемом блоке выборок.
Фильтр H/V представляет собой среднее между соседней внешней выборкой и выборкой кромки.
В вариантах осуществления такой процесс фильтрации также предусмотрен для TU цветности в схемах 4:4:4 и 4:2:2. И снова, принимая во внимание горизонтальную подвыборку, в некоторых вариантах осуществления, только верхний ряд выборок цветности фильтруют для схемы 4:2:2, но верхний ряд и левый столбец TU цветности фильтруют для схемы 4:4:4.
В соответствии с этим, эта технология может применяться в отношении способа кодирования или декодирования видеоданных, устройства или программы, в которых выборки яркости и цветности (например) в формате 4:4:4 или 4:2:2 прогнозируют по другим соответствующим выборкам, в соответствии с направлением прогнозирования, ассоциированным с блоками выборок, предназначенных для прогнозирования.
В вариантах осуществления технологии направление прогнозирования детектируют в отношении текущего блока, предназначенного для прогнозирования. Прогнозируемый блок выборок цветности генерируют в соответствии с другими выборками цветности, определенными направлением прогнозирования. Если детектируемое направление прогнозирования будет, по существу, вертикальным (например, находится пределах +/-n режимов угла от точно вертикального режима, где n равно (например) 2), левый столбец выборок фильтруют (например, в горизонтальном направлении, используя горизонтально ориентированный фильтр) в блоке прогнозирования выборок цветности. Или, если детектируемое направление прогнозирования является, по существу, горизонтальным (например, находится в пределах +/-n режимов угла в точно горизонтальном режиме, где n равно (например) 2), верхний ряд выборок фильтруют (например, в вертикальном направлении, используя вертикально ориентированный фильтр) в прогнозируемом блоке выборок цветности. В каждом случае операция может применяться только к левому столбцу или верхнему ряду, соответственно. Затем разность между отфильтрованным прогнозируемым блоком цветности и фактическим блоком цветности кодируют, например, как остаточные данные. В качестве альтернативы, проверка может быть выполнена для точно вертикального или горизонтального режимов, вместо, по существу, горизонтального или вертикального режимов. Допуск +/-n может применяться к одной из проверок (вертикальной или горизонтальной), но не для других. В вариантах осуществления раскрытия фильтрация может выполняться только для левого столбца или верхнего ряда прогнозируемого блока, и фильтрация может быть выполнена горизонтально ориентированным фильтром или вертикально ориентированным фильтром соответственно.
Фильтрация может быть выполнена соответствующим модулем 520, 530 прогнозирования, действующим, как фильтр, в этом отношении.
После процесса фильтрации в вариантах осуществления технологии либо кодируют разность между фильтруемым прогнозируемым блоком цветности и фактическим блоком цветности (в кодере) или применяет декодируемую разность к фильтруемому прогнозируемому блоку цветности для кодирования блока (в декодере).
Прогнозирование между изображениями
Следует отметить, что прогнозирование между изображениями в HEVC уже позволяет использовать прямоугольный PU, таким образом, что режимы 4:2:2 и 4:4:4 уже совместимы с PU для обработки прогнозирования между изображениями.
Каждый фрейм видеоизображения представляет собой дискретную выборку реальной сцены, и, в результате, каждый пиксель представляет собой пошаговую аппроксимацию градиента реального мира в цветах и яркости.
С учетом этого, при прогнозировании значения Y, Cb или Cr пикселя в новом видеокадре от значения предыдущего видеокадра, пиксели в этом предыдущем видеокадре интерполируют для формирования лучшей оценки оригинальных реальных градиентов, для обеспечения более точного выбора яркости или цвета для нового пикселя. Следовательно, векторы движения, используемые для указания между видеокадрами, не ограничиваются целочисленным разрешением пикселей. Скорее, они могут указывать на положение подпикселей в пределах интерполированного изображения.
4:2:0 прогнозирование между изображениями
Рассмотрим теперь фиг. 25 и 26, в схеме 4:2:0, как отмечено выше, обычно PU 1300 яркости 8×8 будет ассоциирован с PU 1310 цветности 4×4 Cb и Cr. Следовательно, для интерполяции данных пикселей яркости и цветности до одинаково эффективного разрешения, используют разные фильтры интерполяции.
Например, для PU яркости размером 8×8 для 4:2:0, интерполяция составляет 1/4 пикселя, и, таким образом, фильтр ×4 с 8 отводами применяют вначале горизонтально, и затем такой же фильтр ×4 с 8 отводами применяют вертикально, так, что PU яркости эффективно растягивают в 4 раза в каждом направлении для формирования интерполированного массива 1320, как показано на фиг. 25. В то же время соответствующий PU цветности 4×4 для 4:2:0 представляет собой 1/8 пикселя, интерполированного для генерирования такого же возможного разрешения, и, таким образом, применяется фильтр ×8 с 4 отводами вначале горизонтально, и затем такой же фильтр ×8 с 4 отводами применяется вертикально, так, что PU цветности 4:2:0 эффективно растягивается 8 раз в каждом направлении для формирования массива 1330, как показано на фиг. 26.
Прогнозирование между изображениями 4:2:2
Аналогичная компоновка для 4:2:2 будет описана ниже со ссылкой на фиг. 27 и 28, на которых иллюстрируется PU 1350 яркости и пара соответствующих PU 1360 цветности.
Обращаясь к фиг. 28, как отмечено ранее, в схеме 4:2:2 PU 1360 цветности может быть неквадратным, и для случая PU яркости 8×8 для схемы 4:2:2 обычно применяется PU цветности с размерами 4 в ширину × на 8 в высоту для схемы 4:2:2 для каждого из каналов Cb и Cr. Следует отметить, что PU цветности вычерчены для назначения фиг. 28, как массив квадратной формы из неквадратных пикселей, но обычно следует отметить, что PU 1360 представляют собой массивы размером 4 (по горизонтали) × 8 (по вертикали) пикселей.
В то время как, поэтому, возможно использовать существующий фильтр яркости ×4 с 8 отводами вертикально для PU цветности, в варианте осуществления предполагается, что существующего фильтра цветности ×8 с 4 отводами будет достаточно для вертикальной интерполяции, поскольку на практике интересуются только ровным расположением фракций интерполированного PU цветности.
Следовательно, на фиг. 27 показан PU 1350 яркости для 4:2:2 размером 8×8, интерполированный, как и прежде, с использованием фильтра ×4 с 8 отводами, и PU 1360 цветности 4:2:2 размером 4×8, интерполированный существующим фильтром цветности ×8 с 4 отводами в горизонтальном и вертикальном направлениях, но при этом только равномерные результаты фракции используются для формирования интерполированного изображения в вертикальном направлении.
Эти технологии применимы для способов кодирования или декодирования видеоданных, устройства или программ, в которых используется прогнозирование между изображениями, для кодирования входных видеоданных, в которых каждый компонент цветности имеет горизонтальное разрешение 1/М компонента яркости и вертикальное разрешение 1/N компонента яркости, где М и N представляют собой целые числа, равные 1 или больше. Например, для 4:2:2, М=2, N=1. Для 4:2:0, М=2, N=2.
Накопитель 570 кадра во время работы сохраняет одно или больше изображений, предшествующих текущему изображению.
Фильтр 580 интерполяции во время работы интерполирует версию с более высоким разрешением модулей прогнозирования сохраненных изображений так, что компонент яркости модуля интерполированного прогнозирования имеет горизонтальное разрешение Р раз соответствующей части сохраненного изображения, и вертикальное разрешение Q раз соответствующей части сохраненного изображения, где Р и Q представляют собой целые числа большие 1. В текущих примерах, Р=Q=4 так, что фильтр 580 интерполяции во время работы генерирует интерполированное изображение с разрешением ¼ выборки.
Блок 550 оценки движения во время работы детектирует движение между изображениями, между текущим изображением и одним или больше интерполированными сохраненными изображениями, для генерирования векторов движения между модулем прогнозирования текущего изображения и появляется в одном или больше предыдущих изображений.
Модуль 540 прогнозирования со скомпенсированным движением, во время работы, генерирует прогнозирование со скомпенсированным движением модуля прогнозирования текущего изображения в отношении области интерполированного сохраненного изображения, на которую указывает соответствующий вектор движения.
Возвращаясь к описанию операции фильтра 580 интерполяции, варианты осуществления этого фильтра, во время работы, применяют фильтр интерполяции ×R по горизонтали и ×S по вертикали для компонентов цветности сохраненного изображения, для генерирования интерполированного модуля прогнозирования цветности, где R равно (U×М×Р), и S равно (V×N×Q), U и V представляют собой целые числа, равные 1 или больше; и для подвыборки интерполированного модуля прогнозирования цветности, таким образом, что его горизонтальное разрешение будет разделено с коэффициентом U, и его вертикальное разрешение будет разделено с коэффициентом V, в результате чего, получают блок из MP×NQ выборок.
Так, в случае 4:2:2, фильтр 580 интерполяции применяет интерполяцию ×8 в горизонтальном и вертикальном направлениях, но затем выполняет вертикальную подвыборку с коэффициентом 2, например, используя каждую 2-ую выборку в интерполированном выходе. Один способ достижения этого состоит в удвоении значения индекса в массив образцов. Так, рассмотрим направление массива (такое как вертикальное направление, в этом примере) в массиве выборок, который содержит 8 выборок, обозначенных, как 0… 7. Требуемая выборка в диапазоне подвыборок обозначается в диапазоне 0… 3. Так, удвоение этого индекса даст значения 0, 2, 4 и 6, которые затем можно использовать для доступа к выборкам в исходном массиве так, чтобы использовалась каждая поочередная выборка. Это представляет собой пример выбора подмножества выборок интерполированного модуля прогнозирования цветности.
Эта технология, поэтому, позволяет использовать тот же (например, ×8) фильтр в отношении 4:2:0 и 4:2:2, но с дополнительным этапом подвыборки в случае, когда требуется обеспечить 4:2:2.
В вариантах осуществления, как описано выше, модуль интерполированного прогнозирования цветности имеет высоту выборок в два раза большую, чем модуль прогнозирования в соответствии с форматом 4:2:0, интерполированный с использованием таких же фильтров интерполяции ×R и ×S.
Необходимость в обеспечении разных фильтров может быть исключена или устранена, используя эти технологии, и, в частности, путем использования одних и тех же горизонтальных ×R и вертикальных ×S фильтров интерполяции, в отношении входных видеоданных 4:2:0 и входных видеоданных 4:2:2.
Как описано выше, этап подвыборки модуля интерполированного прогнозирования цветности содержит: используют каждую V-ую выборку модуля интерполированного прогнозирования цветности в вертикальном направлении, и/или используют каждую U-ую выборку модуля интерполированного прогнозирования цветности в вертикальном направлении. В более общем смысле, подвыборка может содержать выбор поднабора выборок интерполированного модуля прогнозирования цветности.
Варианты осуществления могут вовлекать получение вектора движения яркости для модуля прогнозирования; и независимо выводят один или больше векторов движения цветности для этого модуля прогнозирования.
В вариантах осуществления, по меньшей мере, один из R и S равен 2 или больше, и в вариантах осуществления горизонтальный ×R и вертикальный ×S фильтры интерполяции также применяются для компонентов яркости сохраненного изображения.
Следует отметить, что одни и те же технологии интерполяции могут использоваться в кодере и в декодере.
Варианты прогнозирования между изображениями 4:4:4
Путем расширения, тот же принцип использования только результатов выровненной фракции для существующего фильтра цветности ×8 с 4 выводами можно применять, как вертикально, так и горизонтально для PU цветности 4:4:4 размером 8×8.
В дополнение к этим примерам фильтр цветности ×8 можно использовать для всей интерполяции, включающей в себя яркость.
Дополнительные варианты прогнозирования между изображениями
В одном варианте осуществления производного вектора движения (MV) один вектор получают для PU в срезе Р (и два вектора для PU в срезе В (где срез Р использует прогнозирование из предыдущего кадра, и срез В использует прогнозирование из предыдущего и следующего кадров, аналогично кадрам MPEG Р и В). Следует отметить, что в данном варианте осуществления в схеме 4:2:0 векторы являются общими для всех каналов, и, кроме того, данные цветности не требуется использовать для расчета векторов движения. Другими словами, во всех каналах используют вектор движения на основе данных яркости.
В варианте осуществления, в схеме 4:2:2 вектор цветности может быть выведен так, чтобы он был независимым от яркости (то есть, один вектор для каналов Cb и Cr может быть выведен отдельно), и в схеме 4:4:4 векторы цветности могут быть дополнительно независимыми для каждого из каналов Cb и Cr.
Преобразования
В HEVC большая часть изображений кодирована, как векторы движения из ранее кодированных/декодированных кадров, при этом векторы движения сообщают декодеру, из каких мест в этих других декодируемых кадрах следует копировать хорошие аппроксимации текущего изображения. Результат представляет собой приблизительную версию текущего изображения. HEVC затем кодирует, так называемый остаток, который представляют собой ошибку между аппроксимированной версией и прямым изображением. Этот остаток требует намного меньше информации, чем непосредственное установление фактического изображения. Однако, все еще, в общем, является предпочтительным сжатие этой остаточной информации для дополнительного уменьшения общей скорости передачи битов.
Во многих способах кодирования, включая в себя HEVC, такие данные преобразуют в домен пространство - частота, используя целочисленное косинусное преобразование (ICT), и обычно некоторое сжатие выполняют затем путем сохранения данных с низкой пространственной частотой и отбрасывания данных с высокой пространственной частотой, в соответствии с требуемым уровнем сжатия.
Преобразования 4:2:0
Преобразования пространственной частоты, используемые в HEVC, обычно представляют собой преобразования, которые генерируют коэффициенты в степени 4 (например, 64 коэффициента частоты), поскольку это особенно удобно для общих способов квантования/сжатия. Квадратные TU в схеме 4:2:0 все имеют степени 4 и, следовательно, этого легко достичь.
Если обеспечиваются варианты опции NSQT, некоторые неквадратные преобразования доступны для неквадратных TU, таких как 4×16, но снова следует отметить, что в результате из них получают коэффициенты 64, то есть, снова степень 4.
Варианты преобразования 4:2:2 и 4:4:4
Схема 4:2:2 может привести к неквадратным TU, которые не являются степенью 4; например, TU 4×8 имеют 32 пикселя, и 32 не является степенью 4.
В варианте осуществления, поэтому, неквадратное преобразование для коэффициентов, не являющихся степенью 4, могут использоваться, подтверждая то, что модификации могут потребоваться для последующего процесса квантования.
В качестве альтернативы, в варианте осуществления, неквадратные TU разделяют на квадратные блоки, имеющие площади в степени 4 для преобразования, и затем полученные в результате коэффициенты могут быть подвержены перемежению.
Например, для блоков 4×8 нечетные/четные вертикальные выборки могут быть разделены на два квадратных блока. В качестве альтернативы, для блока 4×8 верхние 4×4 пикселей и нижние 4×4 пикселей могут формировать два квадратных блока. И снова, в качестве альтернативы, для блоков 4×8 вейвлет разложение Хаара можно использовать для формирования блока 4×4 нижней и верхней частоты.
Любые из этих опций могут быть сделаны доступными, и выбор конкретной альтернативы может быть передан в виде сигналов в декодер или может быть выведен декодером.
Другие режимы преобразования
В схеме 4:2:0 предложен флаг (так называемый, 'qpprime_y_zero_transquant_bypass_flag'), позволяющий включать остаточные данные в поток битов без потерь (то есть, без преобразования, квантования или дополнительной фильтрации). В схеме 4:2:0 флаг применяется для всех каналов.
В соответствии с этим, такие варианты осуществления представляют способ кодирование или декодирования видеоданных, устройство или программу, в которых прогнозируют выборки яркости и цветности, и разность между выборками и соответствующими прогнозируемыми выборками кодируют, используя индикатор, выполненный с возможностью обозначения, должны ли быть включены данные контраста яркости в выходной поток битов без потерь; и для независимого обозначения, должны ли цветоразностные данные быть включены в поток битов без потерь. Такой флаг или флаги (или индикатор или индикаторы, соответственно) могут быть вставлены, например, контроллером 343.
В варианте осуществления предложено, чтобы флаг для канала яркости был отделен от каналов цветности. Следовательно, для схемы 4:2:2, такие флаги должны быть предусмотрены отдельно для канала яркости и для каналов цветности, и для схемы 4:4:4, такие флаги должны быть предусмотрены либо отдельно для каналов яркости и цветности, или один флаг должен быть предусмотрен для каждого из трех каналов. Это распознает увеличенные скорости данных цветности, ассоциированные со схемами 4:2:2 и 4:4:4, и позволяет, например, использовать данные яркости без потерь вместе со сжатыми данными цветности.
Для кодирования с прогнозированием внутри изображения направленное преобразование, зависимое от режима (MDDT), позволяет заменить горизонтальный или вертикальный ICT (или оба ICT) для TU на целочисленное синусное преобразование, в зависимости от направления прогнозирования внутри изображения. В схеме 4:2:0 это не применяется для TU цветности. Однако в варианте осуществления предложено применять его для TU цветности 4:2:2 и 4:4:4, следует отметить, что IST только в настоящее время определены для 4 измерений преобразования выборки (либо горизонтальные, или вертикальные), и, поэтому, в настоящее время не может применяться по вертикали для TU цветности 4×8. MDDT будет дополнительно описан ниже.
В способах кодирования видеоданных могут быть размещены различные варианты осуществления так, что они будут обозначать, должны ли данные контраста яркости быть включены в выходной поток битов без потерь; и независимо от обозначения, должны ли быть данные цветоразности включены в поток битов без потерь, и кодировать или включать соответствующие данные в форме, определенной такими обозначениями.
Квантование
В схеме 4:2:0 расчет квантования является таким же для цветности, как и для яркости. Только параметры квантования (QP) отличаются.
QP для цветности рассчитывают из QP яркости следующим образом:
где таблица масштабирования определена, как можно видеть на фиг. 29A или 29B (для 4:2:0 и 4:2:2, соответственно), и "chroma_qp_index_offset" и "second_chroma_qp_index_offset" определены в устанавливаемом параметре изображении и могут быть одинаковыми или разными для Cr и Cb. Другими словами, значение в квадратных скобках определяет, в каждом случае, "индекс" в таблице масштабирования (фиг. 29A и 29B), и таблица масштабирования затем передает пересмотренное значение Qp ("значение").
Следует отметить, что "chroma_qp_index_offset" и "second_chroma_qp_index_offset" могут вместо этого называться cb_qp_offset и cr_qp_offset, соответственно.
Каналы цветности обычно содержат меньше информации, чем в канале яркости и, следовательно, имеют коэффициенты с меньшей магнитудой; это ограничение по цветности QP может предотвратить потерю каких-либо деталей цветности при значительных уровнях квантования.
Взаимосвязь знаменателя QP в 4:2:0 является логарифмической таким образом, что увеличение на 6 в QP эквивалентно удвоению знаменателя (размер этапа квантования описан в другом месте, в этом описании, хотя следует отметить, что он может быть дополнительно модифицирован с помощью матриц Q перед использованием). Следовательно, наибольшая разница в таблице масштабирования 51-39=12 представляет коэффициент 4-кратного изменения знаменателя.
Однако в варианте осуществления, для схемы 4:2:2, которая потенциально содержит в два раза больше информации цветности, чем схема 4:2:0, максимальное значение QP цветности в таблице масштабирования может быть повышено до 45 (то есть, имеющее знаменатель). Аналогично, для схемы 4:4:4, максимальное значение QP цветности в таблице масштабирования может быть повышено до 51 (то есть, при том же знаменателе). В этом случае таблица масштабирования фактически является избыточной, но может поддерживаться просто для эффективности операций (то есть, таким образом, что система работает со ссылкой на таблицу одинаково для каждой схемы). Следовательно, в более общем смысле, в варианте осуществления, знаменатель QP цветности модифицируют в соответствии с количеством информации в схеме кодирования относительно схемы 4:2:0.
В соответствии с этим, варианты осуществления относятся к способу кодирования или декодирования видеоданных, работающих для квантования блоков, преобразованных по частоте компонентных видеоданных яркости и цветности в формате 4:4:4 или 4:2:2, в соответствии с выбранным параметром квантования, который определяет размер шага квантования. Ассоциацию параметра квантования (такого как, например, соответствующая таблица на фиг. 29A или 29B) определяют между параметрами квантования яркости и цветности, где ассоциация осуществляется таким образом, что максимальный размер шага квантования цветности меньше, чем максимальный размер шага квантования яркости для формата 4:2:2 (например, 45), но равен максимальному размеру шага квантования яркости для формата 4:4:4 (например, 51). Процесс квантования работает таким образом, что каждый компонент данных, преобразованных по частоте, делят на соответствующее значение, выводимое из соответствующего размера шага квантования, и результат округляют до целочисленного значения для генерирования соответствующего блока квантованных данных пространственной частоты.
Следует понимать, что этапы деления и округления представляют собой примеры, обозначающие обобщенный этап квантования, в соответствии с соответствующим размером шага квантования (или данными, выведенными из него, например, с помощью приложения Q матриц).
Варианты осуществления включают в себя этап выбора параметра квантования или индекса (QP для яркости), для квантования пространственных коэффициентов частоты, при этом параметр квантования действует, как опорный для соответствующего одного из набора размеров шага квантования, в соответствии с таблицами QP, применимыми для данных яркости. Процесс определения ассоциации параметра квантования может затем содержать: для компонентов цветности, ссылку на таблицу модифицируемых параметров квантования (такую как таблица на фиг. 29A или 29B), в соответствии с выбранным параметром квантования, что, в свою очередь, может вовлекать (i) для первого компонента цветности, добавляют первое смещение (такое как chroma_qp_index_offset) к параметру квантования и выбирают модифицированный индекс квантования, соответствующий входу в эту запись в таблице для индекса квантования, плюс первое смещение; и (ii) для второго компонента цветности, добавляют второе смещение (такое как second_chroma_qp_index_offset) к параметру квантования и выбирают модифицированный индекс квантования, соответствующий входу в эту запись в таблице для индекса квантования, плюс второе смещение; и обращаясь к соответствующему размеру шага квантования в наборе, в соответствии с параметром квантования для данных яркости и первому и второму модифицированным индексам квантования для первого и второго компонентов цветности. Другими словами, это представляет собой пример процесса, подразумевающего выбор параметра квантования для квантования пространственных коэффициентов частоты, при этом параметр квантования действует, как ссылка на соответствующий один из набора размеров шага квантования; и в котором этап определения содержит: для компонентов цветности, ссылку на таблицу модифицированных параметров квантования, в соответствии с выбранным параметром квантования, этап ссылки, содержащий: для каждого компонента цветности, добавляют соответствующее смещение к параметру квантования и выбирают модифицированный параметр квантования, соответствующий входу в эту запись в таблице, для параметра квантования, плюс соответствующее смещение; и ссылку на соответствующий размер шага квантования в наборе, в соответствии с параметром квантования для данных яркости и для первого и второго модифицированных параметров квантования для первого и второго компонентов цветности.
Эти технологии являются особенно применимыми для компоновок, в которых последовательные значения размеров шага квантования в наборе соотносятся логарифмически, таким образом, что изменение параметра квантования m (где m представляет собой целое число) представляет изменение размера шага квантования на коэффициент р (где р представляет собой целое число большее 1). В настоящих вариантах осуществления m=6 и р=2.
В вариантах осуществления, как описано выше, максимальный параметр квантования яркости равен 51; максимальный параметр квантования цветности равен 45 для формата 4:2:2; и максимальный параметр квантования цветности равен 51 для формата 4:4:4.
В вариантах осуществления первое и второе значения смещения могут быть переданы в ассоциации с кодированными видеоданными.
В схеме 4:2:0 матрицы А преобразования, первоначально формируют (модулем преобразования 340) из истинно нормализованных N×N DCT и A′, используя:
где i и j обозначают положение в пределах матрицы. Такое масштабирование относительно нормализованной матрицы преобразования обеспечивает увеличение точности, исключает необходимость в дробных расчетах и увеличивает внутреннюю точность.
Игнорирование разности, связанной с округлением Aij, поскольку X умножают, как на А, так и на AT (транспонирование матрицы А), полученные в результате коэффициенты отличаются от коэффициентов истинно нормализованных M×N (М=высота; N=ширина) DCT на общий коэффициент масштабирования, равный:
Следует отметить, что общий коэффициент масштабирования может отличаться от этого примера. Также следует отметить, что умножение матрицы, как на А, так и на AT, может быть выполнено различными способами, например, с использованием, так называемого, способа Баттерфляй. Существенным является тот факт, является ли выполняемая операция эквивалентной традиционному умножению матрицы, с учетом того, что она выполняется в определенном традиционном порядке операций.
Такой коэффициент масштабирования эквивалентен двоичной операции побитного сдвига влево на количество битов transformShift, поскольку в HEVC этот результат представляет степень 2:
Для уменьшения требований в отношении внутренней точности битов, коэффициенты сдвигают вправо (используя положительное округление) дважды во время процесса преобразования:
В результате, коэффициенты, по мере того, как они выходят из процесса прямого преобразования и поступают в блок квантования, являются эффективно сдвинутыми влево на величину:
В 4:2:0, коэффициенты, разделенные частотой (например, DCT), генерируемые в результате преобразования частоты, больше на коэффициент чем можно было бы получить с нормализованным DCT.
В некоторых вариантах осуществления блоки являются либо квадратными, или прямоугольными с отношением размера 2:1. Поэтому, для размера блока N×М, либо:
N=M, и в этом случае, resultingShift преставляет собой целое число и S=N=M=sqrt (NM); или
0,5N=2M или 2N=0,5M, и в этом случае resultingShift все еще представляет собой целое число и S=sqrt (NM)
Эти коэффициенты впоследствии квантуют, где знаменатель квантования выводят в соответствии с параметром QP квантования.
Следует отметить, что resultingShift эквивалентен целому числу, таким образом, что общий коэффициент масштабирования представляет собой целое число в степени 2, общий сдвиг влево 'resultingShift' в процессе преобразования также учитывают на этом этапе путем применения эквивалентного, но противоположного сдвига вправо, 'quantTransf или mRightShift'.
Такая операция сдвига битов возможна, поскольку resultingShift представляет собой целое число.
Также следует отметить, что соотношение знаменателя-QP (параметра квантования или индекса) следует кривой мощности по основанию 2, как упомянуто выше, в том, что увеличение QP на 6 имеет эффект удвоения знаменателя, в то время, как увеличение QP на 3 имеет эффект увеличения знаменателя на коэффициент sqrt (2) (квадратный корень 2).
В связи с тем, что формат цветности равен 4:2:2, для TU существуют два отношения ширина: высота (N:M):
N=M (как указано выше), где S=N=M=sqrt (NM) (resultingShift представляет собой целое число),
0,5N=2M и 2N=0,5M, (как указано выше), где S=sqrt (NM) (resultingShift представляет собой целое число),
N=2M, где S=sqrt (NM)
2M=N, где S=sqrt (NM)
4N=0,5M, где S=sqrt (NM)
В этих трех последних ситуациях resultingShift не является целым числом. Например, такой подход может применяться, в случае, когда, по меньшей мере, некоторые из блоков выборок видеоданных содержат выборки M×N, где квадратный корень N/M не равен степени 2 целого числа. Такие размеры блока могут возникнуть в отношении выборок цветности, в некоторых из настоящих вариантов осуществления.
В соответствии с этим, в таких случаях, следующие технологии являются соответствующими, то есть, в способах кодирования или декодирования видеоданных, устройстве или программах, работающих для генерирования блоков данных, квантованных по пространственной частоте, путем выполнения преобразования частоты для блоков выборок видеоданных, используя матрицу преобразования, содержащую массив целочисленных значений, каждое из которых масштабировано в отношении соответствующих значений нормализованной матрицы преобразования на величину, зависящую от размера матрицы преобразования, и для квантования данных пространственной частоты, в соответствии с выбранным размером шага квантования, имеющим этап преобразования частоты блока выборок видеоданных путем умножения матрицы блока на матрицу преобразования и транспонирования матрицы преобразования, для генерирования блока масштабирования коэффициентов пространственной частоты, каждый из которых больше на общий коэффициент масштабирования (например, resultingShift), чем коэффициенты пространственной частоты, которые могли бы быть получены из нормированного преобразования частоты этого блока выборок видеоданных.
Поэтому, на этапе квантования, соответствующая операция сдвига битов не может использоваться для отмены операции простым способом.
Для этого было предложено следующее решение:
На этапе квантователя применить сдвиг вправо:
Где значение S′ выведено так, что
quantTransformRightShift представляет собой целое число
Разность между сдвигами на ½ эквивалентна умножению на корень из (2), то есть, в этой точке коэффициенты в sqrt в (2) раза больше, чем они должны быть, что делает сдвиг бита сдвигом на целый бит.
Для процесса квантования применяют параметр квантования (QP+3), что означает, что знаменатель квантования эффективно увеличивается на коэффициент sqrt (2), устраняя, таким образом, коэффициент масштабирования sqrt (2) из предыдущего этапа.
В соответствии с этим, эти этапы могут быть сведены вместе (в контексте способа кодирования или декодирования видеоданных (или соответствующего устройства или программы), которые работают для генерирования блоков квантованных данных пространственной частоты, путем выполнения преобразования частоты по блокам выборок видеоданных, используя матрицу преобразования, содержащую массив целочисленных значений, каждый из которых масштабируют в отношении соответствующих значений нормализованной матрицы преобразования, и для квантования данных пространственной частоты в соответствии с выбранным размером этапа квантования, в котором используется преобразование частоты блока выборок видеоданных путем матричного умножения блока на матрицу преобразования и для генерирования блока масштабированных коэффициентов пространственной частоты, каждый из которых больше на общий коэффициент масштабирования, чем коэффициенты пространственной частоты, которые могли бы быть получены из нормированного частотного преобразования каждого блока выборок видеоданных) следующим образом: выбирают размер этапа квантования для квантования коэффициентов пространственной частоты; применяют сдвиг на n битов (например, quantTransformRightShift) для деления каждого из масштабированных коэффициентов пространственной частоты на коэффициент 2n, где n представляет собой целое число; и детектируют остаточный коэффициент масштабирования (например, resultingShift-quantTransformRightShift), который представляет собой общий коэффициент масштабирования, разделенный на 2n. Например, в ситуации, описанной выше, размер шага квантования затем должен, в соответствии с остаточным коэффициентом масштабирования, использоваться для генерирования модифицированного размера шага квантования; и каждый из масштабированных коэффициентов пространственной частоты в блоке делят на значение, зависящее от модифицированного размера шага квантования, и округляют результат до целочисленного значения для генерирования блока квантованных данных пространственной частоты. Как описано выше, модификация размера шага квантования может осуществляться просто путем добавления смещения к QP, для выбора другого размера шага квантования, когда QP отображают на таблицу размеров шага квантования.
Коэффициенты теперь имеют правильную магнитуду для оригинального QP.
Матрица преобразования может содержать массив целочисленных значений, каждое из которых масштабировано в отношении соответствующих значений нормализованной матрицы преобразования на величину, зависящую от размера матрицы преобразования.
Из этого следует, что требуемое значение для S′ всегда может быть выведено следующим образом:
В качестве альтернативного предложения S' может быть выведено таким образом, что:
В этом случае, и приложенный параметр квантования представляет собой (QP-3)
В любом в этих случаев, (добавление 3 к QP или в вычитании 3 из QP) этап выбора размера шага квантования содержит выбор индекса квантования (например, QP), индекс квантования, определяющий соответствующий вход в таблицу размеров шага квантования, и этап модификации содержит изменение индекса квантования для выбора другого размера шага квантования, таким образом, что отношение разных размеров шага квантования к первоначально выбранному размеру шага квантования, по существу, равно остаточному коэффициенту масштабирования.
Все это работает особенно хорошо, когда, как и в первом варианте осуществления, последовательные значения размеров шага квантования в таблице соотносятся логарифмически, таким образом, что изменение индекса квантования (например, QP) для m (где m представляет собой целое число) представляет изменение размера шага квантования на коэффициент р (где р представляет собой целое число больше 1). В настоящих вариантах осуществления m=6 и р=2, таким образом, что увеличение QP в 6 раз представляет удвоение применяемого размера шага квантования, и уменьшение в QP в 6 раз представляет уменьшение вдвое, полученного в результате размера шага квантования.
Как описано выше, модификация может осуществляться путем выбора индекса квантования (например, основания QP) в отношении выборок яркости; генерируя смещения индекса квантования, относительно индекса квантования, выбранного для выборок яркости, для выборок каждого или обоих компонентов цветности; изменения смещения индекса квантования, в соответствии с остаточным коэффициентом масштабирования; и передачи смещения индекса квантования в ассоциации с кодированными видеоданными. В вариантах осуществления HEVC смещение QP для двух каналов цветности передают в потоке битов. Эти этапы соответствуют системе, в которой смещение QP (за счет остаточного коэффициента масштабирования) равное +/-3, может быть встроено в эти смещения, или для них может быть выполнено последовательное приращение/уменьшение, когда их используют для вывода QP цветности.
Следует отметить, что смещение QP не обязательно должно быть равным +/-3, если используют блоки разных размеров; при этом +/-3 просто представляет смещение, применимое для форм и соотношений размеров блока, описанных выше в отношении, например, видеоданных 4:2:2.
В некоторых вариантах осуществления n (величина сдвига битов, в том виде, как применяется) выбирают таким образом, что 2n будет больше, чем или равно общему коэффициенту масштабирования. В других вариантах осуществления n выбирают таким образом, что 2n меньше чем или равно общему коэффициенту масштабирования. В вариантах осуществления (используя любую из этих компоновок), сдвиг n бита может быть выбран таким, чтобы он был следующим ближайшим (в любом направлении) к общему коэффициенту масштабирования, таким образом, что остаточный коэффициент масштабирования представляет коэффициент, имеющий магнитуду меньше, чем 2.
В других вариантах осуществления модификация размера шага квантования может быть выполнена просто путем умножения размера шага квантования на коэффициент, зависящий от остаточного коэффициента масштабирования. То есть, модификация не обязательно должна включать в себя модификацию QP индекса.
Следует также отметить, что размер шага квантования, как описано, не обязательно представляет собой фактический размер шага квантования, на который делят преобразованную выборку. Размер шага квантования, выведенный таким образом, может быть дополнительно модифицирован. Например, в некоторых компоновках, размер шага квантования дополнительно модифицирован по соответствующим входам в матрицу по значениям (Qmatrix) таким образом, что разные конечные размеры шага квантования используются в разных положениях коэффициента в квантованном блоке коэффициентов.
Также известно, что в схеме 4:2:0, наибольший TU цветности составляет 16×16, тогда как для схемы 4:2:2 возможны TU 16×32, и для схемы 4:4:4 возможны TU цветности 32×32. Следовательно, в варианте осуществления предложены матрицы квантования (Q матрицы) для TU цветности 32×32. Аналогично, Q матрицы должны быть определены для неквадратных TU, таких как TU 16×32, в одном варианте осуществления, который представляет собой подвыборку более крупной квадратной матрицы Q
Qmatrices могут быть определены по одному из следующих значений:
значения в сетке (как для Qmatrices размером 4×4 и 8×8);
пространственно интерполированные из соответственно меньших или более крупных матриц;
- в HEVC более крупные Qmatrices могут быть выведены из соответствующих групп коэффициентов меньшего размера опорных матриц, или меньшего размера матрицы могут быть выведены на основе подвыборки из более крупных матриц. Следует отметить, что такая интерполяция или подвыборка могут осуществляться в пределах соотношения канала - например, большая матрица для соотношения канала может быть интерполирована из меньшей матрицы для этого соотношения каналов.
относительно других Qmatrices (то есть, значения разности или дельта);
- следовательно, необходимо передать только значения дельта.
Рассмотрим небольшой пример, только для иллюстрации, конкретная матрица для одного отношения канала может быть определена, такая как матрица 4×4 в соответствии со схемой 4:2:0
(a b)
(c d)
где a, b, c и d представляют собой соответствующие коэффициенты. Это действует, как опорная матрица.
Варианты осуществления могли бы затем определять набор значений разности для матрицы аналогичного размера в отношении другого соотношения канала:
(diff1 diff2)
(diif3 diff4)
таким образом, что для генерирования Qmatrix для другого соотношения каналов, матрица разностей представляет собой матрицу, добавленную к опорной матрице.
Вместо различий, матрица мультипликативных коэффициентов может быть определена для другого соотношения каналов, таким образом, что либо (i), матрица мультипликативных коэффициентов представляет собой матрицу, умноженную на опорную матрицу, для генерирования Qmatrix для другого соотношения каналов, или (ii), каждый коэффициент в опорной матрице индивидуально умножают на соответствующий коэффициент для генерирования Qmatrix, для другого соотношения канала.
как функция другой Qmatrix;
- например, коэффициент масштабирования в отношении другой матрицы (таким образом, что каждый из a, b, c и d в представленном выше примере умножают на один и тот же коэффициент, или к ним добавляют одинаковую разность). Это уменьшает требования к данным для преобразования разности или данных коэффициента.
- следовательно, только коэффициенты функций необходимы для передачи (такие как коэффициент масштабирования),
как уравнение/функция (например, линейная кривая, состоящая из кусочков, экспонента, полином);
- следовательно, только коэффициенты уравнений необходимо передавать для вывода матрицы,
или любую комбинацию, указанную выше. Например, каждый из a, b, c и d фактически может быть определен по функции, которая может включать в себя зависимость от положений (i, j) коэффициента в матрице, (i, j) может представлять собой, например, положение коэффициента, слева направо, после которого следует положение коэффициента сверху вниз матрицы. Пример представляет собой:
коэффициент i,j=3i+2j
Следует отметить, что Q матрицы могут называться листами масштабирования в среде HEVC. В вариантах осуществления, в которых квантование применяют после процесса развертки, данные развертки могут представлять собой линейный поток последовательных выборок данных. В таких случаях концепция Qmatrix все еще применяется, но матрица (или список развертки) можно рассматривать, как матрицу 1×N, таким образом, что порядок значений данных N в пределах матрицы 1×N соответствует порядку выборок, полученных при развертке, к которым требуется применять соответствующее значение Qmatrix. Другими словами, существует взаимозависимость 1:1 между порядком данных в данных, полученных при развертке, пространственной частотой, в соответствии со структурой развертки, и порядком данных в Qmatrix 1×N.
Следует отметить, что возможно, в некоторых вариантах осуществления, выполнить обход или пропуск этапа DCT (разделение по частоте), но при этом оставляют этап квантования.
Другая полезная информация включает в себя необязательный индикатор того, к какой матрице относятся данные значения, то есть, предыдущий канал или первый (первичный) канал; например, матрица для Cr может представлять коэффициент масштабирования для матрицы для значений Y или для Cb, как обозначено.
В соответствии с вариантами осуществления раскрытие может предоставлять способ кодирования или декодирования видеоданных (и соответствующее устройство или компьютерную программу), работающие для генерирования блоков квантованных данных пространственной частоты, (в случае необходимости) выполнения преобразования частоты для блоков выборок видеоданных и квантования видеоданных (таких как данные пространственной частоты) в соответствии с выбранным размером шага квантования и матрицей данных, модифицирующей размер шага квантования, для использования в разных соответствующих положениях блока в пределах упорядоченного блока выборок (такого как упорядоченный блок выборок преобразованных по частоте), способ работает в отношении, по меньшей мере, двух разных форматов подвыборки цветности.
Для, по меньшей мере, одного из форматов подвыборки цветности определяют одну или больше матриц квантования, в качестве одной или больше заданных модификаций в отношении одной или больше опорных матриц квантования, определенных для ссылки на один из форматов подвыборки цветности.
В вариантах осуществления этап определения содержит: определяют одну или больше матриц квантования, как матрицу значений, каждая из которых интерполирована из соответствующего множества значений опорной матрицы квантования. В других вариантах осуществления этап определения содержит: определяют одну или больше матриц квантования, как матрицу значений, для каждой из которых выполняют подвыборку из значений опорной матрицы квантования. В вариантах осуществления этап определения содержит: определяют одну или больше матриц квантования, как матрицу разностей в отношении соответствующих значений опорной матрицы квантования.
В вариантах осуществления этап определения содержит: определяют одну или более матриц квантования, как матрицу разностей относительно соответствующих значений опорной матрицы квантования.
В вариантах осуществления этап определения содержит: определяют одну или больше матриц квантования, как заданную функцию значений опорной матрицы квантования. В таких случаях заданная функция может представлять собой полиномиальную функцию.
В вариантах осуществления предусматриваются одно или оба из следующих, например, как часть или в ассоциации с кодированными видеоданными: (i) опорные данные индикатора для обозначения в отношении кодированных видеоданных, опорной матрицы квантования; и (ii) данные индикатора модификации, для обозначения, в отношении значений кодированных данных, одной или больше заданных модификаций.
Такие технологии в особенности применимы в случае, когда два из форматов подвыборки цветности представляют собой форматы 4:4:4 и 4:2:2.
Количество матриц Q в HEVC 4:2:0 в настоящее время равно 6 для каждого размера преобразования: 3 для соответствующих каналов, и один набор для кодирования внутри и между изображениями. В случае схемы GBR 4:4:4, следует понимать, что либо один набор матриц квантования может использоваться для всех каналов, или могут использоваться три соответствующих набора матриц квантования.
В вариантах осуществления, по меньшей мере, одна из матриц представляет собой матрицу 1×N. Это может представлять собой случай (как описано здесь), когда одна или больше из матриц, фактически, представляет собой список масштабирования и т.п., который представляет собой линейный упорядоченный массив коэффициентов 1×N.
Предложенные решения улучшают постепенное увеличение или постепенное уменьшение применяемого QP. Однако это может быть достигнуто множеством способов:
В HEVC смещения QP для двух каналов цветности передают в потоке битов. +/-3 может быть встроено в эти смещения, или для них может быть выполнено постепенное приращение/постепенное уменьшение, когда их используют для вывода QP цветности.
Как описано выше, в HEVC, (QP яркости + смещение цветности) используют в качестве индекса для таблицы, для вывода QP цветности. Эта таблица может быть модифицирована соответствующим образом до +/-3 (то есть, постепенное увеличение/постепенное уменьшение значений оригинальной таблицы на 3)
После вывода QP цветности, для каждого нормального процесса HEVC, результаты могут затем быть постепенно увеличены (или постепенно уменьшены) на 3.
В качестве альтернативы для модификации QP, коэффициент sqrt (2) или 1/sqrt (2) может использоваться для модификации коэффициентов квантования.
Для прямого/обратного квантования процессы деления/умножения реализованы при использовании (% QP 6) как индекс к таблице, чтобы получить коэффициент квантования или размер шага квантования, inverseQStep/scaledQStep.(Здесь, % QP 6 обозначает QP по модулю 6). Следует отметить, что, как описано выше, это, возможно, не представляет конечный размер шага квантования, который применяют к преобразованным данным; это может быть дополнительно модифицировано Qmatrices перед использованием.
Принятые по умолчанию таблицы HEVC имеют длину 6, которая охватывает октаву (удвоение) значений. Это просто представляет собой средство уменьшения требований к сохранению; таблицы расширяют для фактического использования, путем выбора входной записи в таблице, в соответствии с модулем QP (mod 6) и с последующим умножением или делением на соответствующую степень 2, в зависимости от разности (QP-QP модуль 6) заданного основного значения.
Такая компоновка может изменяться для обеспечения возможности смещения +/-3 значения QP. Смещение может применяться в процессе поиска в таблице, или вместо этого, может выполняться процесс модуля, описанный выше, используя модифицированный QP. Предполагая, что смещение применяется при поиске в таблице, однако, дополнительные входы в записи в таблице могут быть предусмотрены следующим образом:
Одна альтернатива состоит в том, чтобы расширить таблицы на 3 входа, где новые входы представляют собой следующее (для значений индекса 6-8).
Примерная таблица, показанная на фиг. 30, могла бы быть индексирована по [(QP % 6)+3] ("способ последовательного приращения QP"), где обозначение QP % 6 обозначает " QP модуль 6".
Пример таблицы, показанный на фиг.31, может быть проиндексирован по [(QP % 6) - 3] ("способ последовательного уменьшения QP"), который имеет дополнительные входы для значений индекса от -1 до -3:
Энтропийное кодирование
Основное энтропийное кодирование содержит: назначают кодовые слова для входных символов данных, где самые короткие доступные кодовые слова назначают для наиболее вероятных символов во входных данных. В среднем, результат представляет собой гораздо меньшее представление входных данных без потерь.
Такая основная схема может быть улучшена дополнительно путем распознавания того, что вероятность символа часто является условной в современных данных предшествующего уровня техники, и, следовательно, делает процесс назначения контекста адаптивным.
В такой схеме переменные контекста (CV) используют для определения выбора соответствующих моделей вероятности, и такие CV предусмотрены для схемы 4:2:0 в HEVC.
Для расширения энтропийного кодирования схемы 4:2:2, в которой, например, используется TU цветности размером 4×8, вместо TU 4×4, для TU яркости 8×8, в случае необходимости, переменные контекста могут быть предусмотрены путем простого вертикального повторения эквивалентных выборов CV.
Однако, в варианте осуществления, выбор CV не повторяют для верхних - левых коэффициентов (то есть, для коэффициентов с высокой энергией, DC и/или с низкой пространственной частотой), и, вместо этого, выводят новые CV. В этом случае, например, отображение может быть выведено из карты яркости. Такой подход также можно использовать для схемы 4:4:4.
Во время кодирования, в схеме 4:2:0, выполняют, так называемую, зигзагообразную развертку через коэффициенты в порядке от высоких к низким частотам. Однако, снова следует отметить, что TU цветности в схеме 4:2:2 могут не быть квадратными, и, таким образом, в варианте осуществления разная развертка цветности предлагается с наклоненным углом развертки, чтобы сделать его в большей степени горизонтальным, или в более общем случае, чувствительным к соотношению размеров TU.
Аналогично, соседство для карты существенности выбора CV и системы c1/c2 для "более, чем одного" и "более, чем двух" выборов CV может быть адаптировано, соответственно.
Аналогично, в варианте осуществления последнее наименее значимое положение коэффициента (которое становится исходной точкой во время декодирования) также можно отрегулировать для схемы 4:4:4, с наименьшими значимыми положениями для TU цветности, которые кодируют по-разному из последнего значимого положения в расположенном в том же месте TU яркости.
Развертка коэффициента также может быть выполнена в режиме прогнозирования, в зависимости от определенных размеров TU. Следовательно, другой порядок развертки можно использовать для некоторых размеров TU, зависящих от режима прогнозирования внутри изображения.
В схеме 4:2:0, применяют только развертку коэффициента, зависящего от режима (MDCS), для TU яркости 4×4/8×8 и TU цветности 4×4, для прогнозирования внутри изображения. MDCS используются в зависимости от режима прогнозирования внутри изображения, под углами +/-4 от рассматриваемых горизонтального и вертикального направлений.
В варианте осуществления предложено, чтобы схема MDCS 4:2:2 применялась для TU цветности размером 4×8 и 8×4 для прогнозирования внутри изображения. Аналогично, предложено, чтобы в схеме MDCS 4:4:4 применялись TU от 8×8 до 4×4 цветности. MDCS для 4:2:2 также может быть выполнена только в горизонтальном или вертикальном направлениях, и чтобы диапазоны углов моли отличаться для цветности 4:4:4 по сравнению с яркостью 4:4:4, и по сравнению с цветностью 4:2:2, и по сравнению с яркостью 4:2:2, по сравнению с яркостью 4:2:0.
Фильтры в контуре
Удаление блоков
Удаление блоков применяется для всех границ CU, PU и TU, и форма CU/PU/TU не учитывается при этом. Сила и размер фильтра зависят от локальной статистики, и удаление блоков имеет гранулярность пикселей яркости 8×8.
Следовательно, предполагается, что текущее удаление блоков, применяемое для схемы 4:2:0, также должно быть применимо для схем 4:2:2 и 4:4:4.
Смещение, адаптивное к выборке
При смещении, адаптивном к выборке (SAO), каждый канал является полностью независимым. SAO разделяет данные изображения для каждого канала, используя квадродерево, и полученные в результате блоки имеют, по меньшей мере, один LCU по размеру. Листовые блоки выравнивают с границами LCU, и каждый лист может работать в одном из трех режимов, как определяется кодером ("Смещение центральной полосы", "Смещение боковой полосы" или "Смещение кромки"). Каждый лист устанавливает категорию для своих пикселей, и кодер выводит значение смещения для каждой из этих 16 категорий путем сравнения входных данных SAO с данными источника. Эти значения смещения передают в декодер. Смещение для категории декодируемых пикселей добавляют к его значению для минимизации отклонения от источника.
Кроме того, SAO включают или отключают на уровне изображения; если оно будет включено для яркости, оно также может быть отдельно включено для каждого канала цветности. SAO, поэтому, будет применяться только для цветности, если оно применяется для яркости.
Следовательно, процесс в большой степени является прозрачным для лежащей в его основе блок-схеме, и при этом ожидается, что текущее SAO, применяемое для схемы 4:2:0 также должно быть применим для схем 4:2:2 и 4:4:4.
Адаптивная фильтрация контура
В схеме 4:2:0, адаптивная фильтрация контура (ALF) отключена по умолчанию. Однако, в принципе (то есть, если разрешено), ALF может применяться ко всему изображению для цветности.
При ALF выборки яркости могут быть отсортированы на одну из многих категорий, как определено документами HEVC; в каждой категории используется разный фильтр на основе Винера.
В отличие от этого, выборки цветности 4:2:0 не разделяют на категории - здесь присутствует только один фильтр на основе Винера для Cb и один для Cr.
Следовательно, в варианте осуществления, с учетом увеличенной информации цветности, в схемах 4:2:2 и 4:4:4, предложено, чтобы выборки цветности были разделены по категориям; например на К категорий для 4:2:2 и на J категорий для 4:4:4.
В то время, как схема ALF 4:2:0 может быть отключена для яркости на основе каждого CU, используя флаг управления ALF (вплоть до уровня CU, установленного глубиной управления ALF), она может быть отключена для цветности на основе каждого изображения. Следует отметить, что в HEVC, такая глубина в настоящее время ограничена только уровнем LCU.
Следовательно, в варианте осуществления, в схемах 4:2:2 и 4:4:4 предусмотрены один или два флага управления ALF для цветности, специфичные для канала.
Синтаксис
В HEVC синтаксис уже присутствует для обозначения схем 4:2:0, 4:2:2 или 4:4:4 и обозначает уровень последовательности. Однако, в варианте осуществления предложено также обозначать кодирование 4:4:4 GBR, на этом уровне.
Сигналы данных
Следует понимать, что сигналы данных, генерируемые вариантами устройства кодирования, описанного выше, и среда сохранения или передачи, переносящая такие сигналы, рассматриваются для представления в вариантах осуществления.
Соответствующие свойства вариантов осуществления определены следующими пронумерованными пунктами:
1. Способ кодирования видеоданных, который работает в отношении изображений видеосигнала в формате 4:2:2, содержащий:
разделяют изображение, предназначенное для кодирования, на модули кодирования, модули прогнозирования и модули преобразования для кодирования, модуль кодирования представляет собой квадратный массив выборок яркости и соответствующих выборок цветности, при этом один или больше модулей прогнозирования присутствует в модуле кодирования, и один или больше модулей преобразования присутствуют в модуле кодирования; в котором модуль прогнозирования представляет собой элементарный модуль прогнозирования таким образом, что все выборки в пределах одного модуля прогнозирования прогнозируют, используя общую технологию прогнозирования, и модуль преобразования представляет собой основной модуль преобразования и квантования;
обеспечивают возможность неквадратных преобразований, с тем, чтобы обеспечить возможность использования неквадратных модулей прогнозирования; и
выбирают размеры блока модуля преобразования для совмещения с компоновкой блока модуля прогнозирования.
2. Способ по п. 1, содержащий:
обеспечивают асимметричное разделение движения, с тем, чтобы обеспечить асимметрию между двумя или больше модулями прогнозирования, соответствующими одному модулю кодирования.
3. Способ по п. 1 или 2, в котором этап выбора размеров блока модуля преобразования содержит:
детектируют свойства изображения на участке изображения, соответствующем модулю прогнозирования; и
выбирают размеры блока модуля преобразования в отношении модуля прогнозирования, таким образом, чтобы выровнять границы модуля преобразования с кромками свойств изображения на участке изображения.
4. Способ по п. 3, в котором этап выбора размеров блока модуля преобразования содержит:
выбирают размеры блока модуля преобразования для одного или больше модулей преобразования, выведенных из модуля кодирования, в соответствии с иерархией дерева разделений, определенных в отношении размера соответствующего модуля прогнозирования.
5. Способ по любому из предыдущих пунктов, в котором этап выбора размеров блока модуля преобразования содержит: выбирают размеры блока модуля преобразования из следующей таблицы, в соответствии с конфигурацией выбранных модуля кодирования и модуля прогнозирования:
где уровень 0, уровень 1 и уровень 2 представляют последовательные уровни в иерархии дерева разделений, n/а обозначает не допустимый режим, каждый размер блока представлен обозначением (горизонтальный размер) × (вертикальный размер) × (количество случаев, если применимо), и N представляет собой целое число, большее 1.
6. Способ по любому из пп. 1-4, в котором этап выбора размеров блока модуля преобразования содержит выбор размеров блока модуля преобразования из следующей таблицы, в соответствии с выбранной конфигурацией модуля кодирования и модуля прогнозирования:
где уровень 0, уровень 1 и уровень 2 представляют последовательные уровни в иерархии дерева разделений, n/a обозначает не допустимый режим, каждый размер блока представлен обозначением (горизонтальный размер) × (вертикальный размер) × (количество случаев, если применимо), и N представляет собой целое число, большее 1.
7. Способ по любому из предыдущих пунктов, содержащий этап разделения неквадратного модуля преобразования на множество квадратных модулей преобразования перед преобразованием или квантованием этого модуля преобразования.
8. Компьютерное программное обеспечение, которое, при его исполнении компьютером, обеспечивает исполнение компьютером способа в соответствии с любым из предыдущих пунктов.
9. Считываемый устройством энергонезависимый носитель информации, на котором содержится программное обеспечение по п. 8.
10. Сигнал данных, содержащий кодированные данные, генерируемые в соответствии со способом по любому из пп. 1-7.
11. Устройство кодирования видеоданных, работающее в отношении изображений видеосигнала в формате 4:2:2, содержащее:
контроллер, выполненный с возможностью разделения изображения, предназначенного для кодирования, на модули кодирования, модули прогнозирования и модули преобразования для кодирования, модуль кодирования представляет собой квадратный массив выборок яркости и соответствующих выборок цветности, при этом присутствуют один или больше модулей прогнозирования в модуле кодирования, и при этом присутствует один или больше модулей преобразования в модуле кодирования; в котором модуль прогнозирования представляет собой элементарный модуль прогнозирования таким образом, что все выборки в пределах одного модуля прогнозирования прогнозируют, используя общую технологию прогнозирования, и модуль преобразования представляет собой основной модуль преобразования и квантования для обеспечения неквадратных преобразований, так, чтобы обеспечить возможность использования неквадратных модулей прогнозирования; и для выбора размеров блока модуля преобразования, для выравнивания с компоновкой блока модуля прогнозирования.
Далее соответствующие варианты осуществления определены следующими пронумерованными пунктами:
1. Способ декодирования видеоданных, используя прогнозирование между изображениями для кодирования входных видеоданных, в которых каждый компонент цветности имеет 1/М-ую горизонтального разрешения компонента яркости и l/N-ую вертикального разрешения компонента яркости, где М и N представляют собой целые числа, равные 1 или больше, способ, содержащий:
сохраняют одно или больше изображений, предшествующих текущему изображению;
интерполируют версии с более высоким разрешением модулей прогнозирования сохраненных изображений таким образом, что компонент яркости, модулем интерполированного прогнозирования, имеет горизонтальное разрешение в Р раз большее, чем у соответствующего участка сохраненного изображения, и вертикальное разрешение, в Q раз большее, чем у соответствующего участка сохраненного изображения, где Р и Q представляют собой целые числа, большие 1;
детектируют движения между изображениями, между текущим изображением и одним или больше интерполированными сохраненными изображениями, с тем, чтобы генерировать векторы движения между модулем прогнозирования текущего изображения и областями одного или больше предыдущих изображений; и
генерируют прогнозирование с компенсированным движением модуля прогнозирования текущего изображения в отношении области интерполированного сохраненного изображения, на которое указывает соответствующий вектор движения;
в котором на этапе интерполяции:
применяют фильтр ×R горизонтальной и ×S вертикальной интерполяции для компонентов цветности сохраненного изображения, для генерирования модуля интерполированного прогнозирования цветности, где R равно (U×М×Р), и S равно (V×N×Q), U и V представляют собой целые числа, равные 1 или больше; и
выполняют подвыборку модуля интерполированного прогнозирования цветности, таким образом, что его горизонтальное разрешение делят на коэффициент U, и его вертикальное разрешение делят на коэффициент V, таким образом, получая блок MP×NQ выборок.
Следует отметить, что этап детектирования может не потребоваться в компоновке декодирования, по мере того, как декодер может использовать векторы движения, предусмотренные в них (например, как часть широкого потока данных) с помощью кодера.
2. Способ по п. 1, в котором М=2 и N=1.
3. Способ по п. 2, в котором входные видеоданные имеют формат 4:2:2.
4. Способ по п. 3, в котором модуль интерполированного прогнозирования цветности имеет высоту в выборках, в два раза большую, чем у модуля прогнозирования формата 4:2:0, интерполированного используя те же фильтры интерполяции ×R и ×S.
5. Способ по п. 2, способ выполняется отдельно, используя те же фильтры горизонтальной ×R и вертикальной ×S интерполяции, в отношении входных видеоданных 4:2:0 и входных видеоданных 4:2:2.
6. Способ по любому из предыдущих пунктов, в котором Р=4.
7. Способ по любому из предыдущих пунктов, в котором Q=4.
8. Способ по любому из предыдущих пунктов, в котором этап подвыборки модуля интерполированного прогнозирования цветности содержит: используют каждую V-ую выборку модуля интерполированного прогнозирования цветности в вертикальном направлении.
9. Способ по любому одному из предыдущих пунктов, в котором этап подвыборки модуля интерполированного прогнозирования цветности содержит: используют каждую U-ую выборку модуля интерполированного прогнозирования цветности в вертикальном направлении.
10. Способ по любому одному из предыдущих пунктов, содержащий:
выводят вектор движения яркости для модуля прогнозирования; и
независимо выводят один или больше векторов движения цветности для этого модуля прогнозирования.
11. Способ по любому из предыдущих пунктов, в котором, по меньшей мере, одно из R и S равно 2 или больше.
12. Способ по любому из предыдущих пунктов, содержащий: применяют фильтр ×R горизонтальной и ×S вертикальной интерполяции для компонентов яркости сохраненного изображения.
13. Способ по любому из предыдущих пунктов, в котором выполнение подвыборки содержит: выбирают поднабор выборок модуля интерполированного прогнозирования цветности.
14. Способ кодирования видеоданных, в котором используется прогнозирование между изображениями для кодирования входных видеоданных, в котором каждый компонент цветности имеет 1/М-ую горизонтального разрешения компонента яркости и l/N-ую вертикального разрешения компонента яркости, где М и N представляют собой целые числа, равные 1 или больше, способ, содержащий:
сохраняют одно или больше изображений, предшествующих текущему изображению;
интерполируют версии с более высоким разрешением модулей прогнозирования сохраненных изображений таким образом, что компонент яркости модуля интерполированного прогнозирования имеет горизонтальное разрешение в Р раз большее, чем у соответствующей части сохраненного изображения, и вертикальное разрешение, в Q раз большее, чем у соответствующей части сохраненного изображения, где Р и Q представляют собой целые числа больше 1;
детектируют движения между изображениями, между текущим изображением и одним или больше интерполированными сохраненными изображениями, с тем, чтобы генерировать векторы движения между модулем прогнозирования текущего изображения и областями одного или больше предыдущих изображений; и
генерируют прогнозирование с компенсированным движением модуля прогнозирования текущего изображения в отношении области интерполированного сохраненного изображения, на которое указывает соответствующий вектор движения;
в котором на этапе интерполяции:
применяют фильтр ×R горизонтальной и ×S вертикальной интерполяции к компонентам цветности сохраненного изображения, для генерирования модуля интерполированного прогнозирования цветности, где R равно (U×М×Р), и S равно (V×N×Q), U и V представляют собой целые числа, равные 1 или больше; и
выполняют подвыборку модуля интерполированного прогнозирования цветности, таким образом, что ее горизонтальное разрешение делят на коэффициент U, и ее вертикальное разрешение делят на коэффициент V, в результате, получают блок из MP×NQ выборок.
15. Компьютерное программное обеспечение, которое при исполнении в компьютере, обеспечивает выполнение компьютером способа в соответствии с любым из предыдущих пунктов.
16. Считываемый устройством энергонезависимый носитель информации, в котором содержится программное обеспечение по п. 15.
17. Сигнал данных, содержащий кодированные данные, сгенерированные в соответствии со способом по любому одному из пп. 1-14.
18. Устройство декодирования видеоданных, использующее прогнозирование между изображениями для кодирования входных видеоданных, в котором каждый компонент цветности имеет 1/М-ую горизонтального разрешения компонента яркости и l/N-ую вертикального разрешения компонента яркости, где М и N представляют собой целые числа, равные 1 или больше, устройство, содержащее:
накопитель изображения, выполненный с возможностью накопления одного или больше изображений, предшествующих текущему изображению;
интерполятор, выполненный с возможностью интерполяции более высокой версии разрешения модулей прогнозирования сохраненных изображений таким образом, что компонент яркости модуля интерполированного прогнозирования имеет горизонтальное разрешение в Р раз большее, чем у соответствующей части сохраненного изображения, и вертикальное разрешение, в Q раз большее, чем у соответствующей части сохраненного изображения, где Р и Q представляют собой целые числа, большие, чем 1;
детектор, выполненный с возможностью детектировать движение между изображениями, между текущим изображением и одним или больше интерполированными сохраненными изображениями, для генерирования векторов движения между модулем прогнозирования текущего изображения и областями одного или больше предыдущих изображений; и
генератор, выполненный с возможностью генерировать прогнозирование скомпенсированного движения модуля прогнозирования текущего изображения в отношении области интерполированного сохраненного изображения, на которое указывает соответствующий вектор движения;
в котором интерполятор выполнен с возможностью:
применять фильтр ×R горизонтальной и ×S вертикальной интерполяции к компонентам цветности сохраненного изображения, для генерирования модуля интерполированного прогнозирования цветности, где R равно (U×М×Р), и S равно (V×N×Q), U и V представляют собой целые числа, равные 1 или больше; и
для выполнения подвыборки модуля интерполированного прогнозирования цветности, таким образом, что его горизонтальное разрешение делят на коэффициент U, и его вертикальное разрешение делят на коэффициент V, в результате чего, получают блок MP×NQ выборок.
19. Устройство кодирования видеоданных, в котором используется прогнозирование между изображениями, для кодирования входных видеоданных, в котором каждый компонент цветности имеет 1/М-ую горизонтального разрешения компонента яркости и l/N-ую вертикального разрешения компонента яркости, где М и N представляют собой целые числа, равные 1 или больше, устройство, содержащее:
накопитель изображения, выполненный с возможностью сохранения одного или больше изображений, предшествующих текущему изображению;
интерполятор, выполненный с возможностью интерполяции версии с более высоким разрешением модулей прогнозирования сохраненных изображений таким образом, что компонент яркости модуля интерполированного прогнозирования имеет горизонтальное разрешение, в Р раз большее, чем у соответствующей части сохраненного изображения, и вертикальное разрешение, в Q раз большее, чем у соответствующей части сохраненного изображения, где Р и Q представляют собой целые числа, большие 1;
детектор, выполненный с возможностью детектировать движение между изображениями, между текущим изображением и одним или больше интерполированными сохраненными изображениями, таким образом, чтобы генерировать векторы движения между модулем прогнозирования текущего изображения и областями одного или больше предыдущих изображений; и
генератор, выполненный с возможностью генерировать прогнозирование со скомпенсированным движением модуля прогнозирования текущего изображения в отношении области интерполированного сохраненного изображения, на которое указывает соответствующий вектор движения;
в котором интерполятор выполнен с возможностью:
применять фильтр ×R горизонтальной и ×S вертикальной интерполяции для компонентов цветности сохраненного изображения, для генерирования модуля интерполированного прогнозирования цветности, где R равно (U×М×Р), и S равно (V×N×Q), U и V представляют собой целые числа, равные 1 или больше; и
для выполнения подвыборки модуля интерполированного прогнозирования цветности, таким образом, что его горизонтальное разрешение делят на коэффициент U, и его вертикальное разрешение делят на коэффициент V, таким образом, получая блок из MP×NQ выборок.
20. Устройство для съемки, отображения, передачи, приема и/или сохранения видеоизображения, содержащее устройство по п. 18 или 19.
название | год | авторы | номер документа |
---|---|---|---|
ПОЛУЧЕНИЕ РЕЖИМА ВНУТРЕННЕГО ПРОГНОЗИРОВАНИЯ ДЛЯ ЦВЕТОРАЗНОСТНЫХ ЗНАЧЕНИЙ | 2013 |
|
RU2603548C2 |
ЗАВИСИМЫЙ ОТ РЕЖИМА КОЭФФИЦИЕНТ СКАНИРОВАНИЯ И ПРЕОБРАЗОВАНИЕ НАПРАВЛЕНИЯ ДЛЯ РАЗНЫХ ФОРМАТОВ ДИСКРЕТИЗАЦИИ ЦВЕТА | 2013 |
|
RU2751080C2 |
ЗАВИСИМЫЙ ОТ РЕЖИМА КОЭФФИЦИЕНТ СКАНИРОВАНИЯ И ПРЕОБРАЗОВАНИЕ НАПРАВЛЕНИЯ ДЛЯ РАЗНЫХ ФОРМАТОВ ДИСКРЕТИЗАЦИИ ЦВЕТА | 2013 |
|
RU2619888C2 |
БЛОЧНОЕ АДАПТИВНОЕ КОДИРОВАНИЕ С ПРЕОБРАЗОВАНИЕМ ЦВЕТОВОГО ПРОСТРАНСТВА | 2015 |
|
RU2698760C2 |
КОДИРОВАНИЕ ФЛАГОВ КОДИРОВАННЫХ БЛОКОВ | 2013 |
|
RU2627119C2 |
ГРУППИРОВАНИЕ БИНОВ ОБХОДА ПАЛИТР ДЛЯ ВИДЕОКОДИРОВАНИЯ | 2016 |
|
RU2706877C2 |
ПАЛИТРОВОЕ ПРОГНОЗИРОВАНИЕ ПРИ КОДИРОВАНИИ ВИДЕО НА ОСНОВЕ ПАЛИТР | 2014 |
|
RU2641252C2 |
СИСТЕМЫ И СПОСОБЫ ПРИМЕНЕНИЯ ФИЛЬТРОВ ДЕБЛОКИРОВАНИЯ К ВОССТАНОВЛЕННЫМ ВИДЕОДАННЫМ | 2019 |
|
RU2768016C1 |
УСТРОЙСТВО ФИЛЬТРАЦИИ ВОССТАНОВЛЕННЫХ ВИДЕОДАННЫХ | 2019 |
|
RU2824878C2 |
СИСТЕМЫ И СПОСОБЫ ПРИМЕНЕНИЯ ФИЛЬТРОВ ДЕБЛОКИРОВАНИЯ К ВОССТАНОВЛЕННЫМ ВИДЕОДАННЫМ | 2019 |
|
RU2770650C1 |
Изобретение относится к технологиям кодирования и декодирования видеосигнала. Техническим результатом является повышение разрешения изображений за счет осуществления интерполяции прогнозирования. Предложен способ генерирования модулей прогнозирования для декодирования видеосигнала, причем способ выполняют в отношении видеосигнала форматов 4:2:0 и 4:2:2. Способ включает в себя этап, на котором генерируют модули прогнозирования текущего изображения из одного или более сохраненных изображений, предшествующих текущему изображению, при этом на этапе генерирования. Далее, согласно способу, для видеосигнала формата 4:2:0 получают отсчеты интерполированного модуля прогнозирования с использованием фильтра яркости х4 с 8 отводами, применяемого в вертикальном и горизонтальном направлениях к сохраненному модулю прогнозирования яркости, причем фильтр яркости х4 является фильтром интерполяции, четырехкратно увеличивающим разрешение, и с использованием фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, причем фильтр цветности х8 является фильтром интерполяции, восьмикратно увеличивающим разрешение. 6 н. и 4 з.п. ф-лы, 33 ил., 3 табл.
1. Способ генерирования модулей прогнозирования для декодирования видеосигнала, причем способ выполняют в отношении видеосигнала форматов 4:2:0 и 4:2:2, при этом способ содержит этапы, на которых:
генерируют модули прогнозирования текущего изображения из одного или более сохраненных изображений, предшествующих текущему изображению, при этом на этапе генерирования:
для видеосигнала формата 4:2:0 получают отсчеты интерполированного модуля прогнозирования с использованием фильтра яркости х4 с 8 отводами, применяемого в вертикальном и горизонтальном направлениях к сохраненному модулю прогнозирования яркости, причем фильтр яркости х4 является фильтром интерполяции, четырехкратно увеличивающим разрешение, и с использованием фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, причем фильтр цветности х8 является фильтром интерполяции, восьмикратно увеличивающим разрешение; а
для видеосигнала формата 4:2:2 получают отсчеты интерполированного модуля прогнозирования цветности с использованием того же фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, но используя только чередующиеся результаты для дробных положений в качестве интерполированных отсчетов в вертикальном направлении.
2. Способ по п. 1, в котором на этапе генерирования:
осуществляют доступ к отсчетам интерполированного модуля прогнозирования, на который указывает вектор движения, для генерирования прогнозирования с компенсированным движением для модуля прогнозирования текущего изображения относительно области, представленной отсчетами интерполированного модуля прогнозирования.
3. Способ по п. 1, характеризующийся тем, что его выполняют в отношении видеоданных формата 4:4:4, при этом применяют тот же фильтр цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях для генерирования отсчетов интерполированного модуля прогнозирования цветности, но только чередующиеся результаты для дробных положений используют в качестве интерполированных отсчетов в горизонтальном и вертикальном направлениях.
4. Способ по п. 2, в котором вектор движения представляет собой вектор движения с точностью до подпикселей.
5. Способ по п. 1, в котором чередующиеся результаты для дробных положений представляют собой четные результаты для дробных положений.
6. Способ генерирования векторов движения для кодирования видеосигнала, выполняемый для видеосигнала форматов 4:2:0 и 4:2:2, при этом способ содержит этапы, на которых:
генерируют векторы движения для прогнозирования модулей прогнозирования текущего изображения из одного или более сохраненных изображений, предшествующих текущему изображению, причем на этапе генерирования:
для видеосигнала формата 4:2:0 получают отсчеты интерполированного модуля прогнозирования с использованием фильтра яркости х4 с 8 отводами, применяемого в вертикальном и горизонтальном направлениях к сохраненному модулю прогнозирования яркости, причем фильтр яркости х4 представляет собой фильтр интерполяции, четырехкратно увеличивающий разрешение, и с использованием фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, причем фильтр цветности х8 представляет собой фильтр интерполяции, восьмикратно увеличивающий разрешение; а
для видеосигнала формата 4:2:2 получают отсчеты интерполированного модуля прогнозирования цветности с использованием того же фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях, но с использованием только чередующихся результатов для дробных положений в качестве интерполированных отсчетов в вертикальном направлении.
7. Машиночитаемый энергонезависимый носитель информации, на котором содержится программное обеспечение, которое при его выполнении компьютером вызывает выполнение компьютером способа по п. 1.
8. Устройство для генерирования модулей прогнозирования для декодирования видеосигнала, причем устройство действует в отношении видеосигнала форматов 4:2:0 и 4:2:2, при этом устройство содержит:
фильтр интерполяции, выполненный с возможностью генерировать модули прогнозирования текущего изображения из одного или более сохраненных изображений, предшествующих текущему изображению, посредством:
получения для видеосигнала формата 4:2:0 отсчетов интерполированного модуля прогнозирования с использованием фильтра яркости х4 с 8 отводами, применяемого в вертикальном и горизонтальном направлениях к сохраненному модулю прогнозирования яркости, причем фильтр яркости х4 представляет собой фильтр интерполяции, четырехкратно увеличивающий разрешение, и посредством применения фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, при этом фильтр цветности х8 представляет собой фильтр интерполяции, восьмикратно увеличивающий разрешение; и получения для видеосигнала формата 4:2:2 отсчетов интерполированного модуля прогнозирования цветности посредством применения того же фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, но с использованием только чередующихся результатов для дробных положений в качестве интерполированных отсчетов в вертикальном направлении.
9. Устройство для генерирования векторов движения для кодирования видеосигнала, причем устройство действует в отношении форматов 4:2:0 и 4:2:2, при этом устройство содержит:
генератор вектора движения, выполненный с возможностью генерировать векторы движения для прогнозирования модулей прогнозирования текущего изображения из одного или более сохраненных изображений, предшествующих текущему изображению, посредством:
получения для видеосигнала формата 4:2:0 отсчетов интерполированного модуля прогнозирования с использованием фильтра яркости х4 с 8 отводами, применяемого в вертикальном и горизонтальном направлениях к сохраненному модулю прогнозирования яркости, причем фильтр яркости х4 представляет собой фильтр интерполяции, четырехкратно увеличивающий разрешение, и посредством применения фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях к сохраненному модулю прогнозирования цветности, причем фильтр цветности х8 представляет собой фильтр интерполяции, восьмикратно увеличивающий разрешение; и
получения для формата 4:2:2 видеосигнала отсчетов интерполированного модуля прогнозирования цветности посредством применения того же фильтра цветности х8 с 4 отводами в горизонтальном и вертикальном направлениях, но с использованием только чередующихся результатов для дробных положений в качестве интерполированных отсчетов в вертикальном направлении.
10. Устройство для съемки, отображения, передачи, приема и/или сохранения видеоданных, содержащее устройство по п. 8.
Способ приготовления лака | 1924 |
|
SU2011A1 |
Колосоуборка | 1923 |
|
SU2009A1 |
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
Пломбировальные щипцы | 1923 |
|
SU2006A1 |
СПОСОБ КОДИРОВАНИЯ ВИДЕОСИГНАЛОВ И УСТРОЙСТВО, ПОДДЕРЖИВАЮЩЕЕ БЫСТРЫЙ АЛГОРИТМ ТОЧНОЙ МАСШТАБИРУЕМОСТИ ПО КАЧЕСТВУ | 2006 |
|
RU2340115C1 |
Авторы
Даты
2016-10-20—Публикация
2013-04-26—Подача