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

Область техники, к которой относится изобретение
Изобретение относится к кодированию и декодированию данных.
Уровень техники
Приводимое здесь описание "предшествующего уровня техники" имеет своей целью общее представление контекста раскрываемого изобретения. Работа названных в настоящей заявке изобретателей, в той мере, в которой она описывается в этом разделе "Предшествующий уровень техники", также как те аспекты описания, которые не могут быть иным образом квалифицированы как предшествующий уровень техники во время подачи заявки, ни явно, ни подразумеваемым образом не признаются в качестве предшествующего уровня техники в отношении настоящего раскрываемого изобретения.
Существует несколько систем сжатия и разуплотнения видеоданных, которые включают в себя преобразование видеоданные в представлении в частотной области, квантование коэффициентов частотной области и затем применение к квантованным коэффициентам некоторой формы энтропийного кодирования.
Преобразование в пространственно-частотную область на стороне кодера соответствует обратному преобразованию на стороне декодера. Приводимые в качестве примера преобразования включают в себя так называемое дискретное косинусное преобразование (DCT) и так называемое дискретное синусное преобразование (DST). В некоторых примерах эти преобразования выполняются посредством матричного умножения массива входных отсчетов (получаемых из видеоданных, подлежащих кодированию) на матрицу коэффициентов преобразования, генерируя данные, преобразованные по частоте. Преобразованные по частоте данные преобразуются в обратном направлении в данные отсчетов, из которых можно получить выходные видеоданные посредством матричного умножения массива данных, преобразованных по частоте, на матрицу коэффициентов обратного преобразования.
Некоторые стандарты и проекты стандартов, такие как так называемые стандарты Высокоэффективного кодирования видеоданных (HEVC-стандарты), определяют режимы кодирования и декодирования, в которых фактически не используется пространственно-частотное преобразование. Они иногда упоминаются как режимы "пропуска преобразования" или "пропуска преобразования-квантования" ("пропуска trans-quant", где "trans-quant" представляет собой сокращение для "преобразования и квантования").
Раскрытие изобретения
Один аспект этого раскрываемого изобретения определен пунктом (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 схематически проиллюстрирован массив отсчетов;
на фиг. 16 схематически проиллюстрирован массив частотно разнесенных коэффициентов;
на фиг. 17 схематически проиллюстрирована тенденция внутри массива, показанного на фиг. 16;
на фиг. 18 схематически проиллюстрировано обратное сканирование;
на фиг. 19 схематически проиллюстрирована тенденция внутри списка масштабирования;
на фиг. 20 схематически проиллюстрирована погрешность изображения;
фиг. 21 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована часть операции кодирования;
фиг. 22 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована часть операции декодирования;
на фиг. 23 схематически проиллюстрирована часть кодера и/или декодера;
фиг. 24 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована часть операции кодирования и/или декодирования;
на фиг. 25 схематически проиллюстрирована часть кодера и/или декодера; и
фиг. 26 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована часть операции кодирования и/или декодирования.
Описание вариантов воплощения изобретения
Обратимся теперь к чертежам, на которых фиг. 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-преобразования) представление данных разностного изображения. Сама технология дискретного косинусного преобразования хорошо известна и не будет здесь описываться подробно. Однако существуют аспекты этих технологий, используемые в настоящем аппарате, которые будет описаны ниже более подробно.
Отметим, что в некоторых вариантах воплощения изобретения, вместо дискретного косинусного преобразования используется дискретное синусное преобразование (DST-преобразование). В других вариантах воплощения изобретения, могло бы не использоваться никакого преобразования. Это может быть сделано избирательным образом, так, чтобы стадия преобразования, в действительности, обходилась, например, под управлением команды или режима "пропуска преобразования".
Выходные данные с блока (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) обратного преобразования, прежде, чем быть просуммированным, сумматором (450), с выходными данными предсказателя (320) изображения. Простыми словами, выход (460) сумматора (450) формирует выходной разуплотненный видеосигнал (480). На практике, перед тем, как этот сигнал выводится, к нему может быть применено дополнительное фильтрование.
Соответственно, на фиг. 5 приведен пример аппарата декодирования видеоданных, действующего таким образом, чтобы декодировать массив значений закодированных видеоданных, причем аппарат содержит: деквантователь, сконфигурированный таким образом, чтобы осуществлять деквантование массива значений закодированных видеоданных, применяя к каждому значению данных некоторый параметр деквантования, так, чтобы сгенерировать соответствующие значения деквантованных данных; и блок обратного частотного преобразования, сконфигурированный таким образом, чтобы применять обратное частотное преобразование к значениям деквантованных данных. На фиг. 5 также приведен пример аппарата кодирования видеоданных, действующего таким образом, чтобы кодировать массив значений входных видеоданных в режиме "пропуска преобразования" и, если требуется, то в режиме "отсутствия пропуска преобразования" (рассматриваемого дополнительно ниже), причем аппарат содержит: частотный преобразователь, сконфигурированный таким образом, чтобы применять частотное преобразование к значениям входных видеоданных для того, чтобы сгенерировать массив значений частотно преобразованных входных данных; и квантователь, сконфигурированный таким образом, чтобы осуществлять квантование значений частотно преобразованных входных данных, применяя некоторый параметр квантования к каждому значению частотно преобразованных входных данных для того, чтобы сгенерировать соответствующие значения квантованных данных. Отметим, что выражение "если требуется" используется для того, чтобы указать, что аппарат может действовать в режиме "пропуска преобразования", и режиме "отсутствия пропуска преобразования", где выбор режима производится на поблочной основе (например, от элемента преобразования к элементу преобразования) или другой основе, или может представлять собой аппарат, который не действует в режиме "отсутствия пропуска преобразования".
На фиг. 6 схематически проиллюстрировано генерирование предсказанных изображений, и, в частности, работа предсказателя (320) изображения.
Имеется два основных режима предсказания: так называемое внутрикадровое предсказание и так называемое межкадровое предсказание или предсказание с компенсацией движения (МС-предсказание).
Во внутрикадровом предсказании предсказание содержания блока изображения основывается на данных из того же самого изображения. Это соответствует так называемому I-кадровому кодированию в других технологиях сжатия видеосигнала. В отличие от I-кадрового кодирования, где все изображение кодируется внутрикадровым образом, в настоящих вариантах воплощения изобретения выбор между внутрикадровым кодированием и межкадровым кодированием может быть сделан на поблочной основе, хотя в других вариантах воплощения изобретения этот выбор по-прежнему делается на покадровой основе.
В предсказании с компенсацией движения используется информация движения, которая пытается определять первоисточник, на другом смежном или соседнем изображении, для детали изображения подлежащей кодированию на текущем изображении. Соответственно, в идеальном примере, содержание блока данных изображения на предсказанном изображении может быть закодировано очень просто как ссылка (вектор движения), указывающая на соответствующий блок в том же самом или немного другом положении на смежном изображении.
Возвратимся к фиг. 6, на которой показаны два устройства предсказания изображения (соответствующие внутрикадровому и межкадровому предсказанию), результаты которых выбираются мультиплексором (500) под управлением сигнала (510) режима таким образом, чтобы предоставлять блоки предсказанного изображения для подачи на сумматоры (310) и (450). Этот выбор производится в зависимости от того, какой выбор дает самую низкую "энергию" (которую, как было сказано выше, можно рассматривать как информационное содержимое, требующее кодирование), и об этом выборе сообщается кодеру в потоке закодированных выходных данных. Энергию изображения, в этом контексте, можно определить, например, осуществляя пробное вычитание некоторой области двух вариантов предсказанного изображения из входного изображения, возводя в квадрат каждое пиксельное значение изображения разности, суммируя эти возведенные в квадрат значения, и определяя то, какая из этих двух версий имеет своим результатом более низкое среднеквадратическое значение для изображения разности, относящегося к этой области изображения.
Действующее предсказание, в системе внутрикадрового кодирования, производится на основе блоков изображения, получаемых как часть сигнала (460), что означает, что предсказание основывается на закодированных-декодированных блоках изображения для того, чтобы точно такое же предсказание могло быть сделано в аппарате разуплотнения. Однако, данные для управления функционированием внутрикадрового предсказателя (530) могут быть получены из входного видеосигнала (300) переключателем (520) внутрикадрового режима.
Для межкадрового предсказания, предсказатель (540) с компенсацией движения (МС-предсказатель) использует информацию о движении, такую как векторы движения, получаемую блоком (550) оценки движения из входного видеосигнала (300). Эти векторы движения применяются к обработанной версии восстановленного изображения (460) предсказателем (540) с компенсацией движения таким образом, чтобы сгенерировать блоки межкадрового предсказания.
Теперь опишем обработку, применяемую к сигналу (460). Во-первых, этот сигнал фильтруется фильтровальным блоком (560). Это включает в себя применение фильтра "устранения блочности" для того, чтобы удалить или, по меньшей мере, способствовать снижению эффектов основанной на блоках обработки, осуществляемой блоком (340) преобразования, и последующих операций. Кроме того, применяется адаптивный фильтр в цепи обратной связи, использующий коэффициенты, полученные посредством обработки восстановленного сигнала (460) и входного видеосигнала (300). Адаптивный фильтр в цепи обратной связи представляет собой тип фильтра, который, используя известные технологии, применяет к подлежащим фильтрованию данным коэффициенты адаптивного фильтра. То есть коэффициенты фильтра могут различаться в зависимости от разнообразных факторов. Данные, определяющие то, какие коэффициенты фильтра надлежит использовать, включаются как часть в состав потока закодированных выходных данных.
Фильтрованные выходные данные из фильтровального блока (560) фактически образуют выходной видеосигнал (480). Они также буферизируются в одном или более устройствах (570) запоминания изображений; хранение последовательных изображений является требованием обработки для предсказания с компенсацией движения, и, в частности, генерирования векторов движения. Для сохранения по требованиям хранения, хранящиеся изображения в устройствах (570) запоминания изображений, могут храниться в сжатой форме и затем разуплотняться для использования при генерировании векторов движения. Для этой конкретной цели, может быть использована любая известная система сжатия/разуплотнения. Хранящиеся изображения передаются на интерполяционный фильтр (580), который генерирует версию с более высоким разрешением хранящихся изображений; в этом примере генерируются промежуточные отсчеты (подотсчеты) таким образом, чтобы разрешение интерполированного изображения, которое выводится интерполяционным фильтром (580) являлось восьмикратным (по каждому измерению) разрешением изображений, хранящихся в устройствах (570) запоминания изображений. Интерполированные изображения передаются, в качестве входных данных в блок (550) оценки движения и также в предсказатель (540) с компенсацией движения.
В вариантах воплощения изобретения, предусматривается дополнительная необязательная стадия, которая заключается в том, чтобы, используя блок (600) перемножения, умножать значения данных входного видеосигнала на множитель, составляющий четыре (на самом деле, просто сдвигая значения данных влево на два разряда), и применять соответствующую операцию деления (сдвиг вправо на два разряда) на выходе из аппарата, используя блок деления или блок (610) сдвига вправо. Таким образом, сдвиг влево и сдвиг вправо изменяет данные исключительно для внутренней работы аппарата. Эта мера может обеспечить более высокую точность вычисления внутри аппарата, поскольку уменьшается влияние любых погрешностей округления данных.
Теперь опишем способ, которым изображение разделяется для обработки сжатия. На базовом уровне, изображение, подлежащее сжатию, рассматривается как массив блоков отсчетов. Для целей данного обсуждения, наибольшее такой рассматриваемый блок представляет собой так называемый наибольший элемент кодирования (LCU-элемент) (700) (смотри фиг.7), который представляет квадратный массив из 64×64 отсчетов. Здесь, обсуждение относится к отсчетам яркости. В зависимости от режима цветности, такого как 4 : 4: 4, 4 : 2 : 2, 4 : 2 : 0 или 4 : 4 : 4 : 4 ("GBR" ("зеленый - синий - красный") плюс данные цвета фона), будут различаться количества соответствующих отсчетов сигнала цветности, соответствующих яркостному блоку.
Опишем три основных типа блоков: элементы кодирования, элементы предсказания и элементы преобразования. В общих чертах, рекурсивное подразбиение наибольших элементов кодирования позволяет разделить входное изображение таким образом, чтобы как размеры блока, так и параметры кодирования блока (такие как, режимы предсказания или разностного кодирования) могли быть заданы в соответствии с конкретными характеристиками кодируемого изображения.
Наибольший элемент кодирования может быть подразделен на так называемые элементы кодирования (CU-элементы). Элементы кодирования всегда являются квадратными и имеют размер между 8×8 отсчетов и полным размером наибольшего элемента (700) кодирования. Элементы кодирования могут быть организованы как своего рода древовидная структура, так, чтобы первое подразбиение могло иметь место таким образом, как показано на фиг. 8, давая элементы (710) кодирования, состоящие из 32×32 отсчетов; последующие подразбиения могут затем производиться на избирательной основе таким образом, чтобы давать некоторые элементы (720) кодирования, состоящие из 16×16 отсчетов (смотри фиг. 9) и, потенциально, некоторые элементы (730) кодирования, состоящие из 8×8 отсчетов (смотри фиг. 10). В целом, этот процесс может обеспечить древовидную структуру контекстно-адаптирующегося кодирования CU-блоков, каждый из которых может быть таким большим, как наибольший элемент кодирования, или таким малым, как 8×8 отсчетов. Кодирование выходных видеоданных происходит на основе структуры элементов кодирования.
На фиг. 11 схематически проиллюстрирован массив элементов предсказания (PU-элементов). Элемент предсказания представляет собой базовый элемент для переноса информации, касающейся процессов предсказания изображения, или, другими словами, дополнительных данных, добавляемых к данным энтропийно закодированного разностного изображения для того, чтобы сформировать выходной видеосигнал из аппарата, показанного на фиг. 5. Вообще говоря, элементы предсказания не ограничены тем, чтобы быть квадратными по форме. Они могут принимать и другие формы, в частности, прямоугольные формы, образующие половину одного из квадратных элементов кодирования, до тех пор, пока элемент кодирования больше, чем минимальный размер (8×8). Цель состоит в том, чтобы позволить границе примыкающих друг к другу элементов предсказания совпадать (настолько близко, насколько это возможно) с границей реальных объектов на изображении, так, чтобы к различным реальным объектам могли быть применены различные параметры предсказания. Каждый элемент кодирования может содержать один или более элементов предсказания.
На фиг. 12 схематически проиллюстрирован массив элементов преобразования (TU-элементов). Элемент преобразования представляет собой базовый элемент процесса квантования и преобразования. Элементы преобразования всегда являются квадратными и могут принимать размер от 4×4 до 32×32 отсчетов. Каждый элемент кодирования может содержать один или более элементов преобразования. Аббревиатура SDIP-P на фиг.12 означает так называемый ближний сегмент внутрикадрового предсказания. В этом устройстве используются только одномерные преобразования, таким образом, блок размером 4×N проходит через N преобразований, притом что входные данные для этих преобразований основываются на предварительно декодированных соседних блоках и предварительно декодированных соседних строках внутри текущего SDIP-P.
В устройствах, рассмотренных выше, квантование применяется к частотно разделенным коэффициентам, например, как деление величин коэффициентов (знаки коэффициентов сохраняются отдельно) в элементе преобразования (TU-элементе) на делитель (qStep) квантования, выводимый из параметра (Qp) квантования, применимого к этому блоку, в соответствии с выражением:
qStep=baseQStep[Qp% 6]<<(Qp/6).
Здесь, знак процента (%) указывает функцию модуля, так что А % В равно остатку при делении А на В. Знак << указывает сдвиг разрядов влево на значение, задаваемое после знака <<, так что, например, << 3 представляет сдвиг влево на три позиции разряда. Переменная baseQStep представляет собой функцию индекса, изменяющегося между 0 и 5, представленного Qp % 6. Так, в соответствии с релевантным индексом Qp % 6 применяется (потенциально) отличное от других значение baseQStep.Функция int обозначает целочисленное значение.
Для простоты вычисления, в некоторых вариантах воплощения кодера предварительно вычисляется обратная величина baseQStep, и сдвигается влево на некоторое количество разрядов, такое как 14 разрядов, давая значения inverseQStep, которые затем умножаются на величины коэффициентов. Причина для этого заключается в том, что операции умножения в некоторых устройствах реализовать более просто, чем операции деления.
Это дает следующую комбинированную операцию:
выход = ((вход × inverseQStep) + rounding) >> qBits,
где qBits = 14 + int (Qp/6) + transformShift.
Здесь transformShift (сдвигПреобразования) представляет компенсацию для любого дополнительного сдвига, налагаемого процессом преобразования.
В некоторых вариантах воплощения изобретения, используются так называемые списки масштабирования как механизм, для дополнительного варьирования степени квантования, применимой к различным коэффициентам в элементе преобразования. Позиция каждого коэффициента ассоциативно связана с соответствующей записью в списке масштабирования. Значение из списка масштабирования используется для того, чтобы изменить делитель квантования. В некоторых вариантах воплощения изобретения, значение из списка масштабирования, составляющее десятичное число 16, соответствует отсутствию изменения, что означает то, что оно оставляет делитель неизменным. В некоторых вариантах воплощения изобретения, значения из списка масштабирования используются для того, чтобы модифицировать значение inverseQStep, используемое в вышеприведенных уравнениях, так что:
inverseQStep = (inverseQStep << 4) / значение из списка масштабирования.
Выше была введена переменная rounding ("округление"). Перед сдвигом вправо на qBits, прибавляется некоторое значение для того, чтобы округлить конечный результат. Округление может быть применено множеством способов, таких как округление до ближайшего целого числа или округление до следующего более высокого целого числа.
На фиг. 13 схематически проиллюстрировано использование списков масштабирования, которые обсуждаются выше. Преобразованные коэффициенты (800) принимаются квантователем (350) от блока (340) преобразования. Используется некоторый подходящий список (810) масштабирования (например, выбранный таким образом, чтобы соответствовать размеру блока или другим параметрам сжатия изображения).
Как было упомянуто выше, имеется взаимно-однозначное соответствие между записями в списке (810) масштабирования и преобразованными коэффициентами. Генератор (820) адресов предоставляет адреса для поиска каждого преобразованного коэффициента и соответствующей записи в списке масштабирования. Они передаются в блок, схематически именуемый как блок (830) деления, наряду с другими параметрами квантования (такими как те, что обсуждались выше). Блок (830) деления осуществляет вычисление, как показано выше, используя записи из списка масштабирования и другие параметры для того, чтобы сгенерировать квантованные данные (840). Отметим, что блок деления может на самом деле выполнять операцию умножения, основанную на обратных величинах параметров квантования, но общий результат является тем же самым, что и при делении, рассмотренном выше.
На фиг. 14 схематически проиллюстрирована часть кодера и/или декодера, и, в частности, она соответствует части устройства, показанного на фиг. 5 и рассмотренного выше. Соответствующие списки масштабирования подаются в блок (350) квантования и блок (420) процесса, обратного квантованию (который может быть частью обратного канала кодера или может быть частью автономного декодера). На стадии декодирования, подходящий список масштабирования может быть выбран как некоторая предварительно заданная функция других параметров кодирования или в ответ на данные в потоком сжатых данных или ассоциативно связанные с ним, которые определяют список масштабирования, подходящий для использования.
На фиг. 15 схематически проиллюстрирован массив отсчетов. Они фактически представляют отсчеты разностного изображения (330), рассмотренного выше, и нарисованы в своих соответствующих относительных пространственных позициях, что означает то, что отсчет (900) лежит в верхнем левом углу массива, состоящего из 4×4 смежных отсчетов, а отсчет (910) лежит в нижнем правом углу такого массива, в отношении позиций этих отсчетов внутри изображения.
Следует конечно же понимать, что массив размером 4×4, показанный на фиг. 15, является лишь примером; обсуждаемые здесь технологии и атрибуты могут применяться к массивам разнообразных других размеров, таких как 8×8, 16×16, 32×32 и так далее. Действительно, хотя на фиг. 15-19 проиллюстрирован массив размером 4×4, главным образом для того, чтобы сделать чертежи более простыми и более легкими для понимания, в некоторых вариантах воплощения изобретения размеры массива, для которых применяются технологии, которые будут описаны ниже, составляют только 8×8, 16×16 и 32×32. Другими словами, в этих вариантах воплощения изобретения, технологии, которые будут описаны ниже, на самом деле не применяются к массивам размером 4×4. Однако, следует понимать, что описание массива размером 4×4 используется здесь для ясности объяснения. Отметим, что термин "размер массива" может относиться к размеру массива значений закодированных данных (то есть, в этом контексте, значений данных на входе на стадию деквантователя), или массива значений частотно преобразованных входных данных (то есть, в этом контексте, значений данных на входе на стадию квантователя).
Отсчеты, показанные на фиг. 15, обрабатываются блоком (340) преобразования таким образом, чтобы сгенерировать частотно разнесенные коэффициенты. На фиг. 16 схематически проиллюстрирован массив таких частотно разнесенных коэффициентов. Здесь, позиция коэффициента внутри массива представляет пространственные частоты, соответствующие этому коэффициенту. Обычно, верхнюю левую позицию в массиве занимает так называемый коэффициент (920) постоянного тока. Перемещение по направлению вправо внутри массива, показанного на фиг. 16, указывает на увеличивающуюся горизонтальную частотную составляющую, а перемещение по направлению вниз массива, показанного на фиг. 16, указывает на увеличивающуюся вертикальную частотную составляющую. Отметим, что, хотя представлять массив коэффициентов таким образом (а, например, не располагая коэффициент постоянного тока в нижнем правом углу) является условностью, порядок следования коэффициентов технически важен для других частей этого процесса. Одна причина для этого схематически проиллюстрирована стрелкой (930) пунктирной линии на фиг. 16, которая указывает на то, что перемещение от нижних правых к верхним левым позициям внутри массива, показанного на фиг. 16, соответствует обычно увеличивающейся важности коэффициентов для восстановления изображения. То есть, для того, чтобы восстановить массив или блок отсчетов, показанный на фиг.15, самым важным из коэффициентов, показанных на фиг. 16, является коэффициент (920) постоянного тока, за которым следуют, по своей важности, коэффициенты более низких горизонтальных и вертикальных частот.
В общих чертах, эта тенденция важности может также соответствовать тенденции, относящейся к величине коэффициентов, поскольку величина коэффициента постоянного тока может иметь тенденцию к тому, чтобы быть наибольшей внутри набора коэффициентов, получаемых из блока отсчетов. На фиг. 17 схематически проиллюстрирована такого рода тенденция внутри массива, показанного на фиг. 16, при которой меньшие значения имеют тенденцию находиться около нижней правой части массива, а большие значения имеют тенденцию находиться около верхнего левого угла массива. Конечно, конкретный индивидуальный массив коэффициентов может отличаться от этой общей тенденции.
Один аспект, в котором рассмотренные выше тенденции являются технически значимыми, относится к стадии энтропийного кодирования, осуществляемой энтропийным кодером (370), показанным на фиг. 5. Общий принцип, применяемый к этому типу энтропийного кодирования, заключается в том, что оно работает более эффективно при обработке значений данных меньшей величины, имеющихся внутри блока, прежде обработки значений данных большей величины. Соответственно, в случае, при котором частотно разнесенные коэффициенты подвергаются энтропийному кодированию (независимо от того, используется ли промежуточная стадия квантования), используется так называемый шаблон "обратного сканирования" для выбора данных в надлежащем порядке для энтропийного кодирования. На фиг. 18 схематически проиллюстрирован пример обратного сканирования. Этот пример относится к так называемому обратному диагональному сканированию, которое начинается с коэффициента (940) в нижнем правом углу массива коэффициентов и продвигается до коэффициента (920) постоянного тока в соответствии с показанным диагональным шаблоном. Этот шаблон означает, что, вообще говоря, коэффициенты с меньшими значениями кодируются прежде коэффициентов с большими значениями.
Тенденция в отношении важности также относится к значениям списка масштабирования, и, на самом деле, одна цель списка масштабирования заключается в том, чтобы позволить применять в различных позициях коэффициентов внутри массива различное квантование. В общих чертах, как схематически показано на фиг. 19, значения из списка масштабирования (одно значение или запись для каждой позиции в массиве в видеоданных, подлежащих квантованию или деквантованию) имеют тенденцию быть наименьшими в позиции в массиве, соответствующей коэффициенту постоянного тока, и имеет тенденцию становиться больше с увеличением горизонтальной и вертикальной пространственной частоты. Отметим, что меньшее значение в списке масштабирования соответствует менее грубому квантованию.
Эти технологии могут работать успешно в отношении частотно преобразованных данных. Однако, если частотное преобразование не используется, например в так называемом режиме "пропуска преобразования" (в котором, как предполагает название, частотное преобразование не используется), тогда, данные внутри массива значений, подлежащих квантованию, не будут демонстрировать описанных выше тенденции ни в отношении важности, ни в отношении численного значения, и никакой разброс в грубости квантования не будет сглаживаться на данных реконструированного изображения благодаря процессу обратного преобразования. Вместо этого списки масштабирования просто приводят к тому, что на изображение накладывается некоторый периодический шаблон переменного квантования быть. В блоке "пропуска преобразования", к верхнему левому участку будет применено менее грубое квантование, а к нижнему правому участку будет применено более грубое квантование, но в том, что касается восстановленного изображения, все позиции на изображении внутри блока пропуска преобразования являются одинаково значимыми, и они все корреспондируют соответствующим позициям на изображении, имеющимся на восстановленном изображении. Так, в качестве схематического примера, на фиг.20 схематически показан тип погрешности, которую можно увидеть в случае, если списки масштабирования используются с данными, который не были частотно преобразованы. Каждый блок демонстрирует более высокое качество изображения около своего верхнего левого угла, что приводит к эффекту "рыбной чешуи", как это проиллюстрировано на фигуре.
Для решения этой проблемы, в рамках настоящих вариантов воплощения изобретения предлагаются различные варианты.
Например, в некоторых вариантах воплощения изобретения, в режиме "пропуска преобразования", использование списков масштабирования запрещено или не допускается, так что квантование или деквантование является независимым от позиции каждого значения данных внутри массива. Например, декодер может содержать некоторый определитель (например, реализуемый посредством контроллера (345)), сконфигурированный таким образом, чтобы определять то, применим ли к массиву значений закодированных видеоданных режим "пропуска преобразования"; при этом: если определитель определяет, что режим "пропуска преобразования" не применим к этому массиву значений закодированных видеоданных, то определитель управляет деквантователем таким образом, чтобы применять параметры декватования, которые могут различаться между значениями данных в этом массиве значений закодированных данных в соответствии с позицией каждого значения данных внутри массива, и управляет блоком обратного частотного преобразования таким образом, чтобы применять к значениям деквантованных данных обратное частотное преобразование; и если определитель определяет, что режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, то определитель управляет деквантователем таким образом, чтобы применять параметры деквантования, которые, для каждого массива значений закодированных данных, являются независимыми от позиции каждого значения данных внутри массива, и управляет блоком обратного частотного преобразования таким образом, чтобы не применять к значениям деквантованных данных обратное частотное преобразование. На стороне кодера, если режим "пропуска преобразования" не применим к этому массиву значений входных видеоданных, то контроллер (345) управляет частотным преобразователем таким образом, чтобы применять частотное преобразование, и управляет квантователем таким образом, чтобы применять параметры квантования, которые могут различаться между значениями данных в массиве значений частотно преобразованных входных данных в соответствии с позицией каждого значения частотно преобразованных входных данных внутри массива; и если режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, то контроллер (345) управляет частотным преобразователем таким образом, чтобы не применять частотное преобразование, и управляет квантователем таким образом, чтобы осуществлять квантование значений входных видеоданных, применяя параметры квантования, которые, для каждого массива значений входных данных, являются независимыми от позиции каждого значения входных данных внутри массива.
В некоторых вариантах воплощения изобретения, вместо использования списка масштабирования, представляющего различные значения, соответствующие различным позициям коэффициентов, либо используется список масштабирования, содержащий одно и то же значение (то есть, каждая запись списка масштабирования, имеющаяся в списке масштабирования, имеет одно и то же численное значение), либо вместо списка масштабирования предусматривается единственное значение, и это единственное значение используется вместо записи из списка масштабирования при соответствующем вычислении для каждого коэффициента. Например, такого рода единственное значение (или аналогичное ему) может быть использовано в режиме "пропуска преобразования". В качестве потенциальной модификации этих вариантов воплощения изобретения, это единственное значение (будь то отправляемое или хранящееся как индивидуальное значение или как множественные экземпляры одного и того же значения в эквиваленте списка масштабирования) может представлять собой отличное от других единственное значение, зависящее, например, от размера массива или от видеоканала.
Пример списка масштабирования, содержащего одно и то же, идентичное друг другу, значение, показан ниже:
Такого рода список масштабирования для режима "пропуска преобразования" может быть выбран из некоторого набора, состоящего из двух или более различных списков масштабирования для режима "пропуска преобразования", (например, контроллером (345)) в соответствии с одним или более параметрами кодирования закодированных видеоданных. В качестве альтернативы, список масштабирования для режима "пропуска преобразования" может быть предусмотрен в потоке данных, содержащем массив значений закодированных данных. В качестве альтернативы, контроллер может выводить значение списка масштабирования преобразования из одного или более значений списка масштабирования, который был бы применим для использования в отношении этого массива значений данных в случае, если бы режим "пропуска преобразования" не был выбран, таких как одно или более значений в соответствующих предварительно выбранных местах в этом списке масштабирования.
Сначала, в качестве подготовки к нижеследующим обсуждениям, отметим, что фиг. 21 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована часть операции кодирования, а фиг. 22 представляет собой эскизную блок-схему алгоритма, на которой проиллюстрирована соответствующая часть операции декодирования (признаки которой также относятся к обратному каналу декодирования, относящемуся к кодеру).
Обратимся к фиг. 21, на которой, если на этапе (1000) разрешен режим "пропуска преобразования" (то есть, такого рода режим сделан возможным в контекста текущей операции кодирования), то на этапе (1010) с потоком видеоданных связывают флаг "разрешения пропуска преобразования". В одном примере, такого рода флаг может предоставляться один раз на кадр. Если флаг "разрешения пропуска преобразования" установлен, то кодер будет предоставлять (а декодер будет искать) флаг, относящийся к элементу преобразования и указывающий на то, был ли пропуск преобразования применен к этому элементу преобразования. Если флаг "разрешения пропуска преобразования" не установлен, то кодер не будет предоставлять (а декодер не будет искать) этот флаг, относящийся к элементу преобразования.
Отметим, что в некоторых кодерах, режим "пропуска преобразования" может быть обязательным по конструктивными параметрами этого конкретного кодера. В других кодерах, для определения того, применим ли режим "пропуска преобразования" к текущему массиву значений входных видеоданных может быть сконфигурирован некоторый определитель (например, реализуемый посредством контроллера (345)).
На этапе (1020), контроллер (345) определяет, для каждого элемента преобразования, то, использовать ли пропуск преобразования. В некоторых примерах, это может быть выполнено посредством тестирования режима "пропуска преобразования" и других режимов, использующих преобразования, и выбора режима в зависимости от оценки функции стоимости, которая может относиться к одному или более показателей из числа: количества данных, сгенерированных в отношении этого режима, и ошибок в данных, сгенерированных в отношении этого режима. Если выбран режим "пропуска преобразования", то управление переходит на этап (1030), на котором элемент преобразования кодируется с использованием режима "пропуска преобразования", а затем - на этап (1040), на котором устанавливается рассмотренный выше флаг, относящийся к элементу преобразования, для указания того, что был использован режим "пропуска преобразования".
С другой стороны, если на этапе (1000) режим "пропуска преобразования" не разрешен, или если на этапе (1020) режим "пропуска преобразования" не выбран для конкретного элемента преобразования, то кодирование элемента преобразования происходит на этапе (1050) с использованием частотного преобразования.
Оба этапа (1040) и (1050) передают управление на заключительный этап (1060), на котором формируется поток выходных данных с использованием закодированных данных и, в надлежащих случаях, флагов и/или значений списка масштабирования и/или единственных значений.
Соответствующие операции декодера схематически проиллюстрированы на фиг. 22. На этапе (1100) осуществляют определение того, разрешен ли режим "пропуска преобразования", исследуя самый последний экземпляр флага "разрешения пропуска преобразования". Если режим "пропуска преобразования" разрешен, то, на этапе (1110), для каждого элемента преобразования проверяют флаг, относящийся к элементу преобразования. Если для конкретного элемента преобразования выбран режим пропуска, то этот элемент преобразования декодируется на этапе (1120) без использования обратного преобразования. Если, однако, для элемента преобразования не выбран режим пропуска, или (на этапе (1100) режим пропуска не разрешен, то на этапе (1130), прежде, чем управление передается на этап (1120), применяется обратное преобразование.
На фиг. 23 схематически проиллюстрирована часть кодера и/или декодера, аналогично тому, как это сделано на фиг. 14. На самом деле, многие из частей являются идентичными и не будут дополнительно здесь описываться.
Управляющий сигнал, например от контроллера (345), подается на мультиплексор (1200) и схематический переключатель (1210). Этот управляющий сигнал указывает на то, применим ли режим "пропуска преобразования" к текущему элементу преобразования.
Если режим "пропуска преобразования" применим, то схематический переключатель (1210) замыкается таким образом, чтобы направлять данные в обход блока (340) преобразования или, другими словами, не дать блоку (340) преобразования применить к текущему блоку данных частотное преобразование. Аналогичным образом, мультиплексором (1200) управляют таким образом, чтобы, взамен списка (1220) масштабирования, в квантователь (350) для использования вместо списка масштабирования предоставлялось или подставлялось единственное значение данных, применимое ко всем позициям в массиве данных. Соответственно использование списка масштабирования запрещается.
Это единственное значение данных может быть предоставлено в потоке данных, содержащем массив значений закодированных данных. В качестве альтернативы, контроллер (345) может вывести это единственное значение данных из одного или более значений из списка масштабирования, который был бы применим для использования в отношении этого массива значений закодированных видеоданных в случае, если бы режим "пропуска преобразования" не был выбран. Только в порядке примера отметим, что это единственное значение может быть сделано равным значению из списка масштабирования, применимому к верхнему левому значению (постоянного тока) в массиве, или может представлять собой некоторое среднее значение, такое как среднюю величину верхних левых четырех значений из списка масштабирования. В качестве альтернативы, это единственное значение данных может быть выбрано из некоторого набора, состоящего из двух или более различных единственных значений данных, в соответствии с одним или более параметрами кодирования закодированных видеоданных. Например, это единственное значение может быть выбрано в зависимости от размера блока, такого как размер элемента преобразования.
С другой стороны, если это применимо к элементу преобразования, то схематический переключатель (1210) разомкнут таким образом, чтобы блок (340) преобразования был разблокирован, и мультиплексором (1200) управляют таким образом, чтобы передавать список (1220) масштабирования, а не единственное значение (1230).
Аналогичным образом, в канале декодирования, соответствующий схематический переключатель (1240) управляет работой или шунтированием блока (430) обратного преобразования, вновь под управлением управляющего сигнала от контроллера (345). Другой схематический мультиплексор (1250) предусматривается таким образом, чтобы передавать либо список (1220) масштабирования, либо единственное значение (1230), применимые к текущему элементу кодирования, блок (420) процесса, обратного квантованию. Как и прежде, в режиме "пропуска преобразования", блок (430) обратного преобразования не используется, и в блок (420) процесса, обратного квантованию, передается единственное значение (1230). В режиме "отсутствия пропуска преобразования" используется список (1220) масштабирования, и блока (430) обратного преобразования разблокирован.
Эти операции обобщены на эскизной блок-схеме алгоритма, показанной на фиг. 24. Если, на этапе (1300), режим "пропуска преобразования" применим, то на этапе (1310) для этого элемента преобразования вместо списка масштабирования используется единственное значение. С другой стороны, если, на этапе (1300), режим "пропуска преобразования" не применим, то на этапе (1320) используется список масштабирования.
Аналогичное устройство показано на фиг. 25, и соответствующие признаки, уже описанные в отношении фиг. 23, не будут описываться снова. Различие между фиг. 25 и фиг. 23 заключается в том, что управляющий сигнал от контроллера (345) управляет модифицированными квантователем (350') и блоком (420') процесса, обратного квантованию, таким образом, чтобы либо использовать список (1220) масштабирования (в режиме "отсутствия пропуска преобразования"), либо не использовать список масштабирования (в режиме "пропуска преобразования"), так, чтобы использование списков масштабирования было, таким образом, запрещено. Здесь, неиспользование списка масштабирования означает просто осуществление вычислений, рассмотренных выше, для того, чтобы выполнять квантование, но без вклада в вычисления (то есть, их варьирования, от отсчета к отсчету), вносимого переменной списка масштабирования. Термин "неиспользование списка масштабирования" в предшествующем предложении может, конечно же, охватывать и использование единственного значения вместо списка масштабирования, как это обсуждалось выше.
Эта операция подытожена на эскизной блок-схеме алгоритма, показанной на фиг. 26. Если, на этапе (1400), режим "пропуска преобразования" применим, то на этапе (1410) для этого элемента преобразования список масштабирования не используется. С другой стороны, если на этапе (1400) режим "пропуска преобразования" не применим, то на этапе (1420) список масштабирования используется.
Следует понимать, что, хотя в вышеприведенных обсуждениях, режим "пропуска преобразования" выбирается на основе "от элемента преобразования к элементу преобразования", выбор может быть сделан в отношении более крупных блоков, таких как элементы кодирования или даже "слайсы" (последовательности макроблоков) или изображения.
Сигналы данных
Следует понимать, что сигналы данных, сгенерированные посредством вариантов аппарата кодирования, рассмотренного выше, и среды хранения или передачи, несущих такие сигналы, рассматриваются как представляющие варианты воплощения настоящего раскрываемого изобретения.
Поскольку варианты воплощения раскрываемого изобретения были описаны как реализованные, по меньшей мере, частично, посредством аппарата обработки данных, управляемого программными средствами, то следует понимать, что некратковременный машиночитаемый носитель информации, несущий такие программные средства, такой как оптический диск, магнитный диск, полупроводниковое запоминающее устройство или тому подобное, также рассматривается как представляющий вариант воплощения настоящего раскрываемого изобретения.
Будет очевидно, что в свете вышеупомянутых идей возможны многочисленные модификации и изменения настоящего раскрываемого изобретения. Следует поэтому понимать, что в рамках объема прилагаемой формулы изобретения, эта технология может быть осуществлена на практике иначе, чем было конкретно описано здесь.
Дополнительные соответствующие признаки настоящего раскрываемого изобретения определены нижеследующими пронумерованными пунктами:
1. Аппарат декодирования видеоданных, действующий таким образом, чтобы декодировать массив значений закодированных видеоданных, причем аппарат содержит:
деквантователь, сконфигурированный таким образом, чтобы осуществлять деквантование массива значений закодированных видеоданных, применяя к каждому значению данных некоторый параметр деквантования, так, чтобы сгенерировать соответствующие значения деквантованных данных;
блок обратного частотного преобразования, сконфигурированный таким образом, чтобы применять к этим значениям деквантованных данных обратное частотное преобразование; и
определитель, сконфигурированный таким образом, чтобы определять то, применим ли к этому массиву значений закодированных видеоданных режим "пропуска преобразования"; при этом:
если определитель определяет, что режим "пропуска преобразования" к этому массиву значений закодированных видеоданных не применим, то определитель управляет деквантователем таким образом, чтобы применять параметры деквантования, которые могут различаться между значениями данных в этом массиве значений закодированных данных в соответствии с позицией каждого значения данных внутри массива, и управляет блоком обратного частотного преобразования таким образом, чтобы применять к значениям деквантованных данных обратное частотное преобразование; и
если определитель определяет, что режим "пропуска преобразования" к этому массиву значений закодированных видеоданных применим, то определитель управляет деквантователем таким образом, чтобы применять параметры деквантования, которые, для каждого массива значений закодированных данных, являются независимыми от позиции каждого значения данных внутри массива, и управляет блоком обратного частотного преобразования таким образом, чтобы не применять к значениям деквантованных данных обратное частотное преобразование.
2. Аппарат в соответствии с пунктом 1, в котором деквантователь сконфигурирован таким образом, чтобы использовать параметры деквантования, зависящие от соответствующих записей в списке масштабирования, причем в списке масштабирования имеется одна запись для каждой позиции в массиве закодированных видеоданных.
3. Аппарат в соответствии с пунктом 1 или пунктом 2, в котором определитель действует таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, запрещать использование, деквантователем, списка масштабирования.
4. Аппарат в соответствии с пунктом 2, в котором деквантователь сконфигурирован таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, использовать список масштабирования для режима "пропуска преобразования", в каковом списке все значения списка масштабирования являются идентичными друг другу.
5. Аппарат в соответствии с пунктом 4, в котором список масштабирования для режима "пропуска преобразования" выбирается из некоторого набора, состоящего из двух или более различных списков масштабирования для режима "пропуска преобразования", в соответствии с одним или более параметрами кодирования закодированных видеоданных.
6. Аппарат в соответствии с пунктом 4, в котором список масштабирования для режима "пропуска преобразования" предоставляется в потоке данных, содержащем массив значений закодированных данных.
7. Аппарат в соответствии с пунктом 4, причем аппарат декодирования действует таким образом, чтобы выводить значения списка масштабирования для режима "пропуска преобразования" из одного или более значений списка масштабирования, который был бы применим для использования в отношении этого массива значений закодированных видеоданных в случае, если бы режим "пропуска преобразования" не был выбран.
8. Аппарат в соответствии с пунктом 2, в котором деквантователь сконфигурирован таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, подставлять вместо значений списка масштабирования некоторое единственное значение данных.
9. Аппарат в соответствии с пунктом 8, в котором это единственное значение данных предоставляется в потоке данных, содержащем массив значений закодированных данных.
10. Аппарат в соответствии с пунктом 8, причем аппарат декодирования действует таким образом, чтобы выводить это единственное значение данных из одного или более значений списка масштабирования, который был бы применим для использования в отношении этого массива значений закодированных видеоданных в случае, если бы режим "пропуска преобразования" не был выбран.
11. Аппарат в соответствии с пунктом 8, в котором это единственное значение данных выбирается из некоторого набора, состоящего из двух или более различных единственных значений данных, в соответствии с одним или более параметрами кодирования закодированных видеоданных.
12. Аппарат в соответствии с любым одним из предшествующих пунктов, в котором массив значений закодированных данных выбирается из списка, состоящего из:
массива размером 8×8;
массива размером 16×16; и
массива размером 32×32.
13. Аппарат кодирования видеоданных, действующий таким образом, чтобы кодировать массив значений входных видеоданных в режиме "пропуска преобразования" и, если требуется, в режиме "отсутствия пропуска преобразования", причем аппарат содержит:
частотный преобразователь, сконфигурированный таким образом, чтобы применять частотное преобразование к значениям входных видеоданных для того, чтобы сгенерировать массив значений частотно преобразованных входных данных;
квантователь, сконфигурированный таким образом, чтобы осуществлять квантование значений частотно преобразованных входных данных, применяя к каждому значению частотно преобразованных входных данных некоторый параметр квантования, так, чтобы сгенерировать соответствующие значения квантованных данных; и
контроллер;
если режим "пропуска преобразования" не применим к этому массиву значений входных видеоданных, то контроллер управляет частотным преобразователем таким образом, чтобы применять частотное преобразование, и управляет квантователем таким образом, чтобы применять параметры квантования, которые могут различаться между значениями данных в массиве значений частотно преобразованных входных данных в соответствии с позицией каждого значения частотно преобразованных входных данных внутри массива; и
если режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, то контроллер управляет частотным преобразователем таким образом, чтобы не применять частотное преобразование, и управляет квантователем таким образом, чтобы осуществлять квантование значений входных видеоданных, применяя параметры квантования, которые, для каждого массива значений входных данных, являются независимыми от позиции каждого значения входных данных внутри массива.
14. Аппарат в соответствии с пунктом 13, содержащий определитель, сконфигурированный таким образом, чтобы определять то, применим ли к этому массиву значений закодированных видеоданных режим "пропуска преобразования".
15. Аппарат в соответствии с пунктом 13, в котором квантователь сконфигурирован таким образом, чтобы использовать параметры квантования, зависящие от соответствующих записей в списке масштабирования, причем в списке масштабирования имеется одна запись для каждой позиции в массиве данных, подлежащих квантованию.
16. Аппарат в соответствии с пунктом 15, в котором определитель действует таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений входных видеоданных, запрещать использование, квантователем, списка масштабирования.
17. Аппарат в соответствии с пунктом 15, в котором квантователь сконфигурирован таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений входных видеоданных, использовать список масштабирования для режима "пропуска преобразования", в каковом списке все значения списка масштабирования являются идентичными друг другу.
18. Аппарат в соответствии с пунктом 17, в котором список масштабирования для режима "пропуска преобразования" выбирается из некоторого набора, состоящего из двух или более различных списков масштабирования для режима "пропуска преобразования", в соответствии с одним или более параметрами кодирования входных видеоданных.
19. Аппарат в соответствии с пунктом 17, в котором список масштабирования для режима "пропуска преобразования" предоставляется в потоке данных, содержащем массив значений закодированных данных.
20. Аппарат в соответствии с пунктом 17, причем аппарат кодирования действует таким образом, чтобы выводить значения списка масштабирования для режима "пропуска преобразования" из одного или более значений списка масштабирования, который был бы применим для использования в отношении этого массива значений входных видеоданных в случае, если бы режим "пропуска преобразования" не был выбран.
21. Аппарат в соответствии с пунктом 15, в котором квантователь сконфигурирован таким образом, чтобы в случае, при котором определитель определяет то, что режим "пропуска преобразования" применим к этому массиву значений входных видеоданных, подставлять вместо значений списка масштабирования некоторое единственное значение данных.
22. Аппарат в соответствии с пунктом 21, в котором это единственное значение данных предоставляется в потоке данных, содержащем массив значений закодированных данных.
23. Аппарат в соответствии с пунктом 21, причем аппарат кодирования действует таким образом, чтобы выводить это единственное значение данных из одного или более значений списка масштабирования, который был бы применим для использования в отношении этого массива входных видеоданных в случае, если бы режим "пропуска преобразования" не был выбран.
24. Аппарат в соответствии с пунктом 21, в котором это единственное значение данных выбирается из некоторого набора, состоящего из двух или более различных единственных значений данных, в соответствии с одним или более параметрами кодирования входных видеоданных.
25. Аппарат в соответствии с любым одним из пунктов 13-24, в котором массив значений частотно преобразованных входных данных выбирается из списка, состоящего из:
массива размером 8×8;
массива размером 16×16; и
массива размером 32×32.
26. Аппарат для ввода, хранения, передачи и/или записи видеоданных, содержащий аппарат в соответствии с любым одним из предшествующих пунктов.
27. Способ декодирования видеоданных, предназначенный для декодирования массива значений закодированных видеоданных, причем способ содержит этапы, на которых:
определяют то, применим ли к этому массиву значений закодированных видеоданных режим "пропуска преобразования";
если определено, что режим "пропуска преобразования" к этому массиву значений закодированных видеоданных не применим, то осуществляют деквантование этого массива значений закодированных видеоданных, применяя параметры деквантования, которые могут различаться между значениями данных в этом массиве значений закодированных данных в соответствии с позицией каждого значения данных внутри массива, и применяют обратное частотное преобразование к значениям деквантованных данных; и
если определено, что режим "пропуска преобразования" к этому массиву значений закодированных видеоданных применим, то осуществляют деквантование этого массива значений закодированных видеоданных, применяя параметры деквантования, которые, для каждого массива значений закодированных данных, являются независимыми от позиции каждого значения данных внутри массива, и не применяют обратное частотное преобразование к значениям деквантованных данных.
28. Способ кодирования видеоданных, предназначенный для кодирования массива значений входных видеоданных, причем способ содержит этапы, на которых:
если режим "пропуска преобразования" не применим к этому массиву значений входных видеоданных, то осуществляют частотное преобразование входных видеоданных и осуществляют квантование полученного в результате массива значений частотно преобразованных входных видеоданных, применяя параметры квантования, которые могут различаться между значениями данных в массиве значений частотно преобразованных входных данных в соответствии с позицией каждого значения частотно преобразованных входных данных внутри массива; и
если режим "пропуска преобразования" применим к этому массиву значений закодированных видеоданных, то осуществляют квантование значений входных видеоданных, применяя параметры квантования, которые, для каждого массива значений входных данных, являются независимыми от позиции каждого значения входных данных внутри массива.
29. Компьютерное программное обеспечение, которое, при его исполнении компьютером, заставляет компьютер осуществлять способ по пункту 27 или пункту 28.
30. Некратковременная машиночитаемая запоминающая среда, в которой хранится программное обеспечение в соответствии с пунктом 29.