СПОСОБ ДЕКОДИРОВАНИЯ, СПОСОБ КОДИРОВАНИЯ, УСТРОЙСТВО ДЕКОДИРОВАНИЯ, УСТРОЙСТВО КОДИРОВАНИЯ, И УСТРОЙСТВО КОДИРОВАНИЯ И ДЕКОДИРОВАНИЯ
DECODING METHOD, ENCODING METHOD, DECODING DEVICE, ENCODING DEVICE, AND APPARATUS FOR ENCODING AND DECODING

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
Настоящее изобретение относится к способу декодирования изображения, способу кодирования изображения, устройству декодирования изображения, устройству кодирования изображения, и устройству кодирования и декодирования изображения, и в частности к способу декодирования изображения, способу кодирования изображения, устройству декодирования изображения, устройству кодирования изображения, и устройству кодирования и декодирования изображения, которые используют арифметическое кодирование или арифметическое декодирование.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Сигналы естественного изображения обладают статистическими вариациями, показывающими нестационарное поведение. Одним из способов энтропийного кодирования, использующим нестационарные статистические вариации, является Контекстнозависимое Адаптивное Бинарное Арифметическое Кодирование (САВАС) (смотри NLP 1). САВАС используется в качестве стандарта ITU-T/ISOIEC для кодирования видео, H.264/AVC.
Ниже будет описан смысл терминов, используемых в схеме САВАС.
(1) «Контекстнозависимое Адаптивное» означает адаптацию способов кодирования и декодирования к статистическим вариациям.
Другими словами, «Контекстнозависимое Адаптивное» означает предсказание надлежащей вероятности в качестве вероятности появления символа наряду с событием окружающих условий, когда кодируется или декодируется символ. При кодировании, когда определяется вероятность p(x) появления каждого значения символа S, применяется условная вероятность появления, используя фактическое событие или последовательность событий F(z) в качестве условия.
(2) «Бинарное» означает представление символа, используя бинарную последовательность. Символ, представленный мульти-значением, один раз отображается в бинарную последовательность, именуемую «строкой ячеек». Предсказанная вероятность (условная вероятность) переключается и используется для каждого из элементов последовательности, и появление одного из событий из двух значений представляется битовой последовательностью. Соответственно, управление (инициализация и обновление) вероятностью значения может осуществляться, используя единицу (бинарную элементарную единицу), которая меньше единицы типа сигнала (смотри Фиг. 2 и прочие NLP 1).
(3) «Арифметическое» означает, что битовая последовательность генерируется не со ссылкой на соответствия в таблице, а посредством вычисления. В схеме кодирования, использующей таблицы кодов с переменной длиной слова, такой как H.263, MPEG-4, и H.264, даже каждое значение символа с вероятностью появления выше 0,5 (50%), должно быть связано с одной бинарной последовательностью (битовой последовательностью). Таким образом, значение с наивысшей вероятностью должно быть минимум связано с одним битом для одного символа. В противоположность, арифметическое кодирование может представить появление события с более высокой вероятностью посредством целого числа, равного или меньшего, чем один бит. Когда (i) присутствует тип сигнала, в котором вероятность появления того, что первое бинарное значение равно 0 превышает 0,9 (90%) и (ii) событие с первым бинарным значением равным 0 последовательно происходит N раз, то нет необходимости в выводе данных 1 бита N раз для каждого значения «0».
СПИСОК ЦИТАТ
НЕПАТЕНТНАЯ ЛИТЕРАТУРА
[NLP 1] Detlev Marpe и др., «Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard»,
IEEE Transaction on circuits and systems for video technology, Том 13, № 7, Июль 2003.
[NLP 2] Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5-е заседание: Женева, Швейцария, 16-23 марта 2011г., JCTVC-E603, версия 7 «WD3: Working Draft 3 of High-Efficiency Video Coding», http://phenix.int-evry.fr/jct/doc_end_user/documents/5_Geneva/wg
11/JCTVC-E603-v7.zip
[NLP 3] Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 4-е заседание: Тэгу, Южная Корея, 20-28 января 2011г., «Common test conditions and software reference configurations», JCTVC-E700
[NLP 4] Gisle Bjøntegaard, «Improvements of the BD-PSNR model», ITU-T SG16 Q.6 Document, VCEG-AI11, Берлин, Июль 2008 г.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
ТЕХНИЧЕСКАЯ ЗАДАЧА
В таком способе кодирования изображения и способе декодирования изображения желательно уменьшить использование памяти (емкость памяти, которая должна быть использована).
Здесь, цель настоящего изобретения состоит в предоставлении способа кодирования изображения или способа декодирования изображения, который может уменьшить использование памяти.
РЕШЕНИЕ ЗАДАЧИ
Для достижения цели, способ декодирования изображения в соответствии с аспектом настоящего изобретения является способом декодирования изображения, использующим арифметическое декодирование, и способ включает в себя: определение контекста для использования в текущем блоке, из числа множества контекстов; выполнение арифметического декодирования над битовой последовательностью, соответствующей текущему блоку, используя определенный контекст для декодирования бинарной последовательности, при этом битовая последовательность получена посредством выполнения арифметического кодирования над параметром управления текущего блока; и преобразования из двоичной формы бинарной последовательности, чтобы декодировать параметр управления текущего блока, при этом определение контекста включает в себя: определение типа сигнала параметра управления текущего блока; определение контекста при первом условии, что используются декодированные параметры управления соседних блоков текущего блока, когда тип сигнала является первым типом, при этом соседние блоки являются левым блоком и верхним блоком для текущего блока; и определение контекста при втором условии, что декодированный параметр управления верхнего блока не используется, когда тип сигнала является вторым типом, отличным от первого типа, при этом первый тип является одним из «split_coding_unit_flag»и «skip_flag», а второй тип является (i) «merge_flag», (ii) «ref_idx_l0» или «ref_idx_l1», (iii) «inter_pred_flag», (iv) «mvd_l0» или «mvd_l1», (v) «no_residual_data_flag», (vi) «intra_chroma_pred_mode», (vii) «cbf_luma» и (viii) «cbf_cb» или «cbf_cr».
ПРЕИМУЩЕСТВЕННЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ
Настоящее изобретение может предоставить способ кодирования изображения или способ декодирования изображения, который может уменьшить использование памяти.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг. 1 является функциональной блок-схемой устройства кодирования изображения в соответствии с Вариантом 1 Осуществления.
Фиг. 2 является функциональной блок-схемой модуля кодирования с переменной длиной слова в соответствии с Вариантом 1 Осуществления.
Фиг. 3 является таблицей контекстной модели параметра управления в соответствии с Вариантом 1 Осуществления.
Фиг. 4 является блок-схемой последовательности операций, показывающей способ арифметического кодирования в соответствии с Вариантом 1 Осуществления.
Фиг. 5 является функциональной блок-схемой устройства декодирования изображения в соответствии с Вариантом 2 Осуществления.
Фиг. 6 является функциональной блок-схемой модуля декодирования с переменной длиной слова в соответствии с Вариантом 2 Осуществления.
Фиг. 7 является блок-схемой последовательности операций, указывающей способ арифметического декодирования в соответствии с Вариантом 2 Осуществления.
Фиг. 8 является блок-схемой последовательности операций, показывающей модификацию способа арифметического декодирования в соответствии с Вариантом 2 Осуществления.
Фиг. 9A, иллюстрирует информацию отображения и назначение индексов контекста в соответствии с Вариантом 2 Осуществления.
Фиг. 9B иллюстрирует блоки выполненного разбиения(древовидная структура) в соответствии с HEVC в соответствии с Вариантом 2 Осуществления.
Фиг. 10 иллюстрирует многослойную структуру блока в соответствии с Вариантом 2 Осуществления.
Фиг. 11 иллюстрирует способ арифметического декодирования для split_coding_unit_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 12A является таблицей, показывающей результат проверки в отношении split_coding_unit_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 12B является таблицей, показывающей результат проверки в отношении split_coding_unit_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 13 иллюстрирует способ арифметического декодирования для skip_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 14A является таблицей, показывающей результат проверки в отношении skip_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 14B является таблицей, показывающей результат проверки в отношении skip_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 15 является таблицей, показывающей способ арифметического декодирования для merge_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 16A является таблицей, показывающей результат проверки в отношении merge_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 16B является таблицей, показывающей результат проверки в отношении merge_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 17 является таблицей, показывающей способ арифметического декодирования для ref_idx в соответствии с Вариантом 3 Осуществления.
Фиг. 18A является таблицей, показывающей результат проверки в отношении ref_idx в соответствии с Вариантом 3 Осуществления.
Фиг. 18B является таблицей, показывающей результат проверки в отношении ref_idx в соответствии с Вариантом 3 Осуществления.
Фиг. 18C является таблицей, показывающей контекстную модель для ref_idx в соответствии с Вариантом 3 Осуществления.
Фиг. 18D является таблицей, показывающей контекстную модель для ref_idx в соответствии с Вариантом 3 Осуществления.
Фиг. 19 является таблицей, показывающей способ арифметического декодирования для inter_pred_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 20A является таблицей, показывающей результат проверки в отношении inter_pred_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 20B является таблицей, показывающей результат проверки в отношении inter_pred_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 21 является таблицей, показывающей способ арифметического декодирования для mvd в соответствии с Вариантом 3 Осуществления.
Фиг. 22A является таблицей, показывающей результат проверки в отношении mvd в соответствии с Вариантом 3 Осуществления.
Фиг. 22B является таблицей, показывающей результат проверки в отношении mvd в соответствии с Вариантом 3 Осуществления.
Фиг. 22C является таблицей, показывающей контекстную модель для mvd в соответствии с Вариантом 3 Осуществления.
Фиг. 22D является таблицей, показывающей контекстную модель для mvd в соответствии с Вариантом 3 Осуществления.
Фиг. 23A является таблицей, показывающей способ арифметического декодирования для no_residual_data_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 23B является таблицей, указывающей синтаксис для no_residual_data_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 24A является таблицей, показывающей результат проверки в отношении no_residual_data_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 24B является таблицей, показывающей результат проверки в отношении no_residual_data_flag в соответствии с Вариантом 3 Осуществления.
Фиг. 25A является таблицей, показывающей способ арифметического декодирования для intra_chroma_pred_mode в соответствии с Вариантом 3 Осуществления.
Фиг. 25B является таблицей, показывающей способ определения IntraPredModeC на основании intra_chroma_pred_mode, в соответствии с Вариантом 3 Осуществления.
Фиг. 26A является таблицей, показывающей результат проверки в отношении intra_chroma_pred_mode в соответствии с Вариантом 3 Осуществления.
Фиг. 26B является таблицей, показывающей результат проверки в отношении intra_chroma_pred_mode в соответствии с Вариантом 3 Осуществления.
Фиг. 27 является таблицей, показывающей способ арифметического декодирования для cbr_luma(cr,cb) в соответствии с Вариантом 3 Осуществления.
Фиг. 28A является таблицей, показывающей результат проверки в отношении cbr_luma(cr,cb) в соответствии с Вариантом 3 Осуществления.
Фиг. 28B является таблицей, показывающей результат проверки в отношении cbr_luma(cr,cb) в соответствии с Вариантом 3 Осуществления.
Фиг. 29A является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 29B является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 30A является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 30B является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 31A является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 31B является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 32A является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 32B является графиком, показывающим результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 33A является таблицей, показывающей пример набора параметров в соответствии с Вариантом 3 Осуществления.
Фиг. 33B является таблицей, показывающей результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 34A является таблицей, показывающей пример набора параметров в соответствии с Вариантом 3 Осуществления.
Фиг. 34В является таблицей, показывающей результат проверки в соответствии с Вариантом 3 Осуществления.
Фиг. 35 иллюстрирует контекстные модели, использующие значения параметров управления, соответствующих двум соседним блокам в соответствии с Вариантами Осуществления.
Фиг. 36 иллюстрирует увеличение в использовании памяти, когда используется верхний блок, в соответствии с Вариантами Осуществления.
Фиг. 37 иллюстрирует общую конфигурацию системы предоставления контента для реализации услуг распространения контента.
Фиг. 38 иллюстрирует общую конфигурацию системы цифрового вещания.
Фиг. 39 является блок-схемой, иллюстрирующей пример конфигурации телевизора.
Фиг. 40 является блок-схемой, иллюстрирующей пример конфигурации модуля записи/воспроизведения информации, который считывает и записывает информацию с или на носитель записи, который является оптическим диском.
Фиг. 41 иллюстрирует пример конфигурации носителя записи, который является оптическим диском.
Фиг. 42A иллюстрирует пример сотового телефона.
Фиг. 42B иллюстрирует блок-схему, показывающую пример конфигурации сотового телефона.
Фиг. 43 иллюстрирует структуру мультиплексированных данных.
Фиг. 44 схематично иллюстрирует то, каким образом мультиплексирован каждый поток в мультиплексированных данных.
Фиг. 45 более подробно иллюстрирует то, каким образом видео поток хранится в потоке пакетов PES.
Фиг. 46 иллюстрирует структуру пакетов TS и исходных пакетов в мультиплексированных данных.
Фиг. 47 иллюстрирует структуру данных PMT.
Фиг. 48 иллюстрирует внутреннюю структуру информации мультиплексированных данных.
Фиг. 49 иллюстрирует внутреннюю структуру информации атрибутов протока.
Фиг. 50 иллюстрирует этапы для идентификации видеоданных.
Фиг. 51 является блок-схемой, иллюстрирующей пример конфигурации интегральной микросхемы для реализации способа кодирования движущегося изображения и способа декодирования движущегося изображения в соответствии с каждым из Вариантов Осуществления.
Фиг. 52 иллюстрирует конфигурацию для переключения между частотами возбуждения.
Фиг. 53 иллюстрирует этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг. 54 иллюстрирует пример поисковой таблицы, в которой стандарты видеоданных связаны с частотами возбуждения.
Фиг. 55A иллюстрирует пример конфигурации для совместного использования узла модуля обработки сигнала.
Фиг. 55B иллюстрирует другой пример конфигурации для совместного использования узла модуля обработки сигнала.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
(Знания, на которых основано настоящее изобретение)
Авторы настоящего изобретения обнаружили следующие проблемы.
В Высокоэффективном Кодировании Видео (HEVC), которое является схемой кодирования видео следующего поколения, исследуется контекстная модель при кодировании и декодировании различных параметров управления (NPL 2). Параметр управления включается в кодированный битовый поток, и является параметром (флагом, и т.д.), используемым в процессе кодирования или декодирования. В частности, параметр управления является элементом синтаксиса.
Контекстная модель является информацией, указывающей (i), какое условие рассматривается для (ii) сигнала, какой единицы (каждого элемента мульти-значения, бинарного значения, бинарной последовательности (строки ячеек). Здесь, «какое условие» указывает то, какое применяется условие с числом условных элементов или какой тип сигнала параметра управления, который должен быть рассмотрен в качестве условия, является надлежащим. По мере того как условия делятся на более мелкие категории, т.е., по мере увеличения количества условий τ, уменьшается количество случаев, которые истинны для этих условий. В результате, поскольку уменьшается количество обучений, уменьшается точность предсказанной вероятности (например, смотри «эффект разбавления» в NPL 1).
Кроме того, уменьшение количества условий указывает не рассмотрение контекста (окружающих условий), и не адаптацию к статистическим вариациям.
При разработке контекстной модели после определения принципа для разработки модели, необходимо рассмотреть достоверность модели посредством проведения проверок, специализированных для изображения, например, проверки статистических вариаций в деталях изображения и в параметре управления для управления кодированием и декодированием изображения.
В H.264 использование усовершенствованных событий ограниченного числа для кодирования символа является критерием правила, и контекстные модели классифицируются на четыре базовых типа исполнения.
Первый и второй типы относятся к кодированию и декодированию параметра управления.
Первая контекстная модель использует кодированные значения вплоть до двух соседних кодированных значений (смотри NPL 1). Несмотря на то, что определение двух соседних кодированных значений зависит от каждого типа сигнала, обычно, используются значения соответствующих параметров управления, включенных в соседние блоки слева и сверху по отношению к текущему блоку.
Вторым типом контекстных моделей является тип для определения контекста на основании бинарного дерева как вероятности появления. В частности, второй тип контекстных моделей применяется к параметрам управления mb_type и sub_mb_type.
Третий и четвертый типы контекстных моделей относятся к кодированию и декодированию остаточных значений (остаточных данных), таких как данные изображения. Третий тип использует только прошлые кодированные или декодированные значения в очередности сканирования частотных коэффициентов (или квантованных коэффициентов). Четвертый тип определяет контекст в соответствии с декодированными и накопленными значениями (уровнями).
Преимущества принципа исполнения и реализации модели вероятностей переходов в стандарте H.264, такой как первого типа, давно исследованы, и будут применены к исследуемому стандарту HEVC (смотри NPL 2). Например, первый тип (контекстная модель, использующая соседние элементы синтаксиса) исследуется, чтобы использоваться для параметров управления alf_cu_flag, split_coding_unit_flag, skip_flag, merge_flag, intra_chroma_pred_mode, inter_pred_flag, ref_idx_lc, ref_idx_l0, ref_idx_l1, mvd_l0, mvd_l1, mvd_lc, no_residual_data_flag, cbf_luma, cbf_cb, и cbf_cr (смотри раздел 9.3.3.1.1 документа NPL 2).
Тем не менее, авторы настоящего изобретения обнаружили то, что присутствует проблема использования памяти при кодировании, используя «контекстную модель, использующую два соседних блока» первого типа.
Фиг. 35 иллюстрирует контекстные модели, использующие значения параметров управления, соответствующих двум соседним блокам. Кроме того, Фиг. 35 иллюстрирует контекстные модели, использующие соседние блоки в H.264.
Блок C на Фиг. 35 включает в себя значение параметра SE управления, которое должно быть кодировано и декодировано в настоящий момент. При кодировании значения параметра SE управления, используются значения параметров SE управления, точно такого же типа, как включенные в верхний блок A и левый блок B, которые уже кодированы. В частности, вероятность p(x), указывающая равно ли значение x параметра SE управления блока C (или первое бинарное значение строки ячеек параметра SE управления) 1 или 0, предсказывается на основании условной вероятности p(x| (условие A (значение верхнего блока) и условие B (значение левого блока)), используя, в качестве условий, значение параметра SE управления верхнего блока A и значение параметра SE управления левого блока B.
Фиг. 36 иллюстрирует увеличение использования памяти при использовании верхнего блока.
На Фиг. 36, (xP, yP) является позицией верхнего левого пикселя единицы предсказания (PU, единица предсказания движения), включающей в себя блок C. Здесь, блок C является блоком, включающим в себя параметр управления (например, skip_flag), который должен быть кодирован в настоящий момент. Кроме того, (xP, yA) на Фиг. 36 является позицией пикселя, который включен в блок B и используется в качестве условия A (значение параметра управления skip_flag верхнего блока). Кроме того, (xL, yP) на Фиг. 36 является позицией пикселя, который включен в блок A и используется в качестве условия B (значение параметра управления skip_flag левого блока).
Для того чтобы кодировать или декодировать значение параметра управления skip_flag блока C, устройству кодирования или устройству декодирования необходимо хранить значение skip_flag PU (или результат определения условия), соответствующее позиции (xP, yA), включенной в верхний блок B и позиции (xL, yP), включенной в левый блок A. Предполагая, что картинка имеет горизонтальную ширину в 4096 пикселей, то для того, чтобы кодировать один параметр управления skip_flag, необходимо хранить все значения определения, включенные в верхнюю строку (Линия L на Фиг. 36). Другими словами, одному параметру управления требуется емкость памяти, полученная посредством 4096 пикселей/размер блока.
Здесь, блок C, который должен быть кодирован, имеет переменные размеры, например, 64x64, 16x16, или 4x4. Кроме того, размер блока для блока C, который должен быть кодирован или декодирован позже, не может быть предсказан, когда кодируются или декодируются блоки в верхней строке (Линия L), включающей в себя (xP, yA). Это происходит потому, что размер каждого из блоков в нижней строке (строке, включающей в себя блок C) неизвестен, когда кодируется или декодируется верхняя строка (строка, включающая в себя блок A). Таким образом, устройству кодирования или устройству декодирования требуется хранить значение параметра управления (или значения определения) для каждого минимального размера блока, предполагая, что наименьший размер блока из числа всех размеров, применяемых к параметрам управления, используется в качестве размера блока нижней строки. Позиции черных кружков на Фиг. 36 показывают условия, которые должны быть сохранены, несмотря на то, что условные значения фактически не являются необходимыми, когда кодируется и декодируется нижняя строка (строка, включающая в себя блок C).
Кроме того, два соседних блока на Фиг. 36 (левый блок A и верхний блок B) подчиняются концепции соседних блоков в стандарте H.264, и не вводится новой перспективы в отношении разделения иерархических блоков. Как описывается ниже, существуют случаи, когда такие условные значения, которые упомянуты на Фиг. 36, не всегда имеют смысл для параметров управления, используемых для рекурсивного разбиения в виде квадродерева, которое должно быть введено в стандарте HEVC, так как параметры управления подчиняются рекурсивной очередности исполнения, иерархической глубине, или позициям блоков.
По существу, авторы настоящего изобретения выяснили, что использование памяти увеличивается посредством использования условных значений верхних блоков при выполнении арифметического кодирования или декодирования в отношении параметров управления. Кроме того, авторы настоящего изобретения выяснили, что использование памяти дополнительно увеличивается в HEVC.
В противоположность, способ декодирования изображения в соответствии с аспектом настоящего изобретения является способом декодирования изображения, использующим арифметическое декодирование, и способ включает в себя этапы: определение контекста для использования в текущем блоке, из числа множества контекстов; выполнение арифметического декодирования над битовой последовательностью, соответствующей текущему блоку, используя определенный контекст для декодирования бинарной последовательности, при этом битовая последовательность получена посредством выполнения арифметического кодирования над параметром управления текущего блока; и преобразование из двоичной формы бинарной последовательности, чтобы декодировать параметр управления текущего блока, при этом определение контекста включает в себя: определение типа сигнала параметра управления текущего блока; определение контекста при первом условии, что используются декодированные параметры управления соседних блоков текущего блока, когда тип сигнала является первым типом, при этом соседние блоки являются левым блоком и верхним блоком для текущего блока; и определение контекста при втором условии, что декодированный параметр управления верхнего блока не используется, когда тип сигнала является вторым типом, отличным от первого типа, при этом первый тип является одним из «split_coding_unit_flag» и «skip_flag», а второй тип является (i) «merge_flag», (ii) «ref_idx_l0» или «ref_idx_l1», (iii) «inter_pred_flag», (iv) «mvd_l0» или «mvd_l1», (v) «no_residual _data_flag», (vi) «intra_chroma_pred_mode», (vii) «cbf_luma», и (viii) «cbf_cb» или «cbf_cr».
С помощью структуры, способ декодирования изображения может уменьшить использование памяти. В частности, в способе декодирования изображения, поскольку параметр управления верхнего блока не используется для параметра управления второго типа, то нет необходимости в хранении параметра управления второго типа верхнего блока. С помощью структуры, в сравнении со случаем, где левый блок и верхний блок используются согласно стандартному «использованию контекстной модели, основанной на значениях параметров управления соседних блоков», использование памяти может быть уменьшено в соответствии со способом декодирования изображения. Кроме того, способ декодирования изображения может соответствующим образом уменьшить использование памяти параметром управления второго типа не вызывая, например, невозможность оценить BD-коэффициент изображения.
Кроме того, в соответствии со способом декодирования изображения, может использоваться контекст, подходящий для иерархической древовидной структуры, которая является структурой данных, которая не рассматривается в традиционном стандарте H.264, и является уникальной для нового стандарта HEVC. В качестве альтернативы может быть выполнена ссылка на ячейку памяти.
Кроме того, вторым условием может быть условие, состоящие в том, что не используются декодированные параметры управления левого блока и верхнего блока.
С помощью структуры, способ декодирования изображения может уменьшить использование памяти, посредством не использования параметра управления левого блока в дополнение к параметру управления верхнего блока.
Кроме того, при определении контекста, предварительно определенный контекст может быть определен при втором условии, в качестве контекста для использования в арифметическом декодировании текущего блока, когда тип сигнала является вторым типом.
При помощи структуры, способ декодирования изображения может уменьшить объем обработки.
Кроме того, определение контекста может дополнительно включать в себя: определение того, доступен ли при декодировании декодированный параметр управления верхнего блока, на основании позиции текущего блока; и определение контекста при втором условии, когда декодированный параметр управления верхнего блока недоступен.
С помощью структуры, способ декодирования изображения может уменьшить объем обработки.
Кроме того, при определении контекста, может быть определено, что декодированный параметр управления верхнего блока не является доступным при декодировании, когда текущий блок находится на границе среза (slice) (целое число единиц дерева кодирования).
Кроме того, при определении контекста, может быть определено, доступен ли при декодировании декодированный параметр управления верхнего блока, в соответствии с иерархической глубиной единицы данных, к которой принадлежит параметр управления текущего блока.
Кроме того, вторым типом может быть параметр управления, имеющий предварительно определенную структуру данных.
Кроме того, определение контекста может дополнительно включать в себя определение контекста параметра управления второй единицы, которая меньше первой единицы, посредством переключения между первым условием и вторым условием, на основании параметра управления первой единицы.
Кроме того, «split_coding_unit_flag» может указывать то, разбит ли текущий блок на множество блоков, «skip_flag» может указывать то, должен ли быть пропущен текущий блок, «merge_flag» может указывать то, используется ли режим слияния для текущего блока, «ref_idx_l0» может указывать индекс опорного изображения из списка 0 для текущего блока, «ref_idx_l1» может указывать индекс опорного изображения из списка 1 для текущего блока, «inter_pred_flag» может указывать одно из уни-предсказания (uni-prediction) и би-предсказания (bi-prediction), которое должно быть использовано для текущего блока, «mvd_l0» может указывать разность между компонентой вектора движения из списка 0 и предсказанным значением компоненты вектора движения, при этом компонента вектора движения и предсказанное значение используются для текущего блока, «mvd_l1» может указывать разность между компонентой вектора движения из списка 1 и предсказанным значением компоненты вектора движения, при этом компонента вектора движения и предсказанное значением используются для текущего блока, «no_residual_data_flag» может указывать то, существуют ли остаточные данные для текущего блока, «intra_chroma_pred_mode» может указывать режим внутреннего предсказания для выборки цветности текущего блока, «cbf_luma» может указывать то, содержит ли блок преобразования сигнала яркости текущего блока один или более уровней коэффициента преобразования не равных 0, «cbf_cb» может указывать то, содержит ли блок преобразования Cb текущего блока один или более уровней коэффициента преобразования не равных 0, и «cbf_cr» может указывать то, содержит ли блок преобразования Cr текущего блока один или более уровней коэффициента преобразования не равных 0.
Кроме того, процессы декодирования в соответствии с первым стандартом и процессы декодирования в соответствии со вторым стандартом могут быть переключены в соответствии с идентификатором, указывающим один из первого стандарта и второго стандарта, при этом идентификатор включен в кодированный сигнал, и определение контекста, выполнение, и преобразование из двоичной формы (обратная бинаризация) могут выполняться в качестве процессов декодирования в соответствии с первым стандартом, когда идентификатор указывает первый стандарт.
Кроме того, способ кодирования изображения в соответствии с аспектом настоящего изобретения является способом кодирования изображения, использующим арифметическое кодирование, и способ включает в себя: преобразование в двоичную форму параметра управления текущего блока, чтобы сгенерировать бинарную последовательность; определение контекста для использования в текущем блоке, из числа множества контекстов; и выполнение арифметического кодирования над бинарной последовательностью, используя определенный контекст, чтобы сгенерировать битовую последовательность, при этом определение контекста включает в себя: определение типа сигнала параметра управления текущего блока; определение контекста при первом условии, что используются параметры управления соседних блоков текущего блока, когда тип сигнала является первым типом, при этом соседние блоки являются левым блоком и верхним блоком для текущего блока; и определение контекста при втором условии, что параметр управления верхнего блока не используется, когда тип сигнала является вторым типом, отличным от первого типа, при этом первый тип является одним из «split_coding_unit_flag» и «skip_flag», а второй тип является (i) «merge_flag», (ii) «ref_idx_l0» или «ref_idx_l1», (iii) «inter_pred_flag», (iv) «mvd_l0» или «mvd_l1», (v) «no_residual _data_flag», (vi) «intra_chroma_pred_mode», (vii) «cbf_luma», и (viii) «cbf_cb» или «cbf_cr».
С помощью структуры, способ кодирования изображения может уменьшить использование памяти. В частности, в способе кодирования изображения, поскольку параметр управления верхнего блока не используется для параметра управления второго типа, то нет необходимости в хранении параметра управления второго типа верхнего блока. С помощью структуры, в сравнении со случаем, где левый блок и верхний блок используются согласно стандартному «использованию контекстной модели, основанной на значениях параметров управления соседних блоков», использование памяти может быть уменьшено в соответствии со способом кодирования изображения. Кроме того, способ кодирования изображения может соответствующим образом уменьшить использование памяти параметром управления второго типа не вызывая, например, невозможность оценить BD-коэффициент изображения.
Кроме того, в соответствии со способом кодирования изображения, может использоваться контекст, подходящий для иерархической древовидной структуры, которая является структурой данных, которая не рассматривается в традиционном стандарте H.264, и является уникальной для нового стандарта HEVC. В качестве альтернативы может быть выполнена ссылка на ячейку памяти.
Кроме того, устройство декодирования изображения в соответствии с аспектом настоящего изобретения является устройством декодирования изображения, использующим арифметическое декодирование, и устройство включает в себя: модуль управления контекстом, выполненный с возможностью определения контекста для использования в текущем блоке, из числа множества контекстов; модуль арифметического декодирования, выполненный с возможностью выполнения арифметического декодирования над битовой последовательностью, соответствующей текущему блоку, используя определенный контекст для декодирования бинарной последовательности, при этом битовая последовательность получена посредством выполнения арифметического кодирования над параметром управления текущего блока; и модуль преобразования из двоичной формы, выполненный с возможностью преобразования из двоичной формы бинарной последовательности, чтобы декодировать параметр управления текущего блока, при этом модуль управления контекстом выполнен с возможностью: определения типа сигнала параметра управления текущего блока; определения контекста при первом условии, что используются декодированные параметры управления соседних блоков текущего блока, когда тип сигнала является первым типом, при этом соседние блоки являются левым блоком и верхним блоком для текущего блока; и определения контекста при втором условии, что декодированный параметр управления верхнего блока не используется, когда тип сигнала является вторым типом, отличным от первого типа, при этом первый тип является одним из «split_coding_unit_flag» и «skip_flag», а второй тип является (i) «merge_flag», (ii) «ref_idx_l0» или «ref_idx_l1», (iii) «inter_pred_flag», (iv) «mvd_l0» или «mvd_l1», (v) «no_residual _data_flag», (vi) «intra_chroma_pred_mode», (vii) «cbf_luma», и (viii) «cbf_cb» или «cbf_cr».
С помощью этой конфигурации устройство декодирования изображения может уменьшить использование памяти.
Кроме того, устройство кодирования изображения в соответствии с аспектом настоящего изобретения является устройством кодирования изображения, использующим арифметическое кодирование, и устройство включает в себя: модуль преобразования в двоичную форму, выполненный с возможностью преобразования в двоичную форму параметра управления текущего блока, чтобы сгенерировать бинарную последовательность; модуль управления контекстом, выполненный с возможностью определения контекста для использования в текущем блоке, из числа множества контекстов; и модуль арифметического кодирования, выполненный с возможностью выполнения арифметического кодирования над бинарной последовательностью, используя определенный контекст, чтобы сгенерировать битовую последовательность, при этом модуль управления контекстом выполнен с возможностью: определения типа сигнала параметра управления текущего блока; определения контекста при первом условии, что используются параметры управления соседних блоков текущего блока, когда тип сигнала является первым типом, при этом соседние блоки являются левым блоком и верхним блоком для текущего блока; и определения контекста при втором условии, что параметр управления верхнего блока не используется, когда тип сигнала является вторым типом, отличным от первого типа, при этом первый тип является одним из «split_coding_unit_flag» и «skip_flag», а второй тип является (i) «merge_flag», (ii) «ref_idx_l0» или «ref_idx_l1», (iii) «inter_pred_flag», (iv) «mvd_l0» или «mvd_l1», (v) «no_residual _data_flag», (vi) «intra_chroma_pred_mode», (vii) «cbf_luma» и (viii) «cbf_cb» или «cbf_cr».
С помощью конфигурации, устройство кодирования изображения может уменьшить использование памяти.
Кроме того, устройство кодирования и декодирования изображения в соответствии с аспектом настоящего изобретения является устройством кодирования и декодирования изображения, включающим в себя устройство декодирования изображения и устройство кодирования изображения.
Общие или конкретные аспекты могут быть реализованы посредством системы, способа, интегральной микросхемы, компьютерной программы, или носителя записи, или посредством произвольного сочетания из системы способа, интегральной микросхемы, компьютерной программы, или носителя записи.
Устройство декодирования изображения и устройство кодирования изображения в соответствии с аспектом настоящего изобретения будут конкретно описаны со ссылкой на чертежи.
Описываемые ниже варианты осуществления показывают конкретные примеры настоящего изобретения. Значения, формы, материалы, составляющие элементы, позиции и соединения составляющих элементов, этапов, и очередности этапов, показанные в Вариантах Осуществления, являются примерами, и не ограничивают настоящее изобретение. Составляющие элементы в Вариантах Осуществления, которые не описаны в независимых Пунктах Формулы Изобретения, которые описывают наиболее типичную концепцию настоящего изобретения, описываются в качестве произвольных составляющих элементов.
(ВАРИАНТ 1 ОСУЩЕСТВЛЕНИЯ)
Будет описано устройство кодирования изображения в соответствии с Вариантом 1 Осуществления настоящего изобретения. Устройство кодирования изображения в соответствии с Вариантом 1 Осуществления определяет контекст посредством переключения между (1) использованием верхнего блока и (2) без использования верхнего блока, в соответствии с типом сигнала параметра управления в арифметическом кодировании. С помощью структуры, может быть сдержано ухудшение качества изображения, и может быть уменьшено использование памяти.
Сначала, будет описана конфигурация устройства кодирования изображения в соответствии с Вариантом 1 Осуществления.
Фиг. 1 является блок-схемой, иллюстрирующей устройство 100 кодирования изображения в соответствии с Вариантом 1 Осуществления.
Устройство 100 кодирования изображения на Фиг. 1 является устройством кодирования изображения, использующим арифметическое кодирование, и кодирует входной сигнал 121 изображения для генерирования битового потока 124. Устройство 100 кодирования изображения включает в себя модуль 101 управления, модуль 102 вычитания, модуль 103 преобразования и квантования, модуль 104 кодирования с переменной длиной слова, модуль 105 обратного квантования и обратного преобразования, модуль 106 сложения, модуль 107 внутреннего (intra-) предсказания, модуль 108 внешнего (inter-) предсказания, и переключатель 109.
Модуль 101 управления вычисляет параметр 130 управления на основании входного сигнала 121 изображения, который должен быть кодирован. Например, параметр 130 управления включает в себя информацию о типе картинки входного сигнала 121 изображения, который должен быть кодирован, размере единицы предсказания движения (единица предсказания, PU) текущего блока, который должен быть кодирован, и информацию управления единицы предсказания движения. Здесь, параметр 130 управления (данные управления) должен быть кодирован сам по себе. Таким образом, модуль 101 управления выдает параметр 130 управления модулю 104 кодирования с переменной длиной слова.
Модуль 102 вычитания вычисляет остаточный сигнал 122, который является разностью (остаточным значением) между входным сигналом 121 изображения и сигналом 129 предсказания изображения на основе единицы блока.
Модуль 103 преобразования и квантования преобразует остаточный сигнал 122 в значения частотных коэффициентов и квантует полученные значения частотных коэффициентов в квантованные коэффициенты 123 преобразования (остаточные данные).
Модуль 105 обратного квантования и обратного преобразования выполняет обратное квантование квантованных коэффициентов 123 преобразования в значения частотных коэффициентов и выполняет обратное преобразование полученных значений частотных коэффициентов в воссозданный остаточный сигнал 125.
Модуль 106 сложения складывает остаточный сигнал 125 с сигналом 129 предсказания изображения, и выводит воссозданный сигнал 126 изображения.
Модуль 107 внутреннего предсказания выполняет внутреннее предсказание, используя воссозданный сигнал 126 изображения, для генерирования сигнала 127 предсказания изображения. Модуль 108 внешнего предсказания выполняет внешнее предсказание, используя воссозданный сигнал 126 изображения для формирования сигнала 128 предсказания изображения.
Переключатель 109 выбирает один из сигнала 127 предсказания изображения и сигнала 128 предсказания изображения, и выводит выбранный сигнал в качестве сигнала 129 предсказания изображения.
Модуль 104 кодирования с переменной длиной слова кодирует, используя CABAC, квантованные коэффициенты 123 преобразования и параметр 130 управления для каждого входного блока для формирования битового потока 124.
Далее, будет описана конфигурация модуля 104 кодирования с переменной длиной слова.
Фиг. 2 является функциональной блок-схемой модуля 104 кодирования с переменной длиной слова. Модуль 104 кодирования с переменной длиной слова включает в себя модуль 141 преобразования в двоичную форму, модуль 142 управления контекстом, и модуль 143 бинарного арифметического кодирования. Нижеследующее описывает процесс кодирования с переменной длиной слова в отношении параметра 130 управления. Несмотря на то, что опущено описание процесса кодирования с переменной длиной слова в отношении квантованных коэффициентов 123 преобразования, процесс может быть реализован, например, используя известную методику.
Модуль 141 преобразования в двоичную форму преобразует в двоичную форму параметр 130 управления для формирования бинарной последовательности 151. В частности, модуль 141 преобразования в двоичную форму является модулем обработки, который выполняет «II.1) обработку преобразования в двоичную форму» в соответствии с NPL 1. Модуль 141 преобразования в двоичную форму преобразует параметр 130 управления в бинарную последовательность 151 именуемую как «строка ячеек» для каждого типа сигнала, в соответствии с предварительно определенным способом преобразования в двоичную форму. Соответствие между типами сигнала и способами преобразования в двоичную форму будет описано позже. Когда входной параметр 130 управления является одним бинарным значением, таким как флаг, модуль 141 преобразования в двоичную форму выдает параметр 130 управления в данной ситуации в качестве бинарной последовательности 151.
Модуль 142 управления контекстом определяет контекст для использования в арифметическом кодировании параметра 130 управления, включенного в текущий блок, который должен быть обработан, из числа множества контекстов (таблица состояния вероятности). Кроме того, модуль 142 управления контекстом выдает индекс 152 контекста, указывающий определенный контекст модулю 143 бинарного арифметического кодирования.
В частности, модуль 142 управления контекстом является модулем обработки, который выполняет «2) моделирование контекста» в соответствии с NPL 1. Модуль 142 управления контекстом последовательно принимает множество элементов, включенных в бинарную последовательность 151, выдаваемую модулем 143 бинарного арифметического кодирования. Модуль 141 управления контекстом выбирает один из контекстов, который должен быть использован, для двоичного элемента параметра 130 управления, в соответствии с типом сигнала параметра 130 управления и позицией элемента двоичного элемента в бинарной последовательности 151, и выдает, модулю 143 бинарного арифметического кодирования, индекс 152 контекста, который является индексом, указывающим выбранный контекст.
Кроме того, модуль 142 управления контекстом хранит таблицу состояния вероятности из значений (значений индекса контекста), полученных посредством разделения элементов в бинарной последовательности параметра 130 управления на условия условных вероятностей, в качестве состояний контекста, и инициализирует и обновляет таблицу состояния вероятности.
Кроме того, модуль 142 управления контекстом хранит состояние (индекс состояния вероятности) для каждого условия τ появления (для каждого контекста), в качестве дополнительного разделения типа сигнала (для каждого номера элемента в бинарной последовательности параметра 130 управления, когда количество элементов в бинарной последовательности два или более; это же будет применено ниже). Состояние представляется посредством суммарно 7-битного значения посредством объединения вероятности P появления (внутреннее соотношение, как правило, 6-битное значение), которая является более низкой вероятностью одного из двух значений 0 и 1, и 1-битного значения, указывающего на то, какое одно из значений имеет более высокую вероятность. Кроме того, сохранение состояния означает инициализацию и обновление состояния. Например, обновление соответствует изменению индексации, которая указывает текущее состояние вероятности (т.е., вероятность) в качестве перехода между 64 конечными состояниями как в H.264.
Когда происходит событие X в наиболее вероятной стороне имеющее наивысшую вероятность между двумя значениями, то отношение вероятности в наиболее вероятной стороне незначительно увеличивается. Например, модуль 142 управления контекстом может незначительно увеличить отношение вероятности в наиболее вероятной стороне посредством увеличения или уменьшения, на 1, значения индекса состояния вероятности, соответствующего 64 таблицам. С другой стороны, когда происходит событие Не-X с более низкой вероятностью (в сравнении с предсказанной вероятностью), то модуль 142 управления контекстом значительно уменьшает отношение хранящейся наиболее вероятной вероятности на основании предварительно определенного масштабного коэффициента α (например, ≈0,95) (смотри Фиг. 6 NPL 1). Модуль 142 управления контекстом в соответствии с Вариантом 1 Осуществления осуществляет переход по и сохранение состояния, на основании соответствующего значения изменения индекса таблицы с тем, чтобы быть связанным с изменением с учетом α, как в H.264.
Модуль 143 бинарного арифметического кодирования выполняет арифметическое кодирование над бинарной последовательностью 151, используя контекст, определенный модулем 142 управления контекстом, для формирования битового потока 124 (битовая последовательность).
В частности, модуль 143 бинарного арифметического кодирования является модулем обработки, который выполняет «3) бинарное арифметическое кодирование» в соответствии с NPL 1. Модуль 143 бинарного арифметического кодирования выполняет арифметическое кодирование над бинарной последовательностью 151, используя контекст, указанный индексом 152 контекста, для формирования битового потока 124. Здесь, арифметическое кодирование служит для обработки событий, возникающих в отношении параметров 130 управления различных типов сигналов в качестве накопленной суммы вероятностей, и определения соответствий между событиями посредством сужения диапазона до предварительно определенного диапазона на одной числовой прямой.
Сначала, модуль 143 бинарного арифметического кодирования делит одну числовую прямую на две, равные половине, секции, в соответствии с вероятностями появления двух возможных значений двоичного элемента заданного модулем 142 управления контекстом. Когда фактическое значение, возникающее для двоичного элемента (например, 0) является значением с более высокой вероятностью (превышающей 0,5 (например, 0,75)), то модуль 143 бинарного арифметического кодирования сохраняет нижний предел «Нижний» в диапазоне числовой прямой без изменения, и устанавливает значение, соответствующее результату умножения один раз масштабного коэффициента 0,95 на вероятность 0,75 на сей раз, для нового диапазона. С другой стороны, когда фактическое сформированное бинарное значение является предсказанным значением с более низкой вероятностью, то модуль 143 бинарного арифметического кодирования смещает нижний предел «Нижний» к более высокой вероятности, и меняет диапазон в соответствии с более низкой вероятностью. Секции сохраняются в соответствии с накопленной суммой результатов умножений диапазонов вероятности. Когда значение с более низкой вероятностью возникает непрерывно, точность длины диапазона становится вскоре ниже точности, которая может быть обеспечена путем вычисления. Здесь, модуль 143 бинарного арифметического кодирования увеличивает (реорганизует) диапазон, чтобы сохранить точность, и выводит битовую последовательность, указывающую текущий диапазон. И наоборот, когда последовательно возникает значение с более высокой вероятностью (0,95, и т.д.), то значения вероятности могут порождать ряд вычислений (переходов состояния в случае реализации посредством таблицы) до тех пор, пока длина диапазона не станет более короткой, чем предварительно определенная длина, даже с умножением значений. Таким образом, количество символов, которые могут быть накоплены до того, как выдается бит, большое.
Фиг. 3 является таблицей, в которой хранятся параметры 130 управления, каждый из которых использует контекстную модель на основании значения параметра 130 управления соседнего блока.
Смысл каждого столбца будет описан, начиная с левой стороны таблицы.
(c2) Тип сигнала (элемент синтаксиса) указывает конкретное название типа сигнала параметра 130 управления. Смысл каждого из типов сигналов будет описан ниже по тексту.
(c3) Схема преобразования в двоичную форму указывает схему преобразования в двоичную форму, которая должна быть применена к параметру 130 управления (SE), указанному в столбце непосредственно слева. Модуль 141 преобразования в двоичную форму выполняет процесс преобразования в двоичную форму. В столбце, «Фиксированная длина» означает, что модуль 141 преобразования в двоичную форму выдает значение параметра 130 управления в секции непосредственно слева в качестве бинарной последовательности (строки ячеек) фиксированной длины. В HEVC, тип сигнала параметра 130 управления, чье название заканчивается на «flag», является одним бинарным значением либо 0, либо 1. Таким образом, модуль 141 преобразования в двоичную форму выдает только первый элемент (binIdx=0) в качестве элемента бинарной последовательности 151, и не выдает элементы после второго элемента (binIdx >=1). Другими словами, модуль 141 преобразования в двоичную форму выдает значение параметра 130 управления в данной ситуации в качестве бинарной последовательности 151.
Кроме того, «Переменная длина» в столбце означает, что модуль 141 преобразования в двоичную форму отображает, в бинарную последовательность, значение параметра 130 управления, используя бинарные последовательности с соответствующими переменными длинами, чьи значения назначены таким образом, что их бинарные длины упорядочены по возрастанию частот появления (бинарная строка или бинарные последовательности каждого с количеством элементов ≥1), и выдает бинарную последовательность. Например, модуль 141 преобразования в двоичную форму использует и выдает схему в соответствии с типом сигнала, такую как (усеченную) унарную схему, и комбинацию унарной и других экспоненциальных схем Голомба (смотри приложение «A. Binarization» документа NPL 1). В случае «Переменной длины слова», количество элементов бинарной последовательности 151 иногда ограничивается до 1, или равно или больше 2. Модуль преобразования из двоичной формы в устройстве декодирования изображения, которое будет описано ниже по тексту, выполняет преобразование обратное схеме преобразования в двоичную форму для воссоздания входной бинарной последовательности в мульти-значение или значение флага.
Относительно (c4) индекса Контекста первого элемента (binIdx=0), модуль 142 управления контекстом указывает выбор индекса контекста (приращения), который должен быть применен к первому элементу, включенному в бинарную последовательность, сформированную в соответствии со схемой преобразования в двоичную форму, указанной в столбце c3. В столбце, «0, 1, 2» указывает то, что модуль 142 управления контекстом выбирает и применяет одну из трех таблиц состояния вероятности (контекстов). Например, три индекса контекста с подробными условиями подготавливаются для одного типа сигнала «skip_flag», т.е., подготавливается три контекста, и арифметическое кодирование выполняется в отношении индексов контекста.
Аналогично, «0, 1, 2, 3» в столбце c4 указывает то, что контекст, который должен быть применен к первому элементу (binIdx=0), включенному в бинарную последовательность 151, выбирается из числа четырех значений, любого из 0, 1, 2, или 3. Бинарная последовательность 151 получается посредством отображения, в бинарную последовательность, значения параметра 130 управления типа сигнала, указанного в столбце c2, в соответствии со схемой преобразования в двоичную форму в столбце c3. Условные выражения в столбце будут описаны ниже по тексту.
Относительно (c5) условия L Левого блока (condL), модуль 142 управления контекстом указывает условие левого блока для выбора одного из 0, 1, и 2 в столбце c4. Условие L левого блока имеет значение истина или ложь, которое определяется в соответствии со значением параметра управления левого блока, соответствующего параметру управления, который должен быть кодирован (или должен быть декодирован).
Например, в случае, где параметром управления (SE) является skip_flag, условие L левого блока имеет значение истина, когда skip_flag[xL][yL] указывает истина (например, 1), и имеет значение ложь, когда он указывает ложь (например, 0).
Относительно (c6) условия A Верхнего блока, модуль 142 управления контекстом указывает условие верхнего блока для выбора одного из 0, 1, и 2 при кодировании или декодировании элементов последовательности, указанной в столбце 4. Условие A верхнего блока имеет значение истина или ложь, которое определяется в соответствии со значением параметра управления верхнего блока, соответствующим параметру управления, который должен быть кодирован (или должен быть декодирован). Например, в случае, где параметром управления (SE) является skip_flag, то условие A верхнего блока имеет значение истина, когда skip_flag[xA][yA] указывает истина (например, 1), и имеет значение ложь, когда он указывает ложь (например, 0).
Несмотря на то, что не проиллюстрировано, тип сигнала из более чем двух бит связан с «(c7) Приращение контекста, которое должно быть применено к binIdx >=1». Этот столбец (c7) указывает контекстную модель, применяемую модулем 142 управления контекстом к двоичному элементу после второго элемента в бинарной последовательности (бинарное значение элемента бинарной последовательности, включающее в себя значение индекса binIdx>=1).
В способе кодирования Варианта 1 Осуществления, осуществляется переключение между следующими операциями в соответствии с типом сигнала параметра 130 управления для условия L левого блока и условия A верхнего блока (обрабатываемых, используя разные шаблоны):
(Шаблон 1) Используя два соседних блока (значение определения условия L левого блока и значение определения условия A верхнего блока);
(Шаблон 2) Используя один соседний блок (только значение определения условия L левого блока); и
(Шаблон 3) Используя нулевой соседний блок (не используя ни значение определения условия L левого блока, ни значение определения условия A верхнего блока).
Фиг. 4 является блок-схемой последовательности операций, показывающей способ кодирования изображения в соответствии с Вариантом 1 Осуществления, который выполняется модулем 104 кодирования с переменной длиной слова на Фиг. 2.
Сначала, модуль 141 преобразования в двоичную форму отображает значение параметра 130 управления в бинарную последовательность в соответствии со схемой, соответствующей типу сигнала параметра 130 управления (S101).
Далее, модуль 142 управления контекстом получает базовое значение контекста для использования при арифметическом кодировании параметра 130 управления (S102). Например, модуль 142 управления контекстом определяет базовое значение в соответствии с типом картинки (I, P, или B).
Далее, модуль 142 управления контекстом определяет значение контекста, используя один из шаблонов с 1 по 3, на основании типа сигнала параметра 130 управления (S103). Здесь, определение значения контекста эквивалентно определению значения подстройки (значения CtxIdxInc приращения) для базового значения контекста.
Сначала, модуль 142 управления контекстом определяет тип сигнала параметра 130 управления (S103). Когда типом сигнала параметра 130 управления является первый тип, соответствующий шаблону 1 (первый тип на этапе S104), то модуль 142 управления контекста определяет значение контекста, используя значение определения, извлеченное из значений параметров управления двух соседних блоков (блока A и блока B) (S105). Другими словами, модуль 142 управления контекстом определяет контекст при условии, что используются параметры управления двух соседних блоков из левого блока и верхнего блока. Здесь, модуль 142 управления контекстом использует оба результата из результата определения (c5) condL и результата определения (c6) condA на Фиг. 3. Соответственно, данные одной строки картинок сохраняются для параметров управления первого типа.
С другой стороны, когда типом сигнала параметра 130 управления является второй тип, соответствующий шаблону 2 (второй тип на этапе S104), то модуль 142 управления контекстом определяет значение контекста, используя параметр управления одного соседнего блока (одного непосредственно соседнего блока в очередности кодирования) (S106). Другими словами, модуль 142 управления контекстом определяет значение контекста при условии, что не используется параметр управления верхнего блока.
С другой стороны, когда типом сигнала параметра 130 управления является третий тип, соответствующий шаблону 3 (третий тип на этапе S104), то модуль 142 управления контекстом твердо определяет значение контекста, не используя оба из параметров управления верхнего блока и левого блока (S107).
Далее, модуль 142 управления контекстом складывает приращение, которое определено на Этапе S103, с базовым значением индекса контекста, которое определено на Этапе S102, чтобы определить значение индекса контекста (S108).
В заключение, модуль 143 бинарного арифметического кодирования выполняет арифметическое кодирование над бинарным значением первого элемента, используя значение контекста, указанное значением индекса контекста, определенное на Этапе S108, чтобы сгенерировать битовую последовательность (битовый поток 124) (S109).
Далее, когда процессы Этапов с S102 по S109 не исполнены над всеми элементами, включенными в бинарную последовательность (Нет на этапе S110), то модуль 104 кодирования с переменной длиной слова выполняет процессы Этапов с S102 по S109 над следующим элементом, включенным в бинарную последовательность. С другой стороны, когда процессы Этапов с S102 по S109 завершены над всеми элементами, включенными в бинарную последовательность (Да на этапе S110), то модуль 104 кодирования с переменной длиной слова завершает обработку кодирования над параметром управления текущего блока.
Как описано выше, устройство 100 кодирования изображения в соответствии с Вариантом 1 Осуществления определяет контекст, используя верхний блок при выполнении арифметического кодирования над параметром управления первого типа, и определяет контекст, не используя верхний блок для параметров управления второго и третьего типов.
В сравнении со случаем, где левый блок и верхний блок используются согласно стандартному «использованию контекстной модели, основанной на значениях параметров управления соседних блоков», устройство 100 кодирования изображения может уменьшить использование памяти с помощью конфигурации. Следовательно, устройство 100 кодирования изображения может сдержать ухудшение качества изображения, и уменьшить использование памяти.
(ВАРИАНТ 2 ОСУЩЕСТВЛЕНИЯ)
Вариант 2 Осуществления опишет устройство декодирования изображения, которое декодирует битовый поток 124, сформированный устройством 100 кодирования изображения.
Фиг. 5 является блок-схемой, иллюстрирующей устройство 200 декодирования изображения в соответствии с Вариантом 2 Осуществления. Устройство 200 декодирования изображения является устройством декодирования изображения, использующим арифметическое декодирование, и декодирует битовый поток 124 для формирования сигнала 229 изображения. Здесь, битовый поток 124 сформирован, например, устройством 100 кодирования изображения.
Устройство 200 декодирования изображения включает в себя модуль 201 управления, модуль 202 декодирования с переменной длиной слова, модуль 204 обратного квантования, модуль 205 обратного преобразования, модуль 206 сложения, модуль 207 внутреннего предсказания, и модуль 208 внешнего предсказания.
Устройство 200 декодирования изображения выполняет обработку декодирования для каждого битового потока предварительно определенной единицы обработки. Единицей обработки является, например, единица среза или единица блока.
Модуль 202 декодирования с переменной длиной слова выполняет арифметическое декодирование над битовым потоком 124 для формирования параметра 230 управления (элемента синтаксиса данных управления) и квантованных коэффициентов 223 преобразования (значений элемента синтаксиса остаточных данных). Модуль 201 управления принимает сформированный параметр 230 управления.
Модуль 201 управления управляет каждым из модулей обработки, включенным в устройство 200 декодирования изображения, в соответствии с параметром 230 управления.
Модуль 204 обратного квантования выполняет обратное квантование квантованных коэффициентов 223 преобразования для получения ортогональных коэффициентов 224 преобразования.
Модуль 205 обратного преобразования выполняет обратное преобразование ортогональных коэффициентов 224 преобразования, чтобы воссоздать остаточный сигнал 225. Модуль 206 сложения складывает остаточный сигнал 225 с сигналом предсказания изображения (сигнал 229 изображения), чтобы сформировать декодированный сигнал 226 изображения.
Модуль 207 внутреннего предсказания выполняет внутреннее предсказание, используя декодированный сигнал 226 изображения, чтобы сформировать сигнал 227 предсказания изображения. Модуль 208 внешнего предсказания выполняет внешнее предсказание, используя декодированный сигнал 226 изображения, чтобы сформировать сигнал 228 предсказания изображения.
Переключатель 209 выбирает один из сигнала 227 предсказания изображения и сигнала 228 предсказания изображения, и выдает выбранный сигнал в качестве сигнала 229 изображения (сигнал предсказания изображения).
Далее, будет описана конфигурация модуля 202 декодирования с переменной длиной слова.
Фиг. 6 является функциональной блок-схемой, иллюстрирующей конфигурацию модуля 202 декодирования с переменной длиной слова. Модуль 202 декодирования с переменной длиной слова включает в себя модуль 243 бинарного арифметического декодирования, модуль 242 управления контекстом, и модуль 241 преобразования из двоичной формы. Нижеследующее описывает процесс декодирования с переменной длиной слова над параметром 230 управления. Несмотря на то, что опущено описание процесса декодирования с переменной длиной слова над квантованными коэффициентами 223 преобразования, процесс может быть реализован, например, используя известную методику.
Модуль 242 управления контекстом определяет контекст для использования при арифметическом декодировании параметра 230 управления текущего блока, из числа множества контекстов. Кроме того, модуль 242 управления контекстом выдает индекс 252 контекста, указывающий определенный контекст, модулю 243 бинарного арифметического декодирования.
В частности, модуль 242 управления контекстом использует точно такую же контекстную модель, как та, которую использовал модуль 142 управления контекстом на Фиг. 2, в качестве хранящейся модели перехода вероятности. Когда модуль 143 арифметического кодирования использует 64 состояния вероятности, модуль 243 бинарного арифметического декодирования также использует 64 состояния вероятности. Это потому, что как кодер, так и декодер должны интерпретировать диапазон числовой прямой, которая должна быть кодирована, в точности одинаковым образом. Следовательно, декодер использует точно такой же шаблон, как и шаблон, выбранный кодером из числа трех шаблонов с 1 по 3.
Модуль 243 арифметического декодирования выполняет арифметическое декодирование над битовой последовательностью (битовым потоком 124), используя контекст, который определен модулем 242 управления контекстом, чтобы воссоздать бинарную последовательность 251. В частности, модуль 243 арифметического декодирования воссоздает из входной битовой последовательности бинарную последовательность 251, в соответствии с контекстом (таблицей состояния вероятности), указанным индексом контекста, заданным модулем 242 управления контекстом.
Модуль 241 преобразования из двоичной формы воссоздает из бинарной последовательности 251 параметр 230 управления при необходимости посредством процесса преобразования из двоичной формы. По существу, блок 142 управления контекстом, включенный в устройство 100 кодирования изображения, и модуль 242 управления контекстом, включенный в устройство 200 декодирования изображения, используют одну и ту же контекстную модель, как при арифметическом кодировании, так и при арифметическом декодировании параметра управления определенного типа сигнала.
Фиг. 7 является блок-схемой последовательности операций, указывающей способ декодирования изображения в соответствии с Вариантом 2 Осуществления, который выполняется модулем 202 декодирования с переменной длиной слова.
Сначала, модуль 202 декодирования с переменной длиной слова получает битовый поток 124 (S201).
Далее, модуль 242 управления контекстом определяет тип сигнала параметра управления, который должен быть декодирован, в соответствии со структурой данных битового потока 124 (S202).
Далее, модуль 242 управления контекстом определяет базовое значение контекста для использования при арифметическом декодировании параметра управления, который должен быть декодирован (S203). Например, модуль 242 управления контекстом определяет базовое значение в соответствии с типом картинки (I, P, или B).
Далее, модуль 242 управления контекстом определяет значение контекста, используя один из шаблонов с 1 по 3, на основании типа сигнала параметра управления (S204). Здесь, определение значения контекста эквивалентно определению значения подстройки (значения CtxIdxInc приращения) для базового значения контекста. Например, модуль 242 управления контекстом статично определяет один из шаблонов с 1 по 3 на основании типа сигнала параметра управления, придерживаясь предварительно определенной таблицы.
Модуль 242 управления контекстом переключается между соседними блоками для использования при определении контекста для получения бинарного значения первого элемента, включенного в бинарную последовательность 251, используя арифметическое декодирование, в соответствии с типом сигнала параметра управления.
Сначала, модуль 242 управления контекстом определяет тип сигнала параметра 230 управления (S205). Когда типом сигнала является первый тип, соответствующий шаблону 1 (первый тип на этапе S205), то модуль 242 управления контекстом определяет значение контекста, используя параметры управления двух соседних блоков (S206). Другими словами, модуль 242 управления контекстом определяет значение контекста при условии, что используются декодированные параметры управления двух соседних блоков из левого блока и верхнего блока.
С другой стороны, когда типом сигнала является второй тип, соответствующий шаблону 2 (второй тип на этапе S205), то модуль 242 управления контекстом определяет значение контекста, используя значение параметра управления одного соседнего блока (одного непосредственно соседнего блока в очередности кодирования) (S207). Другими словами, модуль 242 управления контекстом определяет значение контекста при условии, что не используется декодированный параметр управления верхнего блока.
С другой стороны, когда типом сигнала является третий тип, соответствующий шаблону 3 (третий тип на этапе S205), модуль 242 управления контекстом твердо определяет значение контекста (S208). Другими словами, модуль 242 управления контекстом определяет значение контекста при условии, что не используются декодированные параметры управления верхнего блока и левого блока.
Далее, модуль 242 управления контекстом складывает приращение, которое определено на Этапе S204, с базовым значением индекса контекста, которое определено на Этапе S203, чтобы определить значение индекса контекста (S209).
Далее, модуль 243 бинарного арифметического декодирования определяет один из элементов бинарной последовательности посредством декодирования, используя значение контекста, указанное значением индекса контекста, заданным модулем 242 управления контекстом (S210).
Далее, когда процессы Этапов с S203 по S210 не исполнены над всеми элементами, включенными в бинарную последовательность (Нет на этапе S211), то модуль 202 декодирования с переменной длиной слова выполняет процессы Этапов с S203 по S210 над следующим элементов, включенным в бинарную последовательность.
С другой стороны, когда процессы Этапов с S203 по S210 завершены над всеми элементами, включенными в бинарную последовательность (Да на этапе S211), то модуль 241 преобразования из двоичной формы меняет один или более элементы бинарной последовательности 251, полученной посредством повторения процессов Этапов с S203 по S210 более одного раза, чтобы сформировать параметр 230 управления (S212).
Как описано выше, устройство 200 декодирования изображения в соответствии с Вариантом 2 Осуществления определяет контекст, используя верхний блок при выполнении арифметического декодирования над параметром управления первого типа, и определяет контекст, не используя верхний блок для параметров управления второго и третьего типов.
В сравнении со случаем, где левый блок и верхний блок используются согласно стандартному «использованию контекстной модели, основанной на значениях параметров управления соседних блоков», устройство 200 декодирования изображения может уменьшить использование памяти с помощью конфигурации. Следовательно, устройство 200 декодирования изображения может сдержать ухудшение качества изображения, и уменьшить использование памяти.
Например, когда бинарная последовательность 251 является флагом и имеет только один элемент, т.е., бинарная последовательность 251 составлена из 1 двоичного элемента, модуль 241 преобразования из двоичной формы может в данной ситуации выдать бинарную последовательность 251.
В дополнение, к приведенному выше описанию, модуль 101 или 201 управления может осуществлять управление каждым из модулей обработки, или обращаться к значению памяти, посредством сигнальной линии, которая не проиллюстрирована.
Несмотря на то, что модуль 142 или 242 управления контекстом осуществляют переключение между шаблонами с 1 по 3 в соответствии с типом сигнала параметра управления в вышеприведенном описании, он может осуществлять переключение между двумя из шаблонов с 1 по 3 в соответствии с типом сигнала. Другими словами, модуль 142 или 242 управления контекстом может осуществлять переключение между использованием и не использованием условия верхнего блока, в соответствии с типом сигнала параметра управления.
Кроме того, модуль 142 или 242 управления контекстом может менять способ переключения между моделями контекста, выбранными таким образом (включая случай, где меняется приращение контекстной модели; то же самое будет применено ниже) в соответствии с предварительно определенной информацией изображения. Например, модуль 142 или 242 управления контекстом может дополнительно переключать саму политику переключения, в соответствии с объемом памяти, или размером горизонтальной ширины или формата дискретизации изображения, который оказывает влияние на количество обучений каждого контекста.
Несмотря на то, что модуль 142 или 242 управления контекстом осуществляет переключение между использованием и не использованием условия верхнего блока в качестве упрощенного описания, модуль 142 или 242 управления контекстом может объединять случай, где верхний блок недоступен для переключения, и применять объединенный случай. Например, модуль 142 или 242 управления контекстом может менять саму политику переключения, в соответствии с тем, является ли срез, который должен быть обработан, энтропийный срезом (entropy_slice_flag указывает 1 или 0). Аналогичным образом, когда доступность верхнего соседнего блока не может быть гарантирована, модуль 142 или 242 управления контекстом может изменить политику переключения таким образом, чтобы не использовать верхний блок.
Например, как иллюстрируется на Фиг. 8, модуль 142 или 242 управления контекстом может переключать политику определения контекстной модели между первым критерием определения (S302) и вторым критерием определения (S303), в соответствии со значением параметра предварительно определенной единицы. Здесь, «в соответствии со значением параметра предварительно определенной единицы» означает в соответствии с тем, является ли срез энтропийным срезом как описано выше. Кроме того, первым критерием определения является критерий, на основании которого выполняются процессы на Фиг. 7. Вторым критерием определения является критерий, исключающий Этап S204 на Фиг. 7, и является, например, обычным критерием. Это эквивалентно определению приращения индекса контента, используя параметр предварительно определенной локальной единицы и значение параметра единицы, которая больше предварительно определенной локальной единицы.
Другими словами, модуль 142 или 242 управления контекстом может осуществлять переключение с критерия определения, который должен быть применен к единице, которая меньше первой единицы, на другой критерий определения на основании значения параметра управления первой единицы.
Фиг. 9A иллюстрирует информацию отображения и назначение (выделение) индексов контекста. Фиг. 9A показывает пример сигнала mvd_l0,l1,lc. То же применяется к другим типам сигнала.
Назначение 901B на Фиг. 9A является назначением индексов контекста, используемым в NPL 1. 14 значений смещения с 0 до 13 назначаются P-картинкам. Кроме того, 14 значений смещения с 14 до 27 назначаются B-картинкам. Здесь, каждый из mvd_l0[ ][ ][0] и mvd_l0[ ][ ][1] является составляющим значением (горизонтальным и вертикальным направлениями) разности между векторами. В стандарте HEVC, который исследуется в настоящий момент, три значения смещения с 0 до 2, три значения смещения с 7 до 9, три значения смещения с 14 до 16, и три значения смещения с 21 по 23 назначены в качестве условных значений контекста (условий, который должны быть уточнены в соответствии с condA и condL) для вычисления двоичного элемента первого элемента (binIdx=0) бинарной последовательности. Кроме того, взаимоотношение между типами сигнала и индексами контекста фиксировано, не зависит от различных последовательностей изображения.
Каждое из назначений с 902B по 904B индексов контекста на Фиг. 9A является назначением индексов контекста в соответствии с Вариантом 2 Осуществления.
Назначение 902b показывает назначение индексов контекста, когда используется шаблон 2 (без использования верхнего блока). Здесь, нет необходимости в назначении трех индексов контекста с 0 по 2 и прочих в качестве условных значений, и достаточно двух индексов контекста с 0 по 1. Это потому, что не используется condA. Таким образом, нет необходимости в назначении индексов контекста заштрихованным частям на Фиг. 9A. Следовательно, даже если четыре индекса контекста назначаются одному binIdx>0 аналогично назначению 901B, то суммарно достаточно 24 индексов контекста с 0 по 23. Следовательно, может быть сокращено, по меньшей мере, четыре контекста.
Назначение 903B показывает назначение индексов контекста, когда используется шаблон 3 (не используется ни верхний блок, ни левый блок). Здесь, нет необходимости в назначении трех индексов контекста с 0 по 2 и других в качестве условных значений, а достаточно только одного индекса контекста 0. Это потому, что не используются ни condA, ни condL. Следовательно, нет необходимости в назначении индексов контекста заштрихованным частям на Фиг. 9A. Следовательно, суммарно достаточно 20 индексов контекста с 0 по 19. Следовательно, может быть сокращено по меньшей мере восемь контекстов.
Назначение 904B показывает пример назначения индексов контекста, когда последовательность изображения создана без включения любых B-картинок (когда используется только ссылка вперед), в качестве единицы, которая больше единицы блока типа сигнала. В таком случае, индекс контекста для B-картинок, не будет использован на первом месте.
Следовательно, достаточно 10 индексов контекста (относительных значений) с 0 до 9, как иллюстрируется на Фиг. 9A. Следовательно, может быть сокращено, по меньшей мере, 18 контекстов.
Переключение критерия, как описано для Фиг. 8, может задействовать переключение одного из назначений с 901B по 904B, которое должно быть использовано, в соответствии с типом параметра для всей или части последовательности изображения (предварительно определенной единицы).
В соответствии с Вариантом 2 Осуществления, индексы контекста, назначенные в соответствии с одним статическим критерием (используя верхний и левый блоки), как обычно используется, могут быть изменены в соответствии с критериями. Следовательно, в дополнение к уменьшению использования памяти, политика назначения контекстов может переключаться в соответствии с характеристиками предварительно определенной единицы при необходимости.
Кроме того, модуль 142 или 242 управления контекстом может менять критерий определения, который должен быть использован, в соответствии с характеристиками системы изображения. Например, модуль 142 или 242 управления контекстом может менять критерий определения, который должен быть использован, в соответствии с интервалами I-картинок (устанавливая значения IntraPeriod).
Несмотря на то, что модуль 142 или 242 управления контекстом выполняет переключение между критериями определения в соответствии с вышеприведенными условиями, он может выполнять переключение того, используется ли верхний блок.
Кроме того, модуль 142 или 242 управления контекстом может определять, используется ли параметр управления верхнего блока, в соответствии с тем, доступен ли параметр управления верхнего блока, на основании позиции текущего блока, и определять контекст, используя один из шаблонов 2 и 3, когда параметр управления верхнего блока недоступен. Кроме того, модуль 142 или 242 управления контекстом может определять доступно или нет опорное значение верхнего блока на основании древовидной структуры для разбиения TU, CU, или PU блоков. Другими словами, модуль 142 или 242 управления контекстом может определить, доступен ли параметр управления верхнего блока при декодировании, в соответствии с иерархической глубиной единицы данных, к которой принадлежит каждый из параметров управления, который должен быть обработан.
Фиг. 9B, иллюстрирует взаимоотношение между картинкой, срезами, и блоками в соответствии со стандартом HEVC. Одна картинка разбивается на один или более срезов. В примере на Фиг. 9B, картинка разбита на два среза (СЛАЙС 1 и СЛАЙС 2). Один из срезов включает в себя блоки 301 (например, блоки дерева). Здесь, блок 301 является наибольшей единицей в качестве некоторой единицы управления, когда срез разбивается на предварительно определенный размер, и обладает размером корневого узла, когда единица располагается в корневом узле в иерархически разбиваемой структуре.
В примере на Фиг. 9B, СРЕЗ 2 начинается с блока 301A, и состоит из одной последовательности, включающей в себя блоки вплоть до нижнего правого угла картинки, охватывая заштрихованные блоки 301B и 301C. Один из заштрихованных блоков на Фиг. 9B является одним блоком (TreeBlock (Блок Дерева)), который должен быть обработан в настоящий момент.
<mo>×</mo>
Каждый из блоков 301 включает в себя N
M пикселей. Один из блоков 301 является рекурсивно разбитым внутри (как правило, на четыре части). Другими словами, один TreeBlock концептуально составляет одно квадрадерево. В блоке 301B на Фиг. 9B, верхний правый блок, полученный посредством разбиения заштрихованного блока 301B на четыре части, дважды рекурсивно разбит на четыре части. Другими словами, блок 301B включает в себя 10 логических единиц с верхней левой нулевой единицы до нижней правой девятой единицы, которые разбиты с определенной перспективой.
Здесь, перспектива указывает концепцию множества деревьев с разными глубинами с корневым узлом в качестве базовой точки, такую как дерево, которое относится к единице кодирования (CU) и дерево которое относится к residual_data. Здесь, значение каждого параметра управления принадлежит к одному из конечных узлов.
Здесь, фактическая доступность или нет значения параметра управления конкретного типа сигнала, включенного в верхний блок, зависит от типа дерева, к которому принадлежит параметр управления. Таким образом, модуль 142 или 242 управления может менять критерий определения в соответствии с типом дерева, к которому принадлежит параметр управления. Это изменение эквивалентно изменению единицы синтаксиса. Например, модуль 142 или 242 управления контекстом может использовать шаблон 2 или 3, в котором верхний блок не используется для данных адаптивного фильтра со структурой данных, такой как alf_param, тогда как он может использовать политику контекстной модели (шаблон 1) для других синтаксисов, как обычно используется. Другими словами, вторым типом или третьим типом может быть параметр управления с предварительно определенной структурой данных. Кроме того, это означает, что критерий определения может быть изменен в соответствии с типом дерева соседнего блока.
Кроме того то, может ли значение параметра управления фактически использоваться или создавать преимущество уменьшения использования памяти отличается в зависимости от позиции блока в иерархического взаимоотношения. Другими словами, модуль 142 или 242 управления контекстом может выполнять переключение между использованием или не использованием верхнего блока, в соответствии с глубиной блока и иерархической позицией блока.
Например, на Фиг. 9B, номера с 0 до 9 в блоке 301B расположены в очередности декодирования. В данном случае, параметры управления блоков 1 и 2 доступны, когда блок 4 кодируется или декодируется.
Кроме того, чтобы уменьшить использование памяти, модуль 142 или 242 управления контекстом может выбрать шаблон 1, использующий верхний блок, когда блок не находится на глубине 0 и его собственная позиция такая, которая является второй в отношении последовательных элементов при вертикальном разбиении. Здесь, «глубина» показывает глубину по отношению к корневому узлу. Другими словами, когда некоторый блок определен как блок[xn],[y0][глубина], то критерий определения может быть изменен в соответствии с тем, удовлетворяет ли текущий блок значению блок[xn],[(y0)+1][глубина]. Другими словами, верхние блоки используются для блоков с 4 по 9 на Фиг. 9B. Когда дерево кодируется или декодируется в пронумерованной очередности (начиная с 0 и заканчивая на 9), то очевидно, что блоки с 4 по 9 могут использовать параметры управления, включенные в верхние блоки. Кроме того, существует преимущество, состоящее в том, что эти блоки должны лишь временно хранить данные. Кроме того, это показывает, что значение контекста определяется в соответствии с 3D позицией, включающей в себя глубину в дополнение к координатам x и y. Между тем, условное значение блока на более высоком слое может быть использовано (придерживаться) в качестве условного значения блока на более низком слое.
Кроме того, модуль 142 или 242 управления контекстом может менять эти критерии при рассмотрении взаимоотношения позиций между текущим блоком и другими срезами. Ниже, будут описаны три заштрихованных блока 301A, 301B, и 301С на Фиг. 9B.
Здесь, блок 301A является начальным блоком, и оба блока из левого блока и верхнего блока для блока 301A включены в другой срез. Верхний блок для блока 301B включен в другой срез. Оба блока из левого блока и верхнего блока для блока 301C включены в один и тот же срез, который включает в себя блок 301C. Модуль 142 или 242 управления контекстом может переключать критерий в соответствии с таким условием. Другими словами, модуль 142 или 242 управления контекстом может переключать критерий (i) в соответствии с тем, включен ли верхний блок в другой срез, (ii) в соответствии с тем, включен ли левый блок в другой срез, или (iii) в соответствии с обоими условиями (i) и (ii). Другими словами, модуль 142 или 242 управления контекстом может определять, что параметр управления верхнего блока не является доступным при декодировании, когда текущий блок находится на границе среза. Соответственно, когда обработка декодирования над верхним СРЕЗОМ 1 не завершена, например, можно выполнить обработку декодирования с учетом того, может ли СРЕЗ 2 сам получить информацию.
Далее, будет описана иерархическая единица обработки (многослойная структура блока). Фиг. 10 иллюстрирует иерархическую единицу обработки (многослойную структуру блока).
Устройство 100 кодирования изображения кодирует движущиеся картинки на основе единицы обработки, а устройство 200 кодирования изображения декодирует кодированный поток на основе единицы обработки. Слоистая структура единицы обработки создается посредством разбиения единицы обработки на маленькие единицы обработки и дальнейшего разбиения маленьких единиц обработки на еще меньшие единицы обработки. Чем меньше единица обработки, тем выше глубина единицы обработки и тем она иерархически ниже расположена, а значение, показывающее глубину, - больше. И наоборот, чем больше единица обработки, тем меньше глубина единицы обработки и тем она иерархически выше расположена, а значение, показывающее глубину, - меньше.
<mo>×</mo>
Единица обработки включает в себя единицу кодирования (CU), единицу предсказания (PU), и единицу преобразования (TU). CU является блоком из 128
128 пикселей максимум, и является единицей, соответствующей обычному макроблоку. PU является базовой единицей для внешнего предсказания. TU является базовой единицей для ортогонального преобразования, и имеет размер идентичный PU или намного меньший PU. CU, например, разбивается на 4 суб-CU, а одна из суб-CU включает в себя PU и TU с таким же размером что и у суб-CU (здесь, PU и TU накладываются друг на друга). Например, PU дополнительно разбивается на суб-PU, и TU дополнительно разбивается на 4 суб-CU. Когда единица обработки разбивается на более мелкие единицы обработки, то каждая из более мелких единиц обработки именуется как суб-единица обработки. Например, когда единицей обработки является CU, суб-единицей обработки является суб-CU. Когда единицей обработки является PU, то суб-единицей обработки является суб-PU. Кроме того, когда единицей обработки является TU, то суб-единицей обработки является суб-TU.
В частности, ниже показаны подробности.
Одна картинка разбивается на один или более срезов. Срез является последовательностью наибольших единиц кодирования. Позиция наибольшей единицы кодирования указывается адресом IcuAddr наибольшей единицы кодирования.
Каждая из единиц кодирования, включающая в себя соответствующие наибольшие единицы кодирования, разбивается на четыре единицы кодирования. В результате, создается квадрадерево с размером CU. Позиция CU указывается индексом cuIdx единицы кодирования с выборкой (пикселем или коэффициентами) в верхнем левом углу наибольшей единицы кодирования в качестве начальной точки.
Когда разбиение CU не выполняется, CU обрабатывается как PU. Аналогично CU, позиция PU указывается индексом puIdx единицы предсказания с выборкой в верхнем левом углу наибольшей единицы кодирования в качестве начальной точки.
PU может включать в себя элементы разбиения (элементы разбиения PU или суб-PU). Элемент разбиения PU указывается индексом puPartIdx элемента разбиения единицы предсказания с выборкой в верхнем левом углу PU в качестве начальной точки.
PU может включать в себя TU. Аналогично CU, TU может быть разбита на четыре меньшие TU (суб-TU). Это указывает разрешение на разбиение в виде квадрадерева сигнала остатка. Позиция TU указывается индексом tuIdx единицы преобразования с образцом в верхнем левом углу PU в качестве начальной точки.
Здесь, определение каждой из единиц обработки следующее:
CTB (блок дерева кодирования): Базовая единица для идентификации разбиения в виде квадрадерева квадратной области. Обладает разными квадратными размерами;
LCTB (наибольший блок дерева кодирования): Наибольший CTB разрешенный в срезе. Срез включает в себя множество LCTB, которые не накладываются друг на друга;
SCTB (наименьший блок дерева кодирования): Наименьший CTB разрешенный в срезе. Разбиение SCTB на меньшие CTB запрещено;
PU (единица предсказания): Базовая единица для идентификации обработки предсказания. Размер PU такой же как у CU, в которой разбиение запрещено. Несмотря на то, что разбиение CU разрешено на четыре квадратные области, PU может быть разбита на множество элементов разбиения любой формы;
TU (единица преобразования): Базовая единица для идентификации преобразования и квантования;
CU (единица кодирования): То же, что и CTB;
LCU (наибольшая единица кодирования): То же, что и наибольший CTB; и
SCU (наименьшая единица кодирования): То же, что и наименьший CTB.
Кроме того, параметры квантования включают в себя по меньшей мере одно из дельта-параметра масштаба квантования (дельта QP или QP дельта), параметр смещения квантования, индекс (idc выбора матрицы Q), и параметр смещения мертвой зоны квантования. Индекс служит для выбора одной из матриц квантованного масштабирования.
Дельта-параметр масштаба квантования (дельта QP или QP дельта) является разностью между параметром масштаба квантования, который должен быть применен к коэффициентам преобразования, и параметром масштаба квантования, который указан заголовком последовательности или заголовком среза (или параметр масштаба квантования непосредственно перед Z очередностью сканирования).
Параметр смещения квантования также именуется как смещение квантования, и является значением подстройки (значение смещения) для округления сигнала при выполнении квантования. Таким образом, когда устройство 100 кодирования изображения выполняет квантование, оно кодирует смещение квантования. Затем, устройство 200 декодирования изображения декодирует кодированное смещение квантования. Далее, устройство 200 декодирования изображения выполняет коррекцию, используя смещение квантования, при обратном квантовании коэффициентов преобразования.
Индекс (idc выбора Q-матрицы) именуется адаптивной матрицей квантования, и указывает то, какая матрица масштабирования квантования используется из числа множества матриц масштабирования квантования. Кроме того, когда присутствует только одна матрица масштабирования квантования, idc выбора Q-матрицы указывает то, используется ли матрица масштабирования квантования. Управление адаптивной матрицей квантования может осуществляться из расчета на единицу блока (единицу обработки).
Параметр смещения мертвой зоны квантования именуется адаптивной мертвой зоной, и является информацией управления для адаптивного изменения мертвой зоны из расчета на блок. Мертвая зона является полосой, чьи частотные коэффициенты становятся 0 посредством квантования (последняя полоса, которая становится +1 или -1 после квантования).
Несмотря на то, что ранее описывался случай, где шаблон 3, при котором предварительно определенное фиксированное значении используется в качестве значения контекста, случай может обрабатываться при условии, что параметры управления верхнего блока и левого блока не используются, и дополнительно при условии без использования параметров управления верхнего блока и левого блока как в шаблоне 3. Например, модуль 142 или 242 управления контекстом может определять контекст в соответствии с иерархической глубиной единицы данных, к которой принадлежит каждый из параметров управления, в качестве шаблона 3.
(ВАРИАНТ 3 ОСУЩЕСТВЛЕНИЯ)
Вариант 3 Осуществления будет описывать, какой тип сигнала должен использоваться в качестве первого типа и второго типа (или третьего типа).
В частности, авторы настоящего изобретения проверили ниже каждый из типов сигнала из числа типов сигнала, показанных на Фиг. 3 (Раздел 9.3.3.1.1.1 документа NPL 2). Был проверен каждый из типов сигнала, так как присутствуют разные параметры, и сложно предсказать, удовлетворит ли каждый шаблон другого типа сигнала достоверности, основываясь на результате проверки над одним из типов сигнала (какой один из шаблонов с 1 по 3 подходит).
Проверка проводится в соответствии со структурой (параметр установки и версия HM3.0 программного обеспечения), описанной в JCTVC-E700, «Common test conditions and software reference configurations» (смотри NPL 3). Кроме того, каждое из тестовых изображений имеет длину, ограниченную 49 кадрами.
Способ кодирования изображения и способ декодирования изображения в соответствии с Вариантом 3 Осуществления относятся к CABAC. Следовательно, проверка была проведена, используя следующие четыре тестовых шаблона, которые являются набором значений установки, каждое из которых указывает 1 в качестве значения Режима Символа (#0:LCEC, 1:CABAC):
4.1 Внутреннее, высокоэффективная установка;
4.3 С произвольным доступом, высокоэффективная установка;
4.5 С низкой задержкой, высокоэффективная установка; и
4.7 С низкой задержкой, высокоэффективная установка (только P срезы).
Оценка выполнена на основании оценки значения, именуемого «BD-коэффициент», которое используется в качестве стандарта оценки, которая единообразно используется для реализации оценки в стандарте HEVC. Y BD-коэффициент, U BD-коэффициент, и V BD-коэффициент являются BD-коэффициентами для цветового пространства YUV, и являются значениями стандарта оценки. В соответствии с VCEG-AI11 (NPL 4), BD-коэффициент является значением оценки, полученным посредством объединения двух пар объемов кода с результирующим PSNR, и представления эффективности кодирования в соответствии с соотношением площадей. Кроме того, BD-коэффициент указывающий минусовое значении означает, что эффективность кодирования была увеличена. Критерии сравнения основаны на результате выдачи исходной программы, которая реализует шаблон 1. Результаты шаблонов 2 и 3 показаны по отношению к результату шаблона 1.
Нижеследующее описывает результат проверки в отношении каждого из типов сигнала:
(Первая проверка) split_coding_unit_flag;
(Вторая проверка) skip_flag;
(Третья проверка) merge_flag;
(Четвертая проверка) ref_idx_l0(l1,lc);
(Пятая проверка) inter_pred_flag;
(Шестая проверка) mvd_l0(l1,lc);
(Седьмая проверка) no_residual_data_flag;
(Восьмая проверка) intra_chroma_pred_mode; и
(Девятая проверка) cbf_luma, cbf_cr, cbf_cb;
(Первая проверка) split_coding_unit_flag.
Фиг. 11 иллюстрирует способ арифметического кодирования для split_coding_unit_flag.
Проверка проводится посредством изменения контекстной модели с шаблона 1 на шаблон 2 или 3 только для типа сигнала, который должен быть проверен, не меняя контекстной модели для других типов сигналов и параметра проверки, указанного в NPL 3. В столбце на Фиг. 11, значение «Фиксировано» указывает то, что условие (условие левого блока или условие верхнего блока) столбца указанного посредством «Фиксировано» не используется при получении значения контекста (или приращения). Другими словами, когда «фиксировано» только одно из условия левого блока и условия верхнего блока, используется только другое условие. Кроме того, когда «Фиксированы» и условие левого блока и условие верхнего блока, в качестве значения контекста (или приращения) используется предварительно определенное значение (например, 0).
Смысл типа сигнала «split_coding_unit_flag» определяется следующим образом.
split_coding_unit_flag[x0][y0] указывает то, разделена ли единица кодирования на единицы кодирования с половиной горизонтального и вертикального размера. Индексы x0, y0 массива указывают местоположение (x0, y0) верхнего левого образца яркости рассматриваемого блока кодирования относительно верхнего левого образца яркости картинки. Другими словами, «split_coding_unit_flag» указывает то, разбита ли целевая CU на четыре. В частности, целевая CU разбита, когда split_coding_unit_flag указывает 1, тогда как целевая CU не разбита, когда split_coding_unit_flag указывает 0.
Данные split_coding_unit_flag структурированы в соответствии с синтаксисом дерева кодирования в качестве синтаксиса. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 12A и 12B являются таблицами для описания результатов проверки в отношении split_coding_unit_flag.
Фиг. 12A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 12B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 12A и 12B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами.
Кроме того, значение оценки представлено посредством стандарта оценки, указывающего значение относительно значения оценки в случае шаблона 1, при котором используются оба блока из левого блока и верхнего блока. В частности, когда значение оценки положительное, то результат ниже значения оценки (BD-коэффициент) в случае шаблона 1. Кроме того, когда значение оценки отрицательное, то результат выше значения оценки в случае шаблона 1.
Результат поясняет, что шаблон 1 превосходит другие как шаблон контекстной модели для split_coding_unit_flag. Другими словами, значения оценки, полученные шаблонами 2 и 3, хуже тех, что получены шаблоном 1.
Следовательно, когда типом сигнала параметра управления является split_coding_unit_flag, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 1, который является обычным шаблоном контекстной модели, с точки зрения BD-коэффициента.
(Вторая проверка) skip_flag
Фиг. 13 иллюстрирует способ арифметического кодирования для skip_flag. Здесь, способ проверки точно такой же, как и в первой проверке.
Смысл типа сигнала «skip_flag» определяется следующим образом.
skip_flag[x0][y0] равный 1 указывает то, что для текущей единицы кодирования, при декодировании срезов P или B, никакие другие элементы синтаксиса кроме индексов предсказателя вектора движения не разбираются после skip_flag[x0][y0]. skip_flag[x0][y0] равный 1 указывает то, что единица кодирования не может быть пропущена. Индексы массива x0, y0 указывают местоположение (x0, y0) верхнего левого образца яркости рассматриваемого блока кодирования относительно верхней левой выборки сигнала яркости картинки. Другими словами, skip_flag указывает, должна ли быть пропущена целевая CU (обработана как пропускаемый блок).
Данные skip_flag структурированы в соответствии с синтаксисом единицы кодирования в качестве синтаксиса. Другими словами, skip_flag устанавливается для каждой CU. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 14A и 14B являются таблицами для описания результатов проверки в отношении skip_flag.
Фиг. 14A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 14B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 14A и 14B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат поясняет, что шаблон 1 превосходит другие как шаблон контекстной модели для «skip_flag». Другими словами, значения оценки, полученные шаблонами 2 и 3, хуже тех, что получены шаблоном 1.
Следовательно, когда типом сигнала параметра управления является «skip_flag», модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 1, который является обычным шаблоном контекстной модели, с точки зрения BD-коэффициента.
(Третья проверка) «merge_flag»
Фиг. 15 является таблицей, показывающей способ арифметического декодирования, для merge_flag. Здесь, способ проверки точно такой же, как в первой проверке и второй проверке.
Смысл типа сигнала «merge_flag» определяется следующим образом.
merge_flag[x0][y0] указывает, извлекаются ли параметры внешнего предсказания для текущей единицы предсказания из соседнего внешне-предсказанного элемента разбиения (раздела). Индексы массива x0, y0 указывают местоположение (x0, y0) верхнего левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки. Когда merge_flag[x0][y0] не присутствует (InferredMergeFlag равен 1), предполагается, что он равен 1. Другими словами, merge_flag[x0][y0] указывает, должно ли использоваться слияние. Здесь режим слияния является режимом, при котором вектор движения и индекс опорной картинки копируются из соседнего блока текущего блока, который должен быть кодирован, и текущий блок кодируется.
Данные merge_flag структурированы в соответствии с синтаксисом единицы предсказания в качестве синтаксиса. Другими словами, merge_flag устанавливается для каждой PU. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 16A и 16B являются таблицами для описания результатов проверки в отношении merge_flag.
Фиг. 16A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 16B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 16A и 16B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для merge_flag.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является merge_flag. Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является merge_flag. Другими словами, первый тип включает в себя «split_coding_unit_flag» или skip_flag», а второй тип или третий тип включает в себя «merge_flag». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
При сравнении шаблона 2 с шаблоном 3 в отношении merge_flag, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для merge_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, при сравнении merge_flag и skip_flag, несмотря на то, что остаточные данные вектора движения не передаются в режиме пропуска, остаточные данные вектора движения передаются в режиме слияния. Соответственно, даже когда контекст, который должен быть временно использован, не является оптимальным для merge_flag, ухудшение качества изображения, вызванное не использованием оптимального контекста может быть в какой-то мере компенсировано обработкой, использующей остаточные данные. Соответственно, сдерживается ухудшение качества изображения.
(Четвертая проверка) «ref_idx_l0(l1,lc)»
Фиг. 17 является таблицей, показывающей способ арифметического декодирования для ref_idx. Здесь, способ проверки точно такой же, как в первой проверке и второй проверке.
Смысл типа сигнала «ref_idx» определяется следующим образом.
ref_idx_l0[x0][y0] указывает индекс опорной картинки списка 0 для текущей единицы предсказания. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки.
Кроме того, ref_idx_l1[x0][y0] имеет точно такое же смысловое значение, так как l0 и список 0 замещаются l1 и списком 1 в ref_idx_l0. Другими словами, ref_idx_l1 показывает индекс опорной картинки для списка 1 текущей PU.
Наличие или отсутствие ref_idx_l1 может быть определено на основании, например, типа картинки.
Кроме того, ref_idx_lc[x0][y0] имеет точно такое же смысловое значение как ref_idx_l0, с замещенными l0 и список 0 на lc и комбинацию списков, соответственно. ref_idx_lc является параметром управления, добавленным в HAVC. Кроме того, комбинация списков получается посредством объединения (слияния) списка 0 и списка 1. Обычно, битовый поток включает в себя только одно из: ref_idx_l0, ref_idx_l1, и ref_idx_lc. Существуют случаи, где битовый поток включает в себя только один из или оба из ref_idx_l0 и ref_idx_l1.
Данные ref_idx_l0(l1,lc) структурированы в единице предсказания в качестве синтаксиса. Другими словами, merge_flag устанавливается для каждой PU. Устройство декодирования изображения разбирает битовый поток в соответствии с синтаксисом данной структуры данных.
Фиг. 18A и 18B являются таблицами для описания результатов проверки в отношении ref_idx.
Фиг. 18A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 18B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 18A и 18B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке по split_coding_unit_flag и при второй проверке по skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для ref_idx.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является ref_idx_l0(l1,lc). Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является ref_idx_l0(l1,lc). Другими словами, первый тип включает в себя «split_coding_unit_flag» или skip_flag», а второй тип или третий тип включает в себя «ref_idx_l0(l1,lc)». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
Здесь, второй тип или третий тип должны включать в себя только по меньшей мере одно из ref_idx_l0, ref_idx_l1, и ref_idx_lc. Например, второй тип или третий тип могут включать в себя ref_idx_l0 и ref_idx_l1, не включая ref_idx_lc.
При сравнении шаблона 2 с шаблоном 3 в отношении ref_idx, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для ref_idx_l0(l1,lc). Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, ref_idx используется при нормальном режиме внешнего предсказания, который не является ни режимом пропуска, ни режимом слияния. Несмотря на то, что тот же вектор движения для верхнего блока и левого блока используется в качестве вектора движения текущего блока в режиме пропуска и режиме слияния, вектор движения отличный от того, что для верхнего блока и левого блока используется в качестве вектора движения текущего блока в нормальном режиме внешнего предсказания, отличном от режима пропуска и режима слияния. Соответственно, эффективность кодирования уменьшается с использованием верхнего блока и левого блока для ref_idx, как при шаблоне 1. Другими словами, можно улучшить эффективность кодирования, используя шаблон 2 или 3 для ref_idx.
Здесь, модуль 142 или 242 управления контекстом может использовать значение, полученное из результата condL и результата condA для ref_idx_l0[xP][yP] текущего блока, вместо использования ref_idx_lc[xL][yP] соседнего блока A или ref_idx_lc[xL][yP] соседнего блока B, при определении условия A (или L) для ref_idx_lc[xP][yP]. Другими словами, модуль 142 или 242 управления контекстом может получить результирующее значение условия в качестве зависимого значения значений текущих блоков l0 и l1.
Устройство кодирования или устройство записи формирует ref_idx_lc посредством объединения ref_idx_l0 и ref_idx_l1 при записи или кодировании потока. Другими словами, ref_idx_l0 и ref_idx_l1 используются для каждого определения внутри этих устройств. Следовательно, (1) когда условие condA или L { (ref_idx_l0 доступно) и (истина имеет место если ref_idx_l0>0)} и (2) условие condA или L {( ref_idx_l1 доступно) и (истина имеет место если ref_idx_l1>0)} имеет место в текущем блоке, то условие condA или L {( ref_idx_lc доступно) и (истина имеет место если ref_idx_lc>0)} имеет место.
Следовательно, может быть выполнено следующее. Фиг. 18C является таблицей, показывающей условие A и условие L для ref_idx, как указано в NPL 2. Фиг. 18D является таблицей, показывающей условие A и условие L для ref_idx в соответствии с Вариантом 3 Осуществления.
Как показано на Фиг. 18D, модуль 142 и 242 управления контекстом может извлечь условные значения condL и condA для ref_idx_lc, по меньшей мере, из одного из условных значений ref_idx_l0 и ref_idx_l1 в том же самом блоке. Другими словами, модуль 142 и 242 управления контекстом может привести к тому, чтобы условные значения condL и condA для ref_idx_lc линейно зависели от условных значений ref_idx_l0 и ref_idx_l1 в том же блоке.
Соответственно, ref_idx_lc не требуется ссылки на ячейку памяти. Другими словами, условное значение для ref_idx_lc может быть получено, не обращаясь к значению ref_idx_lc для верхнего блока.
(Пятая проверка) «inter_pred_flag»
Фиг. 19 является таблицей, показывающей способ арифметического декодирования для inter_pred_flag.
Смысл типа сигнала «inter_pred_flag» определяется следующим образом.
inter_pred_flag[x0][y0] указывает, используется ли для текущей единицы предсказания уни-предсказание или би-предсказание в соответствии с Таблицей 7 11. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки яркости картинки. Здесь, уни-предсказание является предсказанием с использованием lc (комбинации списков), а би-предсказание является предсказанием с использованием списка 0 и списка 1. Кроме того, комбинация списков получается посредством объединения (слияния) списка 0 и списка 1. Кроме того, inter_pred_flag используется только тогда, когда текущий срез является B-срезом.
Данные inter_pred_flag структурированы в единице предсказания в качестве синтаксиса. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 20A и 20B являются таблицами для описания результатов проверки в отношении inter_pred_flag.
Фиг. 20A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 20B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 20A и 20B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для inter_pred_flag.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является inter_pred_flag. Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является inter_pred_flag. Другими словами, первый тип включает в себя «split_coding_unit_flag» или «skip_flag», а второй тип или третий тип включает в себя «inter_pred_flag». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
При сравнении шаблона 2 с шаблоном 3 в отношении inter_pred_flag, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для inter_pred_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, inter_pred_flag используется при нормальном режиме внешнего предсказания, который не является ни режимом пропуска, ни режимом слияния. Несмотря на то, что тот же вектор движения для верхнего блока и левого блока используется в качестве вектора движения текущего блока в режиме пропуска и режиме слияния, вектор движения отличный от того, что для верхнего блока и левого блока используется в качестве вектора движения текущего блока в нормальном режиме внешнего предсказания, отличном от режима пропуска и режима слияния. Соответственно, эффективность кодирования уменьшается с использованием верхнего блока и левого блока для inter_pred_flag, как при шаблоне 1. Другими словами, можно улучшить эффективность кодирования, используя шаблон 2 или 3 для inter_pred_flag.
Кроме того, как описано выше, можно дополнительно улучшить эффективность кодирования посредством определения значения контекста в соответствии с глубиной текущего блока для inter_pred_flag.
(Шестая проверка) «mvd_l0(l1,lc)»
Фиг. 21 является таблицей, показывающей способ арифметического декодирования для mvd_l0(l1,lc). Здесь, способ проверки точно такой же, как в первой проверке и второй проверке.
Смысл типа сигнала «mvd_l0(l1,lc)» определяется следующим образом.
mvd_l0[x0][y0][compIdx] указывает разность между компонентой вектора списка 0, который должен быть использован, и его предсказанием. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки. Горизонтальной разностью компоненты вектора движения назначается compIdx=0, а вертикальной разностью компоненты вектора движения назначается compIdx=1. Когда отсутствует любой из двух компонент, подразумеваемым значением является 0. Другими словами, mvd_l0 представляет собой разность между вектором движения в позиции PU (xP, yP) и предсказанным вектором, используя первую компоненту (горизонтальную компоненту compIdx=0) и вторую компоненту (вертикальную компоненту compIdx=1).
mvd_l1[x0][y0][compIdx] имеет точно такое же смысловое значение, так как l0 и список 0 замещаются l1 и списком 1 в mvd_l0, соответственно. Наличие или отсутствие mvd_l1 может быть определено на основании типа картинки и прочего.
Кроме того, mvd_lc[x0][y0][compIdx] имеет точно такое же смысловое значение как mvd_l0, с замещенными l0 и список 0 на lc и комбинацию списков, соответственно. Другими словами, mvd_lc формируется посредством объединения mvd_l0 и mvd_l1.
Понятие «mvd» включает в себя, по меньшей мере, mvd_l0, и включает в себя, по меньшей мере, mvd_l1 и mvd_дс в соответствии с условием изображения.
Данные mvd структурированы в единице предсказания в качестве синтаксиса. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 22A и 22B являются таблицами для описания результатов проверки в отношении mvd.
Фиг. 22A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 22B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 22A и 22B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для mvd.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является mvd_l0(l1,lc). Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является mvd_l0(l1,lc). Другими словами, первый тип включает в себя «split_coding_unit_flag» или «skip_flag», а второй тип или третий тип включает в себя mvd_l0, mvd_l1, или mvd_lc. Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
Другими словами, второй тип или третий тип должен включать в себя по меньшей мере одно из mvd_l0, mvd_l1, и mvd_lc. Например, второй тип или третий тип может включать в себя mvd_l0, mvd_l1, не включая mvd_lc.
При сравнении шаблона 2 с шаблоном 3 в отношении mvd, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для mvd_l0(l1,lc). Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, несмотря на то, что остаточные данные (mvd) вектора движения не передаются в режиме пропуска, остаточные данные (mvd) вектора движения передаются в режиме слияния. Соответственно, даже когда контекст, который должен быть временно использован, не является оптимальным в режиме слияния, ухудшение качества изображения, вызванное не использованием оптимального контекста, может быть в какой-то мере компенсировано обработкой, использующей mvd. Соответственно, ухудшение качества изображения сдерживается, когда окружающий блок не используется для mvd.
Когда условное значение верхнего блока или левого блока (condA или condL) используется в соответствии с предварительно определенным условием, применима следующая модификация.
Первой модификацией является способ, использующий зависимость между mvd_l0, mvd_l1, и mvd_lc.
В частности, модуль 142 или 242 управления контекстом может получить условное значение другого типа сигнала с условным значением, которое зависит от условных значений (condL или condA) двух типов сигнала из числа трех типов сигнала mvd_l0, mvd_l1, и mvd_lc, используя условные значения.
Например, когда значение condA для mvd_lc зависит от условных значений (значения condA для l0 и значения condA для l1) двух типов сигнала mvd_l0 и mvd_l1, то модулю 142 или 242 управления контекстом не требуется обращаться к значению condA для mvd_lc.
Фиг. 22C является таблицей, указывающей условие A и условие L для mvd, как указано в NPL 2. Фиг. 22D является таблицей, указывающей условие A и условие L для mvd в соответствии с Вариантом 3 Осуществления.
Как указано на Фиг. 22D, модуль 142 и 242 управления контекстом может получить условные значения condL и condA для mvd_lc, по меньшей мере, из одного из условных значений mvd_l0 и mvd_l1 в том же самом блоке.
Здесь, модуль 142 и 242 управления контекстом может использовать эти взаимоотношения для одного или обоих из горизонтального направления (compIdx=0) и вертикального направления (compIdx=1).
Кроме того, модуль 142 и 242 управления контекстом может использовать зависимость между compIdx=0 и 1. Другими словами, модуль 142 и 242 управления контекстом может привести в результате к тому, что одно из двух условных значений горизонтального направления mvd_l0[ ][ ][0] и вертикального направления mvd_l0[ ][ ][1] будет зависеть от другого. Другими словами, модуль 142 и 242 управления контекстом может получить условные значения condL и condA одного из горизонтального направления и вертикального направления для mvd, из других условных значений для mvd. Здесь, в соответствии с NPL 2, индекс контекста (приращение индекса + опорное значение) устанавливается для каждого из горизонтального направления mvd_l0[ ][ ][0], mvd_l1[ ][ ][0], и mvd_lc[ ][ ][0], и вертикального направления mvd_l0[ ][ ][1], mvd_l1[ ][ ][1], и mvd_lc[ ][ ][1]. Следовательно, можно уменьшить потери, используя зависимость. Другими словами, количество индексов контекста может быть уменьшено.
Здесь, условные значения верхнего блока и левого блока используются только для первого бита mvd в соответствии с NPL 2. Другими словами, модуль 142 и 242 управления контекстом может использовать шаблон 2 или 3 для первого бита mvd. Другими словами, модуль 142 и 242 управления контекстом может использовать шаблон 2 или 3 для abs_mvd_greater0_flag[compIdx], указывающего на то, является ли разность между вектором движения и предсказанным вектором равной или больше 0.
(Седьмая проверка) «no_residual_data_flag»
Фиг. 23A является таблицей, показывающей способ арифметического декодирования для no_residual_data_flag.
Смысл типа сигнала «no_residual_data_flag» определяется следующим образом.
no_residual_data_flag равный 1 указывает то, что для текущей единицы кодирования отсутствуют остаточные данные. no_residual_data_flag равный 0 указывает то, что для текущей единицы кодирования присутствуют остаточные данные. Когда no_residual_data_flag отсутствует, подразумевается, что его значение равно 0.
Данные no_residual_data_flag структурированы в соответствии с деревом преобразования среди типов деревьев. Фиг. 23B является таблицей, показывающей синтаксис дерева преобразования. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Фиг. 24A и 24B являются таблицами для описания результатов проверки в отношении no_residual_data_flag.
Фиг. 24A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 24B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 24A и 24B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для no_residual_data_flag.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является no_residual_data_flag. Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является no_residual_data_flag. Другими словами, первый тип включает в себя «split_coding_unit_flag» или «skip_flag», а второй тип или третий тип включает в себя «no_residual_data_flag». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
При сравнении шаблона 2 с шаблоном 3 в отношении no_residual_data_flag, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для no_residual_data_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, no_residual_data_flag указывает на наличие или отсутствие коэффициентов (остаточных данных) яркости и цветности. Кроме того, остаточные данные увеличиваются при внутреннем предсказании, и уменьшаются при внешнем предсказании. Следовательно, эффективность кодирования уменьшается, когда режим окружающего блока отличается от режима текущего блока (окружающий блок имеет признаки отличные от тех, что у текущего блока). Например, когда выполняется внутреннее предсказание над текущим блоком и внешнее предсказание выполняется над окружающим блоком, остаточные данные текущего блока уменьшаются, а остаточные данные окружающего блока увеличиваются. Соответственно, эффективность кодирования уменьшается, когда используется контекст окружающего блока. Следовательно, модуль 142 и 242 управления контекстом может улучшить эффективность кодирования, используя контекст текущего блока без зависимости от окружающего блока.
(Восьмая проверка) «intra_chroma_pred_mode»
Фиг. 25A является таблицей, показывающей способ арифметического декодирования для intra_chroma_pred_mode.
Смысл типа сигнала «inter_pred_flag» определяется следующим образом.
Данные intra_chroma_pred_mode структурированы в единице предсказания в качестве синтаксиса. Устройство декодирования изображения разбирает битовую последовательность в соответствии с синтаксисом данной структуры данных.
Смысл типа сигнала «intra_chroma_pred_mode» определяется следующим образом.
intra_chroma_pred_mode[x0][y0] указывает режим внутреннего предсказания для выборок цветности. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки.
Значение режима внутреннего предсказания для цветности «intra_chroma_pred_mode» (IntraPredModeC) определяется посредством объединения значения intra_chroma_pred_mode (значение между 0 и 4 включительно) и IntraPredMode[xP][yB] текущего блока. Здесь, координатами текущего блока являются [xB][yB]. [xB][yB] указывают позицию выборки как [xP][yP]. Кроме того, IntraPredMode указывает значение режима предсказания для сигнала яркости.
Фиг. 25B является таблицей, показывающей способ получения IntraPredModeC, на основания intra_chroma_pred_mode и IntraPredMode, которые описаны в NPL 2.
Кроме того, IntraPredMode (переменная, начинающаяся с заглавной) не является значением, которое непосредственно кодируется в кодированную битовую последовательность, а является последовательностью значений, декодируемых декодером. Когда получают IntraPredMode[xP][yP] текущего блока, то если доступны, используются IntraPredMode[xP][yA] и прочие значения соседнего блока.
Фиг. 26A и 26B являются таблицами для описания результатов проверки в отношении intra_chroma_pred_mode.
Фиг. 26A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 26B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 26A и 26B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для intra_chroma_pred_mode.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является intra_chroma_pred_mode. Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является intra_chroma_pred_mode. Другими словами, первый тип включает в себя «split_coding_unit_flag» или «skip_flag», а второй тип или третий тип включает в себя «intra_chroma_pred_mode». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
При сравнении шаблона 2 с шаблоном 3 в отношении intra_chroma_pred_mode, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для intra_chroma_pred_mode. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Здесь, intra_chroma_pred_mode является информацией суммарно из 4 бит, и указывает то, указывает ли первый 1 бит на то, используется ли режим внутреннего предсказания для сигнала яркости в качестве режима внутреннего предсказания для цветности. Здесь, модуль 142 и 242 управления контекстом использует шаблон 2 или 3 для первого 1 бита. В частности, intra_chroma_pred_mode указывает 0, когда тот же режим, что и для сигнала яркости, используется для цветности. Когда для цветности используется режим отличный от того, что используется для сигнала яркости, то intra_chroma_pred_mode указывает 1, и оставшиеся 3 бита указывают режим, используемый для цветности.
При внутреннем предсказании, используется корреляция между верхним блоком, левым блоком, и текущим блоком. Другими словами, поскольку информация корреляции используется при внутреннем предсказании, то использование того же режима, что и у сигнала яркости, для цветности является эффективным. Другими словами, несмотря на то, что режим, отличный от того, что у сигнала яркости, может быть использован для цветности для того, чтобы иметь различные режимы, случай, при котором для цветности используется режим отличный от того, что используется для сигнала яркости, и используется окружающий контекст, является редким. Другими словами, существует много случаев, где intra_chroma_pred_mode, при котором используется тот же режим, что и для сигнала яркости, установлен равным 0. Соответственно, использование окружающего контекста дает небольшое преимущество, тогда как использование контекста текущего блока позволяет уменьшить объем обработки, при этом сохраняя эффективность кодирования.
Кроме того, определение того, доступен ли верхний блок, при декодировании является значительно сложным. Массив IntraPredMode, который получают в процессе декодирования и который отображается в последовательность, будет описан со ссылкой на Фиг. 36.
IntraPredMode одной верхней строки (Линия L), включающей в себя текущей блок, представлен посредством IntraPredMode [n-ый блок в горизонтальном направлении] [одна верхняя строка (Линия L)]. Кроме того, IntraPredMode текущей строки, включающей в себя текущий блок, представлен посредством IntraPredMode [k-ый блок в горизонтальном направлении] [текущая строка]. Здесь, сигналом, в отношении которого в настоящий момент должно выполняться арифметическое декодирования, является intra_chroma_pred_mode [i-ый блок в горизонтальном направлении] [текущая строка].
Во-первых, нет гарантии того, что n-ый блок в одной верхней строке в горизонтальном направлении связан с k-ым блоком в текущей строке в горизонтальном направлении. Как описано для Фиг. 36, это потому, что размер блока PU меняется для каждого блока. Следовательно, нет другого способа кроме как предоставления определенной таблицы соответствия для управления этими блоками или получения всех IntraPredMode в качестве минимальной единицы, как описано для Фиг. 36.
Кроме того, помимо того что должен быть декодирован intra_chroma_pred_mode, IntraPredMode верхней строки не является типом сигнала, который может быть получен посредством разбора модулем арифметического декодирования, а является значением (переменная стандарта H.264, и т.д., начинающаяся с заглавной), получаемым из другого процесса декодирования. Следовательно, получение доступности данного значения исключительно модулем арифметического декодирования является обременительным.
Следовательно, в контекстной модели, в которой intra_chroma_pred_mode использует соседние блоки, не используя CondA, которое является условным значение верхнего блока (в частности, значением определения условия IntraPredMode [соответствующая горизонтальная позиция] [одна верхняя строка]), является бесполезным в плане использования памяти.
(Девятая проверка) «cbf_luma, cbf_cr, cbf_cb»
Фиг. 27 является таблицей, показывающей способ арифметического декодирования для cbf_luma, cbf_cr, и cbf_cb.
Смысл типа сигнала «cbf_luma» определяется следующим образом.
cbf_luma[x0][y0][trafoDepth] равный 1 указывает то, что блок преобразования сигнала яркости содержит один или более уровней коэффициента преобразования не равных 0. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки. Индекс массива trafoDepth указывает текущий уровень подразделения единицы кодирования на блоки в целях кодирования с преобразованием. trafoDepth равно 0 для блоков, которые соответствуют единицам кодирования.
Другими словами, позиция блока преобразования яркости определяется как значение трехмерного массива, включающего иерархическую глубину (trafoDepth) относительно слоя CU, в дополнение к вертикальным и горизонтальным элементам.
Кроме того, тип сигнала «cbf_cb» определяет cbf_luma, касающееся сигнала яркости для цветности (cb). Смысл типа сигнала «cbf_cb» определяется следующим образом.
cbf_cb[x0][y0][trafoDepth] равный 1 указывает то, что блок преобразования Cb содержит один или более уровней коэффициента преобразования не равных 0. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки. Индекс массива trafoDepth указывает текущий уровень подразделения единицы кодирования на блоки в целях кодирования с преобразованием. trafoDepth равно 0 для блоков, которые соответствуют единицам кодирования. Когда cbf_cb[x0][y0][trafoDepth] отсутствует и PredMode не равен MODE_INTRA, то подразумевается, что значение cbf_cb[x0][y0][trafoDepth] равен 0.
Другими словами, позиция блока преобразования Cb определяется как значение трехмерного массива, включающего в себя иерархическую глубину (trafoDepth) относительно слоя CU, в дополнение к вертикальным и горизонтальным элементам.
Кроме того, тип сигнала «cbf_cr» определяет cbf_luma, касающееся сигнала яркости для цветности (cr). Смысл типа сигнала «cbf_cr» определяется следующим образом.
cbf_cr[x0][y0][trafoDepth] равный 1 указывает то, что блок преобразования Cr содержит один или более уровней коэффициента преобразования не равных 0. Индексы массива x0, y0 указывают местоположение (x0, y0) верхней левой выборки сигнала яркости рассматриваемого блока предсказания относительно верхней левой выборки сигнала яркости картинки. Индекс массива trafoDepth указывает текущий уровень подразделения единицы кодирования на блоки в целях кодирования с преобразованием. trafoDepth равно 0 для блоков, которые соответствуют единицам кодирования. Когда cbf_cr[x0][y0][trafoDepth] отсутствует и PredMode не равен MODE_INTRA, то подразумевается, что значение cbf_cr[x0][y0][trafoDepth] равен 0.
Другими словами, позиция блока преобразования Cr определяется как значение трехмерного массива, включающего в себя иерархическую глубину (trafoDepth) относительно слоя CU, в дополнение к вертикальным и горизонтальным элементам.
Фиг. 28A и 28B являются таблицами для описания результатов проверки в отношении cbf_luma, cbf_cr, и cbf_cb.
Фиг. 28A показывает результат проверки с использованием одного соседнего блока (только значения определения условия L левого блока) шаблона 2. Фиг. 28B показывает результат проверки с использованием нулевого соседнего блока (не используются ни условие A верхнего блока, ни условие L левого блока) шаблона 3.
Результат проверки в отношении каждой из Фиг. 28A и 28B показывает приращение и отрицательное приращение BD-коэффициента в соответствии с четырьмя тестовыми шаблонами как описано для первой проверки. Кроме того, смысл значения оценки точно такой же, как и для первой проверки.
Результат отличается от тех результатов, что получены при первой проверке в отношении split_coding_unit_flag и при второй проверке в отношении skip_flag. Отсутствует существенная разница в BD-коэффициенте между шаблонами 1 и 2 или 3, как шаблоном контекстной модели для cbf_luma, cbf_cr, и cbf_cb.
Следовательно, при смешанной среде с множеством параметров управления типов сигналов, модуль 142 или 242 управления контекстом определяет значение контекста, не используя верхний блок в качестве соседнего блока в частности, когда типом сигнала параметра управления является cbf_luma, cbf_cr, и cbf_cb. Другими словами, модуль 142 или 242 управления контекстом определяет значение контекста, используя шаблон 2 или 3, когда типом сигнала параметра управления является cbf_luma, cbf_cr, и cbf_cb. Другими словами, первый тип включает в себя «split_coding_unit_flag» или «skip_flag», а второй тип или третий тип включает в себя «cbf_luma, cbf_cr, и cbf_cb». Соответственно, устройство кодирования изображения и устройство декодирования изображения в соответствии с Вариантом 3 Осуществления могут уменьшить использование памяти, при этом сдерживая падение BD-коэффициента.
При сравнении шаблона 2 с шаблоном 3 в отношении cbf_luma, cbf_cr, и cbf_cb, их BD-коэффициенты не имеют значительной разницы. Следовательно, предпочтительно использовать шаблон 3 для cbf_luma, cbf_cr, и cbf_cb. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
Кроме того, cbf_luma, cbf_cr, и cbf_cb являются значениями трехмерного массива с глубиной. Следовательно, как описано для Фиг. 9B в соответствии с Вариантом 2 Осуществления, расстояния (удаленность) между соседними опорными значениями в очередности декодирования (включающей в себя рекурсивную очередность исполнения и которая будет точно такой же ниже), являются разными в соответствии с соответствующими иерархическими глубинами. Соответственно, то, является ли значение параметра управления фактически доступным или создает преимущество для уменьшения использования памяти, отличается в зависимости от позиции блока в иерархическом взаимоотношении.
Следовательно, модуль 142 и 242 управления контекстом может менять критерий определения условного значения в соответствии с иерархической глубиной. Например, модуль 142 и 242 управления контекстом может использовать (следовать) условное значение блока на более высоком слое в качестве условного значения блока на более низком слое.
Кроме того, модуль 142 и 242 управления контекстом может менять эти критерии при рассмотрении взаимоотношения позиций с другим срезом, в дополнение к вышеприведенному или отдельно.
В результате вышеприведенных проверок, возможна следующая подробная модификация. То, возникает ли эффект разбавления, зависит от количества обучений, к которым применяется условие. Как правило, Y, которая представляет яркость в модели Y, U, и V, такой как формат 4:2:0, является большей по количеству образцов, чем две другие оси (U и V). Следовательно, одной границей, которая должна различаться, является граница между (a) сигналом яркости и (b) парой cb и cr.
Например, шаблон 3 может быть применен к (a) cbf_luma, а другой шаблон 2 или 1 может быть применен к (b) cbf_cb и cbf_cr. Другими словами, модуль 142 и 242 управления контекстом может определять контекст, используя разное условие для каждого случая, где типом сигнала является «cbf_luma», или типом сигнала является один из «cbf_cb» и «cbf_cr».
Здесь, когда количество обучений достаточно, то предпочтительно, чтобы модуль 142 и 242 управления контекстом увеличивал количество условий (контекста) для точности. Кроме того, предпочтительно, чтобы модуль 142 и 242 управления контекстом уменьшал количество условий контекста, когда количество обучения меньше. Следовательно, модуль 142 и 242 управления контекстом может переключаться между этими условиями в соответствии с разрешением. Кроме того, модуль 142 и 242 управления контекстом может переключаться между этими условиями в соответствии с форматом (4:2:0) и прочим.
Кроме того, cbf_luma, cbf_cr, и cbf_cb указывают на наличие или отсутствие коэффициентов сигнала яркости или цветности. Другими словами, cbf_luma, cbf_cr, и cbf_cb находятся иерархически ниже no_residual_data_flag, показывающего наличие или отсутствие остаточных данных. Здесь, no_residual_data_flag используется для наибольшей TU, которая может быть выбрана для размера CU при взаимоотношении CU≥PU≥TU. В частности, no_residual_data_flag используется на верхнем слое TU. С другой стороны, cbf_luma, cbf_cr, и cbf_cb используются на слое ниже слоя no_residual_data_flag. Наличие no_residual_data_flag указывает то, что последующие блоки не имеют остаточных данных. Кроме того, чем глубина больше, тем вероятнее присутствуют остаточные данные. Следовательно, модуль 142 и 242 управления контекстом может улучшить эффективность кодирования, используя иерархическую информацию для cbf_luma, cbf_cr, и cbf_cb. Другими словами, модуль 142 и 242 управления контекстом может определять контекст в соответствии с иерархической глубиной единицы данных, к которой принадлежит параметр управления (cbf_luma, cbf_cr, и cbf_cb) текущего блока. С другой стороны, поскольку no_residual_data_flag является флагом, который зависит от режима предсказания, то предпочтительно, чтобы в качестве значения контекста использовалось фиксированное значение, которое не зависит от глубины.
Ниже будет описано резюме результатов проверок в отношении всех типов сигнала.
Фиг. 29A и 29B являются графиками, каждый показывающий результат «4.1 Внутреннее, высокоэффективная установка» (все типы сигналов).
Фиг. 30A и 30B являются графиками, каждый показывающий результат «4.3 С произвольным доступом, высокоэффективная установка» (все типы сигналов).
Фиг. 31A и 31B являются графиками, каждый показывающий результат «4.5 С низкой задержкой, высокоэффективная установка» (все типы сигналов).
Фиг. 32A и 32B являются графиками, каждый показывающий «4.7 С низкой задержкой, высокоэффективная установка» (только P срезы)».
Фиг. 33A является таблицей, указывающей набор параметров, в котором один из шаблонов с 1 по 3 применяется к каждому из параметров управления. В примере на Фиг. 33A, шаблон 1 (использующий как верхний блок, так и левый блок) применяется к «split_coding_unit_flag» и «skip_flag», а шаблон 3 (не использующий ни верхний блок, ни левый блок) применяется к «merge_flag», «ref_idx», «inter_pred_flag», «mvd_l0», «mvd_l1», «mvd_lc», «no_residual_data_flag», «intra_chroma_pred_mode», «cbf_luma», «cbf_cb», и «cbf_cr».
Фиг. 33B является таблицей, показывающей результат проверки, когда используется набор параметров, показанный на Фиг. 33A. Как указано на Фиг. 33B, использование набора параметров с Фиг. 33A может сократить использование памяти, при этом сдерживая уменьшение эффективности кодирования.
Фиг. 34A является таблицей, указывающей пример другого набора параметров. В примере на Фиг. 34A, шаблон 1 (использующий как верхний блок, так и левый блок) применяется к «split_coding_unit_flag» и «skip_flag», шаблон 2 (использующий только левый блок) применяется к «intra_chroma_pred_mode», «cbf_luma», «cbf_cb», и «cbf_cr», а шаблон 3 (не использующий ни верхний блок, ни левый блок) применяется к «merge_flag», «ref_idx», «inter_pred_flag», «mvd_l0», «mvd_l1», «mvd_lc», и «no_residual_data_flag».
Фиг. 34B является таблицей, показывающей результат проверки, когда используется набор параметров, показанный на Фиг. 34A. Как указано на Фиг. 34B, использование набора параметров с Фиг. 34A может сократить использование памяти, при этом сдерживая уменьшение эффективности кодирования.
Несмотря на то, что устройство кодирования изображения и устройство декодирования изображения описаны в соответствии с Вариантами с 1 по 3 Осуществления настоящего изобретения, настоящее изобретение не ограничивается этими Вариантами Осуществления.
Например, по меньшей мере, часть устройства кодирования изображения, устройства декодирования изображения, и функций модификаций этих устройств в соответствии с Вариантами с 1 по 3 Осуществления могут быть объединены.
Кроме того, все описанные выше значения и логические значения являются пояснениями примеров для конкретного описания настоящего изобретения, и настоящее изобретение не ограничивается приведенными в качестве примера значениями.
Кроме того, разделение на функциональные блоки на структурных схемах является примерами. Следовательно, функциональные блоки могут быть реализованы в качестве одного функционального блока, один функциональный блок может быть разделен на множество функциональных блоков, и часть функций может быть переведена на другой функциональный блок. Кроме того, множество функциональных блоков, с похожими функциями, могут быть обработаны единым аппаратным обеспечением или программным обеспечением параллельно или с разделением по времени.
Очередности этапов способа кодирования изображения, выполняемого устройством кодирования изображения, и способа декодирования изображения, выполняемого устройством декодирования изображения, служат для конкретного описания настоящего изобретения, и могут быть очередностью отличной от вышеприведенных очередностей. Кроме того, часть этапов может выполняться одновременно (параллельно) с другими этапами.
(ВАРИАНТ 4 ОСУЩЕСТВЛЕНИЯ)
Обработка, описанная в каждом из Вариантов Осуществления, может быть легко реализована компьютерной системой посредством записи, на носитель записи, программы для реализации структуры способа кодирования движущегося изображения или способа декодирования движущегося изображения в Варианте Осуществления. Носитель записи может быть любым носителем записи, до тех пор, пока на нем может быть записана программа, таким как магнитный диск, оптический диск, магнитооптический диск, IC карта, и полупроводниковая память.
Ниже, будут описаны применения для способа кодирования движущегося изображения или способа декодирования движущегося изображения, описанных в каждом из Вариантов Осуществления, и использующая то же система.
Фиг. 37 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для предоставления услуг связи разделена на соты требуемого размера, и базовые станции с ex106 по ex110, которые являются фиксированными беспроводными станциями, размещены в каждой из сот.
Система ex100 предоставления контента соединена с устройствами, такими как компьютер ex111, персональный цифровой помощник ex112 (PDA), камера ex113, сотовый телефон ex114 и игровая машина ex115, через Интернет ex101, поставщика ex102 услуг Интернет, телефонную сеть ex104, как впрочем, и базовые станции с ex106 по ex110.
Тем не менее, конфигурация системы ex100 предоставления контента не ограничивается конфигурацией, показанной на Фиг. 37, и приемлема комбинация, в которой соединены любые из элементов. В дополнение, каждое из устройств может быть непосредственно соединено с телефонной сетью ex104, а не через базовые станции с ex106 по ex110, которые являются фиксированными беспроводными станциями. Кроме того, устройства могут быть взаимно соединены друг с другом через беспроводную связь малого радиуса действия и прочее.
Камера ex113, такая как цифровая видео камера, выполнена с возможностью захвата движущихся изображений. Камера ex116, такая как цифровая видео камера, выполнена с возможностью захвата как неподвижных изображения, так и движущихся изображений. Кроме того, сотовый телефон ex114 может быть таким, который отвечает любому из стандартов, таким как Глобальная Система Связи для Подвижных Объектов (GSM), Множественный Доступ с Кодовым Разделением (CDMA), Широкополосный Множественный Доступ с Кодовым Разделением (W-CDMA), Долгосрочное Развитие (LTE), и Высокоскоростной Пакетный Доступ (HSPA). В качестве альтернативы, сотовый телефон ex114 может быть Системой для Персональных Мобильных Телефонов (PHS).
В системе ex100 предоставления контента, сервер ex103 потоковой передачи соединен с камерой ex113 и прочими элементами через телефонную сеть ex104 и базовую станцию ex109, что обеспечивает возможность распространения передач в прямом эфире и прочего. Для такого распространения, контент (например, видео музыкальной передачи в прямом эфире), захватываемый пользователем при помощи камеры ex113, кодируется как описано выше в каждом из Вариантов Осуществления, и закодированный контент передается серверу ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет распространение потока принятых данных контента клиентам, по их запросам. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114, и игровую машину ex115, которые выполнены с возможностью декодирования вышеупомянутых закодированных данных. Каждое из устройств, которое приняло распространенные данные, декодирует и воспроизводит закодированные данные.
Захваченные данные могут кодироваться камерой ex113 или сервером ex103 потоковой передачи, который передает данные, или процессы кодирования могут совместно использоваться камерой ex113 и сервером ex103 потоковой передачи. Аналогичным образом, распределенные данные могут быть декодированы клиентами или сервером ex103 потоковой передачи, или процессы декодирования могут совместно использоваться клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и движущихся изображений, захваченные не только камерой ex113, но также камерой ex116, могут быть переданы серверу ex103 потоковой передачи посредством компьютера ex111. Процессы кодирования могут выполняться камерой ex116,компьютером ex111, или сервером ex103 потоковой передачи, или совместно использоваться ими.
Кроме того, как правило, компьютер ex111 и LSI ex500, включенная в каждое из устройств, выполняет такие процессы кодирования и декодирования. LSI ex500 может быть выполнена в виде одной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся изображений может быть интегрировано в некоторого типа носитель записи (такой как CD-ROM, гибкий диск, жесткий диск), который может быть считан компьютером ex111 и прочими, и процессы кодирования и декодирования могут выполняться при помощи программного обеспечения. Кроме того, когда сотовый телефон ex114 оборудован камерой, то могут быть переданы видеоданные, полученные камерой. Видеоданные являются данными, закодированными посредством LSI ex500, включенной в сотовый телефон ex114.
Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров, и может осуществлять децентрализацию данных и обрабатывать децентрализованные данные, записывать, или распространять данные.
Как описано выше, клиенты могут принимать и воспроизводить закодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, передаваемую пользователем, и воспроизводить закодированные данные в режиме реального времени в системе ex100 предоставления контента таким образом, что пользователь, не обладающий конкретными правами и оборудованием, может реализовать персональное вещание.
Настоящее изобретение не ограничивается вышеупомянутой системой ex100 предоставления контента, и, по меньшей мере, либо устройство кодирования движущегося изображения, либо устройство декодирования движущегося изображения, описанные в каждом из Вариантов Осуществления, могут быть встроены в систему ex200 цифрового вещания, как показано на Фиг. 38. В частности, вещательная станция ex201 осуществляет связь или передает, посредством радиоволн, вещательному спутнику ex202, мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных. Видеоданные являются данными, закодированными в соответствии со способом кодирования движущегося изображения, описанным в каждом из Вариантов Осуществления. По приему видеоданных, вещательный спутник ex202 передает радиоволны для вещания. Затем, антенна ex204 домашнего использования, выполненная с возможностью приема спутникового вещания, принимает радиоволны. Устройство, такое как телевизор (приемник) ex300 и телевизионная абонентская приставка ex217 (STB), декодирует принятые мультиплексированные данные и воспроизводит данные.
Кроме того, устройство ex218 чтения/записи, которое (i) считывает и декодирует мультиплексированные данные, записанные на носителе ex215 записи, таком как DVD и BD, или (ii) кодирует видео сигналы на носитель ex215 записи, и в некоторых случаях, записывает данные, полученные посредством мультиплексирования аудиоданных в закодированные данные, может включать в себя устройство декодирования движущегося изображения или устройство кодирования движущегося изображения, как показано в каждом из Вариантов Осуществления. В данном случае, воспроизводимые видео сигналы отображаются на мониторе ex219, и другое устройство или система может воспроизводить видео сигналы, используя носитель ex215 записи, на котором записаны мультиплексированные данные. Кроме того, также возможно реализовать устройство декодирования движущегося изображения в телевизионной абонентской приставке ex217, соединенной с кабелем ex203 применительно к кабельному телевидению или антенной ex204 применительно к спутниковому и/или наземному вещанию, с тем, чтобы отображать видео сигналы на мониторе ex219 телевизора ex300. Устройство декодирования движущегося изображения может быть включено не в телевизионную абонентскую приставку, а в телевизор ex300.
Фиг. 39 иллюстрирует телевизор (приемник) ex300, который использует способ кодирования движущегося изображения и способ декодирования движущегося изображения, описанные в Вариантах Осуществления. Телевизор ex300 включает в себя: тюнер ex301, который получает или предоставляет мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и видеоданных, через антенну ex204 или по кабелю ex203, и т.д., которые принимают вещание; модуль ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые будут поданы вовне; и модуль ex303 мультиплексирования/ демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в видеоданные и аудиоданные, или мультиплексирует видеоданные и аудиоданные, закодированные модулем ex306 обработки сигнала, в данные.
Кроме того, телевизор ex300 дополнительно включает в себя: модуль ex306 обработки сигнала, включающий в себя модуль ex304 обработки аудио сигнала и модуль ex305 обработки видео сигнала, которые декодируют аудиоданные и видеоданные и кодируют аудиоданные и видеоданные, соответственно; громкоговоритель ex307, который предоставляет декодированный аудио сигнал; и модуль ex309 вывода, включающий в себя модуль ex308 отображения, который отображает закодированный видео сигнал, такой как дисплей. Кроме того, телевизор ex300 включает в себя модуль ex310 управления, который управляет всеми и каждым составляющим элементом телевизора ex300, и модуль ex311 схемы подачи питания, которая подает питание каждому из элементов. Кроме модуля 312 ввода операции, модуль ex 317 интерфейса может включать в себя: модуль ex313 моста, который соединяется с внешним устройством, таким как устройство ex218 чтения/записи; модуль ex314 слота, для обеспечения подключения носителя ex216 записи, такого как SD карта; модуль ex315 драйвера, который будет подключен к внешнему носителю записи, такому как жесткий диск; и модем ex316, который будет подключен в телефонной сети. Здесь, носитель ex216 записи может электрическим образом записывать информацию, используя для хранения энергонезависимы/энергозависимый элемент полупроводниковой памяти. Составляющие элементы телевизора ex300 соединены друг с другом посредством синхронной шины.
Сначала, будет описана конфигурации, в которой телевизор ex300 декодирует мультиплексированные данные, полученные извне посредством антенны ex204 и прочих, и воспроизводит декодированные данные. В телевизоре ex300, по приему операции пользователя от пульта ex220 дистанционного управления и прочих, модуль ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные демодулированные модулем ex302 модуляции/демодуляции, под управлением модуля ex310 управления, включающего в себя CPU. Кроме того, модуль ex304 обработки аудио сигнала декодирует демультиплексированные аудиоданные, а модуль ex305 обработки видео сигнала декодирует демультиплексированные видеоданные, используя способ декодирования, описанный в каждом из Вариантов Осуществления, в телевизоре ex300. Модуль ex309 вывода предоставляет декодированный видео сигнал и аудио сигнал вовне. Когда модуль ex309 вывода предоставляет видео сигнал и аудио сигнал, сигналы могут быть временно сохранены в буферах ex318 и ex319, и прочих, таким образом, чтобы сигналы воспроизводились синхронизовано друг с другом. Кроме того, телевизор ex300 может считывать мультиплексированные данные не через вещание и прочее, а с носителей ex215 и ex216 записи, таких как магнитный диск, оптический диск, и SD карта. Далее, будет описана конфигурация, в которой телевизор ex300 кодирует аудио сигнал и видео сигнал, и передает данные вовне или записывает данные на носитель записи. В телевизоре ex300 и прочем, модуль ex304 обработки аудио сигнала кодирует аудио сигнал, а модуль ex305 обработки видео сигнала кодирует видео сигнал, под управлением модуля ex310 управления, используя способ кодирования изображения, как описано в каждом из Вариантов Осуществления. Модуль ex303 мультиплексирования/демультиплексирования мультиплексирует закодированный видео сигнала и аудио сигнал, и предоставляет результирующий сигнал вовне. Когда модуль ex303 мультиплексирования/демультиплексирования мультиплексирует видео сигнал и аудио сигнала, то сигналы могут быть временно сохранены в буферах ex320 и ex321, и прочих таким образом, чтобы сигналы воспроизводились синхронизовано друг с другом. Здесь, буферов c ex318 по ex321 может быть несколько, как иллюстрируется, или в телевизоре ex300 может совместно использоваться, по меньшей мере, один буфер. Кроме того, данные могут сохраняться в буфер, отличный от буферов с ex318 по ex321 таким образом, чтобы избежать переполнения и недогрузки системы между модулем ex302 модуляции/демодуляции и модулем ex303 мультиплексирования/демультиплексирования, например.
Кроме того, телевизор ex300 может включать в себя конфигурацию для приема AV ввода от микрофона или камеры отличную от конфигурации для получения аудио и видео данных от вещания или носителя записи, и может кодировать полученные данные. Несмотря на то, что телевизор ex300 может кодировать, мультиплексировать, и предоставлять данные вовне в описании, он может быть выполнен с возможностью выполнения не всех процессов, а выполнен только с возможностью приема, декодирования, и предоставления данных вовне.
Кроме того, когда устройство ex218 чтения/записи считывает или записывает мультиплексированные данные с или на носитель записи, одно из устройств: телевизор ex300 и устройство ex218 чтения/записи может декодироваться или кодировать мультиплексированные данные, и телевизор ex300 и устройство ex218 чтения/записи могут совместно использовать декодирование или кодирование.
В качестве примера, Фиг. 40 иллюстрирует конфигурацию модуля ex400 записи/воспроизведения информации, когда данные считываются или записываются с или на оптический диск. Модуль ex400 записи/воспроизведения информации включает в себя составляющие элементы с ex401 по ex407, которые будут описаны ниже. Оптическая головка ex401 испускает лазерное пятно на поверхность для записи носителя записи ex215, который является оптическим диском, чтобы записать информацию, и обнаруживает отраженный свет с поверхности для записи носителя ex215 записи, чтобы считать информацию. Модуль ex402 записи модуляции электрическим образом приводит в действие полупроводниковый лазер, включенный в оптическую головку ex401, и модулирует свет лазера в соответствии с записываемыми данными. Модуль ex403 демодуляции воспроизведения усиливает сигнал воспроизведения, полученный посредством обнаружения электрическим образом отраженного света от поверхности для записи, используя фотодетектор, включенный в оптическую головку ex401, и демодулирует сигнал воспроизведения посредством разделения компонентов сигнала, записанных на носителе ex215 записи, чтобы воспроизвести необходимую информацию. Буфер ex404 временно сохраняет информацию, которая будет записана на носитель ex215 записи и информацию, воспроизводимую с носителя ex215 записи. Мотор ex405 диска вращает носитель ex215 записи. Модуль ex406 сервоуправления перемещает оптическую головку ex401 на предварительно определенную информационную дорожку, при этом управляя скоростью вращения мотора ex405 диска таким образом, чтобы сопровождать лазерное пятно. Модуль ex407 управления системой управляет всем модулем ex400 записи/воспроизведения информации. Процессы чтения и записи могут быть реализованы модулем ex407 управления системой, используя различную информацию, хранящуюся в буфере ex404, и формируя и добавляя новую информации при необходимости, и посредством модуля ex402 записи модуляции, модуля ex403 демодуляции воспроизведения, и модуля ex406 сервоуправления, которые записывают и воспроизводят информацию посредством оптической головки ex401, при этом работая координированным образом. Модуль ex407 управления системой включает в себя, например, микропроцессор, и исполняет обработку, предписывая компьютеру выполнение программы для чтения и записи.
Несмотря на то, что оптическая головка ex401 испускает лазерное пятно в описании, она может выполнять высокоплотную запись, используя свет ближнего поля.
Фиг. 41 схематично иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности для записи носителя ex215 записи, сформированы направляющие канавки, информационная дорожка ex230 записывает, заранее, информацию адреса, указывающую абсолютную позицию на диске в соответствии с изменением по форме направляющих канавок. Информация адреса включает в себя информацию для определения позиций блоков ex231 записи, которые являются единицей для данных записи. Устройство, которое записывает и воспроизводит данные, воспроизводит информационную дорожку ex230 и считывает информацию адреса таким образом, чтобы определить позиции блоков записи. Кроме того, носитель ex215 записи включает в себя область ex233 записи данных, область ex232 внутренней окружности, и область ex234 внешней окружности. Область ex233 записи данных является областью для использования при записи данных пользователя. Область 232 внутренней окружности и область ex234 внешней окружности, которые находятся внутри и по наружи относительно области ex233 записи данных, соответственно, служат для конкретного использования, за исключением записи данных пользователя. Модуль 400 записи/воспроизведения информации считывает и записывает закодированные аудиоданные, закодированные видеоданные, или мультиплексированные данные, полученные посредством мультиплексирования закодированных аудиоданных и закодированных видеоданных, с и на носитель ex215 записи.
Несмотря на то, что в качестве примера в описании описывается оптический диск со слоем, такой как DVD или BD, оптический диск не ограничивается таковым, и может быть оптическим диском с многослойной структурой и выполненным с возможностью записи на части отличной от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, такой как запись информации, при помощи света цветов с разными длинами волн в одной и той же части оптического диска и записи информации с разными слоями под разными углами.
Кроме того, автомобиль ex210 с антенной ex205 может принимать данные от спутника ex202 и прочих, и воспроизводить видео на устройстве отображения, таком как система ex211 навигации автомобиля, установленной в автомобиле ex210, в системе ex200 цифрового вещания. Здесь, конфигурация системы ex211 навигации автомобиля будет такой, например, которая включает в себя модуль приема GPS в конфигурации, иллюстрируемой на Фиг. 39. То же будет справедливо и для конфигурации компьютера ex111, сотового телефона ex114, и прочего.
Фиг. 42A иллюстрирует сотовый телефон ex144, который использует способ кодирования движущегося изображения и способ декодирования движущегося изображения, описанные в каждом из Вариантов Осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; модуль ex365 камеры, выполненный с возможностью захвата движущихся и неподвижных изображений; и модуль ex358 отображения, такой как жидкокристаллический дисплей для отображении данных, таких как декодированное видео, захваченное модулем ex365 камеры или принятое через антенну ex350. Сотовый телефон ex114 дополнительно включает в себя: модуль основного корпуса, включающий в себя набор клавиш ex366 операции; модуль ex357 вывода аудио, такой как громкоговоритель для вывода аудио; модуль ex356 ввода аудио, такой как микрофон для ввода аудио; модуль памяти ex367 для хранения захваченного видео или неподвижных картинок, записанного аудио, закодированных или декодированных данных принятого видео, неподвижных изображений, сообщений электронной почты, или прочего; и модуль ex364 слота, который является модулем интерфейса для носителя записи, который хранит данные таким же образом как модуль ex367 памяти.
Далее, пример конфигурации сотового телефона ex114 будет описан со ссылкой на Фиг. 42B. В сотовом телефоне ex114, основной модуль ex360 управления, разработанный для управления всеми и каждым модулем основного корпуса, включающим в себя модуль ex358 отображения, как впрочем, и клавиши ex366 операции, непосредственно соединен, через синхронную шину ex370, с модулем ex361 схемы подачи питания, модулем ex362 управления вводом операции, модулем ex355 обработки видео сигнала, модулем ex363 интерфейса камеры, модулем ex359 управления жидкокристаллическим дисплеем (LCD), модулем ex352 модуляции/демодуляции, модулем ex353 мультиплексирования/демультиплексирования, модулем ex354 обработки аудио сигнала, модулем ex364 слота, и модулем ex367 памяти.
Когда включается клавиша завершения вызова или клавиша питания посредством операции пользователя, то модуль ex361 схемы подачи питания подает соответствующим модулям питание от блока батарей, с тем чтобы активировать сотовый телефон ex114.
В сотовом телефоне ex114, модуль ex354 обработки аудио сигнала преобразует аудио сигналы, собранные модулем ex356 ввода аудио в режиме преобразования речи в цифровые аудио сигналы под управлением основного модуля ex360 управления, включающего в себя CPU, ROM, и RAM. Затем, модуль ex352 модуляции/демодуляции выполняет обработку расширенного спектра над цифровыми аудио сигналами, и модуль ex351 передачи и приема выполняет цифроаналоговое преобразование и частотное преобразование над данными, с тем, чтобы передать результирующие данные через антенну ex350. Также, в сотовом телефоне ex114, модуль ex351 передачи и приема усиливает данные, принятые посредством антенны ex350 в режиме преобразования речи и выполняет частотное преобразование и аналого-цифровое преобразование над данными.
Затем, модуль ex353 модуляции/демодуляции выполняет обратную обработку расширенного спектра над данными, и модуль ex354 обработки аудио сигнала преобразует их в аналоговые аудио сигналы, с тем, чтобы вывести их через модуль ex357 вывода аудио. Кроме того, когда в режиме передачи данных передается сообщение электронной почты, то текстовые данные сообщения электронной почты, введенные посредством взаимодействия с клавишами ex366 операции и прочими элементами основного корпуса, отправляются основному модулю ex360 управления через модуль ex362 управления вводом операции. Основной модуль ex360 управления предписывает модулю ex352 модуляции/демодуляции выполнить обработку расширенного спектра над текстовыми данными, и модуль ex351 передачи и приема выполняет цифроаналоговое преобразование и частотное преобразование над результирующими данными, чтобы передать данные базовой станции ex110 через антенну ex350. Когда сообщение электронной почты принимается, то над принятыми данными выполняется обработка, которая по существу, является обратной для обработки по передачи сообщения электронной почты, и результирующие данные предоставляются модулю ex358 отображения.
Когда передается или передаются видео, неподвижные изображения, или видео и аудио в режиме передачи данных, то модуль ex355 обработки видео сигнала сжимает видео сигналы, подаваемые модулем ex365 камеры, используя способ кодирования движущегося изображения, показанный в каждом из Вариантов Осуществления, и передает закодированные видеоданные модулю ex353 мультиплексирования/демультиплексирования. В противоположность, во время захвата модулем ex365 камеры видео, неподвижных изображений, и прочего, модуль ex354 обработки аудио сигнала кодирует аудио сигналы, собранные модулем ex356 ввода аудио, и передает закодированные аудиоданные модулю ex353 мультиплексирования/демультиплексирования.
Модуль ex353 мультиплексирования/демультиплексирования мультиплексирует закодированные видеоданные, поданные модулем ex355 обработки видео сигнала, и закодированные аудиоданные, поданные модулем ex354 обработки аудио сигнала, используя предварительно определенный способ. Затем, модуль ex352 модуляции/демодуляции выполняет обработку расширенного спектра над мультиплексированными данными, и модуль ex351 передачи и приема выполняет цифроаналоговое преобразование и частотное преобразование над данными, с тем, чтобы передать результирующие данные через антенну ex350.
При приеме данных видео файла, который привязан ссылкой к web-странице, и прочему в режиме передачи данных или при приеме сообщения электронной почты с вложенным видео и/или аудио, то для того, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, модуль ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные на битовый поток видеоданных и битовый поток аудиоданных, и подает модулю ex355 обработки видео сигнала закодированные видеоданные и модулю ex354 обработки аудио сигнала закодированные аудиоданные, по синхронной шине ex370. Модуль ex355 обработки видео сигнала декодирует видео сигнал, используя способ декодирования движущегося изображения, соответствующий способу кодирования движущегося изображения, показанному в каждом из вариантов Осуществления, и затем модуль ex358 отображения отображает, например, видео и неподвижные изображения, включенные в видео файл, связанный ссылкой с web-страницей через модуль ex359 управления LCD. Кроме того, модуль ex354 обработки аудио сигнала декодирует аудио сигнал, и модуль ex357 вывода аудио предоставляет аудио.
Кроме того, аналогично телевизору ex300, терминал, такой как сотовый телефон ex114, очевидно имеет 3 типа реализации конфигураций, включающих в себя не только (i) терминал передачи и приема, включающий в себя как устройство кодирования, так и устройство декодирования, но также (ii) терминал передачи, включающий в себя только устройство кодирования, и (iii) терминал приема, включающий в себя только устройство декодирования. Несмотря на то, что в описании система ex200 цифрового вещания принимает и передает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданных, мультиплексированными данными могут быть данные, полученные посредством мультиплексирования не аудиоданных, а символьных данных, связанных с видео в видеоданных, и могут быть не мультиплексированными данными, а самими видеоданными.
По существу, способ кодирования движущегося изображения и способ декодирования движущегося изображения в каждом из Вариантов Осуществления может быть использован в любом из описанных устройств и системах. Следовательно, могут быть получены преимущества, описанные в каждом из Вариантов Осуществления.
Кроме того, настоящее изобретение не ограничивается Вариантами Осуществления, и различные модификации и ревизии возможны, не отступая от объема настоящего изобретения.
(ВАРИАНТ 5 ОСУЩЕСТВЛЕНИЯ)
Видеоданные могут быть сформированы посредством переключения, при необходимости, между (i) способом кодирования движущегося изображения или устройством кодирования движущегося изображения, показанными в каждом из Вариантов Осуществления, и (ii) способом кодирования движущегося изображения или устройством кодирования движущегося изображения в соответствии другим стандартом, таким как MPEG-2, MPEG-AVC, и VC-1.
Здесь, когда формируется множество видеоданных, которые соответствуют разным стандартам и затем декодируются, то требуется выбирать способы декодирования соответствующие разным стандартам. Тем не менее, поскольку не может быть обнаружено то, какому стандарту соответствуют каждые из множества видео данных, которые будут декодированы, то существует проблема, состоящая в том, что не может быть выбран соответствующий способ декодирования.
Для решения проблемы, мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и прочего в видеоданных, имеют структуру, включающую в себя информацию идентификации, указывающую на то, какому стандарту соответствуют видеоданные. Здесь далее будет описана конкретная структура мультиплексированных данных, включающих в себя видеоданные, сформированные способом кодирования движущегося изображения и посредством устройства кодирования движущегося изображения, показанным в каждом из Вариантов Осуществления. Мультиплексированные данные являются цифровым потоком в формате Транспортного Потока MPEG-2.
Фиг. 43 иллюстрирует структуру мультиплексированных данных. Как иллюстрируется на Фиг. 43, мультиплексированные данные могут быть получены посредством мультиплексирования, по меньшей мере, одного из видео потока, аудио потока, потока презентационной графики (PG), и потока интерактивной графики. Видео поток представляет собой первичное видео и вторичное видео фильма, аудио поток (IG) представляет собой первичную аудио часть и вторичную аудио часть, которая будет смикширована с первичной аудио частью, а поток презентационной графики, представляющей собой субтитры фильма. Здесь, первичным видео является нормальное видео, которое будет отображено на экране, а вторичным видео является видео, которое будет отображено в меньшем окне в основном видео. Кроме того, поток интерактивной графики представляет собой интерактивный экран, который будет сформирован посредством организации компонентов GUI на экране. Видео поток кодируется посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения, показанных в каждом из Вариантов Осуществления, или посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения в соответствии с обычным стандартом, таким как MPEG-2, MPEG4-AVC, и VC-1. Аудио поток кодируется в соответствии со стандартом, таким как Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD, и линейный PCM.
Каждый поток, включенный в мультиплексированные данные, идентифицируется посредством PID. Например, 0x1011 выделен видео потоку, который будет использован для видео фильма, с 0x1100 по 0x111F выделены аудио потокам, с 0x1200 по 0x121F выделены потокам презентационной графики, c 0x1400 по 0x141F выделены потокам интерактивной графики, с 0x1B00 по 0x1B1F выделены видео потокам, которые будут использованы для вторичного видео фильма, и c 0x1A00 по 0x1A1F выделены аудио потокам, которые будут использованы для вторичного видео, чтобы микшироваться в первичным аудио.
Фиг. 44 схематично иллюстрирует то, каким образом мультиплексируются данные. Сначала, видео поток ex235, составленный из видео кадров, и аудио поток ex238, составленный из аудио кадров, преобразуются в поток пакетов ex236 PES и поток пакетов ex239 PES, и далее в пакеты ex237 TS и пакеты ex240 TS, соответственно. Аналогичным образом, данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразуются в поток пакетов ex242 PES и поток пакетов ex245 PES, и далее в пакеты ex243 TS и пакеты ex246 TS, соответственно. Эти пакеты TS мультиплексируются в поток, чтобы получить мультиплексированные данные ex247.
Фиг. 45 иллюстрирует более подробно то, каким образом видео поток сохраняется в потоке пакетов PES. Первая полоса на Фиг. 45 показывает поток видео кадров в видео потоке. Вторая полоса показывает поток пакетов PES. Как указано стрелками, обозначенными как yy1, yy2, yy3, и yy4 на Фиг. 45, видео поток разделен на картинки, такие как I картинки, B картинки, и P картинки, каждая из которых является единицей представления видео, и картинки хранятся в полезной нагрузке каждого из пакетов PES. Каждый из пакетов PES имеет заголовок PES, и заголовок PES хранит Временную Метку Представления (PTS), указывающую время отображения картинки, и Временную Метку Декодирования (DTS), указывающую время декодирования картинки.
Фиг. 46 иллюстрирует формат пакетов TS, которые будут в итоге записаны в мультиплексированных данных. Каждый из пакетов TS является 188-байтным пакетом фиксированной длины, включающим в себя 4-байтный заголовок TS с информацией, такой как PID, для идентификации потока, и 184-байтной TS полезной нагрузкой для хранения данных. Пакеты PES делятся, и сохраняются в полезных нагрузках TS, соответственно. Когда используется BD ROM, то каждому из пакетов TS задается 4-байтный TP_Extra_Header (Дополнительный_Заголовок_TP), тем самым приводя к 192-байтным исходным пакетам. Исходные пакеты записываются в мультиплексированные данные. TP_Extra_Header хранит информацию, такую как Arrival_Time_Stamp (ATS) (Временная_Метка_Прибытия). ATS показывает время начала пересылки, в которое должны быть выполнена пересылка каждого из пакетов TS фильтру PID. Номера, увеличивающиеся с головной части мультиплексированных данных именуются номерами исходного пакета (SPN), как показано в нижней части Фиг. 46.
Каждый из пакетов TS, включенный в мультиплексированные данные, включает в себя не только потоки, аудио, видео, субтитров и прочего, но также и Таблицу Распределения Программ (PAT), Таблицу Карты Программы (PMT), и Поле Эталонных Часов (PCR). PAT показывает, что показывает PID в PMT, используемой в мультиплексированных данных, и PID самой PMT, зарегистрирован как ноль. PMT хранит PID потоков видео, аудио, субтитров и прочего, включенных в мультиплексированные данные, и информацию атрибута потоков, соответствующих PID. PMT также имеет разные дескрипторы, касающиеся мультиплексированных данных. Дескрипторы имеют информацию, такую как информацию управления копией, показывающую разрешено или нет копирование мультиплексированных данных. PCR хранит временную информацию STC, соответствующую ATS, показывающей, когда выполнена пересылка PCR пакета декодеру, для того, чтобы добиться синхронизации между Часами Времени Прибытия (ATC), которые являются временной осью ATS, и Часами Системного Времени (STC), которые являются временной осью PTS и DTS.
Фиг. 47 подробно иллюстрирует структуру данных PMT. Заголовок PMT располагается наверху PMT. Заголовок PMT описывает длину данных, включенных в PMT и прочее. Множество дескрипторов, которые относятся к мультиплексированным данным, располагается после заголовка PMT. Информация, такая как информация управления копией, описывается в дескрипторах. После дескрипторов, располагается множество фрагментов информации потока, касающихся потоков, включенных в мультиплексированные данные. Каждый фрагмент информации потока включает в себя дескрипторы потока, каждый описывающий информацию, такую как тип потока для идентификации кодека сжатия потока, PID потока, и информацию атрибута потока (такую как частота кадров или соотношение сторон). Количество дескрипторов потока равно количеству потоков в мультиплексированных данных.
Когда мультиплексированные данные записываются на носитель записи и прочие, они записываются совместно с файлами информации мультиплексированных данных.
Каждый из файлов информации мультиплексированных данных является информацией управления мультиплексированными данными, как показано на Фиг. 48. Файлы информации мультиплексированных данных находятся в соответствии один к одному с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибута потока, и входную карту.
Как иллюстрируется на Фиг. 48, информация мультиплексированных данных включает в себя системную скорость, время начала воспроизведения, и время окончания воспроизведения. Системная скорость указывает максимальную скорость пересылки, с которой системный целевой декодер, который будет описан позже, пересылает мультиплексированные данные фильтру PID. Интервалы ATS, включенных в мультиплексированные данные, устанавливаются не выше системной скорости. Время начала воспроизведения указывает PTS в видео кадре в головной части мультиплексированных данных. Интервал одного кадра добавляется к PTS в видео кадре в конце мультиплексированных данных, и PTS принимается за время окончания воспроизведения.
Как показано на Фиг. 49, фрагмент информации атрибута регистрируется в информации атрибута потока, для каждого PID каждого потока, включенного в мультиплексированные данные. Каждый фрагмент информации атрибута имеет разную информацию в зависимости от того, является ли соответствующий поток видео потоком, аудио потоком, потоком презентационной графики, или потоком интерактивной графики. Каждый фрагмент информации атрибута видео потока несет информацию, включающую в себя, какой вид кодека сжатия используется для сжатия видео потока, и разрешение, соотношение сторон и частоту кадра фрагментов данных картинки, которые включены в видео поток. Каждый фрагмент информации атрибута аудио потока несет информацию, включающую в себя, какой вид кодека сжатия используется для сжатия аудио потока, как много каналов включено в аудио поток, какой язык поддерживает аудио поток, и насколько высока частота дискретизации. Информация атрибута видео потока и информация атрибута аудио потока используются для инициализации декодера до того как проигрыватель воспроизведет информацию.
В Варианте 5 Осуществления, мультиплексированные данные, которые будут использованы, соответствуют типу потока, включенному в PMT. Кроме того, когда мультиплексированные данные записываются на носитель записи, используется информация атрибута видео потока, включенная в информацию мультиплексированных данных. В частности, способ кодирования движущегося изображения или устройство кодирования движущегося изображения, описанные в каждом из Вариантов Осуществления, включает в себя этап или модуль для выделения уникальной информации, указывающей видеоданные, сформированные способом кодирования движущегося изображения или устройством кодирования движущегося изображения в каждом из Вариантов Осуществления, в типе потока, который включается в PMT или информацию атрибута видео потока. При помощи структуры, видеоданные, сформированные посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения в каждом из Вариантов Осуществления, можно отличить от видеоданных, которые соответствуют другому стандарту.
Кроме того, Фиг. 50 иллюстрирует этапы способа декодирования движущегося изображения в соответствии с Вариантом 5 Осуществления. На Этапе exS100, из мультиплексированных данных получают тип потока, включенный в PMT или информацию атрибута видео потока. Далее, на Этапе exS101, определяется, указывает или нет тип потока или информация атрибута видео потока на то, что мультиплексированные данные сформированы посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения в каждом из Вариантов Осуществления. Когда определяется, что тип потока или информация атрибута видео потока указывает то, что мультиплексированные данные сформированы посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения в каждом из Вариантов Осуществления, на Этапе exS102, тип потока или информация атрибута видео потока декодируется посредством способа декодирования движущегося изображения в каждом из Вариантов Осуществления. Кроме того, когда тип потока или информация атрибута видео потока указывает соответствие обычным стандартам, таким как MPEG-2, MPEG4-AVC, и VC-1, на Этапе exS103, то тип потока или информация атрибута видео потока декодируется посредством способа декодирования движущегося изображения в соответствии с обычными стандартами.
По существу, выделение нового уникального значения типу потока или информации атрибута видео потока обеспечивает возможность определения того, может или нет способ декодирования движущегося изображения или устройство декодирования движущегося изображения, которое описано в каждом из Вариантов Осуществления, выполнить декодирование. Даже при вводе мультиплексированных данных, которые соответствуют другому стандарту, может быть выбран соответствующий способ декодирования или устройство. Следовательно, способ или устройство кодирования движущегося изображения, или способ или устройство декодирования движущегося изображения в Варианте 5 Осуществления могут быть использованы в описанных выше устройствах и системах.
(ВАРИАНТ 6 ОСУЩЕСТВЛЕНИЯ)
Каждый из способа кодирования движущегося изображения, устройства кодирования движущегося изображения, способа декодирования движущегося изображения, и устройства декодирования движущегося изображения в каждом из Вариантов Осуществления, как правило, выполняется в виде интегральной микросхемы или Большой Интегральной Микросхемы (LSI). В качестве примера LSI, Фиг. 51, иллюстрирует конфигурацию LSI ex500, которая выполнена на одной микросхеме. LSI ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508, и ex509, которые будут описаны ниже, и элементы соединены друг с другом посредством шины ex510. Модуль ex505 схемы подачи питания активируется посредством подачи каждому из элементов питания, когда включается модуль ex505 схемы подачи питания.
Например, при выполнении кодирования, LSI ex500 принимает AV сигнал от микрофона ex117, камеры ex113, и прочих посредством модуля ex509 IO AV под управлением модуля ex501 управления, включающего в себя CPU ex502, контроллер ex503 памяти, контроллер ex504 потока, и модуль ex512 управления частотой возбуждения. Принятый AV сигнал временно сохраняется во внешней памяти ex511, такой как SDRAM. Под управлением модуля ex501 управления, хранящиеся данные сегментируются на части данных в соответствии с объемом обработки и скоростью, с которой должна быть выполнена передача модулю ex507 обработки сигнала. Затем, модуль ex507 обработки сигнала кодирует аудио сигнал и/или видео сигнал. Здесь, кодирование видео сигнала является кодированием, которое описано в каждом из Вариантов Осуществления. Кроме того, модуль ex507 обработки сигнала иногда мультиплексирует закодированные аудиоданные и закодированные видеоданные, и модуль ex506 IO потока предоставляет мультиплексированные данные вовне. Предоставленные мультиплексированные данные передаются базовой станции ex107, или записываются на носители ex215 записи. Когда мультиплексируются наборы данных, то наборы данных должны временно сохраняться в буфере ex508 с тем, чтобы наборы данных были синхронизированы друг с другом.
Несмотря на то, что память ex511 является элементом вне LSI ex500, она может быть включена в LSI ex500. Буфер ex508 не ограничивается одним буфером, и может быть составлен из буферов. Кроме того, LSI ex500 может быть выполнена на одной микросхеме или множестве микросхем.
Кроме того, несмотря на то, что модуль ex501 управления включает в себя CPU ex502, контроллер ex503 памяти, контроллер ex504 потока, модуль ex512 управления частотой возбуждения, конфигурация модуля ex501 управления этим не ограничивается. Например, модуль ex507 обработки сигнала может дополнительно включать в себя CPU. Включение другого CPU в модуль ex507 обработки сигнала может улучшить скорость обработки. Кроме того, в качестве другого примера, CPU ex502 может служить в качестве или быть частью модуля ex507 обработки сигнала, и, например, может включать в себя модуль обработки аудио сигнала. В таком случае, модуль ex501 управления включает в себя модуль ex507 обработки сигнала или CPU ex502, включающий часть модуля ex507 обработки сигнала.
Используемым здесь названием является LSI, однако она также может именоваться IC, системной LSI, супер LSI, или ультра LSI в зависимости от степени интеграции.
Более того, способы реализации интеграции не ограничиваются LSI, и специальная схема или процессор общего назначения и т.д. может обеспечить интеграцию. Программируемая Вентильная Матрица (FPGA), которая может быть запрограммирована после изготовления LSI или процессора с возможностью переконфигурирования, который обеспечивает возможность переконфигурирования соединения или конфигурации LSI, может быть использована для этих же целей.
В будущем, с развитием полупроводниковых технологий, совершенно новая технология может заменить LSI. Интеграция функциональных блоков может быть реализована, используя такую технологию. Очевидно также, что настоящее изобретение может быть применено к биотехнологиям.
(ВАРИАНТ 7 ОСУЩЕСТВЛЕНИЯ)
Когда видеоданные декодируются посредством способа декодирования движущегося изображения или посредством устройства декодирования движущегося изображения, описанных в каждом из Вариантов Осуществления, в сравнении с тем, когда декодируются видео данные, которые соответствуют обычному стандарту, такому как MPEG-2, MPEG4-AVC, и VC-1, объем вычисления очевидно увеличивается. Следовательно, требуется установить частоту возбуждения LSI ex500 выше, чем у CPU ex502, который будет использоваться при декодировании видеоданных в соответствии с обычным стандартом. Тем не менее, когда частота возбуждения устанавливается выше, существует проблема, состоящая в том, что увеличивается энергопотребление.
Для решения проблемы, устройство декодирования движущегося изображения, такое как телевизор ex300 и LSI ex500, выполнено с возможностью определения того, к какому стандарту относится видео, и переключения между частотами возбуждения в соответствии с определенным стандартом. Фиг. 52 иллюстрирует конфигурацию ex800 в Варианте 7 Осуществления. Модуль ex803 переключения частоты возбуждения устанавливает частоту возбуждения равную более высокой частоте возбуждения, когда видеоданные сформированы способом кодирования движущегося изображения или устройством кодирования движущегося изображения, описанными в каждом из Вариантов Осуществления. Затем, модуль ex803 переключения частоты возбуждения предписывает модулю ex801 обработки декодирования, который исполняет способ декодирования движущегося изображения, описанный в каждом из Вариантов Осуществления, декодировать видеоданные. Когда видеоданные соответствуют обычному стандарту, модуль ex803 переключения частоты возбуждения устанавливает частоту возбуждения равной более низкой частоте возбуждения, чем та, что у видеоданных, сформированных посредством способа кодирования движущегося изображения или устройства кодирования движущегося изображения, описанных в каждом из Вариантов Осуществления. Затем, модуль ex803 переключения частоты возбуждения предписывает модулю ex802 обработки декодирования, который соответствует обычному стандарту, декодировать видеоданные.
В частности, модуль ex803 переключения частоты возбуждения включает в себя CPU ex502 и модуль ex512 управления частотой возбуждения на Фиг. 51. Здесь, каждый из модуля ex801 обработки декодирования, который исполняет способ декодирования движущегося изображения, описанный в каждом из Вариантов Осуществления, и модуль ex802 обработки декодирования, который соответствует обычному стандарту, соответствует модулю ex507 обработки сигнала на Фиг. 51. CPU ex502 определяет, к какому стандарту относятся видеоданные. Затем, модуль ex512 управления частотой возбуждения определяет частоту возбуждения на основании сигнала от CPU ex502. Кроме того, модуль ex507 обработки сигнала декодирует видеоданные на основании сигнала от CPU ex502. Например, очевидно использование информации идентификации, описанной в Варианте 5 Осуществления, для идентификации видеоданных. Информация идентификации не ограничивается той, что описана в Варианте 5 Осуществления, и может быть любой информацией, до тех пор, пока информация указывает то, какому стандарту соответствуют видеоданные. Например, когда то, какому стандарту соответствуют видеоданные, может быть определено на основании внешнего сигнала для определения того, что видеоданные используются для телевизора или диска, и т.д., то определение может быть выполнено на основании такого внешнего сигнала. Кроме того, CPU ex502 выбирает частоту возбуждения на основании, например, поисковой таблицы, в которой стандарты видеоданных связаны с частотами возбуждения, как показано на Фиг. 54. Частота возбуждения может быть выбрана посредством хранения поисковой таблицы в буфере ex508 и внешней памяти LSI и с помощью обращения к поисковой таблице посредством CPU ex502.
Фиг. 53 иллюстрирует этапы для исполнения способа в Варианте 7 Осуществления. Сначала, на Этапе exS200, модуль ex507 обработки сигнала получает информацию идентификации из мультиплексированных данных. Далее, на Этапе exS201, CPU ex502 определяет на основании информации идентификации, сформированы или нет видеоданные посредством способа кодирования и устройства кодирования, описанных в каждом из Вариантов Осуществления. Когда видеоданные сформированы посредством способа кодирования и устройства кодирования, описанных в каждом из Вариантов Осуществления, на Этапе exS202, CPU ex502 передает сигнал для установки частоты возбуждения равной более высокой частоте возбуждения модулю ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения устанавливает частоту возбуждения раной более высокой частоте возбуждения. С другой стороны, когда информация идентификации указывает то, что видеоданные соответствуют обычному стандарту, такому как MPEG-2, MPEG4-AVC, и VC-1, на Этапе exS203, CPU ex502 передает сигнал для установки частоты возбуждения равной более низкой частоте возбуждения модулю ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения устанавливает частоту возбуждения равной более низкой частоте возбуждения, чем та, что используется в случае, где видеоданные сформированы посредством способа кодирования и устройства декодирования, описанных в каждом из Вариантов Осуществления.
Кроме того, наряду с переключением частот возбуждения, эффект энергосбережения может быть улучшен посредством изменения напряжения, подаваемого на LSI ex500 или устройство, включающее в себя LSI ex500. Например, когда частота возбуждения устанавливается равной более низкому значению, напряжение, подаваемое на LSI ex500 или устройство, включающее в себя LSI ex500, очевидно устанавливается равным напряжению, которое ниже того, что используется в случае, когда частота возбуждения установлена равной более высокому значению.
Кроме того, когда объем вычислений для декодирования больше, частота возбуждения может быть установлена равной более высокому значению, а когда объем вычислений для декодирования меньше, частота возбуждения может быть установлена равной более низкому значению, в качестве способа для установки частоты возбуждения. Следовательно, способ установки не ограничивается тем, что описаны выше. Например, когда объем вычислений для декодирования видеоданных соответствующих MPEG4-AVC больше объема вычислений для декодирования видеоданных, сформированных посредством способа кодирования движущегося изображения и устройства кодирования движущегося изображения, описанных в каждом из Вариантов Осуществления, то частота возбуждения очевидно устанавливается в обратном порядке по отношению к описанной выше установке.
Кроме того, способ для установки частоты возбуждения не ограничивается способом для установки частоты возбуждения в более низкое значение. Например, когда информация идентификации указывает то, что видеоданные сформированы посредством способа кодирования движущегося изображения и устройства кодирования движущегося изображения, описанных в каждом из Вариантов Осуществления, то напряжение, подаваемое на LSI ex500 или устройство, включающее в себя LSI ex500, очевидно устанавливается в более высокое значение. Когда информация идентификации указывает то, что видеоданные соответствуют обычному стандарту, такому как MPEG-2, MPEG4-AVC, и VC-1, то напряжение, подаваемое на LSI ex500 или устройство, включающее в себя LSI ex500, очевидно устанавливается в более низкое значение. В качестве другого примера, когда информация идентификации указывает то, что видеоданные сформированы посредством способа кодирования движущегося изображения и устройства кодирования движущегося изображения, описанными в каждом из Вариантов Осуществления, то питание CPU ex502 наверное не должно быть приостановлено. Когда информация идентификации указывает то, что видеоданные соответствуют обычному стандарту, такому как MPEG-2, MPEG4-AVC, и VC-1, то питание CPU ex502 очевидно приостанавливается на заданное время, поскольку CPU ex502 имеет дополнительную емкость обработки. Даже когда информация идентификации указывает то, что видеоданные сформированы посредством способа кодирования движущегося изображения и устройства кодирования движущегося изображения, описанных в каждом из Вариантов Осуществления, в случае, где CPU ex502 может иметь задержку времени, питание CPU ex502 очевидно приостанавливается на заданное время. В таком случае, время приостановки очевидно устанавливается короче того, что используется в случае, когда информация идентификации указывает то, что видеоданные соответствуют обычному стандарту, такому как MPEG-2, MPEG4-AVC, и VC-1.
Соответственно, эффект энергосбережения может быть улучшен посредством переключения между частотами возбуждения в соответствии со стандартом, которому соответствуют видеоданные. Кроме того, когда LSI ex500 или устройство, включающее в себя LSI ex500, питается от батареи, то время работы от батареи может быть увеличено с помощью эффекта энергосбережения.
(ВАРИАНТ 8 ОСУЩЕСТВЛЕНИЯ)
Существуют случаи, где множество видеоданных, которые соответствуют разным стандартам, предоставляются устройствам и системам, таким как телевизор и сотовый телефон. Чтобы обеспечить декодирование множества видеоданных, которые соответствуют разным стандартам, модуль ex507 обработки сигнала LSI ex500 должен соответствовать разным стандартам. Тем не менее, встают проблемы увеличения масштаба схемы LSI ex500 и увеличения стоимости, при индивидуальном использовании модулей ex507 обработки сигнала, которые соответствуют соответствующим стандартам.
Для решения проблемы, предлагается конфигурация, в которой модуль обработки декодирования для реализации способа декодирования движущегося изображения, описанного в каждом из Вариантов Осуществления, и модуль обработки декодирования, который соответствует обычному стандарту, такому как MPEG-2, MPEG4-AV, и VC-1 частично используются совместно. ex900 на Фиг. 55A показывает пример конфигурации. Например, способ декодирования движущегося изображения, описанный в каждом из Вариантов Осуществления, и способ декодирования движущегося изображения, который соответствует MPEG4-AVC, имеют, частично общие, подробности обработки, такие как энтропийное кодирование, обратное квантование, фильтрация удаления блочности, и предсказание с компенсацией движения. Подробности обработки, которые будут использоваться совместно, очевидно включают использование модуля ex902 обработки декодирования, который соответствует MPEG4-AVC. В противоположность, выделенный модуль ex901 обработки декодирования очевидно используется для другой обработки, уникальной для настоящего изобретения. Поскольку в частности, например, настоящее изобретение отличается арифметическим декодированием, то выделенный модуль ex901 обработки декодирования используется для арифметического декодирования. Во всем остальном, модуль обработки декодирования очевидно совместно используется для одной из обработок: обратного квантования, фильтрации удаления блочности, и компенсации движения, или всех из обработок. Модуль обработки декодирования для реализации способа декодирования движущегося изображения, описанного в каждом из Вариантов Осуществления, может быть совместно использован для обработки, которая будет совместно использоваться, и выделенный модуль обработки декодирования может быть использован для обработки, уникальной для MPEG4-AVC.
Кроме того, ex1000 на Фиг. 55B показывает другой пример, в котором обработка частично совместно используется. Данный пример использует конфигурацию, включающую в себя выделенный модуль ex1001 обработки декодирования, который поддерживает обработку, уникальную для настоящего изобретения, выделенный модуль ex1002 обработки декодирования, который поддерживает обработку, уникальную для другого обычного стандарта, и модуль ex1003 обработки декодирования, который поддерживает обработку, которая будет совместно использоваться между способом декодирования движущегося изображения по настоящему изобретению и обычным способом декодирования движущегося изображения. Здесь, выделенные модули ex1001 и ex1002 обработки декодирования не обязательно являются специализированными для обработки настоящего изобретения и обработки обычного стандарта, и могут быть такими, которые выполнены с возможностью реализации общей обработки. Кроме того, конфигурация Варианта 8 Осуществления может быть реализована посредством LSI ex500.
По существу, сокращение масштаба схемы LSI и сокращение цены возможно посредством совместно использования модуля обработки декодирования для обработки, которая будет совместно использоваться между способом декодирования движущегося изображения по настоящему изобретению и способом декодирования движущегося изображения в соответствии с обычным стандартом.
ПРОМЫШЛЕННАЯ ПРИМЕНИМОСТЬ
Настоящее изобретение применимо к способу кодирования изображения, способу декодирования изображения, устройству кодирования изображения, устройству декодирования изображения, и в частности, применимо к способу кодирования изображения, способу декодирования изображения, устройству кодирования изображения, и устройству декодирования изображения, которые используют арифметическое кодирование и арифметическое декодирование.
СПИСОК УСЛОВНЫХ ОБОЗНАЧЕНИЙ
100 Устройство кодирования изображения
101 Модуль управления
102 Модуль вычитания
103 Модуль преобразования и квантования
104 Модуль кодирования с переменной длиной слова
105 Модуль обратного квантования и обратного преобразования
106, 206 Модуль сложения
107, 207 Модуль внутреннего предсказания
108, 208 Модуль внешнего предсказания
109, 209 Переключатель
121 Входной сигнал изображения
122, 125, 225 Остаточный сигнал
123, 223 Квантованные коэффициенты преобразования
124 Битовый поток
126 Воссозданный сигнал изображения
127, 128, 129, 227, 228 Сигнал предсказания изображения
130, 230 Параметр управления
141 Модуль преобразования в двоичную форму
142, 242 Модуль управления контекстом
142 Модуль бинарного арифметического кодирования
151, 251 Бинарная последовательность
152, 252 Индекс контекста
200 Устройство декодирования изображения
201 Модуль управления
202 Модуль декодирования с переменной длиной слова
204 Модуль обратного квантования
205 Модуль обратного преобразования
224 Коэффициенты ортогонального преобразования
226 Сигнал декодированного изображения
229 Сигнал изображения
241 Модуль преобразования из двоичной формы
243 Модуль бинарного арифметического декодирования