Кодирование и декодирование значащих коэффициентов в зависимости от параметра указанных значащих коэффициентов

Иллюстрации

Показать все

Изобретение относится к вычислительной технике. Технический результат заключается в генерировании меньшего количества кодированных данных. Способ кодирования данных для кодирования массива значений данных, в качестве наборов данных и кодов перехода для значений, не кодированных наборами данных, при этом код перехода содержит унарно кодированную часть и неунарно кодированную часть, в котором устанавливают параметр кодирования, определяющий минимальное количество битов неунарной кодированной части, где параметр кодирования находится между 0 и заданным верхним пределом; добавляют значения смещения, равные 1 или больше, к параметру кодирования, для определения минимального размера части младших значащих данных; генерируют один или больше наборов данных, указывающих положения относительно массива значений данных, для значений данных заданных диапазонов магнитуды, для кодирования значения по меньшей мере одного младшего значащего бита каждого значения данных; генерируют, из по меньшей мере части каждого значения данных, не кодированных одним или более наборами данных, соответствующие взаимодополняющие части старших значащих данных и части младших значащих данных; кодируют наборы данных в выходной поток данных. 7 н. и 8 з.п. ф-лы, 47 ил., 13 табл.

Реферат

Область техники, к которой относится изобретение

Данное раскрытие относится к кодированию и декодированию данных.

Уровень техники

Описание в разделе "Уровень техники", представленное здесь, предназначено для общего представления контекста раскрытия. Работа упомянутых здесь авторов изобретения, в той степени, как она описана в данном разделе "Уровень техники", а также аспекты описания, которые в других случаях невозможно квалифицировать, как предшествующий уровень техники на время подачи, ни в явном, ни в скрытом виде не допущены, как предшествующий уровень техники в отношении настоящего раскрытия.

Существует несколько систем сжатия и распаковки видеоданных, в которых используется преобразование видеоданных, представленных в области частоты, квантование коэффициентов в области частоты и с последующим применением некоторой формы энтропийного кодирования для квантованных коэффициентов.

Энтропию, в настоящем контексте, можно рассматривать, как представляющую содержание информации, состоящей из символов данных или последовательности символов. Цель энтропийного кодирования состоит в том, чтобы кодировать последовательность символов данных без потерь, используя (в идеале) наименьшее количество битов кодированных данных, которые необходимы для представления информационного содержания этой последовательности символов данных. На практике энтропийное кодирование используется для кодирования квантованных коэффициентов таким образом, что кодированные данные меньше (с точки зрения их количества битов), чем размер данных оригинальных квантованных коэффициентов. Более эффективная обработка энтропийного кодирования приводит к получению меньшего размера выходных данных для того же размера входных данных.

Одна из технологий для энтропийного кодирования видеоданных представляет собой, так называемую, технологию САВАС (контекстно-адаптивное двоичное арифметическое кодирование).

Раскрытие изобретения

Данное раскрытие направлено на обеспечение способа кодирования данных в соответствии с п. 1 формулы изобретения.

Дополнительные соответствующие аспекты и свойства определены в приложенной формуле изобретения.

Следует понимать, что, как представленное выше общее описание, так и следующее подробное описание изобретения являются примерными, но не ограничительными для настоящего раскрытия.

Краткое описание чертежей

Более полное понимание раскрытия и множества присущих ему преимуществ будут скорее достигнуты, по мере его лучшего понимания со ссылкой на следующее подробное описание вариантов осуществления, которое следует рассматривать совместно с приложенными чертежами, на которых:

на фиг. 1 схематично показана система передачи и приема аудио/видео (A/V) данных, с использованием сжатия и распаковки видеоданных;

на фиг. 2 схематично показана система отображения видео с использованием распаковки видеоданных;

на фиг. 3 схематично показана система накопителя аудио/видео данных, с использованием сжатия и распаковки видеоданных;

на фиг. 4 схематично показана видеокамера, в которой используется сжатие видеоданных;

на фиг. 5 схематично представлен общий обзор устройства сжатия и распаковки видеоданных;

