УСТРОЙСТВО КОДИРОВАНИЯ ИЗОБРАЖЕНИЯ И УСТРОЙСТВО ДЕКОДИРОВАНИЯ ИЗОБРАЖЕНИЯ
PICTURE ENCODER AND DECODER

Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству кодирования цифрового сигнала изображения, устройству декодирования сигнала цифрового изображения, способу кодирования цифрового сигнала изображения и способу декодирования цифрового сигнала изображения, используемых для технологии кодирования со сжатием изображения или технологии передачи сжатых данных изображения.
Описание уровня техники
Система кодирования видео согласно международному стандарту, такому как стандарт MPEG или ITU-T H.26x, традиционно была предпосылкой к использованию стандартизированного формата входного сигнала, названного формат 4:2:0. Формат 4:2:0 - это формат, в котором цветовой сигнал движущегося изображения RGB или подобный преобразовывается в компонент яркости (Y) и два компонента цвета (Cb, Cr), и количество выборок компонента цвета уменьшено до половины компонентов яркости как в горизонтальном, так и в вертикальном направлениях. Компонент цвета является менее важным, чем компонент яркости в видимости. Соответственно, обычная система кодирования видео согласно международному стандарту, такому как стандарт MPEG 4 AVC (стандарт ISO/IEC 14496-10)/ITU-T H.264 (в дальнейшем называемый просто как AVC) (в дальнейшем названный непатентный документ 1) были основаны на предпосылке, что количество первоначальной информации, которая должна быть закодирована, уменьшается посредством снижения частоты дискретизации компонентов цвета прежде, чем кодирование будет выполнено, как упомянуто выше. С другой стороны, с недавними увеличениями разрешения и градации видеодисплея и с целью точного воспроизведения на экране представления цвета во время создания контента цифрового кино и т.п. были проведены исследования в отношении системы, чтобы выполнить кодирование посредством поддержания количества выборок равным таковому компонентов яркости без снижения частоты дискретизации компонентов цвета. Формат, где количества выборок компонента яркости и цвета полностью равны, называют форматом 4:4:4. Согласно непатентному документу 1 "высокий 4:4:4 профиль" был разработан как способ кодирования, который использует 4:4:4 формат в качестве входного. В качестве способа, подходящего для этой цели, используется стандартный метод, как определено в стандарте JPEG 2000 (ISO/IEC 15444) (в дальнейшем называемый непатентный документ 2). Как иллюстрируется на Фиг. 10, обычный формат 4:2:0 был ограничен определениями цветового пространства Y, Cb и Cr из-за условия уменьшения частоты дискретизации компонентов цвета. В случае формата 4:4:4, однако, так как нет разности соотношения выборок между цветовыми компонентами, R, G и B могут непосредственно использоваться в дополнение к Y, Cb и Cr и может использоваться множество определений цветового пространства. В способе кодирования видео, использующем формат 4:2:0, цветовое пространство ограничивается цветовым пространством Y, Cb и Cr. Поэтому тип цветового пространства не требуется учитывать во время процесса кодирования. В «высоком 4:4:4 профиле» AVC, описанном выше, однако определение цветового пространства влияет на процесс кодирования непосредственно. С другой стороны, так как текущий «высокий 4:4:4 профиль» рассматривает совместимость с другими профилями, которые используют формат 4:2:0, определенный цветовым пространством Y, Cb и Cr в качестве целевого, подлежащего кодированию, не считается, что «высокий 4:4:4 профиль» предназначен для оптимизации эффективности сжатия формата 4:4:4.
Например, посредством кодирования «высокого 4:2:0 профиля», формат 4:2:0 AVC, в области макроблока, составленной из компонентов яркости 16×16 пикселей, соответствующими компонентами цвета являются блоки пикселей 8×8 и для Cb и для Cr. В предсказании с компенсацией движения «высокого 4:2:0 профиля» информация размера блока, который становится единицей предсказания с компенсацией движения только для компонентов яркости, информация опорного изображения, используемая для предсказания, и информация вектора движения каждого блока мультиплексируются и предсказание с компенсацией движения выполняется для компонентов цвета посредством той же информации, что и таковая компонентов яркости. Вышеупомянутый способ строится на определении цветового пространства, что вклад компонентов цвета меньше, чем таковой компонента яркости, что очень способствует выражению структуры изображения (текстуре) в формате 4:2:0. Однако современный «высокий 4:4:4 профиль» соответствует простому расширению режима внутреннего (интра-) предсказания для цвета в формате 4:2:0, даже когда размер блока сигнала цвета для каждого макроблока расширяется до 16×16 пикселей. Кроме того, как в случае формата 4:2:0, один компонент расценивается как компонент яркости. После того как информация только для одного компонента является мультиплексированной, выполняется предсказание с компенсацией движения, используя режим внешнего предсказания, информацию опорного изображения и информацию вектора движения, которые являются общими для трех компонентов. Поэтому способ предсказания не всегда оптимален для формата 4:4:4, в котором соответствующие компоненты цвета одинаково дают вклад в выражение структуры сигнала изображения.
Сущность изобретения
Как описано выше в отношении уровня техники, задачей согласно настоящему изобретению является обеспечение устройства кодирования, устройства декодирования, способа кодирования, способа декодирования, программы для выполнения этих способов и носителя записи с записанными этими программами, которые повышают оптимальность в случае кодирования сигналов движущегося изображения, не имеющих различия в отношении выборок между компонентами цвета, таких как формат 4:4:4.
Согласно настоящему изобретению предоставляется устройство кодирования изображения для приема цветового сигнала движущегося изображения, составленного из множества компонентов цвета в качестве входного, деления цветового сигнала движущегося изображения на заранее определенные области единиц кодирования для каждого множества компонентов цвета, и выборочное применение одного из внутреннего кодирования и прогнозирующего кодирования с компенсацией движения, чтобы в цифровой форме сжать цветовой сигнал движущегося изображения, содержащее: модуль отделения компонента цвета для разделения входного битового потока для каждого из множества компонентов цвета; модуль разделения на блоки для разделения входного сигнала компонента цвета на блоки размера, определенного закодированной информацией индикации размера блока, чтобы сгенерировать сигнал каждой из областей единицы кодирования; модуль генерирования предсказанного изображения для генерирования предсказанного изображения для сигнала каждой из областей единицы кодирования согласно по меньшей мере одному режиму предсказания, указывающему способ генерирования предсказанного изображения; модуль определения для определения режима предсказания, используемого для кодирования согласно эффективности предсказания предсказанного изображения, выведенного из модуля генерирования предсказанного изображения; модуль кодирования ошибки предсказания для кодирования разности между предсказанным изображением, соответствующим режиму предсказания, определенному модулем определения, и входным сигналом компонента цвета; и модуль кодирования для кодирования с переменной длиной кода режима предсказания, выходного сигнала из модуля кодирования ошибки предсказания и флага идентификации компонента цвета, указывающего компонент цвета, которому принадлежит входной битовый поток в результате разделения компонентов цвета, причем модуль кодирования мультиплексирует закодированную информацию индикации размера блока и информацию, полученную посредством кодирования режима предсказания для каждой из областей единицы кодирования и ошибки предсказания в битовом потоке.
Согласно устройству кодирования изображения и устройству декодирования изображения согласно настоящему изобретению в случае выполнения кодирования, которое использует множественные цветовые пространства, не будучи ограниченным фиксированными цветовыми пространствами Y, Cb, Cr и т.д., возможно гибко выбрать информацию режима внутреннего предсказания и информацию режима внутреннего предсказания, которая должна использоваться для соответствующих компонентов цвета, и провести процесс оптимального кодирования даже в случае, когда есть различные определения цветовых пространств.
Краткое описание чертежей
Предпочтительные варианты осуществления настоящего изобретения описаны подробно на основании следующих чертежей, на которых:
Фиг. 1 - пояснительное представление, иллюстрирующее конфигурацию устройства кодирования видео в первом варианте осуществления;
Фиг. 2 - пояснительное представление, иллюстрирующее конфигурацию устройства декодирования видео в первом варианте осуществления;
Фиг. 3 - пояснительные представления, иллюстрирующие способ генерирования предсказанного изображения в режимах внутреннего 4×4 предсказания, оцененные в модуле пространственного предсказания на Фиг. 1;
Фиг. 4 - пояснительные представления, иллюстрирующие способ генерирования предсказанного изображения в режимах внутреннего 16×16 предсказания, оцененных в модуле пространственного предсказания на Фиг. 1;
Фиг. 5 - последовательность операций, иллюстрирующая процедуру процесса определения режима внутреннего предсказания, выполненного в устройстве кодирования видео на Фиг. 1;
Фиг. 6 - пояснительное представление, иллюстрирующее последовательность данных выходного сигнала битового потока видео из устройства кодирования видео в первом варианте осуществления;
Фиг. 7 - последовательность операций, иллюстрирующая процедуру процесса декодирования с внутренним предсказанием, выполненного в видеоустройстве декодирования на Фиг. 2;
Фиг. 8 - пояснительное представление, иллюстрирующее другую последовательность данных выходного сигнала битового потока видео из устройства кодирования видео в первом варианте осуществления;
Фиг. 9 - пояснительные представления, иллюстрирующие способ генерирования предсказанного изображения в режимах внутреннего предсказания для компонентов цвета в стандарте AVC;
Фиг. 10 - пояснительные представления, иллюстрирующие обычные и текущие макроблоки;
Фиг. 11 - пояснительное представление, иллюстрирующее конфигурацию устройства кодирования видео во втором варианте осуществления;
Фиг. 12 - пояснительное представление, иллюстрирующее конфигурацию устройства декодирования видео во втором варианте осуществления;
Фиг. 13 - пояснительные представления, иллюстрирующие способ генерирования предсказанного изображения в режимах внутреннего 8×8 предсказания, оцененных в модуле пространственного предсказания на Фиг. 11;
Фиг. 14 - последовательность операций, иллюстрирующая процедуру процесса определения режима внутреннего кодирования, выполненного в устройстве кодирования видео на Фиг. 11;
Фиг. 15 - пояснительное представление, иллюстрирующее последовательность данных выходного сигнала битового потока видео из устройства кодирования видео во втором варианте осуществления;
Фиг. 16 - пояснительное представление, иллюстрирующее другую последовательность данных выходного сигнала битового потока видео из устройства кодирования видео во втором варианте осуществления;
Фиг. 17 - последовательность операций, иллюстрирующая процедуру процесса декодирования с внутренним предсказанием, выполняемого в устройстве декодирования видео на Фиг. 12;
Фиг. 18 - пояснительные представления, иллюстрирующие параметры процесса кодирования режима внутреннего предсказания компонента C0 в третьем варианте осуществления;
Фиг. 19 - пояснительные представления, иллюстрирующие параметры процесса кодирования режима внутреннего предсказания компонента C1 в третьем варианте осуществления;
Фиг. 20 - пояснительные представления, иллюстрирующие параметры процесса кодирования режима внутреннего предсказания компонента C2 в третьем варианте осуществления;
Фиг. 21 - последовательность операций, иллюстрирующая поток операций процесса кодирования режима внутреннего предсказания в третьем варианте осуществления;
Фиг. 22 - последовательность операций, иллюстрирующая другой поток операций процесса кодирования режима внутреннего предсказания в третьем варианте осуществления;
Фиг. 23 - последовательность операций, иллюстрирующая поток операций процесса декодирования режима внутреннего предсказания в третьем варианте осуществления;
Фиг. 24 - пояснительное представление, иллюстрирующее другую последовательность данных выходного сигнала битового потока видео из устройства кодирования видео в четвертом варианте осуществления;
Фиг. 25 - последовательность операций, иллюстрирующая другой поток операций процесса кодирования режима внутреннего предсказания в пятом варианте осуществления;
Фиг. 26 - пояснительные представления, иллюстрирующие правило установки значения предсказания, показанного в качестве таблиц в пятом варианте осуществления;
Фиг. 27 - последовательность операций, иллюстрирующая процедуру кодирования в шестом варианте осуществления;
Фиг. 28 - пояснительное представление, иллюстрирующее структуру двоичной последовательности CurrIntraPredMode в шестом варианте осуществления;
Фиг. 29 - пояснительное представление, иллюстрирующее другую структуру двоичной последовательности CurrIntraPredMode в шестом варианте осуществления;
Фиг. 30 - пояснительное представление, иллюстрирующее конфигурацию устройства кодирования видео в седьмом варианте осуществления;
Фиг. 31 - пояснительное представление, иллюстрирующее конфигурацию устройства декодирования видео в седьмом варианте осуществления;
Фиг. 32A-32H - пояснительные представления, причем каждое иллюстрирует размер блока для каждого макроблока;
Фиг. 33 - последовательность операций, иллюстрирующая поток операций процесса определения режима внешнего предсказания в седьмом варианте осуществления;
Фиг. 34 - пояснительное представление, иллюстрирующее последовательность данных выходного сигнала потока видео из устройства кодирования видео в седьмом варианте осуществления;
Фиг. 35 - последовательность операций, иллюстрирующая поток операций процесса, выполняемого в модуле декодирования с переменной длиной кода в седьмом варианте осуществления;
Фиг. 36 - пояснительное представление, иллюстрирующее другую последовательность данных выходного сигнала потока видео из устройства кодирования видео в седьмом варианте осуществления;
Фиг. 37 - пояснительное представление, иллюстрирующее другую последовательность данных выходного сигнала потока видео из устройства кодирования видео в седьмом варианте осуществления;
Фиг. 38 - последовательность операций, иллюстрирующая поток операций процесса определения режима внешнего предсказания в восьмом варианте осуществления;
Фиг. 39 - пояснительное представление, иллюстрирующее последовательность данных битового потока на уровне макроблока в восьмом варианте осуществления;
Фиг. 40 - последовательность операций, иллюстрирующая поток операций процесса генерирования изображения внешнего предсказания в восьмом варианте осуществления;
Фиг. 41 - пояснительное представление, иллюстрирующее другую последовательность данных битового потока на уровне макроблока в восьмом варианте осуществления;
Фиг. 42 - пояснительное представление, иллюстрирующее другую последовательность данных битового потока на уровне макроблока в восьмом варианте осуществления;
Фиг. 43 - последовательность операций, иллюстрирующая поток операций процесса определения режима внешнего предсказания в девятом варианте осуществления;
Фиг. 44 - последовательность операций, иллюстрирующая поток операций процесса генерирования изображения внешнего предсказания в девятом варианте осуществления;
Фиг. 45 - пояснительное представление, иллюстрирующее конфигурацию модуля кодирования вектора движения;
Фиг. 46 - пояснительные представления, иллюстрирующие работу модуля кодирования вектора движения;
Фиг. 47 - пояснительное представление, иллюстрирующее конфигурацию модуля декодирования вектора движения;
Фиг. 48A и 48B - объяснительные представления, каждое иллюстрирует состояние синтаксиса битового потока;
Фиг. 49 - пояснительное представление, иллюстрирующее структуру закодированных данных макроблока в одиннадцатом варианте осуществления;
Фиг. 50 - пояснительное представление, иллюстрирующее подробную структуру закодированных данных информации заголовка компонента Cn на Фиг. 49 в одиннадцатом варианте осуществления;
Фиг. 51 - пояснительное представление, иллюстрирующее другую структуру закодированных данных макроблока в одиннадцатом варианте осуществления;
Фиг. 52 - пояснительное представление, иллюстрирующее структуру битового потока в одиннадцатом варианте осуществления;
Фиг. 53 - пояснительное представление, иллюстрирующее структуру срезов в одиннадцатом варианте осуществления;
Фиг. 54 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию модуля кодирования с переменной длиной кода, которая относится к процессу арифметического кодирования, в двенадцатом варианте осуществления;
Фиг. 55 - последовательность операций, иллюстрирующая поток операций процесса арифметического кодирования в модуле кодирования с переменной длиной кода в двенадцатом варианте осуществления;
Фиг. 56 - пояснительное представление, иллюстрирующее подробно поток операций процесса этапа S162 на Фиг. 55 в двенадцатом варианте осуществления;
Фиг. 57 - пояснительное представление, иллюстрирующее концепцию контекстной модели (ctx);
Фиг. 58 - пояснительное представление, иллюстрирующее пример контекстной модели относительно вектора движения макроблока;
Фиг. 59 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию модуля декодирования с переменной длиной кода, который относится к процессу арифметического декодирования, в двенадцатом варианте осуществления;
Фиг. 60 - последовательность операций, иллюстрирующая поток операций процесса арифметического декодирования в модуле декодирования с переменной длиной кода в двенадцатом варианте осуществления;
Фиг. 61 - пояснительное представление, иллюстрирующее контекстную модель в двенадцатом варианте осуществления;
Фиг. 62A и 62B - пояснительные представления, иллюстрирующие разность между режимами текущих макроблоков в двенадцатом варианте осуществления;
Фиг.63 - пояснительное представление, иллюстрирующее конфигурации устройства кодирования и устройства декодирования в тринадцатом варианте осуществления;
Фиг. 64 - пояснительное представление, иллюстрирующее конфигурацию устройства кодирования видео в тринадцатом варианте осуществления;
Фиг. 65 - пояснительное представление, иллюстрирующее конфигурацию устройства декодирования видео в тринадцатом варианте осуществления;
Фиг. 66 - пояснительное представление, иллюстрирующее обычный процесс кодирования в четырнадцатом варианте осуществления;
Фиг. 67 - пояснительное представление, иллюстрирующее процесс независимого кодирования в четырнадцатом варианте осуществления;
Фиг. 68 - пояснительное представление, иллюстрирующее опорное отношение с предсказанием движения во временном направлении между картинками в устройстве кодирования и устройстве декодирования в четырнадцатом варианте осуществления;
Фиг. 69 - пояснительное представление, иллюстрирующее пример структуры битового потока, сгенерированного в устройстве кодирования в четырнадцатом варианте осуществления и введенного и подвергнутого процессу декодирования в устройстве декодирования в четырнадцатом варианте осуществления;
Фиг. 70 - пояснительное представление, иллюстрирующее структуры битового потока данных среза в процессе общего кодирования и процессе независимого кодирования соответственно;
Фиг. 71 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства кодирования в четырнадцатом варианте осуществления;
Фиг. 72 - пояснительное представление, иллюстрирующее состояние, где задержка обработки на стороне устройства кодирования уменьшается;
Фиг. 73 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля кодирования картинки;
Фиг. 74 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию второго модуля кодирования картинки;
Фиг. 75 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства декодирования в четырнадцатом варианте осуществления;
Фиг. 76 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля декодирования картинки;
Фиг. 77 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию второго модуля декодирования картинки;
Фиг. 78 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля кодирования картинки, который подвергается процессу преобразования цветового пространства;
Фиг. 79 - другое пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля кодирования картинки, который подвергается процессу преобразования цветового пространства;
Фиг. 80 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля кодирования картинки, который подвергается процессу обратного преобразования цветового пространства;
Фиг. 81 - другое пояснительное представление, иллюстрирующее внутреннюю конфигурацию первого модуля кодирования картинки, который подвергается процессу обратного преобразования цветового пространства;
Фиг. 82 - пояснительное представление, иллюстрирующее структуру кодированных данных информации заголовка макроблока, содержащейся в битовом потоке в обычном формате YUV 4:2:0;
Фиг. 83 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию модуля предсказания в первом модуле декодирования изображения, который гарантирует совместимость в отношении битового потока в обычном формате YUV 4:2:0;
Фиг. 84 - пояснительное представление, иллюстрирующее структуру битового потока закодированных данных, которые должны быть мультиплексированы, в пятнадцатом варианте осуществления;
Фиг. 85 - пояснительное представление, иллюстрирующее информацию типа кодирования картинки, когда данные картинки в устройстве доступа, начиная с единицы AUD NAL, являются закодированными;
Фиг. 86 - пояснительное представление, иллюстрирующее другую структуру битового потока закодированных данных, которые должны быть мультиплексированы, в пятнадцатом варианте осуществления;
Фиг. 87 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства кодирования в шестнадцатом варианте осуществления;
Фиг. 88 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию модуля кодирования картинки;
Фиг. 89 - пояснительные представления, иллюстрирующие использование различного размера блоков для каждого компонента цвета;
Фиг. 90A-90H являются пояснительными представлениями, каждое иллюстрирует размер блока для каждого макроблока;
Фиг. 91 - пояснительное представление, иллюстрирующее последовательность данных выходного сигнала потока видео из модуля кодирования картинки;
Фиг. 92 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства декодирования в шестнадцатом варианте осуществления;
Фиг. 93 - пояснительное представление, иллюстрирующее внутреннюю конфигурацию модуля декодирования;
Фиг. 94 - пояснительное представление, иллюстрирующее способ создания пикселя с полупиксельным предсказанием;
Фиг. 95 - пояснительное представление, иллюстрирующее только горизонтальный процесс в способе создания пикселя с полупиксельным предсказанием во время 1/4 пиксельного MC;
Фиг. 96 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства кодирования в семнадцатом варианте осуществления;
Фиг. 97 - пояснительное представление, иллюстрирующее последовательность данных выходного сигнала потока видео из модуля кодирования картинки; и
Фиг. 98 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства декодирования в семнадцатом варианте осуществления.
Описание предпочтительных вариантов осуществления
Первый вариант осуществления
В первом варианте осуществления настоящего изобретения описано устройство кодирования, которое выполняет закрытое (замкнутое) кодирование в пределах кадра в единицах прямоугольных областей (макроблоках), каждая состоящая из 16×16 пикселей, полученных посредством равного разделения видеокадра, введенного в формате 4:4:4, и устройство декодирования, соответствующее устройству кодирования. Устройство кодирования и устройство декодирования согласно настоящему изобретению основаны на способе кодирования, используемом в непатентном документе 1, и наделены характеристиками, специфическими для настоящего изобретения. Следует отметить, что во всех вариантах осуществления, описанных ниже, размер макроблока не обязан быть ограничен 16×16 пикселями изображения кадра. Например, как в случае чересстрочного сигнала, блок 16×16 пикселей изображения поля может быть макроблоком, когда поле используется как экран, служащий единицей кодирования. Альтернативно, кодирование может быть выполнено, адаптивно изменяя размер блока для макроблока в зависимости от того, закодирован ли макроблок как изображение кадра или изображение поля.
Фиг. 1 иллюстрирует конфигурацию устройства кодирования видео согласно первому варианту осуществления настоящего изобретения, и Фиг. 2 иллюстрирует конфигурацию устройства декодирования видео согласно первому варианту осуществления настоящего изобретения. На Фиг. 2 компоненты, обозначенные такими же ссылочными позициями, как таковые в устройстве кодирования, иллюстрированном на Фиг. 1, являются одинаковыми компонентами.
В дальнейшем со ссылками на фиг. 1 и 2 описана работа всего устройства кодирования и всего устройства декодирования, и процесс определения режима внутреннего предсказания и процесс декодирования с внутренним предсказанием, которые являются конкретными операциями согласно первому варианту осуществления.
1. Обзор работы устройства кодирования
В устройстве кодирования, проиллюстрированном на Фиг. 1, в качестве входного видеосигнала 1 каждый видеокадр вводится в формате 4:4:4. Как иллюстрируется на Фиг. 10, видеокадр, который должен быть введен, вводится в устройство кодирования на основе макроблоков. Каждый макроблок получается посредством деления каждого из трех компонентов цвета в блок 16×16 пикселей, имеющих одинаковый размер, и затем объединения полученных блоков трех компонентов цвета.
Во-первых, в модуле 2 пространственного предсказания процесс внутреннего предсказания выполняется для каждого компонента цвета на основе макроблоков посредством использования локального декодированного изображения 15, которое должно быть сохранено в блоках памяти 16. Три блока памяти предоставляются для трех плоскостей изображения, соответствующих соответствующим компонентам цвета (количество блоков памяти описывается как три в этом варианте осуществления, но количество блоков памяти может быть соответственно изменено в зависимости от проекта). Интрапредсказание (внутреннее предсказание) включает в себя режим внутреннего 4×4 предсказания и режим внутреннего 16×16 предсказания. В режиме внутреннего 4×4 предсказания пространственное предсказание выполняется в единицах блоков, иллюстрированных на Фиг. 3, каждый будучи составленным из 4 пикселей × 4 строки, посредством использования соседних пикселей этого блока. В режиме внутреннего 16×16 предсказания пространственное предсказание выполняется на основе макроблоков, иллюстрированных на Фиг. 4, каждый будучи составленным из 16 пикселей × 16 строк, посредством использования соседних пикселей этого макроблока.
(a) Режим внутреннего 4×4 предсказания
Сигнал яркости блока 16×16 пикселей в макроблоке делится на шестнадцать блоков, каждый - блок 4×4 пикселей. Затем любой из девяти режимов, проиллюстрированных на Фиг. 3, выбирается для каждого блока 4×4 пикселей. Пиксели в соседних блоках (сверху слева, сверху, сверху справа и левый блоки), которые были закодированы и подвергнуты локальному процессу декодирования, которые должны быть сохранены в блоках памяти 16, используются для генерирования предсказанного изображения.
Intra4×4_pred_mode=0: Соседние верхние пиксели используются в качестве предсказанного изображения.
Intra4×4_pred_mode=1: Соседние левые пиксели используются в качестве предсказанного изображения.
Intra4×4_pred_mode=2: среднее значение восьми соседних пикселей используется в качестве предсказанного изображения.
Intra4×4_pred_mode=3: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий краю по диагонали вниз влево под 45 градусов).
Intra4×4_pred_mode=4: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий краю по диагонали вниз вправо под 45 градусов).
Intra4×4_pred_mode=5: взвешенное среднее число каждых двух или трех пикселей вычисляется от соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий краю по вертикали вправо под 22,5 градуса).
Intra4×4_pred_mode=6: взвешенное среднее число каждых двух или трех пикселей вычисляется от соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий краю по горизонтали вниз под 67,5 градусов).
Intra4×4_pred_mode=7: взвешенное среднее число каждых двух или трех пикселей вычисляется от соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий краю по вертикали влево под 22,5 градуса).
Intra4×4_pred_mode=8: взвешенное среднее число каждых двух или трех пикселей вычисляется от соседних пикселей, и полученное взвешенное среднее число используется в качестве предсказанного изображения (соответствующий горизонтальному краю под 112,5 градусов).
Когда выбирается режим внутреннего 4×4 предсказания, шестнадцать частей информации режима требуются для каждого макроблока. Поэтому, чтобы сократить объем кодов самой информации режима, прогнозирующее кодирование выполняется на основании информации режима соседних блоков, уделяя внимание высокой корреляции информации режима между соседними блоками.
(b) Режим внутреннего 16×16 предсказания
В режиме внутреннего 16×16 предсказания блок 16×16 пикселей, соответствующий размеру макроблока, предсказываются за один раз. Любой из четырех режимов, проиллюстрированных на Фиг. 4, выбирается для каждой единицы макроблока. Как в случае режима внутреннего 4×4 предсказания, пиксели в соседних (верхний левый, верхний и левый) макроблоках, которые были уже закодированы и подвергнуты локальному процессу декодирования, которые должны быть сохранены в блоках памяти 16, используются для генерирования предсказанного изображения.
Intra16×16_pred_mode=0: Шестнадцать пикселей в самой нижней линии верхнего макроблока используются в качестве предсказанного изображения.
Intra16×16_pred_mode=1: Шестнадцать пикселей в самой правой линии левого макроблока используются в качестве предсказанного изображения.
Intra16×16_pred_mode=2: среднее значение тридцати двух пикселей, то есть шестнадцать пикселей (Фиг. 4) в самой нижней линии верхнего макроблока и шестнадцать пикселей (Фиг. 4B) в крайней левой линии в левом макроблоке, используется в качестве предсказанного изображения.
Intra16×16_pred_mode=3: Тридцать один пиксель, соответствующий пикселю в нижнем правом углу в верхнем левом макроблоке, пятнадцать пикселей в самой нижней линии верхнего макроблока (за исключением открытого пикселя) и пятнадцать пикселей в самой правой линии левого макроблока (за исключением открытого пикселя) используются для выполнения заранее определенного вычислительного процесса (взвешенный процесс суммирования согласно пикселям, которые должны использоваться, и позиции пикселя, которые должны быть предсказаны), таким образом получая предсказанное изображение.
В устройстве кодирования видео согласно первому варианту осуществления настоящего изобретения способ процесса внутреннего предсказания переключается для трех компонентов цвета на основании флага 23 идентификации совместного использования режима внутреннего предсказания. Это описано подробно в секции 2 ниже.
Секция 2 пространственного предсказания выполняет процесс предсказания в отношении всех режимов или поднабора, проиллюстрированного на Фиг. 3 или 4, чтобы получить разностный сигнал 4 предсказания вычитающим устройством 3. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования. В результате режим предсказания, в котором получается оптимальная эффективность предсказания для макроблока, который должен быть предсказан, из процесса предсказания, выполняемого в модуле 2 пространственного предсказания, выводится как режим 6 кодирования. В этом случае режим 6 кодирования содержит информацию определения (соответствующую режиму внутреннего кодирования на Фиг. 6), указывающую, какой из режима внутреннего 4×4 предсказания и режима внутреннего 16×16 предсказания используется, и также содержит каждый режим предсказания (intra4×4_pred_mode или intra16×16_pred_mode, описанный выше), используемые для каждой области единицы предсказания для предсказания. Область единицы предсказания соответствует блоку 4×4 пикселей в случае режима внутреннего 4×4 предсказания или блоку 16×16 пиксели в случае intra16×16_pred_mode. Для выбора режима 6 кодирования может быть учтен коэффициент взвешивания 20 для каждого из режимов кодирования, который определяется на основании определения модуля 19 управления кодированием. Оптимальный разностный сигнал 4 предсказания, полученный посредством использования режима 6 кодирования в модуле 5 определения режима кодирования, выводится к модулю 8 ортогонального преобразования. Модуль 8 ортогонального преобразования преобразует входной разностный сигнал 4 предсказания в коэффициент ортогонального преобразования, который в свою очередь выводится к модулю 9 квантования. Модуль 9 квантования квантует входной разностный сигнал 4 предсказания на основании параметра 21 квантования, определенного модулем 19 управления кодированием, чтобы вывести квантованный сигнал в качестве квантованного коэффициента 10 преобразования к модулю 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования статистически кодируется в модуле 11 кодирования с переменной длиной кода посредством, например, кодирования Хаффмана или арифметического кодирования. Квантованный коэффициент 10 преобразования также проходит через модуль 12 обратного квантования и модуль 13 обратного ортогонального преобразования, чтобы быть восстановленным до локального декодированного разностного сигнала 14 предсказания. Затем локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным на основании режима 6 кодирования в сумматоре 18, чтобы создать локальное декодированное изображение 15. Локальное декодированное изображение 15 сохраняется в блоках памяти 16, чтобы использоваться для последующего процесса внутреннего предсказания. Далее, флаг 24 управления фильтром удаления блочности, указывающим, должен ли фильтр удаления блочности быть применен к макроблоку, также подается к модулю 11 кодирования с переменной длиной кода (сам процесс фильтра удаления блочности не является необходимым для процесса кодирования, так как данные пикселей перед применением фильтра удаления блочности сохраняются в блоках памяти 16 в процессе предсказания, выполняемом в модуле 2 пространственного предсказания. В устройстве декодирования, однако фильтр удаления блочности применяется после инструкции флага 24 управления фильтром удаления блочности, чтобы получить финальное декодированное изображение).
Флаг 23 идентификации совместного использования режима внутреннего предсказания, квантованный коэффициент 10 преобразования, режим 6 кодирования и параметр 21 квантования, которые подаются на модуль 11 кодирования с переменной длиной кода, скомпонованы и сформированы согласно заранее определенному синтаксису, который должен быть выведен на буфер 17 передачи. Буфер 17 передачи сглаживает полученный битовый поток согласно диапазону тракта передачи или скорости считывания носителя записи, к которому устройство кодирования подсоединено, чтобы выводить битовый поток как видеопоток 22. Буфер 17 передачи информации выдает сигнал обратной связи к модулю 19 управления кодированием согласно состоянию накопления потоков двоичных сигналов в буфере 17 передачи, чтобы управлять объемом кодов, сгенерированных при кодировании последующих видеокадров.
2. Процесс определения режима внутреннего предсказания в устройстве кодирования
Режим внутреннего предсказания, который является признаком устройства кодирования согласно первому варианту осуществления настоящего изобретения, описан ниже подробно. Процесс выполняется на основе макроблоков, где каждый макроблок состоит из объединения трех компонентов цвета, описанных выше. Процесс главным образом выполняется модулем 2 пространственного предсказания и модулем 5 определения режима кодирования в устройстве кодирования, проиллюстрированном на Фиг. 1. Фиг. 5 - последовательность операций, иллюстрирующая последовательность операций процесса. В дальнейшем данные изображения трех компонентов цвета, составляющих блоки, названы C0, C1 и C2 соответственно.
Сначала модуль 5 определения режима кодирования принимает флаг 23 идентификации совместного использования режима внутреннего предсказания, чтобы определить на основании значения флага 23, используется ли режим внутреннего предсказания, общий для C0, C1 и C2 (этап S1 на Фиг. 5). Если режим внутреннего предсказания используется в общем между C0, C1 и C2, процесс переходит к этапу S2 и следующим этапам. Если режим внутреннего предсказания не используется вместе, процесс переходит к этапу S5 и следующим этапам.
Когда режим внутреннего предсказания используется в общем между C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 2 пространственного предсказания обо всех выбираемых режимах внутреннего 4×4 предсказания. Модуль 2 пространственного предсказания оценивает эффективности предсказания всех выбираемых режимов внутреннего 4×4 предсказания, чтобы выбрать оптимальный режим внутреннего 4×4 предсказания, общий для C0, C1 и C2 (этап S2). Затем модуль 5 определения режима кодирования уведомляет модуль 2 пространственного предсказания о всех или части выбираемых режимах внутреннего 16×16 предсказания. Модуль 2 пространственного предсказания оценивает эффективности предсказания уведомленных режимов внутреннего 16×16 предсказания, чтобы выбрать оптимальный режим внутреннего 16×16 предсказания, общий для C0, C1 и C2 (этап S3). Модуль 5 определения режима кодирования наконец выбирает оптимальный режим в терминах эффективности предсказания из режимов, полученных на этапах S2 и S3 (этап S4), чтобы завершить процесс.
Когда режим внутреннего предсказания не используется в общем между C0, C1 и C2 и оптимальный режим выбирается для каждого из C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 2 пространственного предсказания о всех или части режимов внутреннего 4×4 предсказания, выбираемых для компонента Ci (i ≤0 <3). Модуль 2 пространственного предсказания оценивает эффективности предсказания всех уведомленных режимов внутреннего 4×4 предсказания, чтобы выбрать режим внутреннего 4×4 предсказания, оптимальный для компонента Ci (i ≤0 <3) (этап S6). Точно так же модуль 2 пространственного предсказания выбирает режим внутреннего 16×16 предсказания, оптимальный для компонента Ci (i ≤0 <3) (этап S7). Наконец, на этапе S8 модуль 5 определения режима кодирования определяет режим внутреннего предсказания, оптимальный для компонента Ci (i ≤0 <3) из выбранных режимов предсказания.
В качестве нормы оценки эффективности предсказания режима предсказания, выполняемого в модуле 2 пространственного предсказания, например, может использоваться стоимость искажения скорости передачи в битах, заданная посредством:
Jm-Dm+λ Rm (λ: положительное число).
В этом выражении Dm - искажение кодирования или величина ошибки предсказания, когда применяется режим m внутреннего предсказания. Искажение кодирования получается посредством получения ошибки предсказания, применяя режим m внутреннего предсказания, декодирования изображения видео из результата преобразования и квантования ошибки предсказания, и затем измерения ошибки относительно сигнала до кодирования. Величина ошибки предсказания получается посредством получения разности между предсказанным изображением и сигналом до кодирования, когда используется режим m внутреннего предсказания, и затем определения величины разности. Например, сумма абсолютных расстояний (SAD) используется как величина ошибки предсказания. Rm-сгенерированное количество кода, когда используется режим m внутреннего предсказания. В частности, Jm-значение, определяющее компромисс между объемом кодов и степенью ухудшения, когда используется режим m внутреннего предсказания. Режим m внутреннего предсказания, обеспечивающий наименьшее значение Jm, обеспечивает оптимальное решение.
Когда устройство кодирования выполняет процесс этапа S2 и последующих этапов, одна часть информации режима внутреннего предсказания назначается макроблоку, содержащему три компонента цвета. С другой стороны, когда устройство кодирования выполняет процесс этапа S5 и последующих этапов, информация режима внутреннего предсказания назначается каждому из компонентов цвета. Информация режима внутреннего предсказания, назначенная макроблоку, отличается для каждого случая, и поэтому флаг 23 идентификации совместного использования режима внутреннего предсказания должен быть мультиплексирован в битовом потоке, чтобы разрешить устройству декодирования распознать, выполнило ли устройство кодирования процесс этапа S2 и последующих этапов или процесс этапа S5 и последующих этапов. Последовательность данных вышеупомянутого битового потока иллюстрируется на Фиг. 6.
Фиг. 6 иллюстрирует последовательность данных битового потока на уровне макроблока. Режим 28 внутреннего (интра-) кодирования указывает информацию для определения, является ли режим предсказания режимом внутреннего 4×4 или режимом внутреннего 16×16 (предсказания). Основной режим 29 внутреннего предсказания указывает общую информацию режима внутреннего предсказания, когда флаг 23 идентификации совместного использования режима внутреннего предсказания указывает, что режим является "общим для C0, C1 и C2", и указывает информацию режима внутреннего предсказания для C0, когда флаг 23 идентификации совместного использования режима внутреннего предсказания указывает, что режим не является "общим для C0, C1 и C2". Расширенный режим 30 внутреннего предсказания является мультиплексированным, только когда флаг 23 идентификации совместного использования режима внутреннего предсказания указывает, что режим не является "общим для C0, C1 и C2", и указывает информацию режима внутреннего предсказания для C1 и C2. Затем параметр 21 квантования и квантованный коэффициент преобразования мультиплексируются. Режим 6 кодирования согласно Фиг. 1 является общим элементом режима 28 внутреннего кодирования и режимов внутреннего предсказания (основного и расширенного), описанных выше (Фиг. 6 не иллюстрирует флаг 24 управления фильтром удаления блочности, который подается на вход модуля 11 кодирования с переменной длиной на Фиг. 1, и иллюстрация этого опускается, так как флаг 24 управления фильтром удаления блочности не является существенным компонентом для описания признаков первого варианта осуществления).
В формате 4:2:0, который использовался в стандарте кодирования обычного видео, определение цветового пространства устанавливается в Y, Cb и Cr. В формате 4:4:4, однако, цветовое пространство не ограничивается таковым из Y, Cb и Cr и могут использоваться отличные цветовые пространства. Посредством создания информации режима внутреннего предсказания, как иллюстрируется на Фиг. 6, оптимальный процесс кодирования может быть выполнен, даже когда определение цветового пространства входного видеосигнала 1 изменяется. Например, когда цветовое пространство определяется посредством R, G и B, структура видеотекстуры остается равной в компонентах R, G и B. Поэтому использование общей информации режима внутреннего предсказания уменьшает избыточность самой информации режима внутреннего предсказания, чтобы повысить эффективность кодирования. С другой стороны, когда цветовое пространство определяется Y, Cb и Cr, структура видеотекстуры концентрируется на Y. Поэтому общий режим внутреннего предсказания не обязательно обеспечивает оптимальный результат. Кроме того, посредством адаптивного использования расширенного режима 30 внутреннего предсказания может быть получена оптимальная эффективность кодирования.
3. Обзор работы устройства декодирования
Устройство декодирования, иллюстрируемое на Фиг. 2, принимает видеопоток 22 согласно последовательности данных, проиллюстрированной на Фиг. 6, выведенной из устройства кодирования, иллюстрируемого на Фиг. 1, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок содержит три компонента цвета одного и того же размера (в формате 4:4:4), чтобы восстановить каждый видеокадр.
Сначала модуль 25 декодирования с переменной длиной принимает поток 22 и декодирует поток 22 согласно заранее определенному синтаксису, таким образом извлекая информацию, такую как флаг 23 идентификации совместного использования режима внутреннего предсказания, квантованный коэффициент 10 преобразования, режим 6 кодирования и параметр 21 квантования. Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, где выполняется процесс обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 13 обратного ортогонального преобразования, чтобы быть восстановленным до локального декодированного разностного сигнала 14 предсказания. С другой стороны, режим 6 кодирования и флаг 23 идентификации совместного использования режима внутреннего предсказания вводятся в модуль 2 пространственного предсказания, чтобы получить предсказанное изображение 7 согласно входной информации. Конкретная процедура для получения предсказанного изображения 7 описана ниже. Локальный декодированный разностный сигнал 14 предсказания и предсказанное изображение 7 суммируется сумматором 18, чтобы получить временное декодированное изображение 15 (которое является точно таким же сигналом, как локальное декодированное изображение 15 в устройстве кодирования). Временное декодированное изображение 15 записывается обратно в блоки памяти 16, чтобы использоваться для внутреннего предсказания последующих макроблоков. Три блока памяти предоставляются для трех плоскостей изображения, соответствующих соответствующим компонентам цвета (количество блоков памяти описывается как три в этом варианте осуществления, но количество блоков памяти может быть соответственно изменено согласно проекту). Кроме того, на основании инструкции флага 24 управления фильтром удаления блочности, декодированного модулем 25 декодирования с переменной длиной кода, фильтр 26 удаления блочности вынуждается действовать в отношении временного декодированного изображения 15, чтобы получить окончательное декодированное изображение 27.
4. Процесс декодирования с внутренним предсказанием в устройстве декодирования
Процесс генерирования изображения с внутренним предсказанием, который является признаком устройства декодирования согласно первому варианту осуществления по настоящему изобретению, описан ниже подробно. Процесс выполняется на основе макроблоков, причем каждый макроблок состоит из объединения трех компонентов цвета, описанных выше. Процесс главным образом выполняется модулем 25 декодирования с переменной длиной кода и модулем 2 пространственного предсказания в модуле декодирования, проиллюстрированном на Фиг. 2. Фиг. 7 - последовательность операций, иллюстрирующая последовательность операций этого процесса.
В последовательности операций, проиллюстрированной на Фиг. 7, этапы S10-S14 выполняются в модуле 25 декодирования с переменной длиной кода. Последовательность данных видеопотока 22, который подается на вход модуля 25 декодирования с переменной длиной кода, соответствует последовательности данных, проиллюстрированной на Фиг. 6. На этапе S10 среди данных, иллюстрируемых на Фиг. 6, сначала декодируется режим 28 внутреннего кодирования. Затем декодируется флаг 23 идентификации совместного использования режима внутреннего предсказания (этап S11). Далее декодируется основной режим 29 внутреннего предсказания (этап S12). На этапе S13 результат флага 23 идентификации совместного использования режима внутреннего предсказания используется для определения, используется ли режим внутреннего предсказания в общем между C0, C1 и C2. Когда режим внутреннего предсказания используется в общем между C0, C1 и C2, основной режим 29 внутреннего предсказания используется для всех из C0, C1 и C2. Когда режим внутреннего предсказания не используется в общем, основной режим 29 внутреннего предсказания используется как режим для C0. Далее декодируется расширенный режим 30 внутреннего предсказания (этап S14), чтобы получить информацию режима C1 и C2. Посредством вышеупомянутого процесса определяется режим 6 кодирования для каждого из компонентов цвета. Поэтому модуль 25 декодирования с переменной длиной выводит определенный(е) режим(ы) 6 кодирования для соответствующих компонентов цвета на модуль 2 пространственного предсказания. Затем согласно этапам S15-S17 получается изображение с внутренним предсказанием для каждого компонента цвета. Процесс для получения изображений внутреннего предсказания следует процессу, иллюстрированному на Фиг. 3 и 4, и является таким же, как выполняется в устройстве кодирования, проиллюстрированном на Фиг. 1.
Фиг. 8 иллюстрирует разновидность последовательности данных битового потока, проиллюстрированной на Фиг. 6. На Фиг. 7 флаг 23 идентификации совместного использования режима внутреннего предсказания является мультиплексированным не как флаг на уровне макроблока, но как флаг, позиционированный на верхнем уровне данных, таком как уровень среза, уровень картинки и уровень последовательности. Кроме того, флаг 31 индикации таблицы расширенного режима внутреннего предсказания обеспечивается, чтобы разрешить выбор кодовой таблицы, которая определяет кодовое слово расширенного режима 30 внутреннего предсказания из множества кодовых таблиц. В результате, когда обеспечивается удовлетворительная эффективность предсказания посредством переключения в верхний уровень, равный или выше, чем уровень среза, служебные биты могут быть сокращены без мультиплексирования флагов 23 идентификации совместного использования режима внутреннего предсказания одного за другим на уровне макроблока. Для расширенного режима 30 внутреннего предсказания флаг 31 индикации таблицы расширенных режимов внутреннего предсказания обеспечивается, чтобы разрешить выбор режимов предсказания, определенных для компонентов C1 и C2, который не является таким же, как определение основного режима 29 внутреннего предсказания. В результате может быть выполнен процесс кодирования, адаптированный для определения цветового пространства. Например, кодирование формата 4:2:0 согласно AVC, режим внутреннего предсказания, установленный отличным от такового для яркости (Y), определяется для компонентов цвета (Cb и Cr). В формате 4:2:0 размер сигнала цвета в макроблоке равен 8 пикселей на 8 строк. Любой из четырех режимов, проиллюстрированных на Фиг. 9, выбирается для каждого макроблока, чтобы выполнить процесс декодирования. Один и тот же режим используется для двух сигналов цветности Cb и Cr. За исключением DC предсказания с intra_chroma_pred_mode=0, выполняется тот же самый процесс предсказания как таковой из режима внутреннего 16×16 предсказания, проиллюстрированный на Фиг. 4. При DC предсказании, однако, 8×8 блоков делятся на четыре 4×4 блока. Позиции пикселей, из которых получается среднее значение, изменяются для каждого блока, чтобы выполнить процесс. Для блока, указанного "a+x, a или x" на Фиг. 9, когда и пиксели a и пиксели x доступны, пиксели a и x, то есть всего восемь пикселей, когда только пиксели a доступны, четыре пикселя a, и когда только пиксели x доступны, четыре пикселя x используются для получения среднего значения, чтобы использовать среднее значение в качестве предсказанного изображения 7. Когда и пиксели a и x недоступны, значение 128 используется в качестве предсказанного изображения 7. Для блока, обозначенного "b или x", когда пиксели b доступны, четыре пикселя b, когда только пиксели x доступны, четыре пикселя x используется для получения среднего значения.
Таким образом, когда требуется изменить набор режимов внутреннего предсказания согласно свойству компонента цвета, более подходящая эффективность кодирования может быть получена структурой, такой как синтаксис, иллюстрируемый на Фиг. 8.
Второй вариант осуществления
Во втором варианте осуществления настоящего изобретения описаны другое устройство кодирования, которое выполняет закрытое кодирование в пределах кадра в единицах прямоугольных областей (макроблоков), каждая состоящая из 16 на 16 пикселей, полученными посредством равного разделения видеокадра, введенного в формате 4:4:4, и устройство декодирования, соответствующее устройству кодирования. Как в первом варианте осуществления настоящего изобретения, устройство кодирования и устройство декодирования по этому варианту осуществления снабжены характеристиками, специфическими для настоящего изобретения, на основании способа кодирования, используемого в непатентном документе 1, процитированном выше.
Фиг. 11 иллюстрирует конфигурацию видеоустройства кодирования, и Фиг. 12 иллюстрирует устройство декодирования видео согласно второму варианту осуществления настоящего изобретения. На Фиг. 11 компоненты, обозначенные такими же ссылочными позициями, как в устройстве кодирования, проиллюстрированном на Фиг. 1, являются теми же самыми компонентами. На Фиг. 12 компоненты, обозначенные такими же ссылочными позициями, как в устройстве кодирования, проиллюстрированном на Фиг. 11, являются теми же самыми компонентами. На Фиг. 11 приведены флаг 32 идентификации размера блока преобразования и флаг 33 идентификации совместно используемого режима внутреннего кодирования.
В дальнейшем работа всего устройства кодирования и устройства декодирования согласно второму варианту осуществления настоящего изобретения и процесс определения режима предсказания/внутреннего кодирования и процесс декодирования с внутренним предсказанием, которые являются конкретными операциями согласно этому варианту осуществления, описаны со ссылками на фиг. 11 и 12.
1. Обзор работы устройства кодирования
В устройстве кодирования, проиллюстрированном на Фиг. 11, в качестве входного видеосигнала 1 каждый видеокадр вводится в устройство кодирования в формате 4:4:4. Далее, как иллюстрируется на Фиг. 10, видеосигнал вводится на основе макроблоков, причем каждый макроблок получают посредством разделения трех компонентов цвета на блоки одинакового размера и затем посредством объединения блоков.
В модуле 2 пространственного предсказания процесс внутреннего предсказания выполняется для каждого компонента цвета на основе макроблоков посредством использования локального декодированного изображения 15, которое должно быть сохранено в блоках памяти 16. Внутреннее предсказание имеет режим внутреннего 4×4 предсказания, режим внутреннего 8×8 предсказания и режим внутреннего 16×16 предсказания. В режиме внутреннего 4×4 предсказания пространственное предсказание выполняется в единицах блоков, проиллюстрированных на Фиг. 3, каждый будучи составленным из 4 пикселей × 4 строки, посредством использования соседних пикселей этого блока. В режиме внутреннего 8×8 предсказания пространственное предсказание выполняется в единицах блоков, проиллюстрированных на Фиг. 13, каждый будучи составленным из 8 пикселей × 8 строк, посредством использования соседних пикселей этого блока. В режиме внутреннего 16×16 предсказания пространственное предсказание выполняется на основе макроблоков, иллюстрированных на Фиг. 4, каждый будучи составленным из 16 пикселей × 16 строк, посредством использования соседних пикселей этого макроблока. В устройстве кодирования согласно второму варианту осуществления настоящего изобретения режим предсказания переключается между режимом внутреннего 4×4 предсказания и режимом внутреннего 8×8 предсказания согласно состоянию флага 32 идентификации размера блока преобразования. Выбор режима внутреннего предсказания для кодирования некоторого макроблока из режима внутреннего 4×4 предсказания, режима внутреннего 8×8 предсказания и режима внутреннего 16×16 предсказания может быть представлен режимом внутреннего кодирования, как на Фиг. 6. Устройство кодирования согласно второму варианту осуществления настоящего изобретения обеспечивается двумя режимами внутреннего кодирования: режимом внутреннего N×N прогнозирующего кодирования для кодирования, используя любой из режима внутреннего 4×4 предсказания и режима внутреннего 8×8 предсказания (N равно 4 или 8); и режимом внутреннего 16×16 прогнозирующего кодирования для кодирования, используя режим внутреннего 16×16 предсказания. В дальнейшем описание будет дано для каждого из режимов внутреннего кодирования.
(a) Режим внутреннего N×N кодирования с предсказанием
В режиме внутреннего N×N кодирования с предсказанием режим внутреннего 4×4 предсказания и режим внутреннего 8×8 предсказания выборочно переключаются для кодирования. В режиме внутреннего 4×4 предсказания блок пикселей 16×16 сигнала яркости в макроблоке делится на шестнадцать блоков, каждый будучи составленным из 4×4 пикселей, и режим предсказания индивидуально выбирается для каждого из блока 4×4 пикселей. В режиме внутреннего 8×8 предсказания блок пикселей 16×16 сигнала яркости в макроблоке делится на четыре блока, каждый будучи составленным из 8×8 пикселей, и режим предсказания индивидуально выбирается для каждого из блоков 8×8 пикселей. Переключение между режимом внутреннего 4×4 предсказания и режимом внутреннего 8×8 предсказания ассоциируется с состоянием флага 32 идентификации размера блока преобразования. Это описано ниже. В режиме внутреннего 4×4 предсказания любой из девяти режимов, иллюстрируемых на Фиг. 3, выбирается для каждого из блока 4×4 пикселей, как описано в первом варианте осуществления настоящего изобретения. Пиксели в соседних блоках (верхний левый, верхний, верхний правый и левый блоки), которые были закодированы и подвергнуты локальному процессу декодирования, которые должны быть сохранены в блоках памяти 16, используются для того, чтобы генерировать предсказанное изображение.
С другой стороны, в режиме внутреннего 8×8 предсказания любой из девяти режимов, проиллюстрированных на Фиг. 13, выбирается для каждого из блоков 8×8 пикселей. Как очевидно из сравнения с Фиг. 3, режим внутреннего 8×8 предсказания на Фиг. 13 является модификацией способа предсказания в режиме внутреннего 4×4 предсказания для адаптации к блоку пикселей 8×8.
Intra8×8_pred_mode=0: Верхние соседние пиксели используются в качестве предсказанного изображения.
Intra8×8_pred_mode=1: Левые соседние пиксели используются в качестве предсказанного изображения.
Intra8×8_pred_mode=2: среднее значение восьми соседних пикселей используется в качестве предсказанного изображения.
Intra8×8_pred_mode=3: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по диагонали вниз влево под 45 градусов).
Intra8×8_pred_mode=4: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по диагонали вниз вправо под 45 градусов).
Intra8×8_pred_mode=5: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по вертикали вниз вправо под 22,5 градуса).
Intra8×8_pred_mode=6: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по горизонтали под 67,5 градусов).
Intra8×8_pred_mode=7: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по диагонали вниз влево под 22,5 градуса).
Intra8×8_pred_mode=8: взвешенное среднее число каждых двух или трех пикселей вычисляется из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствует краю по горизонтали вверх под 112,5 градусов).
Для выбора режима внутреннего 4×4 предсказания шестнадцать частей информации режима требуются для каждого макроблока. Поэтому, чтобы уменьшить количество кодов самой информации режима, кодирование с предсказанием (прогнозирующее кодирование) выполняется на основании информации режима соседних блоков, используя выгоду высокой корреляции информации режима между соседними блоками.
(b) Режим внутреннего 16×16 предсказания
В режиме внутреннего 16×16 предсказания блок пикселей 16×16, соответствующий размеру макроблока, предсказывается за один раз, и любой из четырех режимов, проиллюстрированных на Фиг. 4, выбирается для каждого макроблока. Как в случае режима внутреннего 4×4 предсказания, пиксели в соседнем (верхнем левом, верхнем и левом) макроблоках, которые были уже закодированы и подвергнуты локальному процессу декодирования, которые должны быть сохранены в блоках памяти 16, используются для генерирования предсказанного изображения. Типы режима, как описываются в первом варианте осуществления настоящего изобретения, ссылаются на Фиг. 4. В режимах внутреннего 16×16 предсказания размер блока преобразования всегда равен 4×4. В этом режиме, однако, выполняется двухэтапное преобразования. Сначала шестнадцать DC (компонентов постоянного тока, соответствующих средним значениям), собираются в единицы блоков 4×4 и преобразование блока 4×4 выполняется в этой единице. Затем компонент переменного тока, полученный исключением DC, преобразовывается для каждого из 4×4 блоков.
Устройство кодирования видео согласно второму варианту осуществления настоящего изобретения отличается тем, что способы внутреннего предсказания/преобразования/кодирования переключаются для трех компонентов цвета на основании флага 33 идентификации совместного использования режима внутреннего кодирования. Это описано подробно в секции 2 ниже.
Модуль 2 пространственного предсказания оценивает режим внутреннего предсказания для ввода сигналов трех компонентов цвета на основании флага 33 идентификации совместного использования режима внутреннего кодирования. Флаг 33 идентификации совместного использования режима внутреннего кодирования указывает, назначается ли индивидуально режим внутреннего кодирования каждому из введенных трех компонентов цвета или один и тот же режим внутреннего кодирования всем трем компонентам цвета, что зависит от следующих условий.
В формате 4:4:4 помимо цветового пространства Y, Cb и Cr, которое традиционно использовалось для кодирования, может непосредственно использоваться RGB. В цветовом пространстве Y, Cb и Cr компонент, зависящий от структуры текстуры видеоизображения, удаляется из сигналов Cr и Cb. Есть высокая вероятность, что оптимальный способ внутреннего кодирования является различным между компонентом Y и компонентами Cb и Cr (фактически в способе кодирования для кодирования формата 4:2:0 в AVC/H.264, таком как «высокий 4:2:0 профиль», проект режима внутреннего предсказания, используемого для компонента Y, отличается от такового, используемого для компонентов Cb и Cr). С другой стороны, когда кодирование выполняется в цветовом пространстве RGB, структура текстуры не удаляется между компонентами цвета, как выполняется в случае цветового пространства Y, Cb и Cr. Вместо этого, так как компоненты сигналов в одном и том же пространстве имеют высокую корреляцию, есть вероятность, что эффективность кодирования может быть увеличена посредством обеспечения вероятности выбора общего режима внутреннего кодирования. Это зависит не только от определения цветового пространства, но также и от свойства видеоизображения, даже если используется конкретное цветовое пространство. Желательно, чтобы способ кодирования непосредственно был адаптивен к такому свойству видеосигнала. Поэтому в этом варианте осуществления предоставляется флаг 33 идентификации совместного использования режима внутреннего кодирования, чтобы конфигурировать устройство кодирования, чтобы позволить выполнить гибкое кодирование для видеоизображения в формате 4:4:4.
Модуль 2 пространственного предсказания выполняет процесс предсказания для каждого из компонентов цвета для всех режимов внутреннего предсказания, проиллюстрированных на Фиг. 3, 4 или 13, или заранее определенного поднабора согласно состоянию флага 33 идентификации совместного использования режима внутреннего кодирования, установленного, как описано выше, чтобы получить разностный сигнал 4 предсказания в вычитающем устройстве 3. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования. Из процесса предсказания, выполняемого в модуле 2 пространственного предсказания, выбирается режим внутреннего предсказания, в котором может быть получена оптимальная эффективность предсказания для целевого макроблока. В этом случае, когда внутреннее N×N предсказание выбирается, режим кодирования с внутренним N×N предсказанием выводится как режим 6 кодирования. Кроме того, когда режим предсказания является внутренним 4×4 предсказанием, флаг 32 идентификации размера блока преобразования устанавливается в "преобразовать в размер блока 4×4". С другой стороны, когда режимом предсказания является внутреннее 8×8 предсказание, флаг 32 идентификации размера блока преобразования устанавливается в "преобразовать в размер блока 8×8". Различные способы являются возможными в качестве способа определения флага 32 идентификации размера блока преобразования. Так как размер блока определяется в случае, когда преобразование выполняется в отношении остатка, полученного посредством внутреннего N×N предсказания в устройстве кодирования согласно второму варианту осуществления настоящего изобретения, способ определения оптимального режима внутреннего N×N предсказания в модуле 5 определения режима кодирования и затем определения размера блока согласно полученному значению N дается в качестве примера. Например, предполагая, что размер блока преобразования есть блок размером 8×8 пикселей, когда используется режим внутреннего 4×4 предсказания, есть высокая вероятность, что пространственная непрерывность сигнала предсказания должна быть прервана в единицах 4×4 блоков в разностном сигнале 4 предсказания, полученном в качестве результата предсказания. В результате генерируется ненужный высокочастотный компонент. Поэтому эффект концентрации мощности сигнала, полученный посредством этого преобразования, уменьшается. Когда размер блока преобразования устанавливается в блок 4×4 пикселей согласно режиму предсказания, вышеупомянутая проблема не имеет место.
Когда внутреннее 16×16 предсказание выбирается в модуле 5 определения режима кодирования, режим кодирования с внутренним 16×16 предсказанием выводится как режим 6 кодирования. Для выбора режима 6 кодирования может быть учтен коэффициент 20 взвешивания для каждого из режимов кодирования, определенных модулем 19 управления кодированием.
Разностный сигнал 4 предсказания, полученный в режиме 6 кодирования, выводится к модулю 8 ортогонального преобразования. Модуль 8 ортогонального преобразования преобразовывает входной разностный сигнал предсказания, чтобы вывести результат преобразования как коэффициент ортогонального преобразования к модулю 9 квантования. Модуль 9 квантования квантует введенный коэффициент ортогонального преобразования на основании параметра 21 квантования, определенного модулем 19 управления кодированием, чтобы вывести результат квантования как квантованный 10 коэффициент преобразования к модулю 11 кодирования с переменной длиной кода.
Когда размер блока преобразования равен блоку 4×4 в качестве единицы, разностный сигнал 4 предсказания, введенный в модуль 8 ортогонального преобразования, делится на блоки 4×4, которые должны быть подвергнуты ортогональному преобразованию. Затем блоки 4×4 квантуются в модуле 9 квантования. Когда размер блока преобразования равен блоку 8×8 в качестве единицы, разностный сигнал 4 предсказания, введенный в модуль 8 ортогонального преобразования, делится на блоки 8×8, которые должны быть подвергнуты ортогональному преобразованию. Затем блоки 8×8 квантуются в модуле 9 квантования.
Квантованный коэффициент 10 преобразования статистически кодируется в модуле 11 кодирования с переменной длиной средством, таким как кодирование Хаффмана или арифметическим кодированием. Квантованный коэффициент 10 преобразования в блоке размером, основанным на флаге 32 идентификации размера блока преобразования или подобном, также проходит через модуль 12 обратного квантования и модуль 13 обратного ортогонального преобразования, чтобы быть восстановленными до локального декодированного разностного сигнала 14 предсказания. Затем локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным на основании режима 6 кодирования в сумматоре 18, чтобы сгенерировать локальное декодированное изображение 15. Локальное декодированное изображение 15 сохраняется в блоках памяти 16, чтобы использоваться для последующего процесса внутреннего предсказания. Кроме того, флаг 24 управления фильтром удаления блочности, указывающий, должен ли фильтр удаления блочности быть применен к макроблоку, также вводится в модуль 11 кодирования с переменной длиной кода (работа самого фильтра удаления блочности не требуется для процесса кодирования, так как данные пиксели до применения фильтра удаления блочности сохраняются в блоках памяти 16 в процессе предсказания, выполняемом в модуле 2 пространственного предсказания, но в устройстве декодирования фильтр удаления блочности применяется на основании индикации флага 24 управления фильтром удаления блочности, чтобы получить окончательное декодированное изображение).
Флаг 33 идентификации совместного использования режима внутреннего кодирования, квантованный коэффициент 10 преобразования, режим 6 кодирования и параметр 21 квантования, которые подаются на модуль 11 кодирования с переменной длиной кода, упорядочиваются и принимают форму согласно заранее определенному синтаксису для вывода в буфер 17 передачи. Буфер 17 передачи сглаживает битовый поток согласно диапазону тракта передачи или скорости считывания носителя записи, к которому устройство кодирования подсоединено, чтобы вывести битовый поток как видеопоток 22. Буфер 17 передачи выводит информацию обратной связи к модулю 19 управления кодированием согласно состоянию накопления двоичных потоков в буфере 17 передачи, чтобы управлять объемом кодов, которые должны быть сгенерированы при кодировании последующих видеокадров.
2. Процесс определения режима внутреннего кодирования/режима предсказания в устройстве кодирования
Процесс определения режима внутреннего кодирования и режима предсказания в устройстве кодирования, которые являются особенностями устройства кодирования согласно второму варианту осуществления настоящего изобретения, описаны ниже подробно. Процесс выполняется на основе макроблоков, причем каждый макроблок получают посредством объединения трех компонентов цвета, описанных выше. Процесс главным образом выполняется модулем 2 пространственного предсказания и модулем 5 определения режима кодирования в устройстве кодирования, проиллюстрированном на Фиг. 11. Фиг. 14 - последовательность операций, иллюстрирующая последовательность операций этого процесса. В дальнейшем данные изображения трех компонентов цвета, составляющих эти блоки, называются C0, C1 и C2 соответственно.
Сначала модуль 5 определения режима кодирования принимает флаг 33 идентификации совместного использования режима внутреннего кодирования, чтобы определить на основании значении флага 33, используется ли режим внутреннего кодирования, общий для C0, C1 и C2 (этап S20 Фиг. 14). Если режим внутреннего кодирования, общий для C0, C1 и C2, используется, процесс переходит к этапу S21. Иначе процесс переходит к этапу S22.
Когда используется режим внутреннего кодирования, общий для C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 2 пространственного предсказания о всех или части выбираемых режимов внутреннего предсказания (внутреннее N×N предсказание и внутреннее 16×16 предсказание). Модуль 2 пространственного предсказания оценивает эффективности предсказания всех выбираемых режимов предсказания, чтобы выбрать режим внутреннего кодирования и режим внутреннего предсказания, оптимальные для всех компонентов (этап S21).
С другой стороны, когда оптимальный режим внутреннего кодирования индивидуально выбирается для каждого из C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 2 пространственного предсказания о всех или части режимов внутреннего предсказания (внутреннее N×N предсказание и внутреннее 16×16 предсказание), выбираемых для компонента Ci (i≤0<3). Модуль 2 пространственного предсказания оценивает эффективности предсказания всех уведомленных режимов внутреннего предсказания, чтобы выбрать режим внутреннего 4×4 предсказания, оптимальный для компонента Ci (i≤0<3) (этап S23).
Когда модуль 2 пространственного предсказания выбирает режим внутреннего 4×4 предсказания в качестве режима, который обеспечивает оптимальную эффективность предсказания на этапе S21 или S23 выше, флаг 32 идентификации размера блока преобразования устанавливается в «преобразовать в блок размером 4×4». С другой стороны, когда модуль 2 пространственного предсказания выбирает режим внутреннего 8×8 предсказания в качестве режима, который обеспечивает оптимальную эффективность предсказания, флаг 32 идентификации размера блока преобразования устанавливается в «преобразовать в 8×8 размер блока».
В качестве нормы оценки эффективности предсказания режима предсказания, выполняемого в модуле 2 пространственного предсказания, например, может использоваться стоимость искажения скорости передачи в битах, задаваемая как:
Jm=Dm+λRm (λ: положительное число).
В этой формуле Dm - искажение кодирования или величина ошибки предсказания, когда используется режим m внутреннего предсказания. Искажение кодирования получается посредством получения ошибки предсказания, используя режим m внутреннего предсказания, декодируя видеоизображение из результата преобразования и квантуя ошибки предсказания и затем измеряя ошибки в отношении сигнала прежде, чем он будет закодирован. Величина ошибки предсказания получается посредством получения разности между предсказанным изображением и сигналом прежде кодирования, когда используется режим m внутреннего предсказания, и затем определения величины полученной разности. Например, сумма абсолютных расстояний (SAD) используется как величина ошибки предсказания. Rm - сгенерированное количество кода, когда используется режим m внутреннего предсказания. В частности, Jm - значение, определяющее компромисс между объемом кодов и степенью ухудшения, когда используется режим m внутреннего предсказания. Режим m внутреннего предсказания, обеспечивающий наименьшее Jm, дает оптимальное решение.
Когда устройство кодирования выполняет процесс этапа S21, одна часть информации режима внутреннего кодирования назначается одному макроблоку, содержащему три компонента цвета. С другой стороны, когда устройство кодирования выполняет процесс этапа S22 и следующие этапы, одна часть информации режима внутреннего кодирования назначается каждому из компонентов цвета (всего три части информации режима внутреннего кодирования). Информация режима внутреннего предсказания, назначенная макроблоку, отличается для каждого случая, и таким образом флаг 33 идентификации совместного использования режима внутреннего кодирования должен быть мультиплексирован в битовом потоке, чтобы разрешить устройству декодирования распознать, выполнило ли устройство кодирования процесс этапа S21 или процесс S22 и последующие этапы. Последовательность данных такого битового потока иллюстрируется на Фиг. 15.
На Фиг. 15 режимы 0 (34a), 1 (34b) и 2 (34c) внутреннего кодирования, которые являются мультиплексированными в битовом потоке на уровне макроблока, являются режимами 6 кодирования для компонентов C0, C1 и C2 соответственно. Когда режим внутреннего кодирования является режимом кодирования с внутренним N×N предсказанием, флаг 32 идентификации размера блока преобразования и режим внутреннего предсказания являются мультиплексированными в битовом потоке. С другой стороны, когда режим внутреннего кодирования является режимом кодирования с внутренним 16×16 предсказанием, информация режима внутреннего предсказания кодируется как часть информации режима внутреннего кодирования и информация флага 32 идентификации размера блока преобразования и режим внутреннего предсказания не мультиплексируются в битовом потоке. Когда флаг 33 идентификации совместного использования режима внутреннего кодирования указывает, что режим внутреннего кодирования является "общим для C0, C1 и C2", режимы 1 (34b) и 2 (34c) внутреннего кодирования, флаги 1 (32b) и 2 (32c) идентификации размера блока преобразования и режимы 1 (35b) и 2 (35c) внутреннего предсказания не мультиплексируются в битовом потоке (пунктирный круг на Фиг. 15 указывает точку разветвления процесса). В этом случае режим 0 (34a) внутреннего кодирования, флаг 0 (32a) идентификации размера блока преобразования и режим 0 (35a) внутреннего предсказания служат в качестве информации кодирования, общей для всех компонентов цвета. Фиг. 15 показывает пример, где флаг 33 идентификации совместного использования режима внутреннего кодирования является мультиплексированным в качестве данных битового потока на уровне более высокого порядка, чем уровень макроблока, таком как срез, картинка или последовательность. В частности, когда флаг 33 идентификации совместного использования режима внутреннего кодирования используется, как в примере, описанном во втором варианте осуществления настоящего изобретения, цветовое пространство не изменяется по всей последовательности во многих случаях. Поэтому задача может быть достигнута мультиплексированием флага 33 идентификации совместного использования режима внутреннего кодирования на уровне последовательности.
Во втором варианте осуществления настоящего изобретения флаг 33 идентификации совместного использования режима внутреннего кодирования используется для указания, «является ли режим внутреннего кодирования общим для всех компонентов». Альтернативно, флаг 33 идентификации совместного использования режима внутреннего кодирования может быть использован для указания, "является ли режим внутреннего кодирования общим для двух конкретных компонентов, таких как C1 и C2" согласно определению цветового пространства входного видеосигнала 1 (в случае цветового пространства Y-Cb-Cr есть высокая вероятность, что режим внутреннего кодирования может быть сделан общим для Cb и Cr). Далее, диапазон совместного использования флага 33 идентификации совместного использования режима внутреннего кодирования может быть ограничен только режимами внутреннего кодирования, чтобы разрешить индивидуальный выбор размера блока преобразования или режима N×N предсказания для каждого из компонентов цвета, когда используется режим внутреннего N×N предсказания (Фиг. 16). Со структурой синтаксиса, как иллюстрируется на Фиг. 16, информация режима кодирования может быть сделана общей для компонентов цвета, в то время как способ предсказания может быть изменен для каждого из компонентов цвета для видеоизображения сложного шаблона, который требует N×N предсказания. В результате эффективность предсказания может быть увеличена.
Следует отметить, что информация флага 33 идентификации совместного использования режима внутреннего кодирования не должна быть переносимой в битовом потоке видео, который должен быть передан, когда информация уже известна и устройству кодирования, и устройству декодирования некоторым средством. В этом случае, например, устройство кодирования может установить флаг 33 идентификации совместного использования режима внутреннего кодирования равным любому значению для кодирования или может передать флаг 33 идентификации совместного использования режима внутреннего кодирования независимо от битового потока видео.
3. Обзор работы устройства декодирования
Устройство декодирования, иллюстрируемое на Фиг. 12, принимает видеопоток согласно последовательности данных, проиллюстрированной на Фиг. 15, выведенной из устройства кодирования, иллюстрируемого на Фиг. 11, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок содержит три компонента цвета одного и того же размера (4:4:4 формат), чтобы восстановить каждый видеокадр.
Сначала модуль 25 декодирования с переменной длиной принимает поток 22 в качестве входного, чтобы декодировать поток 22 согласно заранее определенному синтаксису, таким образом извлекая информацию, такую как флаг 33 идентификации совместного использования режима внутреннего кодирования, квантованный коэффициент 10 преобразования, режим 6 кодирования и параметр 21 квантования. Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, где выполняется процесс обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 13 обратного ортогонального преобразования для восстановления в локальный декодированный разностный сигнал 14 предсказания. С другой стороны, режим 6 кодирования и флаг 33 идентификации совместного использования режима внутреннего кодирования подаются в модуль 2 пространственного предсказания, чтобы получить предсказанное изображение 7 согласно входной информации. Конкретная процедура для получения предсказанного изображение 7 описана ниже. Локальный декодированный разностный сигнал 14 предсказания и предсказанное изображение 7 суммируется сумматором 18, чтобы получить временное декодированное изображение 15 (которое является точно тем же сигналом, как локальное декодированное изображение 15 в устройстве кодирования). Временное декодированное изображение 15 записывается обратно в блоки памяти 16, чтобы использоваться для внутреннего предсказания последующих макроблоков. Три блока памяти предоставляются для соответствующих компонентов цвета. Кроме того, на основании индикации флага 24 управления фильтром удаления блочности, декодированного модулем 25 декодирования с переменной длиной кода, фильтр 26 удаления блочности вынуждают воздействовать на временное декодированное изображение 15, чтобы получить окончательное декодированное изображение 27.
4. Процесс декодирования с внутренним предсказанием в устройстве декодирования
Процесс формирования изображения с внутренним предсказанием, который является особенностью устройства декодирования согласно второму варианту осуществления настоящего изобретения, подробно описан ниже. Процесс выполняется на основе макроблоков, причем каждый макроблок получают посредством объединения трех компонентов цвета, описанных выше. Процесс главным образом выполняется модулем 25 декодирования с переменной длиной кода и модулем 2 пространственного предсказания в устройстве декодирования, проиллюстрированном на Фиг. 12. Фиг. 17 - последовательность операций, иллюстрирующая последовательность операций этого процесса.
В последовательности операций, проиллюстрированной на Фиг. 7, этапы S25-S38 выполняются в модуле 25 декодирования с переменной длиной кода. Последовательность данных видеопотока 22, который подается на вход модуля 25 декодирования с переменной длиной кода, соответствует последовательности данных, проиллюстрированной на Фиг. 15. На этапе S25 среди данных, проиллюстрированных на Фиг. 15, сначала декодируется режим 0 (34a) внутреннего кодирования (соответствующий компоненту C0). В результате, когда режим 0 (34a) внутреннего кодирования является "внутренним N×N предсказанием", флаг 0 (32a) идентификации размера блока преобразования и режим 0 (35a) внутреннего предсказания декодируются (этапы S26 и S27). Затем, когда определяется на основании состояния флага 33 идентификации совместного использования режима внутреннего кодирования, что информация режима внутреннего кодирования/предсказания является общей для всех компонентов цвета, режим 0 (34a) внутреннего кодирования, флаг 0 (32a) идентификации размера блока преобразования и режим 0 (35a) внутреннего предсказания устанавливаются в качестве информации кодирования, используемой для компонентов C1 и C2 (этапы S29 и S30). Фиг. 17 иллюстрирует процесс на основе макроблоков. Предполагается, что флаг 33 идентификации совместного использования режима внутреннего кодирования, используемый для определения на этапе S29, считан из видеопотока 22 модулем 25 декодирования с переменной длиной кода на уровне уровня выше, чем уровень среза до «Начала» в этом процессе на Фиг. 17.
Когда определяется на этапе S29 Фиг. 17, что информация режима внутреннего кодирования/предсказания не является общей для всех компонентов цвета, информация режима внутреннего кодирования/предсказания для компонентов C1 и C2 декодируется в последующем процессе на этапах S31-S38. Посредством процесса, описанного выше, определяется режим 6 кодирования для каждого из компонентов цвета и выводится к модулю 2 пространственного предсказания. Затем согласно этапам S39-S41 получают изображение с внутренним предсказанием каждого компонента цвета. Процесс для получения изображения с внутренним предсказанием следует процедуре, проиллюстрированной на Фиг. 3, 4 и 13, и является такой же, как процесс, выполняемый в устройстве кодирования согласно Фиг. 11.
Следует отметить, что, как описано выше, устройство декодирования не должно анализировать значение информации флага 33 идентификации совместного использования режима внутреннего кодирования из битового потока видео, но может, например, декодировать значение информации флага 33 идентификации совместного использования режима внутреннего кодирования с предварительно фиксированным значением, пока информация известна заранее и устройству кодирования, и устройству декодирования некоторым образом. Альтернативно, информация флага 33 идентификации совместного использования режима внутреннего кодирования может быть передана независимо от битового потока видео.
В формате 4:2:0, используемом в обычном стандарте кодирования видео, определение цветового пространства устанавливается в Y, Cb и Cr. В формате 4:4:4, однако, цветовое пространство не ограничивается Y, Cb и Cr и другие цветовые пространства могут использоваться. Посредством составления информации кодирования внутреннего макроблока, как на Фиг. 15 или 16, оптимальный процесс кодирования может быть выполнен согласно определению цветового пространства входного сигнала 1 видео или свойства видеосигнала. В то же самое время битовый поток, полученный как результат вышеупомянутого процесса кодирования, однозначно интерпретируется, чтобы выполнить видеопроцесс декодирования/воспроизведения.
Третий вариант осуществления
Третий вариант осуществления согласно настоящему изобретению описывает другой пример конфигураций устройства кодирования, проиллюстрированного на Фиг. 11, и устройства декодирования, проиллюстрированного на Фиг. 12. Как в первом варианте осуществления настоящего изобретения, устройство кодирования и устройство декодирования согласно третьему варианту осуществления основаны на способе кодирования, используемом в стандарте MPEG-4 AVC (ISO/IEC 14496-10)/ITU-T H.264, соответствующем непатентному документу 1 и снабженному особенностями, специфическими для настоящего изобретения. Устройство кодирования видео по третьему варианту осуществления отличается от иллюстрированного на Фиг. 11 согласно второму варианту осуществления только модулем 11 кодирования с переменной длиной кода. Устройство декодирования видео согласно третьему варианту осуществления отличается от устройства декодирования, проиллюстрированного на Фиг. 12 из второго варианта осуществления, только модулем 25 декодирования с переменной длиной кода. Остальные операции являются такими же, как во втором варианте осуществления, и только различия между вариантами осуществления будут описаны ниже.
1. Процедура кодирования информации режима внутреннего предсказания в устройстве кодирования
В модуле 11 кодирования с переменной длиной кода в устройстве кодирования согласно второму варианту осуществления настоящего изобретения последовательность данных в битовом потоке была описана для информации режима внутреннего N×N предсказания. Однако процедура кодирования режима внутреннего N×N предсказания не была конкретно описана. В третьем варианте осуществления настоящего изобретения описан конкретный способ процедуры кодирования. Третий вариант осуществления, в частности, характерен тем, что случай, когда значения режимов внутреннего N×N предсказания имеют высокую корреляцию между компонентами цвета, учитывается, чтобы выполнить статистическое кодирование, используя корреляцию в значении между компонентами цвета для режима внутреннего N×N предсказания, полученного для каждого из компонентов цвета.
"
Следующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. Для упрощения описания значение флага 33 идентификации совместного использования режима внутреннего кодирования установлено в "использовать общий режим внутреннего кодирования для C0, C1 и C2 и режим внутреннего кодирования устанавливается в режим внутреннего N×N предсказания, и размеры 0-2 блока преобразования установлены в блок 4×4. В этом случае режимы 0-2 внутреннего предсказания (35a-35c) являются все режимом внутреннего 4×4 предсказания. На Фиг. 18-20 текущий макроблок, который должен быть закодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B.
В качестве чертежей для иллюстрации соответствующих процедур кодирования компонентов цвета C0, C1 и C2 используются Фиг. 18-20. Фиг. 21 и 22 - последовательности операций процедур кодирования.
Фиг. 18 иллюстрируют состояния компонента C0 в макроблоке X. На этом чертеже блок 4×4, который должен быть закодирован, назван как блок X, и блок слева и блок выше блока X соответственно названы как блок A и блок B. Есть два случая согласно позиции блока 4×4, который должен быть закодирован в макроблоке X. Случай 1 показывает, что блоки 4×4 слева и выше этого блока 4×4, который должен быть закодирован, присутствуют вне текущего макроблока X, то есть содержатся в макроблоке A или B. Случай 2 показывает, что блоки 4×4 слева и выше блока 4×4, который должен быть закодирован, присутствуют в текущем макроблоке X, то есть содержатся в макроблоке X. В любом из этих случаев один режим внутреннего 4×4 предсказания назначается каждому из блоков 4×4 в макроблоке X и называется как CurrIntraPredMode. Режим внутреннего 4×4 предсказания блока A называется как IntraPredModeA, тогда как режим внутреннего 4×4 предсказания блока B называется как IntraPredModeB. И IntraPredModeA, и IntraPredModeB являются информацией, которая была уже закодирована в то время, когда блок X кодировался. Для кодирования режима внутреннего 4×4 предсказания некоторого блока X сначала назначаются параметры, описанные выше (этап S50 на Фиг. 21).
Затем значение предсказания, predCurrIntraPredMode, для CurrIntraPredMode блока X определяется следующей Формулой (этап S51).
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB)
Затем CurrIntraPredMode компонента C0 кодируется. В этом случае, когда установлено CurrIntraPredMode=predCurrIntraPredMode, кодируется однобитовый флаг (prev_intra_pred_mode_flag), указывающий, что это значение является таким же, как значение предсказания. Если установлено CurrIntraPredMode 1= predCurrIntraPredMode, CurrIntraPredMode кодируется, как есть, когда CurrIntraPredMode меньше, чем predCurrIntraPredMode, в результате сравнения между CurrIntraPredMode и predCurrIntraPredMode. Когда CurrIntraPredMode больше, чем predCurrIntraPredMode, кодируется CurrIntraPredMode-1 (этап S52).
if(CurrIntraPredMode == predCurrIntraPredMode)
{
prev_intra_pred_mode_flag=1;
} else
{
prev_intra_pred_mode_flag=0;
if(CurrIntraPredMode < predCurrIntraPredMode)
rem_intra_pred_mode=CurrIntraPredMode;
else rem_intra_pred_mode=CurrIntraPredMode - 1;
}
Encode prev_intra_pred_mode_flag;
If(prev_intra_pred_mode_flag == 0)
Encode rem_intra_pred_mode;
Затем описана процедура кодирования компонента C1 со ссылками на Фиг. 19. Сначала, как в случае процедуры кодирования компонента C0, параметры кодирования соседних блоков, такие как IntraPredModeA и IntraPredModeB, устанавливаются согласно позиции блока X (этап S53).
Затем кандидат 1 значения предсказания predCurrIntraPredMode1 для CurrIntraPredMode блока X определяется следующей формулой (этап S54).
predCurrIntraPredMode1=Min (IntraPredModeA, IntraPredModeB)
Если prev_intra_pred_mode_flag=1 установлен для компонента C0, этот predCurrIntraPredMode1 используется как predCurrIntraPredMode для блока X компонента C1. Причина этого следующая. Использование prev_intra_pred_mode_flag=1 для одной и той же позиции блока компонента C0 означает высокую корреляцию между режимами предсказания в соседних областях изображения в компоненте C0. В случае сигнала RGB, в котором корреляция в структуре текстуры между компонентом C0 и компонентом C1 полностью не удаляется, например, есть вероятность высокой корреляции между соседними областями изображения в компоненте C1, как в случае компонента C0. Поэтому определяется, что значение предсказания компонента C1 не зависит от режима внутреннего 4×4 предсказания компонента C0.
С другой стороны, когда prev_intra_pred_mode_flag=0, то есть rem_intra_pred_mode закодирован в компоненте C0 (этап S55), CurrIntraPredMode компонента C0 определяется как кандидат 2 значения предсказания (этап S56). В частности, устанавливается
predCurrIntraPredMode2=CurrIntraPredMode_C0.
Основание для такого определения кандидата значения предсказания следующее. Кодирование rem_intra_pred_mode для компонента C0 означает, что корреляция во внутреннем предсказании между соседними областями изображения низка в компоненте C0. В этом случае ожидается, что корреляция между соседними областями изображения также низка в компоненте C1. Поэтому есть вероятность, что режим внутреннего предсказания блока в той же самой позиции в другом компоненте цвета обеспечивает более точное значение предсказания.
В качестве значения предсказания CurrIntraPredMode блока X компонента C1 любой из predCurrIntraPredMode1 и predCurrIntraPredMode 2 в конечном счете определяется (этап S57). Определение этого значения дополнительно кодируется как однобитовый флаг (pred_flag). Однако pred_flag кодируется только когда CurrIntraPredMode идентично значению предсказания. Когда CurrIntraPredMode не идентично значению предсказания (rem_intra_pred_mode закодировано), predCurrIntraPredMode1 используется в качестве значения предсказания.
Процедура, описанная выше, является следующей:
if(prev_intra_pred_mode_flag_C0=1)
{
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
} else
{
predCurrIntraPredMode1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
if(CurrIntraPredMode == predCurrIntraPredMode1)
{
prev_intra_pred_mode_flag=1;
pred_flag=0; // используется кандидат 1 значения предсказания
}
else if(CurrIntraPredMode - predCurrIntraPredMode2)
{
prev_intra_pred_mode_flag=1;
pred_flag=1; // используется кандидат 1 значения предсказания
} else
{ prev_intra_pred_mode_flag=0;
if(CurrIntraPredMode < predCurrIntraPredMode1)
rem_intra_pred_mode=CurrIntraPredMode; else
rem_intra_pred_mode=CurrIntraPredMode -1; }
}
Encode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag=:= 1)
Encode pred_flag; else // If(prev_intra_pred_mode_flag == 0)
Encode rem_intra_pred_mode;
В результате prev_intra_pred_mode_flag, pred_flag и rem_intra_pred_mode кодируются как закодированные данные (этап S58).
Ниже описана процедура кодирования компонента C2 со ссылками на Фиг. 20. Сначала, как в случае компонентов C0 и C1, параметры кодирования соседних блоков, такие как IntraPredModeA и IntraPredModeB, устанавливают согласно позиции блока X (этап S59).
Затем кандидат 1 значения предсказания, predCurrIntraPredMode1 для CurrIntraPredMode блока X определяется следующей формулой (этап S60).
predCurrIntraPredMode1=Min (IntraPredModeA, IntraPredModeB)
Если prev_intra_pred_mode_flag=1 устанавливается для обоих компонентов C0 и C1, этот predCurrIntraPredMode1 используется как есть как predCurrIntraPredMode для блока X компонента C2. Причина этого следующая. Использование prev_intra_pred_mode_flag=1 для блоков в одной и той же позиции в компонентах C0 и C1 означает высокую корреляцию между режимами предсказания в соседних областях изображения в компонентах C0 и C1. В случае, например, сигнала RGB, в котором корреляция в структуре текстуры между компонентами C0 и C1 и компонентом C2 полностью не удаляется, есть вероятность высокой корреляции между соседними областями изображения в компоненте C2 как в случаях компонентов C0 и C1. Поэтому определяется, что значение предсказания компонента C2 не зависит от режима внутреннего 4×4 предсказания компонентов C0 и C1.
С другой стороны, когда prev_intra_pred_mode_flag=0, то есть rem_intra_pred_mode закодирован в компоненте C0 или C1 (этап S61), CurrIntraPredMode компонента C0 или C1 определяется как кандидат 2 значения предсказания (этап S62). В частности, процедура является следующей:
If( prev_intra_pred_mode_flag_C0=0 && pred_intra_pred_mode_flag_C1=1)
predCurrIntraPredMode2=CurrIntraPredMode_C0;
else if(prev_intra_pred_mode_flag_C0=1 &&
pred_intra_pred_mode_flag_C1=0 )predCurrIntraPredMode2 =
CurrIntraPredMode_C1;
else
predCurrIntraPredMode2=CurrIntraPredMode_C1;
Основание для определения кандидата значения предсказания следующее. Кодирование rem_intra_pred_mode для компонента C0 или C1 означает, что корреляция во внутреннем предсказании между соседними областями изображения низка в компоненте C0 или C1. В этом случае ожидается, что корреляция между соседними областями изображения также низка даже в компоненте C2. Поэтому есть вероятность, что режим внутреннего предсказания блока в той же самой позиции в другом компоненте цвета может обеспечить более точное значение предсказания. Кроме того, согласно этому представлению, когда rem_intra_pred_mode закодирован для обоих компонентов C0 и C1, любой из текущих режимов внутреннего предсказания компонентов C0 и C1 может быть кандидатом значения предсказания. В этом случае текущий режим внутреннего предсказания компонента C1 используется как значение предсказания. Причина этого следующая. Когда вводится цветовое пространство YUV, есть высокая вероятность, что C0 обрабатывается как яркость, тогда как C1 и C2 обрабатываются как информация о цвете. В этом случае режим предсказания C1 вместо режима C0 рассматривается как ближний к режиму предсказания C2. Когда вводится цветовое пространство RGB, обычно полагается, что выбор из C0 и C1 не образует такой важный фактор и поэтому уместно использовать режим внутреннего предсказания компонента C1 в качестве значения предсказания (режим внутреннего предсказания компонента C2 может также использоваться как значение предсказания в зависимости от проекта).
В качестве значения предсказания для CurrIntraPredMode блока X компонента C2, любой из predCurrIntraPredMode1 и predCurrIntraPredMode2 в конечном счете определяется (этап S63). Определение этого значения дополнительно кодируется как однобитовый флаг (pred_flag).
Вышеупомянутая процедура описывается следующей формулой.
Процедура, описанная выше, следующия:
If( prev_intra_pred_mode_flag_C0=1 && prev_intra_pred_mode_flag=1 )
{
predCurrIntraPredMode=Min( IntraPredModeA, IntraPredModeB );
} else
{
predCurrIntraPredMode1=Min( IntraPredModeA, IntraPredModeB );
If( prev_intra_pred_mode_flag_C0 == 0 && pred_intra_pred_mode_flag_Cl
= 1)
predCurrIntraPredMode2=CurrIntraPredMode_C0;
else if(prev_intra_pred_mode_flag_C0 == 1 && pred_intra_pred_mode_flag_C1 == 0 ) redCurrIntraPredMode2=CurrIntraPredMode_C1;
else
predCurrIntraPredMode2=CurrIntraPredMode_C1;
if( CurrIntraPredMode ==predCurrIntraPredMode1)
{
prev_intra_pred_mode_flag=1;
pred_flag=0; // используется кандидат 1 значения предсказания
}
else if(CurrIntraPredMode=predCurrIntraPredMode2)
{
prev_intra_pred_mode_flag=1;
pred_flag=1; // используется кандидат 2 значения предсказания
} else
{ prev_intra_pred_mode_flag=0;
if( CurrIntraPredMode < predCurrIntraPredMode1)
rem_intra_pred_mode=CurrIntraPredMode; else rem_intra_pred_mode=CurrIntraPredMode - 1;
} }
Encode prev_intra_pred_mode_flag; if(prev_intra_pred_mode_flag == 1)
Encode pred_flag; else // If(prev_intra_pred_mode_flag == 0)
Encode rem_intra_pred_mode;
В результате prev_intra_pred_mode_flag, pred_flag и rem_intra_pred_mode кодируются как закодированные данные (этап S64).
Вышеупомянутая процедура кодирования может быть подобным образом определена для режима внутреннего 8×8 предсказания. Посредством кодирования режима внутреннего N×N предсказания в процедуре, как описано выше, корреляция между режимом предсказания, выбранным для одного компонента цвета, и режимом, выбранным для другого компонента цвета, может быть использована для уменьшения количества кодов режима предсказания непосредственно, таким образом улучшая эффективность кодирования.
Единственное различие между Фиг. 21 и 22 заключается в том, что процесс кодирования режима внутреннего предсказания для каждого макроблока является отдельно выполняемым для каждого компонента цвета или выполняемым вместе для компонентов цвета. В случае Фиг. 21 каждый компонент цвета кодируется для каждого блока 4×4. Шестнадцать шаблонов закодированного блока 4×4 компонуются как битовый поток (этап S65). В случае Фиг. 22 шестнадцать блоков 4×4 каждого компонента цвета кодируются за один раз. Закодированные блоки 4×4 компонуются как битовый поток для каждого компонента цвета (этапы S66, S67 и S68).
Следует отметить, что в вышеупомянутой процедуре pred_flag определяется как достоверная информация, только когда prev_intra_pred_mode_flag равен 1. Однако pred_flag может быть определен как эффективная информация, даже когда prev_intra_pred_mode_flag равен 0. В частности, например, взяв компонент C1 в качестве примера, кодирование может также быть выполнено в следующей процедуре.
If(prevjbntra_pred_mode_flag_C0=1)
{
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
if(CurrIntraPredMode == predCurrIntraPredMode)
{
prev_intra_pred_mode_flag=1;
} Else{
if(CurrIntraPredMode < predCurrIntraPredMode)
rem_intra_pred_mode=CurrIntraPredMode; else rem_intra_pred_mode=CurrIntraPredMode - 1;
}
} else
{
predCurrIntraPredMode 1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
if(CurrIntraPredMode=predCurrIntraPredMode1)
{
prev_intra_pred_mode_flag=1;
pred_flag=0; // используется кандидат 1 значения предсказания
}
else if(CurrIntraPredMode=predCurrIntraPredMode1)
{
prev_intra_pred_mode_flag=1;
pred_flag=1; // используется кандидат 2 значения предсказания
} else
{
prev_intra_pred_mode_flag=0;
if( | CurrIntraPredMode - predCurrIntraPredMode1 | <
| CurrIntraPredMode predCurrIntraPredMode2 |)
{
pred_flag=0;
predCurrIntraPredMode=predCurrIntraPredMode1;
} Else
{
pred_flag=1;
predCurrIntraPredMode=predCurrIntraPredMode2;
}
if(CurrIntraPredMode < predCurrIntraPredMode)
rem_intra_pred_mode=CurrIntraPredMode; else
rem_intra_pred_mode=CurrIntraPredMode - 1; } }
Encode prev_intra_pred_mode_flag; If(prev_intra_pred_mode_flag_C0=0) Encode pred_flag; If(prev_intra_pred_mode_flag == 0) Encode rem_intra_pred_mode;
Согласно этому способу pred_flag кодируется каждый раз, когда rem_intra_pred_mode кодируется в режиме внутреннего предсказания той же позиции блока компонента C0. Даже в случае prev_intra_pred_mode_flag=0 более точное значение предсказания может использоваться. В результате эффективность кодирования, как ожидают, должна быть улучшена. В качестве дальнейшего изменения pred_flag может быть закодирован вне зависимости от того, закодирован ли rem_intra_pred_mode в режиме внутреннего предсказания той же позиции блока компонента C0. В этом случае режим внутреннего предсказания компонента C0 всегда используется в качестве кандидата значения предсказания.
В частности, в этом случае формула устанавливается следующим образом.
predCurrIntraPredMode1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
if(CurrIntraPredMode=predCurrIntraPredMode1)
{
prev_intra__pred_mode_flag=1;
pred_flag=0; // используется кандидат 1 значения предсказания
}
else if(CurrIntraPredMode=predCurrIntraPredMode2)
{
prev_intra_pred_mode_flag=1;
pred_flag=1; // используется кандидат 2 значения предсказания
} else
{
prev_intra_pred_mode_flag=0;
if( | CurrIntraPredMode - predCurrIntraPredMode1 [ <
| CurrIntraPredMode predCurrIntraPredMode2 |)
{
pred_flag=0;
predCurrIntraPredMode=predCurrIntraPredMode1;
} Else
{
predjflag=1;
predCurrIntraPredMode=predCurrIntraPredMode2;
}
if(CurrIntraPredMode < predCurrIntraPredMode)
rem_intra_pred_mode=CurrIntraPredMode; else
rem_intra_pred_mode=CurrIntraPredMode - 1;
} Encode prev_intra_pred_mode_flag;
Encode pred_flag;
If(prev_intra_pred_mode_flag=0) Encode rem_intra_pred_mode;
Альтернативно, pred_flag может быть установлен для каждого макроблока или последовательности, вместо чем для каждого блока 4×4. Когда pred_flag устанавливается для каждого макроблока, использование кандидата 1 значения предсказания или кандидата 2 значения предсказания является общим для всех блоков 4×4 в макроблоке. Поэтому служебная информация, переданная как pred_flag, может быть далее сокращена. Кроме того, pred_flag может быть установлен для каждой последовательности, чтобы определить использование кандидата 1 или 2 значения предсказания согласно определению входного цветового пространства. В этом случае, так как pred_flag больше не требуется для передачи для каждого макроблока, служебная информация может быть дополнительно сокращена.
2. Процедура декодирования информации режима внутреннего предсказания в устройстве декодирования
Для модуля 25 декодирования с переменной длиной в устройстве декодирования во втором варианте осуществления настоящего изобретения последовательность данных в битовом потоке иллюстрируется для информации режима внутреннего N×N предсказания. Однако процедура декодирования информации конкретно не описывается. В третьем варианте осуществления настоящего изобретения описан конкретный способ процедуры декодирования. Третий вариант осуществления согласно настоящему изобретению особенно отличается декодированием битового потока, который статистически закодирован, используя корреляцию в значении между компонентами цвета для режима внутреннего N×N предсказания, полученного для каждого из компонентов цвета, взяв случай, когда значения режима внутреннего N×N предсказания имеют высокую корреляцию между рассматриваемыми компонентами цвета.
Следующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. Чтобы ограничить описание этим для процедуры декодирования в режиме внутреннего предсказания, значение флага 33 идентификации совместного использования режима внутреннего кодирования устанавливается в «использовать общий режим внутреннего кодирования для C0, C1 и C2». Кроме того, режим внутреннего кодирования устанавливается в режим внутреннего N×N предсказания, и размер блока 4×4 обозначается как размеры 0-2 блока преобразования. В этом случае все режимы 0-2 (35a-35c) внутреннего предсказания являются режимом внутреннего 4×4 предсказания. Как в случае устройства кодирования, на Фиг. 18-20 ссылаются для описания устройства декодирования. В устройстве декодирования текущий макроблок, который должен быть декодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B. Фиг. 23 - последовательность операций процедуры декодирования. На каждом из этапов на Фиг. 23 обозначенный такими же ссылочными позициями, как на Фиг. 21 и 22, выполняется тот же самый процесс, как в устройстве кодирования.
Фиг. 18 иллюстрирует состояния компонента C0 в макроблоке X. Есть два случая согласно позиции блока 4×4, который должен быть декодирован, в макроблоке X. Случай 1 соответствует случаю, когда блоки 4×4 слева и выше блока 4×4, который должен быть декодирован, присутствуют вне текущего макроблока X, то есть содержатся в макроблоке A или B. Случай 2 соответствует другому случаю, когда блоки 4×4 слева и выше блока 4×4, который должен быть декодирован, присутствуют в текущем макроблоке X, то есть содержатся в макроблоке X. Блок 4×4, который должен быть декодирован, называется как блок X, и блоки 4×4 слева и выше блока X соответственно названы как блок A и блок B. В любом из этих случаев один режим внутреннего 4×4 предсказания назначается каждому из блоков 4×4 X в макроблоке X и называется как CurrIntraPredMode. Режим внутреннего 4×4 предсказания блока A называется как IntraPredModeA, тогда как режим внутреннего 4×4 предсказания блока B называется как IntraPredModeB. И IntraPredModeA и IntraPredModeB являются информацией, которая была уже декодирована в то время, когда блок X декодируется. Для того чтобы декодировать режим внутреннего 4×4 предсказания некоторого блока X, сначала назначаются параметры, описанные выше (этап S50).
Затем значение предсказания, predCurrIntraPredMode, для CurrIntraPredMode блока X определяется следующей формулой (этап S51).
predCurrIntraPredMode=Min (IntraPredModeA, IntraPredModeB)
Затем декодируется однобитовый флаг (prev_intra_pred_mode_flag), указывающий, равен ли CurrIntraPredMode=predCurrIntraPredMode. Установка отношения: prev_intra_pred_mode_flag=1 означает, что CurrIntraPredMode=predCurrIntraPredMode установлено. Иначе (prev_intra_pred_mode_flag=0) информация rem_intra_pred_mode декодируется из битового потока. Когда rem_intra_pred_mode меньше, чем predCurrIntraPredMode, в качестве результата сравнения между двумя значениями устанавливается CurrIntraPredMode=rem_intra_pred_mode. Иначе устанавливается CurrIntraPredMode=rem_intra_pred_mode+1 (этап S65).
Вышеупомянутая процедура получается в итоге следующим образом.
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
Decode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag== 1)
{
CurrIntraPredMode=predCurrIntraPredMode;
} else
{
Decode rem_intra_pred_mode; if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1; }
Ниже описана процедура декодирования компонента C1 со ссылками на фиг. 19. Сначала, как в случае компонента C0, параметры кодирования соседних блоков, таких как IntraPredModeA и IntraPredModeB, установлены согласно позиции блока X (этап S53).
Затем кандидат 1 значения предсказания, predCurrIntraPredMode1, для CurrIntraPredMode блока X определяется следующей формулой (этап S54).
predCurrIntraPredMode1=Min (IntraPredModeA, IntraPredModeB)
Если prev_intra_pred_mode_flag=1 установлено для компонента C0, этот predCurrIntraPredMode1 используется как predCurrIntraPredMode блока X компонента C1. Причина - та же самая, как описана для устройства кодирования.
С другой стороны, когда prev_intra_pred_mode_flag=0, то есть rem_intra_pred_mode декодируется для компонента C0 (этап S55), CurrIntraPredMode для компонента C0 определяется как кандидат 2 значения предсказания (этап S56). В частности, устанавливается predCurrIntraPredMode2=CurrIntraPredMode_C0. Причина для установки CurrIntraPredMode в качестве кандидата значения предсказания является также той же, что описана для устройства кодирования.
В качестве значения предсказания CurrIntraPredMode блока X компонента C1 любой из predCurrIntraPredMode1 и predCurrIntraPredMode2 в конечном счете определяется (этап S57). Выбор значения определяется посредством декодирования однобитового флага (pred_flag). Однако pred_flag декодируется, только когда CurrIntraPredMode идентичен значению предсказания. Когда CurrIntraPredMode не идентичен значению предсказания (rem_intra_pred_mode декодируется), predCurrIntraPredMode1 используется как значение предсказания.
После того как заданы значение предсказания 1 и 2, prev_intra_pred_mode_flag, pred_flag и rem_intra_pred_mode, CurrIntraPredMode декодируется в следующей процедуре (этап S66).
if(prev_intra_pred_mode_flag_C0=1)
{
predjflag=0; //
В этот момент pred_flag не включен в битовый поток
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
Decode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag =1)
{
CurrIntraPredMode=predCurrIntraPredMode;
} else
{
Decode rem_intra_pred_mode; if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
} } else
{
predCurrIntraPredMode1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
Decode prev_intra_pred_mode_flag; if(prev_intra_pred_mode_flag =1)
{ Decode pred_flag;
If(pred_flag=0)
predCurrIntraPredMode=predCurrIntraPredMode1; Else
predCurrIntraPredMode=predCurrIntraPredMode2;
CurrIntraPredMode=predCurrIntraPredMode;
} else
{
predCurrIntraPredMode=predCurrIntraPredMode 1;
Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
}
}
Ниже описана процедура декодирования компонента C2 со ссылками на фиг. 20. Сначала, как в случаях компонентов C0 и C1, параметры кодирования соседних блоков, такие как IntraPredModeA и IntraPredModeB, устанавливаются согласно позиции блока X (этап S59).
Затем кандидат 1 значения предсказания, predCurrIntraPredMode1, для CurrIntraPredMode блока X определяется следующей формулой (этап S60).
predCurrIntraPredMode 1=Min (IntraPredModeA, IntraPredModeB)
Если prev_intra_pred_mode_flag=1 установлен для обоих компонентов C0 и C1, этот predCurrIntraPredMode1 используется как predCurrIntraPredMode блока X компонента C2. Причина та же, как описана для устройства кодирования.
С другой стороны, когда prev_intra_pred_mode_flag=0, то есть rem_intra_pred_mode, декодируется для компонента C0 или C1 (этап S61), CurrIntraPredMode для компонента C0 или C1 определяется как кандидат 2 значения предсказания (этап S62).
А именно, процедура следующая:
If(prev_intra_pred_mode_flag_C0=0 && pred_intra_pred_mode_flag_C1 ==1)
predCurrIntraPredMode2=CurrIntraPredMode_C0;
else if(prev_intra_pred_mode_flag_C0 ==1 && pred_intra_pred_mode_flag_C1 == 0) predCurrIntraPredMode2=CurrIntraPredMode_C 1;
else
predCurrIntraPredMode2=CurrIntraPredMode_C1;
Основание для определения кандидата 2 значения предсказания то же, что описано для устройства кодирования.
В качестве значения предсказания CurrIntraPredMode блока X компонента C2 любой из predCurrIntraPredMode1 и predCurrIntraPredMode 2 в конечном счете определяется (этап S63). Это значение определяется посредством декодирования однобитового флага (pred_flag). Однако pred_flag декодируется, только когда CurrIntraPredMode идентичен значению предсказания. Иначе (когда rem_intra_pred_mode декодируется), predCurrIntraPredMode1 используется как значение предсказания.
После того как заданы кандидаты 1 и 2 значения предсказания, prev_intra_pred_mode_flag, pred_flag и rem_intra_pred_mode, CurrIntraPredMode декодируется в следующей процедуре (этап S71).
if(prev_intra_pred_mode_flag_C0 == 1 && prev_intra_pred_mode_flag_C1=1)
{
pred_flag=0; // В этот момент pred_flag не включен в битовый поток
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
Decode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag=1)
{ CurrIntraPredMode == predCurrIntraPredMode;
} else
{ Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode;
else
CurrIntraPredMode=rem_intra_pred_mode+1; }
} else
{
predCurrIntraPredMode1=Min(IntraPredModeA, IntraPredModeB);
if(prev_intra_pred_mode_flag_C0=0 && pred_intra_pred_mode_flag_C1=1)
predCurrIntraPredMode2=CurrIntraPredMode_C0;
else if(prev_intra_pred_mode_flag_C0 ==1 && pred_intra_pred_mode_flag_C1 == 0)
predCurrIntraPredMode2=CurrIntraPredMode_C1;
else
predCurrIntraPredMode2=CurrIntraPredMode_C1;
Decode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag =1)
{ Decode pred_flag;
If(pred_flag=0)
predCurrIntraPredMode=predCurrIntraPredMode1; Else
predCurrIntraPredMode=predCurrIntraPredMode2;
CurrIntraPredMode=predCurrIntraPredMode;
}
else
{
predCurrIntraPredMode=predCurrIntraPredMode1;
Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
} }
Процедура декодирования, описанная выше, может быть подобным образом определена для режима внутреннего 8×8 предсказания. Посредством декодирования режима внутреннего N×N предсказания в процедуре, как описана выше, корреляция между режимом предсказания, выбранным для одного компонента цвета, и режимом предсказания, выбранным для другого компонента цвета, может быть использована для уменьшения количества кодов режима предсказания непосредственно, таким образом декодируя битовый поток с улучшенной эффективностью кодирования.
Следует отметить, что pred_flag - информация, которая декодируется, только когда prev_intra_pred_mode_flag равен 1 в вышеупомянутой процедуре, но pred_flag может быть декодирован как информация, которая должна быть включена даже в случае, когда prev_intra_pred_mode_flag равен 0.
А именно, например, взяв компонент C1 в качестве примера, декодирование может также быть выполнено в следующей процедуре.
if(prev_intra_pred_mode_flag_C0=1)
{
predCurrIntraPredMode=Min(IntraPredModeA, IntraPredModeB);
Decode prev_intra_pred_mode_flag; if(prev_intra_pred_mode_flag=1)
{ CurrIntraPredMode=predCurrIntraPredMode;
} else
{ Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
}
} else
{
predCurrIntraPredMode 1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
Decode prev_intra_pred_mode_flag;
Decode pred_flag; If(pred_flag == 0)
predCurrIntraPredMode=predCurrIntraPredMode1; Else
predCurrIntraPredMode=predCurrIntraPredMode2;
if(prev_intra_pred_mode_flag =1)
{ CurrIntraPredMode == predCurrIntraPredMode;
} else
{ Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
} }
Эффекты способа являются такими, как описаны для процедуры кодирования передачи, выполненной в устройстве кодирования. В качестве дальнейшего изменения pred_flag может быть декодирован вне зависимости от того, декодируется ли rem_intra_pred_mode в режиме внутреннего предсказания блока той же самой позиции компонента C0. В этом случае режим внутреннего предсказания для компонента C0 всегда используется как кандидат значения предсказания.
А именно, процедура следующая:
predCurrIntraPredMode1=Min(IntraPredModeA, IntraPredModeB);
predCurrIntraPredMode2=CurrIntraPredMode_C0;
Decode prev_intra_pred_mode_flag;
Decode pred_flag;
if(pred_flag=0)
predCurrIntraPredMode=predCurrIntraPredMode1; Else
predCurrIntraPredMode=predCurrIntraPredMode2;
if(prev_intra_pred_mode_flag=1)
{ CurrIntraPredMode=predCurrIntraPredMode;
} else
{ Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1;
}
Следует отметить, что, как описано для устройства кодирования, pred_flag может быть установлен для каждого макроблока или последовательности вместо чем для каждого блока 4×4, включенного в битовый поток. Когда pred_flag устанавливается для каждого макроблока, использование кандидата 1 значения предсказания или кандидата 2 значения предсказания является общим для всех блоков 4×4 в макроблоке. Поэтому служебная информация pred_flag, которая должна быть декодирована, также уменьшается. Кроме того, pred_flag может быть установлен для каждой последовательности, чтобы определить использование кандидата 1 или 2 значения предсказания согласно определению входного цветового пространства. В этом случае, так как pred_flag больше не должен быть передан для каждого макроблока, служебная информация может быть дополнительно сокращена.
Четвертый вариант осуществления
Битовый поток в форме, иллюстрируемой на Фиг. 16, был описан во втором варианте осуществления настоящего изобретения. Второй вариант осуществления изобретения описывает, что, когда режим внутреннего кодирования указывает «внутреннее N×N предсказание», соответствующие режимы внутреннего предсказания компонентов C0, C1 и C2 цвета распознаются как режим внутреннего 4×4 предсказания или режим внутреннего 8×8 предсказания согласно значениям флагов 0-2 (32a-32c) идентификации размера блока преобразования. В четвертом варианте осуществления настоящего изобретения последовательность битового потока изменяется, чтобы передать флаги 1 и 2 (36a и 36b) индикации режима внутреннего предсказания на уровне последовательности для компонентов C1 и C2, как иллюстрируется на Фиг. 24. Флаг индикации режима внутреннего предсказания действителен, когда режим внутреннего N×N предсказания выбирается как режим внутреннего кодирования, и флаг идентификации размера блока преобразования указывает блок 4×4 преобразования, а именно в режиме внутреннего 4×4 предсказания. Согласно значению флага индикации режима внутреннего предсказания переключение может быть выполнено между следующими двумя состояниями.
Состояние 1: для компонента C1 или C2 режим внутреннего 4×4 предсказания, который должен использоваться, индивидуально выбирается из девяти режимов, проиллюстрированных на Фиг. 3, для кодирования.
Состояние 2: для компонента C1 или C2 режим внутреннего 4×4 предсказания, который должен использоваться, ограничивается DC предсказанием, а именно intra4×4_pred_mode=2 на Фиг. 3, чтобы не кодировать информацию режима внутреннего предсказания.
Например, когда кодирование выполняется в цветовом пространстве, как определено Y, Cb и Cr, блок 4×4 соответствует чрезвычайно малой области изображения в случае видеоизображения с высоким разрешением, например, для телевидения с высоким разрешением (HDTV) или на более высоком уровне разрешения. В этом случае кодирование иногда более эффективно выполняется посредством фиксирования самой информации режима предсказания в одну, без передачи информации режима предсказания, соответствующей служебной информации, чем посредством обеспечения девяти опций режима предсказания, в частности для компонента, который не поддерживает структуру текстуры изображения, такого как компоненты Cb и Cr. Такая последовательность битового потока разрешает оптимальное кодирование согласно свойствам входного цветового пространства или характеристикам видеоизображения.
Устройство декодирования, которое принимает битовый поток в форме, проиллюстрированной на Фиг. 24, конфигурируется так, чтобы декодировать флаг индикации режима внутреннего предсказания (36a или 36b) в модуле 25 декодирования с переменной длиной и затем идентифицировать, был ли битовый поток закодирован в состоянии 1 или 2 в зависимости от значения флага. В зависимости от идентифицированного состояния для компонента C1 или C2 определяется, декодируется ли режим внутреннего 4×4 предсказания из битового потока для использования или постоянно используется DC предсказание, то есть intra4×4_pred_mode=2 на Фиг. 3.
Кроме того, в четвертом варианте осуществления настоящего изобретения режим внутреннего предсказания, который должен использоваться, ограничивается следующим образом: intra4×4_pred_mode=2 для компонента C1 или C2 в состоянии 2. Однако, пока количество информации режима предсказания установлено в единицу, внутреннее предсказание может быть установлено в другой режим предсказания в состоянии 2. Кроме того, состояние 2 может быть определено, чтобы использовать режим внутреннего 4×4 предсказания компонента C0 для C1 или компонента C2. Так как режим внутреннего 4×4 предсказания не должен быть закодирован для компонента C1 или C2 даже в этом случае, служебные биты могут быть сокращены.
Пятый вариант осуществления
Пятый вариант осуществления согласно настоящему изобретению описывает другой пример конфигураций устройства кодирования, иллюстрированного на Фиг. 11, и устройства декодирования, иллюстрированного на Фиг. 12. Как в случаях других вариантов осуществления, описанных выше, устройство кодирования и устройство декодирования в пятом варианте осуществления изобретения снабжены особенностями, специфическими для настоящего изобретения, на основании способа кодирования, используемого в стандарте MPEG-4 AVC (ISO/IEC 14496-10)/ITU-T H.264, соответствующем непатентному документу 1, процитированному выше. Устройство кодирования видео в пятом варианте осуществления изобретения отличается от устройства кодирования на Фиг. 11, описанном во втором и третьем вариантах осуществления изобретения, только работой модуля 11 кодирования с переменной длиной кода. Устройство декодирования видео в пятом варианте осуществления изобретения отличается от устройства декодирования на Фиг. 12, описанном во втором и третьем вариантах осуществления изобретения, только работой модуля 25 декодирования с переменной длиной кода. Остальная работа - такая же, как во втором и третьем вариантах осуществления изобретения, и только различия с вышеупомянутыми вариантами осуществления описаны ниже.
1. Процедура кодирования информации режима внутреннего предсказания в устройстве кодирования
"
В устройстве кодирования в третьем варианте осуществления настоящего изобретения конкретный способ кодирования режима внутреннего N×N предсказания в модуле 11 кодирования с переменной длиной кода был описан для битового потока в форме, проиллюстрированной на Фиг. 16. В пятом варианте осуществления настоящего изобретения описан другой конкретный способ процедуры кодирования. Пятый вариант осуществления изобретения характеризуется тем, что обеспечивается следующий адаптивный способ предсказания. Этот способ сосредотачивает внимание на значении режима внутреннего N×N предсказания, который отражает структуру текстуры как шаблона изображения, чтобы выполнить адаптивное предсказание для соседних пиксельных областей одного и того же компонента цвета. Следующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. В пятом варианте осуществления изобретения информация режима внутреннего N×N предсказания каждого из компонентов цвета C0, C1 и C2 кодируется независимо и способ кодирования для компонента цвета C0 аналогично применяется к компонентам цвета C1 и C2. Поэтому для упрощения описания описан способ кодирования только для компонента цвета C0. Значение флага 33 идентификации совместного использования режима внутреннего кодирования устанавливается в "использовать общий режим внутреннего кодирования для C0, C1 и C2, и режим внутреннего кодирования является режимом внутреннего N×N предсказания, и флаги 0-2 (32a-32c) идентификации размера блока преобразования являются блоком 4×4. В этом случае все режимы 0-2 (35a к 35c) внутреннего предсказания являются режимом внутреннего 4×4 предсказания. В качестве чертежей для иллюстрации процедуры кодирования информации режима внутреннего N×N предсказания компонента C0 используется Фиг. 18. На Фиг. 18 текущий макроблок, который должен быть закодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B. Фиг. 25 - последовательность операций процедуры кодирования.
В третьем варианте осуществления настоящего изобретения меньшее значение IntraPredModeA и IntraPredModeB однозначно назначается как значение предсказания, predCurrIntraPredMode, для режима внутреннего 4×4 предсказания, CurrIntraPredMode, который назначается каждому блоку X 4×4 на Фиг. 18. Этот способ используется в текущем стандарте AVC/H.264. Согласно этому способу, когда значение режима внутреннего N×N предсказания увеличивается, способ генерирования изображения работает в сложном режиме с интерполяцией пикселей с учетом направленности шаблона изображения. Это осложнение следует из факта, что малое значение назначается режиму, который высоко совместим с общим шаблоном изображения. Когда скорость передачи в битах низка, на выбор режима более сильно влияет количество кодов режима предсказания, чем увеличенное искажение. Поэтому этот способ все еще выгоден ввиду общей эффективности кодирования. Однако, когда скорость передачи в битах относительно высока, на выбор режима более сильно влияет искажение, чем увеличение количества кодов режима предсказания. Поэтому не обязательно, что меньшее значение IntraPredModeA и IntraPredModeB всегда оптимально. На основании наблюдения, как описано выше, в пятом варианте осуществления настоящего изобретения установка значения предсказания адаптируется согласно состояниям IntraPredModeA и IntraPredModeB, как описано ниже, чтобы улучшить точность значения предсказания. В этой процедуре predCurrIntraPredMode определяется на основании состояний IntraPredModeA и IntraPredModeB в качестве значения, обеспечивающего лучшую оценку CurrIntraPredMode в терминах шаблона изображения (этапы S73, S74 и S75).
(1) Когда и IntraPredModeA и IntraPredModeB находятся в диапазоне от 0 до 2, MIN (IntraPredModeA, IntraPredModeB) определяется как predCurrIntraPredMode.
(2) Когда любой из IntraPredModeA и IntraPredModeB равен 3 или больше и направления предсказания IntraPredModeA и IntraPredModeB полностью отличаются от друг друга (например, IntraPredModeA равно 3, и IntraPredModeB равно 4), DC предсказание (intra4×4_pred_mode=2) определяется как predCurrIntraPredMode.
(3) Когда любой из IntraPredModeA и IntraPredModeB равен 3 или больше и направления предсказания IntraPredModeA и IntraPredModeB одинаковы (например, IntraPredModeA равно 3, и IntraPredModeB равно 7 (любое из направлений предсказания является предсказанием от верха справа)), режим предсказания интерполяции пикселя (7 в вышеупомянутом примере) определяется как predCurrIntraPredMode.
Как в третьем варианте осуществления настоящего изобретения, предварительный процесс для кодирования IntraPredModeA и IntraPredModeB выполняется заранее (этапы S50, S53 и S59). В результате predCurrIntraPredMode однозначно получается из значений IntraPredModeA и IntraPredModeB. Фиг. 26 иллюстрирует таблицы, показывающие правило установки значения предсказания. На Фиг. 26 заштрихованная область соответствует случаю, который не следует общему правилу MIN(IntraPredModeA, IntraPredModeB). В этом случае более точное значение предсказания определяется на основании непрерывности шаблонов изображения. Таблица для Класса 0 используется в процедуре (1), описанной выше, тогда как таблица для Класса 1 используется в процедурах (2) и (3).
Как результат вышеупомянутого процесса после определения predCurrIntraPredMode оставшаяся процедура кодирования для компонента цвета C0, описанного в третьем варианте осуществления изобретения, выполняется, чтобы завершить кодирование (этапы S52, S58, и S64).
А именно, процедура кодирования следующая:
if(CurrIntraPredMode == predCurrIntraPredMode)
{
prev_intra_pred_mode_flag=1;
} else
{
prev_intra_pred_mode_flag=0;
if(CurrIntraPredMode < predCurrIntraPredMode)
rem_intra_pred_mode=CurrIntraPredMode; else
rem_intra_pred_mode=CurrIntraPredMode - 1;
}
Encode prev_intra_pred_mode_flag;
If(prev_intra_pred_mode_flag == 0) Encode rem_intra_pred_mode;
Вышеупомянутая процедура кодирования может быть аналогично определена для режима внутреннего 8×8 предсказания. Посредством кодирования режима внутреннего N×N предсказания в такой процедуре корреляция между режимами предсказания в соседних областях пикселей одного и того же компонента цвета может быть более эффективно использована для уменьшения количества кодов самого режима предсказания, таким образом улучшая эффективность кодирования.
2. Процедура декодирования информации режима внутреннего предсказания в устройстве декодирования
В устройстве декодирования в третьем варианте осуществления настоящего изобретения одна из конкретных процедур декодирования информации режима внутреннего N×N предсказания в модуле 25 декодирования с переменной длиной кода была описана для битового потока в форме, проиллюстрированной на Фиг. 16. В пятом варианте осуществления изобретения описан другой конкретный способ процедуры декодирования. Пятый вариант осуществления изобретения особенно характерен следующей процедурой декодирования. Процедура декодирования сосредотачивает внимание на значении режима внутреннего N×N предсказания, который отражает структуру текстуры как шаблона изображения, чтобы декодировать битовый поток, который закодирован в соответствии с адаптивным предсказанием в соседних областях пикселей одного и того же компонента цвета.
Нижеследующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. Для упрощения описания значение флага 33 идентификации совместного использования режима внутреннего кодирования в битовом потоке устанавливается в «использовать общий режим внутреннего кодирования для C0, C1 и C2». Кроме того, режим внутреннего N×N предсказания обозначается как режим внутреннего кодирования, и размер блока 4×4 обозначается как флаги 0-2 (32a-32c) идентификации размера блока преобразования. В этом случае все режимы 0-2 (35a-35c) внутреннего предсказания являются режимом внутреннего 4×4 предсказания. Как в устройстве кодирования, в устройстве декодирования только компонент C0 должен быть описан на основании соотношений, проиллюстрированных на Фиг. 18 (компоненты C1 и C2 декодируются такой же процедурой независимо от компонента C0). В устройстве декодирования текущий макроблок, который должен быть декодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B.
В третьем варианте осуществления настоящего изобретения, как описано для устройства кодирования, меньшее значение IntraPredModeA и IntraPredModeB однозначно назначается как значение предсказания, predCurrIntraPredMode, для режима внутреннего 4×4 предсказания, CurrIntraPredMode, который назначается каждому блоку X 4×4 на Фиг. 18. С другой стороны, в устройстве декодирования согласно пятому варианту осуществления изобретения predCurrIntraPredMode определяется посредством использования таблиц, проиллюстрированных на Фиг. 26, точно такой же процедурой, как в процедуре кодирования. Так как IntraPredModeA и IntraPredModeB были уже декодированы и поэтому известны, возможно выполнить точно такой же процесс, как в процедуре кодирования.
Последующая процедура эквивалентна процедуре декодирования компонента C0, описанного в третьем варианте осуществления настоящего изобретения. Процедура получается в итоге следующим образом.
Decode prev_intra_pred_mode_flag;
if(prev_intra_pred_mode_flag=1)
{
CurrIntraPredMode=predCurrIntraPredMode;
}
else
{
Decode rem_intra_pred_mode;
if(rem_intra_pred_mode < predCurrIntraPredMode)
CurrIntraPredMode=rem_intra_pred_mode; else
CurrIntraPredMode=rem_intra_pred_mode+1; }
Вышеупомянутая процедура декодирования может быть аналогично определена для режима внутреннего 8×8 предсказания. Посредством декодирования режима внутреннего N×N предсказания в процедуре, как описано выше, корреляция между режимами предсказания в соседних областях пиксели одного и того же компонента цвета может быть более эффективно использована для декодирования закодированного битового потока с уменьшенным объемом кодов самого режима предсказания.
Таблицы на Фиг. 26 используются фиксированным способом, чтобы определить predCurrIntraPredMode для выполнения кодирования и декодирования в вышеупомянутом примере, тогда как кодирование и декодирование могут быть выполнены посредством использования значений таблиц на Фиг. 26 в качестве начальных значений, чтобы последовательно обновить режим внутреннего предсказания, который, наиболее вероятно, будет иметь место для состояний IntraPredModeA и IntraPredModeB, как predCurrIntraPredMode. Например, для комбинации "Класс=0, IntraPredModeA=0, IntraPredModeB=0 и predCurrIntraPredMode=0" на Фиг. 26, predCurrIntraPredMode всегда устанавливается в 0, когда IntraPredModeA=0 и IntraPredModeB=0 в вышеупомянутом варианте осуществления. Однако, так как сам видеосигнал является нестационарным сигналом, нет никакой гарантии, что эта комбинация является лучшей для всех видов контента видеоизображения. В худшем случае даже возможно, что соответствующий predCurrIntraPredMode не находится как значение предсказания почти во всех случаях по всему видеоизображению. Поэтому, например, подсчитывается частота вхождений CurrIntraPredMode в случае IntraPredModeA=0 и IntraPredModeB=0. Каждый раз, когда кодирование или декодирование CurrIntraPredMode заканчиваются, predCurrIntraPredMode обновляется режимом предсказания, который наиболее часто происходит для состояний IntraPredModeA и IntraPredModeB. С такой конфигурацией значение предсказания, используемое для кодирования и декодирования CurrIntraPredMode может быть установлено равным оптимальному значению ввиду контентов видеоизображения.
Шестой вариант осуществления
Шестой вариант осуществления согласно настоящему изобретению описывает другой пример конфигураций устройства кодирования, иллюстрированного на Фиг. 11, и устройства декодирования, иллюстрированного на Фиг. 12. Как в других вариантах осуществления, описанных выше, устройство кодирования и устройство декодирования в шестом варианте осуществления изобретения снабжены характеристиками, специфическими для настоящего изобретения, на основании способа кодирования, используемого в непатентном документе 1, процитированном выше. Устройство кодирования видео в шестом варианте осуществления изобретения отличается от устройства кодирования, иллюстрированного на Фиг. 11, во втором, третьем и пятом вариантах осуществления изобретения только работой модуля 11 кодирования с переменной длиной кода. Устройство декодирования видео в шестом варианте осуществления изобретения отличается от устройства декодирования, иллюстрированного на Фиг. 12, во втором, третьем и пятом вариантах осуществления изобретения, только работой модуля 25 декодирования с переменной длиной кода. Оставшиеся операции - такие же, как во втором, третьем и пятом вариантах осуществления изобретения, и только различия с вышеупомянутыми вариантами осуществления описаны ниже.
1. Процедура кодирования информации режима внутреннего предсказания в устройстве кодирования
В устройстве кодирования в третьем или пятом варианте осуществления настоящего изобретения конкретный способ кодирования информации режима внутреннего N×N предсказания был описан для битового потока в форме, проиллюстрированной на Фиг. 16. В шестом варианте осуществления описан другой конкретный способ процедуры кодирования. Этот шестой вариант осуществления, в частности, отличается тем, что обеспечивается следующий адаптивный способ арифметического кодирования. Этот способ сосредотачивает внимание на значении режима внутреннего N×N предсказания, который отражает структуру текстуры как шаблона изображения, чтобы выполнить адаптивное арифметическое кодирование для соседних пиксельных областей одного и того же компонента цвета. Следующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. В шестом варианте осуществления информация режима внутреннего N×N предсказания кодируется независимо от каждого из компонентов цвета, C0, C1 и C2, и способ кодирования для компонента цвета C0 применяется аналогично к компонентам цвета C1 и C2. Поэтому для упрощения описания только способ кодирования для компонента цвета C0 здесь описан. Значение флага 33 идентификации совместного использования режима внутреннего кодирования устанавливается в «использовать общий режим внутреннего кодирования для C0, C1 и C2», и режим внутреннего кодирования устанавливается в режим внутреннего N×N предсказания, и флаги 0-2 (32a-32c) идентификации размера блока преобразования указывают блок 4×4. В этом случае режимы 0-2 (35a-35c) внутреннего предсказания все являются режимом внутреннего 4×4 предсказания. В качестве чертежей для иллюстрации процедуры кодирования информации режима внутреннего N×N предсказания компонента C0 используется Фиг. 18. На Фиг. 18 текущий макроблок, который должен быть закодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B. Фиг. 27 - последовательность операций процедуры кодирования.
В третьем и пятом вариантах осуществления согласно настоящему изобретению меньшее значение IntraPredModeA и IntraPredModeB однозначно назначается как значение предсказания, predCurrIntraPredMode, для режима внутреннего 4×4 предсказания, CurrIntraPredMode, который назначается каждому блоку 4×4 в X на Фиг. 18. Согласно этому способу, когда значение предсказания и CurrIntraPredMode равны друг другу, prev_intra_pred_mode_flag устанавливается в 1 и кодирование режима внутреннего 4×4 предсказания для блока X завершается. С другой стороны, когда значение предсказания и CurrIntraPredMode отличаются от друг друга, rem_intra_pred_mode кодируется для передачи. В шестом варианте осуществления состояния IntraPredModeA и IntraPredModeB используются для непосредственного арифметического кодирования CurrIntraPredMode. Для этого непосредственного арифметического кодирования используется процедура кодирования согласно основанному на контексте адаптивному двоичному арифметическому кодированию, которое используется в стандарте AVC/H.264.
Сначала CurrIntraPredMode, который должен быть закодирован, переводится в двоичный вид (бинаризируется) согласно форме, проиллюстрированной на Фиг. 28 (этап S76). Первый элемент дискретизации в двоичной последовательности служит кодом для определения, указывает ли CurrIntraPredMode вертикальное предсказание или горизонтальное предсказание (см. Фиг. 3). DC предсказание (intra4×4_pred_mode=2) классифицируется как горизонтальное предсказание в этом примере, но DC предсказание может также быть классифицировано как вертикальное предсказание. Второй элемент дискретизации обеспечивает оконечный бит для значения режима предсказания, которое, как предполагается, наиболее часто появляется в каждом вертикальном предсказании и горизонтальном предсказании. Третий и последующие элементы дискретизации устанавливаются, чтобы последовательно завершить оставшиеся значения режима предсказания в порядке более высоких частот появления (желательно, чтобы второй и последующие элементы дискретизации в двоичной последовательности на Фиг. 28 были установлены согласно вероятности вхождения символа в реальном процессе кодирования данных изображения).
Арифметическое кодирование выполняется, в то время как (0,1) таблица вероятности вхождения, которая должна использоваться, последовательно выбирается для каждого из элементов дискретизации в двоичной последовательности. Для кодирования первого элемента дискретизации контекст, используемый для арифметического кодирования, определяется следующим образом (этап S78).
А
Контекст А(С): флаг, intra_pred_direction_flag, который является двоичным представлением, указывающим, является ли режим внутреннего предсказания вертикальным предсказанием или горизонтальным предсказанием, определяется для IntraPredModeA и IntraPredModeB, и следующие четыре состояния используются как значения контекста.
А
С=(intra_pred_direction_flag для IntraPredModeA == 1)+(intra_pred_direction_flag для IntraPredModeB == 1),
А
А
где intra_pred_direction_flag классифицирован как вертикальное предсказание (=0), когда, например, intra4×4_pred_mode равно 0, 3, 5 или 7 на Фиг. 3, и классифицирован как горизонтальное предсказание (=1), когда intra4×4_pred_mode равно 1, 2, 4, 6 или 8. Для каждого из четырех состояний С условная вероятность CurrIntraPredMode на основании состояний IntraPredModeA и IntraPredModeB получается заранее. Затем таблица вероятности начального вхождения (0,1), определенная на основании полученной условной вероятности, назначается каждому из четырех состояний. Посредством конфигурирования контекста этим способом получается лучшая оценка условной вероятности вхождения первого элемента дискретизации, чтобы повысить эффективность арифметического кодирования. Таблица вероятности вхождения для первого элемента дискретизации выбирается на основании значения С, чтобы выполнить арифметическое кодирование. Затем таблица вероятности вхождения обновляется закодированным значением (этап S79).
Для второго и последующих элементов дискретизации таблица вероятности начального вхождения (0,1), определенная на основании вероятности вхождения каждого значения режима предсказания, назначается заранее (этап S80). Затем, что касается первого элемента дискретизации, выполняются двоичное арифметическое кодирование и обновление таблицы вероятности вхождения (этап S81).
Вышеупомянутая процедура кодирования может быть определена таким же образом для режима внутреннего 8×8 предсказания. Посредством кодирования режима внутреннего N×N предсказания в процедуре, как описано выше, адаптивное арифметическое кодирование может использоваться для кодирования информации режима предсказания посредством использования преимуществ корреляции между режимами предсказания в соседних пиксельных областях одного и того же компонента цвета, таким образом улучшая эффективность кодирования.
2. Процедура декодирования информации режима внутреннего предсказания в устройстве декодирования
В устройстве декодирования в третьем и пятом вариантах осуществления согласно настоящему изобретению одна из конкретных процедур декодирования информации режима внутреннего N×N предсказания в модуле 25 декодирования с переменной длиной кода была описана для битового потока в форме, проиллюстрированной на Фиг. 16. В шестом варианте осуществления изобретения описан другой конкретный способ процедуры декодирования. Шестой вариант осуществления изобретения, в частности, отличается следующей процедурой декодирования. Процедура декодирования сосредотачивает внимание на значении режима внутреннего N×N предсказания, которое отражает структуру текстуры как шаблона изображения, чтобы декодировать битовый поток, который закодирован адаптивным арифметическим кодированием в соседних пиксельных областях одного и того же компонента цвета.
Нижеследующее описание основано на последовательности битового потока в форме, проиллюстрированной на Фиг. 16. Для упрощения описания значение флага 33 идентификации совместного использования режима внутреннего кодирования в битовом потоке устанавливается в «использовать общий режим внутреннего кодирования для C0, C1 и C2». Кроме того, режим внутреннего N×N предсказания обозначается как режим внутреннего кодирования, и размер блока 4×4 указывается флагами 0-2 (32a-32c) идентификации размера блока преобразования. В этом случае режимы 0-2 (35a-35c) внутреннего предсказания все являются режимом внутреннего 4×4 предсказания. Как в случае устройства кодирования, в устройстве декодирования процедура декодирования описана только для компонента C0 на основании отношений, проиллюстрированных на Фиг. 18 (компоненты C1 и C2 декодируются в такой же процедуре независимо от компонента C0). В устройстве декодирования текущий макроблок, который должен быть декодирован, обозначается X. Макроблок слева макроблока X обозначается A, тогда как макроблок выше макроблока X обозначается B.
В третьем и пятом вариантах осуществления согласно настоящему изобретению, как описано для устройства кодирования, меньшее значение IntraPredModeA и IntraPredModeB однозначно назначается как значение предсказания, predCurrIntraPredMode, для режима внутреннего 4×4 предсказания, CurrIntraPredMode, которое назначается каждому блоку 4×4 в X на Фиг. 18. Затем prev_intra_pred_mode_flag декодируется. Когда значение декодированного prev_intra_pred_mode_flag равно 1, predCurrIntraPredMode используется как CurrIntraPredMode. С другой стороны, когда prev_intra_pred_mode_flag равно 0, rem_intra_pred_mode декодируется, чтобы восстановить режим внутреннего 4×4 предсказания блока X. С другой стороны, в шестом варианте осуществления настоящего изобретения состояния IntraPredModeA и IntraPredModeB используются для прямого (непосредственного) арифметического декодирования CurrIntraPredMode. Для прямого арифметического декодирования используется процедура декодирования согласно основанному на контексте адаптивному двоичному арифметическому декодированию, которое используется в стандарте AVC/H.264.
Предполагается, что CurrIntraPredMode, который должен быть декодирован, закодирован как двоичная последовательность согласно форме, проиллюстрированной на Фиг. 28. Двоичная последовательность последовательно подвергается двоичному арифметическому декодированию с ее левого конца. Как описано в процедуре кодирования в шестом варианте осуществления настоящего изобретения, первый элемент дискретизации в двоичной последовательности является кодом для того, чтобы классифицировать CurrIntraPredMode как вертикальное предсказание или горизонтальное предсказание (см. Фиг. 3). Второй и последующие элементы дискретизации имеют структуры кода, чтобы последовательно завершить значения режима предсказания в порядке согласно более высокой частоте появления. Причина такой структуры кода описывается в процедуре кодирования.
А
А
В процессе декодирования для того, чтобы декодировать первый элемент дискретизации, определяется тот же самый С, как элемент дискретизации из контекста, используемого в процедуре кодирования. Таблица вероятности вхождения для первого элемента дискретизации выбирается на основании значении С, чтобы выполнить арифметическое декодирование, таким образом восстанавливая первый элемент дискретизации. Кроме того, таблица вероятности вхождения обновляется декодированным значением.
Для второго и последующих элементов дискретизации таблица вероятности начального вхождения (0, 1), определенная на основании вероятности вхождения каждого значения режима предсказания, назначается заранее. Затем, что касается первого элемента дискретизации, выполняются двоичное арифметическое декодирование и обновление таблицы вероятности вхождения. Так как двоичная последовательность на Фиг. 28 конфигурируется, чтобы разрешить каждому из значений режима предсказания быть однозначно определенным, CurrIntraPredMode последовательно декодируется, после того как заранее определенное количество элементов дискретизации восстановлены.
Вышеупомянутая процедура декодирования может быть аналогично определена для режима внутреннего 8×8 предсказания. Посредством декодирования режима внутреннего N×N предсказания в процедуре, как описано выше, закодированный битовый поток может быть декодирован с объемом кодов режима предсказания, непосредственно уменьшаемым посредством арифметического кодирования, используя преимущество корреляции между режимами предсказания в соседних пиксельных областях одного и того же самого компонента цвета.
В вышеупомянутом примере возможны другие разновидности таблицы, иллюстрируемой на Фиг. 28. Например, возможен способ конфигурирования двоичной последовательности, как иллюстрируется на Фиг. 29. Согласно этому способу следующий контекст B используется для первого элемента дискретизации.
B
Контекст B(C): флаг, intra_dc_pred_flag, который является двоичным представлением, указывающим, является ли режим внутреннего предсказания DC предсказанием или нет, определяется для IntraPredModeA и IntraPredModeB, и следующие четыре состояния используются как значения контекста.
B
B
А
C=(intra_dc_pred_flag для IntraPredModeA=1)+(intra_dc_pred_flag для IntraPredModeB=1), где intra_dc_pred_flag устанавливается в 1, когда intra4×4_pred_mode равен 2 на Фиг. 3, и устанавливается в 0, когда intra4×4_pred_mode - любое другое значение. Для каждого из четырех состояний C условная вероятность CurrIntraPredMode в предположении состояний IntraPredModeA и IntraPredModeB получается заранее. Затем таблица вероятности начального вхождения (0,1) для первого элемента дискретизации, определенного на основании полученной условной вероятности, назначается каждому из четырех состояний. На Фиг. 29, когда CurrIntraPredMode есть DC предсказание, первому элементу дискретизации назначают значение 0. Когда CurrIntraPredMode не является DC предсказанием, первому элементу дискретизации назначают значение 1. Для второго элемента дискретизации используется вышеупомянутый контекст А(С). Посредством конфигурирования контекста этим способом может быть получена лучшая оценка условной вероятности вхождения для любого из первого элемента дискретизации и второго элемента дискретизации, чтобы повысить эффективность арифметического кодирования.
Седьмой вариант осуществления
В седьмом варианте осуществления настоящего изобретения описано устройство кодирования, которое выполняет кодирование, используя межкадровое предсказание в единицах прямоугольных областей (макроблоков), каждый будучи составленным из 16×16 пикселей, полученных посредством одинакового разделения видеокадра, введенного в формате 4:4:4, и устройство декодирования, соответствующее этому устройству кодирования. Устройство кодирования и устройство декодирования в седьмом варианте осуществления изобретения обеспечиваются характеристиками, специфическими для настоящего изобретения, на основании способа кодирования, используемого в стандарте MPEG-4 AVC (ISO/IEC 14496-10)/ITU-T Н.264 (в дальнейшем упоминаемого просто как AVC).
Фиг. 30 иллюстрирует конфигурацию устройства кодирования видео в седьмом варианте осуществления изобретения, и Фиг. 31 иллюстрирует устройство декодирования видео в седьмом варианте осуществления изобретения. На Фиг. 31 компоненты, обозначенные такими же ссылочными позициями, как таковые из устройства кодирования, иллюстрируемого на Фиг. 30, являются одинаковыми компонентами.
В дальнейшем работа всего устройства кодирования и устройства декодирования в седьмом варианте осуществления и процесс определения режима внешнего предсказания и процесс прогнозирующего декодирования с компенсацией движения, которые являются конкретными операциями согласно седьмому варианту осуществления, описаны на основании Фиг. 30 и 31.
1. Обзор работы устройства кодирования
В устройстве кодирования, проиллюстрированном на Фиг. 30, каждый видеокадр вводится в формате 4:4:4. Кроме того, каждый из трех компонентов цвета делится и собираются в макроблок, имеющий одинаковый размер, который должен быть введен в устройство кодирования в качестве входного видеосигнала 1.
Сначала в модуле 102 предсказания с компенсацией движения однокадровое опорное изображение выбирается из опорных данных изображения предсказания с компенсацией движения для одного кадра или более, который хранится в блоках памяти 16, чтобы выполнить процесс предсказания с компенсацией движения в единицах макроблоков для каждого из компонентов цвета. Три блока памяти готовятся для соответствующих компонентов цвета (количество блоков памяти описывается как три в этом варианте осуществления, но количество блоков памяти может быть соответственно изменено согласно проекту). Семь размеров блока подготавливаются для предсказания с компенсацией движения. Сначала для каждого макроблока любой из размеров 16×16, 16×8, 8×16 и 8×8 может быть выбран, как иллюстрируется на Фиг. 32A-32H. Далее, в случае выбора размера 8×8 любой из размеров 8×8, 8×4, 4×8 и 4×4 может быть выбран для каждого из блоков 8×8, как иллюстрируется на Фиг. 32E-32H. В качестве информации выбранного размера информация размера для каждого макроблока выводится как тип макроблока, тогда как информация размера для каждого блока 8×8 выводится как тип субмакроблока. Идентификационный номер и информация вектора движения выбранного опорного изображения выводятся для каждого блока.
Устройство кодирования видео в седьмом варианте осуществления настоящего изобретения характеризуется тем, что способ предсказания с компенсацией движения переключается для каждого из трех компонентов цвета на основании флага 123 идентификации совместного использования режима внешнего предсказания. Это отношение описано подробно в разделе 2 ниже.
Модуль 102 предсказания с компенсацией движения выполняет процесс предсказания с компенсацией движения для всех размеров блока или размеров субблока, проиллюстрированных на Фиг. 32A - 32H, всех векторов 137 движения в пределах заранее определенного поискового диапазона и одного или более выбираемых опорных изображений, чтобы получить разностный сигнал 4 предсказания из векторов 137 движения и одного опорного изображения в вычитающем устройстве 3. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования. Затем посредством процесса предсказания, выполняемого в модуле 102 предсказания с компенсацией движения, выводятся тип макроблока/тип субмакроблока 106, вектор 137 движения и идентификационный номер опорного изображения, которые могут обеспечить оптимальную эффективность предсказания для макроблока, который должен быть предсказан. Для выбора типа макроблока/типа субмакроблока 106, коэффициент взвешивания 20 для каждого типа, определенного посредством определения модулем 19 управления кодированием, учитывается в некоторых случаях. Разностный сигнал 4 предсказания, который получается в соответствии с предсказанием с компенсацией движения, основанным на выбранном типе макроблока/субмакроблока, векторе 137 движения и опорном изображении, выводится к модулю 8 ортогонального преобразования. Модуль 8 ортогонального преобразования преобразовывает входной разностный сигнал 4 предсказания в коэффициент ортогонального преобразования, чтобы вывести полученный коэффициент ортогонального преобразования к модулю 9 квантования. Модуль 9 квантования квантует введенный коэффициент ортогонального преобразования на основании параметра 21 квантования, определенного модулем 19 управления кодированием, чтобы вывести результат квантования в качестве квантованного коэффициента преобразования 10 к модулю 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования статистически кодируется средством, таким как кодирование Хаффмана или арифметическое кодирование, в модуле 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования проходит через модуль 12 обратного квантования и модуль 13 обратного ортогонального преобразования для восстановления до локального декодированного разностного сигнала 14 предсказания. Затем локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным на основании выбранного типа макроблока/типа субмакроблока 106, вектора 137 движения и опорного изображения, в сумматоре 18, чтобы сгенерировать локальное декодированное изображение 15. Локальное декодированное изображение 15 сохраняется в блоках памяти 16, чтобы использоваться для последующего процесса предсказания с компенсацией движения. Кроме того, флаг, указывающий, должен ли фильтр удаления блочности быть применен к макроблоку, также вводится в модуль 11 кодирования с переменной длиной кода (работа фильтра удаления блочности не требуется для процесса кодирования, так как данные пиксели до применения фильтра удаления блочности сохраняются в блоках памяти 16 в процессе предсказания, выполняемом в модуле 102 предсказания с компенсацией движения, однако в устройстве декодирования фильтр удаления блочности применяется по команде флага 24 управления фильтром удаления блочности, чтобы получить окончательное декодированное изображение).
Флаг 123 идентификации совместного использования режима внешнего предсказания, квантованный коэффициент 10 преобразования, тип макроблока/тип субмакроблока 106, вектор 137 движения, идентификационный номер опорного изображения и параметр 21 квантования, которые подаются на модуль 11 кодирования с переменной длиной кода, упорядочиваются и принимают форму битового потока согласно заранее определенному правилу (синтаксическому), который должен быть выведен в буфер 17 передачи. Буфер 17 передачи сглаживает битовый поток согласно диапазону тракта передачи, к которому устройство кодирования подсоединено, или скорости считывания носителя записи, чтобы вывести битовый поток как видеопоток 22. Буфер 17 передачи выдает информацию обратной связи к модулю 19 управления кодированием согласно состоянию накопления двоичных потоков в буфере 17 передачи, чтобы управлять объемом кодов, сгенерированных при кодировании последующих видеокадров.
2. Процесс определения режима внешнего предсказания в устройстве кодирования
Процесс определения режима внешнего предсказания, который является особенностью устройства кодирования в седьмом варианте осуществления настоящего изобретения, описан ниже подробно. Следует отметить, что режим внешнего предсказания в следующем описании обозначает размер блока, служащий в качестве единицы предсказания с компенсацией движения, описанного выше, то есть тип макроблока/тип субмакроблока и процесс определения режима внешнего предсказания предназначены для выбора типа макроблока/типа субмакроблока, вектора движения и опорного изображения. Этот процесс выполняется на основе макроблоков, каждый макроблок получается посредством сбора вышеупомянутых трех компонентов цвета, главным образом модулем 102 предсказания с компенсацией движения и модулем 5 определения режима кодирования в устройстве кодирования, проиллюстрированном на Фиг. 30. Фиг. 33 - последовательность операций, иллюстрирующая последовательность операций этого процесса. В дальнейшем данные изображения трех компонентов цвета, составляющих блоки, названы C0, C1 и C2 соответственно.
Сначала модуль 5 определения режима кодирования принимает флаг 123 идентификации совместного использования режима внешнего предсказания, чтобы определить на основании значения флага 123 идентификации совместного использования режима внешнего предсказания, используются ли общий режим внешнего предсказания, общий вектор 137 движения и общее опорное изображение для C0, C1 и C2 (этап S100 на Фиг. 33). Если общий режим внешнего предсказания, общий вектор 137 движения и общее опорное изображение используются, процесс переходит к этапу S101 и следующим этапам. Иначе процесс переходит к этапу S102 и следующим этапам.
Когда режим внешнего предсказания, вектор 137 движения и опорное изображение являются общими для C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения обо всех выбираемых режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях. Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать режим внешнего предсказания, вектор 137 движения и опорное изображение, общие и оптимальные для всех компонентов C0, C1 и C2 (этап S101).
С другой стороны, когда оптимальный режим индивидуально выбирается для каждого из C0, C1 и C2 без совместного использования режима внешнего предсказания, вектора 137 движения и опорного изображения между C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения о всех режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях, выбираемых для компонента Ci (i≤0<3). Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать оптимальные режим внешнего предсказания, вектор 137 движения и опорное изображение, оптимальные для компонента Ci (i≤0<3) (этапы S102, S103 и S104).
В качестве нормы оценки эффективности предсказания режима предсказания, выполняемого в модуле 102 предсказания с компенсацией движения, например, стоимость искажения скорости передачи, заданная:
Jm, v, r=Dm, v, r+λ Rm, v, r (λ: положительное число),
может использоваться. В этом выражении Dm, v, r является искажением кодирования или величиной ошибки предсказания, когда используются режим m внешнего предсказания, вектор v движения в пределах заранее определенного диапазона и опорное изображение r. Искажение кодирования получается посредством получения ошибки предсказания, используя режим m внешнего предсказания, вектор v движения и опорное изображение r, декодирования видеоизображения из результата преобразования и квантования ошибки предсказания и затем измерения ошибки относительно сигнала до кодирования. Величина ошибки предсказания получается посредством получения разности между предсказанным изображением и сигналом до кодирования, сгенерированного, когда используются режим m внешнего предсказания, вектор v движения и опорное r изображение, и затем определения величины разности. Например, сумма абсолютных расстояний (SAD) используется как величина ошибки предсказания. Затем Rm, v, r является количеством сгенерированных кодов, когда режим m внешнего предсказания, вектор v движения и опорное r изображение используются. А именно, Jm, v, r является значением, определяющим компромисс между объемом кодов и степенью ухудшения, когда режим m внешнего предсказания, вектор v движения и опорное r изображение используются. Режим m внешнего предсказания, вектор v движения и опорное изображение r, которые дают наименьшее Jm, v, r, обеспечивают оптимальное решение.
Когда устройство кодирования выполняет процесс после этапа S101 и последующих этапов, одна комбинация информации режима внешнего предсказания, вектора 137 движения и опорного изображения назначается макроблоку, содержащему три компонента цвета. С другой стороны, когда устройство кодирования выполняет процесс после этапа S102 и последующих этапов, информация режима внешнего предсказания, вектор 137 движения и опорное изображение назначаются каждому из компонентов цвета. Соответственно, так как информация режима внешнего предсказания, вектор 137 движения и опорное изображение, которое назначается макроблоку, отличается для каждого случая, требуется, чтобы флаг 123 идентификации совместного использования режима внешнего предсказания был мультиплексирован в битовом потоке, чтобы разрешить устройству декодирования распознать, выполнило ли устройство кодирования процесс после S101 или процесс после S102. Последовательность данных такого битового потока иллюстрируется на Фиг. 34.
Фиг. 34 показывает последовательность данных битового потока на уровне макроблока. Тип макроблока содержит информацию, которая указывает режим внутреннего или внешнего предсказания. Когда тип макроблока указывает режим внешнего предсказания, эта информация указывает размер блока, служащего единицей компенсации движения. Тип субмакроблока мультиплексируется, только когда размер блока 8×8 выбирается в качестве типа макроблока и содержит информацию размера блока для каждого блока 8×8. Основной тип 128 макроблока и основной тип 129 субмакроблока, каждый, указывают общий тип макроблока и общий тип субмакроблока, когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим внешнего предсказания является «общим для C0, C1 и C2». Иначе основной тип 128 макроблока и основной тип 129 субмакроблока указывают тип макроблока и тип субмакроблока для C0. Расширенный тип 130 макроблока и расширенный тип 131 суб-макроблока являются мультиплексированными для каждого C1 и C2, только когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим внешнего предсказания не является «общим для C0, C1 и C2», и указывают тип макроблока и тип субмакроблока для C1 и C2.
Идентификационный номер опорного изображения является информацией для определения опорного изображения, которое должен быть выбрано для каждого блока с размером блока 8×8 или большим, служащим в качестве единицы компенсации движения. В случае межкадрового режима выбираемое опорное изображение является однокадровым изображением. Поэтому один идентификационный номер опорного изображения размножается для каждого блока. Один набор информации вектора движения мультиплексируется для каждого блока, служащего единицей компенсации движения. Количество идентификационных номеров опорного изображения и информация вектора движения, которые являются мультиплексированными, должны соответствовать таковым для блоков, содержащихся в макроблоке, причем каждый блок служит единицей компенсации движения. Когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим является «общим для C0, C1 и C2», основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения являются общим идентификационным номером опорного изображения и общей информацией вектора движения. Иначе основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения являются опорным идентификационным номером изображения и информацией вектора движения для C0. Расширенный идентификационный номер опорного изображения 134 и расширенная информация вектора движения 135 мультиплексируются для каждого C1 и C2, только когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим не является «общим для C0, C1 и C2», и является опорным идентификационным номером изображения и информацией вектора движения для C1 и C2.
Затем параметр 21 квантования и квантованный коэффициент преобразования 10 мультиплексируются (Фиг. 34 не иллюстрирует флаг 24 управления фильтром удаления блочности, который подается на вход модуля 11 кодирования с переменной длиной кода согласно Фиг. 30, но иллюстрация этого здесь опускается, так как флаг 24 управления фильтром удаления блочности не является существенным компонентом для описания особенностей седьмого варианта осуществления настоящего изобретения).
В формате 4:2:0, который использовался в обычном стандарте кодирования видео, определение цветового пространства устанавливается в Y, Cb и Cr. В формате 4:4:4, однако, цветовое пространство не ограничивается таковым Y, Cb и Cr и могут использоваться другие цветовые пространства. Посредством конфигурирования информации режима внешнего предсказания, как иллюстрируется на Фиг. 34, оптимальный процесс кодирования может быть выполнен, даже когда определение цветового пространства входного видеосигнала 1 варьируется. Например, когда цветовое пространство определяется посредством R, G и B, структура текстуры видео остается одинаковой в компонентах R, G и B. В такой области использование общей информации режима внешнего предсказания и общей информации вектора движения может сократить избыточность самих информации режима внешнего предсказания и информации вектора движения, чтобы повысить эффективность кодирования. С другой стороны, например, в области, которая не содержит красного цвета вообще (компонент R равен 0), режим внешнего предсказания и информация вектора движения, оптимальные для компонента R, должны отличаться от таковых, оптимальных для компонентов G и B. Поэтому посредством адаптивного использования расширенного режима внешнего предсказания, расширенной информации идентификации опорного изображения и расширенной информации вектора движения может быть получена оптимальная эффективность кодирования.
3. Обзор работы устройства декодирования
Устройство декодирования, иллюстрируемое на Фиг. 31, принимает видеопоток 22 согласно последовательности данных, проиллюстрированной на Фиг. 34, который выводится из устройства кодирования, иллюстрированного на Фиг. 30, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок содержит три компонента цвета одного и того же размера (в формате 4:4:4), чтобы восстанавливать каждый видеокадр.
Сначала модуль 25 декодирования с переменной длиной принимает видеопоток 22 в качестве ввода, чтобы дешифровать видеопоток 22 согласно заранее определенному правилу (синтаксическому), таким образом извлекая информацию, такую как флаг 123 идентификации совместного использования режима внешнего предсказания, квантованный коэффициент 10 преобразования, тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения, информацию вектора движения и параметр 21 квантования. Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, в котором выполняется процесс обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 13 обратного ортогонального преобразования для восстановления до локального декодированного разностного сигнала 14 предсказания. С другой стороны, тип макроблока/тип субмакроблока 106, флаг 123 идентификации совместного использования режима внешнего предсказания, вектор 137 движения и идентификационный номер опорного изображения вводятся в модуль 102 предсказания с компенсацией движения, чтобы получить предсказанное изображение 7, согласно введенной информации. Конкретная процедура для получения предсказанного изображения 7 описана ниже. Локальный декодированный разностный сигнал 14 предсказания и предсказанное изображение 7 суммируется сумматором 18, чтобы получить временное декодированное изображение 15 (которое является точно тем же сигналом, как локальное декодированное изображение 15 в устройстве кодирования). Временное декодированное изображение 15 записывается обратно в блоки памяти 16, чтобы использоваться для предсказания с компенсацией движения последующих макроблоков. Три блока памяти 16 подготавливаются для соответствующих компонентов цвета (количество блоков памяти описывается как три в этом варианте осуществления, но количество блоков памяти может быть соответственно изменено согласно проекту). Кроме того, на основании индикации флага 24 управления фильтром удаления блочности, дешифрованного модулем 25 декодирования с переменной длиной кода, фильтр 26 удаления блочности вынуждают воздействовать на временное декодированное изображение 15, чтобы получить окончательное декодированное изображение 27.
4. Процесс декодирования с внешним предсказанием в устройстве декодирования
Устройство декодирования, иллюстрируемое на Фиг. 31, принимает видеопоток 22 согласно последовательности, проиллюстрированной на Фиг. 34, который выводится из устройства кодирования, иллюстрированного на Фиг. 30, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок состоит из трех компонентов цвета одного и того же размера (в формате 4:4:4), чтобы восстановить каждый видеокадр.
Процесс генерирования изображения с внешним предсказанием, который является особенностью устройства декодирования согласно седьмому варианту осуществления, описан ниже подробно. Этот процесс реализуется на основе макроблоков, причем каждый макроблок получают посредством сбора трех компонентов цвета, описанных выше, и главным образом выполняется модулем 25 декодирования с переменной длиной кода и модулем 102 предсказания с компенсацией движения в устройстве декодирования, проиллюстрированном на Фиг. 31. Фиг. 35 - последовательность операций, иллюстрирующая поток части процесса генерирования изображения с внешним предсказанием, который реализуется в модуле 25 декодирования с переменной длиной кода.
Предполагается, что видеопоток 22, который подается на вход модуля 25 декодирования с переменной длиной кода, следует последовательности данных, проиллюстрированной на Фиг. 34. На этапе S110 декодируется флаг 123 идентификации совместного использования режима внешнего предсказания в данных, проиллюстрированных на Фиг. 34 (этап S110). Далее, основной тип макроблока 128 и основной тип субмакроблока 129 декодируются (этап S111). На этапе S112 посредством использования результата флага 123 идентификации совместного использования режима внешнего предсказания определяют, использовать ли режим внешнего предсказания, общий для C0, C1 и C2. Когда общий режим внешнего предсказания используется (Да на этапе S112), основной тип макроблока 128 и основной тип субмакроблока 129 используются для всех из C0, C1 и C2. Иначе (Нет на этапе S112) основной тип макроблока 128 и основной тип субмакроблока 129 не используются в качестве режима для C0. Затем расширенный тип макроблока 130 и расширенный тип субмакроблока 131 декодируются для каждого C1 и C2 (этап S113), чтобы получить информацию режима с внешним предсказанием C1 и C2. Затем основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения декодируются (этап S114). Когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что используются основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения "общие для C0, C1 и C2" (Да на этапе S115), основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения используются для всех из C0, C1 и C2. Иначе (Нет на этапе S115) основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения не используются как информация для C0. Затем для каждого C1 и C2 расширенный идентификационный номер опорного изображения 134 и расширенная информация вектора движения 135 декодируются (этап S116). Так как тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения каждого из компонентов цвета определяется посредством вышеупомянутого процесса, определенный тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения выводятся к модулю 102 предсказания с компенсацией движения, чтобы получить изображение предсказания с компенсацией движения каждого из компонентов цвета.
Фиг. 36 иллюстрирует разновидность последовательности данных битового потока, проиллюстрированной на Фиг. 34. На Фиг. 36 флаг 123 идентификации совместного использования режима внешнего предсказания является мультиплексированным не как флаг на уровне макроблока, а как флаг, позиционированный на уровне данных более высокого порядка, таком как срез (слайс, slice), картинка или последовательность. В результате, когда достаточно высокая эффективность предсказания обеспечивается переключением на уровень более высокого порядка, равный или выше, чем срез, служебные биты могут быть сокращены без мультиплексирования флага 123 идентификации совместного использования режима внешнего предсказания на уровне макроблока в течение каждого раза.
На Фиг. 34 и 36 флаг 123 идентификации совместного использования режима внешнего предсказания является мультиплексированным для каждого макроблока или в уровне данных более высокого порядка, таком как срез, картинка или последовательность. Когда видеоизображение в формате 4:4:4 закодировано без мультиплексирования, флаг 123 идентификации совместного использования режима внешнего предсказания, режим внешнего предсказания и информация вектора движения, различные для каждого компонента, всегда могут использоваться. Последовательность данных битового потока в этом случае иллюстрируется на Фиг. 37. На Фиг. 37 флаг 123 идентификации совместного использования режима внешнего предсказания не присутствует. Вместо этого информация 136 профиля, которая дает команду на обработку входного изображения в формате 4:4:4, мультиплексируется в уровне более высокого порядка, таком как последовательность. На основании результата декодирования информации профиля расширенный тип макроблока 130, расширенный тип субмакроблока 131, расширенный идентификационный номер опорного изображения 134 и расширенная информация вектора движения 135 является мультиплексированными.
Восьмой вариант осуществления
В седьмом варианте осуществления настоящего изобретения каждое из типа макроблока/типа субмакроблока, вектора движения и опорного изображения могут быть установлены различными для каждого из компонентов цвета. Восьмой вариант осуществления согласно настоящему изобретению описывает устройство кодирования видео и устройство декодирования видео, которые характеризуются тем, что используются тип макроблока/тип субмакроблока и вектор движения, общие для компонентов цвета, в то время как только вектор движения, который должен использоваться, может быть различным для каждого из компонентов цвета. Конфигурации устройства кодирования видео и устройства декодирования видео в восьмом варианте осуществления являются такими же, как проиллюстрированы на Фиг. 30 и 31 в седьмом варианте осуществления изобретения, но различие заключается в этом, что флаг 123b идентификации совместного использования вектора движения предоставляется вместо флага 123 идентификации совместного использования режима внешнего предсказания.
1. Процесс определения режима внешнего предсказания в устройстве кодирования
Процесс определения режима внешнего предсказания, который является особенностью устройства кодирования в восьмом варианте осуществления настоящего изобретения, описан ниже подробно главным образом для части, отличной от процесса определения режима внешнего предсказания в седьмом варианте осуществления изобретения.
Этот процесс реализуется на основе макроблоков, причем каждый макроблок получают посредством сбора вышеупомянутых трех компонентов цвета, главным образом модулем 102 предсказания с компенсацией движения и модулем 5 определения режима кодирования в устройстве кодирования согласно Фиг. 30. Фиг. 38 - последовательность операций, иллюстрирующая последовательность операций этого процесса. В дальнейшем данные изображения трех компонентов цвета, составляющих эти блоки, названы C0, C1 и C2 соответственно.
Сначала модуль 5 определения режима кодирования принимает флаг 123b идентификации совместного использования вектора движения, чтобы определить на основании значения флага 123b, использовать ли вектор 137 движения, общий для C0, C1 и C2 (этап S120 на Фиг. 38). Если вектор 137 движения, общий для C0, C1 и C2, используется, процесс переходит к этапу S121 и следующим этапам. Иначе процесс переходит к этапу S122 и следующим этапам.
Когда вектор 137 движения, общий для C0, C1 и C2, используется, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения обо всех выбираемых режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях. Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать режим внешнего предсказания, вектор 137 движения и опорное изображение, которые являются общими и оптимальными для C0, C1 и C2 (этап S121).
Когда лучший вектор движения выбирается для каждого из C0, C1 и C2 без использования вектора 137 движения, общего для C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения обо всех выбираемых режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях. Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать режим внешнего предсказания и опорное изображение, общие и оптимальные для C0, C1 и C2 (этап S122). Далее, оптимальный вектор движения для компонента Ci (i≤0<3) выбирается (этапы S123, S124 и S125).
Флаг 123b идентификации совместного использования вектора движения должен быть мультиплексирован в битовом потоке, который должен быть распознан устройством декодирования. Последовательность данных такого битового потока иллюстрируется на Фиг. 39.
Фиг. 39 иллюстрирует последовательность данных битового потока на уровне макроблока. Тип 128b макроблока, тип 129b субмакроблока и идентификационный номер 132b опорного изображения являются «общими для C0, C1 и C2». Основная информация 133 вектора движения указывает общую информацию вектора движения, когда флаг 123b идентификации совместного использования вектора движения указывает «общий для C0, C1 и C2». Иначе основная информация 133 вектора движения указывает информацию вектора движения для C0. Расширенная информация вектора движения 135 мультиплексируется для каждого C1 и C2, чтобы указать информацию вектора движения для каждого C1 и C2, только когда флаг 123b идентификации совместного использования вектора движения не является «общим для C0, C1 и C2». Тип макроблока/тип субмакроблока 106 на Фиг. 30 и 31 является коллективным обозначением типа 128b макроблока и типа 129b субмакроблока на Фиг. 39.
2. Процесс прогнозирующего внешнего декодирования в устройстве декодирования
Устройство декодирования в восьмом варианте осуществления настоящего изобретения принимает видеопоток 22 согласно последовательности, проиллюстрированной на Фиг. 39, который выводится из устройства кодирования восьмого варианта осуществления изобретения, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок состоит из трех компонентов цвета одного и того же размера (в формате 4:4:4), чтобы восстановить каждый видеокадр.
Процесс генерирования изображения с внешним предсказанием, который является особенностью устройства декодирования в восьмом варианте осуществления настоящего изобретения, описан ниже подробно главным образом для части процесса, отличной от такового в седьмом варианте осуществления настоящего изобретения. Этот процесс реализуется на основе макроблоков, причем каждый макроблок получают посредством сбора трех компонентов цвета, описанных выше, и главным образом выполняется модулем 25 декодирования с переменной длиной кода и модулем 102 предсказания с компенсацией движения в устройстве декодирования, проиллюстрированном на Фиг. 31. Фиг. 40 - последовательность операций, иллюстрирующая поток части процесса генерирования изображения внешнего предсказания, который реализуется в модуле 25 декодирования с переменной длиной кода.
Предполагается, что последовательность данных видеопотока 22, который подается на вход модуля 25 декодирования с переменной длиной кода, является таким, как это проиллюстрировано на Фиг. 39. На этапе S126 декодируется тип макроблока 128b или тип субмакроблока 129b, общий для C0, C1 и C2. Так как декодированный тип макроблока 128b или тип субмакроблока 129b определяет размер блока, служащий в качестве единицы компенсации движения, идентификационный номер 132b опорного изображения, общий для C0, C1 и C2, декодируется для каждого блока, служащего единицей компенсации движения (этап S127). На этапе S128 декодируется флаг 123b идентификации совместного использования вектора движения. Затем основная информация 133 вектора движения декодируется для каждого блока, служащего в качестве единицы компенсации движения (этап S129). На этапе S130 результат флага 123b идентификации совместного использования вектора движения используется для определения, использовать ли вектор 137 движения, общий для C0, C1 и C2. Когда общий вектор 137 движения используется (Да на этапе S130), основная информация вектора движения используется для всех из C0, C1 и C2. Иначе (Нет на этапе S130) основной вектор движения 133 не используется как режим для C0. Далее, расширенная информация вектора движения 135 декодируется для каждого из C1 и C2 (этап S131). Посредством вышеупомянутого процесса тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения определяется для каждого из компонентов цвета. Поэтому определенный тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения выводятся к модулю 102 предсказания с компенсацией движения, чтобы получить изображение предсказания с компенсацией движения каждого из компонентов цвета.
Фиг. 41 иллюстрирует разновидность последовательности данных битового потока, проиллюстрированной на Фиг. 39. На Фиг. 39 флаг 123b идентификации совместного использования вектора движения мультиплексируется не как флаг на уровне макроблока, а как флаг, позиционированный в уровне данных более высокого порядка, таком как срез, картинка или последовательность. В результате, когда достаточно высокая эффективность предсказания может быть обеспечена посредством переключения в уровень более высокого порядка, равный или выше, чем уровень среза, служебные биты могут быть сокращены без мультиплексирования флага 123b идентификации совместного использования вектора движения на уровне макроблока для каждого макроблока.
На Фиг. 39 и 41 флаг 123b идентификации совместного использования вектора движения мультиплексируется для каждого макроблока или в уровне данных более высокого порядка, таком как срез, картинка или последовательность. Альтернативно, при кодировании видеоизображения в формате 4:4:4 без мультиплексирования флага 123b идентификации совместного использования вектора движения, различная информация вектора движения может всегда использоваться для каждого компонента. Последовательность данных битового потока в таком случае иллюстрируется на Фиг. 42. На Фиг. 42 флаг 123b идентификации совместного использования вектора движения не присутствует. Информация 136 профиля, инструктирующая обработку входного изображения в формате 4:4:4, мультиплексируется в уровень более высокого порядка, такой как уровень последовательности. На основании результата декодирования информации профиля 136 мультиплексируется расширенная информация вектора движения 135.
В восьмом варианте осуществления настоящего изобретения используются тип макроблока/тип субмакроблока 106 и опорное изображение, общие для компонентов цвета, тогда как только различные вектора движения 137 могут использоваться для каждого из компонентов цвета. В результате, когда достаточно высокая эффективность предсказания получается посредством адаптации только вектора 137 движения к каждому из компонентов цвета, служебные биты могут быть сокращены без мультиплексирования типа макроблока/типа субмакроблока 106 или идентификационного номера опорного изображения для каждого из компонентов цвета.
Девятый вариант осуществления
В седьмом варианте осуществления настоящего изобретения флаг 123 идентификации совместного использования режима внешнего предсказания или информация 136 профиля разрешает переключение между общим использованием каждого из типа макроблока/типа субмакроблока 106, вектора движения 137 и опорного изображения для трех компонентов цвета или использование каждого типа макроблока/типа субмакроблока 106, вектора движения 137 и опорного изображения, различных для каждого из компонентов цвета. В девятом варианте осуществления настоящего изобретения, принимая изображение в формате 4:4:4, например в формате Y, Cb и Cr, переключение разрешается между использованием режима, общего для компонента яркости (Y) и компонентов цвета (Cb и Cr), и использованием различных режимов для компонента яркости и компонентов цвета (в этом случае общий режим используется для двух компонентов цвета). А именно, устройство кодирования видео и устройство декодирования видео, которые характеризуются тем, что переключение разрешается между использованием общего режима для этих трех компонентов, использованием различного режима для каждого из этих компонентов, и использованием различных режимов для компонента яркости и компонентов цвета описаны ниже. Конфигурации устройства кодирования видео и устройства декодирования видео в девятом варианте осуществления изобретения являются такими же, как иллюстрируется на Фиг. 30 и 31 в седьмом варианте осуществления изобретения.
1. Процесс определения режима внешнего предсказания в устройстве кодирования
Процесс определения режима внешнего предсказания, который является особенностью устройства кодирования в девятом варианте осуществления настоящего изобретения, описан ниже подробно, главным образом для части, отличной от процесса определения режима внешнего предсказания в седьмом варианте осуществления настоящего изобретения.
Этот процесс реализуется на основе макроблоков, причем каждый макроблок получают посредством сбора вышеупомянутых трех компонентов цвета, и выполняется главным образом модулем 102 предсказания с компенсацией движения и модулем 5 определения режима кодирования в устройстве кодирования на Фиг. 30. Фиг. 43 - последовательность операций, иллюстрирующая последовательность операций этого процесса. В дальнейшем данные изображения трех компонентов цвета, составляющих блоки, названы C0, C1 и C2 соответственно.
Сначала модуль 5 определения режима кодирования принимает флаг 123 идентификации совместного использования режима внешнего предсказания, чтобы определить на основании значения флага 123, использовать ли режим внешнего предсказания, вектор движения 137 и опорное изображение, которые являются общими для C0, C1 и C2 (этап S132 на Фиг. 43). Если режим внешнего предсказания, вектор движения 137 и опорное изображение, которые являются общими для C0, C1 и C2, используются, процесс переходит к этапу S133 и следующим этапам. Иначе процесс переходит к этапу S134 и следующим этапам или этапу S137 и следующим этапам.
Когда режим внешнего предсказания, вектор движения 137 и опорное изображение, которые являются общими для C0, C1 и C2, используются, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения обо всех выбираемых режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях. Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать оптимальные режим внешнего предсказания, вектор 137 движения и опорное изображение, общие для C0, C1 и C2 (этап S133).
Когда лучший режим выбран для каждого из компонентов цвета C0, C1 и C2, не используя режим внешнего предсказания, вектора движения 137 и опорного изображения, общих для C0, C1 и C2, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения о всех режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях, выбираемых для компонента Ci (i≤0<3). Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать оптимальные режим внешнего предсказания, вектор движения 137 и опорное изображение для компонента Ci (i≤0<3) (этапы S134, S135 и S136).
Когда режим внешнего предсказания, вектор 137 движения и опорное изображение, общие для C1 и C2, используются для выбора лучшего режима для C0 (соответствующего компоненту яркости) и режима для C1 и C2 (соответствующих компонентам информации о цвете), модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения о всех режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях, выбираемых для компонента C0. Модуль 102 предсказания с компенсацией движения оценивает все эффективности предсказания их, чтобы выбрать режим внешнего предсказания, вектор 137 движения и опорное изображение, оптимальные для компонента C0 (этап S137). Далее, модуль 5 определения режима кодирования уведомляет модуль 102 предсказания с компенсацией движения о всех режимах внешнего предсказания, векторах движения в поисковом диапазоне и опорных изображениях, выбираемых для компонентов C1 и C2. Модуль 102 предсказания с компенсацией движения оценивает все эффективности их предсказания, чтобы выбрать режим внешнего предсказания, вектор 137 движения и опорное изображение, которые являются общими и оптимальными для компонентов C1 и C2 (этап S138).
Последовательность данных вывода битового потока из устройства кодирования в девятом варианте осуществления настоящего изобретения является такой же, как иллюстрируется на Фиг. 34. Когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим является «общим для C1 и C2», расширенный тип макроблока 130, расширенный тип субмакроблока 131, расширенный опорный идентификационный номер 134 и расширенная информация вектора движения 135 являются информацией, общей для C1 и C2.
2. Процесс декодирования с внешним предсказанием в устройстве декодирования
Устройство декодирования в девятом варианте осуществления настоящего изобретения принимает видеопоток 22 согласно последовательности, проиллюстрированной на Фиг. 34, который выводится из устройства кодирования в девятом варианте осуществления настоящего изобретения, и выполняет процесс декодирования на основе макроблоков, причем каждый макроблок состоит из трех компонентов цвета одного и того же размера (в формате 4:4:4), чтобы восстановить каждый видеокадр.
Процесс генерирования изображения с внешним предсказанием, который является особенностью устройства декодирования в девятом варианте осуществления настоящего изобретения, описан ниже подробно главным образом для части процесса, отличной от таковой в седьмом варианте осуществления настоящего изобретения. Этот процесс реализуется на основе макроблоков, причем каждый макроблок получается посредством сбора трех компонентов цвета, описанных выше, и главным образом выполняется модулем 25 декодирования с переменной длиной кода и модулем 102 предсказания с компенсацией движения в устройстве декодирования, проиллюстрированном на Фиг. 31. Фиг. 44 - последовательность операций, иллюстрирующая поток части процесса генерирования изображения с внешним предсказанием, который реализуется в модуле 25 декодирования с переменной длиной кода.
Предполагается, что видеопоток 22, который подается на вход модуля 25 декодирования с переменной длиной кода, следует последовательности данных, проиллюстрированной на Фиг. 34. На этапе S140 декодируется флаг 123 идентификации совместного использования режима внешнего предсказания в данных, проиллюстрированных на Фиг. 34 (этап S140). Далее, основной тип макроблока 128 и основной тип субмакроблока 129 декодируются (этап S141). На этапе S142 результат флага 123 идентификации совместного использования режима внешнего предсказания используется для определения, использовать ли режим внешнего предсказания, общий для C0, C1 и C2. Когда режим внешнего предсказания, общий для C0, C1 и C2, используется, основной тип макроблока 128 и основной тип субмакроблока 129 используются для всех компонентов цвета C0, C1 и C2. Иначе основной тип макроблока 128 и основной тип субмакроблока 129 используются в качестве режима для C0. Далее, когда режим внешнего предсказания является общим для C1 и C2, расширенный тип макроблока 130 и расширенный тип субмакроблока 131, общие для компонентов C1 и C2, декодируются (этап S143). Когда различные режимы используются для компонентов цвета C0, C1 и C2, расширенный тип макроблока 130 и расширенный тип субмакроблока 131 декодируются для каждого C1 и C2 (этапы S144, S145 и S146), чтобы получить информацию режима каждого из C1 и C2. Затем основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения декодируются (этап S147). Когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим внешнего предсказания является «общим для C0, C1 и C2», основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения используются для всех компонентов цвета C0, C1 и C2. Иначе основной идентификационный номер 132 опорного изображения и основная информация 133 вектора движения используются как информация для C0. Далее, когда режим внешнего предсказания является общим для C1 и C2, расширенный опорный идентификационный номер изображения 134 и расширенная информация вектора движения 135, общая для компонентов C1 и C2, декодируются (этап S149). Когда различные режимы используются для каждого из C0, C1 и C2, расширенный идентификационный номер опорного изображения 134 и расширенная информация вектора движения 135 декодируются для каждого C1 и C2 (этапы S150, S151 и S152). Так как тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения определяются для каждого из компонентов цвета посредством вышеупомянутого процесса, определенный тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения и информация вектора движения выводятся к модулю 102 предсказания с компенсацией движения, чтобы получить изображение предсказания с компенсацией движения каждого из компонентов цвета.
Как в случае последовательности данных битового потока, как иллюстрируется на Фиг. 36, когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим внешнего предсказания является «общим для C1 и C2», расширенный тип макроблока 130, расширенный тип субмакроблока 131, расширенный опорный идентификационный номер 134 и расширенная информация вектора движения 135 являются информацией, общей для C1 и C2. Операции устройства кодирования видео и видеоустройства декодирования, которые принимают в качестве входного и выводят видеопоток согласно последовательности данных, проиллюстрированной на Фиг. 36, являются такими же, как в случае Фиг. 34.
В девятом варианте осуществления настоящего изобретения каждый тип макроблока/тип субмакроблока 106, вектор 137 движения и опорное изображение могут быть установлены различными для каждого из компонентов цвета. Альтернативно, используются тип макроблока/тип субмакроблока 106 и опорное изображение, общие для компонентов цвета, в то время как переключение разрешается между использованием вектора 137 движения, общим для этих трех компонентов, использованием вектора 137 движения, различного для каждого из компонентов, и использованием оптимального вектора 137 движения, общего для C1 и C2 и такового для C0. Последовательность данных битового потока в этом случае следует последовательности, проиллюстрированной на Фиг. 39 или 41. Даже в случае, когда флаг 123 идентификации совместного использования режима внешнего предсказания указывает, что режим внешнего предсказания является «общим к C1 и C2», расширенная информация вектора движения 135 является общей для C1 и C2.
Десятый вариант осуществления
В десятом варианте осуществления описаны способ кодирования входного вектора движения 137 в модуле 11 кодирования с переменной длиной кода из устройства кодирования, описанного в седьмом варианте осуществления настоящего изобретения, и затем мультиплексирование кодированного вектора 137 движения в битовом потоке и способ декодирования вектора движения 137 из битового потока в модуле 25 декодирования с переменной длиной кода из соответствующего устройства декодирования.
Фиг. 45 иллюстрирует конфигурацию модуля кодирования вектора движения для кодирования вектора 137 движения, который соответствует части модуля 11 кодирования с переменной длиной кода из устройства кодирования, иллюстрированного на Фиг. 30.
Ниже описан способ мультиплексирования векторов 137 движения трех компонентов цвета (C0, C1 и C2) в битовом потоке в порядке C0, C1 и C2.
Вектор 137 движения из C0 обозначается mv0. В модуле 111 предсказания вектора движения получают вектор предсказания (mvp0) вектора движения 137 из C0. Как иллюстрируется на Фиг. 46, векторы движения (mvA0, mvB0 и mvC0) соседних блоков (блоков A, B и C Фиг. 46) блока, в котором располагается вектор движения (mv0), который должен быть закодирован, получают из блоков памяти. Предполагается, что векторы 137 движения блоков A, B и C уже были мультиплексированы в битовом потоке. Среднее значение mvA0, mvB0 и mvC0 вычисляются как mvp0. Вычисленный вектор движения mvp0 и вектор движения mv0, который должен быть закодирован, вводятся в модуль 112 вычисления разностного вектора движения. Модуль 112 вычисления разностного вектора движения вычисляет вектор разности (mvd0) между mv0 и mvp0. Вычисленный вектор разности mvd0 вводится в модуль 113 кодирования с переменной длиной кода разностного вектора движения для статистического кодирования посредством, например, кодирования Хаффмана или арифметического кодирования.
Затем вектор движения (mv1) C1 кодируется. В модуле 111 предсказания вектора движения получают вектор предсказания (mvp1) вектора 137 движения из C1. Как иллюстрируется на Фиг. 46, векторы движения (mvA1, mvB1 и mvC1) соседних блоков блока, в котором располагается вектор движения (mv1), который должен быть закодирован, и вектор движения (mv0) C0 в той же самой позиции, как позиция блока, в котором располагается mv1, получают из блоков памяти 16. Предполагается, что векторы 137 движения блоков A, B и C уже были мультиплексированы в битовом потоке. Среднее значение mvA1, mvB1 и mvC1 и mv0 вычисляется как mvp1. Вычисленный вектор предсказания mvp1 и вектор движения mv1, который должен быть закодирован, вводятся в модуль 112 вычисления разностного вектора движения, чтобы вычислить разностный вектор движения (mvd1=mv1-mvp1) между mv1 и mvp1. Вычисленный mvd1 вводится в модуль 113 кодирования с переменной длиной кода разностного вектора движения, который должен быть статистически кодирован с помощью средства, таким как кодирование по Хаффману или арифметическое кодирование.
Затем кодируют вектор движения (mv2) C2. В модуле 111 предсказания вектора движения получают вектор предсказания (mvp2) вектора 137 движения из C2. Как иллюстрируется на Фиг. 46, векторы движения (mvA2, mvB2 и mvC2) соседних блоков блока, в котором располагается вектор движения (mv2), который должен быть закодирован, и векторы движения (mv1 и mv2) C0 и C1 в той же самой позиции, как позиция блока, в котором располагается mv2, получают из блоков памяти 16. Среднее значение mvA2, mvB2, mvC2, mv0 и mv1 вычисляется как mvp2. Вычисленный вектор предсказания mvp2 и вектор движения mv2, который должен быть закодирован, вводят в модуль 112 вычисления разностного вектора движения, чтобы вычислить разностный вектор движения (mvd2=mv2-mvp2) между mv2 и mvp2. Вычисленный mvd2 вводят в модуль 113 кодирования с переменной длиной кода разностного вектора движения для статистического кодирования с помощью средства, такого как кодирование по Хаффману или арифметическое кодирование.
Фиг. 47 иллюстрирует конфигурацию модуля 250 декодирования вектора движения для декодирования вектора 137 движения, который соответствует части модуля 25 декодирования с переменной длиной кода из устройства декодирования, иллюстрированного на Фиг. 31.
Модуль 250 декодирования вектора движения декодирует векторы движения 137 трех компонентов цвета, мультиплексированных в видеопотоке 22 в порядке C0, C1 и C2.
Модуль 251 декодирования с переменной длиной кода вектора движения извлекает разностные векторы движения (mvd0, mvd1 и mvd2) трех компонентов цвета (C0, C1 и C2), мультиплексированных в видеопотоке 22, чтобы выполнить декодирование с переменной длиной кода в отношении извлеченных разностных векторов движения.
Модуль 252 предсказания вектора движения вычисляет векторы предсказания (mvp0, mvp1 и mvp2) вектора движения 137 из C0, C1 и C2. Способ вычисления векторов предсказания является тем же самым, как выполняется в модуле 111 предсказания вектора движения в устройстве кодирования.
Затем модуль 253 вычисления вектор движения суммирует разностный вектор движения и его вектор предсказания, чтобы вычислить вектор движения (mvi=mvdi+mvpi (i=0, 1 или 2)). Вычисленные векторы 137 движения сохраняются в блоках памяти 16, чтобы использоваться в качестве кандидата вектора предсказания.
Согласно этому десятому варианту осуществления при кодировании и декодировании вектора движения векторы движения блоков одного и того же компонента цвета, которые являются соседними с блоком, в котором располагается вектор движения, который должен быть закодирован, и векторы движения блоков различных компонентов цвета в той же позиции, что позиция блока, в котором располагается вектор движения, который должен быть закодирован, используются как кандидаты вектора предсказания. Поэтому, когда вектор движения не имеет непрерывности с векторами движения соседних блоков в том же самом компоненте цвета в граничной области объекта или подобном, эффект усиления эффективности предсказания вектора движения, чтобы уменьшить количество кодов вектора движения, может быть получен посредством использования векторов движения блоков различных цветов в той же позиции, что у кандидатов вектора предсказания.
Одиннадцатый вариант осуществления
В одиннадцатом варианте осуществления должен быть описан вариант осуществления другого устройства кодирования и другого устройства декодирования, которые получены из устройства кодирования и устройства декодирования, описанного в седьмом варианте осуществления настоящего изобретения. Устройство кодирования и устройство декодирования согласно одиннадцатому варианту осуществления определяют на основании заранее определенного управляющего сигнала, закодированы ли компоненты цвета C0, C1 и C2 в макроблоке, согласно информации индивидуального заголовка, и мультиплексируют информацию управляющего сигнала в видеопотоке 22. Устройство кодирования и устройство декодирования согласно одиннадцатому варианту осуществления характеризуются тем, что предоставляется средство мультиплексирования информации заголовка, требуемой для декодирования компонентов C0, C1 и C2 в видеопотоке, на основании управляющего сигнала и эффективного кодирования пропущенного (или не кодированного) макроблока, когда нет вектора движения или коэффициента преобразования, который должен быть передан на основании управляющего сигнала.
В обычных способах MPEG кодирования видео, включая AVC, высокоэффективное кодирование с минимизированным объемом кодов макроблока, который должен быть закодирован, реализуется посредством конкретной сигнализации о случае, когда нет кодированной информации, которая должна быть передана для макроблока, который должен быть закодирован. Например, при кодировании некоторого макроблока, когда данные изображения в точно той же самой позиции на опорном изображении, используемом для предсказания с компенсацией движения, используются в качестве предсказанного изображения (а именно, вектор движения равен нулю) и все квантованные коэффициенты преобразования в макроблоке становятся равными нулю в результате преобразования и квантования полученного сигнала ошибки предсказания, амплитуда полученного сигнала ошибки предсказания равна нулю, даже если устройство декодирования выполняет обратное квантование. Поэтому нет данных коэффициента преобразования, которые должны быть переданы к устройству декодирования. Кроме того, с учетом предположения, что вектор движения равен нулю, конкретный тип макроблока, что "нулевой вектор движения и нет данных преобразования", может быть определен. Такой макроблок традиционно называется как пропущенный макроблок или не закодированный макроблок. О пропущенном макроблоке специально сообщают, чтобы не передавать ненужную информацию. В AVC вектор движения определяется условиями, что «предсказание 16×16 согласно Фиг. 32A выполняется, и значения предсказания (соответствующие векторам движения mvp0, mvp1 и mvp2), используемые для кодирования вектора движения, равны фактическим векторам движения». Если макроблок удовлетворяет вышеупомянутым условиям и нет данных коэффициента преобразования, которые должны быть переданы, макроблок расценивается как пропущенный макроблок. В обычном AVC при кодировании пропущенного макроблока любой из следующих двух способов должен быть выбран согласно используемому способу кодирования с переменной длиной кода.
Способ 1: подсчитывается количество пропущенных макроблоков (длина RUN) непрерывных в срезе, чтобы выполнить кодирование с переменной длиной кода на длине RUN.
Способ 2: флаг индикации, указывающий, является ли макроблок пропущенным макроблоком, кодируется для каждого макроблока.
Синтаксис битового потока согласно соответствующим способам иллюстрируются на Фиг. 48A и 48B. Фиг. 48A иллюстрирует случай, когда адаптивное кодирование по Хаффману используется в качестве способа кодирования с переменной длиной кода (способ 1), и Фиг. 48B иллюстрирует случай, когда адаптивное арифметическое кодирование используется (способ 2). О пропущенном макроблоке сообщают посредством mb_skip_run в способе 1 и mb_skip_flag в способе 2. Закодированные данные n-го (не пропущенного) макроблока обозначаются MB(n). Нужно здесь отметить, что mb_skip_run или mb_skip_flag назначаются макроблоку, полученному посредством сбора компонентов C0, C1 и C2 в качестве одной единицы.
С другой стороны, в устройстве кодирования и устройстве декодирования согласно одиннадцатому варианту осуществления предоставляется способ изменения информации заголовка, включающей в себя вектор движения и т.п. для каждого из компонентов C0, C1 и C2, согласно состоянию вышеупомянутого управляющего сигнала, а именно сигнала, соответствующего флагу 123 идентификации совместного использования режима внешнего предсказания, описанному в седьмом варианте осуществления настоящего изобретения, чтобы сигнализировать о пропущенном макроблоке для каждого из компонентов C0, C1 и C2. Конкретные примеры синтаксиса битового потока иллюстрируются на Фиг. 49 и 50.
Фиг. 49 иллюстрирует конфигурацию данных кодирования макроблока, которые выводятся из устройства кодирования согласно одиннадцатому варианту осуществления, который должен быть введен в устройство декодирования согласно одиннадцатому варианту осуществления, и Фиг. 50 иллюстрирует подробную конфигурацию кодирования данных в информации заголовка компонента Cn, проиллюстрированной на Фиг. 49. В дальнейшем для описания эффекта этой конфигурации битового потока работа устройства декодирования для приема битового потока, чтобы восстановить видеосигнал, должна быть в основном описана. Для описания работы устройства декодирования приводятся ссылки на Фиг. 31.
Определение флага 123 идентификации совместного использования режима внешнего предсказания в седьмом варианте осуществления настоящего изобретения расширяется, чтобы быть представленным как флаг 123c идентификации совместного использования заголовка макроблока. Флаг 123c идентификации совместного использования заголовка макроблока расценивает информацию 139a заголовка компонента C0 в качестве основной информация заголовка макроблока, чтобы дать команду мультиплексирования только информации заголовка компонента C0 139a в качестве информация заголовка, используемой в качестве общей для компонентов C1 и C2, или отдельного мультиплексирования каждой информации 139b заголовка компонента C1 и информации 139c заголовка компонента C2 в качестве расширенной информации заголовка. Флаг 123c идентификации совместного использования заголовка макроблока извлекается из видеопотока 22 и декодируется модулем 25 декодирования с переменной длиной кода. Когда флаг 123c дает команду мультиплексирования информации 139a заголовка компонента C0 одного в качестве информации заголовка, используемой как общая для компонентов C1 и C2, все компоненты C0, C1 и C2 в макроблоке декодируются посредством использования информации 139a заголовка компонента C0. Когда флаг 123c дает команду отдельного мультиплексирования каждой информации 139b заголовка компонента C1 и информации 139c заголовка компонента C2 как расширенной информации заголовка, декодирование выполняется посредством использования информации заголовка 139a-139c, надлежащей для соответствующих компонентов цвета C0, C1 и C2 в макроблоке. В дальнейшем это отношение должен быть описано далее подробно как процесс, реализованный на основе макроблоков.
1. Мультиплексирование только информации заголовка компонента C0
Когда флаг 123c идентификации совместного использования заголовка макроблока указывает мультиплексирование одной информации 139a заголовка компонента C0 в качестве информации заголовка, используемой в качестве общей для компонентов C1 и C2, макроблок декодируется для всех компонентов C0, C1 и C2 на основании различной информации заголовка макроблока, содержавшейся в информации 139a заголовка компонента C0. В этом случае, так как информация 138a команды пропуска (инструктирования) компонента C0 и информация 139a заголовка компонента C0 используются как общая для компонентов C1 и C2, информация (138b и 138c) команды пропуска и информация заголовка (139b и 139c) для компонентов C1 и C2 не мультиплексируются в битовом потоке.
Модуль 25 декодирования с переменной длиной сначала декодирует и оценивает информацию 138a команды пропуска компонента C0. Когда информация команды пропуска компонента C0 138a указывает "пропуск", информация 139a заголовка компонента C0 расценивается как не закодированная, и информация 142 индикации достоверности коэффициента преобразования в информации заголовка компонента C0 139a расценивается как нуль (нет кодированного коэффициента преобразования). В результате данные коэффициента преобразования компонента C0, данные коэффициента преобразования компонента C1 и данные коэффициента преобразования компонента C2 (140a-140c) - все расцениваются как не закодированные. Поэтому все квантованные коэффициенты преобразования 10 в макроблоке выводятся как нуль. Далее, согласно определению пропущенного макроблока векторы 137 движения всех компонентов C0, C1 и C2 устанавливаются в одинаковое значение для вывода.
Когда информация 138a команды пропуска компонента C0 указывает не - "пропуск", информация 139a заголовка компонента C0 расценивается как присутствие и декодируется. Когда тип макроблока 128b в информации 139a заголовка компонента C0 указывает внутреннее кодирование, режим 141 внутреннего предсказания, информация 142 индикации достоверности коэффициента преобразования и (если информация 142 индикации достоверности коэффициента преобразования не является нулем) параметр квантования декодируются. Если информация 142 индикации достоверности коэффициента преобразования не является нулем, данные коэффициента преобразования компонента C0, компонента C1 и компонента C2 (140a-140c) декодируются, чтобы быть выведенными в форме квантованных коэффициентов 10 преобразования. Если информация 142 индикации достоверности коэффициента преобразования является нулем, данные коэффициента преобразования компонента C0, компонента C1 и компонента C2 (140a-140c) все расцениваются как нули. Затем все квантованные коэффициенты преобразования 10 в макроблоке выводятся как нуль. Когда тип макроблока 128b указывает внешнее кодирование, тип 129b субмакроблока декодируется, как необходимо. Далее, идентификационный номер 132b опорного изображения, информация 133b вектора движения, информация 142 индикации достоверности коэффициента преобразования и (если информация 142 индикации достоверности коэффициента преобразования не является нулем) параметр 21 квантования, декодируются. Если информация 142 индикации достоверности коэффициента преобразования не является нулем, данные коэффициента преобразования компонента C0, компонента C1 и компонента C2 (140a-140c) декодируются, чтобы быть выведенными в форме квантованных коэффициентов 10 преобразования. Если информация 142 индикации достоверности коэффициента преобразования является нулем, данные коэффициента преобразования компонента C0, компонента C1 и компонента C2 (140a-140c) все расцениваются как нули. Затем все квантованные коэффициенты преобразования 10 в макроблоке выводятся как нуль. Декодирование макроблока согласно заранее определенной процедуре обработки посредством использования выходного сигнала из модуля 25 декодирования с переменной длиной кода посредством вышеупомянутой операции является таким же, как описано в седьмом варианте осуществления настоящего изобретения.
2. Мультиплексирование соответствующей информации заголовка для каждого из компонентов, C0, C1 и C2
Когда флаг 123c идентификации совместного использования заголовка макроблока указывает мультиплексирование каждой информации 139b заголовка компонента C1 и информации 139c заголовка компонента C2 как расширенную информацию заголовка независимо от информации 139a заголовка компонента C0, каждое изображение компонента цвета декодируется на основании различной информации заголовка макроблока, содержащейся в каждой соответствующей информации заголовка (139a-139c) для каждого из компонентов C0, C1 и C2. В этом случае информация команды пропуска (138b и 138c) и информация заголовка (139b и 139c) для компонентов C1 и C2 мультиплексируются в битовом потоке.
Модуль 25 декодирования с переменной длиной сначала декодирует и оценивает информацию 138a команды пропуска компонента C0. Когда информация 138a команды пропуска компонента C0 указывает "пропуск", информация 139a заголовка компонента C0 расценивается как не кодированная и информация 142 индикации достоверности коэффициента преобразования в информации 139a заголовка компонента C0 расценивается как нуль (не закодированный коэффициент преобразования). В результате данные 140a коэффициента преобразования компонента C0 расцениваются как не закодированные. Поэтому все квантованные коэффициенты преобразования 10 в компоненте C0 выводятся как нуль (а именно, значение флага 123c идентификации совместного использования заголовка макроблока изменяет отношение между информацией 138a команды пропуска компонента C0 и информацией 142 индикации достоверности коэффициента преобразования). Далее, вектор 137 движения из компонента C0 устанавливается согласно определению в случае пропуска компонента C0 для вывода.
Когда информация 138a команды пропуска компонента C0 указывает не - "пропуск", информация 139a заголовка компонента C0 расценивается как присутствующая, которая должна быть декодирована. Когда тип макроблока 128b в информации 139a заголовка компонента C0 указывает внутреннее кодирование, режим 141 внутреннего предсказания (режим пространственного предсказания пикселей, используя соседние пиксели пикселя, который должен быть предсказан в кадре в качестве значения предсказания), информация 142 индикации достоверности коэффициента преобразования и (если информация 142 индикации достоверности коэффициента преобразования не является нулем) параметр 21 квантования декодируются. Если информация 142 индикации достоверности коэффициента преобразования не является нулем, данные коэффициента преобразования компонента C0 декодируются, чтобы быть выведенными в форме квантованного коэффициента 10 преобразования. Если информация 142 индикации достоверности коэффициента преобразования является нулем, все данные коэффициента преобразования компонента C0 нулевые. Когда тип макроблока указывает внешнее кодирование, тип субмакроблока декодируется, как необходимо. Далее, идентификационный номер опорного изображения, информация вектора движения, информация 142 индикации достоверности коэффициента преобразования и (если информация 142 индикации достоверности коэффициента преобразования не является нулем) параметр квантования декодируются.
Если информация 142 индикации достоверности коэффициента преобразования не является нулем, данные коэффициента преобразования компонента C0 декодируются, чтобы быть выведенными в форме квантованного коэффициента 10 преобразования. Если информация 142 индикации достоверности коэффициента преобразования является нулем, данные коэффициента преобразования компонента C0 все расцениваются как нулевые. Вышеупомянутая процедура обработки выполняется тем же самым способом в отношении C1 и C2.
Декодирование каждого из компонентов C0, C1 и C2 в макроблоке согласно заранее определенной процедуре обработки посредством использования выходных данных от модуля 25 декодирования с переменной длиной кода посредством вышеупомянутой операции является таким же, как описано в седьмом варианте осуществления настоящего изобретения.
Операция в устройстве декодирования была главным образом описана. При конфигурировании битового потока, как описано выше, получаются следующие эффекты. Первое, есть только один набор информации заголовка (Фиг. 50), доступный для каждого макроблока в обычном AVC. Внешнее/внутреннее определение должно быть выполнено для набора из всех компонентов C0-C2 согласно информации заголовка, чтобы реализовать кодирование. С другой стороны, как в формате 4:4:4, для случая, когда сигнальный компонент, соответствующий сигналу яркости, который передает содержимое сигнала изображения, одинаково содержится в трех компонента цветах, иногда происходит изменение в характеристиках сигнала из-за наложения шума на входной видеосигнал для каждого из компонентов или подобного. Поэтому коллективное кодирование всех компонентов C0-C2 не всегда оптимально. При условии конфигураций битового потока на Фиг. 49 и 50 согласно одиннадцатому варианту осуществления посредством флага 123c идентификации совместного используемого заголовка макроблока устройство кодирования может выбрать оптимальный режим кодирования (тип макроблока, включающий в себя тип кодирования внутренний/внешний), вектор движения и т.п. согласно характеристике сигнала для каждого из компонентов цвета C0-C2, чтобы реализовать кодирование, таким образом увеличивая эффективность кодирования. Кроме того, так как кодирование традиционно выполняется на основе макроблоков, каждый макроблок получают посредством сбора всех компонентов C0-C2. Поэтому пропуск и определение выполняется при условии, что кодированная информация всех компонентов отсутствует. В одиннадцатом варианте осуществления, однако, присутствие/отсутствие закодированной информации конфигурируется как подлежащее определению на основании информации 138 команды пропуска для каждого компонента. Поэтому для случая, когда только некоторый компонент должен быть пропущен, в то время как другие компоненты не должны быть пропущены, не является необходимым определять, что все компоненты не должны быть пропущены. Соответственно, количество кодов может быть более эффективно назначено. В устройстве кодирования значение информации 138 команды пропуска определяется в модуле 11 кодирования с переменной длиной кода согласно определению пропущенного макроблока, однозначно определенного и устройством кодирования, и устройством декодирования, как описано в этом абзаце, на основании данных 10 квантованного коэффициента преобразования, вектора 137 движения, идентификационного номера 132b опорного изображения и типа макроблока/типа субмакроблока 106.
Следует отметить, что битовый поток, обработанный устройством кодирования и устройством декодирования согласно одиннадцатому варианту осуществления, может быть конфигурирован, как иллюстрируется на Фиг. 51. В этом примере информация (138) команды пропуска, информация (139a-139c) заголовка и данные (140a-140c) коэффициента преобразования все вместе компонуются для каждого из компонентов C0, C1 и C2. В информации 138 команды пропуска каждое из состояний компонентов цвета C0, C1 и C2 может быть скомпоновано как один кодовый символ. Альтернативно, восемь состояний могут быть все вместе закодированы в один кодовый символ. Когда компоненты цвета имеют высокую корреляцию в состоянии пропуска, кодовые символы собираются, чтобы соответственно определить контекстную модель арифметического кодирования (описанную в двенадцатом варианте осуществления ниже), чтобы разрешить повышение эффективности кодирования самой информации 138 команды пропуска.
Следует отметить, что флаг 123c идентификации совместного использования заголовка макроблока может быть мультиплексированным в битовом потоке в единицах данных произвольных уровней, таких как макроблок, срез, картинка и последовательность. Когда есть устойчивая разность в свойстве сигнала между компонентами цвета во входном сигнале, эффективное кодирование может быть выполнено с меньшим количеством служебной информации посредством конфигурирования флага 123c идентификации совместного использования заголовка макроблока, который должен быть мультиплексирован для каждой последовательности. Кроме того, флаг 123c идентификации совместного использования заголовка макроблока конфигурируется, чтобы быть мультиплексированным для каждой картинки. С этой конфигурацией заголовок обычно используется для компонентов цвета в I-картинке, имеющей меньше изменений в типе макроблока, тогда как другой отдельный заголовок используется для каждого компонента цвета в P и В картинках, имеющих большие изменения в типе макроблока. В результате эффект улучшения баланса между эффективностью кодирования и нагрузкой вычислений, как ожидают, должен быть получен. Далее, полагается, что переключение в уровне картинки желательно даже ввиду управления кодированием видеосигнала, имеющего свойство, изменяющееся для каждого изображения, например, для изменения сцены. Когда флаг 123c идентификации совместного использования заголовка макроблока является мультиплексированным для каждого макроблока, количество кодов для каждого макроблока увеличивается. С другой стороны, возможно управлять тем, использовать ли общую информацию заголовка на основании состояния сигнала каждого из компонентов цвета для каждого макроблока. В результате устройство кодирования, которое лучше следует локальному изменению в сигнале изображения, чтобы улучшить эффективность сжатия, может быть сконфигурировано.
Когда тип кодирования, соответствующий типу картинки, переключается в уровень среза, как в AVC, следующий способ задумывается. Флаг 123c идентификации совместного использования заголовка макроблока мультиплексируется для каждого среза. Затем, когда флаг 123c идентификации совместного использования заголовка макроблока указывает, что информация заголовка является «общей для C0, C1 и C2», битовый поток конфигурируется, чтобы позволить срезу содержать всю закодированную информацию трех компонентов цвета. С другой стороны, когда флаг 123c идентификации совместного использования заголовка макроблока указывает, что информация заголовка не является «общей для C0, C1 и C2», битовый поток конфигурируется, чтобы позволить одному срезу содержать информацию одного компонента цвета. Это состояние иллюстрируется на Фиг. 52. На Фиг. 52 флаг 123c идентификации совместного использования заголовка макроблока также служит в качестве информации идентификации конфигурации среза, указывающей, содержит ли "текущий срез всю закодированную информацию трех компонентов цвета" или "текущий срез содержит закодированную информацию некоторого конкретного компонента цвета". Очевидно, что информация идентификации конфигурации среза может быть предоставлена независимо от флага 123c идентификации совместного использования заголовка макроблока. Когда информация идентификации конфигурации среза указывает, что "текущий срез содержит закодированную информацию некоторого конкретного компонента цвета", эта идентификация также указывает, "какой из C0, C1 и C2 является конкретным компонентом цвета". Для переключения между общим использованием одного заголовка макроблока для компонентов C0, C1 и C2 (срез, содержащий C0, C1 и C2) и отдельного мультиплексирования макроблока для каждого из компонентов C0, C1 и C2 (срез C0, срез C1 и срез C2), когда два типа среза присутствуют в одной картинке, срез C0, срез C1 и срез C2 ограничиваются мультиплексированием в битовом потоке в наборе в качестве данных, полученных посредством кодирования макроблока всегда в одной и той же позиции в экране. А именно, first_mb_in_slice, содержавшийся на заголовке среза, чтобы указать позицию внутри картинки головного макроблока в срезе, имеет всегда одно и то же значение в одном наборе среза C0, среза C1 и среза C2. Кроме того, количество макроблоков, содержащихся в одном наборе среза C0, среза C1 и среза C2, является одним и тем же. Это состояние иллюстрируется на Фиг. 53. Посредством обеспечения такого ограничения на конфигурацию битового потока устройство кодирования может адаптивно выбрать способ кодирования более с высокой эффективностью кодирования для среза, содержащего C0, C1 и C2, или набор из среза C0, среза C1 и среза C2 согласно локальному свойству сигнала в картинке. Устройство декодирования может принять битовый поток, эффективно закодированный вышеупомянутым способом, чтобы воспроизвести видеосигнал. Например, предполагая, что видеопоток 22, введенный в устройство декодирования, иллюстрируемый на Фиг. 31, имеет конфигурацию, как описано выше, модуль 25 декодирования с переменной длиной кода декодирует информацию идентификации конфигурации среза из битового потока каждый раз, когда данные среза вводятся. Затем модуль 25 декодирования с переменной длиной кода идентифицирует тип среза, который должен быть декодирован, из типов среза, проиллюстрированных на Фиг. 52. Когда определяется на основании информации идентификации конфигурации среза, что закодированные данные конфигурируются как набор из среза C0, среза C1 и среза C2, состояние флага 123с идентификации совместного использования режима внешнего предсказания (или флага 123c идентификации совместного использования заголовка макроблока) может быть определено как "использование отличного отдельного режима внешнего предсказания (или заголовка макроблока) для каждого из C0, C1 и C2", чтобы выполнить операцию декодирования. Так как обеспечивается, что значение first_mb_in_slice каждого среза и количество макроблоков в срезе всегда одно и то же, процесс декодирования может быть выполнен без генерирования наложения или разрыва со срезом, содержащим C0, C1 и C2 на картинке, на основании одного и того же значения first_mb_in_slice и одного и того же количества макроблоков в срезе.
Чтобы препятствовать снижению эффективности кодирования посредством обеспечения такого ограничения, когда свойства сигналов соответствующих срезов C0, C1 и C2 очень отличаются друг от друга, может быть обеспечена идентификационная информация, которая разрешает выбор разрешения/неразрешения наличия срезов, где каждый включает в себя информацию идентификации конфигурации среза, имеющую различные значения в картинке на уровне картинки или уровне последовательности.
Двенадцатый вариант осуществления
В двенадцатом варианте осуществления описан вариант осуществления другого устройства кодирования и другого устройства декодирования, которые получены из устройства кодирования и устройства декодирования, описанных в одиннадцатом варианте осуществления настоящего изобретения. Когда используется адаптивное арифметическое кодирование, чтобы закодировать каждый из компонентов C0, C1 и C2 в макроблоке, устройство кодирования и устройство декодирования согласно двенадцатому варианту осуществления адаптивно выполняют переключение между совместным использованием вероятности вхождения символа, используемой для арифметического кодирования и его процессом узнавания (нахождения) во всех компонентах и отдельное использование вероятности вхождения символа и процесса узнавания (нахождения) для каждого из компонентов на основании идентификационной информации, мультиплексированной в битовом потоке.
Двенадцатый вариант осуществления согласно настоящему изобретению отличается от одиннадцатого варианта осуществления согласно настоящему изобретению только процессом, выполняемым в модуле 11 кодирования с переменной длиной кода на Фиг. 30 для устройства кодирования, и процессом, выполняемым в модуле 25 декодирования с переменной длиной кода согласно Фиг. 31 для устройства декодирования. Остальные операции выполняются так, как описывается в одиннадцатом варианте осуществления изобретения. Ниже процесс арифметического кодирования и процесс арифметического декодирования, которые являются важными особенностями двенадцатого варианта осуществления изобретения, описаны подробно.
1. Процесс кодирования
Фиг. 54 иллюстрирует внутреннюю конфигурацию, связанную с процессом арифметического кодирования в модуле 11 кодирования с переменной длиной кода, и Фиг. 55 и 56 - последовательности операций, каждая иллюстрирует поток операций процесса арифметического кодирования.
Модуль 11 кодирования с переменной длиной кода в двенадцатом варианте осуществления изобретения включает в себя модуль 11a определения контекстной модели, модуль 11b бинаризации, модуль 11с генерирования вероятности вхождения, модуль 11d кодирования и память 11g. Модуль 11a определения контекстной модели определяет контекстную модель (описанную ниже), определенную для каждого типа данных, такого как вектор 137 движения, идентификационный номер 132b опорного изображения, тип макроблока/тип субмакроблока 106, режим 141 внутреннего предсказания или квантованный коэффициент 10 преобразования, которые являются данными, которые должны быть закодированы. Модуль 11b бинаризации преобразовывает многозначные данные в данные в двоичном коде согласно правилу бинаризации, определенному для каждого из типов данных, которые должны быть закодированы. Модуль 11с генерирования вероятности вхождения обеспечивает вероятность вхождения значения (0 или 1) каждого элемента дискретизации, полученного после бинаризации. Модуль 11b кодирования выполняет арифметическое кодирование на основании сгенерированной вероятности вхождения. Память 11g сохраняет информацию вероятности вхождения. Различные данные, введенные в модуль 11 кодирования с переменной длиной кода как данные, которые должны быть закодированы, такие как вектор 137 движения, идентификационный номер 132b опорного изображения, тип макроблока/тип субмакроблока 106, режим 141 внутреннего предсказания и квантованный коэффициент 10 преобразования, вводятся в модуль 11a определения контекстной модели. Выходной сигнал из модуля 11b кодирования соответствует информации для макроблока в видеопотоке 22.
(1) Процесс определения контекстной модели (этап S160 на Фиг. 55)
k
k
k
k
k
k
k
k
k
Контекстная модель получается посредством моделирования зависимости от другой информации, которая вызывает изменение в вероятности вхождения исходного символа информации. Посредством переключения состояния вероятности вхождения, чтобы соответствовать этой зависимости, разрешается кодирование, более адаптивное к фактической вероятности вхождения символа. Фиг. 57 иллюстрирует концепцию контекстной модели (ctx). Следует отметить, что исходный символ информации является двоичным на Фиг. 57, но исходный символ информации может быть многозначным. Опции 0-2 на Фиг. 57 в качестве контекстной модели ctx определяются, предполагая, что состояние вероятности вхождения исходного символа информации, который использует эту ctx, будет меняться согласно условию. В случае кодирования видео в двенадцатом варианте осуществления настоящего изобретения значение ctx переключается согласно зависимости между закодированными данными в некотором макроблоке и закодированными данными соседних макроблоков. Например, Фиг. 58 иллюстрирует пример контекстной модели для вектора движения макроблока, который раскрывается в "Video Compressing Context-Based Adaptive Arithmetic Coding" D. Marpe и др., International Conference on Image Processing 2001. На Фиг. 58 вектор движения блока C должен быть закодирован (более точно, значение mvd(C) разности предсказания, полученное посредством предсказания вектора движения блока C от соседних блоков, кодируется), и ctx_mvd(C, k) указывает контекстную модель. Значение разности предсказания вектора движения в блоке A обозначается mvd(A), и значение разности предсказания вектора движения в блоке B обозначается mvd(B), которые используются для определения значения e(C) оценки переключения контекстной модели. Значение e(C) оценки указывает изменение между соседними векторами движения. Обычно, когда изменение является маленьким, mvd(C) имеет тенденцию быть маленьким. С другой стороны, когда изменение является большим, mvd(C) имеет тенденцию быть большим. Поэтому желательно, чтобы вероятность mvd(C) вхождения символа была адаптирована на основании e(C). Набор изменений вероятности вхождения является контекстной моделью. В этом случае можно сказать, что есть три изменения вероятности вхождения.
Кроме того, контекстная модель заранее определена для каждых данных, которые должны быть закодированы, таких как тип макроблока/тип субмакроблока 106, режим 141 внутреннего предсказания и квантованный коэффициент 10 преобразования, которые должны быть совместно используемыми устройством кодирования и устройством декодирования. Модуль 11a определения контекстной модели выполняет процесс выбора заранее определенной модели на основании типа данных, которые должны быть закодированы, как описано выше (выбор изменения вероятности вхождения от таковых в контекстной модели соответствует процессу генерирования вероятности вхождения, описанному в (3) ниже).
(2) Процесс бинаризации (этап S161 на Фиг. 55)
Контекстная модель определяется согласно каждому элементу дискретизации (двоичной позиции) в двоичной последовательности, полученной посредством бинаризации данных, которые должны быть закодированы, в модуле 11b бинаризации. Согласно правилу бинаризации преобразование с переменной длиной кода в двоичную последовательность выполняется согласно грубому распределению возможных значений для каждых из закодированных данных. Для бинаризации количество делений числовой оси вероятности может быть сокращено, чтобы полезно упростить вычисление и разрешить упрощенную контекстную модель посредством кодирования данных, которые должны быть закодированы для каждого элемента дискретизации, который иначе может быть многозначным, а не арифметическим кодированием.
(3) Процесс генерирования вероятности вхождения (этап S162 на Фиг. 55 (подробный процесс на этапе S162 иллюстрируется на Фиг. 56))
k
Посредством вышеупомянутых процессов (1) и (2) бинаризация многозначных данных, которые должны быть закодированы, и установка контекстной модели, используемой для каждого элемента дискретизации, выполняются, чтобы завершить подготовку к кодированию. Затем модуль 11c генерирования вероятности вхождения выполняет процесс генерирования состояния вероятности вхождения, используемого для арифметического кодирования. Каждая контекстная модель содержит изменения вариации вероятности вхождения для каждого из значений 0 и 1. Поэтому, как иллюстрируется на Фиг. 54, этот процесс выполняется, ссылаясь на контекстную модель 11f, определенную на этапе S160. Определяется значение оценки для выбора вероятности вхождения, как указано e(C) на Фиг. 58. Согласно определенному значению оценки вариация вероятности вхождения, которая должна использоваться для текущего кодирования, настраивается из опций контекстной модели, на которую ссылаются (этап S162a на Фиг. 56). Далее, модуль 11 кодирования с переменной длиной кода согласно двенадцатому варианту осуществления включает в себя память 11g для хранения информации вероятности вхождения, которая имеет механизм сохранения состояния 11h вероятности вхождения, последовательно обновляемого в процессе кодирования отдельно для каждого из компонентов цвета. Модуль 11c генерирования вероятности вхождения определяет выбор состояния 11h вероятности вхождения, которое должно использоваться для текущего кодирования из сохраненных отдельно для каждого из компонентов цвета C0-C2, или совместного использования состояния 11h вероятности вхождения для компонента C0 посредством компонентов C1 и C2, на основании значения флага 143 идентификации совместного использования параметра состояния вероятности вхождения, чтобы таким образом определить состояние 11h вероятности вхождения, фактически используемого для кодирования (этапы S162b-S162d на Фиг. 56).
k
k
Флаг 143 идентификации совместного использования параметра состояния вероятности вхождения должен быть мультиплексирован в битовом потоке, чтобы разрешить одинаковый выбор в устройстве декодирования. Такая конфигурация обеспечивает следующий эффект. Например, взяв Фиг. 58 в качестве примера, когда флаг 123c идентификации совместного использования заголовка макроблока указывает, что информация 139a заголовка компонента C0 используется даже для других компонентов, одно значение оценки e(C) на Фиг. 58 определяется для каждого макроблока, если тип макроблока 128b указывает режим предсказания 16×16. В этом случае всегда используется состояние вероятности вхождения, подготовленное для компонента C0. С другой стороны, когда флаг 123c идентификации совместного использования заголовка макроблока указывает, что используется информация заголовка (139a-139c), соответствующая соответствующим компонентам, значение e(C) на Фиг. 58 может иметь три вариации для каждого макроблока, если тип макроблока 128b указывает режим предсказания 16×16 для всех из C0, C1 и C2. Модуль 11d кодирования на более поздней стадии имеет две возможности для каждой вариации. А именно, любое одно из общего использования и обновление состояния 11h вероятности вхождения, подготовленного для компонента C0, и отдельное использование и обновление состояния 11h вероятности вхождения, подготовленного для каждого из компонентов цвета, может быть выбрано. С первой опцией, когда компоненты C0, C1 и C2 имеют почти одно и то же распределение вектора движения, имеется вероятность, что общее использование и обновление состояния 11h вероятности вхождения увеличивает частоту изучения, чтобы разрешить лучшее изучение (определение) вероятности вхождения вектора движения. С последней опцией, когда компоненты C0, C1 и C2 имеют различные распределения вектора движения, есть вероятность, что отдельное использование и обновление состояния 11h вероятности вхождения может уменьшить рассогласования в изучении, чтобы разрешить лучшее изучение вероятности вхождения вектора движения. Так как видеосигнал является нестационарным, эффективность арифметического кодирования может быть улучшена посредством предоставления возможности адаптивного управления, как описано выше.
(4) Процесс кодирования
Так как вероятность вхождения каждого из значений 0 и 1 на числовой оси вероятности, требуемой для процесса арифметического кодирования, в процессе (3) может быть получена, арифметическое кодирование выполняется в модуле 11с кодирования согласно процессу, описанному в обычных примерах (этап S163 на Фиг. 55). Фактическое кодированное значение (0 или 1) 11e подается в модуль 11с генерирования вероятности вхождения, чтобы подсчитать частоту вхождения 0 или 1 для обновления используемого состояния 11h вероятности вхождения (этап S164). Например, предполагается, что вероятности вхождения 0 и 1 в вариации вероятности вхождения равны 0,25 и 0,75 после того, как процесс кодирования ста элементов дискретизации был выполнен, используя конкретное состояние 11h вероятности вхождения. В этом случае, когда 1 закодирована посредством использования одной и той же вариации вероятности вхождения, частота появления 1 обновляется, чтобы изменить вероятности вхождения 0 и 1 до 0,247 и 0,752 соответственно. Этот механизм разрешает эффективное кодирование, адаптивное к фактической вероятности вхождения. Закодированное значение 11e является выходным сигналом из модуля 11 кодирования с переменной длиной кода и выводится из устройства кодирования как видеопоток 22.
Фиг. 59 иллюстрирует внутреннюю конфигурацию, связанную с процессом арифметического декодирования в модуле 25 декодирования с переменной длиной кода, и Фиг. 60 - последовательность операций, иллюстрирующая поток операции процесса арифметического декодирования.
Модуль 25 декодирования с переменной длиной кода согласно двенадцатому варианту осуществления включает в себя модуль 11a определения контекстной модели, модуль 11b бинаризации, модуль 11c генерирования вероятности вхождения, модуль 25a декодирования и память 11g. Модуль 11a определения контекстной модели определяет тип данных, которые должны быть декодированы, такие как вектор 137 движения, идентификационный номер 132b опорного изображения, тип макроблока/тип субмакроблока 106, режим 141 внутреннего предсказания и квантованный коэффициент 10 преобразования, чтобы определить контекстную модель, определяемую как общую для устройства кодирования для каждого типа данных. Модуль 11b бинаризации генерирует правило бинаризации, определенное на основании типа данных, которые должны быть декодированы. Модуль 11c генерирования вероятности вхождения обеспечивает вероятность вхождения каждого элемента дискретизации (0 или 1) согласно правилу бинаризации и контекстной модели. Модуль декодирования 25a выполняет арифметическое декодирование на основании сгенерированной вероятности вхождения, чтобы декодировать данные, такие как вектор 137 движения, идентификационный номер 132b опорного изображения, тип макроблока/тип субмакроблока 106, режим 141 внутреннего предсказания и квантованный коэффициент преобразования 10 на основании результирующей двоичной последовательности и вышеупомянутого правила бинаризации. Память 11g хранит информацию вероятности вхождения. Внутренние компоненты 11a-11c и 11g являются такими же, как таковые в модуле 11 кодирования с переменной длиной кода из Фиг. 54.
(5) Процесс определения контекстной модели, процесс бинаризации и процесс генерирования вероятности вхождения
Эти процессы являются такими же, как процессы (1)-(3), выполненные в устройстве кодирования. Предполагается, что флаг 143 идентификации совместного использования параметра состояния вероятности вхождения был уже извлечен из видеопотока 22, который не показан на чертежах.
(6) Процесс арифметического декодирования
Так как вероятность вхождения элемента дискретизации, который должен быть декодирован, определяется процессами (1)-(6), модуль 25a декодирования декодирует значение элемента дискретизации согласно заранее определенному процессу арифметического декодирования (этап S166 на Фиг. 60). Восстановленное значение 25b элемента дискретизации возвращается в модуль 11c генерирования вероятности вхождения, чтобы подсчитать частоту вхождения 0 или 1, чтобы обновить используемое состояние 11h вероятности вхождения (этап S164). Модуль 25a декодирования подтверждает совпадение с шаблоном двоичной последовательности, определенным на основании правила бинаризации каждый раз, когда восстановленное значение каждого элемента дискретизации определяется для вывода значения данных, указанных посредством согласования шаблона в качестве декодированного значения данных (этап S167). Если декодированные данные не определены, процесс возвращается к этапу S166, чтобы продолжить процесс декодирования.
Согласно устройству кодирования, включающему в себя процесс арифметического кодирования, и устройству декодирования, включающему в себя процесс арифметического декодирования в вышеупомянутых конфигурациях, при адаптивном выполнении арифметического декодирования в отношении закодированной информации для каждого компонента цвета согласно флагу 123c идентификации совместного использования заголовка макроблока, обеспечивается более эффективное кодирование.
Флаг 143 идентификации совместного использования параметра состояния вероятности вхождения мультиплексируется для любого одного из каждого макроблока, каждого среза, каждой картинки и каждой последовательности, что конкретно не иллюстрируется. Посредством мультиплексирования флага 143 идентификации совместного использования параметра состояния вероятности вхождения как флага, расположенного в уровне данных более высокого порядка, таком как срез, картинка или последовательность, служебные биты могут быть сокращены без мультиплексирования флага 143 идентификации совместного использования параметра состояния вероятности вхождения на уровне макроблока каждый раз, когда достаточно высокая эффективность кодирования обеспечивается посредством переключения на уровень более высокого порядка, равный или выше, чем срез.
Кроме того, флаг 143 идентификации совместного использования параметра состояния вероятности вхождения может быть информацией, определенной в устройстве декодирования на основании относительной информации, содержавшейся в битовом потоке, отличном от битового потока, содержащего флаг 143.
X
X
A
B
В двенадцатом варианте осуществления при выполнении арифметического декодирования в отношении флага 123c идентификации совместного использования заголовка макроблока на основе макроблоков модель, иллюстрированная на Фиг. 61, используется для контекстной модели 11f. На Фиг. 61 предполагается, что значение флага 123c идентификации совместного использования заголовка макроблока в макроблоке X равно IDC. При кодировании флаг 123c идентификации совместного использования заголовка макроблока в макроблоке C, значение IDC имеет следующие три состояния согласно формуле на Фиг. 61 на основании значения IDC флага 123c идентификации совместного использования заголовка макроблока в макроблоке A и значения IDC флага 123c идентификации совместного использования заголовка макроблока в макроблоке B.
- Значение 0: и A и B находятся в режиме "использование заголовка макроблока, общего для C0, C1 и C2".
- Значение 1: любой из A и B находится в режиме "использование заголовка макроблока, общего для C0, C1 и C2", и другой находятся в режиме "использование различных заголовков макроблока для C0, C1 и C2".
- Значение 2: и A и B находятся в режиме "использования различных заголовков макроблока для C0, C1 и C2".
Посредством кодирования флага 123c идентификации совместного использования заголовка макроблока этим способом арифметическое кодирование может быть выполнено, чтобы адаптироваться к закодированным состояниям соседних макроблоков, чтобы повысить эффективность кодирования. Очевидно из описания работы устройства декодирования в двенадцатом варианте осуществления, описанном выше, что контекстная модель определяется в той же самой процедуре для арифметического декодирования в устройстве кодирования, так же как в устройстве декодирования.
В двенадцатом варианте осуществления для информации заголовка (тип макроблока, тип субмакроблока, режим внутреннего предсказания, идентификационный номер опорного изображения, вектор движения, информация индикации достоверности коэффициента преобразования и параметр квантования), иллюстрированной на Фиг. 50, которая содержится в заголовке макроблока, арифметическое кодирование выполняется с режимом контекста, определенным для каждого из типов информации. Как иллюстрируется на Фиг. 62A и 62B, любая из контекстных моделей определяется для текущего макроблока C посредством обращения к соответствующей информации макроблоков A и B. Если макроблок C находится в режиме "использование заголовка макроблока, общего для C0, C1 и C2" и макроблок B находятся в режиме "использование различных заголовков макроблока для C0, C1 и C2", как иллюстрируется на Фиг. 62A, информация конкретного компонента цвета, выбранного из любого из C0, C1 и C2, используется как ссылочная информация для определения контекстной модели.
Например, когда компоненты C0, C1 и C2 соответствуют компонентам цвета R, G и B, предназначается способ выбора компонента G, содержащего самый близкий компонент к таковому из сигнала яркости, традиционно используемого для кодирования в качестве сигнала, который хорошо представляет структуру изображения. Это делается потому, что имеются многие случаи, когда информация заголовка макроблока определяется на основании компонента G для кодирования даже в режиме "использование заголовка макроблока, общего для C0, C1 и C2".
С другой стороны, в противном случае, а именно когда макроблок C находится в режиме "использование различных заголовков макроблока для C0, C1 и C2", тогда как макроблок B находится в режиме "использование заголовка макроблока, общего для C0, C1 и C2", как иллюстрируется на Фиг. 62B, необходимо кодировать и декодировать информацию заголовка трех компонентов цвета в макроблоке C. Для кодирования и декодирования в качестве ссылочной информации в определении контекстной модели информации заголовка каждого из компонентов цвета информация заголовка, общая для этих трех компонентов, используется как одно и то же значение для этих трех компонентов для макроблока B. Очевидно, что, когда флаг 123c идентификации совместного использования заголовка макроблока указывает одно и то же значение для всех макроблоков A, B, и C, ссылочная информация, соответствующая макроблокам A, B и C, всегда присутствует. Поэтому эта ссылочная информация используется.
Очевидно из описания работы устройства декодирования в двенадцатом варианте осуществления, описанном выше, что контекстная модель определяется в одной и той же процедуре, чтобы выполнить арифметическое декодирование и в устройстве кодирования, и в устройстве декодирования. Кроме того, после определения контекстной модели, которая должна использоваться, в то же время задавая компонент, чья информация называется контекстной моделью, состояние вероятности вхождения, ассоциированное с контекстной моделью, обновляется на основании состояния флага 143 идентификации совместного использования параметра состояния вероятности вхождения.
Далее, в двенадцатом варианте осуществления данные коэффициента преобразования каждого из компонентов C0, C1 и C2 арифметически кодируются согласно распределению вероятности вхождения каждых из данных, которые должны быть закодированы. Закодированные данные для этих трех компонентов содержатся в битовом потоке независимо от того, является ли заголовок макроблока используемым как общий. Так как внутреннее предсказание или внешнее предсказание выполняется в цветовом пространстве закодированного входного сигнала, чтобы получить разностный сигнал предсказания в двенадцатом варианте осуществления настоящего изобретения, полагается, что аналогичное распределение вероятности вхождения получается как распределение данных коэффициента преобразования, полученных целочисленным преобразованием разностного сигнала предсказания, независимо от состояния окружения, например независимо от того, является ли заголовок макроблока используемым как общий, как иллюстрируется на Фиг. 62A и 62B. Поэтому в двенадцатом варианте осуществления общая контекстная модель определяется для каждого из компонентов C0, C1 и C2, которая должна использоваться для кодирования и декодирования, независимо от того, используется ли заголовок макроблока общим для этих трех компонентов.
Очевидно из описания работы устройства декодирования в двенадцатом варианте осуществления, описанном выше, что контекстная модель определяется в одной и той же процедуре для выполнения арифметического декодирования как в устройстве кодирования, так и в устройстве декодирования. Кроме того, после определения контекстной модели, которая должна использоваться при определении компонента, информация которого называется контекстной моделью, состояние вероятности вхождения, ассоциированное с контекстной моделью, обновляется на основании состоянии флага 143 идентификации совместного использования параметра состояния вероятности вхождения.
Тринадцатый вариант осуществления
Тринадцатый вариант осуществления согласно настоящему изобретению описывает пример другого устройства кодирования и другого устройства декодирования, полученных из тех, что описаны в седьмом-двенадцатом вариантах осуществления согласно настоящему изобретению. Устройство кодирования и устройство декодирования в тринадцатом варианте осуществления настоящего изобретения характеризуются в следующих конфигурациях. Устройство кодирования выполняет процесс преобразования цветового пространства во входном каскаде устройства кодирования, описанного в седьмом-двенадцатом вариантах осуществления изобретения, чтобы преобразовать цветовое пространство видеосигнала, который подается на вход устройства кодирования после захвата изображения, в произвольное цветовое пространство, подходящее для кодирования, и затем мультиплексирует информацию, которая обозначает обратный процесс преобразования для того, чтобы восстановить цветовое пространство, полученное во время захвата изображения в устройстве декодирования, в битовом потоке. Затем информация, обозначающая обратный процесс преобразования, извлекается из битового потока, чтобы получить декодированное изображение устройством декодирования, описанным в седьмом-двенадцатом вариантах осуществления изобретения. После этого обратное преобразования цветового пространства выполняется на основании информации, обозначающей обратный процесс преобразования.
Фиг. 63 иллюстрирует конфигурации устройства кодирования и устройства декодирования согласно тринадцатому варианту осуществления. Со ссылками на Фиг. 63 описаны устройство кодирования и устройство декодирования в тринадцатом варианте осуществления.
Устройство кодирования в тринадцатом варианте осуществления включает в себя устройство кодирования 303, описанное в седьмом-двенадцатом вариантах осуществления изобретения, и модуль 301 преобразования цветового пространства в предыдущем каскаде устройства 303 кодирования. Модуль 301 преобразования цветового пространства включает в себя по меньшей мере один процесс преобразования цветового пространства. Модуль 301 преобразования цветового пространства выбирает процесс преобразования цветового пространства, который должен использоваться согласно свойству видеосигнала, который должен быть введен, или параметры установки системы, чтобы выполнить процесс преобразования цветового пространства в отношении входного видеосигнала. Затем модуль 301 преобразования цветового пространства передает преобразованный видеосигнал 302, полученный посредством процесса преобразования цветового пространства, к устройству 303 кодирования. В то же самое время модуль 301 преобразования цветового пространства передает информацию для идентификации используемого процесса преобразования цветового пространства в качестве информации 304 идентификации способа преобразования цветового пространства к устройству 303 кодирования. После мультиплексирования информации 304 идентификации способа преобразования цветового пространства в битовом потоке 305, полученной кодированием со сжатием преобразованного видеосигнала 302 в способе, описанном в седьмом-двенадцатом вариантах осуществления изобретения как сигнал, который должен быть закодирован, устройство 303 кодирования передает битовый поток 305 к тракту передачи или выдает битовый поток 305 к устройству записи для записи на носитель записи.
В качестве готового способа преобразования цветового пространства, например, имеются следующие способы. А именно, есть преобразование RGB, традиционно используемое в стандарте для YUV;
C0=Y=0,299×R+0,587×G+0,114×B
C1=U =-0,169×R-0,3316×G+0,500×B
C2=V=0,500×R-0,4186×G-0,0813×B,
предсказание между компонентами цвета;
C0=G'=G
C1=B'=B-f (G) (где f(G) результат процесса фильтрования в отношении компонента G)
C2=R'=R-f (G),
и преобразование RGB в YCoCg;
C0=R/2+G/2+B/4
C1=C0=R/2-B/2
C2=Cg =-R/4+G/2-B/4.
Входной сигнал к модулю 301 преобразования цветового пространства не должен быть ограничен RGB, и процесс преобразования не ограничивается вышеупомянутыми тремя процессами.
Устройство декодирования согласно тринадцатому варианту осуществления включает в себя устройство 306 декодирования согласно седьмому-двенадцатому вариантам осуществления согласно настоящему изобретению, и модуль 308 обратного преобразования цветового пространства в последующем каскаде устройства 306 декодирования. Устройство 306 декодирования принимает битовый поток 305 в качестве ввода, чтобы извлечь и вывести информацию 304 идентификации способа преобразования цветового пространства из битового потока 305, и также выводит декодированное изображение 307, полученное посредством операции устройства декодирования, описанного в седьмом-двенадцатом вариантах осуществления согласно настоящему изобретению. Модуль 308 обратного преобразования цветового пространства включает в себя процесс обратного преобразования, соответствующий каждому способу преобразования цветового пространства, выбираемого в вышеупомянутом модуле 301 преобразования цветового пространства. Преобразование, выполняемое модуле 301 преобразования цветового пространства, определяется на основании информации 304 идентификации способа преобразования цветового пространства, выводимой из устройства 306 декодирования, чтобы выполнить процесс обратного преобразования в отношении декодированного изображения 307, чтобы восстановить цветовое пространство видеосигнала, вводимого в устройство декодирования в тринадцатом варианте осуществления.
Согласно устройству кодирования и устройству декодирования как в тринадцатом варианте осуществления настоящего изобретения, оптимальный процесс преобразования цветового пространства выполняется в предыдущей стадии процесса кодирования и последующей стадии процесса декодирования в отношении видеосигнала, который должен быть закодирован. В результате корреляция, содержащаяся в сигнале изображения, составленном из трех компонентов цвета, удаляется до кодирования, чтобы разрешить кодирование с уменьшенной избыточностью. Соответственно, эффективность сжатия может быть увеличена. В обычном стандартном способе кодирования, таком как MPEG, тип цветового пространства сигнала, который должен быть закодирован, ограничивается одним, то есть YUV. В тринадцатом варианте осуществления, однако, обеспечиваются модуль 301 преобразования цветового пространства и модуль 308 обратного преобразования цветового пространства, и информация 304 идентификации способа преобразования цветового пространства содержится в битовом потоке 305. В результате ограничение в отношении цветового пространства видеосигнала, который должен быть закодирован и введен, может быть удалено. В то же самое время видеосигнал может кодироваться посредством использования оптимального преобразования, выбранного из множества типов средства для удаления корреляции между компонентами цвета. Информация 304 идентификации способа преобразования цветового пространства может быть мультиплексирована на уровне, таком как картинка, срез или макроблок. Например, посредством мультиплексирования информации 304 идентификации способа преобразования цветового пространства на основе макроблоков, преобразование, которое может удалить наибольшее количество локальной корреляции между тремя компонентами цвета, может быть выборочно использовано для увеличения эффективности кодирования.
Тринадцатый вариант осуществления согласно настоящему изобретению описан в предположении постоянной работы модуля 301 преобразования цветового пространства и модуля 308 обратного преобразования цветового пространства. Альтернативно, информация, которая инструктирует, чтобы гарантировать совместимость с общим стандартом без работы модуля 301 преобразования цветового пространства и модуля 308 обратного преобразования цветового пространства, может быть закодирована в уровне более высокого порядка, таком как последовательность.
Кроме того, альтернативно, модуль 301 преобразования цветового пространства и модуль 308 обратного преобразования цветового пространства в тринадцатом варианте осуществления могут быть каждый включены во внутренние конфигурации устройства кодирования и устройства декодирования в седьмом-двенадцатом вариантах осуществления согласно настоящему изобретению, чтобы выполнить преобразование цветового пространства на уровне разностного сигнала предсказания. Устройство кодирования, сконфигурированное таким образом, иллюстрируется на Фиг. 64, тогда как устройство декодирования, сконфигурированное таким образом, иллюстрируется на Фиг. 65. Устройство кодирования на Фиг. 64 включает в себя модуль 310 преобразования вместо модуля 8 ортогонального преобразования и модуль 312 обратного преобразования вместо модуля 13 обратного ортогонального преобразования, тогда как устройство декодирования на Фиг. 65 включает в себя модуль 312 обратного преобразования вместо модуля 13 обратного ортогонального преобразования.
Модуль 310 преобразования сначала выбирает процесс оптимального преобразования из множества процессов преобразования цветового пространства, чтобы реализовать преобразование цветового пространства, как описано выше, в качестве процесса в модуле 301 преобразования цветового пространства для разностного сигнала 4 предсказания компонентов C0, C1 и C2, который выводится из модуля 5 определения режима кодирования. После этого модуль 310 преобразования выполняет преобразование, соответствующее таковому, выполненному в модуле 8 ортогонального преобразования для результата преобразования цветового пространства. Информация 311 идентификации способа преобразования цветового пространства, указывающая выбранный процесс преобразования, передается к модулю 11 кодирования с переменной длиной кода и затем мультиплексируется в битовой поток, который должен быть выведен как видеопоток 22. После выполнения процесса обратного преобразования, соответствующего процессу, выполняемому в модуле 13 обратного ортогонального преобразования, модуль 312 обратного преобразования использует процесс преобразования цветового пространства, обозначенный информацией 311 идентификации способа преобразования цветового пространства, чтобы реализовать процесс обратного преобразования цветового пространства.
В устройстве декодирования модуль 25 декодирования с переменной длиной кода извлекает информацию 311 идентификации способа преобразования цветового пространства из битового потока, чтобы передать результат извлечения к модулю 312 обратного преобразования, таким образом выполняя аналогичный процесс, как в модуле 312 обратного преобразования в устройстве кодирования, описанном выше. При такой конфигурации, когда корреляция, остающаяся между компонентами цвета, может быть достаточно удалена в области разности предсказания, это удаление может быть выполнено как часть процесса кодирования, чтобы обеспечить эффект усиления эффективности кодирования. Однако, когда различные заголовки макроблока используются для компонентов C0, C1 и C2 соответственно, корреляция маловероятно должна быть поддержана в области разностного сигнала 4 предсказания, так как способ предсказания может прежде всего варьироваться для каждого компонента, например внутреннего предсказания для компонента C0 и внешнего предсказания для компонента C1. Поэтому, когда различные заголовки макроблока используются для компонентов C0, C1 и C2 соответственно, модуль 310 преобразования и модуль 312 обратного преобразования могут работать так, чтобы не выполнять преобразование цветового пространства. Альтернативно, идентифицирующая информация, указывающая, должно ли быть преобразование цветового пространства выполнено в области разностного сигнала 4 предсказания, может быть мультиплексирована в битовом потоке. Информация 311 идентификации способа преобразования цветового пространства может быть переключена в единицах любого из: последовательностей, картинок, срезов и макроблоков.
При таких конфигурациях устройства кодирования, иллюстрированного на Фиг. 64, и устройства декодирования, иллюстрированного на Фиг. 65, коэффициент преобразования данных каждого из компонентов C0, C1 и C2 имеет различную область определения сигнала для сигнала, который должен быть закодирован согласно информации 311 идентификации способа преобразования цветового пространства. Поэтому полагается, что данные коэффициента преобразования обычно имеют различное распределение вероятности вхождения согласно информации 311 идентификации способа преобразования цветового пространства. Поэтому, когда устройство кодирования и устройство декодирования конфигурируются так, как иллюстрируется на Фиг. 64 и 65, соответственно, кодирование и декодирование выполняются посредством использования контекстной модели, ассоциированной с каждым состоянием вероятности вхождения для каждого состояния информации 311 идентификации способа преобразования цветового пространства для каждого из компонентов C0, C1 и C2.
Очевидно из описания работы устройства декодирования в двенадцатом варианте осуществления настоящего изобретения, описанного выше, что контекстная модель определяется в той же самой процедуре для выполнения арифметического декодирования как в устройстве кодирования, так и в устройстве декодирования. Кроме того, после определения контекстной модели, которая должна использоваться, в то же время задавая компонент, информация которого называется контекстной моделью, состояние вероятности вхождения, ассоциированное с этой контекстной моделью, обновляется на основании состояния флага 143 идентификации совместного использования параметра вероятности вхождения.
Четырнадцатый вариант осуществления
В четырнадцатом варианте осуществления для устройства кодирования и устройства декодирования в вариантах осуществления, описанных выше, дополнительно должны быть описаны конкретные конфигурации устройства.
В вышеупомянутых вариантах осуществления работа устройства кодирования и устройства декодирования были описаны со ссылками, например, на Фиг. 1, 2, 30, 31 и чертежи, им соответствующие. Со ссылками на эти чертежи была описана следующая операция. Входной видеосигнал, составленный из трех компонентов цвета, вместе подается на вход к устройству кодирования. Устройство кодирования кодирует входной видеосигнал, в то же время выбирая способ кодирования из способа кодирования трех компонентов цвета в устройстве кодирования на основании общего режима предсказания или заголовка макроблока и способа кодирования на основании различных режимов предсказания или заголовках макроблока для трех компонентов цвета. Устройство кодирования вводит результирующий битовый поток в устройство декодирования. Устройство декодирования декодирует битовый поток, в то же время определяя на основании флага, декодированного и извлеченного из битового потока (например, флага 23 идентификации совместного использования режима внутреннего предсказания, флага 123 идентификации совместного использования режима внешнего предсказания или подобных), были ли три компонента цвета декодированы в устройстве декодирования на основании общего режима предсказания или заголовке макроблока или на основании различных режимов предсказания или заголовков макроблоков. Таким образом получается воспроизведенное видеоизображение. Возможность кодирования и декодирования флага в единицах произвольных уровней данных, таких как макроблоки, срезы, картинки и последовательности, была уже описана. В четырнадцатом варианте осуществления настоящего изобретения, в частности, конфигурация устройства и операции для кодирования и декодирования сигналов трех компонентов цвета, в то же время определяя для каждого кадра (или каждого поля), кодируются ли сигналы трех компонентов цвета на основании общего заголовка макроблока, или различные заголовки макроблоков, должны быть описаны на основании конкретных чертежей. В дальнейшем, если иначе не отмечено, "один кадр" расценивается как единица данных одного кадра или одного поля.
Заголовок макроблока в четырнадцатом варианте осуществления настоящего изобретения содержит служебную информацию макроблока, отличную от коэффициента преобразования данных, такую как флаг идентификации преобразованного размера блока, как иллюстрируется на Фиг. 15, информацию режима кодирования/предсказания, такую как тип макроблока/тип субмакроблока и режим внутреннего предсказания, как иллюстрируется на Фиг. 50, информацию предсказания движения, такую как идентификационный номер опорного изображения и вектор движения, идентификационную информацию коэффициента преобразования и параметр квантования для преобразованного коэффициента.
В дальнейшем процесс кодирования сигналов трех компонентов цвета для одного кадра с общим заголовком макроблока называется "как процесс общего кодирования", тогда как процесс кодирования сигналов трех компонентов цвета для одного кадра с различными независимыми заголовками макроблоков называется "как процесс независимого кодирования". Точно так же процесс декодирования данных изображения кадра из битового потока, полученного посредством кодирования сигналов трех компонентов цвета для одного кадра с общим заголовком макроблока, называется "как процесс общего кодирования", тогда как процесс декодирования данных изображения кадра из битового потока, полученного посредством кодирования сигналов трех компонентов цвета для одного кадра с различными независимыми заголовками макроблоков, называется "процесс независимого кодирования". В общем процессе кодирования в четырнадцатом варианте осуществления настоящего изобретения, как иллюстрируется на Фиг. 66, входной видеосигнал для одного кадра делится на макроблоки, причем каждый макроблок получают посредством сбора трех компонентов цвета. С другой стороны, в процессе независимого кодирования, как иллюстрируется на Фиг. 67, входной видеосигнал для одного кадра сначала делится на три компонента цвета. Каждый из трех компонентов цвета далее делится на макроблоки, каждый макроблок составляется из единственного компонента цвета. А именно, макроблок, который должен быть подвергнут общему процессу кодирования, включает в себя выборки трех компонентов цвета C0, C1 и C2, тогда как макроблок, который должен быть подвергнут независимому процессу кодирования, включает в себя только любую одну из выборок компонентов C0, C1 и C2.
Фиг. 68 - пояснительное представление, иллюстрирующее опорное отношение с предсказанием движения между картинками в направлении времени в устройстве кодирования и устройстве декодирования в четырнадцатом варианте осуществления. В этом примере единица данных, обозначенная толстой вертикальной линией, является изображением. Соотношение между картинкой и единицей обращения обозначается пунктирной линией. В случае процесса общего кодирования/декодирования одна картинка - это данные, представляющие видеосигнал для одного кадра, который содержит три компонента цвета. С другой стороны, в случае процесса независимого кодирования/декодирования одна картинка - это видеосигнал для одного кадра, который содержит любой один из компонентов цвета. Единица обращения (единица доступа) - это минимальная единица данных для обеспечения отметки времени для видеосигнала с целью синхронизации с аудио или звуковой информацией и т.п. В общем процессе кодирования/декодирования одна единица обращения содержит данные для одной картинки (обозначенной 427a на Фиг. 68). С другой стороны, в процессе независимого кодирования/декодирования одна единица обращения содержит три картинки (обозначенные 427b на Фиг. 68). Это потому, что только после того, как картинки всех трех компонентов цвета, совместно использующих одно и то же время отображения, получаются, может быть обеспечен воспроизведенный видеосигнал для одного кадра. Каждый из номеров сверху соответствующих картинок обозначает порядок кодирования или декодирования картинки в направлении времени (frame_num в AVC). На Фиг. 68 стрелка между картинками указывает опорное направление в предсказании движения. А именно, в процессе независимого кодирования/декодирования ссылка на предсказание движения между картинками, содержащимися в одной и той же единице обращения, и ссылка на предсказание движения между различными компонентами цвета не выполняется. Картинка каждого из компонентов цвета C0, C1 и C2 кодируется или декодируется при ограничении ссылки на предсказание для сигнала одного и того же компонента цвета. С такой конфигурацией в процессе независимого кодирования/декодирования в четырнадцатом варианте осуществления настоящего изобретения каждый из компонентов цвета может быть кодирован или декодирован вне зависимости от процесса кодирования/декодирования других компонентов цвета вообще, таким образом облегчая параллельный процесс.
В AVC определяется мгновенная картинка регенерации устройства декодирования (IDR), которое само выполняет внутреннее кодирование и переустанавливает содержимое в памяти опорной картинки, используемой для предсказания с компенсацией движения. Так как картинка IDR может быть декодирована вне зависимости от любых других картинок, эта картинка IDR используется как точка произвольного обращения. В процессе общего кодирования одна единица обращения равна одной картинке. В процессе независимого кодирования, однако, одна единица обращения составляется из множества картинок. Поэтому, когда некоторая картинка компонента цвета есть картинка IDR, другие картинки компонента цвета также являются картинками IDR, чтобы определить единицу обращения IDR, чтобы таким образом гарантировать функцию произвольного доступа.
В четырнадцатом варианте осуществления ниже идентифицирующая информация, указывающая, было ли кодирование выполнено в процессе общего кодирования или в процессе независимого кодирования, называется как сигнал идентификации общего кодирования/независимого кодирования.
Фиг. 69 - пояснительное представление, иллюстрирующее пример структуры битового потока, который сгенерирован устройством кодирования в четырнадцатом варианте осуществления, который должен быть введен в и декодирован устройством декодирования в четырнадцатом варианте осуществления. Фиг. 69 иллюстрирует структуру битового потока от уровня последовательности до уровня кадра. Сначала идентификационный сигнал 423 общего кодирования/индивидуального кодирования мультиплексируется в заголовке более высокого порядка на уровне последовательности (набор параметров последовательности в случае AVC). Каждый кадр кодируется для каждой единицы обращения. Блок NAL разделителя единицы обращения является уникальным блоком NAL для идентификации границы между единицами обращения в AVC. Когда идентификационный сигнал 423 общего кодирования/индивидуального кодирования указывает «кодирование картинки в процессе общего кодирования», единица обращения содержит закодированные данные для одной картинки. Предполагается, что картинка в этом случае есть данные, представляющие видеосигнал для одного кадра, которые содержат три компонента цвета, как описано выше. Закодированные данные в i-й единице обращения составляются как набор данных среза, Slice(i, j), где j - индекс данных среза в одной картинке.
С другой стороны, когда идентификационный сигнал 423 общего кодирования/индивидуального кодирования указывает «кодирование картинки в процессе независимого кодирования», одна картинка есть видеосигнал для одного кадра, который составляется из любого одного из компонентов цвета. В этом случае кодированные данные в p-й единице обращения составляются как набор данных среза, Slice(p, q, r), q-й картинки в единице обращения, где r - индекс данных среза в одной картинке. Для видеосигнала, составленного из трех компонентов цвета, как в случае RGB, количество возможных значений для q равно трем. Кроме того, в дополнение к видеосигналу, составленному из трех основных цветов, например, когда дополнительные данные, такие как информация коэффициента пропускания для альфа-смешивания, кодируются или декодируются как одна и та же единица обращения или когда видеосигнал, составленный из четырех или больше компонентов цвета (например, YMCK, используемый при цветной печати), кодируется или декодируется, количество возможных значений для q определяется равным четырем или более. Если устройство кодирования и устройство декодирования в четырнадцатом варианте осуществления согласно настоящему изобретению выбирает процесс независимого кодирования, каждый из компонентов цвета, составляющих видеосигнал, полностью независимо кодируется. Поэтому количество компонентов цвета может быть свободно изменено, не изменяя процесс кодирования/декодирования в принципе. Если формат сигнала для представления цвета видеосигнала изменяется в будущем, процесс независимого кодирования в четырнадцатом варианте осуществления имеет эффект, способный охватить такое изменение.
Чтобы реализовать конфигурацию, как описано выше, в четырнадцатом варианте осуществления настоящего изобретения сигнал 423 идентификации общего кодирования/независимого кодирования представляется в форме «количество картинок, содержащихся в одной единице обращения, которые независимо закодированы без взаимной ссылки на предсказание движения». В этом случае сигнал 423 идентификации общего кодирования/независимого кодирования может быть представлен количеством возможных значений для параметра q. Количество возможных значений для параметра q в дальнейшем называется как num_pictures_in_au. А именно, num_pictures_in_au=1 указывает "процесс общего кодирования", тогда как num_pictures_in_au=3 указывает "процесс независимого кодирования" в четырнадцатом варианте осуществления изобретения. Когда количество компонентов цвета равно или больше четырех, значение num_pictures_in_au может быть установлено, чтобы удовлетворять: num_pictures_in_au> 3. Вследствие такой сигнализации посредством простого декодирования и ссылки на num_pictures_in_au устройство декодирования может не только отличить закодированные данные, полученные общим процессом кодирования, и данные, полученные процессом независимого кодирования, но также и одновременно знать количество картинок одноцветного компонента, присутствующих в одной единице обращения. В результате обеспечивается совместимость с будущим расширением представления цвета видеосигнала. В то же время процесс общего кодирования и процесс независимого кодирования могут быть гладко обработаны в битовом потоке.
Фиг. 70 - пояснительное представление, иллюстрирующее структуру битового потока данных среза в каждом из процесса общего кодирования и процесса независимого кодирования. В битовом потоке, кодированном с помощью процесса независимого кодирования, флаг идентификации компонента цвета (color_channel_idc) обеспечивается в области заголовка в данных среза, чтобы разрешить идентификацию картинки компонента цвета в единице обращения, которой принадлежат данные среза, принятые устройством декодирования, чтобы достигнуть эффекта, описанного ниже. Срезы, имеющие одинаковое значение color_channel_idc, собираются в группу. А именно, срезам, имеющим различные значения color_channel_idc, не позволяют иметь какую-либо зависимость в кодировании/декодировании (например, ссылка на компенсацию движения, моделирование контекста и изучение вероятности вхождения в CABAC и т.п.). Такое определение гарантирует зависимость каждой из картинок в единице обращения в процессе независимого кодирования. Кроме того, значение frame_num (порядок кодирования/декодирования картинки, содержащей срез), мультиплексированное в каждом заголовке среза, является одним и тем же значением для картинок всех компонентов цвета в одной единице обращения.
Фиг. 71 - пояснительное представление, иллюстрирующее схематическую конфигурацию устройства кодирования в четырнадцатом варианте осуществления настоящего изобретения. На Фиг. 71 процесс общего кодирования реализуется в первом модуле 503a кодирования картинки, тогда как процесс независимого кодирования реализуется во вторых модулях 503b0, 503b1 и 503b2 кодирования картинки (каждый подготовлен для трех компонентов цвета). Входной видеосигнал 1 подается посредством коммутатора (SW) 501 к любому из первого модуля 503a кодирования картинки и модуля 502 выделения компонента цвета и вторых модулей 503b0-503b2 кодирования картинки. Коммутатор 501 управляется сигналом 423 идентификации общего кодирования/независимого кодирования, чтобы подать входной видеосигнал 1 к назначенному тракту. Ниже описывается случай, когда сигнал (num_pictures_in_au) 423 идентификации общего кодирования/независимого кодирования мультиплексируется в наборе параметров последовательности для входного видеосигнала в формате 4:4:4, который должен быть сигналом для выбора любого из процесса общего кодирования и процесса независимого кодирования для каждой последовательности. Этот случай концептуально является таким же, что и флаг 123 идентификации совместного использования режима внешнего предсказания, описанный в седьмом варианте осуществления настоящего изобретения, и флаг 123c идентификации режима совместного использования заголовка макроблока, описанный в одиннадцатом варианте осуществления настоящего изобретения. Для использования процесса общего кодирования устройство декодирования должно выполнять процесс общего кодирования. С другой стороны, для использования процесса независимого кодирования устройство декодирования должно выполнять процесс независимого кодирования. Поэтому сигнал 423 идентификации общего кодирования/независимого кодирования должен быть мультиплексирован в битовом потоке как информация, обозначающая процесс, который должен быть выполнен. Поэтому сигнал 423 идентификации общего кодирования/независимого кодирования вводится в модуль 504 мультиплексирования. Этот модуль мультиплексирования сигнала 423 идентификации общего кодирования/независимого кодирования может быть любым модулем, например модулем группы картинок (GOP), составленной из некоторых групп картинок в последовательности, пока эта единица находится в уровне более высокого порядка, на уровне, равном или выше, чем данная картинка.
Для реализации процесса общего кодирования первый модуль 503a кодирования картинки делит входной видеосигнал 1 на макроблоки, причем каждый макроблок получают посредством сбора выборок трех компонентов цвета, как иллюстрируется на Фиг. 66, и выполняется продолжение с помощью процесса кодирования на основе макроблоков. Процесс кодирования, выполненный в первом модуле 503a кодирования картинки, описан ниже. Для выбора процесса независимого кодирования модуль 502 выделения компонента цвета разделяет входной сигнал видео 1 на данные C0 для одного кадра, данные C1 для одного кадра и данные C2 для одного кадра, которые, каждый, подаются к соответствующему второму модулю 503b0-503b2 кодирования картинки. Каждый второй модуль 503b0-503b2 кодирования картинки делит сигнал для одного кадра, который получается посредством разделения видеосигнала для соответствующих компонентов цвета на макроблоки в форме, как иллюстрируется на Фиг. 67, и продолжает процесс кодирования в единицах макроблоков. Процесс кодирования во вторых модулях 503b0-503b2 кодирования картинки описан ниже.
Видеосигнал, составленный из трех компонентов цвета для одной картинки, подается на первый модуль 503a кодирования картинки, который в свою очередь выводит закодированные данные как видеопоток 422a. С другой стороны, видеосигнал, составленный из единственного компонента цвета для одной картинки, подается на каждый из вторых модулей 503b0-503b2 кодирования картинки. Затем вторые модули 503b0-503b2 кодирования картинки выводят закодированные данные как видеопотоки 422b0-422b2 соответственно. Видеопотоки 422b0-422b2 мультиплексируются в форме видеопотока 422c в модуле 504 мультиплексирования на основании состояния сигнала 423 идентификации общего кодирования/независимого кодирования. Затем видеопоток 422c выводится.
Для мультиплексирования видеопотока 422c в единице обращения для случая процесса независимого кодирования порядок мультиплексирования и порядок передачи данных среза в битовом потоке могут быть чередованы между картинками (компонентами цвета) в единице обращения (Фиг. 72). В этом случае устройство декодирования должно идентифицировать компонент цвета в единице обращения, которой принадлежат принятые данные среза. С этой целью используется флаг идентификации компонента цвета, мультиплексированный в области заголовка данных среза, как указано на Фиг. 70.
При такой конфигурации, когда устройство кодирования использует независимые три вторых модуля 503b0-503b2 кодирования картинки, чтобы закодировать картинки трех компонентов цвета в параллельном процессе, как в устройстве кодирования, проиллюстрированном на Фиг. 71, устройство кодирования может передать закодированные данные, как только данные среза картинки одного из компонентов цвета готовы к передаче, не ожидая подготовки закодированных данных других картинок компонентов цвета. В AVC одна картинка может быть разделена на множество данных среза для кодирования. Длина данных среза или количество макроблоков, содержащихся в срезе, могут гибко варьироваться согласно условиям кодирования. Чтобы гарантировать независимость процесса декодирования среза, контекст соседства, такой как внутреннее предсказание или арифметическое кодирование, не может использоваться между соседними срезами в пространстве изображения. Поэтому, когда длина данных среза увеличивается, получается более высокая эффективность кодирования. С другой стороны, если ошибка примешивается в битовый поток во время передачи или записи, более быстрое восстановление из ошибки может быть выполнено, поскольку длина данных среза становится короче. В результате может быть более вероятным, что ухудшение качества будет препятствоваться. Если длина или структура среза, порядок компонентов цвета или подобное фиксируются без мультиплексирования флага идентификации компонента цвета, условие генерирования битового потока фиксируется в устройстве кодирования. В результате устройство кодирования не может гибко справиться с различными требованиями кодирования.
Кроме того, конфигурация битового потока, как иллюстрируется на Фиг. 72, допускает сокращение переданного размера буфера, требуемого для передачи в устройстве кодирования, а именно сокращение задержки обработки устройства кодирования. Фиг. 72 иллюстрирует сокращение задержки обработки. Если мультиплексирование данных среза по картинкам не разрешено, устройство кодирования должно буферизовать закодированные данные других картинок, до тех пор пока кодирование картинки некоторого конкретного компонента цвета не завершается. Это означает генерирование задержки на уровне картинки. С другой стороны, как иллюстрируется в самой нижней части на Фиг. 72, если данные среза могут быть чередованы на уровне среза, модуль кодирования картинки для одного конкретного компонента цвета может вывести закодированные данные к модулю мультиплексирования в единицах данных среза, чтобы предотвратить задержку.
Данные среза, содержащиеся в одной картинке компонента цвета, могут быть переданы в порядке сканирования растра макроблоков или могут быть конфигурированы, чтобы разрешить чередованную передачу даже в отдельной картинке.
Далее операции первого и второго модулей кодирования картинки описаны подробно.
Обзор работы первого модуля кодирования картинки
Фиг. 73 иллюстрирует внутреннюю конфигурацию первого модуля 503a кодирования картинки. На Фиг. 73 входной видеосигнал 1 находится в формате 4:4:4 и вводится на основе макроблоков, как иллюстрируется на Фиг. 66, причем каждый макроблок получается посредством сбора трех компонентов цвета.
Сначала модуль 461 предсказания выбирает опорной изображение из данных опорного изображения с предсказанием с компенсацией движения, сохраненных в блоках памяти 16a, чтобы выполнить процесс предсказания с компенсацией движения на основе макроблоков, описанный выше. Блоки памяти 16a сохраняют множество данных опорного изображения, составленных из трех компонентов цвета по множеству моментов времени. Модуль 461 предсказания выбирает оптимальное опорное изображение из множества данных опорного изображения для каждого макроблока, чтобы выполнить предсказание движения. Данные опорного изображения, сохраненные в блоках памяти 16a, могут быть скомпонованы способом с последовательными кадрами для каждого компонента цвета, или выборки каждого из компонентов цвета могут быть сохранены способом с последовательными точками. Семь размеров блока подготавливаются к предсказанию с компенсацией движения. Сначала для каждого макроблока любой из размеров 16×16, 16×8, 8×16 и 8×8 может быть выбран, как иллюстрируется на Фиг. 32A-32D. Затем для выбора размера 8×8 любой из размеров 8×8, 8×4, 4×8 и 4×4 может быть выбран для каждого блока 8×8, как иллюстрируется на Фиг. 32E и 32H.
Модуль 461 предсказания выполняет процесс предсказания с компенсацией движения для всех или части размеров блока и размеров субблока на Фиг. 32A-32H, векторов движения в заранее определенном поисковом диапазоне и одного или более доступных опорных изображений для каждого макроблока. Затем разностный сигнал 4 предсказания получается для каждого блока, служащего единицей предсказания с компенсацией движения, с помощью информации вектора движения и идентификационного номера опорного изображения, используемых для предсказания, в вычитающем устройстве 3. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования. Из процессов предсказания, выполняемых в модуле 461 предсказания, модуль 461 предсказания выводит тип макроблока/тип субмакроблока 106, идентификационный номер опорного изображения/информацию вектора движения, с которым получается оптимальная эффективность предсказания для макроблока, который должен быть предсказан. Вся информация заголовка макроблока, такая как тип макроблока, тип субмакроблока, индекс опорного изображения и вектор движения, определяются как информация заголовка, общая для трех компонентов цвета, которые должны использоваться для кодирования, и мультиплексируются в битовом потоке. Для оценки оптимальности эффективности предсказания величина ошибки предсказания может быть оценена только для заранее определенного компонента цвета (например, компонента G в RGB, компонента Y в YUV), чтобы уменьшить объем вычислений. Альтернативно, величина ошибки предсказания для всех компонентов цвета может быть всесторонне оценена, чтобы получить оптимальную производительность предсказания, но объем вычислений в этом случае увеличивается. Далее, для окончательного выбора типа макроблока/типа субмакроблока 106 иногда учитывается коэффициент взвешивания 20 для каждого типа, который определяется модулем 19 управления кодированием.
Аналогично, модуль 461 предсказания также реализует внутреннее предсказание. При реализации внутреннего предсказания информация режима внутреннего предсказания выводится как выходной сигнал. В дальнейшем, когда внутреннее предсказание и предсказание с компенсацией движения особенно не отличаются друг от друга, выходной сигнал называется как служебная информация предсказания, содержащая информацию режима внутреннего предсказания, информацию вектора движения и идентификационный номер опорного изображения. Даже для внутреннего предсказания величина ошибки предсказания только для заранее определенного компонента цвета может быть оценена, или величина ошибки предсказания для всех компонентов цвета может быть всесторонне оценена. В конечном счете использование внутреннего предсказания или внешнего предсказания для типа макроблока определяется посредством оценки эффективности предсказания или эффективности кодирования в модуле 5 определения режима кодирования.
Затем разностный сигнал 4 предсказания, полученный посредством внутреннего предсказания или предсказания с компенсацией движения, на основании выбранного типа макроблока/типа субмакроблока 106 и служебной информации 463 предсказания, выводится к модулю 310 преобразования. Модуль 310 преобразования преобразовывает входной разностный сигнал 4 предсказания в коэффициент преобразования, который должен быть выведен к модулю 9 квантования. Для этого процесса размер блока, служащего в качестве единицы преобразования, может быть выбран из 4×4 и 8×8. Когда размер блока преобразования выбран, размер блока, выбранный во время кодирования, отражается в значении флага 464, обозначающего размер блока преобразования, для мультиплексирования флага 464 в битовый поток. Модуль 9 квантования квантует введенный коэффициент преобразования на основании параметра 21 квантования, определенного модулем 19 управления кодированием, чтобы вывести результат квантования в качестве квантованного коэффициента 10 преобразования к модулю 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования содержит информацию для трех компонентов цвета и статистически кодируется средством, таким как кодирование по Хаффману или арифметическое кодирование, в модуле 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования проходит через модуль 12 обратного квантования и модуль 312 обратного преобразования, чтобы быть восстановленным в локальный декодированный разностный сигнал 14 предсказания. Локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным на основании выбранного типа макроблока/типа субмакроблока 106 и служебной информации 463 предсказания, в сумматоре 18, чтобы сгенерировать локальное декодированное изображение 15. После реализации процесса удаления искажения блоков с помощью фильтра 462 удаления блочности локальное декодированное изображение 15 сохраняется в блоках памяти 16a, чтобы использоваться для последующего процесса предсказания с компенсацией движения. Флаг 24 управления фильтром удаления блочности, указывающий, применять ли фильтр удаления блочности к макроблоку, также вводится в модуль 11 кодирования с переменной длиной кода.
Квантованный коэффициент 10 преобразования тип макроблока/тип субмакроблока 106, служебная информация 463 предсказания и параметр 21 квантования, которые подаются на модуль 11 кодирования с переменной длиной кода, компонуются и формируются как битовый поток согласно заранее определенному правилу (синтаксическому). Затем битовый поток выводится как закодированные данные в единице NAL для каждых данных среза, полученных посредством сбора одного или более макроблока(ов) в форме, проиллюстрированной на Фиг. 66, к буферу 17 передачи. Буфер 17 передачи сглаживает битовый поток согласно диапазону тракта передачи, к которому устройство кодирования подсоединено, или скорости считывания носителя записи, чтобы вывести битовый поток как видеопоток 422a. Буфер 17 передачи информации выдает битовый поток к модулю 19 управления кодированием согласно состоянию накопления битовых потоков в буфере 17 передачи, чтобы управлять объемом кодов, которые должны быть сгенерированы при кодировании последующих видеокадров.
Так как выходной сигнал из первого модуля 503a кодирования картинки находится в единице среза, полученной посредством сбора трех компонентов, и эквивалентен количеству кодов в этой единице, полученной посредством сбора единиц обращения, буфер 17 передачи может быть все еще расположен в модуле 504 мультиплексирования.
В первом модуле 503a кодирования картинки в четырнадцатом варианте осуществления, так как все данные среза в последовательности могут быть идентифицированы как срезы, причем каждый срез содержит C0, C1 и C2 (а именно, срез, содержащий информацию для трех компонентов цвета) на основании сигнала 423 идентификации общего кодирования/независимого кодирования, флаг идентификации компонента цвета не мультиплексируется в заголовке среза.
Обзор работы второго модуля кодирования картинки
Фиг. 74 иллюстрирует внутреннюю конфигурацию второго модуля 503b0 (503b1 или 503b2) кодирования картинки. На Фиг. 74 входной видеосигнал 1 вводится на основе макроблоков, причем каждый макроблок составлен из выборки одного компонента цвета в форме, проиллюстрированной на Фиг. 67.
Сначала модуль 461 предсказания выбирает опорное изображение из данных опорного изображения с компенсацией движения, сохраненных в памяти 16b, чтобы выполнить процесс предсказания с компенсацией движения на основе макроблоков. Память 16b может хранить данные множества опорных изображений, причем каждые данные составлены из одного компонента цвета, по множеству моментов времени. Модуль 461 предсказания выбирает оптимальное опорное изображение из данных опорного изображения на основе макроблоков, чтобы выполнить компенсацию движения. Память 16b может использоваться с блоками памяти 16a для единицы из трех компонентов цвета. Семь размеров блока подготавливаются к предсказанию с компенсацией движения. Сначала для каждого макроблока любой из размеров 16×16, 16×8, 8×16 и 8×8 может быть выбран, как иллюстрируется на Фиг. 32A-32D. Затем для выбора размера 8×8 любой из размеров 8×8, 8×4, 4×8 и 4×4 могут быть выбраны для каждого блока 8×8, как иллюстрируется на Фиг. 32E-32H.
Модуль 461 предсказания выполняет процесс предсказания с компенсацией движения для всех или части размеров блока и размеров субблока на Фиг. 32A-32H, векторов движения в заранее определенном поисковом диапазоне и одного или более доступных опорных изображений для каждого макроблока. Затем разностный сигнал 4 предсказания получается для каждого блока, служащего в качестве единицы предсказания с компенсацией движения, посредством информации вектора движения и идентификационного номера опорного изображения, используемых для предсказания, в вычитающем устройстве 3. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования. Из процессов предсказания, выполняемых в модуле 461 предсказания, модуль 461 предсказания выводит тип макроблока/тип субмакроблока 106 и информацию вектора движения/идентификационный номер опорного изображения, с которым получается оптимальная эффективность предсказания для макроблока, который должен быть предсказан. Вся информация заголовка макроблока, такая как тип макроблока, тип субмакроблока, индекс опорного изображения и вектор движения, определяется как информация заголовка для одного компонента цвета сигнала входного видеосигнала 1, чтобы использоваться для кодирования, и мультиплексируется в битовый поток. Для оценки оптимальности эффективности предсказания величина ошибки предсказания оценивается только для одного компонента цвета, который должен быть закодирован. Для окончательного выбора типа макроблока/типа субмакроблока 106 иногда учитывается коэффициент взвешивания 20 для каждого типа, который определяется посредством модуля 19 управления кодированием.
Аналогично, модуль 461 предсказания также реализует внутреннее предсказание. При реализации внутреннего предсказания информация режима внутреннего предсказания выводится как выходной сигнал. В дальнейшем, когда внутреннее предсказание и предсказание с компенсацией движения сильно не отличаются друг от друга, выходной сигнал называется служебной информацией предсказания, содержащей информацию режима внутреннего предсказания, информацию вектора движения и идентификационный номер опорного изображения. Даже для внутреннего предсказания величина ошибки предсказания может быть оценена только для одного компонента цвета, который должен быть закодирован. В конечном счете использование внутреннего предсказания или внешнего предсказания для типа макроблока определяется на основании оценки эффективности предсказания или эффективности кодирования.
Затем разностный сигнал 4 предсказания, полученный на основании выбранного типа макроблока/тип субмакроблока 106, и служебная информация 463 предсказания выводятся к модулю 310 преобразования. Модуль 310 преобразования преобразовывает входной разностный сигнал 4 предсказания одного компонента цвета в коэффициент преобразования, который должен быть выведен к модулю 9 квантования. Для этого процесса размер блока, служащего единицей преобразования, может быть выбран из 4×4 и 8×8. Когда размер блока преобразования выбран, размер блока, выбранный во время кодирования, отражается в значении флага 464 обозначения размера блока преобразования для мультиплексирования в битовом потоке. Модуль 9 квантования квантует входной коэффициент преобразования на основании параметра 21 квантования, определенного посредством модуля 19 управления кодированием, чтобы вывести результат квантования как квантованный коэффициент 10 преобразования к модулю 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования содержит информацию для одного компонента цвета и статистически кодируется средством, таким как кодирование по Хаффману или арифметическое кодирование, в модуле 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования проходит через модуль 12 обратного квантования и модуль 312 обратного преобразования для восстановления до локального декодированного разностного сигнала 14 предсказания. Локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным на основании выбранного типа макроблоке/типа субмакроблока 106 и служебной информации 463 предсказания в сумматоре 18, чтобы сгенерировать локальное декодированное изображение 15. После реализации процесса удаления блочных искажений посредством фильтра 462 удаления блочности локальное декодированное изображение 15 сохраняется в памяти 16b, чтобы использоваться для последующего процесса предсказания с компенсацией движения. Флаг 24 управления фильтром удаления блочности, указывающий, применять ли фильтр удаления блочности к макроблоку, также вводится в модуль 11 кодирования с переменной длиной кода.
Квантованный коэффициент 10 преобразования, тип макроблока/тип субмакроблока 106, служебная информация 463 предсказания и параметр 21 квантования, которые подаются на модуль 11 кодирования с переменной длиной кода, упорядочиваются и формируются как битовый поток согласно заранее определенному правилу (синтаксическому). Затем битовый поток выводится как закодированные данные в единице NAL для данных каждого среза, полученных посредством сбора одного или более макроблока(ов) в форме, проиллюстрированной на Фиг. 67, к буферу 17 передачи. Буфер 17 передачи сглаживает битовый поток согласно диапазону тракта передачи, к которому устройство кодирования подсоединено, или скорости считывания носителя записи, чтобы вывести битовый поток как видеопоток 422b0 (422b1 или 422b2). Буфер 17 передачи выдает информацию обратной связи к модулю 19 управления кодированием согласно состоянию накопления битовых потоков в буфере 17 передачи, чтобы управлять объемом кодов, которые должны быть сгенерированы при кодировании последующих видеокадров.
Выходной сигнал из каждого из вторых модулей 503b0-503b2 кодирования картинки является срезом, составленным из данных для одного компонента цвета. Когда количество кодов должно управляться в единице из набора единиц обращения, общий буфер передачи для единицы, полученной мультиплексированием срезов всех компонентов цвета, может быть обеспечен в блоке 504 мультиплексирования для вывода информации обратной связи к модулю 19 управления кодированием для каждого из компонентов цвета на основании занятого объема в общем буфере передачи. Кроме того, в этом случае управление кодированием может быть выполнено посредством использования только объема сгенерированной информации для всех компонентов цвета или может быть выполнено с учетом состояния буфера 17 передачи каждого из компонентов цвета. Когда управление кодированием выполняется посредством использования только объема сгенерированной информации для всех компонентов цвета, функциональный эквивалент таковому буфера 17 передачи может быть реализован посредством общего буфера передачи в коммутирующем устройстве 504, чтобы исключить буфер 17 передачи.
Так как вторые модули 503b0-503b2 кодирования картинки в четырнадцатом варианте осуществления настоящего изобретения могут идентифицировать на основании сигнала 423 идентификации общего кодирования/независимого кодирования, что все данные среза в последовательности являются срезами одного компонента цвета (а именно, среза C0, среза C1 или среза C2), флаг идентификации компонента цвета всегда мультиплексируется в заголовке среза, чтобы позволить устройству декодирования идентифицировать отношение соответствия между срезом и данными картинки в единице обращения. Поэтому каждый из второго модуля 503b0-503b2 кодирования картинки может передать данные, как только получаются данные для одного среза, не ожидая накопления выходных сигналов для одной картинки из его собственного буфера 17 передачи.
Сигналу идентификации общего кодирования/независимого кодирования (num_pictures_in_au) разрешено одновременно представлять информацию (информацию идентификации общего кодирования) для того, чтобы отличить данные, закодированные процессом общего кодирования, и данные, закодированные процессом независимого кодирования, и информацию, указывающую, сколько картинок одного компонента цвета присутствует (количество компонентов цвета) в одной единице обращения. Однако каждая из вышеупомянутых двух информаций может быть закодирована как независимая информация.
Первый модуль 503a кодирования картинки и вторые модули 503b0-503b2 кодирования картинки отличаются друг от друга только в обработке заголовка макроблока и в структуре битового потока данных среза. Обработка заголовка макроблока здесь означает, обрабатывается ли информация заголовка макроблока как информация, общая для этих трех компонентов, или информация одного компонента цвета. Многие из основных блоков обработки на Фиг. 73 или 74, такие как модуль предсказания, модуль преобразования/модуль обратного преобразования, модуль квантования/модуль обратного квантования и фильтр удаления блочности, могут быть реализованы функциональными блоками, общими для первого модуля 503a кодирования картинки и вторых модулей 503b0-503b2 кодирования картинки только с различием в обработке этой информации, а именно: обрабатывается ли информация как информация для трех компонентов цвета или информация для одного компонента цвета. Поэтому первый модуль 503a кодирования картинки и вторые модули 503b0-503b2 кодирования картинки могут быть реализованы не только как полностью независимые блоки обработки кодирования, как на Фиг. 71. Произвольная комбинация основных компонентов, как иллюстрируется на Фиг. 73 или 74, может также реализовать создание различных устройств кодирования. Кроме того, посредством обеспечения блоков памяти 16a в способе последовательных кадров в первом модуле 503a кодирования картинки общая конфигурация запоминающего устройства опорных изображений может использоваться для первого модуля 503a кодирования картинки и вторых модулей 503b0-503b2 кодирования картинки.
Присутствие виртуального буфера потока (буфер кодированных картинок) для буферизации видеопотока 422c согласно последовательности, проиллюстрированной на Фиг. 69 и 70 и виртуальной памяти кадра (буфер декодированных картинок) для буферизации декодированных изображений 427a и 427b, который не иллюстрируется, предполагается в устройстве кодирования в четырнадцатом варианте осуществления настоящего изобретения. В этом случае видеопоток 422c генерируется так, чтобы не вызвать переполнение или потерю значимости буфера кодированных картинок или исчезновение буфера декодированных картинок. Управление главным образом выполняется в блоке 19 управления кодированием. Управление гарантирует, что устройство декодирования не терпит неудачу, когда видеопоток 422c декодируется согласно работе буфера кодированных картинок и буфера декодированных картинок (модель виртуального буфера) в устройстве декодирования. Модель виртуального буфера определяется следующим образом.
Буфером кодированных картинок управляют для каждой единицы обращения. Как описано выше, для процесса общего декодирования одна единица обращения содержит закодированные данные для одной картинки. С другой стороны, для процесса независимого декодирования одна единица обращения содержит закодированные данные для количества картинок, равного количеству компонентов цвета (для трех картинок, если используются три компонента цвета). Операция, определенная для буфера кодированных картинок, выполняется в моменты времени, когда первый бит и последний бит в единице обращения вводятся в буфер кодированных картинок и когда биты в единице обращения считываются из буфера кодированных картинок. Считывание из буфера кодированных картинок определяется как выполняемое немедленно. Предполагается, что все биты в единице обращения считываются из буфера кодированных картинок в одно и то же время. После считывания из буфера кодированных картинок биты в единице обращения вводятся в модуль анализа заголовка более высокого порядка и затем декодируются в первом модуле декодирования картинки или втором модуле декодирования картинки, как описано выше, чтобы быть выведенными как цветовой видеокадр, сгруппированный в единицу обращения. Процесс от считывания битов из буфера кодированных картинок до вывода цветного видеокадра в единице обращения немедленно выполняется согласно определению модели виртуального буфера. Цветовой видеокадр, сконфигурированный для каждой единицы обращения, вводят в буфер декодированных картинок, чтобы вычислить время вывода из буфера декодированных картинок. Время вывода из буфера декодированных картинок получается посредством суммирования заранее определенного времени задержки с временем считывания из буфера кодированных картинок. Время задержки может быть мультиплексированным в битовый поток, чтобы управлять устройством декодирования. Когда время задержки равно 0, а именно время вывода из буфера декодированных картинок такое же, как время считывания из буфера кодированных картинок, цветовой видеокадр выводится из буфера декодированных картинок одновременно с вводом цветного видеокадра в буфер декодированных картинок. Иначе, а именно когда время вывода из буфера декодированных картинок длиннее, чем время считывания из буфера кодированных картинок, цветовой видеокадр сохраняется в буфере декодированных картинок до времени вывода из буфера декодированных картинок. Как описано выше, работа буфера декодированных картинок определяется для каждой единицы обращения.
Фиг. 75 - пояснительный вид, иллюстрирующий схематическую конфигурацию устройства декодирования в четырнадцатом варианте осуществления настоящего изобретения. На Фиг. 75 процесс общего кодирования выполняется в первом модуле 603a декодирования картинки, тогда как процесс независимого кодирования выполняется в модуле 602 определения компонента цвета и вторых модулях 603b0, 603b1 и 603b2 декодирования картинки (каждый подготовлен к трем компонентам цвета).
Видеопоток 422c делится на единицы NAL в модуле 610 анализа заголовка более высокого порядка. Информация заголовка более высокого порядка, такая как набор параметров последовательности или набор параметров картинки, декодируется, чтобы быть сохраненной в заранее определенной области памяти в устройстве декодирования, к которой может быть обращение от первого модуля 603a декодирования картинки, модуля 602 определения компонента цвета и вторых модулей 603b0-603b2 декодирования картинки. Сигнал 423 идентификации общего кодирования/независимого кодирования (num_pictures_in_au), мультиплексированный для каждой последовательности, декодируется и сохраняется как часть информации заголовка более высокого порядка.
Декодированный num_pictures_in_au подается на коммутатор (SW) 601. Для num_pictures_in_au=1 коммутатор 601 подает модуль NAL среза для каждой картинки к первому модулю 603a декодирования картинки. Для num_pictures_in_au=3 коммутатор 601 подает единицу NAL среза для каждой картинки к модулю 602 определения компонента цвета. А именно, для num_pictures_in_au=1 первый модуль 603a декодирования картинки выполняет процесс общего кодирования. Для num_pictures_in_au=3 каждый из трех вторых модулей 603b0-603b2 декодирования картинки выполняет процесс независимого кодирования. Подробные операции первого модуля 603a декодирования картинки и вторых модулей 603b0-603b2 декодирования картинки описаны ниже.
Модуль 602 определения компонента цвета идентифицирует картинку компонента цвета в текущей единице обращения, которой единица NAL среза соответствует, на основании значения флага идентификации компонента цвета, проиллюстрированного на Фиг. 70, чтобы подать единицу NAL среза к подходящему одному из вторых модулей 603b0-603b2 декодирования картинки. С такой конфигурацией устройства декодирования, даже когда принимается битовый поток, закодированный со срезами, чередующимися в единице обращения, как иллюстрируется на Фиг. 72, получается эффект простого определения картинки компонента цвета, которому принадлежит срез, представляющий интерес, чтобы обеспечить правильное декодирование.
Обзор работы первого модуля декодирования картинки
Фиг. 76 иллюстрирует внутреннюю конфигурацию первого модуля 603a декодирования картинки. После деления видеопотока 442c согласно последовательности, иллюстрируемой на Фиг. 69 или 70, которая выводится из устройства кодирования, иллюстрированного на Фиг. 71, в единицы NAL в модуле 610 анализа заголовка более высокого порядка, первый модуль 603a декодирования картинки принимает единицы NAL в единицах срезов, причем каждый срез содержит C0, C1 и C2. Процесс декодирования выполняется на основе макроблоков, причем каждый макроблок состоит из трех компонентов цвета, проиллюстрированных на Фиг. 66, чтобы восстановить выходной кадр видео.
Модуль 25 декодирования с переменной длиной кода принимает в качестве входного видеопоток 442c, разделенный на единицы NAL, и дешифрует видеопоток 442c согласно заранее определенному правилу (синтаксическому), чтобы извлечь квантованный коэффициент 10 преобразования для трех компонентов цвета и информацию заголовка макроблока (тип макроблока/тип субмакроблока 106, служебную информацию 463 предсказания, флаг 464 обозначения размера блока преобразования и квантованный параметр 21), используемую как общую для трех компонентов цвета. Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, который выполняет тот же самый процесс, как выполняемый в первом модуле 503а кодирования картинки, чтобы выполнить процесс обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 312 обратного преобразования, который выполняет тот же самый процесс, как в первом модуле 503a кодирования картинки, для восстановления до локального декодированного разностного сигнала 14 предсказания (если флаг 464 обозначения размера блока преобразования присутствует в видеопотоке 422c, причем к флагу 464 обозначения размера блока преобразования обращаются в процессах обратного квантования и обратного преобразования). С другой стороны, из процессов, выполняемых в модуле 461 предсказания в первом модуле 503a кодирования картинки, модуль 461 предсказания включает в себя только процесс обращения к служебной информации 463 предсказания, чтобы сгенерировать предсказанное изображение 7. Тип макроблока/тип субмакроблока 106 и служебная информация 463 предсказания вводятся в модуль 461 предсказания, чтобы получить предсказанные изображения 7 для трех компонентов. Когда тип макроблока указывает внутреннее предсказание, предсказанные изображения 7 для трех компонентов цвета получаются согласно информации режима внутреннего предсказания из служебной информации 463 предсказания. С другой стороны, когда тип макроблока указывает внешнее предсказание, предсказанные изображения 7 для трех компонентов получаются согласно вектору движения и индексу опорного изображения из служебной информации 463 предсказания. Локальный декодированный разностный сигнал 14 предсказания и предсказанные изображения 7 суммируются в сумматоре 18, чтобы получить временные декодированные изображения (локальные декодированные изображения) 15 для трех компонентов. Так как временные декодированные изображения 15 используются для предсказания с компенсацией движения последующих макроблоков, процесс удаления блочных искажений выполняется в отношении временно декодированных выборок изображения для трех компонентов с помощью фильтра 462 удаления блочности, который выполняет тот же самый процесс, как в первом модуле 503a кодирования картинки. Затем временно декодированные выборки изображения выводятся как декодированное изображение 427a, которое должно быть сохранено в блоках памяти 16a. В это время процесс фильтра удаления блочности действует на временно декодированные изображения 15 на основании индикации флага 24 управления фильтром удаления блочности, дешифрованного модулем 25 декодирования с переменной длиной кода. Блоки памяти 16a сохраняют данные для множества опорных изображений, которые состоят из трех компонентов цвета, по множеству моментов времени. Модуль 461 предсказания выбирает опорное изображение, обозначенное индексом опорного изображения, извлеченным из битового потока для каждого макроблока из множества опорных изображений, чтобы сгенерировать предсказанное изображение. Данные опорного изображения могут быть запомнены способом последовательных кадров для каждого компонента цвета в блоках памяти 16a. Альтернативно, как опорное изображение, выборки соответствующих компонентов цвета могут быть сохранены способом последовательных точек в блоках памяти 16a. Декодированное изображение 427a содержит три компонента цвета и служит цветным видеокадром, составляющим единицу обращения 427a0 в процессе общего декодирования.
Обзор работы вторых модулей декодирования картинки
Фиг. 77 иллюстрирует внутреннюю конфигурацию каждого из вторых модулей 603b0-603b2 декодирования картинки. Видеопоток 442c согласно последовательности, иллюстрируемой на Фиг. 69 или 70, выводится из устройства кодирования, иллюстрированного на Фиг. 71, разделяется на единицы NAL в модуле 610 анализа заголовка более высокого порядка и затем классифицируется в единицы NAL среза для C0, C1 и C2 в модуле 602 определения компонента цвета. Каждый из вторых модулей 603b0-603b2 декодирования картинки принимает каждую единицу NAL среза для C0, C1 или C2 и затем выполняет процесс декодирования на основе макроблоков, причем каждый макроблок состоит из выборки одного компонента цвета, проиллюстрированной на Фиг. 67, чтобы восстановить кадр картинки видеовывода.
Модуль 25 декодирования с переменной длиной принимает видеопоток 442c в качестве входного и декодирует видеопоток 442c согласно заранее определенному правилу (синтаксическому), чтобы извлечь квантованный коэффициент 10 преобразования для одного компонента цвета и информацию заголовка макроблока (тип макроблока/тип субмакроблока 106, служебную информацию 463 предсказания, флаг 464 обозначения размера блока преобразования и квантованный параметр 21), используемую для одного компонента цвета. Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, который выполняет тот же самый процесс, как выполняется во втором модуле 503b0 (503b1 или 503b2) кодирования картинки, чтобы реализовать процесс обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 312 обратного преобразования, который выполняет тот же самый процесс, как во втором модуле 503b0 (503b1 или 503b2) кодирования картинки, для восстановления до локального декодированного разностного сигнала 14 предсказания (если флаг 464 обозначения размера блока преобразования присутствует в видеопотоке 422c, причем к флагу 464 обозначения размера блока преобразования обращаются в процессах обратного квантования и ортогонального обратного преобразования). С другой стороны, из процессов, выполняемых в модуле 461 предсказания во втором модуле 503b0 (503b1 или 503b2) кодирования картинки, модуль 461 предсказания включает в себя только процесс обращения к служебной информации 463 предсказания, чтобы сгенерировать предсказанное изображение 7. Тип макроблока/тип субмакроблока 106 и служебная информация 463 предсказания вводятся в модуль 461 предсказания, чтобы получить предсказанное изображение 7 для одного компонента цвета. Когда тип макроблока указывает внутреннее предсказание, предсказанное изображение 7 для одного компонента цвета получается согласно информации режима внутреннего предсказания из служебной информации 463 предсказания. С другой стороны, когда тип макроблока указывает внешнее предсказание, предсказанное изображение 7 для одного компонента цвета получается согласно вектору движения и индексу опорного изображения из служебной информации 463 предсказания. Локальный декодированный разностный сигнал 14 предсказания и предсказанное изображение 7 суммируются в сумматоре 18, чтобы получить временное декодированное изображение (локальное декодированное изображение) 15 для одного компонента цвета. Так как временное декодированное изображение 15 используется для предсказания с компенсацией движения последующих макроблоков, процесс удаления блочных искажений выполняется в отношении временной декодированной выборки изображения для одного компонента цвета посредством фильтра 26 удаления блочности, который выполняет тот же самый процесс, как во втором модуле 503b0 (503b1 или 503b2) кодирования картинки. После этого временная декодированная выборка изображения выводится как декодированное изображение 427b, которое должно быть сохранено в памяти 16b. В это время процесс фильтра удаления блочности действует в отношении временного декодированного изображения 15 на основании индикации флага 24 управления фильтром удаления блочности, дешифрованного посредством модуля 25 декодирования с переменной длиной кода. Декодированное изображение 427b содержит только выборку одного компонента цвета. Декодированные изображения 427b, выводимые из каждого второго модуля 603b0-603b2 кодирования картинки, которые обрабатываются параллельно на Фиг. 75, связываются в единицу обращения 427b0, которая должна быть составлена как цветовой видеокадр.
Как очевидно из вышеупомянутого описания, первый модуль 603a декодирования картинки и вторые модули 603b0-603b2 декодирования картинки отличаются друг от друга только в обработке информации заголовка макроблока и по структуре битового потока данных среза. Обработка информации заголовка макроблока означает, обрабатывается ли информация заголовка макроблока как информация, общая для этих трех компонентов, или как информация одного компонента цвета. Многие из основных блоков декодирования на Фиг. 73 или 74, такие как процесс предсказания с компенсацией движения, обратное преобразование и обратное квантование, могут быть реализованы функциональными блоками, общими для первого модуля 603a декодирования картинки и вторых модулей 603b0-603b2 декодирования картинки. Поэтому первый модуль 603a декодирования картинки и вторые модули 603b0-603b2 декодирования картинки реализуются не только как полностью независимые блоки обработки декодирования, как на Фиг. 75. Подходящая комбинация основных компонентов, как иллюстрируется на Фиг. 76 или 77, может реализовать формирование различных устройств декодирования. Кроме того, посредством обеспечения блоков памяти 16a в способе последовательных кадров в первом модуле 603a декодирования картинки общая конфигурация блоков памяти 16a и память 16b могут использоваться для первого модуля 603a декодирования картинки и вторых модулей 603b0-603b2 декодирования картинки.
В качестве вариации устройства кодирования, проиллюстрированного на Фиг. 71, устройство декодирования на Фиг. 75 может постоянно фиксировать сигнал 423 идентификации общего кодирования/независимого кодирования как "процесс независимого кодирования", чтобы принять и декодировать битовый поток, выводимый из устройства кодирования, конфигурированного, чтобы независимо кодировать все кадры, вообще не используя первый модуль 503a кодирования картинки. В качестве вариации устройства декодирования, проиллюстрированного на Фиг. 75, в использовании, основанном на том, что сигнал 423 идентификации общего кодирования/независимого кодирования постоянно установлен в «процесс независимого кодирования», устройство декодирования может быть конфигурировано, чтобы выполнить один только процесс независимого кодирования с исключением переключателя 601 и первого модуля 603a декодирования картинки.
Сигнал идентификации общего кодирования/независимого декодирования (num_pictures_in_au) осуществлен так, чтобы содержать информацию (информацию идентификации общего кодирования) для того, чтобы отличить друг от друга данные, закодированные в процессе общего кодирования, и данные, закодированные в процессе независимого кодирования, и информацию, указывающую, сколько картинок одного компонента цвета (количество компонентов цвета) присутствуют в одной единице обращения. Однако каждая из двух информаций, описанных выше, может быть закодирована как независимая информация.
Далее, первый модуль 603a кодирования картинки может быть снабжен функцией декодирования битового потока, совместимого с «высоким профилем» AVC, который получается посредством кодирования сообщения в обычном YUV формате 4:2:0 для трех компонентов за один раз. В модуле 610 анализа заголовка более высокого порядка формат, в котором закодирован битовый поток, определяется посредством обращения к идентификатору профиля, декодированному из видеопотока 422c. Затем результат определения передается как часть информации сигнальной линии сигнала 423 идентификации общего кодирования/независимого кодирования к переключателю 601 и первому модулю 603a декодирования картинки. С такой конфигурацией модуля 610 анализа заголовка более высокого порядка может быть сконфигурировано устройство декодирования, которое гарантирует совместимость с этим битовым потоком сигналов в обычном YUV формате 4:2:0.
В первом модуле 503a кодирования картинки в четырнадцатом варианте осуществления настоящего изобретения информация для трех компонентов цвета присутствует в данных среза. Кроме того, точно один и тот же процесс внутреннего/внешнего предсказания реализуется для трех компонентов цвета. Поэтому корреляция сигналов между компонентами цвета иногда остается в пространстве сигнала ошибки предсказания. Чтобы удалить корреляцию сигналов, например, процесс преобразования цветового пространства, который описан выше в тринадцатом варианте осуществления настоящего изобретения, может быть выполнен в отношении сигнала ошибки предсказания. Фиг. 78 и 79 иллюстрируют примеры первого модуля 503a кодирования картинки, имеющего конфигурацию, как описано выше. Фиг. 78 иллюстрирует пример, в котором процесс преобразования цветового пространства реализуется на уровне пикселей до процесса преобразования. В этом примере модуль 465 преобразования цветового пространства обеспечивается прежде модуля 310 преобразования, тогда как модуль 466 обратного преобразования цветового пространства обеспечивается после модуля 312 обратного преобразования. Фиг. 79 иллюстрирует пример, в котором процесс преобразования цветового пространства реализуется в то время как частотный компонент, который должен быть подвергнут процессу преобразования цветового пространства, соответственно выбирается для данных коэффициентов, полученных после реализации процесса преобразования. В этом примере модуль 465 преобразования цветового пространства обеспечивается после модуля 310 преобразования, тогда как модуль 466 обратного преобразования цветового пространства обеспечивается перед модулем 312 обратного преобразования. Посредством ограничения частотного компонента, который должен быть подвергнут преобразованию цветового пространства, эффект предотвращения гармонического шумового компонента, содержащегося в конкретном компоненте цвета от распространения другому компоненту цвета, который содержит мало шума, может быть получен. Когда частотный компонент, который должен быть подвергнут процессу преобразования цветового пространства, может быть адаптивно выбран, информация 467 сигнализации для того, чтобы позволить устройству декодирования определять выбор при кодировании, является мультиплексированной в битовом потоке.
В качестве процесса преобразования цветового пространства множество способов преобразования, как описано в тринадцатом варианте осуществления согласно настоящему изобретению, описанного выше, могут быть переключены для каждого макроблока согласно свойству сигнала изображения, которое должно быть закодировано. Альтернативно, выполнять ли преобразование, может быть определено для каждого макроблока. Также альтернативно, типы выбираемых способов преобразования могут быть обозначены на уровне последовательности или подобном. В этом случае выбор способа преобразования может быть сделан для каждого из картинки, среза или макроблока. Также альтернативно, выполняется ли процесс преобразования цветового пространства до или после ортогонального преобразования, может быть выбрано. Для реализации процессов адаптивного кодирования эффективности кодирования всех выбираемых опций могут быть оценены в модуле 5 определения режима кодирования, чтобы выбрать процесс адаптивного кодирования, имеющий самую высокую эффективность кодирования. Кроме того, для реализации процессов адаптивного кодирования информация 467 сигнализации, чтобы позволить устройству декодирования определять выбор при кодировании, мультиплексируется в битовый поток. Такая сигнализация может быть обозначена на уровне среза, картинки, GOP или последовательности, отличной от таковой макроблока.
Устройства декодирования, соответствующие устройствам кодирования, проиллюстрированным на Фиг. 78 и 79, иллюстрируются на Фиг. 80 и 81. Фиг. 80 иллюстрирует устройство декодирования для декодирования битового потока, который закодирован посредством преобразования цветового пространства, до процесса преобразования посредством устройства кодирования согласно Фиг. 78. Модуль 25 декодирования с переменной длиной кода декодирует из битового потока информацию 467 сигнализации, такую как информацию для выбора, выполнять ли преобразование в модуле 466 обратного преобразования цветового пространства, или информацию для выбора выполняемого способа преобразования в модуле 466 обратного преобразования цветового пространства, чтобы подать декодированную информацию в модуль 466 обратного преобразования цветового пространства. Устройство декодирования согласно Фиг. 80 реализует процесс преобразования цветового пространства в отношении обратно преобразованного сигнала ошибки предсказания на основании вышеупомянутой информации в модуле 466 обратного преобразования цветового пространства. Фиг. 81 иллюстрирует устройство декодирования для декодирования битового потока, закодированного посредством преобразования цветового пространства, в то же время выбирая частотный компонент, который должен быть подвергнут преобразованию цветового пространства после процесса преобразования устройством кодирования, иллюстрированным на Фиг. 79. Модуль декодирования с переменной длиной кода декодирует из битового потока информацию 467 сигнализации, которая является идентификационной информацией, содержащей информацию для выбора, реализовать ли преобразование в модуле 466 обратного преобразования цветового пространства, информацию для выбора выполняемого способа преобразования в этом модуле обратного преобразования цветового пространства и информацию для задания частотного компонента, который должен быть подвергнут преобразованию цветового пространства, чтобы подать декодированную информацию на модуль 466 обратного преобразования цветового пространства. Устройство декодирования, иллюстрируемое на Фиг. 81, реализует процесс преобразования цветового пространства в отношении данных обратно квантованного коэффициента преобразования на основании декодированной информации в модуле 466 обратного преобразования цветового пространства.
В качестве устройства декодирования, иллюстрируемого на Фиг. 75, первый модуль 603a декодирования картинки в каждом из устройств декодирования на Фиг. 80 и 81 снабжается функцией декодирования битового потока, совместимой с «высоким профилем» AVC, полученным посредством совместного кодирования видеосигнала в обычном YUV формате 4:2:0 для этих трех компонентов. Модуль 610 анализа заголовка более высокого порядка обращается к идентификатору профиля, декодированному из видеопотока 422c, чтобы определить формат, в котором закодирован битовый поток. Затем результат определения передается как часть информации сигнальной линии сигнала 423 идентификации общего кодирования/независимого кодирования к коммутатору 601 и первому модулю 603a кодирования картинки. С такой конфигурацией может быть сконфигурировано устройство декодирования для того, чтобы гарантировать совместимость с битовым потоком в обычном формате YUV 4:2:0.
Фиг. 82 иллюстрирует структуру закодированных данных информации заголовка макроблока, содержащихся в битовом потоке в обычном YUV формате 4:2:0. Информация заголовка макроблока, иллюстрируемая на Фиг. 82, отличается от информации заголовка компонента Cn, проиллюстрированной на Фиг. 50, только тем, что содержатся закодированные данные режима 144 внутреннего предсказания информации о цвете, когда типом макроблока является внутреннее предсказание. Когда типом макроблока является внешнее предсказание, структура закодированных данных информации заголовка макроблока является такой же, как структура информации заголовка компонента Cn, проиллюстрированной на Фиг. 50. Однако вектор движения компонента цвета генерируется способом, отличным от способа для компонента яркости, используя идентификационный номер опорного изображения и информацию вектора движения, содержащиеся в информации заголовка макроблока.
Работа устройства декодирования для того, чтобы гарантировать совместимость потоком битовых сигналов в обычном формате YUV 4:2:0, описана ниже. Как описано выше, предполагается, что первый модуль 603a декодирования картинки имеет функцию декодирования битового потока в обычном формате YUV 4:2:0. Внутренняя конфигурация первого модуля 603a декодирования картинки является такой же, как иллюстрируется на Фиг. 76.
Работа модуля 25 декодирования с переменной длиной кода из первого модуля декодирования картинки, имеющего функцию декодирования битового потока в обычном формате YUV 4:2:0, описана ниже. После ввода видеопотока 422c в модуль декодирования с переменной длиной кода модуль декодирования с переменной длиной кода декодирует флаг индикации формата информации о цвете. Флаг индикации формата информации о цвете содержится в заголовке параметра последовательности видеопотока 422c и указывает входной формат видеоизображения. В этом случае формат входного видеоизображения - любой из формата 4:4:4, формата 4:2:2, формата 4:2:0 и формата 4:0:0. Процесс декодирования информации заголовка макроблока видеопотока 422c переключается в зависимости от значения флага индикации формата информации о цвете. Когда тип макроблока указывает внутреннее предсказание и флаг индикации формата информации о цвете указывает формат 4:2:0 или формат 4:2:2, модуль 25 декодирования с переменной длиной кода декодирует режим 144 внутреннего предсказания информации о цвете из битового потока. Когда флаг индикации формата информации о цвете указывает 4:4:4 формат, модуль 25 декодирования с переменной длиной кода пропускает декодирование режима 144 внутреннего предсказания информации о цвете. Когда флаг индикации формата информации о цвете указывает 4:0:0 формат, модуль 25 декодирования с переменной длиной пропускает декодирование режима 144 внутреннего предсказания информации о цвете, так как входной видеосигнал в формате (4:0:0) означает, что входной видеосигнал составлен только из одного сигнала яркости. Процесс декодирования информации заголовка макроблока, кроме режима 144 внутреннего предсказания информации о цвете, является таким же, как процесс модуля декодирования с переменной длиной кода в первом модуле 603а декодирования картинки, который не снабжен функцией декодирования битового потока в обычном формате YUV 4:2:0. После ввода видеопотока 422c в модуль 25 декодирования с переменной длиной кода посредством вышеупомянутого процесса извлекаются флаг индикации формата информации о цвете (не показан) и квантованный коэффициент 10 преобразования и информация заголовка макроблока (тип макроблока/тип субмакроблока 106, служебная информация 463 предсказания, флаг 464 обозначения размера блока преобразования и параметр 21 квантования) для трех компонентов цвета. Флаг индикации формата информации о цвете (не показан) и служебная информация 463 предсказания подаются на модуль 461 предсказания, чтобы получить предсказанные изображения 7 для этих трех компонентов.
Фиг. 83 иллюстрирует внутреннюю конфигурацию модуля 461 предсказания в первом модуле кодирования картинки, которая гарантирует совместимость с битовым потоком в обычном формате YUV 4:2:0, и его работа описана ниже.
Коммутатор (переключатель) 4611a определяет тип макроблока. Когда тип макроблока указывает внутреннее предсказание, коммутатор (модуль коммутации) 4611b определяет значение флага индикации формата информации о цвете. Когда значение флага индикации формата информации о цвете указывает любой из формата 4:2:0 и формата 4:2:2, предсказанные изображения 7 для этих трех компонентов получают согласно информации режима внутреннего предсказания и информации режима внутреннего предсказания информации о цвете из служебной информации 463 предсказания. Среди предсказанных изображений 7 для трех компонентов предсказанное изображение сигнала яркости генерируется в модуле 4612 внутреннего предсказания сигнала яркости согласно информации режима внутреннего предсказания. Предсказанные изображения двух сигналов информации о цвете генерируются в модуле 4613 внутреннего предсказания сигнала цвета, который выполняет процесс, отличный от процесса для компонента яркости согласно информации режима внутреннего предсказания информации о цвете. Когда значение флага индикации формата информации о цвете указывает формат 4:4:4, предсказанные изображения для всех этих трех компонентов генерируются в модуле 4612 внутреннего предсказания сигнала яркости согласно информации режима внутреннего предсказания. Когда значение флага индикации формата информации о цвете указывает 4:0:0 формат, только предсказанное изображение сигнала яркости генерируется в модуле 4612 внутреннего предсказания сигнала яркости согласно информации режима внутреннего предсказания, так как сигнал в формате 4:0:0 состоит из одного сигнала (одного компонента) яркости.
Когда тип макроблока указывает внешнее предсказание в коммутаторе 4611a, коммутатор 4611c определяют значение флага индикации формата информации о цвете. Когда значение флага индикации формата информации о цвете указывает любой из формата 4:2:0 и формата 4:2:2, предсказанное изображение генерируется в модуле 4614 внешнего предсказания сигнала яркости для сигнала яркости посредством способа генерирования предсказанного изображения сигнала яркости, определенного в стандарте AVC, согласно вектору движения и индексу опорного изображения из служебной информации 463 предсказания. Для каждого из предсказанных изображений двух сигналов информации о цвете вектор движения информации о цвете (цветности) генерируется в модуле 4615 внешнего предсказания сигнала информации о цвете посредством масштабирования вектора движения, полученного из служебной информации 463 предсказания на основании формата информации о цвете. Предсказанное изображение генерируется из опорного изображения, обозначенного индексом опорного изображения, полученным из служебной информации 463 предсказания на основании вектора движения информации о цвете согласно способу, определенному в стандарте AVC. Когда значение флага индикации формата информации о цвете указывает 4:0:0 формат, генерируется только предсказанное изображение сигнала яркости в модуле 4614 внешнего предсказания сигнала яркости согласно вектору движения и индексу опорного изображения, так как 4:0:0 формат указывает, что сигнал состоит из одного сигнала яркости (одного компонента).
Как описано выше, средство генерирования предсказанных изображений сигналов информации о цвете в обычном формате YUV 4:2:0 предоставляется, чтобы переключить средство, используемое для генерирования предсказанных изображений для этих трех компонентов, согласно значению флага индикации формата информации о цвете, декодированного из битового потока. Поэтому устройство декодирования, которое гарантирует совместимость с битовым потоком в обычном формате YUV 4:2:0, может быть конфигурировано.
Если информация, указывающая, является ли битовый поток декодируемым даже устройством декодирования, которое не поддерживает процесс преобразования цветового пространства, как в случае, когда устройство декодирования, проиллюстрированное на Фиг. 75, предоставляется для видеопотока 422c, поданного на устройство декодирования на Фиг. 80 и 81 для каждого набора параметра последовательности или подобного, битовый поток может быть декодирован в любом из устройств декодирования, проиллюстрированных на Фиг. 80, 81 и 75 согласно его собственной эффективности декодирования. В результате может быть получен эффект легкого гарантирования совместимости с битовым потоком.
Пятнадцатый вариант осуществления
Пятнадцатый вариант осуществления согласно настоящему изобретению описывает другой вариант осуществления устройства кодирования и устройства декодирования в четырнадцатом варианте осуществления изобретения, как иллюстрируется на Фиг. 71 и 75. Этот пятнадцатый вариант осуществления отличается от четырнадцатого варианта осуществления изобретения только структурой битового потока, который должен быть введен в и выведен из устройства кодирования и устройства декодирования. Устройство кодирования в этом пятнадцатом варианте осуществления мультиплексирует закодированные данные в структуре битового потока, иллюстрированной на Фиг. 84.
В битовом потоке, имеющем структуру, иллюстрированную на Фиг. 69, AUD NAL содержит информацию, primary_pic_type, в качестве элемента. Фиг. 85 иллюстрирует информацию типа кодирования картинки, когда кодируются данные картинки в единице обращения, начинающейся с акустической единицы NAL.
Например, primary_pic_type=0 указывает, что все срезы в картинке являются внутренне закодированными. Для primary_pic_type=1 картинка может содержать срез, который должен быть внутренне закодирован, и срез, который может быть подвергнут предсказанию с компенсацией движения посредством использования только одного списка опорных картинок. Так как primary_pic_type является информацией для определения режима кодирования, который может закодировать одну картинку, устройство кодирования оперирует информацией primary_pic_type, чтобы разрешить кодирование, подходящее для различных условий, таких как свойство входного видеосигнала и функции произвольного доступа. Так как только один primary_pic_type предоставляется для каждой единицы обращения в вышеупомянутом четырнадцатом варианте осуществления изобретения, primary_pic_type является общим для картинок трех компонентов цвета в единице обращения, когда выполняется процесс независимого кодирования. В этом пятнадцатом варианте осуществления для независимого кодирования каждой из картинок компонентов цвета primary_pic_type для оставшихся двух компонентов цвета картинок дополнительно вставляются в AUD NAL, иллюстрируемую на Фиг. 69, согласно значению num_pictures_in_au. Альтернативно, как в случае структуры битового потока, иллюстрированной на Фиг. 84, закодированные данные каждой из картинок компонентов цвета конфигурируются, чтобы начинаться с единицы NAL (разделитель каналов цвета), указывающей начало картинки компонента цвета, и единица CCD NAL конфигурируется, чтобы содержать информацию primary_pic_type соответствующей картинки. Так как закодированные данные соответствующих картинок компонентов цвета все вместе мультиплексируются для одной картинки в этой структуре, флаг идентификации компонента цвета (color_channel_idc), описанный в четырнадцатом варианте осуществления изобретения, содержится не в заголовке среза, а в единице CCD NAL. В результате информация флага идентификации компонента цвета, который может потребоваться для мультиплексирования для каждого среза, может быть сконцентрирована в данных для каждой картинки. Поэтому получается эффект сокращения служебной информации. Кроме того, достаточно обнаружить единицу CCD NAL, составленную как последовательность байтов, чтобы верифицировать color_channel_idc только один раз для картинки одного компонента цвета. Поэтому, так как заголовок картинки компонента цвета может быть быстро найден, не выполняя процесс декодирования с переменной длиной кода, устройству декодирования больше не требуется верифицировать color_channel_idc в каждом заголовке среза, чтобы отделить единицу NAL, которая должна быть декодирована для каждого компонента. В результате данные могут быть «гладко» поданы ко второму модулю декодирования картинки.
С другой стороны, при такой конфигурации уменьшается эффект сокращения размера буфера и задержки обработки устройства кодирования, как описано в четырнадцатом варианте осуществления настоящего изобретения со ссылками на Фиг. 72. Поэтому сигнализация может быть выполнена на уровне более высокого порядка (последовательности или GOP), чтобы указать, что флаг идентификации компонента цвета является мультиплексированным для каждого среза или картинки каждого компонента цвета. В такой структуре битового потока устройство кодирования может быть гибко установлено согласно его режиму использования.
В качестве другого варианта осуществления закодированные данные могут быть мультиплексированы в структуре битового потока, проиллюстрированной на Фиг. 86. На Фиг. 86 color_channel_idc и primary_pic_type, которые содержатся в единице CCD NAL в случае Фиг. 84, содержатся в каждой AUD. В структуре битового потока в этом пятнадцатом варианте осуществления одна картинка (компонент цвета) содержится в одной единице обращения даже в случае процесса независимого кодирования. Даже в такой структуре получается эффект сокращения служебной информации посредством концентрации информации флага идентификации компонента цвета в данных для каждого картинки. Кроме того, достаточно обнаружить AUD NAL, составленную как последовательность байтов, чтобы выполнить только одну верификацию color_channel_idc для каждой картинки. Головная часть картинки компонента цвета может быть быстро найдена, не выполняя процесс декодирования с переменной длиной кода. Поэтому устройство декодирования больше не должно верифицировать color_channel_idc в каждом заголовке среза, чтобы выделить единицу NAL, которая должна быть декодирована для каждого компонента. В результате данные могут быть «гладко» поданы ко второму модулю декодирования картинки. С другой стороны, так как изображение с одним полем или с одним кадром состоит из трех единиц обращения, необходимо обозначить, что эти три единицы обращения являются данными картинки, «совместно использующими» один и тот же момент времени. Поэтому в структуре битового потока, иллюстрированной на Фиг. 86, AUD может также содержать порядковый номер каждой картинки (порядок кодирования/декодирования в направлении времени). С такой структурой устройство декодирования может верифицировать порядок декодирования и отображения каждой картинки, атрибута компонента цвета, возможность IDR и т.п., не декодируя данные среза вообще, таким образом эффективно выполняя редактирование и специальное воспроизведение на уровне битового потока.
Кроме того, в структуре битового потока на Фиг. 69, 84 или 86 информация, обозначающая количество единиц NAL среза, которые должны содержаться в картинке одного компонента цвета, могут быть сохранены в AUD или области CCD.
Для всех вариантов осуществления, описанных выше, каждый процесс преобразования и процесс обратного преобразования может быть преобразованием, которое гарантирует ортогональность, такую как DCT, или может быть преобразованием, которое не является ортогональным преобразованием, как в случае DCT в строгом смысле, чтобы быть объединенными с процессом квантования или обратного квантования, чтобы аппроксимировать ортогональность, как в случае AVC. Альтернативно, сигнал ошибки предсказания может быть закодирован как информация на уровне пикселей, не выполняя преобразование.
Шестнадцатый вариант осуществления
Этот шестнадцатый вариант осуществления описывает устройство кодирования, которое использует внутрикадровое или межкадровое адаптивное предсказание, чтобы выполнить кодирование в единицах прямоугольных областей, полученных посредством деления видеокадра, введенного в 4:4:4 формате, независимо для каждого компонента цвета, причем каждая прямоугольная область состоит из Mi×Mi пикселей (i=0, 1 или 2), и соответствующее устройство декодирования. Здесь Mi указывает размер области, полученной посредством деления сигнала i-го компонента цвета в видеокадре.
1. Обзор работы устройства кодирования
Фиг. 87 иллюстрирует конфигурацию устройства кодирования видео в шестнадцатом варианте осуществления настоящего изобретения. Входной видеосигнал 1 в формате 4:4:4 разделяется на экранные компоненты соответствующих компонентов цвета 505b0, 505b1 и 505b2 в модуле 502 выделения компонента цвета, которые затем вводятся во вторые модули 503b0, 503b1 и 503b2 кодирования картинки, каждый имеющий одинаковую конфигурацию. В это время от модуля 502 выделения компонента цвета информация 506b0, 506b1 и 506b2, обозначающая размер Mi прямоугольной области, соответствующей единице кодирования в соответствующих модулях 503b0, 503b1 и 503b2 кодирования картинки, каждая, вводятся в соответствующие модули 503b0, 503b1 и 503b2 кодирования картинки. В результате модули 503b0, 503b1 и 503b2 кодирования картинки для кодирования компонента цвета Ci делят соответствующие экранные компоненты 505b0, 505b1 и 505b2 на основании размера Mi прямоугольной области, чтобы выполнить кодирование в единицах прямоугольных областей.
Ниже работа каждого модуля 503b0, 503b1 и 503b2 кодирования картинки описана подробно. Модули 503b0, 503b1 и 503b2 кодирования картинки будут описаны в шестнадцатом варианте осуществления настоящего изобретения как вариация конфигурации, проиллюстрированной на Фиг. 74. Фиг. 88 иллюстрирует внутреннюю конфигурацию каждого модуля 503b0, 503b1 и 503b2 кодирования картинки. На Фиг. 88 функциональные блоки и сигнальные линии, обозначенные одинаковыми ссылочными позициями, как таковые из модуля кодирования картинки, иллюстрируемого на Фиг. 74, являются такими же, как таковые на Фиг. 74, если иначе не указано. Для следующего описания модули 503b0, 503b1 и 503b2 кодирования картинки, экранные компоненты 505b0, 505b1 и 505b2 соответствующих компонентов цвета иллюстративно обозначаются входным сигналом 505. Таким же образом информация 506b0, 506b1 и 506b2, обозначающая размер Mi прямоугольной области, соответствующей единице кодирования, иллюстративно обозначается информацией 506 индикации размера кодированного блока. Входной сигнал 505 делится на прямоугольные блоки посредством модуля 40 разделения на блоки на основании информации 506 индикации размера кодированного блока. В следующем описании входной сигнал 505, соответствующий компоненту цвета Ci, иногда называется как картинка в качестве единицы данных для процесса кодирования.
0
1
2
Когда входной видеосигнал 1 является сигналом, представленным в цветовом пространстве сигналов яркости/информации о цвете (например, Y, Cb и Cr или Y, Co и Cg и т.п.), имеется способ кодирования распределения компонента яркости в качестве экранного компонента 505b0 и компонентов цвета в качестве экранных компонентов 505b1 и 505b2 во входном сигнале 505. В этом случае компонент яркости является сигнальным компонентом, в котором концентрируется информация текстуры, содержащаяся в сигнале изображения, тогда как каждый из сигналов информации о цвете является сигнальным компонентом, из которого удалена корреляция с компонентом яркости, ассоциированным с информацией текстуры, чтобы визуально играть роль окраски монохроматического изображения. Поэтому в предсказании сигнала, таком как межкадровое предсказание с компенсацией движения, на основании структуры текстуры или межкадрового пространственного предсказания, как используется в AVC, размер блока, служащего единицей предсказания, не обязательно должен быть таким же, как у компонента яркости. Напротив, для сигнала информации о цвете предсказание не обязательно выполняется в блоке того же размера, как у компонента яркости. Полагается, что предсказание в блоках различных размеров, которые допускают максимальное использование корреляции сигналов информации о цвете на экране, может повысить эффективность кодирования. Например, когда компонент Y является C0, компонент Cb является C1 и компонент Cr является C2, размер блока каждого из компонентов цвета задается как больший, чем размер компонента яркости, посредством установки M=16 и M=M=32. В результате для двух из этих трех компонентов служебная информация (режим предсказания, вектор движения и т.п.) для каждой единицы кодирования может быть сокращена до приблизительно 1/4 от таковой компонента яркости. Это состояние иллюстрируется на Фиг. 89.
Размер Mi может быть определен согласно размеру картинки. Например, при сравнении между видеоизображениями сигнала HDTV (телевидения с высоким разрешением) (1920 пикселей × 1080 строк) и видеоизображением с низкой разрешающей способностью сигнала CIF (формата обмена графическими данными) (352 пикселя × 288 строк), имеющего одинаковое содержание, блок 4 пикселей × 4 строки сигнала HDTV имеет размер только области одного пикселя в сигнале формата CIF. Поэтому, когда разрешение изображения становится выше, существенная область текстуры изображения, охваченная каждым пикселем, уменьшается. При межкадровом предсказании с компенсацией движения или внутрикадровом пространственном предсказании подобие структуры текстуры первоначального изображения обнаруживается, чтобы использовать сигнальную область, имеющую самое высокое подобие в качестве значения предсказания. Поэтому, если некоторая степень структуры текстуры не сохранена в сигнале в блоке, соответствующем единице предсказания, предсказание успешно не выполняется (эффективность предсказания сдерживается шумовым компонентом). Поэтому желательно, чтобы блок большого размера был определен для видеоизображения с высоким разрешением, чтобы охватить область текстуры, которая иначе охватывается в случае видеоизображения с низким разрешением. Таким образом, размер Mi может быть увеличен, когда размер изображения становится большим. Затем на прямоугольную область, составленную из Mi×Mi пикселей, ссылаются как на макроблок.
Для входного сигнала 505, разделенного на макроблоки модулем 40 разделения на блоки, процесс внутреннего предсказания для выполнения пространственного предсказания из локальных декодированных соседних пикселей текущей картинки, которые сохранены в памяти 16b, или процесс предсказания с компенсацией движения для каждого компонента цвета, используя опорное изображение от данных предсказания опорного изображения для одного кадра или больше, который сохранен в памяти 16b, выполняется в модуле 461 предсказания. Так как обработка модуля 461 предсказания в этом шестнадцатом варианте осуществления отличается от такового в модуле 461 предсказания из Фиг. 74, этот процесс должен быть описан ниже.
1.1 Процесс внутреннего предсказания
Процесс внутреннего предсказания выполняется в модуле 461 предсказания для каждого макроблока посредством использования опорного изображения 701, сохраненного в памяти 16b. Внутреннее предсказание имеет два режима. Один - режим внутреннего N×N предсказания для выполнения пространственного предсказания, используя соседние пиксели для каждого блока, составленного из N пикселей × N строк. Другой - режим внутреннего предсказания единицы макроблока для выполнения пространственного предсказания, используя соседние пиксели для каждого макроблока, проиллюстрированного на Фиг. 89.
(a) Режим внутреннего N×N предсказания
После того как макроблок делится на блоки, где каждый блок составлен из N×N пикселей, пространственное предсказание выполняется для каждого блока. В качестве размера блока N, соответствующего единице внутреннего N×N предсказания, выбирается размер, который может быть получен посредством одинакового разделения макроблока размером Mi. Например, для Mi=16 N - любое из 4 и 8, и для Mi=32 N - любое из 4, 8 и 16. В качестве значения предсказания используются пиксели соседних (верхний левый, верхний, верхний правый и левый) блоков текущей картинки, которые были уже закодированы и подвергнуты локальному процессу декодирования для сохранения в памяти 16b. В качестве режима предсказания, например, готовится множество режимов, как иллюстрируется на Фиг. 3. Как в первом варианте осуществления настоящего изобретения, описанного выше, Фиг. 3 иллюстрируют девять режимов предсказания для N=4. Любой из девяти режимов предсказания выбирается для каждого блока 4×4 пикселей.
Intra4×4_pred_mode=0: использовать верхние соседние пиксели в качестве предсказанного изображения
Intra4×4_pred_mode=1: использовать левые соседние пиксели в качестве предсказанного изображения
Intra4×4_pred_mode=2: использовать среднее значение восьми соседних пикселей в качестве предсказанного изображения
Intra4×4_pred_mode=3: вычислить взвешенное среднее число каждых двух или трех пикселей из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по диагонали вниз влево под 45 градусов).
Intra4×4_pred_mode=4: вычислить взвешенное среднее число каждых двух или трех пикселей из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по диагонали вниз вправо под 45 градусов)
Intra4×4_pred_mode=5: вычислить взвешенное среднее число каждых двух или трех пикселей из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по вертикали вправо под 22,5 градуса)
Intra4×4_pred_mode=6: вычислить взвешенное среднее число каждых двух или трех пикселей из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по горизонтали вниз под 67,5 градусов)
Intra4×4_pred_mode=7: вычислить взвешенное среднее число каждых двух или трех пикселей из соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по вертикали влево под 22,5 градуса)
Intra4×4_pred_mode=8: вычислить взвешенное среднее число каждых двух или трех пикселей от соседних пикселей, чтобы использовать полученное взвешенное среднее число в качестве предсказанного изображения (соответствующее краю по горизонтали вверх под 112,5 градусов)
Для N=4 шестнадцать частей информации режима требуются для каждого макроблока. Чтобы уменьшить количество кодов самой информации режима, кодирование с предсказанием выполняется на основании информации режима соседних блоков, используя преимущество высокой корреляции в информации режима между соседними блоками. Хотя не иллюстрируется, для N=8 или 16 режим пространственного предсказания с учетом направленности текстуры картинки, как в случае N=4, определяется, чтобы выполнить процесс внутреннего предсказания для каждого из N×N субблоков, полученных посредством одинакового деления Mi×Mi макроблока.
(b) Режим внутреннего предсказания единицы макроблока
В этом режиме блок Mi×Mi пикселей, соответствующий размеру макроблока, предсказывается за один раз. Для Mi=16 любой из четырех режимов, проиллюстрированных на Фиг. 4, выбирается для каждого макроблока. Как в случае режима внутреннего N×N предсказания, пиксели соседних (верхний левый, верхний и левый) макроблоков, которые были уже закодированы и подвергнуты локальному процессу декодирования для сохранения в памяти 16b, используются для генерирования предсказанного изображения.
Intra16×16_pred_mode=0: использовать шестнадцать пикселей в самой нижней строке верхнего макроблока в качестве предсказанного изображения
Intra16×16_pred_mode=1: использовать шестнадцать пикселей в самой правой строке левого макроблока в качестве предсказанного изображения
Intra16×16_pred_mode=2: использовать среднее значение тридцати двух пикселей, то есть шестнадцать пикселей (Фиг. 4) в самой нижней строке верхнего макроблока и шестнадцать пикселей (B на Фиг. 4) в крайней левой строке в левом макроблоке, в качестве предсказанного изображения
Intra16×16_pred_mode=3: использовать тридцать один пиксель, соответствующий пикселю в нижнем правом углу в верхнем левом макроблоке, пятнадцать пикселей в самой нижней строке верхнего макроблока (за исключением белого пикселя) и пятнадцать пикселей в самой правой строке левого макроблока (за исключением белого пикселя), чтобы выполнить заранее определенный вычислительный процесс (процесс взвешенного суммирования согласно используемым пикселям и позициям пикселей, которые должны быть предсказаны), чтобы получить предсказанное изображение.
Даже если Mi не равно 16, определяется режим пространственного предсказания единицы макроблока с учетом направленности текстуры картинки, как в случае Mi=16.
В качестве нормы оценки эффективности предсказания для выбора режима внутреннего предсказания, выполняемого в модуле 461 предсказания, например, стоимость искажения скорости передачи в битах, заданная посредством:
Jm=Dm+λ Rm (λ: положительное число),
может использоваться. В этом выражении Dm - искажение кодирования или величина ошибки предсказания, когда используется режим m внутреннего предсказания. Искажение кодирования получается посредством получения разностного сигнала предсказания, используя режим m внутреннего предсказания, декодирования видеоизображения из результата преобразования и квантования разностного сигнала предсказания, и затем измерения ошибки видеоизображения из сигнала до кодирования. Величина ошибки предсказания получается посредством получения разности между предсказанным изображением и сигналом до кодирования, когда используется режим m внутреннего предсказания, и затем определения величины разности. Например, сумма абсолютных расстояний (SAD) используется как величина ошибки предсказания. Затем Rm - сгенерированное количество кода, когда используется режим m внутреннего предсказания. В частности, Jm - значение, определяющее компромисс между объемом кодов и степенью ухудшения, когда используется режим m внутреннего предсказания. Режим m внутреннего предсказания, обеспечивающий наименьшее Jm, дает оптимальное решение.
1.2 Процесс предсказания с компенсацией движения
В модуле 461 предсказания процесс межкадрового предсказания с компенсацией движения также выполняется для каждого из макроблоков посредством использования локального декодированного изображения 15, которое было закодировано, чтобы быть сохраненным в памяти 16b. В качестве размера блока, который должен быть подвергнут предсказанию с компенсацией движения, как иллюстрируется на Фиг. 90A-90D, любой из типов разделения, то есть Mi×Mi пикселей, Mi×(Mi/2), (Mi/2)×Mi и (Mi/2)×(Mi/2) могут быть выбраны для каждого макроблока. Далее, для выбора размера (Mi/2)×(Mi/2) любой из размеров (Mi/2)×(Mi/2), (Mi/2)×(Mi/4), (Mi/4)×(Mi/2) и (M/4)×(Mi/4) может быть далее выбран для каждого блока (Mi/2)×(Mi/2), как иллюстрируется на Фиг. 90E-90H.
Далее, как иллюстрируется на Фиг. 90I-90L, область, полученная посредством неравного деления макроблока, может использоваться как модуль предсказания с компенсацией движения. Сигнал изображения обычно содержит объект, имеющий профиль. Вблизи профиля часто имеет место неоднородность в движении. Если только макроблок или прямоугольный блок, соответствующий его поднабору, служит в качестве единицы обнаружения движения, увеличение эффективности предсказания неблагоприятным образом предотвращается, если только блок дополнительно не делится на меньшие блоки, чтобы увеличить число векторов движения, когда граница объекта присутствует в блоке, чтобы вызвать неоднородность в движении. Если область, полученная посредством неравного деления макроблока, как иллюстрируется на Фиг. 90I-90L, готовится как модуль предсказания с компенсацией движения, неоднородность в движении на профиле объекта может быть охвачена сокращенным количеством векторов движения, чтобы повысить эффективность предсказания.
Кроме того, когда профиль присутствует в макроблоке, этот профиль в макроблоке может обычно иметь различные позиции или формы. Чтобы определить все позиции или формы, не только формы, иллюстрируемые на Фиг. 90I-90L, но также и каждый тип деления блока должны быть определены. Посредством ограничения области единицы, составляющей форму неравного деления "вплоть до блока (Mi/2)×(Mi/2)", как иллюстрируется на Фиг. 90I-90L в шестнадцатом варианте осуществления настоящего изобретения, получают эффекты удерживания низким количества кодов дополнительной информации, которая должна быть закодирована, чтобы представить шаблон деления, удерживания низким количества вычислений, требуемых для выполнения обнаружения движения для каждого из шаблонов деления, и увеличивая эффективность доступа к памяти 16b, чтобы сгенерировать значение предсказания, чтобы сохранить пропускную способность памяти.
Выбор шаблона деления из проиллюстрированных на Фиг. 90A-90H для предсказания с компенсацией движения определяется как режим внешнего предсказания. Векторы движения, назначенные выбранному шаблону деления, генерируются и выдаются. Для типов режима внешнего предсказания, доступных для одной картинки, может быть определен режим внешнего предсказания, чтобы позволить назначить все шаблоны деления на Фиг. 90A-90H, или количество выбираемых шаблонов деления в качестве режима внешнего предсказания может быть ограничено согласно условиям уменьшения количества вычислений, требуемых для выбора оптимального режима внешнего предсказания или количества кодов информации для того, чтобы назначить режим внешнего предсказания. Например, когда число делений макроблока увеличивается, количество информации векторов движения, которая должны быть закодирована, также увеличивается. Поэтому, когда кодирование выполняется при низкой скорости передачи в битах, шаблоны для подразделения на размер (Mi/2)×(Mi/2) пикселей или меньше, как иллюстрируется на Фиг. 90E - 90H, не используются. Вместо этого выбираются шаблоны деления, иллюстрируемые на Фиг. 90I-90L, которые требуют только меньшего количества кодов векторов движения. Например, значение параметра квантования может использоваться как критерий для определения, высока ли скорость передачи в битах или низка. Поэтому определение режима внешнего предсказания может быть переключено согласно значению начального состояния параметра квантования для кодирования картинки. Альтернативно, выделенный идентифицирующий бит для задания определения режима внешнего предсказания может быть мультиплексирован в битовом потоке.
Далее, когда вектор движения для каждого опорного изображения должен быть индивидуально закодирован в картинке, используя предсказанное изображение, полученное из множества опорных изображений, как в случае D-картинки в MPEG-2 или двунаправленного предсказания в AVC, шаблоны для подразделения в размер (Mi/2)×(Mi/2) пикселей или меньше, как иллюстрируется на Фиг. 90E-90H, не используются. Вместо этого, чтобы уменьшить количество информации векторов движения, могут быть выбраны шаблоны деления, иллюстрированные на Фиг. 90I-90L, которые требуют меньшего количества кодов векторов движения. Кроме того, определение режима внешнего предсказания может быть переключено на основании предварительной оценки движений во всем экране или информации, указывающей процесс кодирования картинки, которая была закодирована непосредственно прежде. Например, в сцене, содержащей сложные движения, определение режима внешнего предсказания определяется, чтобы разрешить использование шаблона деления на блоки меньшего размера. С другой стороны, когда движение однородно и поэтому определяется, что удовлетворительное предсказание может быть выполнено даже в единицах больших блоков, задается определение режима внешнего предсказания, которое не использует шаблон деления в меньший размер. Альтернативно, опорное изображение, используемое для генерирования значения предсказания, может быть обозначено для каждого из блоков, полученных посредством деления макроблока, чтобы закодировать идентификационный номер опорного изображения.
В качестве нормы оценки эффективности предсказания для выбора режима внешнего предсказания, выполняемого в процессе предсказания с компенсацией движения, например, стоимость искажения скорости передачи (частоты следования) в битах, заданная как:
Jm, v, r=Dm, v, r+λ Rm, v, r (λ: положительное число),
может использоваться. В этом выражении Dm, v, r является искажением кодирования или величиной ошибки предсказания, когда используются режим m внешнего предсказания и вектор v движения и опорное изображение r, определенные согласно режиму m внешнего предсказания. Искажение кодирования получается посредством получения разностного сигнала предсказания, используя режим m внешнего предсказания, вектора v движения и опорного изображения r, декодирования видеоизображения из результата преобразования и квантования разностного сигнала предсказания, и затем измерения ошибки видеоизображения для сигнала перед кодированием. Величина ошибки предсказания получается посредством получения разности между предсказанным изображением и сигналом перед кодированием, когда режим m внешнего предсказания, вектор v движения и опорное r изображение используются, и затем определения величины разности. Например, сумма абсолютных расстояний (SAD) используется как величина ошибки предсказания. Затем Rm, v, r - количество сгенерированных кодов, когда используются режим m внешнего предсказания, вектор v движения и опорное r изображение. А именно, Jm, v, r - значение, определяющее компромисс между объемом кодов и степенью ухудшения, когда используются режим m внешнего предсказания, вектор v движения и опорное r изображение. Режим m внешнего предсказания, вектор v движения и опорное изображение r, которые обеспечивают наименьшие Jm, v, r, дает оптимальное решение.
1.3 Процесс кодирования картинки
Модуль 461 предсказания выполняет процесс внутреннего предсказания для всех режимов внутреннего предсказания, проиллюстрированных на Фиг. 3 или 4, или их поднабора, чтобы сгенерировать изображение с внутренним предсказанием для каждого макроблока. Модуль 461 предсказания также выполняет процесс предсказания с компенсацией движения для всех режимов предсказания с компенсацией движения, проиллюстрированных на Фиг. 90 и их поднаборов, чтобы вывести предсказанное изображение 7 для блока Mi×Mi. Предсказанное изображение 7 вычитается из входного сигнала 505 вычитающим устройством 3, чтобы получить разностный сигнал предсказания 4. Эффективность предсказания разностного сигнала 4 предсказания оценивается в модуле 5 определения режима кодирования, чтобы вывести режим предсказания, с которым оптимальная эффективность предсказания получается для макроблока, который должен быть предсказан, из процесса предсказания, выполняемого в модуле 461 предсказания, в качестве режима 6 кодирования. А именно, режим 6 кодирования содержит информацию типа макроблока для идентификации использования режима внутреннего N×N предсказания, как иллюстрируется на Фиг. 3, использования режима внутреннего предсказания единицы макроблока, как иллюстрируется на Фиг. 4, или шаблона деления, выбранного из любого из шаблонов деления, как иллюстрируется на Фиг. 90, используемых для предсказания с компенсацией движения. Кроме того, в этом шестнадцатом варианте осуществления тип режима кодирования, выбираемого для текущей картинки, переключается на основании информации 711 выбора определения режима кодирования, определенной модулем 19 управления кодированием или подобное. В качестве информации 711 выбора определения режима кодирования может использоваться назначенная информация индикации выбора. Кроме того, без использования назначенной информации, например, начальное значение параметра 21 квантования для кодирования текущей картинки или информация 506 индикации размера закодированного блока, направленной в качестве уведомления модулю 40 деления на блоки, могут использоваться по одному или в комбинации. При выборе режима 6 кодирования иногда учитывается коэффициент 20 взвешивания для каждого из режимов кодирования, который определяется модулем 19 управления кодированием. Оптимальный разностный сигнал 4 предсказания, полученный посредством использования режима 6 кодирования в модуле 5 определения режима кодирования, выводится к модулю 310 преобразования.
Модуль 310 преобразования преобразовывает разностный сигнал 4 предсказания, составленный из введенного блока Mi×Mi пикселей, чтобы вывести результат преобразования в качестве коэффициента преобразования к модулю 9 квантования. Для преобразования блок пикселей Mi×Mi делится на блоки пикселей L×L (L≤Mi, и Mi - кратное число L). Размер L блока преобразования обозначается флагом 464 индикации размера блока преобразования. При такой конфигурации может быть выполнен процесс преобразования, адаптированный к локальному свойству сигнала в блоке пикселей Mi×Mi. В качестве размера L блока преобразования преобразование может быть выполнено для всех устанавливаемых значений L, чтобы выбрать значение, обеспечивающее самую высокую эффективность. Альтернативно, может быть выбран размер L блока преобразования, который должен быть таким же, как размер блока в режиме внутреннего предсказания или размер блока в режиме предсказания с компенсацией движения. В последнем случае, так как режим 6 кодирования содержит информацию, соответствующую флагу 464 индикации размера блока преобразования, получается эффект исключения мультиплексирования флага 464 индикации размера блока преобразования в битовом потоке. Модуль 9 квантования квантует введенный коэффициент преобразования на основании параметра 21 квантования, определенного модулем 19 управления кодированием, чтобы вывести результат квантования как квантованный коэффициент 10 преобразования в модуль 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования статистически кодируется средством, таким как кодирование по Хаффману или арифметическое кодирование, в модуле 11 кодирования с переменной длиной кода. Квантованный коэффициент 10 преобразования проходит через модуль 12 обратного квантования и модуль 312 обратного преобразования для восстановления до локального декодированного разностного сигнала 14 предсказания. Локальный декодированный разностный сигнал 14 предсказания суммируется с предсказанным изображением 7, сгенерированным способом предсказания, соответствующим режиму 6 кодирования, в сумматоре 18, чтобы сгенерировать локальное декодированное изображение 15. Для использования локального декодированного изображения 15 в следующем процессе предсказания фильтр удаления искажения применяется к границе между блоками в модуле 462 фильтра удаления блочности на основании флага 24 управления фильтром удаления блочности, указывающего, должен ли фильтр удаления блочности быть применен. Альтернативно, локальное декодированное изображение 15 сохраняется в памяти 16b без применения фильтра удаления блочности. Модуль 462 фильтра удаления блочности обращается к закодированной информации 506 индикации размера блока и флагу 464 индикации размера блока преобразования, чтобы выполнить оптимальный процесс удаления блочного искажения для каждой границы между макроблоками и границы между преобразованными блоками. Так как тот же самый процесс должен быть выполнен в устройстве декодирования, флаг 24 управления фильтром удаления блочности подается на модуль 11 кодирования с переменной длиной кода для мультиплексирования в битовом потоке.
Закодированная информация 506 индикации размера блока для определения размера макроблока Mi, квантованный коэффициент 10 преобразования, режим 6 кодирования, служебная информация 463 предсказания и параметр 21 квантования статистически кодируются средством, таким как кодирование по Хаффману или арифметическое кодирование в модуле 11 кодирования с переменной длиной кода, чтобы быть скомпонованным и сформированным как битовый поток согласно заранее определенному правилу (синтаксическому). Затем полученный битовый поток выводится в буфер 17 передачи. Служебная информация 463 предсказания в этом шестнадцатом варианте осуществления содержит информацию режима предсказания (Intra4×4_pred_mode, Intra16×16_pred_mode или подобную), используемую для каждого блока единицы предсказания, когда процесс внутреннего предсказания выбирается как режим 6 кодирования. С другой стороны, когда процесс предсказания с компенсацией движения выбирается как режим 6 кодирования, служебная информация 463 содержит информацию вектора движения или индекс опорного изображения согласно шаблону деления, определенному для каждого из типов макроблока, проиллюстрированных на Фиг. 90A-90H. Буфер 17 передачи сглаживает битовый поток согласно диапазону тракта передачи, к которому устройство кодирования подсоединено, или скорости считывания носителя записи, чтобы вывести битовый поток как видеопоток 422b0. Буфер 17 передачи также выводит информацию обратной связи к модулю 19 управления кодированием согласно состоянию накопления битовых потоков в буфере 17 передачи, чтобы управлять объемом кодов, которые должны быть сгенерированы при кодировании последующих видеокадров. Видеопоток 422b0 преобразуется в единицы в срезы, причем каждый получен посредством сбора множества макроблоков, и затем выводится.
2. Структура закодированного битового потока
Посредством выполнения вышеупомянутого процесса в модуле 503 кодирования картинки входной видеосигнал 1 в устройство кодирования независимо кодируется в трех модулях 503b0, 503b1 и 503b2 независимого кодирования картинок для вывода в качестве видеопотоков 422b0, 422b1 и 422b2 в единицах срезов, причем каждый получен посредством сбора множества макроблоков. Затем, после того как видеопотоки 422b0, 422b1 и 422b2 компонуются в видеопоток 422c в модуле 504 мультиплексирования в качестве входного видеосигнала 1, составленного из трех компонентов, видеопоток 422c выводится из устройства кодирования.
Последовательность данных каждого из видеопотоков 422b0-422b2, каждый выданный из модуля 503b0-503b2 кодирования картинки, иллюстрируется на Фиг. 91. Каждый из видеопотоков 422b0-422b2, полученный модулями кодирования картинки, составляется как закодированные данные для количества макроблоков, содержащихся в картинке.
Множество макроблоков помещаются в срез, соответствующий единице данных. Готовится заголовок уровня картинки, к которому обращаются макроблоки, содержащиеся в той же самой картинке, в качестве общего параметра. В заголовке уровня картинки сохраняются закодированная информация 506 индикации размера блока и информация 711 выбора определения режима кодирования. Для всех макроблоков, содержащихся в картинке, размер макроблока Mi определяется на основании закодированной информации 506 индикации размера блока, содержащейся в заголовке уровня картинки, к которому обращаются макроблоки. Затем процедура кодирования с переменной длиной кода режима 6 кодирования определяется согласно информации 711 выбора определения режима кодирования.
Каждый срез начинается с заголовка среза. Заголовок среза содержит флаг 721 идентификации компонента цвета для указания компонента цвета закодированных данных, содержащихся в срезе, представляющем интерес (информация для определения любого из компонентов цвета 505b0-505b2) (как в случае кодированных данных среза, полученных процессом независимого кодирования на Фиг. 69). После заголовка среза кодированные данные каждого из макроблоков в срезе компонуются (в этом примере K макроблоков содержатся во втором срезе в одной картинке). В качестве данных каждого макроблока компонуются режим 6 кодирования, служебная информация 463 предсказания, флаг 464 индикации размера блока преобразования, параметр 21 квантования (только когда параметр квантования изменяется для каждого макроблока) и квантованный коэффициент 10 преобразования. Видеопоток 422c, выводимый из устройства кодирования, иллюстрированного на Фиг. 87, получается мультиплексированием видеопотоков 422b0-422b2 для трех компонентов, каждый имеющий структуру, иллюстрируемую на Фиг. 91. Закодированная информация 506 индикации размера блока и информация 711 выбора определения режима кодирования компонуются в заголовке уровня картинки на Фиг. 91, но эта информация может храниться в заголовке уровня последовательности, который обеспечивается для каждой последовательности, полученной посредством сбора множества видеокадров для информации для трех компонентов. Этим способом не требуется, чтобы информация, различная для каждого из этих трех компонентов, должна была быть закодирована и передана с ее собственным заголовком уровня картинки, и объем информации заголовка может быть уменьшен.
3. Обзор работы устройства декодирования
Устройство декодирования, иллюстрируемое на Фиг. 92, принимает видеопоток 422c, выводимый из устройства кодирования, иллюстрированного на Фиг. 87, и выполняет процесс декодирования на основе макроблоков, чтобы восстановить каждый видеокадр.
На Фиг. 92 информация заголовка более высокого порядка, такая как заголовок уровня последовательности или заголовок уровня картинки видеопотока 422c, декодируется в модуле 610 анализа заголовка более высокого порядка, чтобы быть сохраненным в заранее определенной области памяти, к которой могут обращаться модуль 602 определения компонента цвета и модули 603b0-603b2 декодирования картинки.
Модуль 602 определения компонента цвета идентифицирует картинку компонента цвета, которому соответствует срез, на основании значения флага 721 идентификации компонента цвета, иллюстрированного на Фиг. 91, для распространения и подачи среза к соответствующему модулю (603b0-603b2) декодирования картинки. С такой конфигурацией устройства декодирования, даже если устройство декодирования принимает видеопоток, содержащий три компонента цвета, устройство декодирования может легко определить картинку компонента цвета, к которой принадлежит срез, чтобы корректно декодировать эту картинку компонента цвета.
3.1 Обзор работы модулей 603 декодирования картинки
Работа каждого из модулей 603b0-603b2 декодирования картинки описана ниже. Описание модулей 603b0-603b2 декодирования картинки в шестнадцатом варианте осуществления должно быть сделано как вариация конфигурации, проиллюстрированной на Фиг. 77. Фиг. 93 иллюстрирует внутреннюю конфигурацию каждого из модулей 603b0-603b2 декодирования картинки. На Фиг. 93 функциональные блоки и сигнальные линии, обозначенные одинаковыми ссылочными позициями, как таковые из модуля декодирования картинки, иллюстрированного на Фиг. 77, являются таким же, как на Фиг. 77, если иначе не указано.
Каждый из модулей 603b0-603b2 декодирования картинки принимает кодированные данные среза C0, C1 или C2, классифицированные в модуле 602 определения компонента цвета, чтобы выполнить процесс декодирования на основе макроблоков, причем каждый макроблок состоит из выборок компонента одного цвета, чтобы восстановить сигнал 427b0 (или 427b1 или 472b2) соответствующего компонента цвета выходного кадра видео.
Модуль 25 декодирования с переменной длиной принимает входной сигнал видеопотока 422c и декодирует видеопоток 422c согласно заранее определенному правилу (синтаксическому), чтобы извлечь заголовок среза, и квантованный коэффициент 10 преобразования, служебную информацию 463 предсказание, флаг 464 индикации размера блока преобразования, параметр 21 квантования и режим 6 кодирования для каждого макроблока. Заголовок уровня последовательности или картинки декодируется в модуле 610 анализа заголовка более высокого порядка на Фиг. 92. В этом случае информация, такая как закодированная информация 506 индикации размера блока или информация 711 выбора определения режима кодирования, делается такой, чтобы на нее можно было ссылаться, до начала декодирования среза в модулях 603b0-603b2 декодирования картинки для декодирования соответствующего компонента цвета. Когда заголовок уровня последовательности или картинки декодируются в модуле 25 декодирования с переменной длиной в каждом из модулей 603b0-603b2 декодирования картинки, заголовок уровня картинки декодируется в модуле 25 декодирования с переменной длиной кода до начала декодирования среза, чтобы извлечь информацию, такую как закодированная информация 506 индикации размера блока или информация 711 выбора определения режима кодирования, из битового потока. Хотя не иллюстрировано, информация 711 выбора определения режима кодирования используется для определения процедуры декодирования с переменной длиной кода, когда режим 6 кодирования декодируется в модуле 25 декодирования с переменной длиной кода.
Квантованный коэффициент 10 преобразования вводится вместе с параметром 21 квантования в модуль 12 обратного квантования, который выполняет тот же самый процесс, как в каждом из модулей 503b0-503b2 кодирования картинки, для выполнения процесса обратного квантования. Затем выходной сигнал из модуля 12 обратного квантования подается на модуль 312 обратного преобразования, который выполняет тот же самый процесс, как в каждом из модулей 503b0-503b2 кодирования картинки, для восстановления до локального декодированного разностного сигнала 14 предсказания. Посредством вышеупомянутого процесса, чтобы сделать флаг 464 обозначения размера блока преобразования обеспечивающим размер L блока преобразования, служащего в качестве единицы обратного преобразования и обратного квантования и обратного преобразования, выведенной как изображение ошибки предсказания блока пикселей Mi×Mi, ссылаются на закодированную информацию 506 индикации размера блока. С другой стороны, модуль 461 предсказания включает в себя только процесс обращения к режиму 6 кодирования и служебной информации 463 предсказания, чтобы сгенерировать предсказанное изображение 7, из тех, что выполнены в модуле 461 предсказания в каждом из модулей 503b0-503b2 кодирования картинки. Режим 6 кодирования и служебная информация 463 предсказания вводятся в модуль 461 предсказания, чтобы получить предсказанное изображение 7. Модуль 461 предсказания уведомляется относительно закодированной информации 506 индикации размера блока, чтобы сгенерировать предсказанное изображение для блока пикселей Mi×Mi на основании размера Mi макроблока.
Когда режим 6 кодирования указывает режим внутреннего предсказания, такой как внутреннее N×N предсказание или внутреннее предсказания единицы макроблока, предсказанное изображение 7 получается посредством использования информации режима внутреннего предсказания для каждого блока N×N или информации режима внутреннего предсказания для каждого макроблока и опорного изображения 701, сохраненного в памяти 16b согласно размеру Mi макроблока, из служебной информации 463 предсказания. Когда режим 6 кодирования указывает внешнее предсказание (компенсацию движения), шаблон деления макроблока идентифицируется из тех, что указаны на Фиг. 90A-90H на основании режима 6 кодирования. Затем предсказанное изображение 7 получают посредством использования опорного изображения 701, сохраненного в памяти 16b согласно вектору движения, индексу опорного изображения и размеру Mi макроблока, полученных из служебной информации 463 предсказания.
Локальный декодированный разностный сигнал 14 предсказания и предсказанное изображение 7 суммируется сумматором 18, чтобы получить декодированное изображение 427b0 (или 427b1 или 427b2). Так как декодированное изображение 427b0 (или 427b1 или 427b2) используется для предсказания с компенсацией движения последующих макроблоков, процесс удаления блочного искажения может быть выполнен в фильтре 26 удаления блочности на основании флага 24 управления фильтром удаления блочности, как в модулях 503b0-503b2 кодирования картинки. В этом случае, так как результат процесса фильтра 26 удаления блочности сохранен в памяти 16b, чтобы ссылаться на него как на опорное изображение 701 для последующего декодирования картинки, процесс удаления блочного искажения, адаптированный к каждому из макроблоков и блоков преобразования, выполняется посредством обращения к закодированной информации 506 индикации размера блока и флагу 464 обозначения размера блока преобразования, как в случае кодирования. Декодированное изображение 427b0 (или 427b1 или 427b2) сохраняется в памяти 16b, чтобы использоваться для последующего процесса предсказания с компенсацией движения. Декодированное изображение 427b0 (или 427b1 или 427b2) содержит только выборки одного компонента цвета. Декодированные изображения 427b0, 427b1 и 427b2, которые соответственно выводятся из модулей 603b0-603b2 декодирования картинки для декодирования других компонентов цвета, «связываются» в видеокадр, чтобы составить цветовой видеокадр.
Согласно вышеупомянутому устройству кодирования и устройству декодирования, чтобы эффективно кодировать цветной видеосигнал в формате 4:4:4, каждый из компонентов цвета может быть независимо подвергнут кодированию с предсказанием. Кроме того, размер макроблока, который должен быть предсказан и закодирован, может быть динамически переключен согласно свойству сигнала каждого из компонентов цвета. Поэтому количество кодов служебной информации 463 предсказания, такой как режим внутреннего предсказания, вектор движения или индекс опорного изображения, которое имеет высокую частоту следования битов относительно общего объема кодов при кодировании с низкой частотой следования битов при высокой степени сжатия, может быть эффективно сохранено низким при кодировании. Далее, в процессе предсказания с компенсацией движения шаблон неравного деления используется для макроблока, чтобы повысить эффективность предсказания с сокращенным количеством векторов движения, чтобы сохранить низким количество кодов служебной информации 463 предсказания. В результате баланс между эффективностью предсказания и объемом кодов улучшается. В то же самое время тип режима внешнего предсказания, представляющего шаблон деления, диверсифицируется, чтобы повысить эффективность предсказания для различных движений. Кроме того, тип требуемого режима внешнего предсказания может быть переключен согласно условиям кодирования, таким как частота следования (скорость передачи) в битах или разрешение изображения. В результате устройство кодирования, которое может эффективно кодировать цветной видеосигнал в формате 4:4:4, и устройство декодирования, соответствующее такому устройству кодирования, могут быть обеспечены.
Хотя устройство кодирования, иллюстрируемое на Фиг. 88, получено посредством добавления модуля 40 разделения на блоки к устройству кодирования, иллюстрируемому на Фиг. 74, и устройству декодирования, соответствующему такому устройству кодирования, было описано в шестнадцатом варианте осуществления, аналогичные результаты могут быть получены также посредством использования устройства кодирования, полученного посредством добавления модуля 40 разделения на блоки к функции обработки для выполнения процесса отдельного и независимого кодирования для каждого компонента цвета и устройству декодирования, ему соответствующего, как описано в других вариантах осуществления. Посредством замены части для выполнения процесса отдельного кодирования в устройстве кодирования на Фиг. 71 устройством кодирования на Фиг. 87 и части для выполнения процесса отдельного декодирования в устройстве декодирования на Фиг. 75 устройством декодирования на Фиг. 92 устройство кодирования, которое является более высокоадаптивным к и эффективным для кодирования цветного видеосигнала в формате 4:4:4, и устройство декодирования, ему соответствующее, могут быть обеспечены.
Семнадцатый вариант осуществления
В отличие от устройства кодирования и устройства декодирования в шестнадцатом варианте осуществления устройство кодирования и устройство декодирования, которые динамически переключают точность обнаружения вектора движения для выполнения процесса предсказания с компенсацией движения в модуле предсказания, описаны в семнадцатом варианте осуществления.
В принципе, входной сигнал 505, соответствующий цифровому изображению, содержит только дискретную информацию пикселей, сгенерированную посредством осуществления выборок (в дальнейшем называемую «целочисленный пиксель»). Методика для создания виртуальной выборки между целочисленными пикселями посредством операции интерполяции, чтобы использовать полученную виртуальную выборку как изображение предсказания, широко используется. Эта методика, как известно, выгодна по двум причинам: улучшение точности предсказания посредством увеличения числа кандидатов предсказания и улучшение эффективности предсказания посредством сниженной сингулярности изображения предсказания посредством эффекта фильтрования, полученным операцией интерполяции. С другой стороны, нужно заметить, что объем кодов векторов движения, которые представляют величину движения, также увеличивается с повышением точности виртуальной выборки, так как точность векторов движения также должна быть увеличена.
В способах кодирования, таких как MPEG-1 и MPEG-2, используется полупиксельное предсказание, допускающее использование точности виртуальной выборки с точностью до полупикселя. Фиг. 94 иллюстрирует состояние, где создаются выборки с точностью 1/2 пикселя. Фиг. 94 иллюстрирует целочисленные пиксели A, B, C и D и виртуальные выборки с точностью до полпикселя, e, f, g, h и i, которые создаются из целочисленных пикселей А-D.
e=(A+B)//2
f=(C+D)//2
g=(A+C)//2
h=(B+D)//2
i=(A+B+C+D)//2
(где «//» указывает деление с округлением)
-4
4
В MPEG-4 (ISO/ЕЭС 14496-2) используется предсказание с точностью 1/4 пикселя, используя виртуальную выборку вплоть до точности 1/4 пикселя. В предсказании с точностью 1/4 пикселя после создания полупиксельных выборок, выборки с точностью 1/4 пикселя создаются посредством использования полученных полупиксельных выборок. Чтобы предотвратить чрезмерное сглаживание для полупиксельных выборок, фильтр, имеющий большое количество каскадов, предназначается для использования, чтобы сохранить частотный компонент исходного сигнала в максимально возможной степени. Например, при предсказании с точностью 1/4 пикселя в MPEG-4, виртуальная выборка с точностью до полпикселя, которая служит для создания виртуальной выборки с точностью 1/4 пикселя, создается восьмью соседними пикселями следующим образом. Следующая формула применяется только к горизонтальному процессу. Виртуальная выборка a c точностью полпикселя, которая создается, чтобы создать виртуальную выборку с точностью 1/4 пикселя, и X компонентов X-X, соответствующих целочисленным пикселям в следующей формуле, имеют позиционное отношение, как иллюстрируется на Фиг. 95.
a =
-1
-1
-2
-2
-3
-3
-4
-4
(COE1*X1+COE2*X2+COE3*X3+COE4*X4+COE*X+COE*X+COE*X+COE*X)//256
(где COEk: коэффициент фильтра (сумма коэффициентов равна 256); и «//» указывает деление с округлением)
В AVC (ISO/IEC 14496-10), фильтр, включающий в себя шесть каскадов [1, -5, 20, 20, -5, 1], используется для создания виртуальных выборок с точностью до полпикселя. Кроме того, виртуальные выборки с точностью 1/4 пикселя создаются посредством процесса линейной интерполяции, аналогично таковому для создания полупиксельных выборок в MPEG-1 и MPEG-2, описанных выше.
1. Работа устройства кодирования
Даже в семнадцатом варианте осуществления точность в полпикселя или 1/4 пикселя может быть назначена как точность виртуальной выборки в процессе предсказания с компенсацией движения. На основании этого условия устройство кодирования и устройство декодирования в семнадцатом варианте осуществления конфигурируются так, чтобы точность виртуальной выборки, используемой для каждого компонента цвета, могла быть назначена. Фиг. 96 иллюстрирует конфигурацию каждого из модулей 503b0-503b2 кодирования картинки в семнадцатом варианте осуществления. Модули 503b0-503b2 кодирования картинки на Фиг. 96 отличаются от проиллюстрированных на Фиг. 88 только работой модуля 461 предсказания и модуля 11 кодирования с переменной длиной кода.
Модуль 461 предсказания в семнадцатом варианте осуществления принимает информацию 800 индикации точности виртуального пикселя. На основании принятой информации 800 модуль 461 предсказания определяет точность виртуального пикселя, для которого выполняется обнаружение вектора движения, чтобы выполнить этот процесс. Хотя и не проиллюстрировано, информация 800 индикации точности виртуального пикселя конфигурируется, чтобы быть индивидуально назначенной модулям 503b0-503b2 кодирования картинки, которые кодируют соответствующие компоненты цвета для каждого цветного компонента Ci. Когда информация 800 индикации точности виртуального пикселя указывает «обнаружение вектора движения с точностью 1/4 пикселя», модуль 461 предсказания выполняет обнаружение вектора движения, в то время как выборки с точностью 1/4 пикселя создаются линейной интерполяцией после создания выборок с точностью полпикселя на основании многокаскадного фильтра, как в MPEG-4 или AVC. С другой стороны, когда информация 800 индикации точности виртуального пикселя указывает только «обнаружение вектора движения с точностью до полпикселя», выполняется обнаружение вектора движения, в то время как выборки с точностью полпикселя создаются на основании многоотводного фильтра, как в MPEG-4 или AVC, описанном выше, или в то время как выборки с точностью до полпикселя создаются линейной интерполяцией, как в MPEG-1 и MPEG-2, описанных выше. Так как устройство декодирования должно создавать виртуальные выборки одинаковым способом, чтобы получить предсказанное изображение, информация 800 индикации точности виртуального пикселя мультиплексируется и выводится в битовом потоке. Способ создания выборки с точностью полпикселя может вовлечь выполнение этого процесса способом, определенным заранее в той же самой процедуре устройством кодирования и устройством декодирования. Альтернативно, множество способов может быть подготовлено, и выбранный способ может быть мультиплексирован в битовом потоке как информация 811 индикации способа создания виртуальной выборки и передан к устройству декодирования. В качестве способа установки информации 800 индикации точности виртуального пикселя, например, для кодирования в цветовом пространстве как пространстве Y, Cb и Cr возможен следующий способ. Обнаружение вектора движения выполняется с более высокой точностью для компонента Y, который сильно отражает структуру текстуры изображения, с информацией 800 индикации точности виртуального пикселя, установленной, чтобы указать "обнаружение вектора движения с точностью 1/4 пикселя", тогда как информация 800 индикации точности виртуального пикселя устанавливается, чтобы указать "только обнаружение вектора движения с точностью до полпикселя" для компонентов цвета (Cb и Cr), имеющих более низкую корреляцию со структурой текстуры, чем сигнал компонента Y. Этот способ может быть конфигурирован не только, чтобы изменить точность виртуального пикселя, назначенную для каждого компонента цвета, но также и выполнить обнаружение движения с более высокой точностью посредством установки информации 800 индикации точности виртуального пикселя, чтобы указать "обнаружение вектора движения с точностью 1/4 пикселя" для всех компонентов, когда все компоненты сохраняют некоторую степень структуры текстуры изображения. Поэтому достигается эффект в том, что гибкий процесс предсказания с компенсацией движения согласно свойству сигнала каждого из компонентов цвета может быть выполнен для сигнала в любом цветовом пространстве.
Информация 800 индикации точности виртуального пикселя передается в модуль 11 кодирования с переменной длиной кода, чтобы использоваться для идентификации единицы значения вектора движения (содержащейся в служебной информации 463 предсказания), обнаруженный в единице предсказания 461. В модуле 11 кодирования с переменной длиной кода вектор движения, который должен быть закодирован, обозначается MV, и вектор предсказания, определенный для MV согласно заранее определенной процедуре определения значения предсказания, обозначается PMV. В качестве PMV используется уже закодированное значение. Модуль 11 кодирования с переменной длиной кода кодирует значение MV-PMV. В этом случае, когда информация 800 индикации точности виртуального пикселя указывает «обнаружение вектора движения с точностью 1/4 пикселя», единица измерения значения MV есть 1/4 пикселя. С другой стороны, когда информация 800 индикации точности виртуального пикселя указывает «обнаружение вектора движения с точностью до полпикселя», единица измерения значения MV есть 1/2 пикселя. Вектор движения относительно 1/4 пикселя как одного имеет диапазон значений, удвоенный к таковому в случае, когда полупиксель расценивается как один и для горизонтальных, и для вертикальных компонентов. Поэтому, когда используются только выборки с точностью 1/2 пикселя, посредством установки единицы измерения значения MV, равной половине пикселя, по сравнению со случаем, когда 1/4 пиксель используется как единица измерения значения MV, количество информации, запрошенной для кодирования MV, может быть уменьшено.
Посредством использования вышеупомянутого свойства не только для разности в свойстве сигнала в различном цветовом пространстве, но также и для выполнения кодирования с высоким сжатием, при котором соотношение количества кодов служебной информации 463 предсказания, такой как вектор движения, увеличивается относительно общего объема кодов, информация 800 индикации точности виртуального пикселя может быть откорректирована, чтобы выполнить кодирование с объемом кодов вектора движения, сохраненным низким. Так как информация 800 индикации точности виртуального пикселя может быть установлена независимо для каждого компонента цвета, может быть выполнено управление, адаптивное к условию каждого компонента цвета при высоком сжатии. В результате более высокоадаптивный процесс кодирования становится возможным.
2. Структура закодированного битового потока
Фиг. 97 иллюстрирует последовательность данных каждого из видеопотоков 422b0-422b2, выводимых из устройства кодирования, иллюстрированного на Фиг. 96. Потоковая последовательность Фиг. 97 отличается от таковой на Фиг. 91 тем, что информация 800 индикации точности виртуального пикселя является мультиплексированной в заголовке уровня картинки. В результате устройство декодирования, которое принимает битовый поток, становится способным распознать единицу измерения значения вектора движения, содержащегося в служебной информации 463 предсказания для каждого компонента цвета, чтобы декодировать вектор движения таким же образом, как в устройстве кодирования, и создать предсказанное изображение. Кроме того, например, когда множество способов для создания выборки с точностью до полпикселя может быть подготовлено, как описано выше, информация 811 индикации способа создания виртуальной выборки может быть мультиплексирована в заголовке уровня картинки. Хотя информация 800 индикации точности виртуального пикселя и информация 811 индикации способа создания виртуальной выборки являются мультиплексированными в области заголовка уровня пикселя на Фиг. 97, информация 800 и 811 для трех компонентов цвета может быть вместе мультиплексирована в области заголовка более высокого порядка, чем заголовок уровня последовательности.
3. Работа устройства декодирования
Фиг. 98 иллюстрирует конфигурацию устройства декодирования (модуль 603b0, 603b1 или 603b2 декодирования картинки) в семнадцатом варианте осуществления. Устройство декодирования на Фиг. 98 отличается от модуля 603b0, 603b1 или 603b2 декодирования картинки на Фиг. 93 только работой модуля 25 декодирования с переменной длиной кода и модуля 461 предсказания. Модуль 25 декодирования с переменной длиной декодирует видеопоток 422b0, 422b1 или 422b2, иллюстрированный на Фиг. 97, извлекает информацию 800 индикации точности виртуального пикселя, содержащуюся в заголовке уровня картинки, из видеопотока, и выводит извлеченную информацию 800 индикации точности виртуального пикселя к модулю 461 предсказания. Когда значение информации 800 индикации точности виртуального пикселя указывает «обнаружение вектора движения с точностью 1/4 пикселя», единица измерения значения вектора движения, содержащаяся в служебной информации 463 предсказания, устанавливается равной 1/4 пикселя. Затем служебная информация 463 предсказания передается к модулю 461 предсказания. На основании факта, что единица измерения значения вектора движения, содержащаяся в служебной информации 463 предсказания, равна 1/4 пикселя, модуль 461 предсказания генерирует предсказанное изображение, в то же время создавая выборки с точностью 1/4 пикселя посредством линейной интерполяции после создания выборок с точностью до полпикселя, на основании многокаскадного фильтра, как в MPEG-4 или AVC.
С другой стороны, когда значение информации 800 индикации точности виртуального пикселя указывает «обнаружение вектора движения с точностью до полпикселя», единица измерения значения вектора движения, содержащаяся в служебной информации 463 предсказания, устанавливается в 1/2 пиксель. Затем служебная информация 463 предсказания передается к модулю 461 предсказания. На основании факта, что единица измерения значения вектора движения, содержащаяся в служебной информации 463 предсказания, равна полпикселю, модуль 461 предсказания генерирует предсказанное изображение, в то же время создавая выборки с точностью до полпикселя на основании многокаскадного фильтра, как в MPEG-4 или AVC, или выборки с точностью до полпикселя посредством линейной интерполяции, как в MPEG-1 или MPEG-2, описанных выше. В конфигурации, в которой множество способов создания полупиксельных выборок может быть выбрано, информация 811 индикации способа создания виртуальной выборки на Фиг. 97 извлекается из битового потока в модуле 25 декодирования с переменной длиной кода и затем передается к модулю 461 предсказания так, чтобы полупиксельная выборка была создана тем же способом, как в устройстве кодирования.
Согласно устройству кодирования и устройству декодирования в семнадцатом варианте осуществления, описанном выше, так как для эффективного кодирования цветного видеосигнала в формате 4:4:4 для независимого предсказания с компенсацией движения для каждого компонента цвета точность виртуальной выборки, используемая для обнаружения вектора движения и создания предсказанного изображения, может быть динамически переключена согласно свойству сигнала каждого компонента цвета, возможно выполнить кодирование с объемом кодов вектора движения, отношение которого увеличивается относительно общего объема кодов при кодировании с низкой частотой следования битов при высокой степени сжатия, эффективно подавляемым. Далее, посредством подготовки множества способов создания виртуальной выборки, таких как типы фильтра интерполяции, используемого для создания виртуальной выборки и выборочного переключения способом создания виртуальной выборки, оптимальный процесс предсказания с компенсацией движения согласно свойству сигнала каждого компонента цвета становится возможным. В результате могут быть обеспечены устройство кодирования, которое эффективно кодирует цветной видеосигнал в формате 4:4:4, и устройство декодирования, ему соответствующее.
В семнадцатом варианте осуществления были описаны устройство кодирования, иллюстрируемое на Фиг. 96, полученное посредством добавления информации 800 индикации точности виртуального пикселя к устройству кодирования, проиллюстрированному на Фиг. 88 в шестнадцатом варианте осуществления, и устройство декодирования, проиллюстрированное на Фиг. 98, полученное посредством добавления информации 800 индикации точности виртуального пикселя к устройству декодирования, проиллюстрированному на Фиг. 93 в шестнадцатом варианте осуществления. Однако также посредством использования устройства кодирования, полученного при добавлении информации 800 индикации точности виртуального пикселя к устройству кодирования согласно другим вариантам осуществления, и устройства декодирования, полученного при добавлении информации 800 индикации точности виртуального пикселя к устройству декодирования согласно другим вариантам осуществления, аналогичные эффекты могут быть получены.
Восемнадцатый вариант осуществления
Другой вариант осуществления устройства кодирования и устройства декодирования для выполнения процесса отдельного и независимого кодирования для кодирования и декодирования одного компонента цвета независимо от других компонентов цвета в вышеупомянутых вариантах осуществления должен быть описан в восемнадцатом варианте осуществления. Здесь устройство кодирования и устройство декодирования в шестнадцатом варианте осуществления берутся в качестве примера. В процессе отдельного и независимого кодирования служебная информация 463 предсказания, такая как режим 6 кодирования и вектор движения, которая не может быть необратимо закодирована в принципе, является мультиплексированной в битовом потоке для каждого компонента цвета. Поэтому в случае кодирования с высокой степенью сжатия с увеличенной частотой следования битов количества кодов относительно общей суммы кодов производительность сжатия ухудшается. Поэтому в устройстве кодирования согласно восемнадцатому варианту осуществления информация, такая как режим 6 кодирования или служебная информация 463 предсказания, которая получается в результате кодирования на основе макроблоков для конкретного компонента цвета (например, определенного как компонент C0), сохраняется как опорная информация. Когда макроблок, присутствующий в той же самой позиции в пространстве изображения, как позиция макроблока компонента C0, использующего эту опорную информацию, должен быть закодирован в модуле 503 кодирования картинки для того, чтобы обработать другие компоненты цвета, выбор может быть сделан между процедурой кодирования, которая использует опорную информацию, и процедурой кодирования, которая индивидуально определяет режим 6 кодирования и служебную информацию 463 предсказания для его собственного компонента цвета. Флаг индикации кодирования информации предсказания, указывающий выбранную процедуру, мультиплексируется для каждого макроблока. С такой конфигурацией, когда компонент цвета имеет высокую корреляцию относительно режима 6 кодирования или служебной информации 463 предсказания, количество кодов может быть эффективно уменьшено, чтобы повысить эффективность сжатия.
Когда режим 6 кодирования и служебная информация 463 предсказания определяются независимо для своего собственного компонента цвета для кодирования, может использоваться процедура процесса кодирования/декодирования, такая как описана в шестнадцатом и семнадцатом вариантах осуществления. Кроме того, также в случае, когда кодирование выполняется посредством обращения к опорной информации, почти такая же процедура процесса кодирования, как описана в шестнадцатом и семнадцатом вариантах осуществления, может использоваться посредством простого пропуска процесса мультиплексирования режима 6 кодирования, служебной информации 463 предсказания и т.п. в битовом потоке, хотя процесс кодирования для других компонентов делается таким, чтобы ожидать на стороне кодирования, пока опорная информация не будет получена. Также на стороне декодирования опорная информация должна быть сначала декодирована. Однако та же самая процедура процесса декодирования, как та, что описана в шестнадцатом и семнадцатом вариантах осуществления, может использоваться посредством простого выполнения процесса определения - использовать ли опорную информацию посредством декодирования флага индикации кодирования информации предсказания или декодированной информации в ее собственном макроблоке.
Далее, посредством определения, является ли флаг индикации кодирования информации предсказания всегда мультиплексированным для каждого макроблока в уровне данных более высокого порядка (срез, картинка или последовательность) и мультиплексирования в битовом потоке, достаточно только мультиплексировать флаг индикации кодирования информации предсказания как код на уровне макроблока, только когда необходимо, например только для сильного сжатия. Соответственно, эффективность кодирования может быть увеличена. Кроме того, без ограничения опорной информации информацией конкретного компонента цвета кодирование и декодирование могут быть выполнены, в то же время выбирая любой из компонентов цвета, которые должны использоваться в качестве опорного.
Конфигурация восемнадцатого варианта осуществления не ограничивается конфигурацией из шестнадцатого варианта осуществления и также применима ко всем устройствам кодирования и устройствам декодирования, которые выполняют процесс отдельного и независимого кодирования для кодирования и декодирования одного компонента цвета независимо от других компонентов цвета в вариантах осуществления настоящей заявки.