УСТРОЙСТВО ВИДЕОКОДИРОВАНИЯ, УСТРОЙСТВО ВИДЕОДЕКОДИРОВАНИЯ, СПОСОБ ВИДЕОКОДИРОВАНИЯ, СПОСОБ ВИДЕОДЕКОДИРОВАНИЯ И ПРОГРАММА
VIDEO ENCODING DEVICE, VIDEO DECODING DEVICE, VIDEO ENCODING METHOD, VIDEO DECODING METHOD AND PROGRAMME

Область техники, к которой относится изобретение
Настоящее изобретение относится к устройству видеокодирования и устройству видеодекодирования, которые используют кодирование ИКМ (импульсно-кодовая модуляция).
Уровень техники
Патентная литература (PTL) 1 предлагает способ видеокодирования для встраивания, в выходной битовый поток, информации, указывающей тип блока, который не подвергается процессу преобразования и процессу энтропийного кодирования, чтобы гарантировать некоторое время обработки для устройства видеокодирования или устройства видеодекодирования.
Примером типа блока, который не подвергается процессу преобразования и процессу энтропийного кодирования, является импульсно-кодовая модуляция (ИКМ), описанная в непатентной литературе (NPL) 1. Термин «тип блока» означает тип кодирования (нижеупомянутое внутреннее предсказание, внешнее предсказание и ИКМ), используемый для блока.
Устройство видеокодирования, описанное в NPL 1, имеет конструкцию, показанную на фиг.14. Устройство видеокодирования, показанное на фиг.14, ниже в данном документе упоминается как типовое устройство видеокодирования.
Ниже описаны конструкция и работа типового устройства видеокодирования, которое принимает каждый кадр оцифрованного видео в качестве ввода, и выводит битовый поток, со ссылкой на фиг.14.
Устройство видеокодирования, показанное на фиг.14, включает в себя преобразователь/квантователь 102, энтропийный кодер 103, обратный преобразователь/обратный квантователь 104, буфер 105, предсказатель 106, кодер 107 ИКМ, декодер 108 ИКМ, селектор 109 мультиплексных данных, мультиплексор 110, переключатель 121 и переключатель 122.
Устройство видеокодирования, показанное на фиг.14, делит каждый кадр на блоки размером 16×16 пикселей, называемые макроблоками (MB), и кодирует каждый MB последовательно в левой верхней части кадра. В AVC (усовершенствованное видеокодирование), описанном в NPL 1, каждый MB дополнительно делится на блоки размером 4×4 пикселя и кодируется каждый блок размером 4×4 пикселя.
Фиг.15 представляет собой пояснительную диаграмму, изображающую пример деления блоков в случае, когда кадр имеет пространственное разрешение QCIF (четверть-CIF (общий промежуточный формат)). Нижеследующее описывает работу каждого узла, в то же время для упрощения сосредотачивая внимание только на пиксельных значениях яркости.
Сигнал предсказания, подаваемый от предсказателя 106, вычитается из разделенного на блоки входного видео, и результат вводится в преобразователь/квантователь 102. Существует два типа сигнала предсказания, а именно сигнал внутреннего предсказания и сигнал межкадрового предсказания. Каждый из сигналов предсказания описывается ниже.
Сигнал внутреннего предсказания представляет собой сигнал предсказания, генерируемый на основе изображения восстановленного видеокадра, которое имеет такое же время отображения, что и текущий видеокадр, и сохраняется в буфере 105. Ссылаясь на 8.3.1 Процесс предсказания Intra_4×4 для отсчетов яркости, 8.3.2 Процесс предсказания Intra_8×8 для отсчетов яркости и 8.3.3 Процесс предсказания Intra_16×16 для отсчетов яркости в NPL 1, доступно внутреннее предсказание для трех размеров блока, т.е. Intra_4×4, Intra_8×8 и Intra_16×16.
Intra_4×4 и Intra_8×8 представляют собой соответственно внутреннее предсказание размера блока 4×4 и размера блока 8×8, как понятно из (a) и (c) на фиг.16. Каждый кружок (o) на чертеже представляет эталонный пиксель, используемый для внутреннего предсказания, т.е. пиксель восстановленного видеокадра, имеющего такое же время отображения, что и текущий видеокадр.
При внутреннем предсказании Intra_4×4 восстановленные периферийные пиксели непосредственно устанавливаются в качестве эталонных пикселей и используются для заполнения (экстраполяции) по девяти направлениям, показанным на (b) на фиг.16, и образуют сигнал предсказания. При внутреннем предсказании Intra_8×8 пиксели, полученные посредством сглаживания периферийных пикселей изображения восстановленного видеокадра при помощи фильтров нижних частот (1/2, 1/4, 1/2), показанных под правой стрелкой на (с) на фиг.16, устанавливаются в качестве эталонных сигналов и используются для экстраполяции по девяти направлениям, показанным на (b) на фиг.16, и образуют сигнал предсказания.
Аналогично Intra_16×16 представляет собой внутреннее предсказание размера блока 16×16, как понятно из (a) на фиг.17. Каждый кружок (o) на чертеже представляет эталонный пиксель, используемый для внутреннего предсказания, т.е. пиксель восстановленного видеокадра, имеющего это же время отображения, что и текущий видеокадр, как на фиг.16. При внутреннем предсказании Intra_16×16 периферийные пиксели восстановленного изображения непосредственно устанавливаются в качестве эталонных пикселей и используются для экстраполяции по четырем направлениям, показанным на (b) на фиг.17, и образуют сигнал предсказания.
Ниже в данном документе MB и блок, кодированный с использованием сигнала внутреннего предсказания, упоминаются соответственно как внутренний MB и внутренний блок, размер блока внутреннего предсказания упоминается как размер блока внутреннего предсказания, и направление экстраполяции упоминается как направление внутреннего предсказания. Размер блока внутреннего предсказания и направление внутреннего предсказания представляют собой параметры предсказания, относящиеся к внутреннему предсказанию.
Сигнал межкадрового предсказания представляет собой сигнал предсказания, генерируемый из изображения восстановленного видеокадра, который имеет время отображения, отличающееся от времени отображения, которое имеет текущий видеокадр, и сохраняется в буфере 105. Ниже в данном документе MB и блок, кодируемый с использованием сигнала межкадрового предсказания, упоминаются соответственно как внешний MB и внешний блок. Размер блока внешнего предсказания (размер блока внешнего предсказания) может выбираться, например, из 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4.
x
y
Фиг.18 представляет собой пояснительную диаграмму, изображающую пример межкадрового предсказания, использующего размер блока 16×16. Вектор движения MV=(mv, mv), показанный на фиг.18, представляет собой параметр предсказания межкадрового предсказания, который указывает величину параллельного перемещения блока межкадрового предсказания (сигнала межкадрового предсказания) эталонного видеокадра относительно блока, подлежащего кодированию. В AVC параметры предсказания межкадрового предсказания включают в себя не только направление межкадрового предсказания, представляющее направление эталонного видеокадра сигнала межкадрового предсказания относительно видеокадра, подлежащего кодированию блока, подлежащего кодированию, но также индекс эталонного видеокадра для идентификации эталонного видеокадра, используемого для межкадрового предсказания блока, подлежащего кодированию. Это потому, что в AVC множество эталонных видеокадров, хранимых в буфере 105, могут использоваться для межкадрового предсказания.
Межкадровое предсказание описывается более подробно в 8.4 Процесс внешнего предсказания в NPL 1.
Кодируемый видеокадр, включающий в себя только внутренние MB, называется I-видеокадром. Кодируемый видеокадр, включающий в себя не только внутренние MB, но также внешние MB, называется P-видеокадр. Кодируемый видеокадр, включающий в себя внешние MB, которые используют не только один эталонный видеокадр, но два эталонных видеокадра одновременно для межкадрового предсказания, называется B-видеокадром. В B-видеокадре межкадровое предсказание, в котором направление эталонного видеокадра сигнала межкадрового предсказания относительно видеокадра, подлежащего кодированию, блока, подлежащего кодированию, направлено в прошлое, называется прямым предсказанием, межкадровое предсказание, в котором направление эталонного видеокадра сигнала межкадрового предсказания относительно видеокадра, подлежащего кодированию, блока, подлежащего кодированию, направлено в будущее, называется обратным предсказанием, и межкадровое предсказание, включающее как прошлое, так и будущее, называется двунаправленным предсказанием. Направление межкадрового предсказания (направление внешнего предсказания) представляет собой параметр предсказания межкадрового предсказания.
Преобразователь/квантователь 102 преобразует по частоте изображение (изображение ошибки предсказания), из которого был вычтен сигнал предсказания.
Преобразователь/квантователь 102 дополнительно квантует преобразованное по частоте изображение ошибки предсказания (коэффициент преобразования частоты) с заданной шириной Qs шага квантования. Ниже в данном документе квантованный коэффициент преобразования частоты упоминается как значение квантования преобразования.
Энтропийный кодер 103 энтропийно кодирует параметры предсказания и значение квантования преобразования. Параметры предсказания представляют собой информацию, относящуюся к MB и предсказанию блока, такую как тип блока (внутреннее предсказание, внешнее предсказание и ИКМ), размер блока внутреннего предсказания, направление внутреннего предсказания, размер блока внешнего предсказания и вектор движения, упоминаемые выше.
Обратный преобразователь/обратный квантователь 104 обратно квантует значение квантования преобразования с шириной Qs шага квантования. Обратный преобразователь/обратный квантователь 104 дополнительно обратно преобразует по частоте коэффициент преобразования частоты, полученный посредством обратного квантования. Сигнал предсказания добавляется к восстановленному изображению ошибки предсказания, полученному обратным преобразованием частоты, и результат подается на переключатель 122.
Селектор 109 мультиплексных данных контролирует количество входных данных энтропийного кодера 103, соответствующих MB, подлежащему кодированию. В случае, когда энтропийный кодер 103 способен энтропийно кодировать входные данные в течение времени обработки MB, селектор 109 мультиплексных данных выбирает выходные данные энтропийного кодера 103 и вызывает подачу выбранных данных на мультиплексор 110 через переключатель 121. Селектор 109 мультиплексных данных дополнительно выбирает выходные данные обратного преобразователя/обратного квантователя 104 и вызывает подачу выбранных данных в буфер 105 через переключатель 122.
В случае, когда энтропийный кодер 103 не способен энтропийно кодировать входные данные в течение времени обработки MB, селектор 109 мультиплексных данных выбирает выходные данные кодера 107 ИКМ, полученные посредством кодирования ИКМ видео MB, и вызывает подачу выбранных данных на мультиплексор 110 через переключатель 121. Селектор 109 мультиплексных данных дополнительно выбирает выходные данные декодера 108 ИКМ, полученные посредством декодирования ИКМ выходных данных кодера 107 ИКМ, и вызывает подачу выбранных данных в буфер 105 через переключатель 122.
Буфер 105 сохраняет восстановленное изображение, подаваемое через переключатель 122. Восстановленное изображение на кадр упоминается как восстановленный видеокадр.
Мультиплексор 110 мультиплексирует выходные данные энтропийного кодера 103 и кодера 107 ИКМ и выводит результат мультиплексирования.
Основываясь на описанной выше работе, мультиплексор 110 в устройстве видеокодирования генерирует битовый поток.
Список ссылок
Патентная литература
PTL 1: выложенная заявка на патент Японии № 2004-135251
Непатентная литература
NPL 1: Усовершенствованное видеокодирование ISO/IEC 14496-10 (Международной организации по стандартизации/Международной электротехнической комиссии)
nd
NPL 2: «Test Model under Consideration», Document: JCTVC-B205, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 2 Meeting: Geneva, CH, 21-28 July, 2010
NPL 3: W.-J. Chen, X. Wang, and M. Karczewicz, «CE5 Improved coding of inter prediction mode with LCEC», JCTVC-D370
NPL 4: S. Liu, Y.-W. Huang, S. Lei, «Remove Partition Size NxN», JCTVC-D432
Сущность изобретения
Техническая проблема
Типовой метод, описанный выше, гарантирует некоторое время обработки для устройства видеокодирования или устройства видеодекодирования посредством использования, в MB, ИКМ, которая не включает в себя процесс преобразования и процесс энтропийного кодирования.
Однако типовой метод, описанный выше, основывается на видеокодировании, которое использует MB фиксированного размера единицы кодирования (размер CU). Следовательно, как описано в NPL 2, когда типовой метод, описанный выше, применяется к видеокодированию (ниже в данном документе упоминаемому как схема исследуемой тестовой модели (схема TMuC)), которая использует единицы кодирования (блоки дерева кодирования (CTB)) структуры квадродерева, показанной на фиг.19, где размер CU является переменным, и информация (заголовок ИКМ), указывающий ИКМ, встраивается в выходной битовый поток в CTB всех уровней (т.е. всех глубин), существует проблема, что отношение количества битов заголовка ИКМ, включенного в битовый поток, увеличивается, и поэтому понижается качество сжатого видео.
В данном случае максимальный CTB упоминается как наибольший блок дерева кодирования (LCTB), и минимальный CTB упоминается как наименьший блок дерева кодирования (SCTB). В данном описании блок, соответствующий CTB, упоминается как единица кодирования CU). Кроме того, понятие единицы предсказания (PU) (см. фиг.20) в качестве единицы предсказания для CU вводится в схеме TMuC. Фиг.20 представляет собой пояснительную диаграмму для описания PU, где только квадраты из числа форм, показанных на фиг.20, поддерживаются в качестве размера блока внутреннего предсказания.
NPL 3 описывает улучшения в сигнализации внешнего предсказания. NPL 4 описывает улучшения в сигнализации внешнего предсказания и внутреннего предсказания.
Для решения проблемы типового метода, описанного выше, принимается во внимание вопрос, что ИКМ может выбираться в CU более высокого уровня, чтобы гарантировать некоторое время обработки для устройства видеокодирования или устройства видеодекодирования. CU более высокого уровня представляет собой CU с меньшим значением глубины, как можно видеть на фиг.19. Количество CU более высокого уровня на кадр меньше, так как больше их размер блока. Так как количество CU более высокого уровня меньше, может уменьшаться пропорция количества битов заголовка ИКМ, включенных в битовый поток.
В настоящем изобретении проблема решается посредством ограничения глубины CU, для которой передается заголовок ИКМ, при видеокодировании, основанном на кодировании ИКМ. Т.е. в настоящем изобретении размер CU, для которого передается заголовок ИКМ, ограничивается заданным размером.
Решение проблемы
Устройство видеокодирования согласно настоящему изобретению включает в себя средство преобразования для преобразования блока изображения; средство энтропийного кодирования для энтропийного кодирования преобразованных данных блока изображения, преобразованного средством преобразования; средство кодирования ИКМ для кодирования посредством кодирования ИКМ блока изображения; средство выбора мультиплексных данных для выбора выходных данных средства энтропийного кодирования или средства кодирования ИКМ в блоке с размером блока, устанавливаемым извне; и средство мультиплексирования для встраивания заголовка ИКМ в битовый поток в блоке с размером блока, устанавливаемого извне.
Устройство видеодекодирования согласно настоящему изобретению включает в себя средство демультиплексирования для демультиплексирования битового потока, включающего в себя информацию о размере блока ИКМ; средство определения размера блока ИКМ для определения размера блока ИКМ, в отношении которого заголовок ИКМ синтаксически анализируется на основе информации о размере блока ИКМ, демультиплексированной средством демультиплексирования; средство синтаксического анализа заголовка ИКМ для синтаксического анализа из битового потока заголовка ИКМ, в блоке с размером блока ИКМ, определенным средством определения размера блока ИКМ; средство энтропийного декодирования для энтропийного декодирования преобразованных данных изображения, включенных в битовый поток; средство обратного преобразования для обратного преобразования преобразованных данных, энтропийно декодированных средством энтропийного декодирования; средство декодирования ИКМ для декодирования посредством декодирования ИКМ данных ИКМ изображения в битовом потоке; и средство управления декодированием для управления средством энтропийного декодирования и средством декодирования ИКМ, основываясь на заголовке ИКМ, синтаксически проанализированным средством синтаксического анализа заголовка ИКМ.
Способ видеокодирования согласно настоящему изобретению включает в себя выбор данных, полученных посредством энтропийного кодирования преобразованных данных блока изображения, или данных, полученных посредством кодирования ИКМ блока изображения в единице размера блока, устанавливаемого извне; и встраивание заголовка ИКМ в битовый поток в блоке с размером блока, устанавливаемого извне.
Способ видеодекодирования согласно настоящему изобретению включает в себя демультиплексирование битового потока, включающего в себя информацию о размере блока ИКМ; определение размера блока ИКМ для синтаксического анализа заголовка ИКМ, основываясь на демультиплексированной информации о размере блока ИКМ; синтаксический анализ заголовка ИКМ из битового потока в блоке с определенным размером блока ИКМ; управление процессом энтропийного декодирования и процессом декодирования ИКМ, основываясь на заголовке ИКМ; энтропийное декодирование преобразованных данных изображения в битовом потоке и обратное преобразование энтропийно декодированных преобразованных данных при управлении процессом энтропийного декодирования; и декодирование посредством декодирования ИКМ данных ИКМ изображения в битовом потоке при управлении процессом декодирования ИКМ.
Программа видеокодирования согласно настоящему изобретению вызывает исполнение компьютером процесса выбора для выбора данных, полученных посредством энтропийного кодирования преобразованных данных блока изображения, или данных, полученных посредством кодирования ИКМ блока изображения, в единице с размером блока, устанавливаемым извне; и процесса мультиплексирования для встраивания заголовка ИКМ в битовый поток в блоке с размером блока, устанавливаемым извне.
Программа видеодекодирования согласно настоящему изобретению вызывает исполнение компьютером процесса демультиплексирования для демультиплексирования битового потока, включающего в себя информацию о размере блока ИКМ; процесса определения размера блока ИКМ для определения размера блока ИКМ для синтаксического анализа заголовка ИКМ, основываясь на демультиплексированной информации о размере блока ИКМ; процесса синтаксического анализа заголовка ИКМ для синтаксического анализа заголовка ИКМ из битового потока в блоке с определенным размером блока ИКМ; и процесса управления процессом энтропийного декодирования и процесса декодирования ИКМ, основанного на синтаксически проанализированном заголовке ИКМ: причем вызывается исполнение компьютером процесса энтропийного декодирования преобразованных данных изображения в битовом потоке и обратного преобразования энтропийно декодированных преобразованных данных при управлении процессом энтропийного декодирования, и вызывается исполнение компьютером процесса декодирования посредством декодирования ИКМ данных ИКМ изображения в битовом потоке при управлении процессом декодирования ИКМ.
Полезные эффекты изобретения
Согласно настоящему изобретению размер единицы кодирования, в отношении которой сигнализируется заголовок ИКМ, ограничивается заданным размером, так что отношение количества битов заголовка ИКМ в битовом потоке может сохраняться низким, и может поддерживаться качество сжатого видео, в то же время гарантируя некоторое время обработки для устройства видеокодирования.
Кроме того, согласно настоящему изобретению может быть повышена функциональная совместимость устройства видеокодирования и устройства видеодекодирования посредством встраивания в битовый поток информации о размере единицы кодирования ИКМ для сигнализации заданного размера на устройство видеодекодирования.
Краткое описание чертежей
Фиг.1 представляет собой блок-схему устройства видеокодирования в примерном варианте 1 осуществления.
Фиг.2 представляет собой пояснительную диаграмму списка 1, указывающего заголовок ИКМ в синтаксисе PU.
Фиг.3 представляет собой пояснительную диаграмму списка 2, указывающего информацию о размере единицы кодирования ИКМ в наборе параметров последовательности.
Фиг.4 представляет собой блок-схему последовательности действий, изображающую операцию записи заголовка ИКМ.
Фиг.5 представляет собой блок-схему устройства видеодекодирования в примерном варианте 2 осуществления.
Фиг.6 представляет собой блок-схему последовательности действий, изображающую операцию синтаксического анализа заголовка ИКМ.
Фиг.7 представляет собой пояснительную диаграмму списка 3, указывающего информацию о размере единицы кодирования ИКМ в наборе параметров видеокадра.
Фиг.8 представляет собой пояснительную диаграмму списка 4, указывающую информацию о размере единицы кодирования ИКМ в заголовке слайса.
Фиг.9 представляет собой пояснительную диаграмму списка 1, указывающую заголовок ИКМ в синтаксисе PU в примерном варианте 3 осуществления.
Фиг.10 представляет собой блок-схему последовательности действий, изображающую операцию синтаксического анализа заголовка ИКМ в примерном варианте 3 осуществления.
Фиг.11 представляет собой блок-схему, изображающую конструктивный пример системы обработки информации, способной реализовать функции устройства видеокодирования и устройства видеодекодирования согласно настоящему изобретению.
Фиг.12 представляет собой блок-схему, изображающую основную часть устройства видеокодирования согласно настоящему изобретению.
Фиг.13 представляет собой блок-схему, изображающую основную часть устройства видеодекодирования согласно настоящему изобретению.
Фиг.14 представляет собой блок-схему типового устройства видеокодирования.
Фиг.15 представляет собой пояснительную диаграмму, изображающую пример разделения блока.
Фиг.16 представляет собой пояснительную диаграмму для описания типов предсказания.
Фиг.17 представляет собой пояснительную диаграмму для описания типов предсказания.
Фиг.18 представляет собой пояснительную диаграмму, изображающую пример межкадрового предсказания, использующего размер блока 16×16 в качестве примера.
Фиг.19 представляет собой пояснительную диаграмму для описания CTB.
Фиг.20 представляет собой пояснительную диаграмму для описания PU.
Описание вариантов осуществления
Примерный вариант 1 осуществления
Примерный вариант 1 осуществления изображает устройство видеокодирования, включающее в себя средство для выбора выходных данных средства энтропийного кодирования или средства кодирования ИКМ в размере CU, устанавливаемым извне; средство для встраивания заголовка ИКМ в битовый поток в размере CU, устанавливаемым извне; и средство для встраивания в битовый поток информации, относящейся к размеру единицы кодирования ИКМ для сигнализации размера CU, устанавливаемого извне, на устройство видеодекодирования.
2
Чтобы обеспечить описание, используя конкретные примеры, в данном примерном варианте осуществления предполагается, что размер CU, для которого встраивается заголовок ИКМ в битовый поток, больше или равен размеру единицы кодирования ИКМ, устанавливаемому извне (pcmCodingUnitSize). Также предполагается, что доступными размерами единицы кодирования являются 128, 64, 32, 16 и 8, и pcmCodingUnitSize равен 16. Также предполагается, что информация, относящаяся к размеру единицы кодирования ИКМ, равна логарифму по основанию 2 значения, полученного делением размера единицы кодирования ИКМ на минимальный размер единицы кодирования, как описано ниже. Следовательно, в данном примерном варианте осуществления размерами блока, соответствующими размерам CU, для которых заголовок ИКМ встраивается в битовый поток, являются 128×128, 64×64, 32×32 и 16×16. Кроме того, конкретным значением информации, относящейся к размеру CU, встраиваемой в битовый поток, является 1 (=log(16/8)).
Как показано на фиг.1, устройство видеокодирования в данном примерном варианте осуществления включает в себя преобразователь/квантователь 102, энтропийный кодер 103, обратный преобразователь/обратный квантователь 104, буфер 105, предсказатель 106, кодер 107 ИКМ, декодер 108 ИКМ, селектор 109 мультиплексных данных, мультиплексор 110, переключатель 121 и переключатель 122 аналогично типовому устройству видеокодирования, показанному на фиг.14. Устройство видеокодирования в данном примерном варианте осуществления, показанном на фиг.1, отличается от устройства видеокодирования, показанного на фиг.14, тем, что pcmCodingUnitSize подается на селектор 109 мультиплексных данных, чтобы передавать заголовок ИКМ в размере CU, который больше или равен pcmCodingUnitSize, и pcmCodingUnitSize также подается на мультиплексор 110, чтобы сигнализировать pcmCodingUnitSize на устройство видеодекодирования.
Сигнал предсказания, подаваемый от предсказателя 106, вычитается из входного видео размера CU, и результат вводится в преобразователь/квантователь 102.
Преобразователь/квантователь 102 преобразует по частоте изображение (изображение ошибки предсказания), из которого был вычтен сигнал предсказания.
Преобразователь/квантователь 102 дополнительно квантует преобразованное по частоте изображение ошибки предсказания (коэффициент преобразования частоты) с шириной Qs шага квантования.
Энтропийный кодер 103 энтропийно кодирует split_coding_unit_flag (см. фиг.19) для сигнализации размера CU, параметров предсказания, подаваемых с предсказателя 106, и значения квантования преобразования, подаваемого с преобразователя/квантователя 102. Параметрами предсказания являются информация, относящаяся к предсказанию CU, подлежащей кодированию, такой как тип блока (внутреннее предсказание, внешнее предсказание и ИКМ), размер блока внутреннего предсказания, направление внутреннего предсказания, размер блока внешнего предсказания и вектор движения.
Основываясь на pcmCodingUnitSize, установленным извне посредством селектора 109 мультиплексных данных, энтропийный кодер 103 в данном примерном варианте осуществления энтропийно кодирует синтаксис pcm_flag, который указывает ВКЛ/ВЫКЛ кодирования ИКМ, в качестве ВЫКЛ в случае, когда CU, подлежащая кодированию, имеет размер, который больше или равен pcmCodingUnitSize, и также имеет режим предсказания внутреннего предсказания.
Обратный преобразователь/обратный квантователь 104 обратно квантует значение квантования преобразования с шириной Qs шага квантования. Обратный преобразователь/обратный квантователь 104 дополнительно обратно преобразует по частоте коэффициент преобразования частоты, полученный обратным квантованием. Сигнал предсказания добавляется к восстановленному изображению ошибки предсказания, полученному обратным преобразованием частоты, и результат подается на переключатель 122.
Селектор 109 мультиплексных данных контролирует количество входных данных энтропийного кодера 103, соответствующих CU, подлежащей кодированию, которая больше или равна pcmCodingUnitSize. В случае, когда энтропийный кодер 103 способен энтропийно кодировать входные данные в течение времени обработки CU, подлежащей кодированию, которая больше или равна pcmCodingUnitSize, селектор 109 мультиплексных данных выбирает выходные данные энтропийного кодера 103 и вызывает подачу выбранных данных на мультиплексор 110 через переключатель 121. Селектор 109 мультиплексных данных дополнительно выбирает выходные данные обратного преобразователя/обратного квантователя 104 и вызывает подачу выбранных данных в буфер 105 через переключатель 122.
В случае, когда энтропийный кодер 103 не способен энтропийно кодировать входные данные в течение времени обработки CU, подлежащей кодированию, селектор 109 мультиплексных данных сначала вызывает энтропийное кодирование и вывод энтропийным кодером 103 информации, указывающей, что CU, которая больше или равна pcmCodingUnitSize, кодируется посредством кодирования ИКМ. Подробно селектор 109 мультиплексных данных вызывает энтропийное кодирование и вывод энтропийным кодером 103 синтаксиса mode_table_idx или синтаксиса pred_mode, который указывает тип блока, в качестве внутреннего предсказания, и энтропийное кодирование и вывод синтаксиса pcm_flag, который указывает ВКЛ/ВЫКЛ кодирования ИКМ, в качестве ВКЛ в заголовке PU в CU.
Затем выравниваются по байтам выходные биты энтропийного кодера 103. Подробно энтропийный кодер 103 подает заданное количество синтаксиса pcm_alignment_zero_bit на мультиплексор 110. Кроме того, механизм кодирования энтропийного кодера 103 инициализируется для последующего кодирования.
После того как механизм кодирования будет инициализирован, кодер 107 ИКМ кодирует посредством кодирования ИКМ входное видео CU. Выходные данные pcm_sample_luma[i] яркости кодера 107 ИКМ имеют длину в битах пикселя bit_depth_luma яркости входного видео. В данном случае i (0≤i≤255) представляет собой индекс в порядке растрового сканирования в блоке CU. Аналогично, выходные данные pcm_sample_chroma[i] (i: 0≤i≤128) цветовой разности кодера 107 ИКМ имеют длину в битах пикселя bit_depth_chroma цветовой разности выходного видео.
После того как входное видео CU будет кодировано посредством кодирования ИКМ, декодер 108 ИКМ декодирует посредством декодирования ИКМ pcm_sample_luma[i] и pcm_sample_chroma[i].
После декодирования ИКМ селектор 109 мультиплексных данных выбирает выходные данные кодера 107 ИКМ и вызывает подачу выбранных данных на мультиплексор 110 через переключатель 121.
Наконец, селектор 109 мультиплексных данных выбирает выходные данные декодера 108 ИКМ и вызывает подачу выбранных данных в буфер 105 через переключатель 122.
При соответствии спецификации функций, категорий и дескрипторов синтаксиса в NPL 1 и 4.1.10 Синтаксис единицы предсказания в NPL 2, вышеупомянутый синтаксис mode_table_idx, синтаксис pred_mode, синтаксис pcm_flag и синтаксис pcm_alignment_zero_bit могут сигнализироваться так, как представлено в списке 1, показанном на фиг.2. В списке 1 переменная pcm_unit_flag, которая представляет собой условие сигнализации синтаксиса pcm_alignment_zero_bit, равна ВКЛ только в случае, когда сигнализируется синтаксис pcm_flag для ВКЛ кодирования ИКМ. В противном случае переменная pcm_unit_flag равна ВЫКЛ. Этот примерный вариант осуществления имеет особенность, что в списке 1 синтаксис pcm_flag сигнализируется только в заголовке PU в CU размера, большего или равного pcmCodingUnitSize в соответствии с условием «if(currPredUnitSize >=pcmCodingUnitSize)».
Мультиплексор 110 мультиплексирует информацию (max_pcm_coding_unit_hierarchy_depth), относящуюся к размеру единицы кодирования ИКМ, и выходные данные энтропийного кодера 103 и кодера 107 ИКМ и выводит результат мультиплексирования. При соответствии с 4.1.2 Синтаксис RBSP набора параметров последовательности в NPL 2, синтаксис max_pcm_coding_unit_hierarchy_depth (логарифм по основанию 2 значения, полученного делением размера единицы кодирования ИКМ на минимальный размер единицы кодирования, «1» в данном примерном варианте осуществления) мультиплексируется вслед за синтаксисом log2_min_coding_unit_size_minus3 и синтаксисом max_coding_unit_hierarchy_depth набора параметров последовательности, как представлено в списке 2, показанном на фиг.3. В данном случае max_pcm_coding_unit_hierarchy_depth может называться min_pcm_coding_unit_hierarchy_depth. Синтаксис log2_min_coding_unit_size_minus3 и синтаксис max_coding_unit_hierarchy_depth представляют собой информацию для определения размера SCU (MinCodingUnitSize) и размер LCU (MaxCodingUnitSize) соответственно. MinCodingUnitSize и MaxCodingUnitSize вычисляются соответственно следующим образом.
MinCodingUnitSize = 1 << (log2_min_coding_unit_size_minus3 + 3)
MaxCodingUnitSize = 1 << (log2_min_coding_unit_size_minus3 + 3 + max_coding_unit_hierarchy_depth)
Синтаксис max_coding_unit_hierarchy_depth и MinCodingUnitSize имеют следующую зависимость.
2
max_pcm_coding_unit_hierarchy_depth = log(pcmCodingUnitSize/MinCodingUnitSize)
Основываясь на приведенной выше операции, устройство видеокодирования согласно настоящему изобретению генерирует битовый поток.
Нижеследующее описывает операцию записи заголовка ИКМ, которая является признаком настоящего изобретения, со ссылкой на блок-схему последовательности действий на фиг.4.
Как показано на фиг.4, в случае неспособности энтропийного кодирования в течение времени обработки CU, подлежащей кодированию, энтропийный кодер 103 энтропийно кодирует тип блока в качестве внутреннего предсказания на этапе S101. Т.е. энтропийный кодер 103 энтропийно кодирует синтаксис mode_table_idx или синтаксис pred_mode в качестве внутреннего предсказания. На этапе S102 энтропийный кодер 103 энтропийно кодирует заголовок ИКМ. Подробно энтропийный кодер 103 энтропийно кодирует синтаксис pcm_flag как ВКЛ. На этапе S103 энтропийный кодер 103 выравнивает по байтам выходные биты посредством подачи заданного количества синтаксиса pcm_alignment_zero_bit на мультиплексор 110. Т.е. энтропийный кодер 103 выводит заданное количество синтаксиса pcm_alignment_zero_bit. Энтропийный кодер 103 также инициализирует механизм кодирования. На этапе S104 кодер 107 ИКМ кодирует посредством кодирования ИКМ входное видео CU.
Устройство видеокодирования в данном примерном варианте осуществления включает в себя: средство выбора мультиплексных данных для выбора выходных данных средства энтропийного кодирования или средства кодирования ИКМ в размере единицы кодирования, устанавливаемой извне; и средство мультиплексирования для встраивания в битовый поток заголовка ИКМ в размере единицы кодирования, устанавливаемой извне. Поэтому отношение количества битов заголовка ИКМ в битовом потоке может сохраняться низким, и может поддерживаться качество сжатого видео, в то же время гарантируя некоторое время обработки для устройства видеокодирования.
(глубина - LCU_depth)
(глубина - LCU_depth)
(SCU_depth - глубина)
(SCU_depth - глубина)
Кроме того, средство мультиплексирования встраивает в битовый поток информацию о размере единицы кодирования ИКМ для сигнализации размера CU, устанавливаемого извне, на устройство видеодекодирования, где информация о размере CU может быть выражена, например, посредством разности глубины относительно глубины LCU или SCU. Например, в случае выражения относительно глубины LCU (LCU_depth) размер CU заданной глубины может быть выражен как 1/2 размера LCU (1/4 при преобразовании в размер блока). В случае выражения относительно глубины SCU (SCU_depth) размер CU заданной глубины может быть выражен как 2, умноженный на размер SCU (умноженный на 4 при преобразовании в размер блока).
Посредством включения средства мультиплексирования, имеющего вышеупомянутый признак, настоящее изобретение может повышать функциональную совместимость устройства видеокодирования и устройства видеодекодирования.
Устройство видеокодирования в данном примерном варианте осуществления включает в себя средство для встраивания в битовый поток информации, относящейся к размеру единицы кодирования, для которой обеспечивается заголовок ИКМ, чтобы иметь возможность синтаксического анализа заголовка ИКМ из битового потока и переключения между средством энтропийного декодирования и средством декодирования ИКМ, выполняемого в равной степени и при видеодекодировании. Таким образом может быть повышена функциональная совместимость устройства видеокодирования и устройства видеодекодирования.
Примерный вариант 2 осуществления
Примерный вариант 2 осуществления изображает устройство видеодекодирования, которое декодирует битовый поток, генерируемый устройством видеокодирования в примерном варианте 1 осуществления.
Устройство видеодекодирования в данном примерном варианте осуществления включает в себя средство для демультиплексирования информации о размере единицы кодирования ИКМ, мультиплексированной в битовом потоке; средство размера блока для определения заданного размера блока, в отношении которого синтаксически анализируется заголовок ИКМ, основываясь на демультиплексированной информации о размере единицы кодирования ИКМ; средство синтаксического анализа для синтаксического анализа заголовка ИКМ из битового потока в размере единицы кодирования, определенном средством размера блока; и средство управления декодированием для управления средством энтропийного декодирования и средством декодирования ИКМ, основываясь на заголовке ИКМ, синтаксически проанализированным средством синтаксического анализа.
Как показано на фиг.5, устройство видеодекодирования в данном примерном варианте осуществления включает в себя демультиплексор 201, контроллер 202 декодирования, декодер 203 ИКМ, энтропийный декодер 204, обратный преобразователь/обратный квантователь 206, предсказатель 207, буфер 208, переключатель 221 и переключатель 222.
Демультиплексор 201 демультиплексирует входной битовый поток и извлекает информацию о размере единицы кодирования ИКМ и энтропийно кодированный или кодированный ИКМ битовый поток видео. Демультиплексор 201 демультиплексирует синтаксис max_pcm_coding_unit_hierarchy_depth, следующий за синтаксисом log2_min_coding_unit_size_minus3 и синтаксисом max_coding_unit_hierarchy_depth в параметрах последовательности, как представлено в списке 2, показанном на фиг.3. Демультиплексор 201 затем определяет, используя демультиплексированные значения синтаксиса, размер единицы кодирования ИКМ pcmCodingUnitSize, для которого передается pcm_flag в качестве заголовка ИКМ следующим образом.
pcmCodingUnitSize = 1 << (log2_min_coding_unit_size_minus3 + 3 + max_pcm_coding_unit_hierarchy_depth)
Таким образом, демультиплексор 201 в данном примерном варианте осуществления также имеет функцию определения размера блока единицы кодирования, в отношении которой синтаксически анализируется заголовок ИКМ, основываясь на демультиплексированной информации о размере единицы кодирования ИКМ.
Энтропийный декодер 204 энтропийно декодирует битовый поток видео.
В случае, когда единица кодирования (CU), подлежащая энтропийному кодированию, не является кодированной ИКМ CU, энтропийный декодер 204 энтропийно декодирует параметры предсказания и значение квантования преобразования CU и подает их на обратный преобразователь/обратный квантователь 206 и предсказатель 207.
Отметим, что CU кодируется ИКМ в случае, когда, после того как split_coding_unit_flag (см. фиг.19) будет энтропийно декодирован и будет определен размер CU, энтропийно декодируется синтаксис pcm_flag, указывающий ВКЛ кодирования ИКМ в заголовке ИКМ. Таким образом, энтропийный декодер 204 в данном примерном варианте осуществления также имеет функцию синтаксического анализа заголовка ИКМ, включающего в себя синтаксис pcm_flag из битового потока в CU, размер которого больше или равен pcmCodingUnitSize.
Обратный преобразователь/обратный квантователь 206 обратно квантует значение квантования преобразования яркости и цветовой разности с шириной шага квантования. Обратный преобразователь/обратный квантователь 206 дополнительно выполняет обратное преобразование по частоте коэффициента преобразования частоты, полученного обратным квантованием.
После обратного преобразования по частоте предсказатель 207 генерирует сигнал предсказания, используя изображение восстановленного видеокадра, сохраненного в буфере 208, основываясь на энтропийно декодированных параметрах предсказания.
После генерирования сигнала предсказания сигнал предсказания, подаваемый с предсказателя 207, добавляется к восстановленному изображению ошибки предсказания, полученному обратным преобразованием по частоте обратным преобразователем/обратным квантователем 206, и результат подается на переключатель 222.
После добавления сигнала предсказания контроллер 202 декодирования переключает переключатель 222 на подачу восстановленного изображения ошибки предсказания, к которому был добавлен сигнал предсказания, на буфер 208 в качестве восстановленного изображения.
В случае, когда CU кодируется ИКМ, контроллер 202 декодирования вызывает инициализацию механизма декодирования энтропийного декодера 204.
Контроллер 202 декодирования затем вызывает выравнивание по байтам битового потока видео, который находится в середине энтропийного декодирования. Контроллер 202 декодирования вызывает синтаксический анализ pcm_alignment_zero_bit из битового потока видео до выравнивания по байтам.
После этого контроллер 202 декодирования переключает переключатель 221 на подачу выровненного по байтам битового потока видео на декодер 203 ИКМ.
Декодер 203 ИКМ декодирует посредством декодирования ИКМ кодированные ИКМ данные яркости pcm_sample_luma[i] и данные разности цвета pcm_sample_chroma[i], соответствующие размеру блока CU, из выровненного по байтам битового потока видео.
После декодирования ИКМ контроллер 202 декодирования переключает переключатель 222 на подачу декодированного ИКМ изображения единицы кодирования в буфер 208 в качестве восстановленного изображения. Контроллер 202 декодирования переключает переключатель 221 на энтропийный декодер 204 для декодирования следующего макроблока.
Восстановленный видеокадр, сохраненный в буфере 208, затем выводится в качестве декодированного изображения.
Основываясь на описанной выше операции, устройство видеодекодирования в данном примерном варианте осуществления генерирует декодированное изображение.
Нижеследующее описывает операцию синтаксического анализа заголовка ИКМ, которая является признаком настоящего изобретения, со ссылкой на блок-схему последовательности действий на фиг.6.
Как показано на фиг.6, в случае, когда CU кодируется ИКМ, энтропийный декодер 204 энтропийно декодирует split_coding_unit_flag и определяет размер CU на этапе S201. На этапе S202 энтропийный декодер 204 энтропийно декодирует тип блока. Т.е. энтропийный декодер 204 энтропийно декодирует синтаксис mode_table_idx или синтаксис pred_mode. На этапах S203 и S204 энтропийный декодер 204 энтропийно декодирует синтаксис pcm_flag только в случае, когда типом блока является внутреннее предсказание, и размер CU имеет размер, который больше или равен pcmCodingUnitSize. В случае, когда синтаксисом pcm_flag является ВКЛ, на этапе S205 энтропийный декодер 204 инициализирует механизм декодирования. Энтропийный декодер 204 также выравнивает по байтам битовый поток видео посредством синтаксического анализа заданного количества синтаксиса pcm_alignment_zero_bit от демультиплексора 201. Декодер 203 ИКМ декодирует посредством декодирования ИКМ кодированные ИКМ данные яркости pcm_sample_luma[i] и данные разности цвета pcm_sample_chroma[i], соответствующие размеру блока CU, из выровненного по байтам битового потока видео. В случае, когда CU не кодируется ИКМ (этап S203), или в случае, когда энтропийный декодер 204 не декодирует энтропийно синтаксис pcm_flag, указывающий ВКЛ кодирования ИКМ в заголовке PU (этап S204), энтропийный декодер 204 энтропийно декодирует параметры предсказания и значение квантования преобразования следующего CU и подает их на обратный преобразователь/обратный квантователь 206 и предсказатель 207.
Устройство видеодекодирования в данном примерном варианте осуществления может синтаксически анализировать, основываясь на демультиплексированной информации о размере единицы кодирования ИКМ, заголовок ИКМ из битового потока в единице кодирования определенного размера единицы кодирования ИКМ и переключаться между средством энтропийного декодирования и средством декодирования ИКМ. Поэтому битовый поток, в котором отношение количества битов заголовка ИКМ является низким, чтобы, таким образом, поддерживать качество видео, может декодироваться, в то же время гарантируя некоторое время обработки для устройства видеодекодирования.
Отметим, что устройство видеокодирования может мультиплексировать информацию о размере единицы кодирования ИКМ (max_pcm_coding_unit_hierarchy_depth), используемую в примерном варианте 1 осуществления, в наборе параметров видеокадра или заголовке слайса, как представлено в списке 3, показанном на фиг.7, или списке 4, показанном на фиг.8. Аналогично, устройство видеодекодирования может демультиплексировать синтаксис max_pcm_coding_unit_hierarchy_depth из набора параметров видеокадра или заголовка слайса.
Кроме того, синтаксисом max_pcm_coding_unit_hierarchy_depth может быть логарифм по основанию 2 значения, полученного посредством деления максимального размера единицы кодирования (MaxCodingUnitSize) на размер единицы кодирования ИКМ (pcmCodingUnitSize). Т.е. может использоваться следующее выражение.
2
max_pcm_coding_unit_hierarchy_depth = log(MaxCodingUnitSize/pcmCodingUnitSize)
В данном случае в устройстве видеодекодирования размер единицы кодирования ИКМ может вычисляться на основе синтаксиса max_pcm_coding_unit_hierarchy_depth следующим образом.
pcmCodingUnitSize = 1 << (log2_min_coding_unit_size_minus3 + 3 + max_coding_unit_hierarchy_depth - max_pcm_coding_unit_hierarchy_depth)
Отметим, что устройство видеокодирования может соединять и кодировать синтаксис pcm_flag с синтаксисом mode_table_idx или синтаксисом pred_mode. Например, в CU с размером, большим или равным размеру единицы кодирования ИКМ, mode_table_idx = 0 (кодовое слово 1) может устанавливаться в качестве внешнего предсказания, mode_table_idx = 1 (кодовое слово 00) - в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, и mode_table_idx = 2 (кодовое слово 01) - в качестве ИКМ. В CU с размером, меньшим размера единицы кодирования ИКМ, mode_table_idx = 0 (кодовое слов 0) может устанавливаться в качестве внешнего предсказания, и mode_table_idx = 1 (кодовое слово 1) - в качестве внутреннего предсказания с pcm_flag = ВЫКЛ.
В данном случае в CU с размером, большим или равным размеру единицы кодирования ИКМ, устройство видеодекодирования интерпретирует кодовое слово 1 (mode_table_idx = 0) в качестве внешнего предсказания, кодовое слово 00 (mode_table_idx = 1) - в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, и кодовое слово 01 (mode_table_idx = 2) - в качестве ИКМ. В CU с размером, меньшим размера единицы кодирования ИКМ, устройство видеодекодирования интерпретирует кодовое слово 0 (mode_table_idx = 0) в качестве внешнего предсказания, и кодовое слово 1 (mode_table_idx = 1) - в качестве внутреннего предсказания с pcm_flag = ВЫКЛ.
Примерный вариант 3 осуществления
В каждом из примерных вариантов осуществления, описанных выше, ИКМ выбирается в CU более высокого уровня, чтобы гарантировать некоторое время обработки для устройства видеокодирования или устройства видеодекодирования. Однако в случае принятия во внимание, что ИКМ имеет тенденцию выбора в блоке изображения, имеющим низкую межпиксельную корреляцию, т.е. ИКМ стремится быть выбранным в CU более низкого уровня разделенной небольшой области, также является существенным ограничение до заданного размера или менее размера CU, для которого выбирается ИКМ. Основываясь на таком соображении, также может быть уменьшено отношение количества битов заголовка ИКМ в битовом потоке. Упомянутая здесь CU более низкого уровня представляет собой CU, имеющую больше значение глубины, что можно видеть на фиг.19.
В примерном варианте 3 осуществления устройство видеокодирования ограничивает размер CU, для которого выбирается ИКМ, до заданного размера или меньше. Устройство видеокодирования имеет такую же конструкцию, что и показанная на фиг.1.
В случае ограничения размера CU, для которого выбирается ИКМ, до заданного размера или менее, размер CU, для которого заголовок ИКМ встраивается в битовый поток, устанавливается меньшим или равным размеру единицы кодирования ИКМ, устанавливаемому извне (pcmCodingUnitSize), в качестве примера. Также предполагается, что доступными размерами единицы кодирования являются 128, 64, 32, 16 и 8, и pcmCodingUnitSize равен 16.
В устройстве видеокодирования селектор 109 мультиплексных данных контролирует количество входных данных энтропийного кодера 103, соответствующих CU, подлежащей кодированию, которая меньше или равна pcmCodingUnitSize. В случае, когда энтропийный кодер 103 способен энтропийно кодировать входные данные в течение времени обработки CU, подлежащей кодированию, которая меньше или равна pcmCodingUnitSize, селектор 109 мультиплексных данных выбирает выходные данные энтропийного кодера 103 и вызывает подачу выбранных данных на мультиплексор 110 через переключатель 121. В случае, когда энтропийный кодер 103 не способен энтропийно кодировать входные данные в течение времени обработки CU, подлежащей кодированию, селектор 109 мультиплексных данных сначала вызывает энтропийное кодирование и вывод энтропийным кодером 103 информации, указывающей, что CU, размер которой меньше или равен pcmCodingUnitSize, кодируется ИКМ. Подробно селектор 109 мультиплексных данных вызывает энтропийное кодирование и вывод энтропийным кодером 103 синтаксиса mode_table_idx или синтаксиса pred_mode, который указывает тип блока, в качестве внутреннего предсказания, и энтропийное кодирование и вывод синтаксиса pcm_flag, который указывает ВКЛ/ВЫКЛ кодирования ИКМ, в виде ВКЛ в заголовке PU в CU.
В данном примерном варианте осуществления при соответствии спецификации функций, категорий и дескрипторов синтаксиса в NPL 1 и 4.1.10 Синтаксис единицы предсказания в NPL 2, устройство видеокодирования может сигнализировать вышеупомянутый синтаксис mode_table_idx, синтаксис pred_mode, синтаксис pcm_flag и синтаксис pcm_alignment_zero_bit, как представлено в списке 1, показанном на фиг.9. В списке 1, показанном на фиг.9, переменная pcm_unit_flag, которая представляет собой условие сигнализации синтаксиса pcm_alignment_zero_bit, равна ВКЛ только в случае, когда сигнализируется синтаксис pcm_flag для ВКЛ кодирования ИКМ. Иначе переменная pcm_unit_flag равна ВЫКЛ. Этот примерный вариант осуществления имеет признак, что в списке 1 синтаксис pcm_flag сигнализируется только в заголовке PU в CU, размер которой меньше или равен pcmCodingUnitSize, согласно условию «if(currPredUnitSize <= pcmCodingUnitSize)». Другие процессы устройства видеокодирования являются аналогичными процессам в примерном варианте 1 осуществления. Кроме того, содержимое списка 1 в данном примерном варианте осуществления аналогично содержимому списка 1, показанному на фиг.2 в примерном варианте 1 осуществления.
Примерный вариант 4 осуществления
Примерный вариант 4 осуществления изображает устройство видеодекодирования, которое декодирует битовый поток, генерируемый устройством видеокодирования в примерном варианте 3 осуществления.
Устройство видеодекодирования в примерном варианте 4 осуществления имеет такую же конструкцию, что и показанная на фиг.5. В примерном варианте 4 осуществления, однако, устройство видеодекодирования выполняет операцию синтаксического анализа заголовка ИКМ, показанную в блок-схеме последовательности действий на фиг.10. В случае, когда CU кодируется ИКМ, энтропийный декодер 204 энтропийно декодирует split_coding_unit_flag и определяет размер CU на этапе S201. На этапе S202 энтропийный декодер 204 энтропийно декодирует тип блока. Т.е. энтропийный декодер 204 энтропийно декодирует синтаксис mode_table_idx или синтаксис pred_mode. На этапах S203B и S204 энтропийный декодер 204 энтропийно декодирует синтаксис pcm_flag только в случае, когда типом блока является внутреннее предсказание, и размер CU является размером, меньшим или равным pcmCodingUnitSize. В случае, когда синтаксисом pcm_flag является ВКЛ, на этапе S205 энтропийный декодер 204 инициализирует механизм декодирования. Энтропийный декодер 204 также выравнивает по байтам битовый поток видео посредством синтаксического анализа заданного количества синтаксиса pcm_alignment_zero_bit от демультиплексора 201. Декодер 203 ИКМ декодирует посредством декодирования ИКМ кодированные ИКМ данные яркости pcm_sample_luma[i] и данные цветовой разности pcm_sample_chroma[i], соответствующие размеру блока CU, из выровненного по байтам битового потока видео. Другие процессы устройства видеодекодирования являются аналогичными процессам в примерном варианте 2 осуществления.
В случае ограничения до заданного размера или меньше размера CU, для которого выбирается ИКМ, энтропийный декодер 204 в устройстве видеодекодирования также имеет функцию синтаксического анализа заголовка ИКМ, включающего в себя синтаксис pcm_flag из битового потока в CU, размер которой меньше или равен pcmCodingUnitSize.
В данном примерном варианте осуществления битовый поток, в котором является низким отношение количества битов заголовка ИКМ, таким образом сохраняя качество видео, может декодироваться, в то же время гарантируя некоторое время обработки для устройства видеодекодирования.
Отметим, что устройство видеокодирования в примерном варианте 3 осуществления может соединять и кодировать синтаксис pcm_flag с синтаксисом mode_table_idx или синтаксисом pred_mode. Например, в CU размера, меньшего или равного размеру единицы кодирования ИКМ, mode_table_idx = 0 (кодовое слово 0) может устанавливаться в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, mode_table_idx = 1 (кодовое слово 10) - в качестве внешнего предсказания, и mode_table_idx = 2 (кодовое слово 11) - в качестве ИКМ. В CU размера, который больше размера единицы кодирования ИКМ, mode_table_idx = 0 (кодовое слово 0) может устанавливаться в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, и mode_table_idx = 1 (кодовое слово 1) - в качестве внешнего предсказания.
В данном случае в CU размера, который меньше или равен размеру единицы кодирования ИКМ, устройство видеодекодирования в примерном варианте 4 осуществления интерпретирует кодовое слово 0 (mode_table_idx = 0) в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, кодовое слово 10 (mode_table_idx = 1) - в качестве внешнего предсказания, и кодовое слово 11 (mode_table_idx = 2) - в качестве ИКМ. В CU размера, который больше размера единицы кодирования ИКМ, устройство видеодекодирования интерпретирует кодовое слово 0 (mode_table_idx = 0) в качестве внутреннего предсказания с pcm_flag = ВЫКЛ, и кодовое слово 1 (mode_table_idx = 1) - в качестве внешнего предсказания.
Синтаксис pcm_flag может соединяться и кодироваться с синтаксисом pred_mode аналогичным образом, что и в примере синтаксиса mode_table_idx.
В примерных вариантах осуществления, описанных выше, в случае ограничения размера единицы кодирования ИКМ максимальным размером единицы кодирования нет необходимости явно встраивать информацию о размере блока ИКМ в битовый поток. Это потому, что информация, относящаяся к максимальному размеру единицы кодирования, в таком случае неявным образом включает в себя информацию о размере блока ИКМ.
В примерных вариантах осуществления, описанных выше, в случае ограничения размера единицы кодирования ИКМ минимальным размером единицы кодирования нет необходимости явно встраивать информацию о размере блока ИКМ в битовый поток. Это потому, что информация, относящаяся к минимальному размеру единицы кодирования, в таком случае неявно включает в себя информацию о размере блока ИКМ.
Синтаксис pcm_flag может соединяться и кодироваться с синтаксисом pred_mode аналогичным образом, что и в вышеупомянутом примере синтаксиса mode_table_idx. Например, во внутреннем слайсе синтаксис и кодовое слово могут ассоциироваться следующим образом, как описано в NPL 3 (отметим, что это основывается на предположении, что не существует разделения N×N (внутреннее предсказание и внешнее предсказание) в единице кодирования, кроме минимальной единицы кодирования, как описано в NPL 4).
(Соответствие между синтаксисом и кодовым словом в минимальной единице кодирования, включающей в себя кодирование ИКМ)
Синтаксис
Кодовое слово
Intra 2N×2N
1
Intra N×N
01
ИКМ
00
(Соответствие между синтаксисом и кодовым словом в CU, кроме минимальной единицы кодирования, включающей в себя кодирование ИКМ)
Синтаксис
Кодовое слово
Intra 2N×2N
1
ИКМ
0
(Соответствие между синтаксисом и кодовым словом в минимальной единице кодирования, не включающей в себя кодирование ИКМ)
Синтаксис
Кодовое слово
Intra 2N×2N
1
Intra N×N
0
(Соответствие между синтаксисом и кодовым словом в минимальной единице кодирования, не включающей в себя кодирование ИКМ)
Синтаксис
Кодовое слово
Intra 2N×2N
нет
Отметим, что «CU, включающая в себя кодирование ИКМ» представляет собой CU размера единицы кодирования ИКМ, и «CU, не включающая в себя кодирование ИКМ» представляет собой CU не размера единицы кодирования ИКМ. В данном случае, например, в минимальной единице кодирования, включающей в себя кодирование ИКМ во внутреннем слайсе, устройство видеодекодирования интерпретирует кодовое слово 1 как внутреннее предсказание 2N×2N, кодовое слово 01 - в качестве внутреннего предсказания N×N, и кодовое слово 00 - в качестве ИКМ.
Аналогично, в невнутреннем слайсе синтаксис и кодовое слово могут быть связаны следующим образом.
(Соответствие между синтаксисом и кодовым словом общее для всех CU)
Синтаксис
Кодовое слово
разбиение
1
пропуск
01
Inter 2N×2N_MRG
001
Inter 2N×2N
0001
другие
0000
(Соответствие между синтаксисом и кодовым словом в минимальной единице кодирования, включающей в себя кодирование ИКМ, следующие из пункта «Другие»)
Синтаксис
Кодовое слово
Inter 2N×N
0
Inter N×2N
01
Inter N×N
001
Intra 2N×2N
0001
Intra N×N
00001
ИКМ
00000
(Соответствие между синтаксисом и кодовым словом в CU, кроме минимальной единицы кодирования, включающей в себя кодирование ИКМ, следующие из пункта «Другие»)
Синтаксис
Кодовое слово
Inter 2N×N
0
Inter N×2N
01
Intra 2N×2N
001
ИКМ
0000
(Соответствие между синтаксисом и кодовым словом в минимальной единице кодирования, не включая кодирование ИКМ, следующие из пункта «Другие»)
Синтаксис
Кодовое слово
Inter 2N×N
0
Inter N×2N
01
Inter N×N
001
Intra 2N×2N
0001
Intra N×N
0000
(Соответствие между синтаксисом и кодовым словом в CU, кроме минимальной единицы кодирования, не включающей кодирование ИКМ, следующие из пункта «Другие»)
Синтаксис
Кодовое слово
Inter 2N×N
0
Inter N×2N
01
Intra 2N×2N
00
В данном случае, например, в минимальной единице кодирования, включающей кодирование ИКМ, устройство видеодекодирования интерпретирует кодовое слово 0, следующее из пункта «Другие», как внешнее предсказание 2N×N, кодовое слово 01 - как внешнее предсказание N×2N, кодовое слово 001 - как внешнее предсказание N×N, кодовое слово 0001 - как внутреннее предсказание 2N×2N, кодовое слово 00001 - как внутреннее предсказание N×N и кодовое слово 00000 - как ИКМ.
Отметим, что внутренним слайсом является слайс, состоящий только из единиц кодирования, кодированных внутренним предсказанием, и невнутренним слайсом является слайс, включающий в себя единицы кодирования, кодированные внешним предсказанием.
Каждый из примерных вариантов осуществления, описанных выше, может быть реализован аппаратными средствами или может быть реализован посредством компьютерной программы.
Система обработки информации, показанная на фиг.11, включает в себя процессор 1001, память 1002 программ, носитель 1003 данных для хранения видеоданных и носитель 1004 данных для хранения битового потока. Носитель 1003 данных и носитель 1004 данных могут быть отдельными носителями данных или могут быть областями хранения, включенными в один и тот же носитель данных. В качестве носителя данных может применяться магнитный носитель данных, такой как жесткий диск.
В системе обработки информации, показанной на фиг.11, программа для реализации функций блоков (кроме блока буфера), показанных на каждой из фиг.1 и 5, хранится в памяти 1002 программ. Процессор 1001 реализует функции устройства видеокодирования или устройства видеодекодирования, показанные на фиг.1 или 5, посредством исполнения обработки в соответствии с программой, хранимой в памяти 1002 программ.
Фиг.12 представляет собой блок-схему, изображающую основную часть устройства видеокодирования согласно настоящему изобретению. Как показано на фиг.12, устройство видеокодирования согласно настоящему изобретению включает в себя средство 11 преобразования (например, преобразователь/квантователь 102, показанный на фиг.1) для преобразования блока изображения; средство 12 энтропийного кодирования (например, энтропийный кодер 103, показанный на фиг.1) для энтропийного кодирования преобразованных данных блока изображения, преобразованного средством 11 преобразования; средство 13 кодирования ИКМ (например, кодер 107 ИКМ, показанный на фиг.1) для кодирования посредством кодирования ИКМ блока изображения; средство 14 выбора мультиплексных данных (например, селектор 109 мультиплексных данных и переключатель 121) для выбора выходных данных средства 12 энтропийного кодирования (например, энтропийный кодер 103, показанный на фиг.1) или средства 13 кодирования ИКМ в блоке с размером блока, устанавливаемым извне; и средство 15 мультиплексирования (например, мультиплексор 110, показанный на фиг.1) для встраивания заголовка ИКМ в битовый поток в блоке с размером блока, устанавливаемым извне.
Фиг.13 представляет собой блок-схему, изображающую основную часть устройства видеодекодирования согласно настоящему изобретению. Как показано на фиг.13, устройство видеодекодирования согласно настоящему изобретению включает в себя средство 21 демультиплексирования (например, демультиплексор 201, показанный на фиг.5) для демультиплексирования битового потока, включающего в себя информацию о размере блока ИКМ; средство 22 определения размера блока ИКМ (например, демультиплексор 201, показанный на фиг.5) для определения размера блока ИКМ, в отношении которого выполняется синтаксический анализ заголовка ИКМ, основываясь на информации о размере блока ИКМ, демультиплексированной средством 21 демультиплексирования; средство 23 синтаксического анализа заголовка ИКМ (например, энтропийный декодер 204, показанный на фиг.5) для синтаксического анализа заголовка ИКМ из битового потока в блоке с размером блока ИКМ, определенным средством 22 определения размера блока ИКМ; средство 24 энтропийного декодирования (например, энтропийный декодер 204, показанный на фиг.5) для энтропийного декодирования преобразованных данных изображения в битовом потоке; средство 25 обратного преобразования (например, обратный преобразователь/обратный квантователь 206, показанный на фиг.5) для обратного преобразования преобразованных данных, энтропийно декодированных средством 24 энтропийного декодирования; средство 26 декодирования ИКМ (например, декодер 203 ИКМ, показанный на фиг.5) для декодирования посредством декодирования ИКМ данных ИКМ изображения в битовом потоке; и средство 27 управления декодированием (например, контроллер 202 декодирования, показанный на фиг.5) для управления средством 24 энтропийного декодирования и средством 26 декодирования ИКМ, основываясь на заголовке ИКМ, синтаксически проанализированным средством 23 синтаксического анализа заголовка ИКМ.
Примерные варианты осуществления, описанные выше, могут быть частично или полностью описаны в последующих дополнительных отличительных признаках, хотя настоящее изобретение не ограничивается нижеследующими конструкциями.
N
N
(Дополнительный отличительный признак 1) Устройство видеокодирования, в котором средство мультиплексирования встраивает в битовый поток информацию, относящуюся к N, в качестве информации о размере блока ИКМ, в случае, когда внешне устанавливаемый размер блока больше или равен 1/4 размера блока, соответствующего максимальному размеру единицы кодирования, или в случае, когда внешне устанавливаемый размер блока больше или равен 4, умноженному на размер блока, соответствующий минимальному размеру единицы кодирования.
N
N
(Дополнительный отличительный признак 2) Устройство видеодекодирования, в котором средство демультиплексирования получает информацию, относящуюся к N, в качестве информации о размере блока ИКМ, в случае, когда размер блока больше или равен 1/4 размера блока, соответствующего максимальному размеру единицы кодирования, или в случае, когда размер блока больше или равен 4, умноженному на размер блока, соответствующий минимальному размеру единицы кодирования.
N
N
(Дополнительный отличительный признак 3) Устройство видеокодирования, в котором средство мультиплексирования встраивает в битовый поток информацию, относящуюся к N, в качестве информации о размере блока ИКМ, в случае, когда устанавливаемый внешне размер блока меньше или равен 1/4 размера блока, соответствующего максимальному размеру единицы кодирования, или в случае, когда устанавливаемый внешне размер блока меньше или равен 4, умноженному на размер блока, соответствующий минимальному размеру единицы кодирования.
N
N
(Дополнительный отличительный признак 4) Устройство видеодекодирования, в котором средство демультиплексирования получает информацию, относящуюся к N, в качестве информации о размере блока ИКМ, в случае, когда размер блока меньше или равен 1/4 размера блока, соответствующего максимальному размеру единицы кодирования, или в случае, когда размер блока меньше или равен 4, умноженному на размер блока, соответствующий минимальному размеру единицы кодирования.
Хотя настоящее изобретение было описано со ссылкой на вышеупомянутые примерные варианты осуществления и примеры, настоящее изобретение не ограничивается вышеупомянутыми примерными вариантами осуществления и примерами. Различные изменения, понимаемые специалистом в данной области техники, в пределах объема настоящего изобретения могут быть сделаны в конструкциях и деталях настоящего изобретения.
Данная заявка притязает на приоритет, основанный на заявке на патент Японии № 2010-264320, поданной 26 ноября 2010 г., и заявке на патент Японии № 2011-026331, поданной 9 февраля 2011 г., раскрытия которых включены в данный документ во всей их полноте.
Список ссылочных позиций
11 - средство преобразования
12 - средство энтропийного кодирования
13 - средство кодирования ИКМ
14 - средство выбора мультиплексных данных
15 - средство мультиплексирования
21 - средство демультиплексирования
22 - средство определения размера блока
23 - средство синтаксического анализа заголовка ИКМ
24 - средство энтропийного декодирования
25 - средство обратного преобразования
26 - средство декодирования ИКМ
27 - средство управления декодированием
102 - преобразователь/квантователь
103 - энтропийный кодер
104 - обратный преобразователь/обратный квантователь
105 - буфер
106 - предсказатель
107 - кодер ИКМ
108 - декодер ИКМ
109 - селектор мультиплексных данных
110 - мультиплексор
121 - переключатель
122 - переключатель
201 - демультиплексор
202 - контроллер декодирования
203 - декодер ИКМ
204 - энтропийный декодер
206 - обратный преобразователь/обратный квантователь
207 - предсказатель
208 - буфер
221 - переключатель
222 - переключатель
1001 - процессор
1002 - память программ
1003 - носитель данных
1004 - носитель данных.