на фиг. 6 схематично показано генерирование прогнозируемых изображений;

на фиг. 7 схематично показан наибольший модуль кодирования (LCU);

на фиг. 8 схематично показан ряд из четырех модулей кодирования (CU);

на фиг. 9 и 10 схематично поясняются модули кодирования по фиг. 8, разделенные на меньшие модули кодирования;

на фиг. 11 схематично показан массив модулей прогнозирования (PU);

на фиг. 12 схематично показан массив модулей преобразования (TU);

на фиг. 13 схематично показано частично кодированное изображение;

на фиг. 14 схематично показан набор возможных направлений прогнозирования;

на фиг. 15 схематично показан набор режимов прогнозирования;

на фиг. 16 схематично показано зигзагообразное сканирование;

на фиг. 17 схематично показан энтропийный кодер САВАС;

на фиг. 18А к 18D схематично поясняются аспекты операций кодирования и декодирования САВАС;

на фиг. 19 схематично показан кодер САВАС;

на фиг. 20 схематично показан декодер САВАС;

на фиг. 21 показана схема, представляющая общий обзор системы кодирования;

на фиг. 22 показан график скорости передачи битов, в зависимости от параметра квантования (QP);

на фиг. 23 показан график скорости передачи битов, в зависимости от PSNR зеленого канала, для тестирования шести значений битовой глубины, с включенным режимом пропуска преобразования;

на фиг. 24 показан график скорости передачи битов, в зависимости от PSNR зеленого канала, для тестирования шести значений битовой глубины, с отключенным режимом пропуска преобразования;

на фиг. 25 показан график скорости передачи битов, в зависимости от PSNR зеленого канала, для тестирования шести значений битовой глубины, с матрицами 14 битного преобразования;

на фиг. 26 показан график PSNR, в зависимости от скорости передачи битов, для одной тестовой последовательности, в которой сравнивают матрицы DCT с различной точностью;

на фиг. 27 показан график PSNR, в зависимости от скорости передачи битов, для одной тестовой последовательности, представляющий использование обходного кодирования с фиксированными битами;

на фиг. 28 показана таблица, представляющая примеры профилей кодирования;

на фиг. 29-31 схематично показаны блок-схемы последовательности операций, соответственно, поясняющие версии части обработки САВАС;

на фиг. 32A-F показаны схемы, поясняющими различные схемы выравнивания САВАС;

на фиг. 33-35 схематично показаны блок-схемы последовательности операций, соответственно, поясняющие версии каскада завершения обработки САВАС;

на фиг. 36 показана блок-схема последовательности операций, схематично поясняющая технологию кодирования;

на фиг. 37 показана блок-схема последовательности операций, схематично поясняющая технологию адаптации; и

на фиг. 38 и 39 схематично показаны блок-схемы последовательности операций, поясняющие обработку для выбора динамического диапазона преобразования и параметров точности данных.

Осуществление изобретения

Со ссылкой на чертежи, фиг. 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 представлен схематичный обзор устройства сжатия и распаковки видеоданных.

Последовательные изображения входного видеосигнала 300 подают в сумматор 310 и в блок 320 прогнозирования изображения. Блок 320 прогнозирования изображения будет описан более подробно ниже со ссылкой на фиг. 6. Сумматор 310 фактически выполняет операцию вычитания (отрицательное суммирование), состоящую в том, что он принимает входной видеосигнал 300 на входе "+" и выходной сигнал блока 320 прогнозирования изображения на входе таким образом, прогнозируемое изображение вычитают из входного изображения. Результат состоит в генерировании, так называемого, сигнала 330 остаточного изображения, представляющего разность между фактическими и проектируемым изображениями.

