КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ВИДЕОДАННЫХ
VIDEO DATA ENCODING AND DECODING

Область техники, к которой относится изобретение
Настоящее изобретение относится к кодированию и декодированию данных.
Уровень техники
Описание уровня техники, представленное в настоящем документе, приведено с целью общего представления контекста раскрытия. Объем изобретения упомянутых здесь изобретателей, описанный в разделе уровня техники, а также аспекты описания, которые не могут иначе квалифицироваться, как предшествующий уровень техники на момент подачи заявки, не являются ни прямо или косвенно признанными в качестве предшествующего уровня техники в ущерб настоящего изобретения.
Существуют несколько систем сжатия и распаковки видеоданных, которые осуществляют преобразование видеоданных в частотной области, квантование коэффициентов в частотной области и затем применяя некоторую форму энтропийного кодирования к квантованным коэффициентам.
Преобразование в пространственно-частотную область на стороне кодера соответствует обратному преобразованию на стороне декодера. Пример преобразования включают в себя, так называемое дискретное косинусное преобразование (DCT) и так называемое дискретное синусоидальное преобразование (DST). В некоторых примерах преобразования выполняются посредством умножения матрицы массива входных выборок (извлеченных из видеоданных, подлежащих кодированию) с помощью матрицы коэффициентов преобразования для генерирования частотно-преобразованных данных. Частотно-преобразованные данные преобразуются обратно в данные выборки, из которых могут быть извлечены выходные видеоданные, посредством матрично-множительного массива частотно-преобразованных данных с помощью матрицы коэффициентов обратного преобразования.
Некоторые стандарты и проекты стандартов, например, так называемые стандарты высокоэффективное видеокодирование (HEVC), определяют режимы кодирования и декодирования, в которых пространственно-частотное преобразование фактически не используется. Иногда их называют режимами "пропуск преобразования" или "транс-квант пропуском" ("транс-квант" является сокращением названия режимов "трансформация и квантование").
Раскрытие изобретения
Один из аспектов настоящего изобретения определен п. 1 формулы изобретения.
Дополнительные соответствующие аспекты и признаки определены в прилагаемой формуле изобретения.
Следует понимать, что как предшествующее общее описание, так и последующее подробное описание являются только иллюстративными, но не ограничивающими настоящее изобретение.
Краткое описание чертежей
Более полная оценка изобретения и многие его сопутствующие преимущества будут легко получены и понятны со ссылкой на последующее подробное описание вариантов осуществления, при рассмотрении совместно с прилагаемыми чертежами, на которых:
фиг. 1 схематически показывает систему аудио/видео (A/V) передачи и приема данных с использованием сжатия и распаковки видеоданных;
фиг. 2 схематично показывает систему отображения видео, используя распаковку видеоданных;
фиг. 3 схематично иллюстрирует систему хранения аудио/видео, используя сжатие и распаковку видеоданных;
фиг. 4а схематически иллюстрирует видеокамеру с использованием сжатия видеоданных;
фиг. 4b схематично иллюстрирует пример видеокамеры более подробно;
фиг. 4с схематично показывает другой пример видеокамеры;
фиг. 4d и 4е схематично показывают носители информации;
фиг. 5 представляет собой общую схему устройства сжатия и распаковки видеоданных;
фиг. 6 схематически иллюстрирует схему устройства генерирования предсказанных изображений;
фиг. 7 схематически иллюстрирует наибольшую кодирующую ячейку (LCU);
фиг. 8 схематично показывает набор из четырех кодирующих ячеек (CU);
фиг. 9 и 10 схематически иллюстрируют кодирующие ячейки, изображенные на фиг. 8, дополнительно разделенные на более мелкие кодирующие ячейки;
фиг. 11 схематически иллюстрирует массив блоков предсказания (PU);
фиг. 12 схематически иллюстрирует массив блоков преобразования (TU);
фиг. 13 схематически иллюстрирует массив выборок;
фиг. 14 схематически иллюстрирует массив частотно-разделенных коэффициентов;
фиг. 15 схематически иллюстрирует тенденцию в пределах массива на фиг. 14;
фиг. 16 схематически иллюстрирует процесс обратного сканирования;
фиг. 17а-17с схематически иллюстрируют способы округления;
фиг. 18 схематично изображает RDOQ устройство;
фиг. 19а и 19b схематически иллюстрируют процесс функционирования устройства, показанного на фиг. 18;
фиг. 20 схематически иллюстрирует часть кодера;
фиг. 21 и 22 схематично иллюстрируют операцию RDPCM;
фиг. 23а и 23b схематично иллюстрируют тенденции в массивах RDPCM данных;
фиг. 24а и 24b схематично иллюстрируют изменения в порядке сканирования для вертикально кодированных RDPCM данных;
фиг. 25а и 25b схематично иллюстрируют изменения в порядке сканирования для горизонтально кодированных RDPCM данных;
фиг. 26а и 26b схематично иллюстрируют изменения в порядке сканирования RDPCM данных, подвергнувшиеся межкадровому кодированию;
фиг. 27 показывает блок-схему алгоритма, иллюстрирующую способ обработки;
фиг. 28 схематически показывает часть декодера;
фиг. 29-31 представляют собой схематические блок-схемы алгоритма, показывающие аспекты работы кодера и/или декодера;
фиг. 32 схематически показывает часть кодера и/или декодера, работающего в отношении блоков, обработанных посредством внутрикадрового кодирования;
фиг. 33 схематически показывает часть кодера и/или декодера, работающего в отношении блоков, обработанных посредством межкадрового кодирования;
фиг. 34 схематически показывает часть кодера и/или декодера, работающего в отношении блоков обработанных посредством внутрикадрового кодирования;
фиг. 35 схематически показывает часть кодера и/или декодера, работающего в отношении блоков обработанных посредством межкадрового кодирования;
фиг. 36 схематически показывает блок dc значений;
фиг. 37а схематически иллюстрирует блок, показанный на фиг. 36, после горизонтального DPCM процесса;
фиг. 37b схематически иллюстрирует блок, показанный на фиг. 37а, после операции вращения;
фиг. 38а схематически иллюстрирует блок, показанный на фиг. 36, после вертикального DPCM процесса;
фиг. 38b схематически иллюстрирует блок, показанный на фиг. 38а, после операции вращения;
фиг. 39 схематически показывает часть операции кодера;
фиг. 40 схематически иллюстрирует часть работы декодера; и
фиг. 41а и 41b схематично иллюстрируют изменения в порядке обработки.
Осуществление изобретения
Обратимся теперь к чертежам, на фиг. 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.
Следует принять во внимание, что сжатый или кодированный сигнал и носитель информации или данных, хранящий этот сигнал, рассматриваются в качестве вариантов осуществления изобретения. Делается ссылка на фиг. 4d и 4е, описанные ниже.
Фиг. 4а схематически иллюстрирует видеокамеру, использующую способ сжатия видеоданных. На фиг. 4а и устройство 180 захвата изображения, такое как формирователь сигналов изображения устройства с зарядовой связью (CCD) и ассоциированное электронное устройство управления и считывания, генерирует видеосигнал, который поставляется в устройство 190 сжатия. Микрофон (или множество микрофонов) 200 генерирует звуковой сигнал, который будет поставлен в устройство 190 сжатия. Устройство 190 сжатия генерирует сжатый аудио/видеосигнал 210 для хранения и/или передачи (показан схематически как 220).
Способы, которые будут описаны ниже, относятся, главным образом, к способу сжатия видео данных. Следует принять во внимание, что многие существующие способы могут быть использованы для сжатия аудио данных совместно со способами сжатия видеоданных, которые будут описаны, для генерирования сжатого аудио/видеосигнала. Соответственно, не будет предоставляться отдельное описание процесса сжатия аудио данных. Следует также иметь в виду, что скорость передачи данных, а именно, передачи видеоданных, в частности, при вещании данных, как правило, намного выше, чем скорость передачи аудио данных (будь то сжатые или нет). Поэтому следует понимать, что несжатые аудио данные могут быть переданы совместно со сжатыми видеоданными, чтобы сгенерировать сжатый аудио/видеосигнал. Следует дополнительно иметь в виду, что, хотя настоящее примеры (показанные на фиг. 1-4е) относятся к аудио/видео данным, способы, которые будут описаны ниже, могут найти применение в системе, которая просто обрабатывает (то есть, сжимает, распаковывает, хранит, отображает и/или передает) видеоданные. То есть, варианты осуществления могут применяться к способу сжатия видеоданных без необходимости обрабатывать любые ассоциированные аудио данные.
Фиг. 4b схематически иллюстрирует пример устройства 183 видеокамеры более подробно. Признаки, пронумерованные также на фиг. 4а, не будут дополнительно описаны далее. На фиг. 4b приведен пример камеры, показанной на фиг. 4а (в случае, когда блок 220, показанный на фиг 4а, обеспечивает возможность хранения данных), в котором сжатые данные сначала буферизуются буфером 221, и затем хранятся на носителе 222 информации, таком как магнитный диск, оптический диск, флэш-память, так называемый твердотельный накопитель (SSD) или тому подобное. Обратите внимание, что компоновка, показанная на фиг. 4b, может быть реализована в виде одного (физического) блока 182.
Фиг. 4с схематично иллюстрирует другой пример видеокамеры, в котором, вместо схемы хранения данных, показанной на фиг. 4b, используется сетевой интерфейс 223, чтобы обеспечить передачу сжатых данных на другое устройство (не показано). Сетевой интерфейс 223 может также обеспечить поступление входных данных, принятых с помощью видеокамеры, таких как данные управления. Обратите внимание, что схема компоновки, показанная на фиг. 4b, может быть реализована в виде одного (физического) блока 183.
Фиг. 4d и 4е схематично показывают носители информации, например, для использования в качестве носителя 222 информации и переноски сжатых данных, которые сжаты в соответствии со способами сжатия, описанные в настоящей заявке. Фиг. 4d показывает схематический пример съемного энергонезависимого носителя 225 информации, выполненного в виде твердотельной памяти, такой как флэш-память. На фиг. 4е показан схематический пример съемного энергонезависимого носителя 226 информации, выполненного в виде диска-носителя информации, такого как оптический диск.
На фиг. 5 приведена общая схема устройства сжатия и распаковки видеоданных.
Последовательные изображения входного видеосигнала 300 поступают на сумматор 310 и в предсказатель 320 изображения. Предсказатель 320 изображения будет описан ниже более подробно со ссылкой на фиг. 6. Сумматор 310 на самом деле выполняет операцию вычитания (отрицательное сложение), так как он принимает входной видеосигнал 300 на "+" входа и выходной сигнал предсказателя 320 изображения на "-" входа, так что предсказанное изображение вычитается из входного изображения. В результате, генерируется так называемый разностный сигнал 330 изображения, представляющий собой разницу между фактическим и проецируемым изображением.
Одной из причин, почему генерируется разностный сигнал изображения, является следующая причина. Способы кодирования данных, которые будут описаны, то есть, способы, которые будут применяться к разностному сигналу изображения, как правило, более эффективно работают при наличии меньшей "энергии" в изображении, подлежащего кодированию. В данном случае, термин "эффективно" относится к генерированию небольшого количества кодированных данных; для определенного уровня качества изображения, причем желательно (и считается "эффективным") генерировать как можно меньше данных, как это практически возможно. Ссылка на "энергию" в разносном изображении относится к количеству информации, содержащейся в остаточном изображении. Если предсказанное изображение должно были быть идентично реальному изображению, разница между этими двумя (то есть, разностное изображение) будет содержать нулевое количество информации (нулевую энергию) и будет очень легко закодировано в небольшое количество закодированных данных, В общем случае, если процесс предсказания может быть сделан достаточно хорошо, то ожидается, что данные разностного изображения будут содержать меньшее количество информации (меньше энергии), чем входное изображение, и так будет легче кодировать в небольшое количество закодированных данных.
Данные 330 разностного изображения подаются в блок 340 преобразования, который генерирует представление дискретного косинусного преобразования (DCT) данных разностного изображения. Сама DCT технология хорошо известна и не будут описана здесь подробно. Существуют, однако, аспекты способов, используемых в данном устройстве, которые будут описаны более подробно ниже, в частности, относящиеся к выбору различных блоков данных, к которым применяется DCT операция. Они будут описаны со ссылкой на фиг. 7-12 ниже.
Следует отметить, что в некоторых вариантах осуществления используется дискретное синусное преобразование (DST) вместо DCT. В других вариантах осуществления преобразования могут быть не использованы. Это можно сделать выборочно, таким образом, чтобы иметь возможность, по сути, обходить этап преобразования, например, в соответствии с командой и режимом "пропуск преобразования".
Выходной сигнал блока 340 преобразования, который вырабатывает набор коэффициентов преобразования для каждого блока преобразования данных изображения, подается в квантователь 350. Различные способы квантования известны в области сжатия видеоданных, начиная от простого умножения на коэффициент масштабного квантования путем применения сложных таблиц поиска под управлением параметра квантования. Общая цель двояка. Во-первых, процесс квантования уменьшает количество возможных значений преобразованных данных. Во-вторых, процесс квантования может увеличить вероятность того, что значения преобразованных данных равны нулю. Оба они могут выполнить процесс энтропийного кодирования более эффективно при генерировании небольших объемов сжатых видеоданных.
Контроллер 345 управляет работой блока 340 преобразования и квантователя 350 (и их соответствующих обратных блоков), в соответствии со способами, которые будут обсуждаться ниже. Следует отметить, что контроллер 345 может также управлять другими аспектами процесса функционирования устройства, показанного на фиг. 5.
Процесс сканирования данных применяется блоком 360 сканирования. Целью процесса сканирования является изменение порядка квантованных преобразованных данных таким образом, чтобы собрать как можно больше ненулевых квантованных преобразованных коэффициентов вместе и, конечно, поэтому собрать как можно большее количество коэффициентов с нулевым значением вместе. Эти признаки могут позволить применять так называемое кодирование по длинам серии или аналогичные способы эффективно. Таким образом, процесс сканирования включает в себя выбор коэффициентов из квантованных преобразованных данных и, в частности, из блока коэффициентов, соответствующих блоку данных изображения, которые были преобразованы и квантованы, в соответствии с "порядком сканирования", так что (а) все коэффициенты выбираются один раз как часть процесса сканирования, и (b) процесс сканирования, как правило, обеспечивает желаемое изменение порядка следования. Одним из примеров порядка сканирования, который может, как правило, дать полезные результаты, является так называемый зигзагообразный порядок сканирования.
Сканированные коэффициенты затем поставляются в энтропийный кодер (ЕЕ) 370. Опять же, могут быть использованы различные типы энтропийного кодирования. Два примера являются вариантами, так называемой САВАС (Контекстно-адаптивное двоичное арифметическое кодирование) системы, и вариантами, так называемой (Контекстно-зависимое адаптивное кодирование с переменной длиной кодового слова) системы CAVLC. В общих чертах, САВАС используется для обеспечения лучшей эффективности, и в некоторых исследованиях было показано, что данная система обеспечивает снижение на 10-20% количества кодированных выходных данных для сравнимого качества изображения по сравнению с CAVLC. Тем не менее, 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. В простых терминах, выход 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 сдвига вправо. Таким образом, смещение влево и сдвиг вправо изменяет данные исключительно для внутренней работы устройства. Эта мера может обеспечить более высокую точность вычислений в устройстве, поскольку снижается эффект возникновения каких-либо ошибок при округлении данных.
Далее приведено описание способа, в котором изображение разделяется для обработки сжатия. На базовом уровне изображение, которое будет сжато, рассматривается как массив блоков выборок. Для целей настоящего обсуждения самый большой такой блок называется наибольшим блоком кодирования (LCU) 700 (фиг. 7), который представляет собой квадратный массив из 64×64 выборок. Здесь, обсуждение относится к отсчетам сигнала яркости. В зависимости от выбранного режима цветности, таких как 4:4:4, 4:2 2, 4:2:0 или 4:4:4:4 (GBR плюс ключевые данные), будет рассматриваться различное количество соответствующих выборок цветности, соответствующих блоку яркости.
Будут описаны три основных типа блоков: блоки кодирования, блоки предсказания и блоки преобразования. В общих чертах, рекурсивное подразделение LCUs позволяет входному изображению быть разделенным таким образом, что оба размера блока и параметры блока кодирования (например, режим предсказания или разностного кодирования) могут быть установлены в соответствии с конкретными характеристиками изображения, подлежащее кодированию.
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 схематически иллюстрирует массив выборок. Они, на самом деле, представляют собой выборки разностного изображения 330, описанного выше, и показаны на их соответствующих относительных пространственных позициях, которое является выборкой 800, которая находится в верхнем левом углу массива 4×4 соседних выборок, и выборкой 810, которая находится в нижнем правом углу такого массива, по отношению к позициям этих выборок в пределах изображения.
Конечно, необходимо иметь в виду, что 4×4 массив на фиг. 13, является только примером; способы и атрибуты, обсуждаемые здесь, могут применяться к массивам различных размеров, таких как 8×8, 16×16, 32×32 и так далее.
Выборки, показанные на фиг. 13, обрабатываются блоком 340 преобразования для генерации частотно-разделенных коэффициентов. Фиг. 14 схематически иллюстрирует массив таких частотно-разделенных коэффициентов. Здесь позиция коэффициента в массиве соответствует пространственным частотам, соответствующим этому коэффициенту. По соглашению, так называемый DC коэффициент 820 занимает верхнюю левую позицию массива. Движение в направлении вправо в массиве, как показано на фиг. 14, указывает на увеличение горизонтальной частотной составляющей, и перемещение по направлению к нижней части массива, как показано на фиг. 14, указывает на увеличение вертикальной частотной составляющей. Обратите внимание, что, хотя это просто соглашение для представления массива коэффициентов таким образом (а не, например, имеющие DC коэффициент в правом нижнем углу), упорядочение коэффициентов имеет технически отношение к другим частям процесса, Одна из причин этого схематично иллюстрируется прерывистой линией стрелки 830 на фиг. 14, что указывает на перемещение от нижнего правого угла к левой верхней позиции внутри массива, показанного на фиг. 14, что соответствует в целом увеличению значения коэффициентов для восстановления изображения. То есть, чтобы восстановить массив или блок выборок, как показано на фиг. 13, наиболее важным из коэффициентов, показанный на фиг. 14, является DC коэффициент 820, с точки зрения важности наименьших горизонтальных и вертикальных частотных коэффициентов.
В общих чертах, эта тенденция важности может также соответствовать тенденции с точки зрения величины коэффициента, тем, что величина DC коэффициента может, как правило, быть самой большой в пределах набора коэффициентов, полученных из блока выборки. Фиг. 15 схематически иллюстрирует такую тенденцию в массиве, показанном на фиг. 14, в которой наименьшие значения имеют тенденцию перемещаться в направлении нижней правой части массива и наибольшие значения имеют тенденцию перемещаться в сторону верхней левой части массива. Конечно, конкретный индивидуальный массив коэффициентов может отличаться от этой общей тенденции.
Один из способов, в которых рассмотренные выше тенденции соответствуют техническим требованиям, относится к этапу энтропийного кодирования, выполняемого энтропийным кодером 370, как показано на фиг. 5. Общий принцип, применяемый к этому типу энтропийного кодирования, заключается в том, что он работает более эффективно, обрабатывая данные с меньшой величиной значений в пределах блока до обработки данных с наибольшими значениями. Соответственно, в случае, когда частотно-разделенные коэффициенты подвергаются энтропийному кодированию (используя или не используя этап квантования), используется так называемый шаблон "обратного сканирования" для выбора данных в соответствующем порядке энтропийного кодирования. Фиг. 16 схематически показывает пример обратного сканирования. Этот пример относится к так называемому процессу обратно-диагонального сканирования, который начинается с коэффициента 840 в нижнем правом углу массива коэффициентов и прогрессирует до DC коэффициента 820 в соответствии с показанным шаблоном диагонального сканирования. Этот шаблон означает, что, вообще говоря, коэффициенты меньших значений кодируются перед коэффициентами наибольших значений. Это является примером энтропийного кодера, работающего во втором режиме для применения порядка обработки, начиная с позиции массива, соответствующего самой высокой частотной составляющей, и заканчивая на позиции массива, соответствующей наименьшей частотной составляющей.
Порядок, в котором обрабатываются коэффициенты, также имеет отношение к процессу, который называется скорость-искажение оптимизированного квантования (RDOQ). Чтобы объяснить это, во-первых, некоторые аспекты процесса квантования будут описаны, и затем будет приведено описание RDOQ системы.
В вариантах осуществления квантование применяется в качестве деления величин коэффициентов (признаки коэффициента сохраняются отдельно) в блоке преобразования (TU) посредством делителя qStep квантования, полученного из параметра квантования, применимого к этому блоку Qp, в соответствии с:
qStep = baseQStep [Qp% 6] << Int (Qp / 6)
При этом знак % процента указывает на функцию модулей, так что А % В равно остатку, когда величина А делится на значение В. Знак « указывает на сдвиг бита влево на заданную величину после « знака, так что, например, « 3 представляет собой сдвиг влево на три битовых позиций. Переменная baseQStep является функцией индекса в диапазоне от 0 до 5, представленная посредством Qp% 6. Таким образом, (потенциально) другое значение baseQStep применяется в соответствии с соответствующим индексом Qp% 6. Функция Int указывает на целое число.
Для простоты расчета, обратная величина baseQStep предварительно вычислена в некоторых вариантах осуществления кодера, и сдвинута влево на число бит, например, 14 бит, чтобы задать значения inverseQStep, которые затем умножается на величины коэффициента. Смысл данной операции заключается в том, что операции умножения более просты в реализации в некоторых вариантах осуществления, чем операций деления.
Это задает комбинированную операцию следующим образом:
Выход = ((вход × inverseQStep) + округление)>> qBits
где qBits = 14 + Int (Qp / 6) + transformShift
Здесь transformShift представляет собой компенсацию какого-либо дополнительного смещения, введенного в процессе DCT.
В некоторых вариантах осуществления, так называемые списки масштабирования используются в качестве дополнительного механизма для изменения степени квантования, применимых к различным коэффициентам в TU. Каждая позиция коэффициента ассоциирована с соответствующим элементом в списке масштабирования. Значение списка масштабирования используется для изменения делителя квантования. В некоторых вариантах осуществления значение списка масштабирования двоичного 16 соответствует отсутствию изменений, которые означают статус делителя без изменений. В некоторых вариантах осуществления список значений масштабирования используются для изменения inverseQStep значения, используемое в вышеупомянутых уравнениях так что:
inverseQStep = (inverseQStep << 4) / значение списка масштабирования
Переменная "округления" была введена ранее. Перед правым сдвигом на qBits, значение добавляется для того, чтобы округлить окончательный результат. Округление может быть применено с помощью ряда способов. Фиг. 17а-17с схематически иллюстрируют пример способов округления. Обратите внимание, что эти диаграммы показывают типичную точку округления 0,5, но могут использоваться другие точки округления. Фиг. 17а схематически иллюстрирует так называемый положительный результат округления, при котором значение, которое находится между двумя целыми числами, округляется до большей из двух окружающих целых чисел. Фиг. 17b схематически иллюстрирует так называемое округление к бесконечности, в котором значение, которое находится между двумя целыми числами, округляется до ближайшего целого числа более высокого значения. Фиг. 17с схематически иллюстрирует, так называемое округление до ближайшего четного, в котором значение, которое находится между двумя целыми числами, округляется до ближайшего четного целого. Обратите внимание, что округление до ближайшего четного не используется в вариантах осуществления HEVC системы.
Все эти примеры являются примерами обычного округления. В качестве альтернативы может быть использован RDOQ. Этот способ предназначен для выбора режима округления, основанного на оценке функции стоимости, чтобы стремиться к достижению минимальной стоимости для выбранного режима, в котором стоимость зависит как от точности, достигаемой, используя режим округления, так и от числа битов, необходимых для кодирования данных, округляемых в соответствии с этим режимом округления.
Фиг. 18 схематически показывает RDOQ устройство, содержащее тестер 850, который выполняет тесты различных режимов округления, как описано ниже, и селектор 860, который выбирает режим округления, обеспечивающий самую низкую функцию стоимости. Следует отметить, что на практике эти функции могут быть выполнены с помощью контроллера 345. Фиг. 19а и 19b схематически иллюстрируют работу устройства, показанного на фиг. 18 и будет описан ниже.
Как уже упоминалось, RDOQ можно использовать вместо обычного округления, так что RDOQ способы и устройства, описанные здесь, могут быть реализованы, как часть квантователя 350, возможно, под управлением контроллера 345 для обеспечения работы в соответствии с RDOQ для этого квантователя 350. Этапы для TU заключаются в следующем:
Для каждой величины X квантованного коэффициента, кандидаты целых чисел определяются следующим образом:
1
2
X = Int (X) и Х=Int (X)+1, если (Х% 1)>0,5
1
2
X = Int (X) - 1 и Х = Int (X), в противном случае
2
0
0
Если Х меньше, чем 3, то обеспечивается третий кандидат Х. Х имеет значение 0.
0
Если X меньше 0,5, то выбирается Х. В противном случае, для каждого из кандидатов целых чисел вычисляется абсолютная погрешность (погрешность (Xi)) от истинного значения X, оценивается количество битов, требуемых для кодирования кандидата, и функция стоимости каждого кандидата Xi рассчитывается как:
2
Стоимость (Xi) = ((ошибка (Xi) << qBits) × errorScale) + (биты (Xi) × lambda)
Здесь, errorScale является применяемым коэффициентом масштабирования, который взвешивается относительно квадрата ошибки, и lambda является применяемым коэффициентом масштабирования, как взвешивание по отношению к оценке числа битов.
Выбирается кандидат с самой низкой стоимостью. Это дает пример управления селекцией операции округления посредством квантователя из двух или более кандидатов операций округления.
1
2
1
2
2
1
2
1
Фиг. 19а и 19b схематически показывают примеры значений погрешности, в случае, когда X=3 и Х=4 (фиг. 19а) и в случае, когда X=2 и Х=3 (фиг. 19b). В обоих из этих примерах иллюстраций, Х, очевидно, является наилучшим выбором из всего, с точки зрения минимизации числа ошибок, но X требует меньшего количества битов, чем Х для кодирования, то X, на самом деле, может быть лучшим выбором в целом. Этот выбор определяется путем вычисления функции стоимости.
Для каждой группы коэффициентов в TU стоимость рассчитывается для случая, когда все коэффициенты квантуются к 0. Если это меньше, чем общая стоимость кодирования группы, то все 16 коэффициентов заменяются на 0.
L
L
TU сканируется в обратном порядке сканирования, что соответствует порядку энтропийного кодирования, как описано выше. Для каждого коэффициента X, вычисляется стоимость С, имеющая X в качестве последнего ненулевого коэффициента в TU. Коэффициент X с наименьшей стоимостью С выбирается так, чтобы быть последним. Осуществляется проверка, где X не может предшествовать (в порядке сканирования) любому коэффициенту с магнитудой больше 1.
Фиг. 20 схематически иллюстрирует часть кодера и представляет собой модификацию работы блока 340 преобразования, показанного на фиг. 5. Обратите внимание, что соответствующее изменение будет предоставлено посредством блока 430 обратного преобразования.
Селектор 900, который фактически может быть реализован как часть функциональных возможностей контроллера 345, предусмотрен для выбора (используя схематический переключатель 910) трех режимов работы, а именно режима, в котором используется частотное преобразование (маршрутизация данных через блок 340 преобразования), режима пропуска преобразования, в котором преобразования не используется, и так называемого RDPCM (дифференциальная импульсно-кодовая модуляция) режима, используя RDPCM блок 342. Данные, которые были обработаны с помощью любого из трех маршрутов, объединяются с помощью выходного мультиплексора 920. Следует отметить, что селектор 900 может также управлять частью рабочего процесса энтропийного кодера 370; этот признак будет дополнительно описан ниже. Отметим также, что операция преобразования может быть опущена в так называемом транс-квант обходном режиме, в котором не выполняется как процесс преобразования, так и операции квантования.
Фиг. 21 и 22 схематично иллюстрируют операцию RDPCM. Операция применяется к блоку разностных данных 330, пример которой схематично показан на фиг. 21. Фиг. 21 показывает пример использования блока 4×4 выборки, но способы применимы и к другим размерам блоков. Каждой выборке в блоке присваивается уникальная буквенная ссыпка от А до Р, так что эффект процесса RDPCM может быть проиллюстрирован на фиг. 22.
RDPCM может применяться по горизонтали (слева направо) или по вертикали (сверху вниз). На фиг. 22 схематически показан горизонтальный процесс RDPCM, но следует понимать, что те же способы применимы к вертикальному процессу.
Как показано на фиг 22, левая колонка выборки (А, Е, I, М) остается неизменной в процессе кодирования. После этого, каждая последующая выборка вдоль ряда закодирована в виде разницы между этой выборкой и восстановленной версией выборки слева от нее. Здесь термин "восстановленный" относится к значению выборки после того, как она была закодирована и затем декодирована (так, что кодирование и декодирование работают относительно доступных данных для декодера). Звездочка (*) используется для обозначения восстановленной версии выборки таким образом, что, например, В* представляет собой восстановленную версию выборки В. Таким образом, выборка В кодируется значением (В-А*), выборка К кодируется значением (K-J*) и так далее.
RDPCM кодирование может быть использовано при внутрикадровом кодировании или при межкадровом кодировании изображений. В примерах HEVC системы, при внутрикадровом кодировании, используется горизонтальное RDPCM в режиме горизонтального предсказания, который, в свою очередь, определяет порядок сканирования, как обратное вертикальное сканирование, и используется вертикальное RDPCM в режиме вертикального предсказания, который снова, в свою очередь, определяет порядок обратного горизонтального сканирования. При межкадровом кодировании изображений, может быть выбран либо горизонтальный, или вертикальный RDPCM (например, посредством блока 345 управления в ответ на результат вычисления функции стоимости), и режим сканирования является всегда обратно диагональным.
Фиг. 23а и 23b схематично иллюстрируют тенденции в RDPCM массивах кодируемых данных. В частности, фиг. 23а относится к горизонтальному RDPCM кодированию, и схематично иллюстрирует тот факт, что левая колонка 930 данных кодируются без изменений (и поэтому может иметь любое значение), и затем остальные данные, как правило, имеют более низкие значения, поскольку они представляют собой только разностные величины. На фиг. 23b схематически иллюстрируется случай для вертикального RDPCM кодирования, в котором самая верхняя строка 940 из значений данных кодируется без изменений, в то время, как остальные значения данных представлены разностными значениями, которые будут иметь тенденцию быть ниже по величине.
Важным аспектом данных RDPCM относится к зависимости элементов закодированных данных от ранее закодированных элементов данных. В частности, каждый столбец выборок в горизонтальном RDPCM не может быть закодирован или декодирован без восстановленных значений столбца, расположенного непосредственно слева, и каждая строка выборки в вертикальном RDPCM не может быть закодирована или декодирована без восстановленных значений строки выборки, расположенной непосредственно выше строки. Таким образом, так как не обязательно ограничивать многие аспекты работы кодера или декодера, в настоящих вариантах осуществления рассматривается данная зависимости, которая фактически может помешать успешному использованию системы RDOQ, описанная выше. Далее будет приведено описание таковых причин.
RDOQ основывается на операции сканирования блока данных, используя один и тот же порядок сканирования, что и применяемый посредством функции энтропийного кодирования. Предполагается, что используется обычное обратное направление сканирования, это будет означать, что процесс RDOQ потребует доступа к значениям данных, которые еще не доступны, потому что каждое значение данных имеет цепочку зависимости в массиве по направлению влево (в случае горизонтальной RDPCM) или вверх (в случае вертикального RDPCM).
Одним из путей решения этой задачи может служить простое изменение порядка, в котором выполняется операция RDPCM, так что операция вертикального RDPCM начинается с нижнего ряда и перемещается вверх, и операция горизонтального RDPCM начинается с правой колонки и перемещается влево. Тем не менее, такая схема работы не считается желательной, особенно в случае внутрикадрового предсказания, в котором левая колонка и верхний ряд выборки считаются наиболее надежными, и что они представляют пространственные позиции, которые находятся ближе всего к позициям изображения, чьи опорные выборки предсказаны. Соответственно, вместо того, чтобы, изменить порядок энтропийного кодирования, предполагается в свою очередь порядок обработки RDOQ. Эта операция изменения будет описана ниже.
Фиг. 24а и 24b схематично иллюстрируют изменения в порядке сканирования для вертикально закодированных данных RDPCM в случае внутрикадрового кодирования изображения. В частности, на фиг. 24а схематически иллюстрируется обратный горизонтальный порядок сканирования, в котором числа 1..16, в указанном порядке, иллюстрируют последовательные позиции сканирования, начиная с нижней правой позиции сканирования. Порядок сканирования, показанный на фиг. 24а, как правило, применяется к блоку данных, имеющих вертикальное направление предсказания. Однако, если используется RDPCM, используется прямой горизонтальный порядок сканирования, как показано на фиг. 24b, начиная с верхнего левого положения сканирования.
Фиг. 25а и 25b схематично иллюстрируют изменения в порядке сканирования для горизонтально закодированных данных RDPCM. В частности, на фиг. 25а схематически изображается вертикальный обратный порядок сканирования, в котором числа 1..16, в указанном порядке, иллюстрируют последовательные позиции сканирования, снова начиная с нижней правой позиции сканирования. Порядок сканирования, показанный на фиг. 25а, как правило, применяется к блоку данных, имеющие горизонтальное направление предсказания. Однако, если используется RDPCM, используется прямой вертикальный порядок сканирования, как показано на фиг. 25b, начиная с верхнего левого положения сканирования.
Фиг. 26а и 26b схематично иллюстрируют изменения в порядке сканирования при межкадровом кодировании данных RDPCM, в случае внутрикадровом кодировании изображения. В частности, на фиг. 26а схематически иллюстрирует обратный диагональный порядок сканирования, в котором числа 1..16, в указанном порядке, иллюстрируют последовательные позиции сканирования, начиная с нижней правой позиции сканирования. Порядок сканирования, показанный на фиг. 26а, как правило, применяется к блоку данных с использованием межкадрового кодирования изображения. Однако, если используется RDPCM, то используется порядок диагонального сканирования, как показано на фиг. 26b, начиная с верхнего левого положения сканирования.
Общим признаком всех порядков сканирования, показанных на фиг. 24b, 25b и 26b, является то, что при любой позиции сканирования в пределах порядка прямого сканирования, предшествующие сканированные значения данных (представлены меньшим числом в порядке сканирования) всегда доступны, будучи уже закодированными и декодированными системой RDPCM. Другими словами, для любого значения данных RDPCM в порядке обработки, значение данных RDPCM не имеют зависимости от значения данных RDPCM в последующем порядке обработки. Соответственно, с помощью порядка прямого сканирования, а не обратном порядке сканирования, когда RDPCM используется, RDOQ может все еще работать даже с данными RDPCM.
На фиг. 27 показана блок-схема алгоритма способа, иллюстрирующая способ обработки, включающая в себя этапы теста кодирования блока данных на этапе 1000, включающий в себя использование RDPCM кода и прямой порядок сканирования, как уже говорилось выше, применяя процесс RDOQ на этапе 1010, и на этапе 1020 кодирование блока с использованием режима кодирования, выбранного с помощью процесса RDOQ. Другими словами, RDOQ используется с DPCM кодированными данными (например, данные RDPCM, или в альтернативных вариантах осуществления могут быть использованы и другие типы данных DPCM, то есть, в котором используется DPCM для кодирования данных, отличных от остаточных значений). В вариантах осуществления RDOQ могут быть использованы для внутрикадрового кодирования, но не для межкадрового кодирования (или внутрикадровое кодирование копирование блоками -смотри ниже) данных. Таким образом, это дает пример способа кодирования видеоданных для кодирования массива значений входных видеоданных, причем указанный способ содержит: применение операции дифференциальной импульсно-кодовой модуляции (DPCM) к массиву значений входных видеоданных для генерации массива значений DPCM данных; квантование данных, полученных из значений DPCM данных; и управление выбором операции округления квантователем из двух или более кандидатов операций округления.
На фиг. 28 схематически показана часть декодера (или тракта декодирования кодера), соответствующей части кодера, показанной схематически на фиг. 20. Контроллер 345 определяет процесс управления схематическим переключателем 1100 так, чтобы направлять данные в RDPCM декодер 1110, по обходному тракту 1120 или в блок 430 обратного преобразования. Результирующие данные любого из этих трактов переадресовываются для дальнейшей обработки с помощью мультиплексора 1130.
Обратный квантователь 420 показан посредством пунктирной линии, так как он может быть опущен из цепочки обработки (под управлением контроллера 345) в режиме транс-кванта байпаса.
Обратите внимание, что на фиг. 20 и 28 операции управления применяются не только к переключателям 910, 1100, но и к операциям энтропийного кодера и декодера. Это происходит потому, что, когда выбран режим RDPCM, порядок сканирования, используемый энтропийное кодирование и декодирование, является прямым порядком сканирования, противоположный обычному обратному порядку сканирования.
Способы, описанные выше, относятся к взаимосвязи между порядку сканирования энтропийного кодирования (и декодирования) и использованием кодирования RDPCM. Эти способы применимы к RDPCM режимам, включающие в себя (без ограничения), так называемые режимы пропуска сканирования и режимы транс-квант байпас (минуя частотное преобразование и квантование).
В некоторых примерах операция упоминается как "вращение" или переупорядочение, которая может быть использована в процессах кодирования и декодирования.
Вращение относится к операции, в результате которой, значения данных в квадратном массиве значений данных, повернуты на 180° вокруг геометрического центра этого массива. Так, например, в случае типа массива, описанного выше 4×4, имеющего схему нумерации от числа 1 в верхнем левом углу, прогрессируя слева направо вдоль каждой строки, до 16 по направлению в нижнего правого угла, ось вращения поворота на 180° будет находиться в геометрическом центре массива, который находится на стыке между элементами массива первоначально пронумерованных как 6, 7, 10 и 11. Разворот на 180° обеспечивает обмен каждого значения данных массива с другим значением данных массива посредством вращательного смещения этого элемента массива на 180°. Например, значения данных массива, пронумерованные как 1 и 16, переставлены; пронумерованные как 2 и 15 переставлены; и так далее. Поэтому следует понимать, что операция вращения является одновременно операцией без потерь и полностью обратима.
Вращение было предложено для использования в некоторых ранее предложенных кодерах и декодерах. (Обратите внимание, что если вращение используется на стороне кодера, то также должно быть использовано на стороне декодера и в тракте декодера кодера; если вращение не используется на стороне кодера, то не должно быть использовано как на стороне декодера, так и тракте декодера кодера). В частности, вращение может быть выбрано для использования в отношении блоков при пропуске преобразования. Причиной, почему вращение доступно (хотя и не обязательно) для использования с блоками при пропуске преобразования в некоторых ранее предложенных системах, заключается в следующем. Процесс энтропийного кодирования выполнен с возможностью сканировать "в обратном направлении", который работает при энтропийном кодировании от нижней области правого блока в направлении верхнего левого области блока. Это основано на том принципе, что энтропийное кодирование работает потенциально более эффективно, если оно начинается с меньших значений данных и прогрессирует в сторону больших значений данных в пределах блока. Тем не менее, в режиме преобразования с пропуском остаточные данные были закодированы с помощью процесса энтропийного кодирования. Вообще говоря, при использовании внутрикадрового предсказания, остаточные значения данных меньше по величине (что обеспечивает более точное предсказание соответствующего пикселя) на позициях блока, которые находятся ближе всего в позиции изображения к эталонным выборкам, из которых осуществляется предсказание. В блоке межкадрового кодирования изображения, эталонные выборки расположены в нижней левой стороне и вдоль верхней части блока для предсказания. Таким образом, процесс обработка преобразования с пропуском при внутрикадровом кодировании изображения блоков, разностные значения, вероятно, будут иметь меньшую величину по отношению к левой верхней части блока и большую величину в направлении нижней правой части блока. По этой причине может быть выгодно использовать операцию вращения в отношении такого процесса преобразования с пропуском блоков при внутрикадровом кодировании изображения, таким образом, первый процесс энтропийного кодирования работает при меньших значениях величины. Вращение может быть выбрано, например, с помощью контроллера, такого как контроллер 345, например, в ответ на тестирование числа битов и частоту ошибок по битам, сгенерированную с и без этапа вращения, включенного в состав процесса.
В случае, когда используется частотный преобразователь, варианты осуществления применяются в первом режиме (например, преобразование с пропуском), в котором используется RDPCM кодирование, во втором режиме, в котором частотный преобразователь выполнен с возможностью применять преобразования частоты вместо RDPCM кодера, применения операции RDPCM.
Если выбрано вращение, его использование может быть помечено в потоке выходных данных таким образом, что декодер может выбрать ответную операцию вращения на обнаружение такого флага.
В ранее предложенных системах, вращение не является обязательным и выбор операции вращения в трактах кодирования и декодирования полностью отделен от какого-либо решения в кодере для использования RDPCM. В этих ранее предложенных системах, вращение используется только для внутрикадрового кодирования изображения 4×4 блоков. Для более крупных блоков, чем эти, операция вращения не используется.
Далее будет приведено описание вариаций использования операции вращения и другие признаки, относящиеся к вариантам осуществления настоящего изобретения. Они сначала кратко показаны на фиг. 29-31, которые представляют собой схематические блок-схемы алгоритма, показывающие аспекты работы кодера и/или декодера, и затем будет обсуждаться более подробно ниже.
Фиг. 29 относится к обстоятельствам, в которых применяется операция вращения. Если, на схематичном этапе 1200 RDPCM или CDPCM (коэффициент дифференциальной импульсно-кодовой модуляции, смотри ниже) используется в отношении блока с пропуском преобразования, затем на этапе 1210 операция вращения всегда используется. Обратите внимание, что это контрастирует с ранее предложенными вариантами, в которых (а) использование вращения совсем не обязательно, и (b) выбор вращения не зависит от выбора DPCM режима. Обратите внимание, что RDPCM и CDPCM механизмы являются примерами DPCM режимов.
Фиг. 30 относится к аспекту обратной RDPCM или CDPCM операции, которая является операцией, осуществляемой в декодера или в тракте декодирования кодера. Там, где используется такая операция (обозначается схематическим этапом 1220), операция отсечения также выполняется на схематическом этапе 1230 таким образом, чтобы обрезать выходные данные от обратной RDPCM или CDPCM операции в числовом диапазоне (например, число битов), представляя соответствующий или приемлемый диапазон допустимых данных, полученных с помощью операции 1220, или выборочно прерывать операцию декодирования RDPCM, если (например) одно или нескольких значений выходных данных RDPCM находятся вне допустимого диапазона числовых значений. Число битов, применимых в вариантах осуществления настоящего изобретения будут описаны ниже.
В некоторых вариантах осуществления, в отличие от отсечения выходных данных из операции обратного RDPCM, обратная операция RDPCM может быть прервана, если одно или несколько RDPCM декодируемых значений данных находятся за пределами допустимого диапазона числовых значений для таких данных. Например, этот признак может быть применен на поблочной основе (массив к массиву), например, TU к TU основе, таким образом, если любое декодированное значение RDPCM находится вне допустимого диапазона числовых значений для таких данных, то операция обратного RDPCM для этого блока прерывается и обнуляется, другие заранее определенные значения или коды ошибок вставляются вместо декодированных данных. Декодирование может возобновиться для следующего блока, так как операция RDPCM/обратная RDPCM не зависит от одного блока и другого блока. В других вариантах осуществления операция прерывания может быть применена, если, по меньшей мере, пороговое число (например, 2) декодируемых значений данных находится за пределами допустимого диапазона. Пороговое значение может изменяться (в соответствии с заданной справочной таблицей, к примеру) в зависимости от размера блока.
Операция прерывания в этом контексте может означать (например) одно или более из следующего: остановку работы процесса декодирования, выводя сообщение об ошибке, отбрасывая декодированные значения для TUs, ячеек кодирования, срезов изображения, областей изображения или изображения, в котором такая ошибка (то есть, декодированные данные RDPCM превышающие приемлемый числовой диапазон) имеет место, или любое другое представление (например, те, которые описаны выше) того, что сбой с данными привела к попытке декодировать данные за пределами приемлемого числового диапазона.
Приемлемый числовой диапазон может быть определен в потоке данных или, в некоторых вариантах осуществления, в соответствии с заранее определенной взаимосвязи с одним или более из следующего: размер блока и битовой глубины видеоданных и/или внутренней обработки.
Фиг. 31 относится к порядку сканирования (на этапе энтропийного кодирования и декодирования), применимого к межкадровому кодированию изображения RDPCM или CDPCM TUs. В предложенных ранее схемах обработки, закодированные TUs посредством межкадрового кодирования изображения, подлежат энтропийному кодированию в соответствии с обратным диагональным порядком сканирования. Тем не менее, в вариантах осуществления настоящего изобретения, если (на схематическом этапе 1240) изображения, закодированные посредством межкадрового кодирования, RDPCM или CDPCM TU, обрабатываются, на схематичном этапе 1250, то используется режим горизонтального или вертикального сканирования на этапе энтропийного кодирования и декодирования. Более подробная информация о режиме соответствующего сканирования будут рассмотрена ниже.
Если применяется операция вращения в кодере или декодере, то результаты обработки, в соответствии с ранее предложенными механизмами обработки, показаны на фиг. 32 и 33. Теперь они будут описаны для того, чтобы проиллюстрировать потенциальные недостатки, вызванные применением этих механизмов обработки. Там, где части или признаки этих схем соответствуют идентичным пронумерованным частям, описанных выше схем, те части или признаки не будут вновь подробно описываться.
Фиг. 32 схематически показывает часть ранее предложенного кодера и/или декодера, работающего в отношении блоков, закодированных посредством внутрикадрового кодирования изображения. Как уже упоминалось, во многих отношениях, настоящие схемы обработки аналогичны тем, которые показаны на фиг. 5. RDPCM кодер 1300 поставляет закодированные данные в блок 1310 операции вращения (переупорядочивания). Здесь операция (1310) вращения осуществляется в отношении 4×4 TUs с пропуском обработки и транс-квант байпаса. Блок 340 преобразования и блок 350 квантования показаны, но один или оба из них, как можно было бы ожидать, не будут использованы, либо режим преобразования с пропуском (в котором блок 340 преобразования не используется) или транс-квант байпас режим, в котором ни не используется ни один из блоков. Один блок (обозначенный как 360, 370, 400, 410) указывает на операцию сканирования и энтропийного кодирования и декодирования. Показаны возможные блоки обратного квантования и обратного преобразования, и данные затем поставляются в блок 1320 обратного вращения, который восстанавливает первоначальный порядок в качестве обратной операции по отношению к операции, выполненной блоком 1310 вращения. Наконец, блок 1330 обратной RDPCM (декодер) осуществляет обратную операцию, по отношению к операции, выполненной RDPCM кодером 1300. Следует отметить, что, как обсуждалось выше, RDPCM кодер 1300 требует наличия декодированных разностных значений данных из декодера 1330, чтобы закодировать разностные значения.
Фиг. 33 схематически показывает часть ранее предложенного кодера и/или декодера, работающего в отношении блоков, закодированных посредством межкадрового кодирования. Здесь выполняется еще раз операция (1310) вращения в отношении 4×4 TUs с пропуском преобразования и транс-квант байпас. В противном случае, блоки работают таким же образом, но упорядочение несколько отличается по сравнению с порядком, показанном на фиг. 32.
Есть целый ряд выявленных недостатков, относящихся к предложенным ранее механизмам обработки.
Первая техническая задача связана с использованием различных конфигураций для блоков, закодированных посредством внутрикадрового и межкадрового кодирования. Выявленные преимущества ранее предлагаемого механизма обработки заключаются в том, что тракт межкадрового кодирования изображения имеет преимущества в повышенной точности различных схем упорядочивания. Он также извлекает выгоду из укороченной цепи обратной связи кодера. Тем не менее, различия между трактами внутрикадрового и межкадрового кодирования нежелательны: необходимо использовать операцию вращения перед межкадровым кодированием RDPCM. В самом деле, в отличие от RDPCM процесса (при обработке разностных выборок), в сущности, тракт межкадрового кодирования следует рассматривать как процесс "коэффициент DPCM" (CDPCM) (даже если преобразование не используется), так как применяется после операции преобразования с пропуском в кодере.
Вторая задача связана с невозможностью применения RDOQ. Алгоритм скорость-искажение оптимального квантования (RDOQ), как описано выше, не может быть применен к межкадровому кодированию изображения в этой предложенной ранее схеме обработки - дифференциальное кодирование применяется при прямом сканировании, в то время как энтропийный кодер (RDOQ модели) будет обрабатывать коэффициенты в обратном порядке сканирования. RDOQ на самом деле может быть использован для случая внутрикадрового кодирования, но только в случае использования операции вращения (и, следовательно, только для 4×4 TUs преобразования с пропуском).
2
Третья задача связана с числовыми ограничениями обратного процесса DPCM, как в межкадровом, так и при внутрикадровом кодировании. Битовый поток ограничен в том, что он не может содержать значения, которые больше, чем 'MTDR+1' целых бит (как правило, 16 битов) в размере. MTDR короток для системной переменной, представляющей максимальный динамический диапазон процесса преобразования, но в этом контексте представляет величину соответствующего или допустимого диапазона числовых значений для данных. Только выполняется другое отсечение на выходе обратного квантователя (опять же, какие фрагменты 'MTDR+1' бит со знаком для TUs без транс-квант байпаса) и когда формируется восстановленное значение. В конфигурации внутрикадрового кодирования, как показано на фиг. 32, означает, что входы обратной RDPCM может быть 'MTDR+1' бит со знаком в размере, даже если в действительности значения должны быть порядка остаточных коэффициентов, или 'n+1' бит со знаком в размере. Кроме того, модуль обратного RDPCM использует аккумулятор и, следовательно, теоретически количество битов в выходных данных (и аккумулятора) может быть столько, сколько битовая глубина входных RDPCM данных + log (размер) битов (где "размер" представляет собой линейный размер блока в выборках (так блок 4×4 будет иметь размер 4). Для 32×32 TUs это может быть 5 бит, больше, чем вход, который может достигать 21 бит (со знаком).
Четвертая задача связана с ограничениями при параллелизме. Когда, так называемый способ адаптивного внутрикадрового предсказания выборки первоначально был предложен в качестве инструмента в системе HEVC, параллелизм не вызывал затруднений, так как этот процесс был применен только к блокам без потерь. Кодер может легко генерировать различия между источником остаточных данных; декодер может легко генерировать накопления, либо столбец за столбцом, либо строка за строкой, в отличие от направления RDPCM. т.е. для горизонтального RDPCM данные могут быть обработаны столбец за столбцом. Однако, следует отметить, что декодирование блока не может начаться пока верхний левый коэффициент не был декодирован, что, поскольку порядок является порядком обратного сканирования, декодируется последним. Следовательно, требуется временная буферизация TU. Но для системы RDPCM, показанной на фиг. 32, количество параллелизма, которое может быть реализовано, ограничено. Опять же, кодер может для горизонтальной схемы RDPCM обрабатывать данные столбец за столбцом. Однако, как и прежде, декодер должен ждать, пока верхний левый коэффициент не будет декодирован; для не 4×4 блоков или при отключении вращения он будет последним в TU. Кроме того, для межкадровой обработки порядок сканирования всегда является диагональным и поэтому коэффициенты не будут декодированы в соответствующем порядке. Для 4×4 блоков, закодированные посредством внутрикадрового кодирования с вращением, коэффициенты декодируются энтропийным декодером в соответствующем порядке - для горизонтального RDPCM, коэффициенты декодируются столбец за столбцом, так как направление внутрикадрового предсказания, которое указывает на использование горизонтального RDPCM, также указывает на использование вертикального порядка сканирования. Сочетание с вращением означает, что первый набор декодируемых значений, на самом деле, является первым столбцом и поэтому RDPCM может быть обработан столбец за столбцом без задержки.
Эти технические задачи могут быть решены путем использования так называемых единых механизмов обработки, показанные на фиг. 34 и 35, включающие в себя один или несколько способов, описанных выше со ссылками на фиг. 29-31. Опять же, где блоки или признаки соответствуют тем, которые обсуждались ранее, они не будут подробно обсуждаться еще раз.
В некоторых вариантах осуществления RDOQ может быть использована, по меньшей мере, по отношению к данным, закодированным посредством внутрикадрового кодирования (что представляет использование RDOQ в отношении данных, закодированных с использованием подмножества группы режимов кодирования (группой кодированной посредством внутрикадрового, межкадрового и внутрикадрового кодирования с копий блока, например), но не в отношении режимов кодирования в группе, которые не находятся в подмножестве) и, возможно, с данными, закодированными посредством межкадрового кодирования. В вариантах осуществления, используется или может быть использования операция вращения в схемах обработки, которые используют RDOQ. В некоторых вариантах осуществления, операция вращения реализуется для данных, закодированных посредством внутрикадрового кодирования, но не для данных, закодированных посредством межкадрового кодирования. Соответственно, механизмы обработки, описанные ниже, могут обеспечивать примеры устройства кодирования видеоданных, выполненного с возможностью кодирования массива значений входных видеоданных, причем устройство содержит: кодер дифференциальной импульсно-кодовой модуляции (DPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, чтобы генерировать массив значений данных DPCM; квантователь, выполненный с возможностью квантовать данные, полученные из значений DPCM данных; и контроллер для управления выбором операции округления посредством квантователя из двух или более кандидатов операций округления. Контроллер может быть контроллером скорость-искажение оптимизированного квантования. Как обсуждалось выше, может быть использована операция вращения и в этом случае это дает пример использования блока переупорядочения данных, выполненного с возможностью применять операцию переупорядочения к массиву входных данных или выходных данных DPCM кодера. Операция переупорядочения может быть, например, операцией вращения, в которой значения данных в массиве данных поворачиваются в положение вокруг точки в массиве. Контроллер может управлять процессом обработки значений видеоданных, закодированных посредством внутрикадрового кодирования, но может быть отключен в отношении значений данных, закодированных при помощи межкадрового кодирования.
В некоторых вариантах осуществления, используется или может быть использоваться так называемый процесс внутрикадрового кодирования с копированием блока (IBC). Это представляет собой гибридное внутрикадровое и межкадровое кодирование, таким образом, что блок генерируется путем копирования другого блока из другого положения в пределах того же самого изображения, в соответствии с перемещением, которое может рассматриваться как сходное относительно вектора движения. В некоторых вариантах осуществления настоящего изобретения IBC режим обрабатывается таким же образом, как межкадровое кодирование, с точки зрения использования операции вращения и RDOQ. Другими словами, в некоторых вариантах осуществления, вращение отключено для IBC блоков. Соответственно, RDOQ и вращение может быть использовано с DPCM в некоторых вариантах осуществления, которые используют подмножество доступной группы типов предсказания, с одним из примеров подмножества являющегося внутрикадровым кодированием изображения (остальные не члены подмножества группы могут быть, например, межкадровым кодированием изображения и/или внутрикадровым кодированием с копированием блока).
Фиг. 34 схематически показывает часть кодера и/или декодера, работающего в отношении блоков внутрикадрового кодирования.
Этот механизм призван унифицировать процессы межкадрового и внутрикадрового кодирования, который предоставляет кодеру возможность применить RDOQ для случая преобразования с пропуском и улучшить порядок обработки коэффициентов для увеличения параллелизма и уменьшения использование буфера. Это может быть достигнуто одним из двух способов (в качестве примера), как описано со ссылкой на фиг. 34 и 35. Соответственно, механизмы, показанные на фиг. 34 и 35 могут каждый использовать RDOQ а также DPCM в отношении, по меньшей мере, некоторых режимов кодирования.
В этих конфигурациях, всегда применяется вращение после того, как модуль DPCM обеспечивает использование RDOQ - порядок коэффициентов кодируется в данный момент эффективно от верхнего левого угла до нижнего правого (либо по горизонтали, вертикали или диагонали сканирования), что является порядком, в котором RDPCM может генерировать коэффициенты.
Таким образом, иллюстрируется пример устройства кодирования видеоданных (и соответствующий способ), выполненное с возможностью кодировать массив значений входных видеоданных, причем устройство содержит: кодер дифференциальной импульсно-кодовой модуляции (DPCM), такой как кодер 1300 или 1300', выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, например, разностных данных, поставленных в устройство, как показано на фиг. 34, чтобы сгенерировать массив значений данных DPCM; квантователь, такой как квантователь 350, выполненный с возможностью квантовать данные, полученные из значений DPCM данных; и контроллер (например, реализованный посредством квантователя 350 и/или контроллера 345) для управления селекцией операций округления посредством квантователя из двух или более кандидатов операций округления, который используется исключительно в качестве примера управления в режиме RDOQ. Соответственно, такая схема обработки обеспечивает механизм кодирования, в котором RDOQ используется с кодированием DPCM, и в самом деле признаки вариантов осуществления изобретения облегчают кодеру возможность выбора RDOQ в таких условиях. Операция переупорядочивания, такая как операция вращения (например, операция вращения, в которой значения данных в массиве данных поворачиваются в положение относительно точки в массиве) в массиве входных данных или выходных данных из DPCM кодера может быть использована, как обсуждалось выше. Эти способы могут быть объединены с другими описанными здесь способами.
Кроме того, для упрощения обработки коэффициентов RDPCM межкадрового кодирования, коэффициенты RDPCM при межкадровом кодировании больше не требуют использования диагонального сканирования, но вместо этого используется вертикальное сканирование для горизонтального межкадрового RDPCM и горизонтальное сканирование для вертикального RPCDM межкадрового кодирования (по аналогии с внутрикадровым кодированием).
Кроме того, чтобы предотвратить чрезмерно высокое аккумулирование в модуле обратной RDPCM, используется операция отсечения.
RDPCM применяется к разностному значению при необходимости, затем TU поворачивается, если была применена RDPCM, или если SPS флаг указывает на то, что такое преобразование с пропуском/ транс-квант байпас TUs должен быть повернут (SPS используется в ранее предложенных системах, как флаг, указывающий следует ли применять вращение, в ранее предложенных системах операция вращения доступна только для 4×4 TUs при преобразовании с пропуском или в режиме транс-квант байпас). Вслед за этим TU преобразуется (или преобразование пропускается в режиме преобразования с пропуском) и квантуется. Отсечение может быть применено (в соответствии с вышеописанным этапом 1230) при накоплении значений RDPCM в модуле обратного RDPCM, ограничивая аккумулятор и последующие значения (выход модуля обратной RDPCM) имели только n+1 биты со знаком. Обратите внимание, что вращение может быть применено после квантователя или даже может рассматриваться как изменение в порядке сканирования в энтропийном кодере для эффективного сканирования в прямом порядке, а не наоборот.
Соответственно, на фиг. 34 приведен пример устройства кодирования видеоданных (и соответствующий способ), выполненное с возможностью кодировать массив значений входных видеоданных, причем устройство содержит кодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, чтобы генерировать массив значений данных RDPCM; и энтропийный кодер, выполненный с возможностью энтропийно кодировать данные RDPCM в порядке обработки, в отношении массива значений данных RDPCM, таким образом, что для любого значения данных RDPCM в порядке обработки значение данных RDPCM не имеет зависимости от последующих значений RDPCM данных в порядке обработки. Эти способы применимы к межкадровым кодированным данным, в которых: массив значений входных видеоданных содержит массив остаточных значений, сгенерированных как разностные значения между соответствующими выборками видео из текущего изображения и предсказанными версиями этих выборок видео, предсказанные версии были получены из одного или более изображений, отличных от текущего изображения; и для любого такого массива значений входных видеоданных, порядок обработки всегда таковой, что для любого значения данных RDPCM в порядке обработки, значение данных RDPCM не имеет зависимости от значений последующих данных RDPCM в порядке обработки. Эти способы также применимы к данным, закодированным посредством внутрикадрового кодирования, в котором массив значений входных видеоданных содержит массив остаточных значений, полученных как разностные значения между соответствующими выборками видео текущего изображения и предсказанными версиями этих выборок видео, предсказанные версии были получены из текущего изображения; и для любого такого массива значений входных видеоданных, порядок обработки всегда таковой, что для любого значения данных RDPCM в порядке обработки, значение данных RDPCM не имеет зависимости от значений последующих данных RDPCM в порядке обработки. В данных, закодированных посредством внутрикадрового кодирования, предсказанные версии получены из одного или более опорных пикселей из опорных областей, смежных с положением изображения соответствующих выборок видео. В качестве альтернативы, иногда называют как внутрикадровое кодирование с копированием блока, предсказанные версии получены из одного или более опорных пикселей из опорных областей (в текущем изображении), определенных относительно положения изображения соответствующих выборок видео посредством одного или более векторов движения.
Фиг. 35 схематически показывает часть кодера и/или декодера, работающего в отношении блоков, закодированных посредством межкадрового кодирования, в том случае, когда сначала применяется преобразование. Соответственно, операция называется CDPCM, а не RDPCM, но принципы остаются теми же. В частности, способы, описанные в настоящей заявке, в связи с RDPCM, могут быть использованы в связи с CDPCM, и в самом деле, ссылки на RDPCM и CDPCM следует рассматривать в качестве взаимозаменяемых примеров систем DPCM - разница заключается не в технических признаках двух способов, а просто в отношении порядка обработки, к которому применяется операция RDPCM.
TU сначала преобразуется (или применяется преобразование с пропуском) и затем применяется CDPCM с помощью CDPCM кодера 1300' (если требуется), затем TU поворачивается (опять же, только если CDPCM был применен или если флаг SPS указывает на то, что следует повернуть TUs при преобразовании с пропуском / режиме транс-квант байпаса) и квантуется. Опять же, операция отсечения может быть применена при накоплении значений CDPCM в модуле 1330' обратного CDPCM, ограничивая накопитель от последующих значений только MTDR+1 назначенными битами. Обратите внимание, что вращение может быть применено после квантователя или даже может рассматриваться как изменение в порядке сканирования в энтропийном кодере, что обеспечивает эффективное сканирование в прямом порядке, а не наоборот.
В определенных обстоятельствах, в некоторых указанных выше механизмах обработки применение процесса поворота после процесса DPCM, может привести к потенциальным трудностям. Примером такой ситуации является ситуация, при которой блок, как правило, является простым, который включает в себя значения, которые подобны друг другу (заметим, что RDPCM значения являются теми значениями остаточных данных, как описано выше). Другой способ выразить "простоту" в блоке заключается в том, что блок содержит, как правило, DC значения. Здесь, этот термин указывает на то, что могут быть некоторые вариации в пределах блока, большая часть контента блока может быть представлена одним значением (что соответствует DC коэффициенту, если использовалось частотное преобразование), лишь с незначительными и низко-пространственно-частотными изменениями вокруг этого DC значения.
Фиг. 36 схематически иллюстрирует такой блок DC значений. На самом деле, на фиг. 36 все значения одинаковы (значение х). Иметь совершенно одинаковые значения в гипотетическом блоке полезно для настоящего обсуждения, но следует принимать во внимание, что подобные свойства применимы к наборам значений в пределах блока, которые подобны друг другу.
Фиг. 37а схематически иллюстрирует блок, показанный на фиг. 36, после процесса горизонтальной DPCM. Как уже говорилось выше, для значений каждой строки передается первое значение и затем остальные значения представлены как разность между этим значением и восстановленной версией предыдущего значения. Это приводит к шаблону x и 0, показанному на фиг. 37а. Обратите внимание, что если исходные значения блока на фиг. 36 не были идентичны, то будет получен подобный шаблон, показанный на фиг. 37а, но вместо нуля, будет присутствовать небольшие значения на позициях этих блоков.
Фиг. 37b схематически иллюстрирует блок, показанный на фиг. 37а, после операции вращения. Нежелательно, чтобы ненулевые значения (х) были повернуты в крайне правый столбец в блоке. Это не является подходящим результатом с точки зрения энтропийного кодирования, которое, как описано выше, является более эффективным, если более высокие значения данных, которые будут закодированы, обнаруживается в стороне верхней левой части блока. Если блок не был повернут, то это условие было бы выполнено, но операция вращения выполняется после операции DPCM, соответственно, условие нарушается.
Фиг. 38а схематически иллюстрирует блок, показанный на фиг. 36, после процесса вертикальной DPCM. Результат аналогичен тому, который показан на фиг. 37а, за исключением того, что в этом случае кодирования по направлению вниз в каждом столбце, начиная с верхней части, так, что ненулевые значения×находятся в верхней строке блока, показанного на фиг. 38а.
Фиг. 38b схематически иллюстрирует блок, показанный на фиг. 38а, после операции вращения. Еще раз, операция вращения перемещает ненулевые значения в направлении нижней правой части блока, что приводит к нежелательному результату с точки зрения эффективности процесса энтропийного кодирования.
Обратите внимание, что тип кодирования, который часто подходит для кодирования простых блоков этого типа, является так называемым внутрикадровым кодированием с копированием блока. Это представляет собой гибридный тип кодирования внутрикадрового и межкадрового кодирования, таким образом, что блок генерируется путем копирования другого блока из другой позиции в пределах того же самого изображения, в соответствии с перемещением, которое может рассматриваться как аналогичное по отношению к вектору движения.
Отметим также, что операция вращения, описанная ранее, находится под управлением флага вращения. Флаг вращения разрешает или запрещает вращение для всех блоков с пропуском преобразования (TS) и транс-квант байпаса (TQB), независимо от того, используется ли DPCM, и независимо от того, блок кодируется посредством межкадровым кодированием или внутрикадровым кодированием с копированием блока.
Далее будет приведено описание различных вариантов для решения этой технической задачи.
Одна возможность состоит в том, чтобы изменить характер флаг вращения таким образом, что предусмотрено множество флагов для указания использования или нет вращения в различных режимах кодирования. Одним из примеров набора флагов указывается схематически в следующей таблице:
Следует принять во внимание, что порядок флагов, и указание на то, включено или выключено вращение, являются деталями, которые не важны для базовой технологии.
Флаги могут быть переданы, например, в наборе параметров последовательности уровня (SPS), или в других вариантах осуществления в наборе параметров уровня изображения (PPS), в срезе заголовка, в заголовке ячейки кодирования или заголовке блока обработки.
Эффект флагов заключается в установлении группы параметров, для которых включено вращение и группы параметров, для которых вращение не активно. Тогда для конкретного TU контроллер 345 может сравнить фактические параметры, относящиеся к этому TU, с параметрами, установленными посредством флагов, чтобы сделать определение относительно того, следует ли использовать вращение в отношении этого TU. Аналогичный процесс происходит в декодере и в кодере. Обратите внимание, что на стороне кодера, фактические флаги могут не быть сгенерированы до тех пор, пока выходной поток данных не собран, но будут использоваться все те же параметры, которые будут основаны на использовании флагов в процессе принятия решений о том, следует ли использовать вращение.
Фиг. 39 схематически иллюстрирует часть работы кодера. На этапе 1500 контроллер 345 обнаруживает (или даже устанавливает) набор параметров, на которых будет базироваться флаги в приведенной выше таблице. В отношении конкретного TU на этапе 1510 контроллер 345 сравнивает набор параметров с параметрами этого TU для того, чтобы прийти к решению (на этапе 1520), чтобы активировать или отключить операцию вращения в отношении этого TU.
Фиг. 40 схематически иллюстрирует часть работы декодера. На этапе 1530 контроллер 345 определяет набор флагов, например, из входного потока данных. В отношении конкретного TU на этапе 1540 контроллер 345 сравнивает параметры, представленные флагами с параметрами конкретного TU, чтобы прийти к решению (на этапе 1550) активировать или отключить процедуру вращения в отношении TU.
Обратите внимание, что не все флаги должны быть использованы; может быть использовано подмножество. Например, флаги 5-8 управляют операцией вращения для внутрикадрового кодирования, и может формировать подмножество флагов для использования в конкретном варианте осуществления. Другим примером может быть подмножество флагов 7 и 8, которые управляют операцией вращения для внутрикадрового кодирования, когда DPCM не используется. Соответственно, некоторые примеры подмножеств флагов включают в себя:
- Флаги 1-4;
- Флаги 3-4;
- Флаги 5-8;
- Флаги 7-8;
- Флаги 9-12;
- Флаги 11-12.
Кроме того, в некоторых случаях значения устанавливаются по умолчанию. Например, некоторые из них флагов могут быть специально установлены, что привело бы к выводу о том, что другие флаги установлены определенным образом (в соответствии с заданными параметрами). Например, если комбинация флагов 7 и 8 установлена в SPS, то другие флаги могут быть выведены, чтобы иметь значения либо 0, либо 1 в соответствии с заранее определенным набором правил.
Отметим также, что несколько из таких подмножеств из этих флагов могут быть представлены одной более сложной, чем текущий флаг вращения. Например, флаг одного "вращения" может принять во внимание более чем одно из значений вышеперечисленных флагов. Примером одного флага (или одного из небольшой группы флагов) может означать "используется вращение для всех TS/TQB блоков, в которых используется DPCM, кроме IBC блоков".
Все эти примеры ассоциирования (или обнаружения в декодере) двух или более флагов с закодированными данными, относятся к двум или более флагам, определяющие должна ли применяться операция переупорядочения в отношении двух или более соответствующих перестановок параметров кодирования (декодирования). В вариантах осуществления настоящего изобретения параметры кодирования могут включать в себя некоторые или все из:
используется ли режим межкадрового кодирования изображения, внутрикадрового кодирования изображения или внутрикадрового кодирования с копированием блока;
используется ли операция RDPCM; и
используется ли преобразование с пропуском или транс-квант обходной режим.
Другой вариант, который может быть использован в комбинации с или вместо вышеуказанных способов, представляет собой вариант использования флага, который изменяет позицию операции вращения в пределах порядка обработки.
Фиг. 41а и 41b схематично иллюстрируют изменения в порядке обработки. Они относятся к ранее описанным схемам обработки, со ссылкой на фиг. 32-35, и намеренно показаны только два аспекта операции обработки, а именно, процесс 1600 вращения и общим DPCM процесс 1610. В некоторых вариантах осуществления, как описано выше, эти режимы используются вместе (с RDOQ) в отношении блоков, закодированных посредством внутрикадрового кодирования, но не в отношении блоков, закодированных посредством межкадрового кодирования или внутрикадрового кодирования с копированием блоков. Эти процессы связаны пунктирными линиями, указывающими, что (по меньшей мере, потенциально) другие процессы могут предшествовать или следовать за ними и другие процессы могут выполняться между ними. Эти два варианта предопределены в кодере и декодере. На фиг. 41а DPCM процесс предшествует процессу вращения. На фиг. 41b, DPCM процесс следует за процессом вращения. Один флаг может быть использован для сигнализации, так как между кодером и декодером, который из этих двух вариантов следует использовать:
Флаг = 0 Вращение предшествует DPCM
Флаг = 1 Вращение следует за DPCM
Решение о том, какой из этих флагов использовать, и как установить большую группу флагов, рассмотренных в предыдущей таблице, может быть сделано с помощью контроллера 345 согласно результатам кодировок и/или в соответствии с заранее определенными правилами, установленными на кодере, и/или в соответствии с настройками пользователя. Это является примером ассоциирования (или обнаружения в декодере) флага с закодированными данными, указывающими следует ли применять операцию переупорядочивания к данным, которые были предметом кодирования RDPCM или данным, которые должны быть RDPCM закодированы.
Сигналы данных
Следует принять во внимание, что сигналы данных, сгенерированные различными устройствами кодирования, как описано выше, и носители или среда передачи данных, передающие такие сигналы, как полагают, представляют собой варианты осуществления настоящего изобретения.
Постольку варианты осуществления изобретения были описаны как реализованные, по меньшей мере, частично, с помощью программно-управляемого устройства обработки данных, следует принять во внимание, что непреходящий машинно-считываемый носитель информации, несущий такие программы, такой как оптический диск, магнитный диск, полупроводниковое запоминающее устройство или тому подобное, также считается, что представляют собой вариант осуществления настоящего изобретения.
Будет очевидно, что возможны многочисленные модификации и варианты осуществления настоящего изобретения в свете вышеизложенных учений. Поэтому следует понимать, что в пределах объема прилагаемой формулы изобретения, технология может быть осуществлена на практике иначе, чем конкретно описано в настоящем документе.
Все способы, описанные выше, применяются в устройстве и способах кодирования, и/или в устройстве и способах декодирования. Способы, обсуждаемые в связи с кодированием, имеют соответствующие признаки на стороне декодирования. Способы, рассмотренные в связи с декодированием, имеют применение в тракте декодирования кодера. Соответственно, следует понимать, что приведенное выше описание способов кодирования и устройств, где способы и устройства включают в себя тракт декодирования, также рассматриваются в качестве примеров способов и устройств декодирования.
Соответствующие признаки и/или варианты осуществления настоящего изобретения определяются следующими пронумерованными пунктами:
(1) Устройство кодирования видеоданных выполненное с возможностью кодирования массива значений входных видеоданных, содержащее:
кодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операций дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных для генерирования массива значений RDPCM данных; и
энтропийный кодер, выполненный с возможностью осуществления энтропийного кодирования RDPCM данных в порядке обработки, в отношении массива значений RDPCM данных, так что для любого значения RDPCM данных в порядке обработки значение RDPCM данных не имеет зависимости от значения RDPCM данных ниже в порядке обработки.
(2) Устройство по (1), в котором:
массив значений входных видеоданных содержит массив разностных значений, сгенерированных в качестве разностных значений между соответствующими выборками видео текущего изображения и предсказанных версий указанных выборок видео, при этом предсказанные версии извлечены из одного или более изображений отличных от текущего изображения; и
для любого такого массива значений входных видеоданных, порядок обработки всегда таковой, что для любого значения RDPCM данных в порядке обработки, значение RDPCM данных не имеет зависимости от значения RDPCM данных позже в порядке обработки.
(3) Устройство по (1) или (2), в котором:
массив значений входных видеоданных содержит массив остаточных значений, сгенерированных как разностные значения между соответствующими выборками видео текущего изображения и предсказанных версий указанных выборок видео, причем предсказанные версии извлечены из текущего изображения; и
для любого такого массива значений входных видеоданных, порядок обработки всегда таковой, что для любого значения RDPCM данных в порядке обработки, значение RDPCM данных не имеет зависимости от значения RDPCM данных позже в порядке обработки.
(4) Устройство по (3), в котором предсказанные версии получены из одного или более опорных пикселей из опорных областей, смежных с позицией изображения соответствующих выборок видео.
(5) Устройство по (3), в котором предсказанные версии получены из одного или более опорных пикселей из опорных областей, определенных относительно позиции изображения соответствующих выборок видео посредством одного или более векторов движения.
(6) Устройство по любому из (1)-(5), содержащее частотный преобразователь, причем устройство выполнено с возможностью работать в первом режиме, в котором используется RDPCM кодирование, и во втором режиме, в котором частотный преобразователь выполнен с возможностью применять частотное преобразование вместо RDPCM кодера, применяя RDPCM операции.
(7) Устройство по (6), в котором:
частотный преобразователь выполнен с возможностью функционирования во втором режиме для генерирования массива частотно-преобразованных данных; а
энтропийный кодер выполнен с возможностью функционирования во втором режиме, для применения порядка обработки, начиная с позиции массива, соответствующей самой высокой частотной составляющей, и заканчивающийся на позиции массива, соответствующей наименьшей частотной составляющей.
(8) Устройство по (7), содержащее блок переупорядочения данных, выполненный с возможностью применения операции переупорядочивания к массиву данных.
(9) Устройство по (8), в котором операция переупорядочения данных является операцией вращения, в которой значения данных в пределах блока повернуты на 180° вокруг центра блока.
(10) Устройство по (8) или (9), в котором:
первый режим представляет собой режим преобразования с пропуском, в котором частотное преобразование не используется; и
блок переупорядочивания данных выполнен с возможностью всегда обрабатывать RDPCM кодированные данные в режиме преобразования с пропуском.
(11) Устройство по (8) или (9), причем устройство выполнено с возможностью ассоциирования двух или более флагов с кодированными данными, при этом два или более флагов определяют следует или нет применять операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров кодирования.
(12) Устройство по (11), в котором параметры кодирования включают в себя некоторые или все из определений:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока;
используется ли RDPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(13) Устройство по (12), в котором параметры кодирования включают в себя все из определений:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока;
используется ли RDPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(14) Устройство по любому из (8)-(13), причем устройство выполнено с возможностью ассоциирования флага с закодированными данными, указывающего следует ли применять операцию переупорядочивания данных к данным, подвергнутым RDPCM кодированию или к данным, подлежащим RDPCM кодированию.
(15) Устройство по любому из (1)-(14), в которых, для RDPCM данных порядок обработки представляет собой горизонтально сканируемый или вертикально сканируемый порядок обработки.
(16) Устройство по любому из (1)-(15), содержащее в тракте декодирования декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к энтропийно-декодируемым значениям видеоданных для генерации массива значений RDPCM данных.
(17) Устройство по (16), в котором RDPCM декодер выполнен с возможностью обрезки RDPCM декодированных данных до приемлемого диапазона числовых значений для таких данных.
(18) Устройство по (16), в котором RDPCM декодер выполнен с возможностью прерывания декодирования энтропийно-декодируемых значений видеоданных, если одно или более из RDPCM декодируемых значений данных превышает приемлемый числовой диапазон для таких данных.
(19) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования, содержащее:
кодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, для генерирования массива значений RDPCM данных; и
энтропийный кодер, выполненный с возможностью осуществления энтропийного кодирования RDPCM данных в порядке обработки, в отношении массива значений RDPCM данных, причем порядок обработки является порядком обработки горизонтального сканирования или вертикального сканирования.
(20) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных кодированных видеоданных, причем устройство содержит в тракте декодирования декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, для генерирования массива значений RDPCM данных, причем RDPCM декодер выполнен с возможностью обрезки RDPCM декодированных данных до приемлемого диапазона числовых значений для таких данных.
(21) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных кодированных видеоданных, причем устройство содержит в тракте декодирования декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, для генерирования массива значений RDPCM данных, при этом RDPCM декодер выполнен с возможностью прерывания декодирования массива значений входных закодированных данных, если одно или более из RDPCM значений декодированных данных находится за пределами допустимого диапазона числовых значений для таких данных.
(22) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования изображения, причем устройство содержит:
кодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операций дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, для генерирования массива значений RDPCM данных;
энтропийный кодер, выполненный с возможностью осуществления энтропийного кодирования RDPCM данных; и
блок переупорядочения данных, выполненный с возможностью применения операции переупорядочивания данных на массиве данных;
причем устройство выполнено с возможностью ассоциирования флага с закодированными данными, указывающего следует ли применять операцию переупорядочивания к данным, которые являются объектом RDPCM кодирования или к данным, подлежащим RDPCM кодированию.
(23) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования, содержащее:
кодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операций дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, для генерирования массива значений RDPCM данных;
энтропийный кодер, выполненный с возможностью осуществления энтропийного кодирования RDPCM данных; и
блок переупорядочения данных, выполненный с возможностью применения операций переупорядочивания данных к массиву данных;
причем устройство выполнено с возможностью ассоциирования двух или более флагов с кодированными данными, при этом указанные два или более флагов определяют, следует или нет применять операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров кодирования.
(24) Устройство по любому из (1)-(23), содержащее процессор скорость-искажение оптимального квантования, выполненный с возможностью обработки массива данных в соответствии с тем же порядком обработки, что и применяемый энтропийным кодером.
(25) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданных, содержащее:
энтропийный декодер; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, чтобы генерировать массив значений RDPCM данных;
в котором, энтропийный декодер выполнен с возможностью выполнять энтропийное декодирование входных кодированных видеоданных в порядке обработки, в отношении массива значений RDPCM данных, таким образом, что для любого значения RDPCM данных в порядке обработки значение RDPCM данных не имеют зависимости от последующего значения RDPCM данных в порядке обработки.
(26) Устройство по (25) содержит блок переупорядочения данных, выполненный с возможностью применения операции переупорядочивания к массиву данных.
(27) Устройство по (26), в котором операция переупорядочения данных является операцией вращения, в котором значения данных в пределах блока повернуты на 180° вокруг центра блока.
(28) Устройство по (25) или (26), выполненное с возможностью обнаружения двух или более флагов с кодированными данными, причем указанные два или более флагов определяют следует или нет применить операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров кодирования.
(29) Устройство по (28), в котором параметры кодирования включают в себя некоторые или все из определений:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока;
используется ли RDPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(30) Устройство по (28), в котором параметры кодирования включают в себя все из определений:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока;
используется ли RDPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(31) Устройство по любому из (26)-(30), выполненное с возможностью обнаружения флага с закодированными данными, указывающего, следует ли применять операцию переупорядочивания данных к данным, подвергнутым декодированию RDPCM или к данным, подлежащим RDPCM декодированию.
(32) Устройство по любому из (25)-(31), в котором:
массив значений входных кодированных видеоданных содержит массив значений видеоданных, закодированных посредством межкадрового кодирования; и
для любого такого массива значений входных видеоданных порядок обработки всегда таковой, что для любого значения RDPCM данных в порядке обработки, значение RDPCM данных не имеет зависимости от последующего значения RDPCM данных в порядке обработки.
(33) Устройство по любому из (25)-(31), в котором:
массив значений входных видеоданных содержит массив значений данных, закодированных посредством внутрикадрового кодирования; и
для любого такого массива значений входных видеоданных порядок обработки всегда таковой, что и для любого значения RDPCM данных в порядке обработки, значение RDPCM данных не имеет зависимости от последующего значения RDPCM данных в порядке обработки.
(34) Устройство по (32), в котором порядок обработки представляет собой порядок обработки горизонтального сканирования или вертикального сканирования.
(35) Устройство по (31), в котором RDPCM декодер выполнен с возможностью обрезать RDPCM декодированные данные до приемлемого диапазона числовых значений для таких данных.
(36) Устройство по (31), в котором RDPCM декодер выполнен с возможностью прерывать декодирование энтропийно-декодированных значений видеоданных, если одно или несколько из RDPCM декодированных значений данных превышает приемлемый числовой диапазон для таких данных.
(37) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданные, содержащее:
энтропийный декодер; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, чтобы генерировать массив значений RDPCM данных, RDPCM декодер выполнен с возможностью обрезать RDPCM декодированные данные до приемлемого числового диапазона для таких данных.
(38) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданные, содержащее:
энтропийный декодер, выполненный с возможностью энтропийно декодировать входные кодированные видеоданные в порядке обработки, относительно массива входных значений кодированных видеоданных, порядок обработки представляет собой порядок обработки горизонтального сканирования или вертикального сканирования; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных.
(39) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданные, содержащее:
энтропийный декодер; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, чтобы генерировать массив значений RDPCM данных, RDPCM декодер выполнен с возможностью прерывать декодирование массива значений входных кодированных данных, если одно или более RDPCM декодированных данных находятся вне допустимого диапазона числовых значений для таких данных.
(40) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданные, содержащее:
энтропийный декодер; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных, чтобы генерировать массив значений RDPCM данных; и
блок переупорядочения данных, выполненный с возможностью применять операцию переупорядочения к массиву данных;
причем устройство выполнено с возможностью обнаруживать флаг с закодированными данными, указывающий, следует ли применять операцию переупорядочивания к данным, которые являются объектом декодирования RDPCM или к данным, подлежащие RDPCM декодированию.
(41) Устройство декодирования видеоданных, выполненное с возможностью декодирования массива значений входных закодированных видеоданные, содержащее:
энтропийный декодер; и
декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применять операцию дифференциальной импульсно-кодовой модуляции к энтропийно-декодируемым значениям видеоданным, чтобы генерировать массив значений RDPCM данных; и
блок переупорядочения данных, выполненный с возможностью применять операцию переупорядочения к массиву данных;
причем устройство выполнено с возможностью обнаруживать два или более флагов с кодированными данными, два или более флагов определяют, следует или нет применять операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров декодирования.
(42) Устройство захвата видеоданных, хранения, передачи и/или записи, содержащее устройство по любому из (1)-(41).
(43) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, содержащий этапы, на которых:
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к массиву значений входных видеоданных, чтобы генерировать массив значений RDPCM данных; и
осуществляют энтропийное кодирование RDPCM данных в порядке обработки в отношении массива значений RDPCM данных, таким образом, что для любого значения RDPCM данных в порядке обработки, значение RDPCM данных не имеет зависимости от последующих значений RDPCM данных в порядке обработки.
(44) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования, содержащий этапы, на которых:
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к массиву значений входных видеоданных, чтобы генерировать массив значений RDPCM данных; и
осуществляют энтропийное кодирование RDPCM данных в порядке обработки по отношению к массиву значений RDPCM данных, порядок обработки представляет собой порядок обработки горизонтального сканирования или вертикального сканирования.
(45) Способ кодирования видеоданных для кодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
применяют, в тракте декодирования, операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных; и
отсекают RDPCM декодированных данных до приемлемого диапазона числовых значений для таких данных.
(46) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования, содержащий этапы, на которых:
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к массиву значений входных видеоданных, чтобы генерировать массив значений RDPCM данных; и
осуществляют энтропийное кодирование RDPCM данных; и
применяют операции переупорядочивания данных, чтобы изменить порядок массива данных; и
осуществляют ассоциирование флага с закодированными данными, указывающий, следует ли применить операцию переупорядочивания данных к данным, которые были предметом кодирования RDPCM или к данным, подлежащие RDPCM кодированию.
(47) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, закодированных посредством межкадрового кодирования, содержащий этапы, на которых:
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к массиву значений входных видеоданных, чтобы генерировать массив значений RDPCM данных; и
осуществляют энтропийное кодирование RDPCM данных; и
применяют операции переупорядочения, чтобы изменить порядок массива данных; и
осуществляют ассоциирование двух или более флагов с закодированными данными, при этом два или более флагов определяют следует или нет применить операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров кодирования.
(48) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных кодированных значений видеоданных в порядке обработки в отношении массива значений RDPCM данных, таким образом, что для любого значения RDPCM данных в порядке обработки значение RDPCM данных не имеет зависимости от последующего значения RDPCM данных в порядке обработки; и
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных.
(49) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных кодированных значений видеоданных;
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных; и
отсекают RDPCM декодированных данных до приемлемого диапазона числовых значений для таких данных.
(50) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных значений кодированных видеоданных в порядке обработки в отношении массива значений данных, при этом порядок обработки представляет собой порядок обработки горизонтального сканирования или вертикального сканирования; и
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных.
(51) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных кодированных значений видеоданных;
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных; и
осуществляют прерывание процесса декодирования массива значений входных закодированных данных, если одно или более RDPCM декодированных значений данных находятся за пределами допустимого диапазона числовых значений для таких данных.
(52) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных кодированных значений видеоданных;
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) для генерирования массива значений RDPCM данных;
применяют операции переупорядочивания данных к массиву данных; и
обнаруживают два или более флагов с закодированными данными, причем указанные два или более флага определяют, следует или нет применить операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров декодирования.
(53) Способ декодирования видеоданных для декодирования массива значений входных кодированных видеоданных, содержащий этапы, на которых:
осуществляют энтропийное декодирование входных кодированных значений видеоданных;
применяют операции остаточной дифференциальной импульсно-кодовой модуляции (RDPCM) для генерирования массива значений RDPCM данных;
применяют операции переупорядочивания данных к массиву данных; и обнаруживают флаг с закодированными данными, указывающий, следует ли применить операцию переупорядочивания данных к данным, которые были предметом декодирования RDPCM или к данным, подлежащим RDPCM декодированию.
(54) Компьютерное программное обеспечение, которое при исполнении компьютером, вызывает выполнение компьютером способа по любому из (43)-(53).
(55) Энергонезависимый машиночитаемый носитель данных, на котором хранится компьютерное программное обеспечение, по (54).
(56) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных видеоданных, содержащее:
кодер дифференциальной импульсно-кодовой модуляции (DPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, для генерирования массива значений DPCM данных;
квантователь, выполненный с возможностью квантования данных, полученных из значений DPCM данных; и
контроллер для управления выбором операции округления посредством квантователя из двух или более кандидатов операций округления.
(57) Устройство по (56), в котором контроллер является контроллером скорость-искажение оптимального квантования.
(58) Устройство по (56)или (57), содержащее блок переупорядочения данных, выполненный с возможностью применения операции переупорядочения к массиву входных данных или выходных данных DPCM кодера.
(59) Устройство по (58), в котором операция переупорядочения является операцией вращения, причем значения данных в массиве данных поворачиваются в позицию относительно точки в массиве.
(60) Устройство по (56), в котором контроллер выполнен с возможностью обрабатывать закодированные данные с использованием подмножества группы возможных режимов кодирования, но не работает в отношении режимов кодирования в группе, которые не находятся в подгруппе.
(61) Устройство по (60), в котором подмножество содержит внутрикадровое кодирование.
(62) Устройство по (60) или (61), в котором группа содержит внутрикадровое кодирование, межкадровое кодирование и внутрикадровое кодирование с копированием блока.
(63) Устройство захвата, хранения, передачи и/или записи видеоданных, содержащее устройство по любому из (56)-(62).
(64) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, содержащий этапы, на которых:
применяют операции дифференциальной импульсно-кодовой модуляции (DPCM) к массиву значений входных видеоданных, для генерирования массива значений DPCM данных;
осуществляют квантование данных, полученных из значений DPCM данных; и управляют выбором операции округления посредством квантователя из двух или более кандидатов операций округления.
(65) Компьютерное программное обеспечение, которое при исполнении компьютером, вызывает выполнение компьютером способа по (64).
(66) Энергонезависимый машиночитаемый носитель данных, на котором храниться компьютерное программное обеспечение по (65).
Дополнительно соответствующие признаки и/или варианты осуществления настоящего изобретения определяются следующими пронумерованными пунктами:
(1) Устройство кодирования видеоданных, выполненное с возможностью кодирования массива значений входных видеоданных, содержащее:
кодер дифференциальной импульсно-кодовой модуляции (DPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к массиву значений входных видеоданных, для генерирования массива значений DPCM данных;
квантователь, выполненный с возможностью квантования данных, полученных из значений DPCM данных; и
контроллер для управления выбором операции округления посредством квантователя из двух или более кандидатов операций округления.
(2) Устройство по (1), в котором контроллер является контроллером скорость-искажение оптимального квантования.
(3) Устройство по (2), содержащее блок переупорядочения данных, выполненный с возможностью применения операции переупорядочения к массиву данных, вводимых в или выводимых из DPCM кодера.
(4) Устройство по (3), в котором операция переупорядочения является операцией вращения, причем значения данных в массиве данных поворачиваются в позицию относительно точки в массиве.
(5) Устройство по любому из (1)-(4), в котором контроллер выполнен с возможностью обработки данных, закодированных с использованием подмножества группы возможных режимов кодирования, но не работоспособен в отношении режимов кодирования в группе, которые не находятся в подгруппе.
(6) Устройство по (5), в котором подмножество содержит внутрикадровое кодирование.
(7) Устройство по (5) или (6), в котором группа содержит внутрикадровое кодирование, межкадровое кодирование и внутрикадровое кодирование с копированием блока.
(8) Устройство по любому из (1)-(7), содержащее:
энтропийный кодер, выполненный с возможностью осуществления энтропийного кодирования значения DPCM данных в порядке обработки в отношении массива значений DPCM данных, так что при любом значении DPCM данных в порядке обработки, значение DPCM данных не имеет зависимости от последующего значения DPCM данных в порядке обработки.
(9) Устройство по (8), в котором:
массив значений входных видеоданных содержит матрицу остаточных значений, сгенерированных как разностные значения между соответствующими выборками видео текущего изображения и предсказанными версиями этих выборок видео, предсказанные версии извлекаются из одного или более изображений отличных от текущего изображения; и
для любого такого массива значений входных видеоданных порядок обработки является всегда такой, что для любого значения DPCM данных в порядке обработки, значение DPCM данных не имеет зависимости от последующего значения DPCM данных в порядке обработки.
(10) Устройство по (8), в котором:
массив значений входных видеоданных содержит массив остаточных значений, сгенерированных как разностные значения между соответствующими выборками видео текущего изображения и предсказанными версиями этих выборок видео, причем предсказанные версии извлекаются из текущего изображения; и
для любого такого массива значений входных видеоданных порядок обработки всегда таковой, что и для любого значения DPCM данных в порядке обработки, значение DPCM данных не имеет зависимости от последующего значения DPCM данных в порядке обработки.
(11) Устройство по (10), в котором предсказанные версии получены из одного или более опорных пикселей из опорных областей, смежных с позицией изображения соответствующих выборок видео.
(12) Устройство по (10), в котором предсказанные версии получены из одного или более опорных пикселей из опорных областей, определенных относительно позиции изображения соответствующих выборок видео посредством одного или более векторов движения.
(13) Устройство по любому из (8)-(12), содержащее частотный преобразователь, причем устройство выполнено с возможностью работать в первом режиме, в котором используется DPCM кодирование, и во втором режиме, в котором частотный преобразователь выполнен с возможностью применения частотного преобразования вместо DPCM кодера, применяя DPCM операцию.
(14) Устройство по (13), в котором:
частотный преобразователь выполнен с возможностью работать во втором режиме, чтобы генерировать массив частотно-преобразованных данных; и
энтропийный кодер выполнен с возможностью работать во втором режиме, применяя порядок обработки, начиная с позиции массива, соответствующей самой высокой частотной составляющей и заканчивающийся на позиции массива, которая соответствует наименьшей частотной составляющей.
(15) Устройство по (13) или (14) содержит блок переупорядочения данных, выполненный с возможностью применять операцию переупорядочивания к массиву данных.
(16) Устройство по (15), в котором операция переупорядочения данных является операцией вращения, в котором значения данных в пределах блока повернуты на 180° вокруг центра блока.
(17) Устройство по (15) или (16), в котором:
первый режим представляет собой режим преобразования с пропуском, в котором частотное преобразование не используется; и
блок переупорядочивания данных выполнен таким образом, чтобы всегда обрабатывать DPCM кодированные данные в режиме преобразования с пропуском.
(18) Устройство по любому из (15)-(17), причем устройство выполнено с возможностью ассоциирования двух или более флагов с кодированными данными, причем указанные два или более флагов определяют, следует или нет применять операцию переупорядочения данных в отношении двух или более соответствующих перестановок параметров кодирования.
(19) Устройство по (18), в котором параметры кодирования включают в себя некоторые или все из определений:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока;
используется ли DPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(20) Устройство по (19), в котором параметры кодирования включают в себя все определения:
используется ли межкадровое кодирование изображения, внутрикадровое кодирование изображения или внутрикадровое кодирование с копированием блока; используется ли DPCM операция; и
используется ли преобразование с пропуском или транс-квант обходной режим.
(21) Устройство по любому из (15)-(20), причем устройство выполнено с возможностью ассоциирования флага с закодированными данными, указывающего следует ли применять операцию переупорядочивания данных к данным, подвергнутым DPCM кодированию или к данным, подлежащим DPCM кодированию.
(22) Устройство по любому из (8)-(21), в котором, для DPCM данных порядок обработки представляет собой порядок обработки горизонтального сканирования или вертикального сканирования.
(23) Устройство по любому из (8)-(22), при этом устройство содержит в тракте декодирования декодер остаточной дифференциальной импульсно-кодовой модуляции (RDPCM), выполненный с возможностью применения операции дифференциальной импульсно-кодовой модуляции к энтропийно-декодированным значениям видеоданных для генерирования массива значений RDPCM данных.
(24) Устройство по (23), в котором DPCM декодер выполнен с возможностью обрезки DPCM декодированных данных до приемлемого диапазона числовых значений для таких данных.
(25) Устройство по (23), в котором DPCM декодер выполнен с возможностью прерывания процесса декодирования значений энтропийно-декодированных видеоданных, если одно или более значений DPCM декодированных данных превышает приемлемый числовой диапазон для таких данных.
(26) Устройство захвата, хранения, передачи и/или записи видеоданных, содержащее устройство по любому из (1)-(25).
(27) Способ кодирования видеоданных для кодирования массива значений входных видеоданных, причем способ содержит:
применение операции дифференциальной импульсно-кодовой модуляции (DPCM) к массиву значений входных видеоданных, для генерирования массива значений DPCM данных;
квантование данных, полученных из значений DPCM данных; и
управление выбором операции округления посредством квантователя из двух или более кандидатов операций округления.
(28) Компьютерное программное обеспечение, которое при выполнении компьютером, вызывает компьютер выполнять способ по (27).
(29) Энергонезависимый машиночитаемый носитель данных, на котором хранится компьютерное программное обеспечение, по (28).