СПОСОБ КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, СПОСОБ ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ, КОДЕР ИЗОБРАЖЕНИЯ И ДЕКОДЕР ИЗОБРАЖЕНИЯ
IMAGE ENCODING METHOD, IMAGE DECODING METHOD, IMAGE ENCODER AND IMAGE DECODER

Область техники, к которой относится изобретение
Настоящее изобретение относится к способу кодирования изображения и кодеру изображения, предназначенным для обработки сжатия, т.е. выполнения сжатия входных сигналов изображения, состоящих из множества компонентов цвета, способу декодирования изображения и декодеру изображения, предназначенным для ввода потока битов, в котором сжаты сигналы изображения, состоящие из множества компонентов цвета, и выполнения обработки декодирования, и потоку битов кодированного изображения, и носителю записи.
Уровень техники
Обычно применяют системы видеокодирования в соответствии с международным стандартом, таким как MPEG и ITU-TH.26x, в основном, при условии, что используется формат входного сигнала, называемый форматом "4:2:0". Формат 4:2:0 представляет собой формат, предназначенный для преобразования цветного сигнала изображения, такого как RGB (KЗC, красный-зеленый-синий), в компонент яркости (Y) и два компонента цветности (СВ и CR) и для уменьшения количества выборок компонентов цветности на половину как в горизонтальном, так и в вертикальном направлениях, относительно количества выборок компонента яркости. Поскольку из-за характеристик зрения человека видимость компонентов цветности низка по сравнению с компонентами яркости обычную систему видеокодирования на основе международного стандарта применяют при условии, что количество информации на объект кодирования уменьшается, благодаря уменьшению количества выборок компонентов цветности перед выполнением кодирования.
С другой стороны, в связи с увеличением разрешающей способности и увеличением градаций видеоотображения в последние годы, исследуют систему кодирования изображения с выборками, идентичными компонентам яркости, полученным без уменьшения частоты выборки компонентов цветности. Формат, в котором количество выборок компонентов яркости и количество выборок компонентов цветности, являются идентичными, называется форматом "4:4:4". В системе кодирования для ввода формата 4:4:4: определяют "высокий профиль 444" (см., например, непатентный документ 1).
Хотя обычный формат 4:2:0 применяют при условии, что выборку компонентов цветности выполняют с пониженной частотой, и она ограничена цветовым пространством Y, CB и CR, в формате 4:4:4, отсутствуют различия по частоте выборки компонентов цветности, поэтому возможно непосредственно использовать R, G и B, вместо Y, CB и CR, и определять, и использовать другие пространства цвета.
Непатентный документ 1: ISO/IEC 14496-10|ITU-TH.264 standart (Advanced Video Coding: AVC)
Сущность изобретения
Проблемы, решаемые изобретением
Когда используют высокий профиль 444, определенный в стандарте ISO/IEC 14496-10|ITU-TH.264 (2005) (ниже сокращенно называется AVC), как и в обычной системе кодирования, необходимо выполнять обработку кодирования и обработку декодирования, используя макроблок в качестве единичного модуля.
Другими словами, поскольку данные трех компонентов цветности включены в один макроблок, данные соответствующих компонентов цвета обрабатывают в порядке единичных модулей макроблока. Такой подход не является предпочтительным для выполнения параллельной обработки кодирования и декодирования.
С другой стороны, в AVC определен формат 4:0:0. Этот формат первоначально был нацелен на обработку кодирования изображения только по компоненту яркости, то есть монохромного изображения. Также возможно использовать способ генерирования трех независимых кодированных данных, путем применения обработки кодирования для соответствующих трех компонентов цвета формата 4:4:4, используя формат 4:0:0. В этом случае, поскольку соответствующие компоненты цвета обрабатывают независимо, возможна параллельная обработка.
Однако поскольку соответствующие компоненты цвета обрабатывают независимо, в настоящем стандарте становится невозможным реализовать обработку установки одинаковой информации времени и использовать однородный режим кодирования для соответствующих компонентов цвета. Поэтому существует проблема, состоящая в том, что в модулях изображения невозможно легко реализовать воспроизведение с произвольным доступом (ускоренное воспроизведение вперед, воспроизведение назад и т.д.) и обработку редактирования.
Эта проблема поясняется ниже. Различные данные, определенные в AVC, расположены в порядке ограничителя модуля доступа (AUD, ОМД), установленного параметра последовательности (SPS, УПП), установленного параметра изображения (PPS, УПИ) и данных изображения. Данные, не связанные с настоящим изобретением, здесь не поясняются.
В AVC определено, что один модуль доступа (AU, МД) состоит из одного изображения (эквивалентного одному кадру или одному полю). При этом возможно обозначить границу модулей доступа, используя ограничитель модуля доступа (AUD). Например, в профиле основной линии AVC, поскольку ограничители модуля доступа расположены на границах соответствующих изображений, становится возможным независимо и легко выделять один модуль доступа путем детектирования ограничителей модулей доступа. Это позволяет декодировать данные для одного изображения.
С другой стороны, когда три компонента цвета кодированы с форматом 4:0:0, используя существующую систему AVC, модуль доступа определен для каждого из компонентов цвета. В соответствии с этим, одно изображение составляется из трех модулей доступа. Поэтому становится невозможным выделять данные для одного изображения путем простого детектирования ограничителей модулей доступа. Невозможно легко реализовать воспроизведение с произвольным доступом и обработку редактирования в модулях изображений. Поскольку обработка кодирования выполняется независимо для каждого из компонентов цвета, трудно устанавливать одинаковую информацию времени и использовать единый режим кодирования.
Таким образом, задача настоящего изобретения состоит в создании способа кодирования изображения и способа декодирования изображения, кодера изображения и декодера изображения, и потока битов кодированного изображения, а также носителя записи, которые позволяют включать данные для одного изображения в один модуль доступа, путем расширения AVC, даже, когда обработку кодирования применяют для соответствующих трех компонентов цвета формата 4:4:4, используя формат 4:0:0, и позволяют устанавливать одинаковую информацию времени и использовать единый режим кодирования для соответствующих компонентов цвета.
Средство решения задачи
В соответствии с настоящим изобретением в способе кодирования изображения, предназначенном для применения обработки сжатия ко входному сигналу изображения, включающему в себя множество компонентов цвета, кодированные данные, полученные в результате независимой обработки кодирования входного сигнала изображения каждого из компонентов цвета, и параметр, обозначающий, какому компоненту цвета соответствуют кодированные данные, мультиплексируют с потоком битов.
Кроме того, в соответствии с настоящим изобретением в способе декодирования изображения для выполнения обработки декодирования на основе ввода потока битов, генерируемого в результате сжатия сигнала изображения, включающего в себя множество компонентов цвета, выполняют обработку декодирования для кодированных данных каждого из компонентов цвета путем использования параметра, обозначающего, какому компоненту цвета соответствуют кодированные данные.
Кроме того, в соответствии с настоящим изобретением, кодер изображения, предназначенный для применения обработки сжатия ко входному сигналу изображения, включающему в себя множество компонентов цвета, включает в себя средство мультиплексирования, предназначенное для мультиплексирования с потоком битов кодированных данных, полученных путем независимой обработки кодирования входного сигнала изображения каждого из компонентов цвета, и параметра, обозначающего, какому компоненту цвета соответствуют кодированные данные.
Кроме того, в соответствии с настоящим изобретением декодер изображения, предназначенный для выполнения обработки декодирования на основе ввода потока битов, генерируемого путем сжатия сигнала изображения, включающего в себя множество компонентов цвета, включает в себя средство детектирования, предназначенное для детектирования параметра, обозначающего какому компоненту цвета соответствуют кодированные данные.
Кроме того, в соответствии с настоящим изобретением в потоке битов, генерируемом в результате кодирования сжатия входного сигнала изображения, включающего в себя множество компонентов цвета, сжатые данные сигнала изображения каждого из компонентов цвета, составляют в виде модулей среза (слоя), и параметр, обозначающий, какому компоненту цвета соответствуют сжатые данные, включенные в данные среза, мультиплексируют с областью заголовка этого среза.
Кроме того, настоящее изобретение направлено на носитель записи, на котором записан поток битов, сгенерированный в результате кодирования сжатия входного сигнала изображения, включающего в себя множество компонентов цвета, и в котором сжатые данные сигнала изображения каждого из компонентов цвета составлены в виде модулей среза, и параметр, обозначающий какому компоненту цвета соответствуют сжатые данные, включенные в данные среза, мультиплексируют с областью заголовка среза.
Эффект изобретения
В соответствии с настоящим изобретением становится возможным легко выполнять воспроизведение с произвольным доступом и обработку редактирования в модулях изображения, используя AUD. Возможно включать данные для одного изображения в один модуль доступа, даже когда обработку кодирования применяют для трех компонентов цвета, используя формат 4:0:0. Кроме того, становится возможным установить одну и ту же информацию времени и использовать единый режим кодирования среди соответствующих компонентов цвета.
Краткое описание чертежей
На фиг. 1 показана диаграмма частей, относящихся к настоящему изобретению, выделенных из синтаксиса кодированных потоков битов, генерируемых кодером изображения в соответствии с настоящим изобретением.
На фиг. 2 показана схема, предназначенная для пояснения определения параметра colour_id, в качестве другого способа обеспечения совместимости с существующим стандартом.
На фиг. 3 показана пояснительная схема, в которой данные всех компонентов цвета, составляющие одно изображение между AUD и AUD, включены в один модуль доступа (AU).
На фиг. 4 показана пояснительная схема, в которой данные четырех компонентов цвета разграничены для каждого компонента цвета с помощью ограничителя и скомпонованы вместе в один модуль доступа.
На фиг. 5 показана пояснительная схема, в которой режимы кодирования формата 4:0:0 и формата 4:4:4 переключают в произвольном модуле.
На фиг. 6 показана схема, поясняющая общую обработку кодирования, в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 7 показана схема, поясняющая независимую обработку кодирования в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 8 показана схема, представляющая ссылку на эталонное изображение при прогнозировании движения в направлении времени среди изображений в кодере и декодере в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 9 показана схема, представляющая пример структуры потока битов, генерируемого в кодере и подвергаемого обработке ввода и декодирования с использованием декодера в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 10 показана схема, представляющая структуры потока битов данных среза в случаях общей обработки кодирования и независимой обработки кодирования, в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 11 показана блок-схема, представляющая схематичную структуру кодера в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 12 показана схема, поясняющая поток 106 битов, мультиплексируемый и выводимый модулем 105 мультиплексирования, показанным на фиг. 11.
На фиг. 13 показана блок-схема, представляющая внутреннюю структуру первого модуля 102 кодирования изображения, показанного на фиг. 11.
На фиг. 14 показана блок-схема, представляющая внутреннюю структуру второго модуля 104 кодирования изображения, показанного на фиг. 11.
На фиг. 15 показана блок-схема, представляющая схематическую структуру декодера в соответствии с седьмым вариантом воплощения настоящего изобретения.
На фиг. 16 показана блок-схема, представляющая внутреннюю структуру первого модуля 302 декодирования изображения, показанного на фиг. 15.
На фиг. 17 показана блок-схема, представляющая внутреннюю структуру второго модуля 304 декодирования изображения, показанного на фиг. 15.
На фиг. 18 показана блок-схема, представляющая модификацию кодера, показанного на фиг. 11.
На фиг. 19 показана блок-схема, представляющая другую модификацию кодера, показанного на фиг. 11.
На фиг. 20 показана блок-схема, представляющая декодер, соответствующий кодеру, показанному на фиг. 18.
На фиг. 21 показана блок-схема, представляющая декодер, соответствующий кодеру, показанному на фиг. 19.
На фиг. 22 показана схема, представляющая структуру кодированных данных информации заголовка макроблока, включенного в поток битов обычного формата YUV 4:2:0.
На фиг. 23 показана схема, представляющая внутреннюю структуру модуля 311 прогнозирования первого модуля 302 декодирования изображения, который обеспечивает совместимость обычного формата YUV 4:2:0 с потоком битов.
На фиг. 24 показана схема, представляющая другой пример структуры потока битов.
На фиг. 25 показана схема, представляющая еще один пример структуры потока битов.
Подробное описание предпочтительного варианта осуществления
Первый вариант воплощения
На фиг. 1 показана схема частей, относящихся к настоящему изобретению, выделенных из синтаксиса кодированного потока битов, генерируемого кодером изображения в соответствии с настоящим изобретением. На фиг. 1 часть (a) обозначает синтаксис информации о заголовке модуля NAL (УАС, уровень абстракции сети), часть (b) обозначает синтаксис SPS (УПП, установленный параметр последовательности), часть (c) обозначает синтаксис PPS (УПИ, установленный параметр изображения), и часть (d) обозначает синтаксис заголовка среза. Другие участки, кроме заштрихованных частей, представляют собой синтаксис, определенный существующим стандартом AVC. Заштрихованные части представляют собой синтаксис, определенный существующим стандартом AVC, но в котором добавлены новые функции в соответствии с настоящим изобретением, или синтаксис, который не определен в существующем стандарте AVC и добавлен вновь в соответствии с настоящим изобретением.
Параметры, определенные в AVC, будут кратко описаны ниже. В части, представленной в позиции (a) на фиг. 1 nal_ref_idc модуля NAL, представляет собой параметр, обозначающий, являются ли данные модуля NAL данными изображения, используемыми для прогнозирования и ссылки. Кроме того, nal_unit_type представляет собой параметр, обозначающий, являются ли данные модуля NAL данными среза, SPS, PPS или ограничителем модуля доступа (AUD).
В части, представленной в позиции (b) на фиг. 1 profile_idc в SPS, обозначает профиль последовательности кодирования. Основная линия, главный, высокий, высокий 444 и т.п. определены как профили в AVC. Seq_parameter_set_id обозначает ID (ИД, идентификатор) SPS. Множество SPS определены в одной последовательности кодирования и управляются по ID. Кроме того, chroma_for mat_idc используется только во время профиля высокий 444 и представляет собой параметр, обозначающий, какой из форматов 4:0:0, 4:2:0, 4:2:2 и 4:4:4 представляет последовательность кодирования.
В части, представленной в позиции (c) на фиг. 1 pic_parameter_set_id в PPS, обозначает ID PPS. Множество PPS определены в одной последовательности кодирования и управляются по ID. Seq_parameter_set_id в PPS представляет собой параметр, обозначающий какому SPS принадлежит этот PPS.
В части, представленной в позиции (d) на фиг. 1 first_mb_in_slice заголовка среза, представляет собой параметр, обозначающий, в каком положении расположены данные ведущего блока экрана в данных среза. Кроме того, slice_type представляет собой параметр, обозначающий, какое из предиктивного кодирования и двойного предиктивного кодирования используется для кодирования данных среза внутри кадра. Кроме того, pic_parameter_set_id представляет собой параметр, обозначающий какому PPS принадлежат данные среза.
Далее поясняются выполняемые операции. Когда обработку кодирования применяют к сигналу изображения трех компонентов цвета, независимо для каждого из компонентов цвета, используя формат 4:0:0, данные, обозначающие обработку независимого кодирования трех компонентов цвета с использованием формата 4:0:0, предоставляют вновь в profile_idc, который представляет собой один из параметров, включенных в SPS, представленный в части (b) по фиг. 1. Параметр colour_id предоставляется вновь в заголовке среза, показанном в части (d) на фиг. 1, для обозначения того, какими из трех компонентов цвета являются кодированные данные, включенные в данные среза.
Когда обработку кодирования выполняют в существующем формате 4:0:0 (монохромное изображение), формате 4:2:0, формате 4:2:2 и формате 4:4:4, параметр colour_id, показанный в части (d) по фиг. 1, не используется. Только в режиме независимого кодирования данных трех компонентов цветов с использованием формата 4:0:0, определенном вновь в соответствии с настоящим изобретением, параметр colour_id используется c тем, чтобы, таким образом, сделать возможным предотвратить влияние на существующий стандарт.
В режиме независимого кодирования данных трех компонентов цвета с использованием формата 4:0:0, определенного вновь в соответствии с настоящим изобретением, параметр colour_id используется для того, чтобы, как показано на фиг. 3, включить данные трех компонентов цвета в один модуль доступа (AU) и вместо данных всех компонентов цвета, составляющих одно изображение между AUD и следующим AUD.
В качестве другого способа обеспечения совместимости с существующим стандартом параметр colour_id может быть определен, как показано на фиг. 2. Когда colour_id определен таким образом, в случае colour_id = 0, это обозначает данные среза, кодированные в формате, в котором данные трех компонентов цвета включены в один макроблок, как в существующем стандарте. В случае других значений, возможно обозначить данные среза, кодированные путем обработки независимого кодирования данных трех компонентов цвета, с использованием формата 4:0:0, описанного в первом варианте воплощения.
Это позволяет составить поток битов, охватывающий как существующую систему, так и систему, описанную в первом варианте воплощения, которая полезна для поддержания совместимости с существующей системой. Когда количество вырезок увеличивается, и дополнительные затраты, связанные с объемом кодирования самого параметра colour_id, влияют на эффективность кодирования, объем самого параметра colour_id можно уменьшить путем выполнения соответствующего кодирования с переменной длиной на основе критерия суждения, определяющего, какую из существующей системы и системы, описанной в первом варианте воплощения, проще выбрать.
Таким образом, в системе кодирования изображения, предназначенной для применения обработки сжатия для ввода сигналов изображения, состоящих из множества компонентов цвета, кодированные данные, полученные в результате независимого применения обработки кодирования ко входным сигналам изображения компонентов соответствующего цвета и параметра, обозначающего, из какого компонента цвета были получены кодированные данные, мультиплексируют с битовым потоком. Это позволяет легко выполнить воспроизведение с произвольным доступом и обработку редактирования в модулях изображения, с использованием AUD.
В системе декодирования изображения для ввода битового потока, в котором сжимают сигнал изображения, состоящий из множества компонентов цвета, и выполняют обработку декодирования, становится возможным легко выполнить обработку декодирования для кодированных данных соответствующих компонентов цвета, используя параметр, обозначающий, из какого компонента цвета были получены кодированные данные.
Поскольку данные трех компонентов цвета включены в один модуль доступа, данные этих трех компонентов цвета одновременно кодируют как изображение IDR (ОМД, обновление мгновенного декодирования).
Изображение IDR определено в AVC. Нормальная обработка декодирования может мгновенно выполняться для изображения IDR. Изображение IDR получают при условии, что изображение IDR используется как верхняя часть воспроизведения с произвольным доступом.
Когда требуется выделить только один компонент цвета из трех компонентов цвета, это можно легко реализовать путем выделения только данных среза colour_id, имеющих определенное значение.
На фиг. 1 параметр colour_id предусмотрен в верхней части заголовка среза. Однако не всегда необходимо располагать colour_id в верхней части заголовка среза. Возможно получить тот же эффект, если параметр colour_id включен в заголовок среза.
Второй вариант воплощения
Как и в первом варианте воплощения, кодированные данные трех компонентов цвета включены в один модуль доступа. Однако, тогда как данные (R, B, G) соответствующих компонентов цвета расположены в порядке в соответствии с первым вариантом воплощения, показанным на фиг. 3, также возможно применять способ компоновки тех же компонентов цвета R, B или G вместе, соответственно, как показано на фиг. 4. Кроме того, также возможно легко выделять только данные с заданным компонентом цвета, путем вставки "разделителя", который не определен в существующем стандарте AVC.
Следовательно, например, становится возможным легко выделять разные процессоры для соответствующих компонентов цвета для выполнения параллельной обработки. Возможно реализовать "разделитель", описанный в настоящем изобретении, без влияния на существующий стандарт, путем расширения нагрузки сообщения SEI (ДИР, дополнительная информация о расширении) в AVC. Само собой разумеется, что возможно получить те же эффекты, когда "разделитель" определен в соответствии с другими способами.
Третий вариант воплощения
Также возможно получить те же эффекты, что и в первом варианте воплощения, путем вставки параметра, обозначающего компонент цвета в части модуля NAL, вместо colour_id в заголовке среза. В AVC, поскольку заголовок среза и данные среза, следующие после заголовка среза, определены как нагрузка модуля NAL, параметр nal_unit_type модуля NAL расширяется так, что он обозначает в этом параметре, каким компонентом цвета являются видеоданные, включенные в нагрузку модуля NAL. Кроме того, путем включения данных по трем компонентам цвета в один модуль доступа (AU), все данные, составляющие одно изображение, размещают между AUD и следующим AUD.
Вследствие этого, как и в первом варианте воплощения, становится возможным легко выполнить воспроизведение с произвольным доступом и обработку редактирования в модулях изображения. Кроме того, когда требуется выделить только один компонент из трех компонентов цвета, становится возможным выделить этот компонент в соответствии только с данными заголовка модуля NAL, без анализа заголовка среза.
Четвертый вариант воплощения
В первом - третьем вариантах воплощения предусмотрено ограничение, такое, что одно и то же значение всегда устанавливается для параметра first_mb_in_slice заголовка кодированного среза, в котором закодированы данные трех компонентов цвета. Параметр first_mb_in_slice обозначает положение первых данных в данных среза на экране.
В системе кодирования, соответствующей обычной AVC, поскольку возможно применять произвольный формат для структуры среза, можно применять различные структуры среза среди соответствующих компонентов цвета. Однако, благодаря установлению таких ограничений, становится возможным декодировать и отображать часть изображения, имеющего правильное состояние цветов, путем сбора данных трех вырезок, имеющих одинаковое значение first_mb_in_slice.
Вследствие этого, когда требуется отобразить определенную часть экрана, например, только центр, становится возможным выполнить обработку декодирования и отображения, используя только данные среза части экрана, вместо всего экрана, в то время как, когда ограничения не предусмотрены, невозможно комбинировать три компонента цвета для получения правильного декодированного изображения, пока весь экран не будет декодирован с использованием данных среза всего экрана, поскольку значения first_mb_in_slice будут разными для соответствующих компонентов цвета. Когда выполняется параллельная обработка, используя соответствующие процессоры для данных соответствующих компонентов цвета, соответствующие элементы данных среза начинаются из одного и того же положения, поэтому становится просто управлять параллельной обработкой.
Пятый вариант воплощения
Дополнительные ограничения предусмотрены так, что одно и то же значение всегда устанавливают для параметра slice_type заголовка среза соответствующих компонентов цвета в дополнение к ограничениям в соответствии с четвертым вариантом воплощения. Параметр slice_type обозначает, например, какое из кодирования внутри кадра, - предиктивного кодирования и двойного предиктивного кодирования, используется для данных среза, следующих после заголовка среза. Если данные среза представляют собой данные кодирования внутри кадра, поскольку обработка прогнозирования внутри кадра не используется, возможно немедленно выполнять обработку декодирования и отображения.
Таким образом, для данных среза в одном и том же положении на экране тип кодирования делается общим для всех компонентов цвета, и выполняют одинаковую обработку кодирования. Это позволяет декодеру выполнять обработку декодирования и отображения с высокой скоростью, подвергая только срез с кодированием внутри кадра обработке декодирования при воспроизведении с произвольным доступом.
Шестой вариант воплощения
Благодаря применению структур, описанных в первом - пятом вариантах воплощения, становится возможным переключать в произвольном модуле режим независимого кодирования данных трех компонентов цвета, с использованием вновь определенного формата 4:0:0, и режим кодирования с форматом 4:4:4.
Например, как показано на фиг. 5, вновь определенный формат 4:0:0 установлен для seq_parameter_set_id = 1 в SPS. Параметр формата 4:4:4 установлен для seq_parameter_set_id = 2. SPS, соответствующие seq_parameter_set_id, установлены с разным pic_paramater_set_id, заданными для них. Это позволяет переключать как формат 4:0:0, так и формат 4:4:4 для модулей изображения.
Следовательно, становится возможным выбирать один из форматов с высокой эффективностью кодирования для выполнения обработки кодирования и выбирать один из удобных форматов, в зависимости от варианта применения, для выполнения обработки кодирования.
В пятом варианте воплощения поясняется, что оба формата переключают в модулях изображения. Однако в соответствии со стандартом AVC, также возможно переключать форматы в модулях среза, в соответствии с той же обработкой.
Настоящее изобретение поясняется с использованием AVC, который представляет собой международный стандарт системы кодирования движущегося изображения. Однако само собой разумеется, что возможно получить те же эффекты, используя другие системы кодирования.
Седьмой вариант воплощения
В седьмом варианте воплощения настоящего изобретения структура и работа устройства для выполнения кодирования и декодирования при изменении кодирования сигналов трех компонентов цвета по общему заголовку макроблока и кодирования сигналов трех компонентов цвета по отдельным заголовкам макроблока в модуле одного кадра (или одного поля) поясняется на основе конкретных чертежей. В следующем пояснении, если только не будет указано другое, термин "один кадр" рассматривается как модуль данных, расположенных в одном кадре или в одном поле.
Предполагается, что заголовок макроблока в соответствии с седьмым вариантом воплощения включает в себя: информацию о кодировании и режиме прогнозирования, такую как тип макроблока, тип "подмакроблока" и режим прогнозирования между кадрами; информацию о прогнозировании движения, такую как идентификационный номер эталонного изображения и вектор движения; и служебную информацию макроблока, помимо данных коэффициента преобразования, такую как параметр квантования для коэффициента преобразования, флаг индикации размера блока преобразования и флаг суждения о присутствии/отсутствии эффективного коэффициента преобразования в модулях в виде блоков размером 8×8.
В следующем пояснении обработка кодирования сигналов трех компонентов цвета одного кадра с общим заголовком макроблока называется "общей обработкой кодирования", и обработка кодирования сигналов трех компонентов цвета одного кадра с отдельными независимыми заголовками макроблока называется "независимой обработкой кодирования". Аналогично, обработка изображения данных фрейма декодирования из потока битов, в которой сигналы трех компонентов цвета одного кадра кодируют по общему заголовку макроблока, называется "общей обработкой декодирования", и обработка декодирования данных изображения кадра из потока битов, в которой сигналы трех компонентов цвета одного кадра кодированы с использованием отдельных независимых заголовков макроблока, называется "независимой обработкой декодирования".
В общей обработке кодирования, в соответствии с седьмым вариантом воплощения, как показано на фиг. 6, входной видеосигнал для одного кадра разделен на макроблоки, которые подвергают общей обработке кодирования в группах по три компонента цвета, состоящих из компонента C0, компонента C1 и компонента C2 соответственно. С другой стороны, при независимой обработке кодирования, как показано на фиг. 7, входной видеосигнал для одного кадра разделяют на три компонента цвета: компонент C0, компонент C1 и компонент C2, и три компонента цвета разделяют на макроблоки, состоящие из компонентов одного цвета, то есть соответствующие макроблоки, которые предполагается подвергнуть независимой обработке кодирования для соответствующего компонента C0, компонента C1 и компонента C2.
Макроблоки, подвергаемые общей обработке кодирования, включают в себя выборки трех компонентов цвета C0, C1 и C2. Эти макроблоки, которые подвергают независимой обработке кодирования, включают в себя выборки любого одного из компонентов C0, C1 и C2.
На фиг. 8 показана ссылка с эталоном при прогнозировании движения в направлении времени среди изображений в кодере и декодере в соответствии с седьмым вариантом воплощения. В этом примере модуль данных, обозначенный жирной вертикальной линией, установлен как изображение и ссылка между изображением и модулем доступа обозначена в виде окружающей пунктирной линии. В случае общей обработки кодирования и декодирования одно изображение представляет собой данные, представляющие видеосигнал для одного кадра, в котором смешаны три компонента цвета. В случае обработки независимого кодирования и декодирования, одно изображение представляет собой видеосигнал для одного кадра любого одного из компонентов цвета.
Модуль доступа представляет собой минимальный модуль данных, обеспечивающий временную метку для синхронизации с аудиоинформацией/информацией звука или тому подобное с видеосигналом. В случае обработки общего кодирования и декодирования данные одного изображения включены в один модуль доступа.
С другой стороны, в случае обработки независимого кодирования и декодирования три изображения включены в один модуль доступа. Это связано с тем, что в случае обработки независимого кодирования и декодирования сигнал воспроизведения видеоизображения для одного кадра не будет получен до тех пор, пока не будут получены изображения в идентичное время отображения для всех трех компонентов цвета. Цифры, указанные над соответствующими изображениями, обозначают порядок обработки кодирования и декодирования в направлении времени изображений (frame_num для AVC (УВК, усовершенствованное видеокодирование), которое представляет собой стандарт системы кодирования со сжатием для данных движущегося изображения).
На фиг. 8 стрелками между изображениями показано направление ссылки при прогнозировании движения. В случае обработки независимого кодирования и декодирования, ссылка прогнозирования движения среди изображений, включенных в идентичный модуль доступа, и ссылка прогнозирования движения среди разных компонентов цвета, не используются. Изображения соответствующих компонентов цвета C0, C1 и C2 кодируют и декодируют при прогнозировании и ссылке на движение только для сигналов идентичных компонентов цвета.
При использовании такой структуры, в случае обработки независимого кодирования и декодирования, в соответствии с седьмым вариантом воплощения, становится возможным выполнять кодирование и декодирование соответствующих компонентов цвета, не полагаясь на обработку кодирования и декодирования других компонентов цвета, вообще. Таким образом, легко выполнять параллельную обработку.
В AVC определено изображение IDR (МОД, мгновенное обновление декодера), которое выполняет, само собой, внутреннее кодирование и выполняет сброс содержания памяти эталонного изображения, используемого для прогнозирования компенсации движения. Поскольку изображение IDR может быть декодировано, без ссылки на любые другие изображения, такое изображение IDR используют как точку произвольного доступа.
В модуле доступа, в случае обработки общего кодирования, один модуль доступа представляет собой одно изображение. Однако в модуле доступа в случае обработки независимого кодирования, один модуль доступа состоит из множества изображений. Таким образом, когда определенное изображение компонента цвета представляет собой изображение IDR, если предположить, что другие остальные изображения компонента цвета также представляют собой изображения IDR, модуль доступа IDR определен для обеспечения функции произвольного доступа.
В следующем пояснении информация идентификации (информация, эквивалентная флагу идентификации общего режима прогнозирования между изображениями, или флагу идентификации общего заголовка макроблока), обозначающая, выполняется ли кодирование с использованием общей обработки кодирования или выполняется обработка с использованием независимого кодирования, называется сигналом идентификации общего кодирования/независимого кодирования.
На фиг. 9 показана структура потока битов, генерируемого кодером, в соответствии с седьмым вариантом воплощения, и подвергаемого обработке ввода и декодирования с помощью декодера, в соответствии с седьмым вариантом воплощения. На чертеже показана структура потока битов от уровня последовательности до уровня кадра. Вначале сигнал идентификации общего кодирования/независимого кодирования мультиплексируют с верхним заголовком уровня последовательности (в случае AVC, SPS (установленный параметр последовательности), и т.д.).
Соответствующие кадры кодируют в модулях модуля доступа. AUD обозначает модуль разделителя модуля доступа NAL, который представляет собой уникальный модуль NAL, предназначенный для идентификации разрыва модуля доступа в AVC. Когда сигнал идентификации общего/независимого кодирования обозначает "кодирование изображения с использованием обработки общего кодирования", кодированные данные для одного изображения включены в модуль доступа.
Предполагается, что изображение в этом случае представляет собой данные, представляющие видеосигнал одного кадра, в котором три компонента цвета смешаны, как описано выше. В этом случае кодированные данные i-ого модуля доступа составляют как набор данных среза Slice(ij), и "j" представляет собой индекс данных среза в одном изображении.
С другой стороны, когда сигнал идентификации общего кодирования/независимого кодирования обозначает "кодирование изображения с использованием обработки независимого кодирования", одно изображение представляет собой видеосигнал одного кадра для любого одного из компонентов цвета. В этом случае, кодированные данные p-ого модуля доступа составляют как набор данных среза Slice(p, q, r) q-ого изображения в модуле доступа, и "r" представляет собой индекс данных среза в одном изображении. В случае видеосигнала, составленного из трех компонентов цвета, таких как RGB, "q" представляет собой одно из значений 0, 1 и 2.
В случае, например, когда дополнительные данные, такие как информацию о проницаемости альфа смеси, кодируют и декодируют как идентичный модуль доступа в дополнение к видеосигналу, включающему в себя три основных цвета, или случай, когда кодируют и декодируют видеосигнал, состоящий из компонентов цвета (например, YMCK, используемых при цветной печати), количество которых равно четырем компонентам или больше, "q" может быть большим, чем 3.
Если выбирают независимую обработку кодирования, кодер и декодер в соответствии с седьмым вариантом воплощения кодируют соответствующие компоненты цвета, составляющие весь видеосигнал, независимо друг от друга. Таким образом, становится возможным свободно изменять количество частей компонентов цвета, в принципе, без изменения обработки кодирования и декодирования. При этом возникает эффект, в соответствии с которым, даже когда формат сигнала для представления цвета видеосигнала изменяется в будущем, становится возможным учитывать такое изменение на основе обработки независимого кодирования в соответствии с седьмым вариантом воплощения.
Для реализации такой структуры в седьмом варианте воплощения сигнал идентификации общего кодирования/независимого кодирования представлен в форме "количества изображений, включенных в один модуль доступа, и независимо кодированных без использования прогнозирования движения со ссылкой друг на друга".
Сигнал 3 идентификации общего кодирования/независимого кодирования называется ниже num_pictures_in_au. Другими словами, num_pictures_in_au=1 обозначает "обработку общего кодирования", и num_pictures_in_au=3 обозначает "обработку независимого кодирования", в соответствии с седьмым вариантом воплощения. Когда имеются четыре или больше компонента цвета, для num_pictures_in_au всего лишь требуется установить значение большее 3.
С помощью таких сигналов, если декодер выполняет декодирование и обращается к num_pictures_in_au, декодер может не только различать кодированные данные соответствующей обработки общего кодирования и кодированные данные соответствующей обработки независимого кодирования, но также может одновременно определять, какое количество изображений одного компонента цвета представлено в одном модуле доступа. Таким образом, становится возможным выполнять обработку общего кодирования и обработку независимого кодирования без стыков или в потоке битов, что позволяет решить проблему расширения представления цвета видеосигнала в будущем.
Структуры потока битов данных среза в случае обработки общего кодирования и обработки независимого кодирования показаны на фиг. 10. В потоке битов, кодированном с использованием обработки независимого кодирования, для получения эффектов, описанных ниже, задается флаг идентификации компонента цвета (color_channel_idc) в области заголовка, в верхней части данных среза, принимаемых декодером, таким образом, что становится возможным идентифицировать, какому из компонентов цвета изображения в модуле доступа принадлежат данные среза.
Color_channel_idc группирует срезы, имеющие одинаковое значение color_channel_idc. Другими словами, среди вырезок, имеющих разные значения color_channel_idc, обеспечивается отсутствие зависимости кодирования и декодирования (например, ссылка на эталонное изображение при прогнозировании движения, анализ контекстного моделирования/вероятности возникновения и т.д. в соответствии с CABAC (КАКДА, контекстно-адаптивное кодирование с двоичной арифметикой)). Color_channel_idc представляет собой то же, что и color_id в соответствии с первым вариантом воплощения, показанным в части (d) на фиг. 1, и представляет собой информацию той же семантической формы.
При использовании таких исходных условий обеспечивается независимость от соответствующих изображений в модуле доступа в случае обработки независимого кодирования. Во всех изображениях компонента цвета, в одном модуле доступа устанавливают идентичное значение Frame_num (порядок кодирования и декодирования при обработке изображения, которому принадлежит срез) мультиплексированное с соответствующим заголовком среза.
Схематическая структура кодера в соответствии с седьмым вариантом воплощения показана на фиг. 11. На чертеже выполняется обработка общего кодирования в первом модуле 102, кодирования изображения, и обработка независимого кодирования выполняется во вторых модулях 104 кодирования изображения (подготовленных для трех компонентов цвета). Видеосигнал 1 подают в первый модуль 102 кодирования изображения, или модуль 103 разделения компонентов цвета, и любой один из вторых модулей 104 кодирования изображения, для каждого компонента цвета с помощью переключателя (SW) 100. Переключатель 100 управляется по сигналу 101 идентификации общего кодирования/независимого кодирования и передает входной видеосигнал 1 по заданному пути.
Ниже приведено описание случая, в котором сигнал (num_pictures_in_au) 101 идентификации общего кодирования/независимого кодирования представляет собой сигнал, мультиплексированный с параметром последовательности, установленным, когда входной видеосигнал представляет собой сигнал формата 4:4:4 и используется для выбора обработки общего кодирования и обработки независимого кодирования в модуле последовательности.
Когда используется обработка общего кодирования, необходимо выполнять обработку общего декодирования на стороне декодера. Когда используется обработка независимого кодирования на стороне декодера необходимо выполнять обработку независимого декодирования. Таким образом, необходимо мультиплексировать сигнал 101 идентификации общего кодирования/независимого кодирования с потоком битов, как информацию, обозначающую обработку. Поэтому сигнал 101 идентификации общего кодирования/независимого кодирования вводят в модуль 105 мультиплексирования. Модуль мультиплексирования сигнала 101 идентификации общего кодирования/независимого кодирования может представлять собой любой модуль, такой как модуль GOP (ГРИ, группа изображений), состоящий из нескольких групп изображений в последовательности длиной, представляющей единичный модуль, на уровне выше, чем уровень изображения.
Для выполнения обработки общего кодирования, модуль 102 кодирования первого изображения разделяет входной видеосигнал 1 на макроблоки в группе выборок из трех компонентов цвета, как показано на фиг. 6, и переходит к обработке кодирования в этом модуле. Обработка кодирования в модуле 102 кодирования первого изображения будет описана ниже.
Когда выбирают обработку независимого кодирования, входной видеосигнал 1 разделяют на данные для одного кадра, состоящие из C0, C1 и C2 в модуле 103 разделения компонентов цвета, и подают в соответствующие им вторые модули 104 кодирования изображения, соответственно. Вторые модули 104 кодирования изображения разделяют сигнал одного кадра, разделенный для каждого компонента цвета, на макроблоки в таком формате, как показано на фиг. 7, и переходят к обработке кодирования в этом модуле. Обработка кодирования во вторых модулях кодирования изображения будет описана ниже.
Видеосигнал для одного компонента изображения, компонентов трех цветов вводят в первый модуль 102 кодирования изображения. Кодированные данные выводят как поток 133 битов. Видеосигнал для одного изображения, состоящий из одного компонента цвета, вводят во вторые модули 104 кодирования изображения. Кодированные данные выводят как потоки 233a - 233c битов.
Эти потоки битов мультиплексируют в формате потока 106 битов в модуле 105 мультиплексирования на основе состояния сигнала 101 идентификации общего кодирования/независимого кодирования и выводят. Другими словами, модуль 105 мультиплексирования мультиплексирует с потоками битов кодированные данные, полученные в результате независимого кодирования входных сигналов изображения, соответствующих компонентов цвета и параметра, обозначающего, каким данным компонента цвета соответствуют кодированные данные.
При мультиплексировании одного потока 106 битов в модуле доступа, в случае, в котором выполняется независимая обработка кодирования, становится возможным выполнить перемежение порядка мультиплексирования и порядка передачи в потоке битов данных среза среди изображений (соответствующих компонентов цвета) в модуле доступа.
На фиг. 12 представлен случай (a), в котором перемежение среза в модуле доступа невозможно, и случай (b), в котором перемежение среза возможно. В случае (a), когда перемежение среза невозможно, невозможно мультиплексировать данные изображения компонента C1 с потоком битов, пока не будет закончено кодирование компонента C0, и невозможно мультиплексировать данные изображения компонента C2 в потоке битов до тех пор, пока не будет закончено кодирование компонентов C0 и C1. Однако в случае (b), в котором перемежение среза возможно, возможно немедленно мультиплексировать компонент C1, если один срез компонента C0 мультиплексирован с потоком битов, и возможно немедленно мультиплексировать компонент C2, если один срез компонента C0 и C1 мультиплексирован с потоком битов.
В этом случае, на стороне декодера, необходимо определить, какому компоненту цвета в модуле доступа принадлежат принятые данные среза. Поэтому используется флаг идентификации компонента цвета, мультиплексированный с областью заголовка верхней части данных среза, показанный на фиг. 10. Описанная здесь концепция перемежения среза, показанная на фиг. 12, эквивалентна концепции, раскрытой со ссылкой на фиг. 3.
При использовании такой структуры, как и в кодере по фиг. 11, когда кодер кодирует изображения трех компонентов цвета в соответствии с параллельной обработкой, используя три набора каждого из вторых модулей 6 кодирования изображения, независимо друг от друга, становится возможным передавать кодированные данные без ожидания завершения кодированных данных других изображений компонентов цвета, как только данные среза изображения второго модуля 104 кодирования изображения будут подготовлены.
В AVC возможно разделять одно изображение на множество данных среза и кодировать данные среза. При этом можно гибко изменять длину данных среза и количество микроблоков, включенных в срез, в соответствии с условиями кодирования.
Между срезами, расположенными рядом друг с другом в пространстве изображения, поскольку обеспечивается независимость обработки декодирования для срезов, невозможно использовать близкий контекст, такой как прогнозирование внутри кадра и арифметическое кодирование. Таким образом, чем больше длина данных среза, тем выше эффективность кодирования.
С другой стороны, когда ошибка будет смешана с потоком битов во время передачи и записи, возврат из ошибки будет выполняться тем раньше, чем меньше длина данных среза, и при этом проще подавлять снижение качества. Когда длина и структура среза, порядок компонентов цвета и т.п. фиксированы, без мультиплексирования флага идентификации компонента цвета, условия генерирования потока битов являются фиксированными в кодере. При этом невозможно гибко решать проблемы, связанные с различными условиями, требуемыми для кодирования.
Если возможно составить поток битов, как показано на фиг. 12, в кодере становится возможным уменьшить размер буфера передачи, необходимого для передачи, то есть уменьшить задержку обработки на стороне кодера.
Состояние уменьшения задержки обработки показано на фиг. 11. Если мультиплексирование данных среза через изображения не разрешено, пока не будет закончено кодирование изображения определенного компонента цвета, кодер должен размещать кодированные данные других изображений в буфере. Это означает, что возникает задержка на уровне изображения.
С другой стороны, как показано на нижнем участке на чертеже, если возможно выполнить перемежение на уровне среза, модуль кодирования изображения определенного компонента цвета может выводить кодированные данные в модуль мультиплексирования в единицах данных среза и может подавлять задержку.
В одном изображении компонента цвета, данные среза, включенные в это изображение, могут быть переданы в порядке растрового сканирования макроблоков или могут быть составлены таким образом, что обеспечивается возможность выполнения передачи с перемежением, даже в одном изображении.
Операции, выполняемые первым модулем 102 кодирования изображения и вторым модулем 104 кодирования изображения, подробно поясняются ниже.
Схематичное описание операций первого модуля 102 кодирования изображения
Внутренняя структура первого модуля 102 кодирования изображения показана на фиг. 13. На этом чертеже входной видеосигнал 1 вводят в формате 4:4:4 и в модуль макроблока в группе из трех компонентов цвета в формате по фиг. 6.
Вначале модуль 110 прогнозирования выбирает эталонное изображение из данных эталонного изображения прогнозирования компенсации движения, сохраненных в запоминающем устройстве 111, и выполняет обработку прогнозирования компенсации движения в модуле макроблока. Возможно сохранять множество частей данных эталонного изображения, составленных из трех компонентов цвета множество раз. Модуль 110 прогнозирования выбирает оптимальное эталонное изображение в модуле макроблока из данных эталонного изображения и выполняет прогнозирование движения.
В качестве компоновки данных эталонного изображения в запоминающем устройстве 111, данные эталонного изображения могут быть сохранены отдельно для каждого из компонентов цвета в виде простой последовательности, или выборки компонентов соответствующих цветов могут быть сохранены в виде последовательности точек. Семь типов подготавливают как размеры блока для выполнения прогнозирования компенсации движения. Вначале возможно выбрать размер любого одного из модулей в макроблоках размером 16×16, 16×8, 8×16 и 8×8. Кроме того, когда выбирают размер 8×8, возможно выбрать любой один из размеров 8×8, 8×4, 4×8 и 4×4 для каждого блока 8×8.
Модуль 110 прогнозирования выполняет для каждого размера макроблока обработку прогнозирования компенсации движения для всех или для части размеров блоков 16×16, 16×8, 8×16 и 8×8, размеров подблоков 8×8, 8×4, 4×8 и 4×4, векторов движения в заданном диапазоне поиска, и одного или больше используемых эталонных изображений. Модуль 110 прогнозирования получает разностный сигнал 114 прогнозирования для каждого блока, используемого в качестве модуля прогнозирования компенсации движения, используя векторы движения, и информацию 112 идентификации эталонного изображения и вычитатель 113, используемые для прогнозирования.
Эффективность прогнозирования разностного сигнала 114 прогнозирования оценивают в модуле 115 определения режима кодирования. Модуль 115 определения режима кодирования выводит тип 116 макроблока/тип вспомогательного макроблока, и информацию 112 идентификации вектора движения/эталонного изображения с оптимальной эффективностью прогнозирования получают для прогнозируемого макроблока в результате обработки прогнозирования, выполняемой в модуле 110 прогнозирования.
Все части информации заголовка макроблока, такие как типы макроблока, тип подмакроблока, индексы эталонного изображения и векторы движения определяют как информацию о заголовке, общую для трех компонентов цвета, используемую для кодирования и мультиплексированную с потоком битов.
При оценке оптимальности эффективности прогнозирования, с целью управления количеством арифметических операций, можно оценить количество ошибок прогнозирования для заданного компонента цвета (например, компонента G в схеме RGB или компонента Y в схеме YUV). В качестве альтернативы, хотя количество арифметических операций увеличивается, для получения оптимальных характеристик прогнозирования можно всесторонне оценить количество ошибок прогнозирования для всех компонентов цвета. При конечном выборе типа 116 макроблока/типа подмакроблока, можно учитывать весовой коэффициент 118 для каждого типа, определенного при определении, выполняемом модулем 117 управления кодированием.
Аналогично, модуль 110 прогнозирования также выполняет прогнозирование внутри кадра. Когда выполняется прогнозирование внутри кадра, информацию о режиме прогнозирования внутри кадра выводят в сигнал 112. В следующем пояснении, когда специально не приведено различие прогнозирование внутри кадра и прогнозирование компенсации движения в качестве выходного сигнала 112, информация о режиме прогнозирования внутри кадра, информация вектора движения, номер идентификации эталонного изображения, в общем, называются служебной информацией прогнозирования. Что касается прогнозирования внутри кадра, всесторонне оценить количество ошибок прогнозирования возможно только для заданного компонента цвета, или может быть полностью оценено количество ошибок прогнозирования для всех компонентов цвета. Наконец, модуль 110 прогнозирования выбирает прогнозирование внутри или прогнозирование между кадрами типа макроблока путем оценки типа макроблока в соответствии с эффективностью прогнозирования или эффективностью кодирования в модуле 115 определения режима кодирования.
Модуль 110 прогнозирования выводит выбранный тип 116 макроблока/тип подмакроблока и разностный сигнал 114 прогнозирования, полученный в результате прогнозирования внутри кадра и прогнозирования для компенсации движения на основе служебной информации 112 прогнозирования, в модуль 119 преобразования. Модуль 119 преобразования преобразует введенный разностный сигнал 114 прогнозирования и выводит разностный сигнал 114 прогнозирования в модуль 120 квантования как коэффициент преобразования. В этом случае размер блока, используемого в качестве единичного модуля для преобразования, может быть выбран из значений 4×4 и 8×8. В случае, когда существует возможность выбора размера блока преобразования, размер блока, выбранный во время кодирования, отображается в флаге 134 обозначения размера блока преобразования, и этот флаг мультиплексирован с потоком битов.
Модуль 120 квантования осуществляет квантование коэффициента преобразования, введенного на основе параметра 121 квантования, определенного модулем 117 управления кодированием, и выводит преобразованный коэффициент в модуль 123 кодирования с переменной длиной, в качестве квантованного коэффициента 122 преобразования. Квантованный коэффициент 122 преобразования включает в себя информацию для трех компонентов цвета, полученных в результате энтропийного кодирования с помощью кодирования Хаффмана, арифметического кодирования или тому подобное в модуле 123 кодирования с переменной длиной слова.
Квантованный коэффициент 122 преобразования восстанавливают до локального разностного сигнала 126 прогнозирования декодирования, используя модуль 124 инверсного квантования и модуль 125 инверсного преобразования. Коэффициент 122 квантованного преобразования добавляют к прогнозируемому изображению 127, сгенерированному на основе выбранного типа 116 макроблока/типа подмакроблока и служебной информации 112 прогнозирования, с помощью сумматора 128. Вследствие этого, генерируется декодированное изображение 129. После выполнения для этого блока обработки устранения искажений в фильтре 130 удаления искажения блока локальное декодированное изображение 129 сохраняется в запоминающем устройстве 111, которое предназначено для использования при следующей обработке прогнозирования компенсации движения.
Флаг 131 управления фильтром удаления искажения блока, обозначающий, применяется ли фильтр удаления искажения блока для макроблока, также вводят в модуль 123 кодирования с переменной длиной.
Квантованный коэффициент 122 преобразования, тип 116 макроблока/тип подмакроблока, служебная информация 112 прогнозирования и параметр 121 квантования, введенные в модуль 123 кодирования с переменной длиной слова, располагают и формируют в поток битов, в соответствии с заданным правилом (синтаксисом) и выводят в буфер преобразования как кодированные данные 132 модуля NAL в единицах данных среза по одиночке или в группе из множества макроблоков формата, показанного на фиг. 6.
Буфер 17 передачи сглаживает поток битов в соответствии с полосой линии передачи, к которой подключен кодер, и скоростью считывания носителя записи, и выводит поток битов, как видеопоток 133. Буфер 17 преобразования применяет обратную связь к модулю 117 управления кодированием в соответствии с состоянием накопления потоков битов в буфере 133 передачи и управляет количеством генерируемых кодов, в следующих видеокадрах кодирования.
Выход первого модуля 102 кодирования изображения представляет собой срез модуля из трех компонентов и эквивалентен количеству кодов в модуле из группы модулей доступа. Таким образом, буфер 132 передачи может быть скомпонован в модуле 105 мультиплексирования, как есть.
В первом модуле 102 кодирования изображения, в соответствии с седьмым вариантом воплощения, возможно определить, что все данные среза в последовательности представляют собой срез, в котором смешаны C0, C1 и C2 (то есть срез, в котором смешаны части информации, состоящие из трех компонентов цвета), в соответствии с сигналом 101 идентификации общего кодирования/независимого кодирования. Таким образом, флаг идентификации компонента цвета не мультиплексирован с заголовком среза.
Схема операций второго модуля 104 кодирования изображения
Внутренняя структура второго модуля 104 кодирования показана на фиг. 14. На чертеже предполагается, что входной видеосигнал 1a вводят в модуль макроблока, состоящий из выборки одного компонента цвета, в формате, показанном на фиг. 7.
Вначале модуль 210 прогнозирования выбирает эталонное изображение из данных эталонного изображения прогнозирования компенсации движения, сохраненных в запоминающем устройстве 211, и выполняет обработку прогнозирования компенсации движения в модуле макроблока. При этом возможно сохранять множество частей данных эталонного изображения, состоящих из одного компонента цвета, в множество моментов времени в запоминающем устройстве 211. Модуль 210 прогнозирования выбирает оптимальное эталонное изображение в модуле макроблока из данных эталонного изображения и выполняет прогнозирование движения.
Запоминающее устройство 211 в модуле группы из трех компонентов цвета можно совместно использовать с соответствующими запоминающими устройствами 111. Для прогнозирования компенсации движения подготавливают семь типов в качестве размеров блока для выполнения. Во-первых, возможно выбрать любой один из размеров 16×16, 16×8, 8×16 и 8×8 в модулях макроблоков. Кроме того, когда выбран 8×8, можно выбрать любой один из размеров 8×8, 8×4, 4×8 и 4×4 для каждого блока 8×8.
Модуль 210 прогнозирования выполняет для каждого размера макроблока обработку прогнозирования компенсации движения для всех или для части размеров блока 16×16, 16×8, 8×16 и 8×8, размеров подблока 8×8, 8×4, 4×8 и 4×4, векторов движения в заданном диапазоне поиска и для одного или больше используемых эталонных изображений. Модуль 210 прогнозирования получает разностный сигнал 214 прогнозирования для каждого блока, применяемого как модуль прогнозирования компенсации движения, используя векторы движения и индекс 212 эталонного изображения, а также блок 213 вычитания, используемый для прогнозирования.
Эффективность прогнозирования разностного сигнала 214 прогнозирования оценивают в модуле 215 определения режима кодирования. Модуль 215 определения режима кодирования выводит тип 216 макроблока/тип подмакроблока и индекс 212 вектора движения/эталонного изображения, с которыми получают оптимальную эффективность прогнозирования для прогнозируемого макроблока, из обработки прогнозирования, выполняемой в модуле 210 прогнозирования. Все части информации заголовка макроблока, такие как типы макроблока, типы подмакроблока, индексы эталонного изображения и векторы движения, определяют как информацию о заголовке относительно компонента одного цвета входного видеосигнала 1a, используемого для кодирования и мультиплексированного с потоком битов.
При оценке оптимальности эффективности прогнозирования оценивают только величину ошибки прогнозирования для одного компонента цвета, подвергаемого обработке кодирования. При окончательном выборе типа 216 макроблока/типа подмакроблока можно учитывать весовой коэффициент 218 для каждого определенного типа при определении с помощью модуля 217 управления кодированием.
Аналогично, модуль 210 прогнозирования также выполняет прогнозирование внутри кадра. Модуль 110 прогнозирования представляет собой блок, который выполняет как прогнозирование внутри кадра, так и прогнозирование между кадрами. Во время выполнения прогнозирования внутри кадра информацию о режиме прогнозирования внутри кадра выводят в сигнал 212. При следующих пояснениях, когда не требуется разделить прогнозирование внутри кадра и прогнозирование компенсации движения, сигнал 212 называется служебной информацией прогнозирования. Кроме того, что касается прогнозирования внутри кадра, оценивают только величину ошибки прогнозирования для одного компонента цвета, подвергаемого обработке кодирования. Наконец, модуль 210 прогнозирования выбирает прогнозирование внутри кадра или прогнозирование между кадрами типа макроблока путем оценки типа макроблока в соответствии с эффективностью прогнозирования или эффективностью кодирования в модуле 115 определения режима кодирования.
Модуль 210 прогнозирования выводит выбранный тип 216 макроблока/тип подмакроблока и разностный сигнал 214 прогнозирования, полученный по служебной информации 212 прогнозирования, в модуль 219 преобразования. Модуль 219 преобразования преобразует введенный разностный сигнал 214 прогнозирования одного компонента цвета и выводит разностный сигнал 214 прогнозирования в модуль 220 квантования в качестве коэффициента преобразования. В этом случае, размер блока, используемого в качестве единичного модуля для преобразования, может быть выбран из 4×4 и 8×8. Когда такой выбор возможен, размер блока, выбранный во время кодирования, отражается на значении флага 234 обозначения размера блока преобразования, и этот флаг мультиплексируют с потоком битов.
Модуль 220 квантования выполняет квантование коэффициента преобразования, введенного на основе параметра 221 квантования, определенного модулем 217 управления кодированием, и выводит этот коэффициент преобразования в модуль 223 кодирования с переменной длиной слова, как квантованный коэффициент 222 преобразования. Квантованный коэффициент 222 преобразования включает в себя информацию по одному компоненту цвета, и его подвергают энтропийному кодированию с использованием кодирования Хаффмана, арифметического кодирования или тому подобное, в модуле 223 переменного кодирования.
Квантованный коэффициент 222 преобразования восстанавливают в разностный сигнал 226 прогнозирования локального декодирования через модуль 224 инверсного квантования и модуль 225 инверсного преобразования. Квантованный коэффициент 222 преобразования добавляют к прогнозируемому изображению 227, сгенерированному на основе выбранного типа 216 макроблока/типа подмакроблока и служебной информации 212 прогнозирования с использованием сумматора 228. В результате, генерируют локально декодированное изображение 229.
После обработки удаления искажения блока в фильтре 230 удаления искажения блока локально декодированное изображение 229 сохраняют в запоминающем устройстве 211 для использования в следующей обработке прогнозирования компенсации движения. Флаг 231 управления фильтром удаления искажения блока, обозначающий применяется ли фильтр удаления искажения блока к макроблоку, также вводят в модуль 223 кодирования с переменной длиной слова.
Квантованный коэффициент 222 преобразования, тип 216 макроблока/тип подмакроблока, служебная информация 212 прогнозирования и параметр 221 квантования, вводимые в модуль 223 кодирования с переменной длиной слова, компонуют и формируют как поток битов в соответствии с заданным правилом (синтаксисом) и выводят в буфер 232 передачи, как данные, кодированные в модуле NAL, в единицах данных среза, по одному или в группе из множества макроблоков формата, показанных на фиг. 7.
Буфер 232 передачи сглаживает поток битов в соответствии с полосой линии передачи, к которой подключен кодер, и скоростью считывания носителя записи, и выводит поток битов как видеопоток 233. Буфер 232 передачи применяет обратную связь к модулю 217 управления кодированием, в соответствии с состоянием накопления потоков битов, в буфере 232 передачи и управляет количеством генерируемых кодов при следующем кодировании видеокадров.
Вывод второго модуля 104 кодирования изображения представляет собой срез, состоящий только из данных одного компонента цвета. Когда требуется обеспечить управление количеством кодов в модуле, состоящем из группы модулей доступа, общий буфер передачи в модуле мультиплексированных вырезок всех компонентов цвета может быть предусмотрен в модуле 105 мультиплексирования для применения обратной связи к модулю 217 управления кодированием соответствующих компонентов цвета на основе степени заполнения буфера.
В этом случае управление кодированием может быть выполнено с использованием только количества информации генерирования всех компонентов цвета, или может быть также выполнено с учетом состояния буфера 232 передачи каждого из компонентов цвета. Когда управление кодированием осуществляют с использованием только количества информации генерирования всех компонентов цвета, также возможно реализовать функцию, эквивалентную буферу 232 передачи, с общим буфером передачи в модуле 105 мультиплексирования, с тем, чтобы исключить буфер 232 передачи.
Во втором модуле 104 кодирования изображения, в соответствии с седьмым вариантом воплощения, возможно определять, что все данные среза в последовательности представляют собой срез одного компонента цвета (то есть срез C0, срез C1 или срез C2) в соответствии с сигналом 101 идентификации общего кодирования/независимого кодирования. Таким образом, флаг идентификации компонента цвета всегда мультиплексирован с заголовком среза, что позволяет определять на стороне декодера, каким данным изображения в модуле доступа соответствует срез.
Поэтому соответствующие вторые модули 104 кодирования изображения могут передавать выходные данные из соответствующих буферов 232 передачи в момент, когда накапливаются данные для одного среза, без накопления выходных данных для одного изображения.
Первый модуль 102 кодирования изображения и вторые модули 104 кодирования изображения отличаются только тем, обрабатывается ли информация заголовка макроблока как информация, общая для трех компонентов, или обрабатывается как информация компонента одного цвета и в структуре потока бита данных среза. При этом возможно реализовать большую часть основных блоков обработки, как модули прогнозирования, модули преобразования и модули обратного преобразования, модули квантования и модули обратного квантования, и фильтры удаления искажения блока, показанные на фиг. 13 и 14, могут быть реализованы в функциональных блоках, общих для первого модуля 102 кодирования изображения, и вторых модулей 104 кодирования изображения, с единственным различием, состоящим в том, обрабатывается ли информация трех компонентов цвета совместно, или обрабатывается только информация одного компонента цвета.
Поэтому возможно реализовать не только модуль полностью независимой обработки кодирования, показанный на фиг. 11, но также и различные кодеры, путем соответствующего комбинирования основных компонентов, показанных на фиг. 13 и 14. Если компоновка запоминающего устройства 111 в первом модуле 102 кодирования изображения предусмотрена в виде последовательности планов, возможно совместно использовать структуру запоминающего устройства сохранения эталонного изображения между первым модулем 102 кодирования изображения и вторым модулем 104 кодирования изображения.
Хотя это и не показано на чертеже, в кодере в соответствии с данным вариантом воплощения, если предположить наличие воображаемого буфера потока (буфера изображения кодирования), в котором размещается видеопоток 106 в соответствии с матрицами, показанными на фиг. 9 и 10 в воображаемом фрейме запоминающего устройства (буфере изображения декодирования), в котором размещаются декодированные изображения 313a и 313b, видеопоток 106 генерируют так, что предотвращается переполнение или неполное наполнение буфера изображения кодирования, и ошибка буфера изображения декодирования. Это управление, в основном, выполняется с помощью модулей 117 и 217 управления кодированием.
Следовательно, когда видеопоток 106 декодируют в соответствии с операциями (модели воображаемого буфера) буфера изображения кодирования и буфера изображения декодирования в декодере, гарантируется, что в декодере не будет возникать ошибка. Воображаемые модели буфера определены ниже.
Операции буфера изображения кодирования выполняют в модулях модуля доступа. Как описано выше, когда выполняется обработка общего декодирования, кодированные данные одного изображения включены в один модуль доступа. Когда выполняется обработка независимого декодирования, кодированные данные изображений для множества компонентов цвета (три изображения в случае трех компонентов цвета) включены в один модуль доступа.
Операции, определенные в буфере изображения кодирования, выполняются, когда первый бит и последний бит модуля доступа вводят в буфер изображения кодирования, и в момент времени, когда бит модуля доступа считывают из буфера изображения кодирования. Определено, что считывание из буфера изображения кодирования выполняется одномоментно. Предполагается, что все биты модуля доступа считывают из буфера изображения кодирования в один и тот же момент времени.
Когда бит модуля доступа считывают из буфера изображения кодирования, этот бит вводят в верхний модуль анализа заголовка. Как описано выше, этот бит подвергают обработке декодирования в первом модуле декодирования изображения или во втором модуле декодирования изображения, и выводят как цветной видеокадр, который упакованный в модулях модуля доступа. Обработка от момента считывания бита из буфера изображения кодирования и вывода изображения в виде цветного видеокадра в модулях модуля доступа выполняется одномоментно путем определения воображаемой модели буфера.
Цветной видеокадр, составленный в модулях из модуля доступа, вводят в буфер изображения декодирования и рассчитывают время вывода кадра цветного видеоизображения из буфера изображения декодирования. Время вывода из буфера изображения декодирования представляет собой величину, рассчитываемую путем добавления заданного времени задержки к времени считывания из буфера изображения кодирования.
Возможно мультиплексировать это время задержки с потоком битов для управления декодером. Когда время задержки равно 0, то есть, когда время вывода из буфера изображения декодирования равно времени считывания из изображения кодирования, кадр цветного видеоизображения вводят в буфер изображения декодирования и одновременно выводят из буфера изображения декодирования.
В других случаях, то есть, когда время вывода из буфера изображения декодирования наступает позже, чем время считывания из буфера изображения кодирования, кадр цветного видеоизображения сохраняют в буфере изображения декодирования до тех пор, пока не наступит время вывода из буфера изображения декодирования. Как описано выше, операции буфера изображения декодирования определены в модулях доступа.
Схематичная структура декодера в соответствии с седьмым вариантом воплощения представлена на фиг. 15. На чертеже общая обработка декодирования выполняется в первом модуле 302 декодирования изображения. Независимая обработка декодирования выполняется в модуле 303 определения компонента цвета, и, во вторых, модулях 304 декодирования изображения (подготовлены для трех компонентов цвета).
Поток 106 битов разделяют на модули из модулей NAL в модуле 300 анализа верхнего заголовка. Информацию верхнего заголовка, такую как установленный параметр последовательности и установленный параметр изображения, декодируют, как она есть, сохраняют в заданной области запоминающего устройства, в которой первый модуль 302 декодирования изображения, модуль 303 определения компонента цвета, и модули 304 декодирования второго изображения могут обращаться к информации верхнего заголовка. Сигнал идентификации общего кодирования/независимого кодирования (num_pictures_in_au), мультиплексированный в модули последовательности, декодируют и содержат как часть информации верхнего заголовка.
Декодированный num_pictures_in_au подают в переключатель (SW) 301. Если num_pictures_in_au=1, переключатель 301 передает модуль NAL среза для каждого изображения в первый модуль 302 декодирования изображения. Если num_pictures_in_au=3, переключатель 301 передает модуль NAL среза в модуль 303 определения компонента цвета.
Другими словами, если num_pictures_in_au=1, обработку общего декодирования выполняют в первом модуле 302 декодирования изображения. Если num_pictures_in_au=3, обработку независимого декодирования выполняют с помощью трех вторых модулей 304 декодирования изображения. Подробно операции первого и второго модулей декодирования изображения будут описаны ниже.
Модуль 303 определения компонента цвета представляет собой средство детектирования, предназначенное для детектирования параметра, обозначающего какому компоненту цвета соответствуют декодированные данные. Модуль 303 определения компонента цвета определяет, какому изображению компонента цвета в данном модуле доступа соответствует модуль NAL среза, в соответствии со значением флага идентификации компонента цвета, показанного на фиг. 10, и распределяет, и передает модуль NAL среза в соответствующий второй модуль 304 декодирования изображения.
При такой структуре декодера обеспечивается эффект, состоящий в том, что даже если будет принят поток битов, полученный в результате перемежения и кодирования среза в модуле доступа, как показано на фиг. 12, становится возможным легко определять, какой срез принадлежит какому изображению компонента цвета и, соответственно, декодировать поток битов.
Схема работы первого модуля 302 декодирования изображения
Внутренняя структура первого модуля 302 декодирования изображения показана на фиг. 16. Первый модуль 302 декодирования изображения принимает поток 106 битов, соответствующий матрицам, показанным на фиг. 9 и 10, который выводят из второго кодера, показанного на фиг. 11, в модулях смешанного среза C0, C1 и C2. Первый модуль 302 декодирования изображения выполняет обработку декодирования с макроблоком, состоящим из выборок из трех компонентов цвета, показанных на фиг. 6, и восстанавливает выходной видеокадр.
Поток 106 битов вводят в модуль 310 декодирования с переменной длиной слова. Модуль 310 декодирования с переменной длиной слова интерпретирует поток 106 битов в соответствии с заданным правилом (синтаксисом) и выделяет квантованный коэффициент 122 преобразования для трех компонентов и информацию заголовка макроблока (тип 116 макроблока/тип подмакроблока служебной информации 112 прогнозирования, флаг 134 обозначения размера блока преобразования и параметр 121 квантования), используемые совместно для трех компонентов. Квантованный коэффициент 122 преобразования вводят в модуль 124 обратного квантования, который выполняет такую же обработку, что и первый модуль 102 кодирования изображения, вместе с параметром 121 квантования и выполняет обработку обратного квантования.
Затем выход модуля 124 обратного квантования вводят в модуль 125 обратного преобразования, который выполняет ту же обработку, что и первый модуль 102 кодирования изображения, и восстанавливают в разностный сигнал 126 прогнозирования локального декодирования (если флаг 134 обозначения размера блока преобразования присутствует в потоке 106 битов, на флаг 134 обозначения размера блока преобразования ссылаются на этапе обратного квантования и на этапе обработки обратного преобразования).
С другой стороны, только обработка, состоящая в обращении к служебной информации 112 прогнозирования, для генерирования прогнозируемого изображения 127 в модуле 110 прогнозирования в первом модуле 102 кодирования изображения, включена в модуль 311 прогнозирования. Тип 116 макроблока/тип подмакроблока и служебную информацию 112 прогнозирования вводят в модуль 311 прогнозирования, для получения прогнозируемого изображения 127 для трех компонентов.
Когда тип макроблока обозначает прогнозирование внутри кадра, прогнозируемое изображение 127 для трех компонентов получают из служебной информации 112 прогнозирования в соответствии с информацией режима прогнозирования внутри кадра. Когда тип макроблока обозначает прогнозирование между кадрами, прогнозируемое изображение 127 для трех компонентов получают из служебной информации 112 прогнозирования в соответствии с вектором движения и индексом эталонного изображения.
Разностный сигнал 126 прогнозирования локального декодирования и прогнозируемое изображение 127 суммируют с помощью сумматора 128 для получения предварительного декодированного изображения 129 для трех компонентов. Поскольку предварительное декодированное изображение 129 используется для прогнозирования компенсации движения следующих макроблоков, после применения обработки удаления искажения блока к выборкам предварительного декодированного изображения для трех компонентов в фильтре 130 удаления искажения блока, который выполняет ту же обработку, что и первый модуль 102 кодирования изображения, предварительное декодированное изображение 129 выводят как декодированное изображение 313 и сохраняют в запоминающем устройстве 312.
В этом случае обработку фильтра удаления искажения блока применяют к предварительному декодированному изображению 129 на основе инструкции флага 131 управления фильтром удаления искажения блока, интерпретируемой модулем 310 декодирования с переменной длиной слова. Множество частей данных эталонного изображения, составленных из компонентов трех цветов для множества значений времени, сохраняют в запоминающем устройстве 312.
Модуль 311 прогнозирования выбирает эталонное изображение, обозначенное индексом эталонного изображения, выделенным из потока битов, в модуле макроблока из данных эталонного изображения и генерирует прогнозируемое изображение. В качестве компоновки данных эталонного изображения в запоминающем устройстве 312 данные эталонного изображения могут быть отдельно сохранены для каждого из компонентов цвета в виде последовательности планов, или выборки соответствующих компонентов цвета могут быть сохранены в последовательности пикселей. Декодированное изображение 313 включает в себя три компонента цвета и непосредственно заменяет фрейм цветного видеоизображения, составляющий модуль 313a доступа при обработке общего декодирования.
Схема работы второго модуля 304 декодирования изображения
Внутренняя структура второго модуля 304 декодирования изображения показана на фиг. 17. Второй модуль 304 декодирования изображения принимает поток 106 битов, соответствующий матрицам, показанным на фиг. 9 и 10, выводимым из декодера, показанного на фиг. 11, в модулях 450 NAL среза C0, C1 или C2, выделенных модулем 303 определения компонента цвета, выполняет обработку декодирования с макроблоком, состоящим из выборки из одного компонента цвета, показанного на фиг. 7, в качестве модуля, и восстанавливает выходной кадр видеоизображения.
Поток 450 битов вводят в модуль 410 декодирования с переменной длиной слова. Модуль 410 декодирования с переменной длиной слова интерпретирует поток 450 битов в соответствии с заданным правилом (синтаксисом) и выделяет квантованный коэффициент 222 преобразования для компонента одного цвета и информации заголовка макроблока (тип 216 макроблока/тип подмакроблока, служебная информация 212 прогнозирования, флаг 234 обозначения размера блока преобразования и параметр 221 квантования), которые совместно используются для одного компонента цвета.
Квантованный коэффициент 222 преобразования вводят в модуль 224 обратного квантования, который выполняет ту же обработку, что и второй модуль 104 кодирования изображения, вместе с параметром 221 квантования и подвергают обработке обратного квантования. Затем выход модуля 224 обратного квантования подают в модуль 225 обратного преобразования, который выполняет ту же обработку, что и второй модуль 104 кодирования изображения, и восстанавливают с получением разностного сигнала 226 прогнозирования локального декодирования (если флаг 234 обозначения размера блока преобразования присутствует в потоке 450 битов, флаг 234 обозначения размера блока преобразования считывают на этапе обратного квантования и на этапе обработки обратного преобразования).
С другой стороны, только обработка обращения к служебной информации 212 для генерирования прогнозируемого изображения 227 в модуле 210 прогнозирования во втором модуле 104 кодирования изображения, включена в модуль 411 прогнозирования. Тип 216 макроблока/тип подмакроблока и служебную информацию 212 прогнозирования вводят в модуль 411 прогнозирования для получения прогнозируемого изображения 227 для одного компонента цвета.
Когда тип макроблока обозначает прогнозирование внутри кадра, прогнозируемое изображение 227 для одного компонента цвета, получают из служебной информации 212 прогнозирования, в соответствии с информацией режима прогнозирования внутри кадра. Когда тип макроблока обозначает прогнозирование между кадрами, прогнозируемое изображение 227 для одного компонента цвета, получают из служебной информации 212 прогнозирования, в соответствии с вектором движения и индексом эталонного изображения.
Разностный сигнал 226 прогнозирования локального декодирования и прогнозируемое изображение 227 суммируют с помощью сумматора 228 для получения предварительного декодированного изображения 229, для макроблока одного компонента цвета. Поскольку предварительно декодированное изображение 229 используется для прогнозирования компенсации движения следующих макроблоков, после применения обработки удаления искажения блока к выборкам предварительного декодированного изображения для одного компонента цвета в фильтре 230 удаления искажения блока, который выполняет ту же обработку, что и во втором модуле 104 кодирования изображения, предварительное декодированное изображение 229 выводят как декодированное изображение 451 и сохраняют в запоминающем устройстве 412.
В этом случае обработку фильтра удаления искажения блока применяют к предварительно декодированному изображению 229 на основе инструкции флага 231 управления фильтром удаления искажения блока, интерпретируемой модулем 410 декодирования с переменной длиной слова. Декодированное изображение 410 включает в себя только выборку одного компонента цвета, и его составляют как кадр цветного видеоизображения путем построения в модулях 313b доступа выходных данных других соответствующих вторых модулей 304 декодирования изображения для параллельной обработки, показанной на фиг. 15.
Из приведенного выше следует, что первый модуль 302 декодирования изображения и вторые модули 304 декодирования изображения отличаются только тем, что информация заголовка макроблока обрабатывается как информация, общая для трех компонентов, или обрабатывается как информация компонента одного цвета и в структуре потока битов данных среза. При этом возможно реализовать большую часть основных блоков обработки декодирования в виде обработки прогнозирования компенсации движения, обратного преобразования и обратного квантования, показанных на фиг. 13 и 14 в функциональных блоках, общих для первого модуля 302 кодирования изображения и вторых модулей 304 кодирования изображения.
Поэтому возможно реализовать вариант воплощения не только полностью независимого модуля обработки декодирования, показанного на фиг. 15, но также и различных декодеров, путем приблизительного комбинирования основных компонентов, показанных на фиг. 16 и 17. Кроме того, если компоновка запоминающего устройства 312 первого модуля 302 кодирования изображения предусмотрена в виде простой последовательности, возможно совместно использовать структуры запоминающих устройств 312 и 412 между первым модулем 302 декодирования изображения и вторым модулем 304 декодирования изображения.
Само собой разумеется, что декодер, показанный на фиг. 15, позволяет принимать и декодировать поток битов, выводимый из кодера, скомпонованного так, что он всегда фиксирует сигнал 3 идентификации общего кодирования/независимого кодирования, как "обработку независимого кодирования" и независимо кодирует все кадры, без использования первого модуля 102 кодирования изображения, вообще, в качестве другой формы кодера, показанного на фиг. 11.
В качестве другой формы декодера, показанного на фиг. 15, в форме использования при условии, что сигнал 3 идентификации общего кодирования/независимого кодирования всегда зафиксирован на "обработке независимого кодирования", декодер может быть составлен как декодер, который не включает в себя переключатель 301, и первый модуль 302 декодирования изображения выполняет только обработку независимого декодирования.
Если первый модуль 302 декодирования изображения включает в себя функцию декодирования потока битов, соответствующую высокому профилю AVC, в котором три компонента совместно кодируют с обычным форматом YUV (сигнал для формата, представляющего цвет, с использованием трех частей информации сигнала для сигнала (Y) яркости, разности (U) между сигналом яркости и синим компонентом, и разности (V) между сигналом яркости и красным компонентом) 4:2:0, как объект, и модуль 300 анализа верхнего заголовка, определяет, по какому формату кодирован поток битов со ссылкой на идентификатор профиля, декодированный из потока 106 битов, и передает результат определения в переключатель 301 и первый модуль 302 декодирования изображения, как часть информации одной строки сигнала 3 идентификации общего кодирования/независимого кодирования, также возможно составить декодер, который обеспечивает совместимость обычного формата YUV 4:2:0 с потоком битов.
В первом модуле 102 кодирования изображения, в седьмом варианте воплощения настоящего изобретения, части информации трех компонентов цвета смешивают с данными среза, и совершенно ту же обработку прогнозирования внутри кадров/между кадрами применяют для трех компонентов цвета. В соответствии с этим, корреляция сигнала среди компонентов цвета может оставаться в пространстве сигнала ошибки прогнозирования.
В качестве компенсации удаления корреляции сигнала, например, обработка преобразования цветового пространства, может применяться для сигнала ошибки прогнозирования. Примеры первого модуля 102 кодирования изображения, имеющего такую структуру, показаны на фиг. 18 и 19. На фиг. 18 и 19 используются те же компоненты, которые показаны на фиг. 13, за исключением модуля преобразования цветового пространства и модуля обратного преобразования цветового пространства.
На фиг. 18 показан пример, в котором обработка преобразования цветового пространства осуществляется на уровне пикселя перед выполнением обработки преобразования. Модуль 150a преобразования цветового пространства расположен перед модулем преобразования, и модуль 151a обратного преобразования цветового пространства расположен после модуля обратного преобразования.
На фиг. 19 показан пример, в котором выполняют обработку преобразования цветового пространства, в то время как обрабатываемый компонент частоты соответствующим образом выбирают относительно данных коэффициента, полученных после выполнения обработки преобразования. Модуль 150b преобразования цветового пространства расположен после модуля преобразования, и модуль 151b обратного преобразования цветового пространства расположен перед модулем обратного преобразования. Таким образом, формируется эффект, состоящий в том, что становится возможным управлять высокочастотным компонентом шумов, включенным в конкретный компонент цвета, так, что он не будет распространяться на другие компоненты цвета, которые маловероятно включают в себя шумы.
Когда компонент частоты, подвергаемый обработке преобразования цветового пространства, делают адаптивно избираемым, части информации 152a и 152b сигналов, предназначенной для определения выбора времени кодирования, мультиплексируют с потоком битов на стороне декодирования.
При обработке преобразования цветового пространства множество систем преобразования могут переключаться в модулях макроблока и использоваться в соответствии с характеристикой сигнала изображения, подвергаемого кодированию, или наличие, или отсутствие преобразования может определяться в модуле макроблока. Также возможно заранее обозначить типы выбираемых систем преобразования на уровне последовательности, и обозначить систему преобразования, которая должна быть выбрана в модуле изображения, среза, макроблока или тому подобное. Возможно выбирать, следует ли выполнять обработку преобразования цветового пространства перед преобразованием или после преобразования.
Когда выполняют адаптивную обработку кодирования такого типа, возможно выполнить оценку эффективности кодирования для всех выбираемых вариантов с использованием модуля 115 или 215 определения режима кодирования для выбора варианта с наибольшей эффективностью кодирования. Когда выполняют обработку адаптивного кодирования такого вида, части информации 152a и 152b сигналов для определения выбора времени кодирования мультиплексируют с потоком битов на стороне декодирования. Такие сигналы могут быть обозначены на уровне, отличающемся от макроблоков, таком как срез, изображение, GOP и последовательность.
Декодеры, соответствующие кодерам на фиг. 18 и 19, показаны на фиг. 20 и 21. Компоненты, показанные на фиг. 20 и 21, являются теми же, что и компоненты, представленные на фиг. 16, за исключением модуля обратного преобразования цветового пространства. На фиг. 20 иллюстрируется декодер, который декодирует поток битов, кодированных кодером, показанным на фиг. 18, путем выполнения преобразования цветового пространства перед обработкой преобразования.
Модуль декодирования с переменной длиной слова декодирует из потока битов информацию о наличии или отсутствии преобразования для выбора, следует ли выполнять преобразование в модуле 151a обратного преобразования цветового пространства, и информацию 152a для выбора способа преобразования, выполняемого в модуле обратного преобразования цветового пространства, и передает эту информацию в модуль 151a обратного преобразования цветового пространства. Декодер, показанный на фиг. 20, выполняет, в модуле 151a обратного преобразования цветового пространства, обработку преобразования цветового пространства для сигнала ошибки прогнозирования после обратного преобразования на основе этих видов информации.
На фиг. 21 иллюстрируется декодер, который декодирует поток битов, кодированный с помощью кодера, показанного на фиг. 19, путем выбора частотного компонента, подвергаемого обработке после обработки преобразования и выполнения преобразования цветового пространства. Модуль декодирования с переменной длиной слова декодирует из потока битов информацию 152b идентификации, включающую в себя информацию о наличии или отсутствии преобразования, для выбора, следует ли выполнять преобразование в модуле 151b обратного преобразования цветового пространства, информацию для выбора способа преобразования, выполняемого в модуле обратного преобразования цветового пространства, информацию для указания компонента частоты, в котором выполняется преобразование цветового пространства, и т.п., и передает эту информацию в модуль 151b обратного преобразования цветового пространства. Декодер, показанный на фиг. 21, выполняет в модуле 151b преобразования обратного цветового пространства обработку преобразования цветового пространства для преобразования данных коэффициента после обратного квантования на основе этих видов информации.
В декодерах, показанных на фиг. 20 и 21, в качестве декодера по фиг. 15, если первый модуль 302 декодирования изображения включает в себя функцию декодирования потока битов, соответствующую высокому профилю AVC, в котором совместно кодированы три компонента с обычным форматом YUV 4:2:0, в качестве объекта, и модуль 300 анализа модуля верхнего заголовка определяет, с помощью какого формата был кодирован поток битов, обращаясь к идентификатору профиля, декодированному из потока 106 битов, и передает результат определения в переключатель 10 и первый модуль 302 декодирования изображения, как часть информации о линии сигнала для сигнала 101 идентификации общего кодирования/независимого кодирования, при этом также возможно составить декодер, который обеспечивает совместимость обычного формата YUV 4:2:0 с потоком битов.
Структура кодированных данных информации заголовка макроблока, включенной в поток битов обычного формата YUV 4:2:0, показана на фиг. 22. Когда тип макроблока представляет собой прогнозирование внутри кадра, включены кодированные данные модуля 500 режима прогнозирования внутреннего прогнозирования цветности. Когда тип макроблока представляет собой прогнозирование между кадрами, вектор движения компонента цветности генерируется с помощью способа, отличающегося от способа, используемого для компонента яркости, в котором применяется идентификационный номер ссылочного изображения и информация вектора движения, включенные в информацию заголовка макроблока.
Работа декодера при обеспечении совместимости с обычным форматом YUV 4:2:0 с потоком битов поясняется ниже. Как описано выше, первый модуль 302 декодирования изображения имеет функцию декодирования потока битов обычного формата YUV 4:2:0. Внутренняя структура первого модуля декодирования изображения является такой же, как показана на фиг. 16.
Работа первого модуля 302 декодирования изображения и модуля 310 декодирования с переменной длиной слова, имеющего функцию декодирования потока битов обычного формата YUV 4:2:0, поясняется ниже. Когда видеопоток 106 подают в модуль 310 декодирования с переменной длиной слова, модуль 310 декодирования с переменной длиной слова декодирует флаг, обозначающий формат цветности. Флаг, обозначающий формат цветности, представляет собой флаг, включенный в заголовок параметра последовательности видеопотока 106, и обозначает, является ли входной видеоформат форматом 4:4:4, 4:2:2, 4:2:0 или 4:0:0.
Обработка декодирования для информации заголовка макроблока видеопотока 106 переключается в соответствии со значением флага обозначения формата цветности. Когда тип макроблока обозначает прогнозирование внутри кадра, и флаг обозначения цветности обозначает 4:2:0 или 4:2:2, режим прогнозирования цветности внутри кадра декодируют по потоку битов. Когда флаг обозначения формата цветности обозначает 4:4:4, декодирование в режиме прогнозирования цветности внутри кадра пропускают. Когда флаг обозначения формата цветности обозначает 4:0:0, поскольку входной видеосигнал имеет формат (формат 4:0:0), состоящий только из сигнала яркости, декодирование в режиме прогнозирования цветности внутри кадра пропускают.
Обработка декодирования для другой информации заголовка макроблока, помимо режима прогнозирования цветности внутри кадра, выполняется так же, как и в модуле 310 декодирования с переменной длиной первого модуля 302 декодирования изображения, который не включает в себя функцию декодирования потока битов обычного формата YUV 4:2:0.
Таким образом, когда видеопоток 106 поступает в модуль 310 декодирования с переменной длиной слова, этот модуль 310 декодирования с переменной длиной слова выделяет флаг обозначения формата цветности (не показан), квантованный коэффициент преобразования для трех компонентов и информацию заголовка макроблока (тип макроблока/тип подмакроблока, служебную информацию прогнозирования, флаг обозначения размера блока преобразования и параметр квантования). Флаг обозначения формата обозначения цветности (не показан) и служебную информацию прогнозирования вводят в модуль 311 прогнозирования для получения прогнозируемого изображения 127 по трем компонентам.
Внутренняя структура модуля 311 прогнозирования первого модуля 302 декодирования изображения, которая обеспечивает совместимость обычного формата YUV 4:2:0 с потоком битов, показана на фиг. 23. Ниже поясняются операции, выполняемые модулем 311 прогнозирования.
Модуль 501 переключения определяет тип макроблока. Когда тип макроблока обозначает прогнозирование внутри кадра, модуль 502 переключения определяет значение флага обозначения формата цветности. Когда значение флага обозначения формата представляет собой 4:2:0 или 4:2:2, модуль 311 прогнозирования получает прогнозируемое изображение 127 для трех компонентов по служебной информации прогнозирования, в соответствии с информацией о режиме прогнозирования внутри кадра и информацией о режиме прогнозирования цветности внутри кадра. Прогнозируемое изображение сигнала яркости генерируется, помимо трех компонентов, в модуле прогнозирования внутри кадра сигнала яркости в соответствии с информацией о режиме прогнозирования внутри кадра.
Прогнозируемое изображение разностного сигнала цветности двух компонентов генерируют в модуле прогнозирования внутри кадра разностного сигнала цветности, который выполняет обработку, отличающуюся от обработки компонента яркости, в соответствии с информацией о режиме прогнозирования цветности внутри кадра. Когда значение флага обозначения формата цветности представляет собой 4:4:4, прогнозируемые изображения всех трех компонентов генерируют в модуле прогнозирования внутри кадра сигнала яркости, в соответствии с информацией о режиме прогнозирования внутри кадра. Когда значение флага обозначения формата цветности представляет собой 4:0:0, поскольку формат 4:0:0 состоит только из сигнала яркости (один компонент), только прогнозируемое изображение сигнала яркости генерируется в модуле прогнозирования внутри кадра сигнала яркости в соответствии с информацией о режиме прогнозирования внутри кадра.
Когда тип макроблока обозначает прогнозирование между кадрами в модуле 501 переключения, модуль 503 переключения определяет значение флага обозначения формата цветности. Когда значение флага обозначения формата цветности представляет собой 4:2:0 или 4:2:2 в отношении сигнала яркости, прогнозируемое изображение генерируют из служебной информации прогнозирования в модуле прогнозирования между кадрами сигнала яркости в соответствии с вектором движения и индексом эталонного изображения, и в соответствии со способом генерирования прогнозируемого изображения для сигнала яркости, установленного стандартом AVC.
Что касается прогнозируемого изображения разностного сигнала цвета двух компонентов, в модуле прогнозирования между кадрами разностного сигнала цвета вектор движения, полученный из служебной информации прогнозирования, подвергают масштабированию на основе формата цветности для генерирования вектора движения цветности. Прогнозируемое изображение генерируют из эталонного изображения, обозначенного индексом эталонного изображения, который получают из служебной информации прогнозирования на основе вектора движения цветности, в соответствии со способом, установленным стандартом AVC. Когда значение флага обозначения формата цветности представляет собой 4:0:0, поскольку формат 4:0:0 состоит только из сигнала яркости (один компонент), прогнозируемое изображение сигнала яркости генерируют в модуле прогнозирования между кадрами сигнала яркости в соответствии с вектором движения и индексом эталонного изображения.
Как описано выше, средство генерирования прогнозируемого изображения разностного сигнала цвета обычного формата YUV 4:2:0 предусмотрено, как средство генерирования прогнозируемых изображений трех компонентов, причем его переключают в соответствии со значением флага обозначения формата информации цветности, декодированного из потока битов. Таким образом, становится возможным составить декодер, который обеспечивает совместимость обычного формата YUV 4:2:0 с потоком битов.
Если информация, обозначающая поток битов, который может быть декодирован даже в декодере, который не поддерживает обработку преобразования цветового пространства, такой как декодер, показанный на фиг. 15, будет задана в потоке 106 битов, передаваемом в декодеры, показанные на фиг. 20 и 21, в модуле параметра последовательности или тому подобное, во всех декодерах, показанных на фиг. 20, 21 и 15, становится возможным выполнять декодирование потока битов в соответствии с характеристиками декодирования каждого из декодеров.
Восьмой вариант воплощения
В восьмом варианте воплощения настоящего изобретения будет описан другой вариант воплощения, в котором только структура потока битов, которую вводят и выводят, отличается от кодера и декодера в соответствии с седьмым вариантом воплощения, показанным на фиг. 11, 15 и т.п. Кодер в соответствии с восьмым вариантом воплощения выполняет мультиплексирование кодированных данных со структурой потока битов, показанной на фиг. 24.
В потоке битов со структурой, показанной на фиг. 9, модуль AUD NAL включает в себя информацию primary_pic_type, как ее элемент. Как представлено в показанной ниже таблице, это обозначает информацию типа кодирования изображения, в то время, когда кодируют данные изображения в модуле доступа, который начинается с модуля AUD NAL.
Значения primary_pic_type (исключенные из стандарта
primary_pic_type
значения slice_type, которые могут быть представлены в первичном кодированном изображении
0
I
1
I, P
2
I, P, B
3
SI
4
SI, SP
5
I, SI
6
I, SI, P, SP
7
I, SI, P, SP, B
Например, когда primary_pic_type=0, это обозначает, что изображение является полностью кодированным внутри кадра. Когда primary_pic_type=1, это обозначает, что срез, который должен быть кодирован внутри кадра и срез, для которого может быть выполнено прогнозирование компенсации движения с использованием только одного списка эталонных изображений, могут быть смешаны с изображением. Поскольку primary_pic_type представляет собой информацию, определяющую режим кодирования, в котором может быть кодировано изображение, на стороне кодера, путем обработки этой информации становится возможным выполнить кодирование, пригодное для различных условий, таких как характеристика входного видеосигнала и функции произвольного доступа.
В седьмом варианте воплощения, поскольку имеется только один primary_pic_type для одного модуля, когда выполняется обработка независимого кодирования, primary_pic_type является общим для изображений трех компонентов цвета в модуле доступа. В восьмом варианте воплощения, когда выполняют независимое кодирование каждого из изображений компонентов цвета, primary_pic_type для остальных двух изображений компонента цвета, дополнительно вводят в модуль AUD NAL, показанный на фиг. 9, в соответствии со значением num_pitures_in_au. В качестве альтернативы, как и в структуре потока битов, показанной на фиг. 24, кодированные данные каждого из изображений компонента цвета начинаются с модуля NAL (разделитель канала цвета), который обозначает начало изображения компонента цвета и, в модуль CCD NAL включена информация primary_pic_type, соответствующая ему. Концепция модуля CCD NAL в соответствии с восьмым вариантом воплощения эквивалента концепции, раскрытой со ссылкой на фиг. 4.
В этой структуре, поскольку совместно мультиплексируют кодированные данные соответствующих изображений и компонента цвета для одного изображения, флаг идентификации компонента цвета (color_channel_idc), описанный в седьмом варианте воплощения, включен в модуль CCD NAL, а не в заголовок среза. Следовательно, становится возможным объединить информацию флага идентификации компонента цвета, которая должна быть мультиплексирована с соответствующими срезами, в данные в модулях изображения. Таким образом, обеспечивается эффект, состоящий в том, что становится возможным уменьшить служебную информацию.
Поскольку модуль CCD NAL, составленный как строка байтов, требуется детектировать только для проверки color_channel_idc только один раз на одно изображение компонента цвета, становится возможным быстро выполнить поиск верхней части изображения компонента цвета, не выполняя обработку декодирования с переменной длиной слова. Таким образом, на стороне декодера, color_channel_idc в заголовке среза не требуется проверять каждый раз для отделения модуля NAL, который должен быть декодирован для каждого компонента цвета. При этом возможно обеспечивать плавную подачу данных во второй модуль декодирования изображения.
С другой стороны, в такой структуре эффект уменьшения размера буфера и задержка обработки в кодере, описанная со ссылкой на фиг. 12, в седьмом варианте воплощения ослабляются. Таким образом, флаг идентификации компонента цвета может быть составлен так, чтобы обозначать на более высоком уровне (последовательность или GOP), мультиплексированы ли кодированные данные в модулях среза, или они мультиплексированы в модулях изображения компонента цвета. При применении такой структуры потока битов возможно применять гибкое воплощение кодера, в соответствии с формой использования этого кодера.
Девятый вариант воплощения
Кроме того, в качестве еще одного другого варианта воплощения мультиплексирование кодированных данных может быть выполнено со структурой потока битов, показанной на фиг. 25. На чертеже, color_channel_idc и primary_pic_type, включенные в модуль CCD NAL, показанный на фиг. 24, включены в соответствующие AUD. В структуре потока битов, в соответствии с девятым вариантом воплощения настоящего изобретения, в случае независимой обработки кодирования, как и при общей обработке кодирования, одно (компонент цвета) изображение включено в один модуль доступа. Другими словами, на фиг. 25 одно изображение (один компонент цвета) определено как один модуль доступа.
При такой структуре, как и в структурах, описанных выше, возникает эффект уменьшения служебной информации, поскольку возможно объединить информацию флага идентификации компонента цвета с данными модулей изображения. Кроме того, поскольку требуется детектировать только модуль AUD NAL, составленный как строка байтов, для проверки color_channel_idc только один раз на одно изображение компонента цвета, можно быстро выполнять поиск верхней части изображения компонента цвета, не выполняя обработку декодирования с переменной длиной. Таким образом, на стороне декодера, color_channel_idc в заголовке среза не требуется проверять каждый раз для отделения модуля NAL, который должен быть декодирован для каждого компонента цвета. Становится возможным плавно выполнять подачу данных во второй модуль декодирования изображения.
С другой стороны, поскольку изображение одного фрейма или одного поля составлено из трех модулей доступа, необходимо обозначить три модуля доступа, как данные изображения в идентичное время. Поэтому, в структуре потока битов, показанной на фиг. 25, номера следования (в порядке кодирования и декодирования в направлении времени, и т.д.) соответствующих изображений, могут быть переданы в AUD.
При использовании такой структуры на стороне декодера возможно проверять порядок декодирования и отображения соответствующих изображений, атрибуты компонента цвета, свойства IDR, и т.п., не декодируя данные среза вообще. При этом возможно эффективно выполнять редактирование и специальное воспроизведение на уровне потока битов.
В структуре потока битов, показанной на фиг. 9, 24 или 25, информация, обозначающая количество модулей NAL среза, включенная в изображение одного компонента цвета, может быть сохранена в определенных областях AUD или CCD.
Что касается всех вариантов воплощения, обработка преобразования и обработка обратного преобразования могут быть преобразованы так, чтобы гарантировать ортогональность такую, как DCT (ДКП, дискретное косинусное преобразование), или могут быть преобразованы как AVC в комбинации с обработкой квантования и обратного квантования для обеспечения приблизительной ортогональности, вместо строгого ортогонального преобразования, такого как DCT. Кроме того, сигнал ошибки прогнозирования может быть кодирован как информация на уровне пикселя, без выполнения преобразования.