Одна из причин, по которой генерируют сигнал остаточного изображения, состоит в следующем. Технологии кодирования данных, которые будут описаны ниже, то есть технологии, которые применяются в сигнале остаточного изображения, проявляют тенденцию более эффективной работы, когда используется меньше "энергии" в изображении, которое должно быть кодировано. Здесь термин "эффективно" относится к генерированию меньшего количества кодированных данных; для конкретного уровня качества изображения желательно (и считается "эффективным") генерировать как можно меньше данных, насколько это практически возможно. Ссылка на "энергию" в остаточном изображении относится к количеству информации, содержащейся в остаточном изображении. Если бы прогнозируемое изображение было быть идентичным реальному изображению, разность между ними двумя (то есть остаточным изображением) могла бы содержать нулевую информацию (нулевую энергию), и было бы очень легко кодировать его с малым количеством кодированных данных. В общем, если обработка прогнозирования может быть выполнена так, чтобы она работала хорошо, ожидание состоит в том, что остаточные данные изображения будут содержать меньше информации (меньше энергии), чем входное изображение, и таким образом, было бы легче кодировать их в малое количество кодированных данных.

Данные 330 остаточного изображения подают в модуль 340 преобразования, который генерирует представление дискретного косинусного преобразования (DCT) данных остаточного изображения. Сама технология DCT хорошо известна и не будет описана здесь подробно. Однако существуют аспекты технологий, используемые в настоящем устройстве, которые будет описаны более подробно ниже, в частности, относящиеся к выбору различных блоков данных, в которых применяется операция DCT. Они будут описаны ниже со ссылкой на фиг. 7-12.

Следует отметить, что в некоторых вариантах осуществления используется дискретное синусное преобразование (DST) вместо DCT. В других вариантах осуществления может не использоваться никакое преобразование. Это может быть выполнено избирательно таким образом, что фактически выполняется обход этапа преобразования, например, под управлением команды или режима "пропустить преобразование".

Выход модуля 340 преобразования, который представляет собой набор коэффициентов преобразования для каждого преобразованного блока данных изображения, подают в блок 350 квантования. Различные технологии квантования известны в области сжатия видеоданных, в пределах от простого умножения на коэффициент масштабирования квантования, вплоть до применения сложных справочных таблиц под управлением параметра квантования. Общая цель является двойной. Во-первых, обработка квантования уменьшает количество возможных значений преобразованных данных. Во-вторых, обработка квантования может увеличивать вероятность того, что значения преобразованных данных будут равны нулю. Оба из них могут обеспечить более эффективную работу энтропийного кодирования, которая будет описана ниже, при генерировании малых количеств сжатых видеоданных.

Обработка сканирования данных применяется модулем 360 сканирования. Назначение обработки сканирования состоит в том, чтобы изменить порядок квантованных преобразованных данных, с тем, чтобы собрать вместе как можно больше возможных не равных нулю квантованных преобразованных коэффициентов, и, конечно, поэтому, чтобы собрать вместе как можно больше коэффициентов со значением ноль. Эти технологии могут обеспечить эффективное применение, так называемого, кодирования по длинам серий или аналогичных технологий. Таким образом, обработка сканирования включает в себя выбор коэффициентов из квантованных преобразованных данных, и, в частности, из блока коэффициентов, соответствующих блоку данных изображения, которые были преобразованы и квантованы, в соответствии с "порядком сканирования" таким образом, что (а) все коэффициенты будут выбраны однажды, как часть сканирования, и (b) сканирование проявляет тенденцию обеспечения требуемого изменения порядка. Технологии для выбора порядка сканирования будут описаны ниже. Один пример порядка сканирования, который может проявлять тенденцию получения полезных результатов, представляет собой так называемый порядок зигзагообразного сканирования.

Сканированные коэффициенты затем передают в энтропийный кодер (ЕЕ) 370. И снова, можно использовать различные типы энтропийного кодирования. Два примеры, которые будут описаны ниже, представляют собой варианты, так называемой, системы САВАС (контекстно-адаптивное двоичное арифметическое кодирование) и варианты, так называемой, системы CAVLC (контекстно-адаптивное кодирование переменной длины). В общих чертах, САВАС рассматривается, как обеспечивающее лучшую эффективность, и некоторые исследования показали, что оно обеспечивает 10-20% уменьшение количества кодированных выходных данных для сравнимого качества изображений, по сравнению с CAVLC. Однако считается, что CAVLC представляет гораздо меньший уровень сложности (с точки зрения его воплощения), чем САВАС. Технология САВАС будет описана ниже со ссылкой на фиг. 17, и технология CAVLC будет описана со ссылкой на фиг. 18 и 19, представленные ниже.

Следует отметить, что обработка сканирования и обработка энтропийного кодирования представлены как отдельная обработка, но фактически могут быть скомбинированы или могут обрабатываться совместно. То есть считывание данных в энтропийный кодер может происходить в порядке сканирования. Соответствующие принципы применяются к соответствующим обратным процессам, которые будут описаны ниже.

Выход энтропийного кодера 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. Другими словами, выход 460 сумматора 450 формирует выходной распакованный видеосигнал 480. На практике, дополнительная фильтрация может применяться перед выводом сигнала.

На фиг. 6 схематично иллюстрируется генерирование прогнозируемых изображений, и, в частности, операция блока 320 прогнозирования изображения.

Существует две основные модели прогнозирования: так называемое, прогнозирование внутри изображения и, так называемое, прогнозирование между изображениями или прогнозирование с компенсированным движением (МС).

Прогнозирование внутри изображения основано на прогнозировании содержания блока изображения на данных, находящихся в том же изображении. Это соответствует, так называемому, кодированию I-кадра в других технологиях сжатия видеоданных. В отличие от кодирования I-кадра, где все изображение подвергают кодированию внутри изображения, в настоящих вариантах осуществления выбор между кодированием внутри изображения и между изображениями может быть выполнен на основе от блока к блоку, хотя в других вариантах осуществления выбор все еще выполняется на основе от изображения к изображению.

При прогнозировании с компенсированным движением используется информация о движении, которая пытается определить источник в другом соседнем или расположенном рядом изображении для деталей изображения, которые должны быть кодированы в текущем изображении. В соответствии с этим, в идеальном примере, содержание блока данных изображения в прогнозируемом изображении может кодироваться очень просто, как ссылка (вектор движения), указывающая на соответствующий блок в том же или несколько другом положении в соседнем изображении.

Возвращаясь к фиг. 6, здесь показаны две соседних компоновки прогнозирования изображения (соответствуют прогнозированию внутри изображения и между изображениями), результаты которых выбраны мультиплексором 500 под управлением сигнала 510 режима, для получения блоков прогнозируемого изображения для подачи в сумматоры 310 и 450. Выбор выполняют в зависимости от того, какой из вариантов выбора обеспечивает наименьшую "энергию", (которую, как описано выше, можно рассматривать, как содержание информации, требующей кодирования), и этот вариант выбора передают, как сигналы, в кодер с кодированным выходным потоком данных. Энергия изображения, в этом контексте, может быть детектирована, например, путем выполнения тройного вычитания области двух версий прогнозируемого изображения из входного изображения, возведения в квадрат каждого значение пикселя разностного изображения, суммирования возведенных в квадрат значений, и идентификации, какая из этих двух версий приводит к повышению наименьшего среднеквадратичного значения дифференциального изображения, относящегося к этой области изображения.

Фактическое прогнозирование в системе кодирования внутри изображения выполняется на основе блоков изображения, принимаемых как часть сигнала 460, таким образом, можно сказать, что прогнозирование основано на кодированных -декодированных блоках изображения в порядке, при котором точно такое же прогнозирование может быть выполнено в устройстве распаковки. Однако данные могут быть выведены из входного видеосигнала 300, используя селектор 520 режима внутри изображения, для управления операцией блока 530 прогнозирования внутри изображения.

Для прогнозирования между изображениями блок 540 прогнозирования с компенсированным движением (МС) использует информацию движения, такую как векторы движения, выведенные блоком 550 оценки движения из входного видеосигнала 300. Такие векторы движения применяются для обработанной версии реконструированного изображения 460 с помощью блока 540 прогнозирования компенсированного движения, для генерирования блоков прогнозирования между изображениями.

Обработка, применяемая для сигнала 460, будет описана ниже. Вначале сигнал фильтруют модулем 560 фильтра. Это подразумевает использование фильтра "устранения блоков", который удаляет или, по меньшей мере, проявляет тенденцию уменьшения эффектов обработки на основе блока, выполняемой модулем 340 преобразования, и в ходе последующих операций. Кроме того, применяется фильтр адаптивного контура, используя коэффициенты, выведенные обработкой реконструированного сигнала 460 и входного видеосигнала 300. Фильтр адаптивного контура представляет собой фильтр такого типа, который при использовании известных технологий применяет коэффициенты адаптивного фильтра к данным, которые должны быть отфильтрованы. То есть коэффициенты фильтра могут изменяться в зависимости от различных факторов. Данные, определяющие, какие коэффициенты фильтра следует использовать, включены как часть кодированного выходного потока данных.

Фильтрованный выход из модуля 560 фильтра фактически формирует выходной видеосигнал 480. Его также размещают в буфер в одном или больше накопителях 570 изображения; накопитель последовательных изображений необходим для обработки прогнозирования с компенсированным движением, и, в частности, для генерирования векторов движения. Для экономии в отношении требований к накопителю, сохраненные изображения в накопителях 570 изображения могут содержаться в сжатой форме и затем могут распаковываться для использования при генерировании векторов движения. Для этого конкретного назначения может использоваться любая известная система сжатия/распаковки. Сохраненные изображения пропускают через фильтр 580 интерполяции, который генерирует версию с более высоким разрешением сохраненных изображений; в этом примере промежуточные выборки (подвыборки) генерируют таким образом, что разрешение интерполированного изображения, выводимого, используя фильтр 580 интерполяции, в 8 раз (в каждом измерении) выше, чем у изображений, сохраненных в накопителях 570 изображения. Интерполированные изображения пропускают, как входные изображения в блок 550 оценки движения и также в блок 540 прогнозирования компенсированного движения.

В вариантах осуществления предусмотрен дополнительный необязательный этап, который состоит в том, чтобы умножить значения данных входного видеосигнала на коэффициент, равный четырем, используя умножитель 600 (фактически просто путем сдвига значений данных влево на два бита), и с применением соответствующей операции деления (сдвига вправо на два бита) на выходе устройства, используя делитель или блок 610 сдвига вправо. Таким образом, что сдвиг влево и сдвиг вправо изменяют данные исключительно для внутренней операции устройства. Эта мера может обеспечить дополнительную точность расчетов внутри устройства, влияя на уменьшение ошибок, связанных с округлением данных.

Подход, в соответствии с которым изображение разделяют для обработки сжатия, будет описан ниже. На самом основном уровне, изображение, которое должно быть сжато, рассматривают, как массив блоков выборок. С целью настоящего описания, наибольший такой рассматриваемый блок представляет собой так называемый наибольший модуль 700 кодирования (LCU) (фиг. 7), которая представляет собой квадратный массив из выборок размером 64×64. Здесь описание относится к выборкам яркости. В зависимости от режима цветности, такого как 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 выборок. Кодирование выходных видеоданных происходит на основе кодирования единичной структуры.

На фиг. 11 схематично иллюстрируется массив модулей прогнозирования (PU). Модуль прогнозирования представляет собой основной модуль для переноса информации, относящейся к обработке прогнозирования изображения, или, другими словами, дополнительных данных, добавленных к энтропийно кодированным данным остаточного изображения, для формирования выходного видеосигнала из устройства на фиг. 5. В общем, модули прогнозирования не ограничены требованием квадратной формы. Они могут иметь другие формы, в частности, прямоугольную форму, формирующую половину одного из квадратных модулей кодирования, если только модуль кодирования будет больше, чем минимальный размер (8×8). Цель состоит в том, чтобы обеспечить возможность соответствия границы соседних модулей прогнозирования (настолько тесно, насколько это возможно) границе реальных объектов в изображении, таким образом, что разные параметры прогнозирования могут применяться для разных реальных объектов. Каждый модуль кодирования может содержать один или больше модулей прогнозирования.

На фиг. 12 схематично иллюстрируется массив модулей преобразования (TU). Модуль преобразования представляет собой основной модуль обработки квантования и преобразования. Модули преобразования всегда являются квадратными и могут иметь размер от 4×4 вплоть до 32×32 выборки. Каждый модуль кодирования может содержать один или больше модулей преобразования. Акроним SDIP-P на фиг. 12 обозначает, так называемое, разделение прогнозирования внутри изображения на коротком расстоянии. При такой компоновке используются только преобразования размеров, таким образом, что блок 4×N пропускают через N преобразований, и при этом входные данные преобразуют на основе ранее декодированных соседних блоков и ранее декодированных соседних строк в текущем SDIP-P.

Обработка прогнозирования внутри кадра будет описана ниже. В общих чертах, прогнозирование внутри кадров подразумевает генерирование прогнозирования текущего блока (модуля прогнозирования) выборок из ранее кодированных и декодированных выборок в одном и том же изображении. На фиг. 13 схематично иллюстрируется частично кодированное изображение 800. Здесь изображение кодируют на основе от верхнего левого до нижнего правого угла LCU. Пример LCU, кодированного частично, посредством обработки всего изображения, показан, как блок 810. Затушеванная область 820, представленная выше и слева от блока 810, уже была кодирована. Прогнозирование внутри изображения содержания блока 810 может использоваться для любой затушеванной области 820, но не может использовать не затушеванную область ниже нее.

Блок 810 представляет LCU; как описано выше, с целью обработки прогнозирования внутри изображения, и он может быть подразделен на набор меньших модулей прогнозирования. Пример модуля 830 прогнозирования показан в пределах LCU 810.

Прогнозирование внутри изображения учитывает выборки выше и/или слева от текущего LCU 810. Выборки источника, по которым прогнозируют требуемые выборки, могут быть расположены в разных положениях или направлениях относительно текущего модуля прогнозирования в пределах LCU 810. Для определения, какое направление является соответствующим для текущего модуля прогнозирования, результаты испытательного прогнозирования, основанные на каждом направлении-кандидате, сравнивают для того, чтобы определить, какое направление-кандидат приводит к результату, который находится ближе всего к соответствующему блоку входного изображения. Направление-кандидат, обеспечивающее ближайший результат, выбирают, как направление прогнозирования для этого модуля прогнозирования.

Изображение также может быть кодировано на основе "среза". В одном примере срез представляет собой расположенную горизонтально рядом друг с другом группу LCU. Но в более общих чертах, все остаточное изображение может формировать срез, или срез может представлять собой один LCU, или срез может представлять собой ряд LCU, и так далее. Срезы могут обеспечивать некоторую устойчивость к ошибкам, поскольку их кодируют, как независимые модули. Состояния кодера и декодера полностью сбрасывают на границе среза. Например, прогнозирование внутри кадра не выполняется через границы среза; границы среза с этой целью обрабатываются, как границы изображения.

На фиг. 14 схематично иллюстрируется набор возможных направлений прогнозирования (кандидатов). Полный набор из 34 направлений-кандидатов доступен для модуля прогнозирования размером 8×8, 16×16 или 32×32 выборок. Особые случаи размеров модуля прогнозирования размером 4×4 и 64×64 выборки имеют уменьшенный набор направлений-кандидатов, доступный для них (17 направлений-кандидатов и 5 направлений-кандидатов соответственно). Направления определяют путем горизонтального и вертикального смещения относительно текущего положения блока, но их кодируют, как "режимы" прогнозирования, набор из которых показан на фиг. 15. Следует отметить, что так называемый режим DC представляет простое арифметическое среднее окружающих верхней и левой выборок.

На фиг. 16 схематично иллюстрируется зигзагообразное сканирование, которое представляет собой структуру сканирования, которая может применяться модулем 360 сканирования. На фиг. 16 показана структура для примерного блока с коэффициентами преобразования 8×8, при этом коэффициент DC расположен в верхнем левом положении 840 блока, и увеличение горизонтальной и вертикальной пространственных частот, представленных коэффициентами с увеличенными расстояниями вниз и вправо от вер