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

[Область техники, к которой относится изобретение]
[0001] Настоящее изобретение относится к способу декодирования изображений, способу кодирования изображений, устройству декодирования изображений, устройству кодирования изображений и устройству кодирования и декодирования изображений, и в частности, к способу декодирования изображений, способу кодирования изображений, устройству декодирования изображений, устройству кодирования изображений и устройству кодирования и декодирования изображений, которые используют арифметическое кодирование или арифметическое декодирование.
[Предшествующий уровень техники]
[0002] Сигналы естественного изображения обладают статистическими вариациями, демонстрирующими нестационарное поведение. Одним из способов энтропийного кодирования, использующих нестационарные статистические вариации, является Адаптивное двоичное арифметическое кодирование на основе контекста (CABAC) (см. NPL 1). CABAC применяется в качестве стандарта ITU-T/ISO IEC для кодирования видео, H.264/AVC.
[0003] Смысл терминов, используемых в схеме CABAC, будет описываться ниже.
[0004] (1) "Адаптивное на основе контекста" означает адаптацию способов кодирования и декодирования к статистическим вариациям. Другими словами, "Адаптивное на основе контекста" означает предсказание подходящей вероятности в качестве вероятности появления символа наряду с событием из окружающих условий, когда символ кодируется или декодируется. При кодировании, когда определяется вероятность p(x) появления каждого значения символа S, применяется условная вероятность появления, использующая фактическое событие или последовательность F(z) событий в качестве условия.
[0005] (2) "Двоичное" означает представление символа с использованием двоичной последовательности. Символ, представленный мультизначением, однократно отображается в двоичную последовательность, называемую "строкой бинов". Предсказанная вероятность (условная вероятность) переключается и используется для каждого из элементов последовательности, и появление одного из событий с двумя значениями представляется последовательностью битов. Соответственно, вероятностью значения можно управлять (инициализировать и обновлять) с использованием единицы (единицы двоичного элемента) меньше, чем единица типа сигнала (см. Фиг.2 и другие в NPL 1).
[0006] (3) "Арифметическое" означает, что последовательность битов формируется не со ссылкой на соответствия в таблице, а путем вычисления. В схеме кодирования, использующей таблицы кодов переменной длины, например H.263, MPEG-4 и H.264, даже каждое значение символа с вероятностью появления больше 0,5 (50%) нужно ассоциировать с одной двоичной последовательностью (последовательностью битов). Таким образом, значение с наибольшей вероятностью нужно ассоциировать как минимум с одним битом для одного символа. В отличие от этого арифметическое кодирование может представлять появление события с большей вероятностью целым числом, меньше либо равным одному биту. Когда (i) имеется тип сигнала, в котором вероятность появления у наличия первого двоичного значения в виде 0 превышает 0,9 (90%), и (ii) событие, имеющее первое двоичное значение в виде 0, последовательно появляется N раз, не нужно выводить данные 1 бита N раз для каждого значения "0".
[Список источников]
[Непатентная литература]
[0007] [NPL 1] Detlev Marpe, et. al., "Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard", IEEE Transaction on circuits and systems for video technology, Vol. 13, No.7, July 2003.
[NPL 2] Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 5th Meeting: Geneva, CH, 16-23 March, 2011, JCTVC-E603, ver.7 "WD3: Working Draft 3 of High-Efficiency Video Coding", http://phenix.int-evry.fr/jct/doc_end_user/documents/5_Geneva/wg11/JCTVC-E603-v7.zip
[NPL 3] Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 4th Meeting: Daegu, KR, 20-28 January, 2011,
"Common test conditions and software reference configurations", JCTVC-E700
[NPL 4] Gisle Bjøntegaard, "Improvements of the BD-PSNR model", ITU-T SG16 Q.6 Document, VCEG-AI11, Berlin, July 2008
[Сущность изобретения]
[Техническая задача]
[0008] В таком способе кодирования изображений и способе декодирования изображений желательно уменьшить использование памяти (емкость памяти, которая будет использована).
[0009] В настоящем документе настоящее изобретение имеет задачу предоставления способа кодирования изображений или способа декодирования изображений, которые могут уменьшить использование памяти.
[Решение задачи]
[0010] Чтобы достичь этой цели, способ декодирования изображений в соответствии с аспектом настоящего изобретения является способом декодирования изображений, использующим арифметическое декодирование, и способ включает в себя: определение контекста для использования в текущем блоке из множества контекстов; выполнение арифметического декодирования над последовательностью битов, соответствующей текущему блоку, используя определенный контекст для декодирования двоичной последовательности, причем последовательность битов получена путем выполнения арифметического кодирования над управляющим параметром текущего блока; и обратное преобразование из двоичной формы двоичной последовательности, чтобы декодировать управляющий параметр текущего блока, причем определение контекста включает в себя: определение типа сигнала у управляющего параметра текущего блока; определение контекста при первом условии, что используются декодированные управляющие параметры у соседних блоков текущего блока, когда типом сигнала является первый тип, причем соседними блоками являются левый блок и верхний блок текущего блока; определение контекста при втором условии, что декодированный управляющий параметр верхнего блока не используется, когда типом сигнала является второй тип, отличный от первого типа; и определение контекста при третьем условии, что декодированный управляющий параметр верхнего блока не используется, а используется иерархическая глубина единицы данных, к которой принадлежит управляющий параметр текущего блока, когда типом сигнала является третий тип, отличный от первого типа и второго типа, причем первый тип является одним из "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) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", и третий тип является типом сигнала из числа (i) "merge_flag", (ii) "ref_idx_l0" или "ref_idx_l1", (iii) "inter_pred_flag", (iv) "mvd_l0" или "mvd_l1", (v) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", причем тип этого сигнала отличается от второго типа.
[Положительные результаты изобретения]
[0011] Настоящее изобретение может предоставить способ кодирования изображений или способ декодирования изображений, которые могут уменьшить использование памяти.
[Краткое описание чертежей]
[0012] Фиг.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 - таблица, указывающая способ арифметического декодирования для cbf_luma(cr,cb) в соответствии с Вариантом 3 осуществления.
Фиг.28A - таблица, указывающая результат проверки по cbf_luma(cr,cb) в соответствии с Вариантом 3 осуществления.
Фиг.28B - таблица, указывающая результат проверки по cbf_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 осуществления.
Фиг.34B - таблица, указывающий результат проверки в соответствии с Вариантом 3 осуществления.
Фиг.35 - блок-схема алгоритма, указывающая способ арифметического кодирования в соответствии с Вариантом 3 осуществления.
Фиг.36 - блок-схема алгоритма, указывающая способ арифметического декодирования в соответствии с Вариантом 3 осуществления.
Фиг.37 иллюстрирует контекстные модели, использующие значения управляющих параметров, соответствующих двум соседним блокам, в соответствии с Вариантами осуществления.
Фиг.38 иллюстрирует увеличение в использовании памяти, когда используется верхний блок, в соответствии с Вариантами осуществления.
Фиг.39 иллюстрирует общую конфигурацию системы предоставления контента для реализации услуг распространения контента.
Фиг.40 иллюстрирует общую конфигурацию системы цифрового вещания.
Фиг.41 - блок-схема, иллюстрирующая пример конфигурации телевизора.
Фиг.42 - блок-схема, иллюстрирующая пример конфигурации блока воспроизведения/записи информации, который считывает и записывает информацию с носителя записи или на него, который является оптическим диском.
Фиг.43 иллюстрирует пример конфигурации носителя записи, который является оптическим диском.
Фиг.44A иллюстрирует пример сотового телефона.
Фиг.44B иллюстрирует блок-схему, показывающую пример конфигурации сотового телефона.
Фиг.45 иллюстрирует структуру мультиплексированных данных.
Фиг.46 схематически иллюстрирует, как каждый поток мультиплексируется в мультиплексированные данные.
Фиг.47 подробнее иллюстрирует то, как видеопоток сохраняется в потоке пакетов PES.
Фиг.48 иллюстрирует структуру пакетов TS и исходных пакетов в мультиплексированных данных.
Фиг.49 иллюстрирует структуру данных PMT.
Фиг.50 иллюстрирует внутреннюю структуру информации о мультиплексированных данных.
Фиг.51 иллюстрирует внутреннюю структуру информации об атрибутах потока.
Фиг.52 иллюстрирует этапы для идентификации видеоданных.
Фиг.53 - блок-схема, иллюстрирующая пример конфигурации интегральной схемы для реализации способа кодирования движущихся изображений и способа декодирования движущихся изображений в соответствии с каждым из Вариантов осуществления.
Фиг.54 иллюстрирует конфигурацию для переключения между частотами возбуждения.
Фиг.55 иллюстрирует этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг.56 иллюстрирует пример справочной таблицы, в которой стандарты видеоданных ассоциируются с частотами возбуждения.
Фиг.57A иллюстрирует пример конфигурации для совместного использования модуля в блоке обработки сигналов.
Фиг.57B иллюстрирует другой пример конфигурации для совместного использования модуля в блоке обработки сигналов.
[Описание вариантов осуществления]
[0013] (Сведения, на которых основывается настоящее изобретение)
Авторы настоящего изобретения обнаружили следующие проблемы.
[0014] В Высокоэффективном кодировании видео (HEVC), которое является схемой кодирования видео следующего поколения, исследуется контекстная модель при кодировании и декодировании различных управляющих параметров (NPL 2). Управляющий параметр включается в кодированный поток двоичных сигналов и является параметром (флагом и т.п.), используемым в кодирующей или декодирующей обработке. Точнее говоря, управляющий параметр является синтаксическим элементом.
[0015] Контекстная модель является информацией, указывающей, (i) какое условие рассматривается для (ii) сигнала какой единицы (каждый элемент мультизначения, двоичного значения, двоичной последовательности (строки бинов)). Здесь "какое условие" указывает, какое применяется условие с количеством условных элементов, или какой тип сигнала управляющего параметра, который будет рассматриваться в качестве условия, является подходящим. Когда условия разделяются на более мелкие категории, то есть, когда увеличивается количество τ условий, уменьшается количество случаев, которые остаются верными для тех условий. В результате, поскольку уменьшается количество обучений, уменьшается точность предсказанной вероятности (например, см. "эффект разбавления" в NPL 1).
[0016] Кроме того, уменьшение количества условий указывает отсутствие рассмотрения контекста (окружающих условий) и отсутствие адаптивности к статистическим вариациям.
[0017] При проектировании контекстной модели после определения направления для проектирования модели необходимо рассмотреть достоверность модели путем проведения специализированных для изображения проверок, например, проверок статистических вариаций в деталях изображения и в управляющем параметре для управления кодированием и декодированием изображения.
[0018] В H.264 использование ограниченного количества расширенных событий для кодирования символа является критерием правила, и контекстные модели классифицируются на четыре базовых типа исполнения.
[0019] Первый и второй типы относятся к кодированию и декодированию управляющего параметра.
[0020] Первая контекстная модель использует кодированные значения вплоть до двух соседних кодированных значений (см. NPL 1). Хотя определение двух соседних кодированных значений зависит от каждого типа сигнала, обычно используются значения соответствующих управляющих параметров, включенных в соседние блоки слева и сверху от текущего блока.
[0021] Второй тип контекстных моделей является типом для определения контекста на основе двоичного дерева в качестве вероятности появления. Точнее говоря, второй тип контекстных моделей применяется к управляющим параметрам mb_type и sub_mb_type.
[0022] Третий и четвертый типы контекстных моделей относятся к кодированию и декодированию остаточных значений (остаточных данных), например данных изображения. Третий тип использует только прошлые кодированные или декодированные значения в порядке сканирования частотных коэффициентов (или квантованных коэффициентов). Четвертый тип определяет контекст в соответствии с декодированными и накопленными значениями (уровнями).
[0023] Преимущества принципа исполнения и реализации у модели вероятностей переходов в 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_no_residual_data_flag, cbf_luma, cbf_cb и cbf_cr (см. 9.3.3.1.1 в NPL 2).
Однако авторы настоящего изобретения обнаружили, что имеется проблема в использовании памяти при кодировании с использованием "контекстной модели, использующей два соседних блока" первого типа.
[0024] Фиг.37 иллюстрирует контекстные модели, использующие значения управляющих параметров, соответствующих двум соседним блокам. Кроме того, Фиг.37 иллюстрирует контекстные модели, использующие соседние блоки в H.264.
[0025] Блок C на Фиг.37 включает в себя значение управляющего параметра SE, который будет кодироваться и декодироваться в настоящее время. Когда кодируется значение управляющего параметра SE, используются значения управляющих параметров SE одинакового типа, включенных в верхний блок A и левый блок B, которые уже кодированы. Точнее говоря, вероятность p(x), указывающая, равно ли 1 или 0 значение x управляющего параметра SE блока C (или первое двоичное значение строки бинов управляющего параметра SE), предсказывается на основе условной вероятности p(x| (условие A (значение верхнего блока) и условие B (значение левого блока)), используя в качестве условий значение управляющего параметра SE верхнего блока A и значение управляющего параметра SE левого блока B.
[0026] Фиг.38 иллюстрирует увеличение в использовании памяти, когда используется верхний блок.
[0027] На Фиг.38 (xP, yP) является положением верхнего левого пикселя единицы предсказания (PU, единица предсказания движения), включающей в себя блок C. Здесь блок C является блоком, включающим в себя управляющий параметр (например, skip_flag), который будет кодироваться в настоящее время. Кроме того, (xP, yA) на Фиг.38 является положением пикселя, который включается в блок B и используется в качестве условия A (значение управляющего параметра skip_flag у верхнего блока). Кроме того, (xL, yP) на Фиг.38 является положением пикселя, который включается в блок A и используется в качестве условия B (значение управляющего параметра skip_flag у левого блока).
[0028] Чтобы кодировать или декодировать значение управляющего параметра skip_flag у блока C, устройству кодирования или устройству декодирования нужно поддерживать значение skip_flag у PU (или результат определения условия) соответствующим положению (xP, yA), включенному в верхний блок B, и положению (xL, yP), включенному в левый блок A. При условии, что изображение имеет горизонтальную ширину в 4096 пикселей, чтобы кодировать один управляющий параметр skip_flag, необходимо поддерживать все значения определения, включенные в верхнюю строку (Линия L на Фиг.38). Другими словами, одному управляющему параметру нужна емкость памяти, полученная с помощью 4096 пикселей/размер блока.
[0029] Здесь блок C, который будет кодироваться, имеет переменные размеры, например, 64×64, 16×16 или 4×4. Кроме того, нельзя предсказать размер блока у блока C, который будет кодироваться или декодироваться позже, когда кодируются или декодируются блоки в верхней строке (Линия L), включающей (xP, yA). Причина в том, что неизвестен размер каждого из блоков в нижней строке (строке, включающей в себя блок C), когда кодируется или декодируется верхняя строка (строка, включающая в себя блок A). Таким образом, устройству кодирования или устройству декодирования нужно поддерживать значение управляющего параметра (или значение определения) для каждого минимального размера блока, предполагая, что наименьший размер блока из всех размеров, примененных к управляющим параметрам, используется в качестве размера блока нижней строки. Во многих типах сигнала наименьшим размером блока является 4×4. Кроме того, в отдельных типах сигнала наименьшим размером блока является 8×8 или 16×16. Например, когда наименьшим размером блока является 4×4, значение управляющего параметра, которое следует поддерживать, равно 4096÷4=1024 битам. Положения черных окружностей на Фиг.38 указывают условия, которые нужно выполнять, хотя условные значения фактически не нужны, когда кодируется и декодируется нижняя строка (строка, включающая в себя блок C).
[0030] Кроме того, два соседних блока на Фиг.38 (левый блок A и верхний блок B) придерживаются идеи соседних блоков в H.264, и не вводится никакой новой перспективы на разделение иерархических блоков. Как описано ниже, существуют случаи, когда такие условные значения, к которым будут обращаться на Фиг.38, не всегда имеют смысл для управляющих параметров, приспособленных к рекурсивному разбиению квадродерева, которое будет внесено в HEVC, потому что управляющие параметры придерживаются рекурсивного порядка исполнения, иерархической глубины или положений блоков.
[0031] По существу, авторы настоящего изобретения обнаружили, что использование памяти увеличивается с использованием условных значений у верхних блоков при выполнении арифметического кодирования или декодирования над управляющими параметрами. Кроме того, авторы настоящего изобретения обнаружили, что использование памяти дополнительно увеличивается в HEVC.
[0032] В отличие от этого, способ декодирования изображений в соответствии с аспектом настоящего изобретения является способом декодирования изображений, использующим арифметическое декодирование, и способ включает в себя: определение контекста для использования в текущем блоке из множества контекстов; выполнение арифметического декодирования над последовательностью битов, соответствующей текущему блоку, используя определенный контекст для декодирования двоичной последовательности, причем последовательность битов получена путем выполнения арифметического кодирования над управляющим параметром текущего блока; и обратное преобразование из двоичной формы двоичной последовательности, чтобы декодировать управляющий параметр текущего блока, причем определение контекста включает в себя: определение типа сигнала у управляющего параметра текущего блока; определение контекста при первом условии, что используются декодированные управляющие параметры у соседних блоков текущего блока, когда типом сигнала является первый тип, причем соседними блоками являются левый блок и верхний блок текущего блока; определение контекста при втором условии, что декодированный управляющий параметр верхнего блока не используется, когда типом сигнала является второй тип, отличный от первого типа; и определение контекста при третьем условии, что декодированный управляющий параметр верхнего блока не используется, а используется иерархическая глубина единицы данных, к которой принадлежит управляющий параметр текущего блока, когда типом сигнала является третий тип, отличный от первого типа и второго типа, причем первый тип является одним из "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) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", и третий тип является типом сигнала из числа (i) "merge_flag", (ii) "ref_idx_l0" или "ref_idx_l1", (iii) "inter_pred_flag", (iv) "mvd_l0" или "mvd_l1", (v) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", причем тип этого сигнала отличается от второго типа.
[0033] С помощью этой структуры способ декодирования изображений может уменьшить использование памяти. Точнее говоря, в способе декодирования изображений, поскольку управляющий параметр верхнего блока не используется для управляющего параметра второго типа, не нужно поддерживать управляющий параметр второго типа верхнего блока. С помощью этой структуры по сравнению со случаем, когда левый блок и верхний блок используются как равномерно "использующие контекстную модель на основе значений управляющих параметров у соседних блоков", использование памяти можно уменьшить в соответствии со способом декодирования изображений. Кроме того, способ декодирования изображений может подходящим образом уменьшить использование памяти у управляющего параметра второго типа, например, без сбоя в оценке BD-скорости [скорость искажения по Бьонтегорду (Bjøntegaard)] у изображения.
[0034] Кроме того, в соответствии со способом декодирования изображений может использоваться контекст, подходящий для иерархической древовидной структуры, которая является структурой данных, которая не рассматривается в традиционном H.264 и является уникальной для HEVC нового стандарта. В качестве альтернативы может выполняться обращение к памяти.
[0035] Кроме того, способ декодирования изображений может выбирать подходящий контекст для управляющего параметра третьего типа, уменьшая при этом использование памяти путем определения контекста с использованием иерархической глубины единицы данных, к которой принадлежит управляющий параметр текущего блока.
[0036] Кроме того, третьим типом может быть "inter_pred_flag".
[0037] Кроме того, третьим типом может быть "cbf_cb" и "cbf_cr".
[0038] Кроме того, третьим типом может быть "cbf_luma".
[0039] Кроме того, первым типом может быть "split_coding_unit_flag" и "skip_flag", вторым типом может быть "merge_flag", "ref_idx_l0", "ref_idx_l1", "mvd_l0", "mvd_l1" и "intra_chroma_pred_mode", и третьим типом может быть "inter_pred_flag", "cbf_luma", "cbf_cb" и "cbf_cr".
[0040] Кроме того, второе условие и третье условие могут быть условиями, что декодированные управляющие параметры левого блока и верхнего блока не используются.
[0041] С помощью этой структуры способ декодирования изображений может уменьшить использование памяти путем неиспользования управляющего параметра левого блока в дополнение к управляющему параметру верхнего блока.
[0042] Кроме того, при определении контекста может определяться предварительно определенный контекст по второму условию в качестве контекста для использования в арифметическом декодировании текущего блока, когда типом сигнала является второй тип.
[0043] С помощью этой структуры способ декодирования изображений может уменьшить объем обработки.
[0044] Кроме того, определение контекста может дополнительно включать в себя: определение, доступен или нет декодированный управляющий параметр верхнего блока при декодировании, на основе положения текущего блока; и определение контекста по одному из второго условия и третьего условия, когда декодированный управляющий параметр верхнего блока недоступен.
[0045] С помощью этой структуры способ декодирования изображений может уменьшить объем обработки.
[0046] Кроме того, при определении контекста можно определить, что декодированный управляющий параметр верхнего блока недоступен при декодировании, когда текущий блок находится на границе секции.
[0047] Кроме того, при определении контекста можно определить, доступен или нет декодированный управляющий параметр верхнего блока при декодировании, в соответствии с иерархической глубиной единицы данных, к которой принадлежит управляющий параметр текущего блока.
[0048] Кроме того, один из второго типа и третьего типа может быть управляющим параметром, имеющим предварительно определенную структуру данных.
[0049] Кроме того, определение контекста может дополнительно включать в себя определение контекста управляющего параметра у второй единицы, меньшей первой единицы, путем переключения между первым условием, вторым условием и третьим условием на основе управляющего параметра первой единицы.
[0050] Кроме того, "split_coding_unit_flag" может указывать, разбивается или нет текущий блок на множество блоков, "skip_flag" может указывать, нужно или нет пропускать текущий блок, "merge_flag" может указывать, используется или нет режим слияния для текущего блока, "ref_idx_l0" может указывать индекс опорного изображения в списке 0 для текущего блока, "ref_idx_l1" может указывать индекс опорного изображения в списке 1 для текущего блока, "inter_pred_flag" может указывать одно из одиночного предсказания и двойного предсказания, которое будет использоваться для текущего блока, "mvd_l0" может указывать разность между составляющей вектора движения в списке 0 и предсказанным значением составляющей вектора движения, причем составляющая вектора движения и предсказанное значение используются для текущего блока, "mvd_l1" может указывать разность между составляющей вектора движения в списке 1 и предсказанным значением составляющей вектора движения, причем составляющая вектора движения и предсказанное значение используются для текущего блока, "intra_chroma_pred_mode" может указывать режим внутреннего предсказания для выборки цветности текущего блока, "cbf_luma" может указывать, содержит или нет блок преобразования яркости текущего блока один или более уровней коэффициента преобразования, не равных 0, "cbf_cb" может указывать, содержит или нет блок преобразования Cb текущего блока один или более уровней коэффициента преобразования, не равных 0, и "cbf_cr" может указывать, содержит или нет блок преобразования Cr текущего блока один или более уровней коэффициента преобразования, не равных 0.
[0051] Кроме того, процессы декодирования в соответствии с первым стандартом и процессы декодирования в соответствии со вторым стандартом могут переключаться в соответствии с идентификатором, указывающим один из первого стандарта и второго стандарта, причем идентификатор включается в кодированный сигнал, и определение контекста, выполнение и обратное преобразование из двоичной формы могут выполняться как процессы декодирования в соответствии с первым стандартом, когда идентификатор указывает первый стандарт.
[0052] Кроме того, способ кодирования изображений в соответствии с аспектом настоящего изобретения является способом кодирования изображений, использующим арифметическое кодирование, и способ включает в себя: преобразование в двоичную форму управляющего параметра текущего блока, чтобы сформировать двоичную последовательность; определение контекста для использования в текущем блоке из множества контекстов; и выполнение арифметического кодирования над двоичной последовательностью с использованием определенного контекста, чтобы сформировать последовательность битов, причем определение контекста включает в себя: определение типа сигнала у управляющего параметра текущего блока; определение контекста при первом условии, что используются управляющие параметры у соседних блоков текущего блока, когда типом сигнала является первый тип, причем соседними блоками являются левый блок и верхний блок текущего блока; определение контекста при втором условии, что управляющий параметр верхнего блока не используется, когда типом сигнала является второй тип, отличный от первого типа; и определение контекста при третьем условии, что декодированный управляющий параметр верхнего блока не используется, а используется иерархическая глубина единицы данных, к которой принадлежит управляющий параметр текущего блока, когда типом сигнала является третий тип, отличный от первого типа и второго типа, причем первый тип является одним из "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) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", и третий тип является типом сигнала из числа (i) "merge_flag", (ii) "ref_idx_l0" или "ref_idx_l1", (iii) "inter_pred_flag", (iv) "mvd_l0" или "mvd_l1", (v) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", причем тип этого сигнала отличается от второго типа.
[0053] С помощью этой структуры способ кодирования изображений может уменьшить использование памяти. Точнее говоря, в способе кодирования изображений, поскольку управляющий параметр верхнего блока не используется для управляющего параметра второго типа, не нужно поддерживать управляющий параметр второго типа верхнего блока. С помощью этой структуры по сравнению со случаем, когда левый блок и верхний блок используются как равномерно "использующие контекстную модель на основе значений управляющих параметров у соседних блоков", использование памяти можно уменьшить в соответствии со способом кодирования изображений. Кроме того, способ кодирования изображений может подходящим образом уменьшить использование памяти у управляющего параметра второго типа, например, без сбоя в оценке BD-скорости у изображения.
[0054] Кроме того, в соответствии со способом кодирования изображений может использоваться контекст, подходящий для иерархической древовидной структуры, которая является структурой данных, которая не рассматривается в традиционном H.264 и является уникальной для HEVC нового стандарта. В качестве альтернативы может выполняться обращение к памяти.
[0055] Кроме того, способ кодирования изображений может выбирать подходящий контекст для управляющего параметра третьего типа, уменьшая при этом использование памяти путем определения контекста с использованием иерархической глубины единицы данных, к которой принадлежит управляющий параметр текущего блока.
[0056] Кроме того, устройство декодирования изображений в соответствии с аспектом настоящего изобретения является устройством декодирования изображений, использующим арифметическое декодирование, и устройство включает в себя: блок управления контекстом, сконфигурированный для определения контекста для использования в текущем блоке из множества контекстов; блок арифметического декодирования, сконфигурированный для выполнения арифметического декодирования над последовательностью битов, соответствующей текущему блоку, используя определенный контекст для декодирования двоичной последовательности, причем последовательность битов получена путем выполнения арифметического кодирования над управляющим параметром текущего блока; и блок обратного преобразования из двоичной формы, сконфигурированный для обратного преобразования из двоичной формы двоичной последовательности, чтобы декодировать управляющий параметр текущего блока, причем блок управления контекстом конфигурируется для: определения типа сигнала у управляющего параметра текущего блока; определения контекста при первом условии, что используются декодированные управляющие параметры у соседних блоков текущего блока, когда типом сигнала является первый тип, причем соседними блоками являются левый блок и верхний блок текущего блока; определения контекста при втором условии, что декодированный управляющий параметр верхнего блока не используется, когда типом сигнала является второй тип, отличный от первого типа; и определения контекста при третьем условии, что декодированный управляющий параметр верхнего блока не используется, а используется иерархическая глубина единицы данных, к которой принадлежит управляющий параметр текущего блока, когда типом сигнала является третий тип, отличный от первого типа и второго типа, причем первый тип является одним из "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) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", и третий тип является типом сигнала из числа (i) "merge_flag", (ii) "ref_idx_l0" или "ref_idx_l1", (iii) "inter_pred_flag", (iv) "mvd_l0" или "mvd_l1", (v) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", причем тип этого сигнала отличается от второго типа.
[0057] С помощью этой конфигурации устройство декодирования изображений может уменьшить использование памяти.
[0058] Кроме того, устройство кодирования изображений в соответствии с аспектом настоящего изобретения является устройством кодирования изображений, использующим арифметическое кодирование, и устройство включает в себя: блок преобразования в двоичную форму, сконфигурированный для преобразования в двоичную форму управляющего параметра текущего блока, чтобы сформировать двоичную последовательность; блок управления контекстом, сконфигурированный для определения контекста для использования в текущем блоке из множества контекстов; и блок арифметического кодирования, сконфигурированный для выполнения арифметического кодирования над двоичной последовательностью с использованием определенного контекста, чтобы сформировать последовательность битов, причем блок управления контекстом конфигурируется для: определения типа сигнала у управляющего параметра текущего блока; определения контекста при первом условии, что используются управляющие параметры у соседних блоков текущего блока, когда типом сигнала является первый тип, причем соседними блоками являются левый блок и верхний блок текущего блока; определения контекста при втором условии, что управляющий параметр верхнего блока не используется, когда типом сигнала является второй тип, отличный от первого типа; и определения контекста при третьем условии, что декодированный управляющий параметр верхнего блока не используется, а используется иерархическая глубина единицы данных, к которой принадлежит управляющий параметр текущего блока, когда типом сигнала является третий тип, отличный от первого типа и второго типа, причем первый тип является одним из "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) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", и третий тип является типом сигнала из числа (i) "merge_flag", (ii) "ref_idx_l0" или "ref_idx_l1", (iii) "inter_pred_flag", (iv) "mvd_l0" или "mvd_l1", (v) "intra_chroma_pred_mode", (vi) "cbf_luma" и (vii) "cbf_cb" или "cbf_cr", причем тип этого сигнала отличается от второго типа.
[0059] С помощью этой конфигурации устройство кодирования изображений может уменьшить использование памяти.
[0060] Кроме того, устройство кодирования и декодирования изображений в соответствии с аспектом настоящего изобретения является устройством кодирования и декодирования изображений, включающим в себя устройство декодирования изображений и устройство кодирования изображений.
[0061] Общие или специфические аспекты могут быть реализованы с помощью системы, способа, интегральной схемы, компьютерной программы или носителя записи, либо с помощью произвольного сочетания системы, способа, интегральной схемы, компьютерной программы и носителя записи.
[0062] Устройство декодирования изображений и устройство кодирования изображений в соответствии с аспектом настоящего изобретения будут конкретно описываться со ссылкой на чертежи.
[0063] Описанные ниже варианты осуществления указывают характерные примеры настоящего изобретения. Значения, формы, материалы, составляющие элементы, положения и соединения составляющих элементов, этапы и порядки этапов, указанные в Вариантах осуществления, являются примерами и не ограничивают настоящее изобретение. Составляющие элементы в Вариантах осуществления, которые не описываются в независимых пунктах формулы изобретения, которые описывают самую общую идею настоящего изобретения, описываются как произвольные составляющие элементы.
(Вариант 1 осуществления)
[0064]
Будет описываться устройство кодирования изображений в соответствии с Вариантом 1 осуществления настоящего изобретения. Устройство кодирования изображений в соответствии с Вариантом 1 осуществления определяет контекст путем переключения между (1) использованием верхнего блока и (2) без использования верхнего блока в соответствии с типом сигнала управляющего параметра в арифметическом кодировании. С помощью этой структуры можно остановить ухудшение качества изображения и можно уменьшить использование памяти.
[0065] Сначала будет описываться конфигурация устройства кодирования изображений в соответствии с Вариантом 1 осуществления.
[0066] Фиг.1 - блок-схема, иллюстрирующая устройство 100 кодирования изображений в соответствии с Вариантом 1 осуществления.
[0067] Устройство 100 кодирования изображений на Фиг.1 является устройством кодирования изображений, использующим арифметическое кодирование, и кодирует входной сигнал 121 изображения, чтобы сформировать поток 124 двоичных сигналов. Устройство 100 кодирования изображений включает в себя блок 101 управления, блок 102 вычитания, блок 103 преобразования и квантования, блок 104 кодирования переменной длины, блок 105 обратного квантования и обратного преобразования, блок 106 сложения, блок 107 внутреннего предсказания, блок 108 внешнего предсказания и переключатель 109.
[0068] Блок 101 управления вычисляет управляющий параметр 130 на основе входного сигнала 121 изображения, который будет кодироваться. Например, управляющий параметр 130 включает в себя информацию о типе изображения во входном сигнале 121 изображения, который будет кодироваться, размер единицы предсказания движения (единица предсказания, PU) у текущего блока, который будет кодироваться, и управляющую информацию единицы предсказания движения. Здесь должен кодироваться сам управляющий параметр 130 (управляющие данные). Таким образом, блок 101 управления выводит управляющий параметр 130 в блок 104 кодирования переменной длины.
[0069] Блок 102 вычитания вычисляет остаточный сигнал 122, который является разностью (остаточным значением) между входным сигналом 121 изображения и сигналом 129 предсказания изображения на основе единицы блока.
[0070] Блок 103 преобразования и квантования преобразует остаточный сигнал 122 в значения частотных коэффициентов и квантует полученные значения частотных коэффициентов в квантованные коэффициенты 123 преобразования (остаточные данные).
[0071] Блок 105 обратного квантования и обратного преобразования обратно квантует квантованные коэффициенты 123 преобразования в значения частотных коэффициентов и обратно преобразует полученные значения частотных коэффициентов в декодированный остаточный сигнал 125.
[0072] Блок 106 сложения добавляет остаточный сигнал 125 к сигналу 129 предсказания изображения и выводит декодированный сигнал 126 изображения.
[0073] Блок 107 внутреннего предсказания выполняет внутреннее предсказание с использованием декодированного сигнала 126 изображения, чтобы сформировать сигнал 127 предсказания изображения. Блок 108 внешнего предсказания выполняет внешнее предсказание с использованием декодированного сигнала 126 изображения, чтобы сформировать сигнал 128 предсказания изображения.
[0074] Переключатель 109 выбирает один из сигнала 127 предсказания изображения и сигнала 128 предсказания изображения и выводит выбранный сигнал в качестве сигнала 129 предсказания изображения.
[0075] Блок 104 кодирования переменной длины кодирует с использованием CABAC квантованные коэффициенты 123 преобразования и управляющий параметр 130 для каждого блока, чтобы сформировать поток 124 двоичных сигналов.
[0076] Далее будет описываться конфигурация блока 104 кодирования переменной длины.
[0077] Фиг.2 - функциональная блок-схема блока 104 кодирования переменной длины. Блок 104 кодирования переменной длины включает в себя блок 141 преобразования в двоичную форму, блок 142 управления контекстом и блок 143 двоичного арифметического кодирования. Нижеследующее описывает процесс кодирования переменной длины над управляющим параметром 130. Хотя пропускается описание процесса кодирования переменной длины над квантованными коэффициентами 123 преобразования, процесс может быть реализован с использованием, например, известной методики.
[0078] Блок 141 преобразования в двоичную форму преобразует в двоичную форму управляющий параметр 130, чтобы сформировать двоичную последовательность 151. Точнее говоря, блок 141 преобразования в двоичную форму является блоком обработки, который выполняет "II.1) процесс преобразования в двоичную форму" в соответствии с NPL 1. Блок 141 преобразования в двоичную форму преобразует управляющий параметр 130 в двоичную последовательность 151, называемую "строкой бинов", для каждого типа сигнала в соответствии с предварительно определенным способом преобразования в двоичную форму. Соответствие между типами сигнала и способами преобразования в двоичную форму будет описываться позже. Когда входной управляющий параметр 130 является одним двоичным значением, например флагом, блок 141 преобразования в двоичную форму выводит управляющий параметр 130 в виде двоичной последовательности 151 как она есть.
[0079] Блок 142 управления контекстом определяет контекст для использования при арифметическом кодировании управляющего параметра 130, включенного в текущий блок, из множества контекстов (таблица вероятностей состояний). Кроме того, блок 142 управления контекстом выводит индекс 152 контекста, задающий определенный контекст, в блок 143 двоичного арифметического кодирования.
[0080] Точнее говоря, блок 142 управления контекстом является блоком обработки, который выполняет "2) контекстное моделирование" в соответствии с NPL 1. Блок 142 управления контекстом последовательно принимает множество элементов, включенных в двоичную последовательность 151, выведенную из блока 143 двоичного арифметического кодирования. Блок 142 управления контекстом выбирает один из контекстов, который будет использоваться для двоичного значения управляющего параметра 130, в соответствии с типом сигнала у управляющего параметра 130 и положением элемента у двоичного значения в двоичной последовательности 151, и выводит в блок 143 двоичного арифметического кодирования индекс 152 контекста, который является индексом, указывающим выбранный контекст.
[0081] Кроме того, блок 142 управления контекстом поддерживает таблицу вероятностей состояний со значениями (значениями индекса контекста), полученными путем разделения элементов в двоичной последовательности управляющего параметра 130 на условия в условных вероятностях, в качестве состояний контекста и инициализирует и обновляет таблицу вероятностей состояний.
[0082] Кроме того, блок 142 управления контекстом поддерживает состояние (индекс вероятностей состояний) для каждого условия τ появления (для каждого контекста) в качестве дополнительного разделения типа сигнала (для каждого номера элемента в двоичной последовательности управляющего параметра 130, когда количество элементов в двоичной последовательности равно двум или более; то же самое будет применено в дальнейшем). Состояние представляется суммарно 7-битным значением путем объединения вероятности P появления (внутренняя пропорция, обычно 6-битное значение), которая является меньшей вероятностью одного из двух значений 0 и 1, и 1-битного значения, указывающего, какое из значений обладает большей вероятностью. Кроме того, поддерживание состояния означает инициализацию и обновление состояния. Например, обновление соответствует изменению индексирования, которое указывает текущую вероятность состояний (то есть вероятность) в виде перехода между 64 конечными состояниями, как в H.264.
[0083] Когда событие X появляется на наиболее вероятной стороне, имеющей наибольшую вероятность между двумя значениями, отношение вероятности на наиболее вероятной стороне немного увеличивается. Например, блок 142 управления контекстом может немного увеличить отношение вероятности на наиболее вероятной стороне путем увеличения или уменьшения на 1 значения индекса вероятностей состояний, соответствующего 64 таблицам. С другой стороны, когда появляется событие не-X, обладающее меньшей вероятностью (против предсказанной вероятности), блок 142 управления контекстом значительно уменьшает отношение поддерживаемой наиболее вероятной вероятности на основе предварительно определенного масштабного коэффициента α (например, ≈ 0,95) (см. Фиг.6 в NPL 1). Блок 142 управления контекстом в соответствии с Вариантом 1 осуществления переводит и поддерживает состояние на основе соответствующего значения изменения индекса таблицы, чтобы оно было ассоциировано с изменением, учитывая α, как в H.264.
[0084] Блок 143 двоичного арифметического кодирования выполняет арифметическое кодирование над двоичной последовательностью 151 с использованием контекста, определенного блоком 142 управления контекстом, чтобы сформировать поток 124 двоичных сигналов (последовательность битов).
[0085] Точнее говоря, блок 143 двоичного арифметического кодирования является блоком обработки, который выполняет "3) двоичное арифметическое кодирование" в соответствии с NPL 1. Блок 143 двоичного арифметического кодирования выполняет арифметическое кодирование над двоичной последовательностью 151 с использованием контекста, заданного индексом 152 контекста, чтобы сформировать поток 124 двоичных сигналов. Здесь арифметическое кодирование должно обрабатывать события, появляющиеся для управляющих параметров 130 различных типов сигнала в виде накопленной суммы вероятностей, и определять соответствия между событиями путем сведения диапазона к предварительно определенному диапазону на одной числовой оси.
[0086] Сначала блок 143 двоичного арифметического кодирования разделяет одну числовую ось на две полусекции в соответствии с вероятностями появления двух возможных значений у двоичного значения, выданными от блока 142 управления контекстом. Когда фактическое значение, появляющееся для двоичного значения (например, 0), является значением с большей вероятностью (превышающей 0,5 (например, 0,75)), блок 143 двоичного арифметического кодирования сохраняет нижний предел "Low" в диапазоне на числовой оси без изменения и устанавливает значение, соответствующее результату однократного умножения масштабного коэффициента 0,95 на вероятность 0,75 в этот раз, в новый диапазон. С другой стороны, когда фактически сформированное двоичное значение является предсказанным значением с меньшей вероятностью, блок 143 двоичного арифметического кодирования сдвигает нижний предел "Low" на большую вероятность и изменяет диапазон в соответствии с меньшей вероятностью. Секции поддерживаются в соответствии с накопленной суммой результатов умножений диапазонов вероятности. Когда значение с меньшей вероятностью появляется последовательно, точность длины диапазона вскоре становится ниже точности, которую можно обеспечить путем вычисления. Здесь блок 143 двоичного арифметического кодирования увеличивает (перенормирует) диапазон для сохранения точности и выводит последовательность битов, указывающую текущий диапазон. Наоборот, когда значение с большей вероятностью (0,95 и т.п.) появляется последовательно, значения вероятности могут выдержать некоторое количество вычислений (переходов состояния в случае реализации с помощью таблицы), пока длина диапазона не станет короче предварительно определенной длины даже при умножении значений. Таким образом, количество символов, которое можно накапливать, пока не выведен бит, является большим.
[0087] Фиг.3 - таблица, в которой сортируются управляющие параметры 130, использующие контекстную модель на основе значения управляющего параметра 130 соседнего блока.
[0088] Смысл каждого столбца будет описываться, начиная с левого столбца таблицы.
[0089] (c2) Тип сигнала (синтаксический элемент) указывает определенное название типа сигнала у управляющего параметра 130. Смысл каждого из типов сигнала будет описываться позже.
[0090] (c3) Схема преобразования в двоичную форму указывает схему преобразования в двоичную форму, которая будет применяться к управляющему параметру 130 (SE), заданному в непосредственно левом столбце. Блок 141 преобразования в двоичную форму выполняет процесс преобразования в двоичную форму. В столбце "Фиксированная длина" означает, что блок 141 преобразования в двоичную форму выводит значение управляющего параметра 130 в непосредственно левой секции в виде двоичной последовательности (строки бинов) с фиксированной длиной. В HEVC типом сигнала у управляющего параметра 130, чье название оканчивается на "флаг", является одно двоичное значение либо 0, либо 1. Таким образом, блок 141 преобразования в двоичную форму выводит только первый элемент (binIdx = 0) в качестве элемента двоичной последовательности 151 и не выводит элементы после второго элемента (binIdx >= 1). Другими словами, блок 141 преобразования в двоичную форму выводит значение управляющего параметра 130 в виде двоичной последовательности 151, как она есть.
[0091] Кроме того, "Переменная длина" в столбце означает, что блок 141 преобразования в двоичную форму отображает в двоичную последовательность значение управляющего параметра 130, используя двоичные последовательности с соответствующими переменными длинами, чьи значения ассоциируются, чтобы иметь двоичные длины в возрастающем порядке частот появления (строка бинов или двоичные последовательности с количеством элементов ≥ 1), и выводит двоичную последовательность. Например, блок 141 преобразования в двоичную форму применяет и выводит схему в соответствии с типом сигнала, например, (усеченную) унарную схему, и сочетание унарной и других экспоненциальных схем Голомба (см. "A. Binarization" в NPL 1). В случае "Переменной длины" количество элементов двоичной последовательности 151 иногда ограничивается 1, или больше либо равно 2. Блок обратного преобразования из двоичной формы в устройстве декодирования изображений, которое будет описано позже, выполняет преобразование, обратное схеме преобразования в двоичную форму, чтобы декодировать входную двоичную последовательность в мультизначение или значение флага.
[0092] Что касается (c4) Индекса контекста первого элемента (binIdx = 0), то блок 142 управления контекстом указывает выбор индекса контекста (увеличение), который будет применяться к первому элементу, включенному в двоичную последовательность, сформированную в соответствии со схемой преобразования в двоичную форму, заданной в столбце c3. В столбце "0, 1, 2" указывает, что блок 142 управления контекстом выбирает и применяет одну из трех таблиц вероятностей состояний (контекстов). Например, три индекса контекста с подробными условиями готовятся для одного типа сигнала "skip_flag", то есть готовятся три контекста, и арифметическое кодирование выполняется над индексами контекста.
[0093] Аналогичным образом "0, 1, 2, 3" в столбце c4 указывает, что контекст, который будет применяться к первому элементу (binIdx = 0), включенному в двоичную последовательность 151, выбирается из одного из четырех значений - 0, 1, 2 или 3. Двоичная последовательность 151 получается путем отображения в двоичную последовательность значения управляющего параметра 130 с типом сигнала, заданным в столбце c2, в соответствии со схемой преобразования в двоичную форму в столбце c3. Условные выражения в столбце будут описываться позже.
[0094] Что касается (c5) Условия L левого блока (condL), то блок 142 управления контекстом указывает, что условие левого блока выбирается одним из 0, 1 и 2 в столбце c4. Условие L левого блока имеет значение истины или лжи, определенное в соответствии со значением управляющего параметра левого блока, соответствующего управляющему параметру, который будет кодироваться (или декодироваться).
[0095] Например, в случае, когда управляющим параметром (SE) является skip_flag, условие L левого блока имеет значение истины, когда skip_flag[xL][yL] указывает истину (например, 1), и имеет значение лжи, когда тот указывает ложь (например, 0).
[0096] Что касается (c6) Условия A верхнего блока, то блок 142 управления контекстом указывает, что условие верхнего блока выбирается одним из 0, 1 и 2 при кодировании или декодировании элементов последовательности, заданной в столбце c4. Условие A верхнего блока имеет значение истины или лжи, определенное в соответствии со значением управляющего параметра верхнего блока, соответствующего управляющему параметру, который будет кодироваться (или декодироваться). Например, в случае, когда управляющим параметром (SE) является skip_flag, условие A верхнего блока имеет значение истины, когда skip_flag[xA][yA] указывает истину (например, 1), и имеет значение лжи, когда тот указывает ложь (например, 0).
[0097] Хотя и не проиллюстрировано, тип сигнала больше чем из двух битов ассоциируется с "(c7) Увеличение контекста, которое будет применяться к binIdx >= 1". Этот (c7) указывает контекстную модель, примененную блоком 142 управления контекстом к двоичному представлению после второго элемента в двоичной последовательности (двоичное значение элемента двоичной последовательности, включающего значение индекса binIdx >= 1).
[0098] В способе кодирования из Варианта 1 осуществления следующие операции переключаются в соответствии с типом сигнала у управляющего параметра 130 для условия L левого блока и условия A верхнего блока (управляются с использованием разных шаблонов):
[0099] (Шаблон 1) Использование двух соседних блоков (значение определения условия L левого блока и значение определения условия A верхнего блока);
[0100] (Шаблон 2) Использование одного соседнего блока (только значение определения условия L левого блока); и
[0101] (Шаблон 3) Неиспользование никакого соседнего блока (не используется ни значение определения условия L левого блока, ни значение определения условия A верхнего блока).
[0102] Фиг.4 - блок-схема алгоритма, указывающая способ кодирования изображений в соответствии с Вариантом 1 осуществления, который выполняется блоком 104 кодирования переменной длины на Фиг.2.
[0103] Сначала блок 141 преобразования в двоичную форму отображает значение управляющего параметра 130 в двоичную последовательность в соответствии со схемой, соответствующей типу сигнала у управляющего параметра 130 (этап S101).
[0104] Далее блок 142 управления контекстом получает основное значение контекста для использования в арифметическом кодировании управляющего параметра 130 (этап S102). Например, блок 142 управления контекстом определяет основное значение в соответствии с типом изображения (I, P или B).
[0105] Далее блок 142 управления контекстом определяет значение контекста с использованием одного из шаблонов с 1 по 3 на основе типа сигнала у управляющего параметра 130 (этап S103). Здесь определение значения контекста эквивалентно определению значения регулировки (значения CtxIdxInc увеличения) для основного значения контекста.
[0106] Сначала блок 142 управления контекстом определяет тип сигнала у управляющего параметра 130 (этап S103). Когда типом сигнала у управляющего параметра 130 является первый тип, соответствующий шаблону 1 (первый тип на этапе S104), блок 142 управления контекстом определяет значение контекста с использованием значения определения, выведенного из значений управляющих параметров двух соседних блоков (блока A и блока B) (этап S105). Другими словами, блок 142 управления контекстом определяет контекст при условии, что используются управляющие параметры двух соседних блоков - левого блока и верхнего блока. Здесь блок 142 управления контекстом использует оба из результата определения (c5) condL и результата определения (c6) condA на Фиг.3. Соответственно, поддерживаются данные одной строки изображений для управляющих параметров первого типа.
[0107] С другой стороны, когда типом сигнала у управляющего параметра 130 является второй тип, соответствующий шаблону 2 (второй тип на этапе S104), блок 142 управления контекстом определяет значение контекста с использованием значения управляющего параметра у одного соседнего блока (один непосредственно соседний блок в порядке кодирования) (этап S106). Другими словами, блок 142 управления контекстом определяет значение контекста при условии, что управляющий параметр верхнего блока не используется.
[0108] С другой стороны, когда типом сигнала у управляющего параметра 130 является третий тип, соответствующий шаблону 3 (третий тип на этапе S104), блок 142 управления контекстом неизменно определяет значение контекста без использования обоих управляющих параметров верхнего блока и левого блока (этап S107).
[0109] Далее блок 142 управления контекстом добавляет увеличение, определенное на этапе S103, к основному значению индекса контекста, определенному на этапе S102, чтобы определить значение индекса контекста (этап S108).
[0110] В конечном счете блок 143 двоичного арифметического кодирования выполняет арифметическое кодирование над двоичным значением первого элемента, используя значение контекста, заданное значением индекса контекста, определенным на этапе S108, чтобы сформировать последовательность битов (поток 124 двоичных сигналов) (этап S109).
[0111] Далее, когда процессы с этапа S102 по S109 не выполняются над всеми элементами, включенными в двоичную последовательность (Нет на этапе S110), блок 104 кодирования переменной длины выполняет процессы с этапа S102 по S109 над следующим элементом, включенным в двоичную последовательность. С другой стороны, когда процессы с этапа S102 по S109 завершаются над всеми элементами, включенными в двоичную последовательность (Да на этапе S110), блок 104 кодирования переменной длины заканчивает кодирующую обработку над управляющим параметром текущего блока.
[0112] Как описано выше, устройство 100 кодирования изображений в соответствии с Вариантом 1 осуществления определяет контекст, использующий верхний блок при выполнении арифметического кодирования над управляющим параметром первого типа, и определяет контекст без использования верхнего блока для управляющих параметров второго и третьего типов.
[0113] По сравнению со случаем, когда левый блок и верхний блок используются как равномерно "использующие контекстную модель на основе значений управляющих параметров у соседних блоков", устройство 100 кодирования изображений может уменьшить использование памяти с помощью этой конфигурации. Таким образом, устройство 100 кодирования изображений может остановить ухудшение качества изображения и уменьшить использование памяти.
(Вариант 2 осуществления)
[0114]
Вариант 2 осуществления будет описывать устройство декодирования изображений, которое декодирует поток 124 двоичных сигналов, сформированный устройством 100 кодирования изображений.
[0115] Фиг.5 - блок-схема, иллюстрирующая устройство 200 декодирования изображений в соответствии с Вариантом 2 осуществления. Устройство 200 декодирования изображений является устройством декодирования изображений, использующим арифметическое декодирование, и декодирует поток 124 двоичных сигналов, чтобы сформировать сигнал 229 изображения. Здесь поток 124 двоичных сигналов формируется, например, устройством 100 кодирования изображений.
[0116] Устройство 200 декодирования изображений включает в себя блок 201 управления, блок 202 декодирования переменной длины, блок 204 обратного квантования, блок 205 обратного преобразования, блок 206 сложения, блок 207 внутреннего предсказания и блок 208 внешнего предсказания.
[0117] Устройство 200 декодирования изображений выполняет декодирующую обработку для каждого потока двоичных сигналов с предварительно определенной единицей обработки. Единицей обработки является, например, единица секции или единица блока.
[0118] Блок 202 декодирования переменной длины выполняет арифметическое декодирование над потоком 124 двоичных сигналов, чтобы сформировать управляющий параметр 230 (синтаксический элемент управляющих данных) и квантованные коэффициенты 223 преобразования (значения синтаксических элементов остаточных данных). Блок 201 управления принимает сформированный управляющий параметр 230.
[0119] Блок 201 управления управляет каждым из блоков обработки, включенных в устройство 200 декодирования изображений, в соответствии с управляющим параметром 230.
[0120] Блок 204 обратного квантования обратно квантует квантованные коэффициенты 223 преобразования в ортогональные коэффициенты 224 преобразования.
[0121] Блок 205 обратного преобразования обратно преобразует ортогональные коэффициенты 224 преобразования, чтобы декодировать остаточный сигнал 225. Блок 206 сложения добавляет остаточный сигнал 225 к сигналу предсказания изображения (сигналу 229 изображения), чтобы сформировать декодированный сигнал 226 изображения.
[0122] Блок 207 внутреннего предсказания выполняет внутреннее предсказание с использованием декодированного сигнала 226 изображения, чтобы сформировать сигнал 227 предсказания изображения. Блок 208 внешнего предсказания выполняет внешнее предсказание с использованием декодированного сигнала 226 изображения, чтобы сформировать сигнал 228 предсказания изображения.
[0123] Переключатель 209 выбирает один из сигнала 227 предсказания изображения и сигнала 228 предсказания изображения и выводит выбранный сигнал в качестве сигнала 229 изображения.
[0124] Далее будет описываться конфигурация блока 202 декодирования переменной длины.
[0125] Фиг.6 - функциональная блок-схема, иллюстрирующая конфигурацию блока 202 декодирования переменной длины. Блок 202 декодирования переменной длины включает в себя блок 243 двоичного арифметического декодирования, блок 242 управления контекстом и блок 241 обратного преобразования из двоичной формы. Нижеследующее описывает процесс декодирования переменной длины над управляющим параметром 230. Хотя пропускается описание процесса декодирования переменной длины над квантованными коэффициентами 223 преобразования, процесс может быть реализован с использованием, например, известной методики.
[0126] Блок 242 управления контекстом определяет контекст для использования в арифметическом декодировании управляющего параметра 230 текущего блока из множества контекстов. Кроме того, блок 242 управления контекстом выводит индекс 252 контекста, задающий определенный контекст, в блок 243 двоичного арифметического декодирования.
[0127] Точнее говоря, блок 242 управления контекстом использует такую же контекстную модель, что и у блока 142 управления контекстом на Фиг.2, в качестве поддерживаемой модели вероятностей переходов. Когда блок 143 арифметического кодирования использует 64 вероятности состояний, блок 243 двоичного арифметического декодирования также поддерживает 64 вероятности состояний. Причина в том, что кодеру и декодеру нужно одинаковым образом интерпретировать диапазон числовой оси, который будет кодироваться. Таким образом, декодер использует такой же шаблон, что и шаблон, выбранный кодером из трех шаблонов с 1 по 3.
[0128] Блок 243 арифметического декодирования выполняет арифметическое декодирование над последовательностью битов (потоком 124 двоичных сигналов), используя контекст, определенный блоком 242 управления контекстом, чтобы декодировать двоичную последовательность 251. Точнее говоря, блок 243 арифметического декодирования декодирует входную последовательность битов в двоичную последовательность 251 в соответствии с контекстом (таблицей вероятностей состояний), заданным индексом контекста, выданным от блока 242 управления контекстом.
[0129] Блок 241 обратного преобразования из двоичной формы декодирует двоичную последовательность 251 в управляющий параметр 230, если необходимо, посредством процесса обратного преобразования из двоичной формы. По существу, блок 142 управления контекстом, включенный в устройство 100 кодирования изображений, и блок 242 управления контекстом, включенный в устройство 200 декодирования изображений, используют одну и ту же контекстную модель в арифметическом кодировании и арифметическом декодировании управляющего параметра с некоторым типом сигнала.
[0130] Фиг.7 - блок-схема алгоритма, указывающая способ декодирования изображений в соответствии с Вариантом 2 осуществления, который выполняется блоком 202 декодирования переменной длины.
[0131] Сначала блок 202 декодирования переменной длины получает поток 124 двоичных сигналов (этап S201).
[0132] Далее блок 242 управления контекстом определяет тип сигнала у управляющего параметра, который будет декодироваться, в соответствии со структурой данных потока 124 двоичных сигналов (этап S202).
[0133] Далее блок 242 управления контекстом определяет основное значение контекста для использования в арифметическом декодировании управляющего параметра, который будет декодироваться (этап S203). Например, блок 242 управления контекстом определяет основное значение в соответствии с типом изображения (I, P или B).
[0134] Далее блок 242 управления контекстом определяет значение контекста с использованием одного из шаблонов с 1 по 3 на основе типа сигнала у управляющего параметра (этап S204). Здесь определение значения контекста эквивалентно определению значения регулировки (значения CtxIdxInc увеличения) для основного значения контекста. Например, блок 242 управления контекстом статически определяет один из шаблонов с 1 по 3 на основе типа сигнала у управляющего параметра, следуя предварительно определенной таблице.
[0135] Блок 242 управления контекстом переключается между соседними блоками для использования при определении контекста для получения двоичного значения первого элемента, включенного в двоичную последовательность 251, используя арифметическое декодирование, в соответствии с типом сигнала у управляющего параметра.
[0136] Сначала блок 242 управления контекстом определяет тип сигнала у управляющего параметра 230 (этап S205). Когда типом сигнала является первый тип, соответствующий шаблону 1 (первый тип на этапе S205), блок 242 управления контекстом определяет значение контекста, используя управляющие параметры двух соседних блоков (этап S206). Другими словами, блок 242 управления контекстом определяет значение контекста при условии, что используются декодированные управляющие параметры двух соседних блоков - левого блока и верхнего блока.
[0137] С другой стороны, когда типом сигнала является второй тип, соответствующий шаблону 2 (второй тип на этапе S205), блок 242 управления контекстом определяет значение контекста с использованием значения управляющего параметра у одного соседнего блока (один непосредственно соседний блок в порядке кодирования) (этап S207). Другими словами, блок 242 управления контекстом определяет значение контекста при условии, что декодированный управляющий параметр верхнего блока не используется.
[0138] С другой стороны, когда типом сигнала является третий тип, соответствующий шаблону 3 (третий тип на этапе S205), блок 242 управления контекстом неизменно определяет значение контекста (этап S208). Другими словами, блок 242 управления контекстом определяет значение контекста при условии, что декодированные управляющие параметры верхнего блока и левого блока не используются.
[0139] Далее блок 242 управления контекстом добавляет увеличение, определенное на этапе S204, к основному значению индекса контекста, определенному на этапе S203, чтобы определить значение индекса контекста (этап S209).
[0140] Далее блок 243 двоичного арифметического декодирования определяет один из элементов двоичной последовательности посредством декодирования с использованием значения контекста, указанного значением индекса контекста, выданным от блока 242 управления контекстом (этап S210).
[0141] Далее, когда процессы с этапа S203 по S210 не выполняются над всеми элементами, включенными в двоичную последовательность (Нет на этапе S211), блок 202 декодирования переменной длины выполняет процессы с этапа S203 по S210 над следующим элементом, включенным в двоичную последовательность.
[0142] С другой стороны, когда процессы с этапа S203 по S210 завершаются над всеми элементами, включенными в двоичную последовательность (Да на этапе S211), блок 241 обратного преобразования из двоичной формы изменяет один или более элементов двоичной последовательности 251, полученной путем повторения процессов с этапа S203 по S210 больше одного раза, чтобы сформировать управляющий параметр 230 (этап S212).
[0143] Как описано выше, устройство 200 декодирования изображений в соответствии с Вариантом 2 осуществления определяет контекст, использующий верхний блок при выполнении арифметического декодирования над управляющим параметром первого типа, и определяет контекст без использования верхнего блока для управляющих параметров второго и третьего типов.
[0144] По сравнению со случаем, когда левый блок и верхний блок используются как равномерно "использующие контекстную модель на основе значений управляющих параметров у соседних блоков", устройство 200 декодирования изображений может уменьшить использование памяти с помощью этой конфигурации. Таким образом, устройство 200 декодирования изображений может остановить ухудшение качества изображения и уменьшить использование памяти.
[0145] Например, когда двоичная последовательность 251 является флагом и имеет только один элемент, то есть двоичная последовательность 251 состоит из 1 двоичного элемента, блок 241 обратного преобразования из двоичной формы может выводить двоичную последовательность 251 как она есть.
[0146] В дополнение к вышеприведенному описанию блок 101 или 201 управления может управлять каждым из блоков обработки или обращаться к некоему значению в памяти посредством сигнальной линии, которая не проиллюстрирована.
[0147] Хотя в вышеприведенном описании блок 142 или 242 управления контекстом переключается между тремя шаблонами с 1 по 3 в соответствии с типом сигнала у управляющего параметра, он может переключаться между двумя из шаблонов с 1 по 3 в соответствии с типом сигнала. Другими словами, блок 142 или 242 управления контекстом может переключаться между использованием и неиспользованием условия верхнего блока в соответствии с типом сигнала у управляющего параметра.
[0148] Кроме того, блок 142 или 242 управления контекстом может изменить способ переключения между выбранными таким образом контекстными моделями (включая случай, когда изменяется увеличение контекстной модели; то же самое будет применяться в дальнейшем) в соответствии с предварительно определенной информацией об изображении. Например, блок 142 или 242 управления контекстом может дополнительно сам переключать политику переключения в соответствии с объемом памяти, или размером горизонтальной ширины, или форматом выборки изображения, что влияет на количество обучений каждого контекста.
[0149] Хотя в качестве упрощенного описания блок 142 или 242 управления контекстом переключается между использованием и неиспользованием условия верхнего блока, блок 142 или 242 управления контекстом может объединить случай, когда верхний блок недоступен для переключения, и применить объединенный случай. Например, блок 142 или 242 управления контекстом может сам изменять политику переключения в соответствии с тем, является ли энтропийной секцией секция, которая будет обработана (entropy_slice_flag указывает 1 или 0). Аналогичным образом, когда нельзя обеспечить доступность верхнего соседнего блока, блок 142 или 242 управления контекстом может изменить политику переключения с тем, чтобы не использовать верхний блок.
[0150] Например, как проиллюстрировано на Фиг.8, блок 142 или 242 управления контекстом может переключить политику определения контекстной модели между первым критерием определения (этап S302) и вторым критерием определения (этап S303) в соответствии со значением параметра у предварительно определенной единицы. Здесь "в соответствии со значением параметра у предварительно определенной единицы" означает "в соответствии с тем, является ли секция энтропийной секцией", как описано выше. Кроме того, первый критерий определения является критерием, на основе которого выполняются процессы на Фиг.7. Второй критерий определения является критерием, исключающим этап S204 на Фиг.7, и является, например, традиционным критерием. Это эквивалентно определению увеличения индекса контекста с использованием параметра у предварительно определенной локальной единицы и значения параметра у единицы больше предварительно определенной локальной единицы.
[0151] Другими словами, блок 142 или 242 управления контекстом может переключаться с критерия определения, который будет применяться к единице меньше первой единицы, на другой критерий определения на основе значения управляющего параметра у первой единицы.
[0152] Фиг.9A иллюстрирует информацию отображения и назначение (распределение) индексов контекста. Фиг.9A указывает пример сигнала mvd_l0,l1,lc. То же самое применяется к другим типам сигнала.
[0153] Назначение 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) в двоичной последовательности. Кроме того, отношение между типами сигнала и индексами контекста является неизменным независимо от различных последовательностей изображений.
[0154] Каждое из назначений с 902B по 904B индексов контекста на Фиг.9A является назначением индексов контекста в соответствии с Вариантом 2 осуществления.
[0155] Назначение 902B указывает назначение индексов контекста, когда используется шаблон 2 (без использования верхнего блока). Здесь не нужно назначать три индекса контекста с 0 по 2 и другие в качестве условных значений, а достаточно двух индексов контекста - 0 и 1. Причина в том, что не используется condA. Таким образом, не нужно назначать индексы контекста заштрихованным частям на Фиг.9A. Таким образом, даже когда четыре индекса контекста таким же образом назначаются одному binIdx > 0 в качестве назначения 901B, достаточно всего 24 индекса контекста с 0 по 23. Таким образом, по меньшей мере четыре контекста можно уменьшить.
[0156] Назначение 903B указывает назначение индексов контекста, когда используется шаблон 3 (не использующий ни верхний блок, ни левый блок). Здесь не нужно назначать три индекса контекста с 0 по 2 и другие в качестве условных значений, а достаточно только одного индекса 0 контекста. Причина в том, что не используется ни condA, ни condL. Таким образом, не нужно назначать индексы контекста заштрихованным частям на Фиг.9A. Таким образом, достаточно всего 20 индексов контекста с 0 по 19. Таким образом, по меньшей мере восемь контекстов можно уменьшить.
[0157] Назначение 904B указывает пример назначения индексов контекста, когда последовательность изображений создается без включения какого-либо B-изображения, или когда используется только прямая ссылка в качестве единицы больше единицы блока типа сигнала. Здесь выражение "когда используется только прямая ссылка" означает случай, когда последовательность изображений включает в себя только I-изображения и P-изображения, или случай, когда используется только прямая ссылка для B-изображений, включенных в последовательность изображений. В таком случае, прежде всего, не нужно использовать индекс контекста для B-изображений. Причина в том, что не нужно отличать контекст для P-изображений от контекста для B-изображений, когда используется только прямая ссылка.
[0158] Таким образом, достаточно 10 индексов контекста (относительных значений) с 0 по 9, как проиллюстрировано на Фиг.9A. Таким образом, можно уменьшить по меньшей мере 18 контекстов. Другими словами, уменьшается количество контекстов, которое будет инициализировано или обновлено.
[0159] Хотя в качестве примера в этом документе описывается mvd, то же самое остается верным для назначения контекстов для других типов сигнала, в которых используется контекст для B-изображений и контекст для P-изображений.
[0160] Переключение критерия, как описано для Фиг.8, может затрагивать переключение одного из назначений с 901B по 904B, которые будут использоваться, в соответствии с типом параметра для всей или части последовательности изображений (предварительно определенной единицы).
[0161] В соответствии с Вариантом 2 осуществления индексы контекста, назначенные в соответствии с одним статическим критерием (использование верхнего и левого блоков), который используется традиционно, можно изменять в соответствии с критериями. Таким образом, в дополнение к уменьшению использования памяти политика назначения контекстов может, по необходимости, переключаться в соответствии с характеристиками предварительно определенной единицы.
[0162] Кроме того, блок 142 или 242 управления контекстом может изменять критерий определения, который будет использоваться, в соответствии с характеристиками системы изображений. Например, блок 142 или 242 управления контекстом может изменять критерий определения, который будет использоваться, в соответствии с интервалами I-изображений (настроечными значениями у IntraPeriod).
[0163] Хотя блок 142 или 242 управления контекстом переключается между критериями определения в соответствии с вышеупомянутыми условиями, он может переключать то, используется или нет верхний блок.
[0164] Кроме того, блок 142 или 242 управления контекстом может определять, используется или нет управляющий параметр верхнего блока, в соответствии с тем, доступен или нет управляющий параметр верхнего блока при кодировании или декодировании, на основе положения управляющего параметра. Другими словами, блок 142 или 242 управления контекстом может определять, доступен или нет управляющий параметр верхнего блока при декодировании, на основе положения текущего блока, и определять контекст с использованием одного из шаблонов 2 и 3, когда управляющий параметр верхнего блока недоступен. Кроме того, блок 142 или 242 управления контекстом может определять, доступно или нет опорное значение верхнего блока, на основе древовидной структуры для разбиения блоков TU, CU или PU. Другими словами, блок 142 или 242 управления контекстом может определять, доступен или нет управляющий параметр верхнего блока при декодировании, в соответствии с иерархической глубиной единицы данных, к которой принадлежит каждый из управляющих параметров, который будет обработан.
[0165] Фиг.9B иллюстрирует отношение между изображением, секциями и блоками в соответствии со стандартом HEVC. Одно изображение разбивается на одну или более секций. В примере из Фиг.9B изображение разбивается на две секции (СЕКЦИЯ 1 и СЕКЦИЯ 2). Одна из секций включает в себя блоки 301 (например, блоки дерева - Treeblock). Здесь блок 301 является наибольшей единицей в качестве некоторой единицы управления, когда секция разбивается по предварительно определенному размеру и имеет размер корня, когда единица находится в корне в иерархически разделенной структуре.
[0166] В примере из Фиг.9B СЕКЦИЯ 2 начинается с блока 301A и состоит из одной последовательности, включающей в себя блоки до нижнего правого угла изображения через заштрихованные блоки 301B и 301C. Один из заштрихованных блоков на Фиг.9B является одним блоком (TreeBlock), который будет обработан в настоящее время.
[0167] Каждый из блоков 301 включает в себя N×M пикселей. Один из блоков 301 рекурсивно разбивается внутри себя (обычно на четыре части). Другими словами, один TreeBlock концептуально составляет одно квадродерево. В блоке 301B на Фиг.9B верхний правый блок, полученный путем разбиения заштрихованного блока 301B на четыре, дважды рекурсивно разбивается на четыре блока. Другими словами, блок 301B включает в себя 10 логических единиц от верхней левой нулевой единицы до нижней правой девятой единицы, которые разбиваются с некоторой перспективой.
[0168] Здесь перспектива указывает идею множества деревьев, имеющих разные глубины с корнем в качестве исходной точки, например дерево относительно единицы кодирования (CU) и дерево относительно остаточных данных. Здесь значение каждого управляющего параметра принадлежит одному из листовых узлов.
[0169] Здесь то, доступно или нет фактически значение управляющего параметра некоторого типа сигнала, включенного в верхний блок, зависит от типа дерева, к которому принадлежит управляющий параметр. Таким образом, блок 142 или 242 управления контекстом может изменить критерий определения в соответствии с типом дерева, к которому принадлежит управляющий параметр. Это изменение эквивалентно изменению в синтаксической единице. Например, блок 142 или 242 управления контекстом может использовать шаблон 2 или 3, в котором верхний блок не используется для данных адаптивного фильтра со структурой данных, например alf_param, тогда как он может использовать политику контекстной модели (шаблон 1) для других синтаксисов, которые используются традиционно. Другими словами, второй тип или третий тип может быть управляющим параметром, имеющим предварительно определенную структуру данных. Кроме того, это означает, что критерий определения может изменяться в соответствии с типом дерева у соседнего блока.
[0170] Кроме того, может ли значение управляющего параметра фактически использоваться или дает преимущество уменьшения использования памяти, отличается в зависимости от положения блока в иерархическом отношении. Другими словами, блок 142 или 242 управления контекстом может переключаться между использованием или неиспользованием верхнего блока в соответствии с глубиной блока и иерархическим положением блока.
[0171] Например, на Фиг.9B номера с 0 по 9 в блоке 301B идут в порядке декодирования. В этом случае управляющие параметры блоков 1 и 2 доступны, когда кодируется или декодируется блок 4.
[0172] Кроме того, чтобы уменьшить использование памяти, блок 142 или 242 управления контекстом может выбрать шаблон 1, использующий верхний блок, когда блок не находится на глубине 0 и собственное положение является одним из второго к последующим элементам при вертикальном разбиении. Здесь "глубина" указывает глубину от корня. Другими словами, когда некоторый блок определяется как блок[xn],[y0][глубина], критерий определения может изменяться в соответствии с тем, соответствует или нет текущий блок определению блок[xn][(y0) + 1][глубина]. Другими словами, верхние блоки используются для блоков с 4 по 9 на Фиг.9B. Когда дерево кодируется или декодируется в пронумерованном порядке (начиная с 0 и заканчивая в 9), понятно, что блоки с 4 по 9 могут использовать управляющие параметры, включенные в верхние блоки. Кроме того, имеется преимущество в том, что эти блоки должны хранить данные только временно. Кроме того, это указывает, что значение контекста определяется в соответствии с трехмерным положением, включающим в себя глубину в дополнение к координатам x и y. Здесь значение контекста может определяться в соответствии по меньшей мере с одним положением из координат x и y и глубины.
[0173] Кроме того, условное значение блока на более высоком уровне можно использовать (придерживаться) в качестве условного значения блока на более низком уровне. Аналогичным образом условное значение блока на более низком уровне можно использовать (придерживаться) в качестве условного значения блока на более высоком уровне.
[0174] В качестве расширения этого следующий способ может использоваться вместо поддержания значения для нижней строки на основе минимальной единицы (например, 4×4), как описано для Фиг.38. Например, условное значение или значение для выведения условного значения поддерживаются в этом способе на основе большей единицы, нежели минимальная единица, например 32×32 или 64×64. В этом способе значение для нижней строки вычисляется с использованием значений двух блоков в верхней строке с помощью интерполяции или внутреннего разделения значения выше текущего блока, используя взаимное расположение между двумя блоками и текущим блоком. Например, в этом способе выборочные значения поддерживаются для верхней строки на основе большей единицы, нежели минимальная единица (например, 4×4). Выборочные значения для верхней строки выводятся с помощью внутреннего разделения в соответствии с положением блока (от 4×4 до 64×64 и т.п.) в нижней строке. Хотя объем вычисления увеличивается, с помощью этой структуры можно уменьшить использование памяти. По существу, по сравнению со случаем, когда выборочные значения поддерживаются на основе минимальной единицы для наихудшего случая, в этом способе можно уменьшить использование памяти для верхней строки. Например, когда выборочные значения поддерживаются на основе единицы 32×32, использование памяти уменьшается до одной восьмой от использования памяти, когда используется минимальная единица (4×4).
[0175] Кроме того, например, split_coding_unit_flag является флагом, указывающим, является ли блок разделенным четырехкратно. Контекст для этого флага (split_codig_unit_flag) может определяться в соответствии с иерархической глубиной текущего блока и путем поддержания условного значения condL для левого блока без использования условного значения (condA) для верхнего блока. Кроме того, когда основным фактором типа сигнала является не верхний блок или левый блок, а глубина, блок 142 или 242 управления контекстом может использовать только глубину в качестве условия для определения контекста. Другими словами, блок 142 или 242 управления контекстом может определять контекст для других типов сигнала с использованием глубины, без обращения к верхнему блоку и левому блоку.
[0176] Кроме того, блок 142 или 242 управления контекстом может изменять эти критерии с учетом взаимного расположения между текущим блоком и другими секциями. Ниже будут описываться три заштрихованных блока 301A, 301B и 301C на Фиг.9B.
[0177] Здесь блок 301A является начальным блоком, и оба из левого блока и верхнего блока в блоке 301A включаются в другую секцию. Верхний блок в блоке 301B включается в другую секцию. Оба из левого блока и верхнего блока в блоке 301C включаются в ту же секцию, включающую в себя блок 301C. Блок 142 или 242 управления контекстом может переключать критерий в соответствии с таким условием. Другими словами, блок 142 или 242 управления контекстом может переключать критерий (i) в соответствии с тем, включается или нет верхний блок в другую секцию, (ii) в соответствии с тем, включается или нет левый блок в другую секцию, или (iii) в соответствии с (i) и (ii). Другими словами, блок 142 или 242 управления контекстом может определять, что управляющий параметр верхнего блока недоступен при декодировании, когда текущий блок находится на границе секции. Соответственно, когда декодирующая обработка над верхней СЕКЦИЕЙ 1 не завершена, например, можно выполнить декодирующую обработку с учетом того, может или нет СЕКЦИЯ 2 сама получить информацию.
[0178] Далее будет описываться иерархическая единица обработки (многоуровневая блочная структура). Фиг.10 иллюстрирует иерархическую единицу обработки (многоуровневую блочную структуру).
[0179] Устройство 100 кодирования изображений кодирует движущиеся изображения на основе единицы обработки, и устройство 200 кодирования изображений декодирует кодированный поток на основе единицы обработки. Единица обработки делится на слои путем разбиения единицы обработки на небольшие единицы обработки и дальнейшего разбиения небольших единиц обработки на меньшие единицы обработки. Когда единица обработки меньше, глубина единицы обработки больше и иерархически находится ниже, а указывающее глубину значение больше. Наоборот, когда единица обработки больше, глубина единицы обработки меньше и иерархически находится выше, а указывающее глубину значение меньше.
[0180] Единица обработки включает в себя единицу кодирования (CU), единицу предсказания (PU) и единицу преобразования (TU). CU является блоком максимально из 128×128 пикселей и является единицей, соответствующей традиционному макроблоку. PU является основной единицей для внешнего предсказания. TU является основной единицей для ортогонального преобразования и имеет размер, идентичный размеру PU или гораздо меньше PU. CU разбивается, например, на 4 суб-CU, и одна из суб-CU включает в себя PU и TU, имеющие такой же размер, как у суб-CU (здесь PU и TU перекрывают друг друга). Например, PU дополнительно разбивается на 4 суб-PU, и TU дополнительно разбивается на 4 суб-CU. Когда единица обработки разбивается на меньшие единицы обработки, каждая из меньших единиц обработки называется субъединицей обработки. Например, когда единицей обработки является CU, субъединицей обработки является суб-CU. Когда единицей обработки является PU, субъединицей обработки является суб-PU. Кроме того, когда единицей обработки является TU, субъединицей обработки является суб-TU.
[0181] Точнее говоря, нижеследующее указывает подробности.
[0182] Одно изображение разбивается на одну или более секций. Секция является последовательностью наибольших единиц кодирования. Положение наибольшей единицы кодирования указывается адресом lcuAddr наибольшей единицы кодирования.
[0183] Каждая из единиц кодирования, включающих в себя соответствующие наибольшие единицы кодирования, разбивается на четыре единицы кодирования. В результате создается квадродерево, имеющее размер CU. Положение CU указывается индексом cuIdx единицы кодирования, имеющим некую выборку (пиксель или коэффициенты) в верхнем левом углу наибольшей единицы кодирования в качестве начальной точки.
[0184] Когда разбиение CU не разрешается, CU обрабатывается как PU. Аналогично CU положение у PU указывается индексом puIdx единицы предсказания, имеющим некую выборку в верхнем левом углу наибольшей единицы кодирования в качестве начальной точки.
[0185] PU может включать в себя разделы (разделы PU или суб-PU). Раздел PU указывается индексом puPartIdx раздела единицы предсказания, имеющим некую выборку в верхнем левом углу PU в качестве начальной точки.
[0186] PU может включать в себя TU. Аналогично CU TU может разбиваться на четыре меньших TU (суб-TU). Это указывает разрешение разбиения квадродерева остаточного сигнала. Положение TU указывается индексом tuIdx единицы преобразования, имеющим некую выборку в верхнем левом углу PU в качестве начальной точки.
[0187] Здесь определение каждой из единиц обработки выглядит следующим образом:
[0188] CTB (блок дерева кодирования): Основная единица для идентификации разбиения квадродерева квадратной области. Имеет различные размеры квадрата;
[0189] LCTB (Наибольший блок дерева кодирования): Наибольший CTB, разрешенный в секции. Секция включает в себя множество LCTB, которые не перекрывают друг друга;
[0190] SCTB (наименьший блок дерева кодирования): Наименьший CTB, разрешенный в секции. Разбиение SCTB на меньшие CTB не разрешается;
[0191] PU (единица предсказания): Основная единица для идентификации предсказывающей обработки. PU такая же большая, как CU, в которой не разрешается разбиение. Хотя разрешается разбиение CU на четыре квадратные области, PU может разбиваться на множество разделов, имеющих любую форму;
[0192] TU (единица преобразования): Основная единица для идентификации преобразования и квантования;
[0193] CU (единица кодирования): То же самое, что и CTB;
[0194] LCU (наибольшая единица кодирования): То же самое, что и наибольший CTB; и
[0195] SCU (наименьшая единица кодирования): То же самое, что и наименьшая CTB.
[0196] Кроме того, параметры квантования включают в себя по меньшей мере одно из приращения параметра шкалы квантования (приращение QP или QP-приращение), параметра смещения квантования, индекса (Qmatrix select idc) и параметра смещения зоны нечувствительности квантования. Индекс служит для выбора одной из квантованных матриц масштабирования.
[0197] Приращение параметра шкалы квантования (приращение QP или QP-приращение) является разницей между параметром шкалы квантования, который будет применяться к коэффициентам преобразования, и параметром шкалы квантования, заданным заголовком последовательности или заголовком секции (либо параметром шкалы квантования непосредственно перед ним в порядке Z-сканирования).
[0198] Параметр смещения квантования также называется смещением квантования и является значением регулировки (смещением значение) для округления сигнала при выполнении квантования. Таким образом, когда устройство 100 кодирования изображений выполняет квантование, оно кодирует смещение квантования. Затем устройство 200 декодирования изображений декодирует кодированное смещение квантования. Далее устройство 200 декодирования изображений выполняет корректировку с использованием смещения квантования при обратном квантовании коэффициентов преобразования.
[0199] Индекс (Qmatrix select idc) называется адаптивной матрицей квантования и указывает, какая матрица масштабирования квантования из множества матриц масштабирования квантования используется. Кроме того, когда имеется только одна матрица масштабирования квантования, Qmatrix select idc указывает, используется или нет матрица масштабирования квантования. Адаптивная матрица квантования может управляться по каждой единице блока (единице обработки).
[0200] Параметр смещения зоны нечувствительности квантования называется адаптивной зоной нечувствительности и является управляющей информацией для адаптивного изменения зоны нечувствительности на каждый блок. Зона нечувствительности является шириной, чьи частотные коэффициенты становятся 0 в результате квантования (последняя ширина, которая становится +1 или -1 после квантования).
[0201] Хотя выше описывается случай, когда шаблон 3, при котором предварительно определенное фиксированное значение используется в качестве значения контекста, тот случай может выполняться при условии, что управляющие параметры верхнего блока и левого блока не используются, и дополнительно при условии неиспользования управляющих параметров верхнего блока и левого блока в качестве шаблона 3. Например, блок 142 или 242 управления контекстом может определять контекст в соответствии с иерархической глубиной единицы данных, к которой принадлежит каждый из управляющих параметров, в качестве шаблона 3.
(Вариант 3 осуществления)
[0202]
Вариант 3 осуществления будет описывать, какой тип сигнала следует использовать в качестве первого типа и второго типа (или третьего типа).
[0203] Точнее говоря, авторы настоящего изобретения проверили каждый из типов сигнала ниже среди типов сигнала, которые указаны на Фиг.3 (Раздел 9.3.3.1.1.1 в NPL 2). Проверен каждый из типов сигнала, потому что имеются различные параметры, и на основе результата проверки по одному из типов сигнала трудно предсказать, удовлетворяет или нет достоверности каждый шаблон других типов сигнала (какой из шаблонов с 1 по 3 является подходящим).
[0204] Проверка проводится в соответствии со структурой (настроечный параметр и версия HM3.0 программного обеспечения), описанной в JCTVC-E700, "Common test conditions and software reference configurations" (см. NPL 3). Кроме того, каждое из тестовых изображений имеет длину, ограниченную 49 кадрами.
[0205] Способ кодирования изображений и способ декодирования изображений в соответствии с Вариантом 3 осуществления относятся к CABAC. Таким образом, проверка проведена с использованием следующих четырех тестовых шаблонов, которые являются набором настроечных значений, указывающих 1 в качестве значения Режима символа (#0:LCEC, 1:CABAC):
[0206] 4.1 Внутреннее кодирование, высокоэффективная настройка;
4.3 Произвольный доступ, высокоэффективная настройка;
4.5 Малая задержка, высокоэффективная настройка; и
4.7 Малая задержка, высокоэффективная настройка (только P-секции).
[0207] Оценка производится на основе значения оценки, называемого "BD-скорость", которое используется в качестве стандарта оценки, единообразно используемого для оценки реализации в HEVC. BD-скорость Y, BD-скорость U и BD-скорость V являются BD-скоростями для цветового пространства YUV и являются значениями стандарта оценки. В соответствии с VCEG-AI11 (NPL 4), BD-скорость является значением оценки, полученным путем объединения двух пар кодовых величин с результатом PSNR и представления эффективности кодирования в соответствии с отношением площадей. Кроме того, BD-скорость, указывающая отрицательное значение, означает, что эффективность кодирования повысилась. Критерии сравнения основываются на результате вывода опорной программы, которая реализует шаблон 1. Результаты шаблонов 2 и 3 показаны относительно результата шаблона 1.
[0208] Нижеследующее описывает результат проверки по каждому из типов сигнала:
[0209] (Первая проверка) 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
[0210] Фиг.11 иллюстрирует способ арифметического декодирования для split_coding_unit_flag.
[0211] Проверка проводится путем изменения контекстной модели с шаблона 1 на шаблон 2 или 3 только для типа сигнала, который будет проверяться, без изменения контекстной модели для других типов сигнала и параметра проверки, заданного в NPL 3. В столбце на Фиг.11 значение "Фиксированный" указывает, что условие (условие верхнего блока или условие верхнего блока) у столбца, заданного с помощью "Фиксированный", не используется, когда выводится значение контекста (или увеличение). Другими словами, когда только одно из условия левого блока и условия верхнего блока является "Фиксированным", используется только другое условие. Кроме того, когда условие левого блока и условие верхнего блока являются "Фиксированными", предварительно определенное значение (например, 0) используется в качестве значения контекста (или увеличения).
[0212] Смысл типа сигнала "split_coding_unit_flag" определяется следующим образом.
[0213] 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.
[0214] Данные split_coding_unit_flag структурируются в синтаксис дерева кодирования в качестве синтаксиса. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0215] Фиг.12A и 12B являются таблицами для описания результатов проверки над split_coding_unit_flag.
[0216] Фиг.12A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.12B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0217] Результат проверки на каждой из Фиг.12A и 12B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами.
[0218] Кроме того, значение оценки представляется стандартом оценки, указывающим значение относительно значения оценки в случае шаблона 1, в котором используются левый блок и верхний блок. Точнее говоря, когда значение оценки положительно, результат хуже значения оценки (BD-скорости) в случае шаблона 1. Кроме того, когда значение оценки отрицательно, результат лучше значения оценки в случае шаблона 1.
[0219] Результат разъясняет, что шаблон 1 является лучшим в качестве шаблона контекстной модели для split_coding_unit_flag. Другими словами, значения оценки, полученные шаблонами 2 и 3, хуже, чем у шаблона 1.
[0220] Таким образом, когда типом сигнала у управляющего параметра является split_coding_unit_flag, блок 142 или 242 управления контекстом определяет значение контекста с использованием шаблона 1, который является традиционным шаблоном контекстной модели, в показателях BD-скорости.
[0221] (Вторая проверка) skip_flag
Фиг.13 иллюстрирует способ арифметического декодирования для skip_flag. Здесь способ проверки такой же, как и в первой проверке.
[0222] Смысл типа сигнала "skip_flag" определяется следующим образом.
[0223] skip_flag[x0][y0], равный 1, задает, что для текущей единицы кодирования при декодировании P- или B-секции, никакие синтаксические элементы кроме индексов предсказателя векторов движения не анализируются после skip_flag[x0][y0]. skip_flag[x0][y0], равный 1, задает, что единицу кодирования не нужно пропускать. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока кодирования относительно верхней левой выборки яркости изображения. Другими словами, skip_flag указывает, нужно или нет пропускать целевую CU (обрабатывать как пропущенный блок).
[0224] Данные skip_flag структурируются в синтаксис единицы кодирования в качестве синтаксиса. Другими словами, skip_flag устанавливается для каждой CU. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0225] Фиг.14A и 14B являются таблицами для описания результатов проверки над skip_flag.
[0226] Фиг.14A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.14B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0227] Результат проверки на каждой из Фиг.14A и 14B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0228] Результат разъясняет, что шаблон 1 является лучшим в качестве шаблона контекстной модели для "skip_flag". Другими словами, значения оценки, полученные шаблонами 2 и 3, хуже, чем у шаблона 1.
[0229] Таким образом, когда типом сигнала у управляющего параметра является "skip_flag", блок 142 или 242 управления контекстом определяет значение контекста с использованием шаблона 1, который является традиционным шаблоном контекстной модели, в показателях BD-скорости.
[0230] (Третья проверка) "merge_flag"
Фиг.15 - таблица, указывающая способ арифметического декодирования для merge_flag. Здесь способ проверки такой же, как способы в первой проверке и второй проверке.
[0231] Смысл типа сигнала "merge_flag" определяется следующим образом.
[0232] merge_flag[x0][y0] задает, выводятся ли параметры внешнего предсказания для текущей единицы предсказания из соседнего раздела с внешним предсказанием. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Когда merge_flag[x0][y0] отсутствует (InferredMergeFlag равен 1), подразумевается, что он равен 1. Другими словами, merge_flag[x0][y0] указывает, используется или нет режим слияния. Здесь режим слияния является режимом, в котором вектор движения и индекс опорного изображения копируются из соседнего блока у текущего блока, который будет кодироваться, и текущий блок кодируется.
[0233] Данные merge_flag структурируются в единицу предсказания в качестве синтаксиса. Другими словами, merge_flag устанавливается для каждой PU. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0234] Фиг.16A и 16B являются таблицами для описания результатов проверки над merge_flag.
[0235] Фиг.16A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.16B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0236] Результат проверки на каждой из Фиг.16A и 16B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0237] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для merge_flag.
[0238] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 142 или 242 управления контекстом определяет значение контекста без использования верхнего блока в качестве соседнего блока, в частности, когда типом сигнала у управляющего параметра является merge_flag. Другими словами, блок 142 или 242 управления контекстом определяет значение контекста с использованием шаблона 2 или 3, когда типом сигнала у управляющего параметра является merge_flag. Другими словами, первый тип включает в себя "split_coding_unit_flag" или "skip_flag", а второй тип или третий тип включает в себя "merge_flag". Соответственно, устройство кодирования изображений и устройство декодирования изображений в соответствии с Вариантом 3 осуществления могут уменьшить использование памяти наряду со сдерживанием уменьшения BD-скорости.
[0239] Когда шаблон 2 сравнивается с шаблоном 3 для merge_flag, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для merge_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0240] Здесь по сравнению с merge_flag и skip_flag, хотя остаточные данные вектора движения не передаются в режиме пропуска, остаточные данные вектора движения передаются в режиме слияния. Соответственно, даже когда контекст, который будет временно использован, не является оптимальным для merge_flag, ухудшение качества изображения, вызванное неиспользованием оптимального контекста, можно в какой-то степени компенсировать обработкой, использующей остаточные данные. Соответственно, останавливается ухудшение качества изображения.
[0241] (Четвертая проверка) "ref_idx_l0(l1,lc)"
Фиг.17 - таблица, указывающая способ арифметического декодирования для ref_idx. Здесь способ проверки такой же, как способы в первой проверке и второй проверке.
[0242] Смысл типа сигнала "ref_idx" определяется следующим образом.
[0243] ref_idx_l0[x0][y0] задает индекс опорного изображения списка 0 для текущей единицы предсказания. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения.
[0244] Кроме того, ref_idx_l1[x0][y0] имеет такую же семантику, что и l0, и список 0 заменяется l1 и списком 1 в ref_idx_l0. Другими словами, ref_idx_l1 указывает индекс опорного изображения для списка 1 текущей PU.
[0245] Наличие или отсутствие ref_idx_l1 может определяться, например, на основе типа изображения.
[0246] Кроме того, 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.
[0247] Данные ref_idx_l0(l1,lc) структурируются в единицу предсказания в качестве синтаксиса. Другими словами, merge_flag устанавливается для каждой PU. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0248] Фиг.18A и 18B являются таблицами для описания результатов проверки над ref_idx.
[0249] Фиг.18A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.18B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0250] Результат проверки на каждой из Фиг.18A и 18B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0251] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для ref_idx.
[0252] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 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-скорости.
[0253] Здесь второй тип или третий тип должны включать в себя только по меньшей мере один из ref_idx_l0, ref_idx_l1 и ref_idx_lc. Например, второй тип или третий тип могут включать в себя ref_idx_l0 и ref_idx_l1 без включения ref_idx_lc.
[0254] Когда шаблон 2 сравнивается с шаблоном 3 для ref_idx, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для ref_idx_l0(l1, lc). Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0255] Здесь ref_idx используется в нормальном режиме внешнего предсказания, который не является ни режимом пропуска, ни режимом слияния. Хотя один и тот же вектор движения для верхнего блока и левого блока используется в качестве вектора движения текущего блока в режиме пропуска и режиме слияния, вектор движения, отличный от такового для верхнего блока и левого блока, используется в качестве вектора движения текущего блока в нормальном режиме внешнего предсказания, отличном от режима пропуска и режима слияния. Соответственно, эффективность кодирования уменьшается с использованием верхнего блока и левого блока для ref_idx, как в шаблоне 1. Другими словами, возможно повысить эффективность кодирования с использованием шаблона 2 или 3 для ref_idx.
[0256] Здесь блок 142 или 242 управления контекстом может использовать значение, выведенное из результата condL и результата condA для ref_idx_l0[xP][yP] текущего блока, вместо использования ref_idx_lc[xL][yP] соседнего блока A или ref_idx_lc[xP][yA] соседнего блока B при определении условия A (или L) для ref_idx_lc [xP][yP]. Другими словами, блок 142 или 242 управления контекстом может вывести результирующее значение условия в качестве зависимого значения от значений текущих блоков l0 и l1.
[0257] Устройство кодирования или устройство записи формирует 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)}.
[0258] Таким образом, может выполняться следующее. Фиг.18C - таблица, указывающая условие A и условие L для ref_idx, как указано в NPL 2. Фиг.18D - таблица, указывающая условие A и условие L для ref_idx в соответствии с Вариантом 3 осуществления.
[0259] Как указано на Фиг.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 в одном и том же блоке.
[0260] Соответственно, ref_idx_lc не требуется обращение к памяти. Другими словами, условное значение для ref_idx_lc можно вывести без обращения к значению ref_idx_lc для верхнего блока.
[0261] (Пятая проверка) "inter_pred_flag"
Фиг.19 - таблица, указывающая способ арифметического декодирования для inter_pred_flag.
[0262] Смысл типа сигнала "inter_pred_flag" определяется следующим образом.
[0263] inter_pred_flag[x0][y0] задает, используется ли одиночное предсказание либо двойное предсказание для текущей единицы предсказания в соответствии с Таблицей 7 11. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Здесь одиночное предсказание является предсказанием с использованием lc (сочетание списков), а двойное предсказание является предсказанием с использованием списка 0 и списка 1. Кроме того, сочетание списков получается путем объединения (слияния) списка 0 и списка 1. Кроме того, inter_pred_flag используется, только когда текущей секцией является B-секция.
[0264] Данные inter_pred_flag структурируются в единицу предсказания в качестве синтаксиса. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0265] Фиг.20A и 20B являются таблицами для описания результатов проверки над inter_pred_flag.
[0266] Фиг.20A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.20B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0267] Результат проверки на каждой из Фиг.20A и 20B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0268] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для inter_pred_flag.
[0269] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 142 или 242 управления контекстом определяет значение контекста без использования верхнего блока в качестве соседнего блока, в частности, когда типом сигнала у управляющего параметра является inter_pred_flag. Другими словами, блок 142 или 242 управления контекстом определяет значение контекста с использованием шаблона 2 или 3, когда типом сигнала у управляющего параметра является inter_pred_flag. Другими словами, первый тип включает в себя "split_coding_unit_flag" или "skip_flag", а второй тип или третий тип включает в себя "inter_pred_flag". Соответственно, устройство кодирования изображений и устройство декодирования изображений в соответствии с Вариантом 3 осуществления могут уменьшить использование памяти наряду со сдерживанием уменьшения BD-скорости.
[0270] Когда шаблон 2 сравнивается с шаблоном 3 для inter_pred_flag, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для inter_pred_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0271] Здесь inter_pred_flag используется в нормальном режиме внешнего предсказания, который не является ни режимом пропуска, ни режимом слияния. Хотя один и тот же вектор движения для верхнего блока и левого блока используется в качестве вектора движения текущего блока в режиме пропуска и режиме слияния, вектор движения, отличный от такового для верхнего блока и левого блока, используется в качестве вектора движения текущего блока в нормальном режиме внешнего предсказания, отличном от режима пропуска и режима слияния. Соответственно, эффективность кодирования уменьшается с использованием верхнего блока и левого блока для inter_pred_flag, как в шаблоне 1. Другими словами, возможно повысить эффективность кодирования с использованием шаблона 2 или 3 для inter_pred_flag.
[0272] Кроме того, как описано выше, возможно дополнительно повысить эффективность кодирования путем определения значения контекста в соответствии с глубиной текущего блока для inter_pred_flag.
[0273] (Шестая проверка) "mvd_l0(l1,lc)"
Фиг.21 - таблица, указывающая способ арифметического декодирования для mvd_l0(l1,lc). Здесь способ проверки такой же, как способы в первой проверке и второй проверке.
[0274] Смысл типа сигнала "mvd_l0(l1,lc)" определяется следующим образом.
[0275] mvd_l0[x0][y0][compIdx] задает разность между составляющей вектора списка 0, которая будет использоваться, и ее предсказанием. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения. Горизонтальной составляющей вектора движения назначается compIdx = 0, а вертикальной составляющей вектора движения назначается compIdx = 1. Когда отсутствует любая из двух составляющих, подразумеваемым значением является 0. Другими словами, mvd_l0 представляет разность между вектором движения в положении PU (xP, yP) и предсказанным вектором, используя первую составляющую (горизонтальная составляющая compIdx = 0) и вторую составляющую (вертикальная составляющая compIdx = 1).
[0276] mvd_l1[x0][y0][compIdx] имеет такую же семантику, что и l0, и список 0 заменяется соответственно l1 и списком 1 в mvd_l0. Наличие или отсутствие mvd_l1 может определяться на основе типа изображения и прочего.
[0277] Кроме того, mvd_lc[x0][y0][compIdx] имеет такую же семантику, как и mvd_l0, при этом l0 и список 0 заменены соответственно lc и сочетанием списков. Другими словами, mvd_lc формируется путем объединения mvd_l0 и mvd_l1.
[0278] Термин "mvd" включает в себя по меньшей мере mvd_l0, и включает в себя по меньшей мере одну из mvd_l1 и mvd_lc в соответствии с состоянием изображения.
[0279] Данные mvd структурируются в единицу предсказания в качестве синтаксиса. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0280] Фиг.22A и 22B являются таблицами для описания результатов проверки над mvd.
[0281] Фиг.22A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.22B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0282] Результат проверки на каждой из Фиг.22A и 22B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0283] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для mvd.
[0284] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 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-скорости.
[0285] Другими словами, второй тип или третий тип должны включать в себя только по меньшей мере одну из mvd_l0, mvd_l1 и mvd_lc. Например, второй тип или третий тип могут включать в себя mvd_l0 и mvd_l1 без включения mvd_lc.
[0286] Когда шаблон 2 сравнивается с шаблоном 3 для mvd, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для mvd_l0(l1,lc). Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0287] Здесь, хотя остаточные данные (mvd) вектора движения не передаются в режиме пропуска, остаточные данные (mvd) вектора движения передаются в режиме слияния. Соответственно, даже когда контекст, который будет временно использован, не является оптимальным в режиме слияния, ухудшение качества изображения, вызванное неиспользованием оптимального контекста, можно в какой-то степени компенсировать обработкой, использующей mvd. Соответственно, останавливается ухудшение качества изображения, когда близлежащий блок для mvd не используется.
[0288] Когда условное значение у верхнего блока или левого блок (condA или condL) используется в соответствии с предварительно определенным условием, применима следующая модификация.
[0289] Первая модификация является способом, использующим зависимость между mvd_l0, mvd_l1 и mvd_lc.
[0290] Точнее говоря, блок 142 или 242 управления контекстом может вывести условное значение у другого типа сигнала, имеющего условное значение, зависящее от условных значений (condL или condA) у двух типов сигнала из трех типов сигнала mvd_l0, mvd_l1 и mvd_lc, использующих условные значения.
[0291] Например, когда значение condA для mvd_lc зависит от условных значений (значения condA для l0 и значения condA для l1) у двух типов сигнала mvd_l0 и lvd_l1, блоку 142 или 242 управления контекстом не нужно обращаться к значению condA для mvd_lc.
[0292] Фиг.22C - таблица, указывающая условие A и условие L для mvd, как указано в NPL 2. Фиг.22D - таблица, указывающая условие A и условие L для mvd в соответствии с Вариантом 3 осуществления.
[0293] Как указано на Фиг.22D, блок 142 и 242 управления контекстом может вывести условные значения у condL и condA для mvd_lc по меньшей мере из одного из условных значений у mvd_l0 и mvd_l1 в одном и том же блоке.
[0294] Здесь блок 142 и 242 управления контекстом может использовать эти отношения для одного или обоих из горизонтального направления (compIdx = 0) и вертикального направления (compIdx = 1).
[0295] Кроме того, блок 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]. Таким образом, возможно уменьшить потери с использованием зависимости. Другими словами, можно уменьшить количество индексов контекста.
[0296] Здесь условные значения верхнего блока и левого блока используются только для первого бита mvd в соответствии с NPL 2. Другими словами, блок 142 и 242 управления контекстом может использовать шаблон 2 или 3 для первого бита mvd. Другими словами, блок 142 и 242 управления контекстом может использовать шаблон 2 или 3 для abs_mvd_greater0_flag[compIdx], указывающего, является или нет разность между вектором движения и предсказанным вектором больше либо равной 0.
[0297] (Седьмая проверка) "no_residual_data_flag"
Фиг.23A - таблица, указывающая способ арифметического декодирования для no_residual_data_flag.
[0298] Смысл типа сигнала "no_residual_data_flag" определяется следующим образом.
[0299] no_residual_data_flag, равный 1, задает, что никакие остаточные данные не присутствуют для текущей единицы кодирования. no_residual_data_flag, равный 0, задает, что остаточные данные присутствуют для текущей единицы кодирования. Когда no_residual_data_flag отсутствует, его значение должно подразумеваться равным 0.
[0300] Данные no_residual_data_flag структурируются в дерево преобразования среди типов деревьев. Фиг.23B - таблица, указывающая синтаксис дерева преобразования. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0301] Фиг.24A и 24B являются таблицами для описания результатов проверки над no_residual_data_flag.
[0302] Фиг.24A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.24B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0303] Результат проверки на каждой из Фиг.24A и 24B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0304] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для no_residual_data_flag.
[0305] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 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-скорости.
[0306] Когда шаблон 2 сравнивается с шаблоном 3 для no_residual_data_flag, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для no_residual_data_flag. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0307] Здесь no_residual_data_flag указывает наличие или отсутствие коэффициентов (остаточные данные) яркости и цветности. Кроме того, остаточные данные увеличиваются при внутреннем предсказании и уменьшаются при внешнем предсказании. Таким образом, эффективность кодирования уменьшается, когда режим у близлежащего блока отличается от режима текущего блока (близлежащий блок имеет признаки, отличные от таковых у текущего блока). Например, когда внутреннее предсказание выполняется над текущим блоком, а внешнее предсказание выполняется над близлежащим блоком, остаточные данные у текущего блока уменьшаются, а остаточные данные у близлежащего блока увеличиваются. Соответственно, эффективность кодирования уменьшается, когда используется контекст близлежащего блока. Таким образом, блок 142 и 242 управления контекстом может повысить эффективность кодирования с использованием контекста текущего блока без зависимости от близлежащего блока.
[0308] (Восьмая проверка) "intra_chroma_pred_mode"
Фиг.25A - таблица, указывающая способ арифметического декодирования для intra_chroma_pred_mode.
[0309] Данные intra_chroma_pred_mode структурируются в единицу предсказания в качестве синтаксиса. Устройство декодирования изображений анализирует последовательность битов в соответствии с синтаксисом этой структуры данных.
[0310] Смысл типа сигнала "intra_chroma_pred_mode" определяется следующим образом.
[0311] intra_chroma_pred_mode[x0][y0] задает режим внутреннего предсказания для выборок цветности. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока предсказания относительно верхней левой выборки яркости изображения.
[0312] Значение режима внутреннего предсказания для цветности "chroma intra prediction mode" (IntraPredModeC) определяется путем объединения значения intra_chroma_pred_mode (значение между 0 и 4 включительно) и IntraPredMode[xP][yB] у текущего блока. Здесь координатами текущего блока являются [xB][yB]. [xB][yB] указывает такое же положение, что и [xP][yP]. Кроме того, IntraPredMode указывает значение режима предсказания для яркости.
[0313] Фиг.25B - таблица, указывающая способ выведения IntraPredModeC на основе intra_chroma_pred_mode и IntraPredMode, которые описываются в NPL 2.
[0314] Кроме того, IntraPredMode (переменная, начинающаяся с заглавной буквы) не является значением, непосредственно кодируемым в кодированную последовательность битов, а является последовательностью значений, декодированной декодером. Когда выводится IntraPredMode[xP][yP] у текущего блока, используются IntraPredMode[xP][yA] и другие у соседнего блока, если доступны.
[0315] Фиг.26A и 26B являются таблицами для описания результатов проверки над intra_chroma_pred_mode.
[0316] Фиг.26A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.26B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0317] Результат проверки на каждой из Фиг.26A и 26B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0318] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для intra_chroma_pred_mode.
[0319] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 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-скорости.
[0320] Когда шаблон 2 сравнивается с шаблоном 3 для intra_chroma_pred_mode, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для intra_chroma_pred_mode. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0321] Здесь intra_chroma_pred_mode является информацией в общей сложности из 4 битов, и первый 1 бит указывает, используется или нет режим внутреннего предсказания для яркости в качестве режима внутреннего предсказания для цветности. Здесь блок 142 и 242 управления контекстом использует шаблон 2 или 3 для первого 1 бита. Точнее говоря, intra_chroma_pred_mode указывает 0, когда для цветности используется такой же режим, как у яркости. Когда для цветности используется режим, отличный от такового у яркости, intra_chroma_pred_mode указывает 1, а оставшиеся 3 бита указывают режим, используемый для цветности.
[0322] При внутреннем предсказании используется корреляция между верхним блоком, левым блоком и текущим блоком. Другими словами, поскольку информация о корреляции используется при внутреннем предсказании, эффективным является использование для цветности такого же режима, как у яркости. Другими словами, хотя для цветности может использоваться режим, отличный от режима у яркости, чтобы иметь различные режимы, редко встречается случай, когда для цветности используется режим, отличный от режима у яркости, и используется близлежащий контекст. Другими словами, существует много случаев, когда intra_chroma_pred_mode устанавливается в 0, в котором используется такой же режим, как у яркости. Соответственно, использование близлежащего контекста не имеет особых достоинств, использование контекста текущего блока дает возможность уменьшения объема обработки наряду с сохранением эффективности кодирования.
[0323] Кроме того, определение того, доступен или нет верхний блок при декодировании, является очень сложным. Массив IntraPredMode, который выводится в процессе декодирования и отображается в некую последовательность, будет описываться со ссылкой на Фиг.38.
[0324] IntraPredMode одной верхней строки (Линия L), включающей текущий блок, представляется с помощью IntraPredMode [n-ый блок в горизонтальном направлении] [одна верхняя строка (Линия L)]. Кроме того, IntraPredMode текущей строки, включающей текущий блок, представляется с помощью IntraPredMode [k-ый блок в горизонтальном направлении] [текущая строка]. Здесь сигнал, над которым должно выполняться арифметическое декодирование в настоящее время, является intra_chroma_pred_mode [i-ый блок в горизонтальном направлении] [текущая строка].
[0325] Во-первых, нет гарантии, что n-ый блок в одной верхней строке в горизонтальном направлении ассоциируется с k-ым блоком в текущей строке в горизонтальном направлении. Как описано для Фиг.38, причина в том, что размер блока PU меняется для каждого блока. Таким образом, нет никакого способа для управления этими блоками за исключением предоставления некоторой таблицы соответствия или получения всех IntraPredMode в качестве минимальной единицы, как описано для Фиг.38.
[0326] Кроме того, помимо intra_chroma_pred_mode, который будет декодироваться, IntraPredMode верхней строки не является типом сигнала, допускающим свое получение посредством анализа с помощью блока арифметического декодирования, а является значением (переменной в H.264 и т.п., начинающейся с заглавной буквы), выведенным из другого процесса декодирования. Таким образом, получение доступности этого значения исключительно с помощью блока арифметического декодирования является обременительным.
[0327] Таким образом, в контекстной модели, в которой intra_chroma_pred_mode использует соседние блоки, неиспользование CondA, которое является условным значением верхнего блока (в частности, значением определения условия в IntraPredMode [соответствующее горизонтальное положение] [одна верхняя строка]), полезно в плане использования памяти.
[0328] (Девятая проверка) "cbf_luma, cbf_cr, cbf_cb"
Фиг.27 - таблица, указывающая способ арифметического декодирования для cbf_luma, cbf_cr и cbf_cb.
[0329] Смысл типа сигнала "cbf_luma" определяется следующим образом.
[0330] cbf_luma[x0][y0][trafoDepth], равный 1, задает, что блок преобразования яркости содержит один или более уровней коэффициента преобразования, не равных 0. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока преобразования относительно верхней левой выборки яркости изображения. Индекс trafoDepth массива задает текущий уровень подразделения единицы кодирования на блоки с целью кодирования с преобразованием. trafoDepth равен 0 для блоков, которые соответствуют единицам кодирования.
[0331] Другими словами, положение блока преобразования яркости определяется как значение трехмерного массива, включающего в себя иерархическую глубину (trafoDepth) относительно уровня CU в дополнение к вертикальным и горизонтальным элементам.
[0332] Кроме того, тип сигнала "cbf_cb" задает cbf_luma касательно яркости для цветности (cb). Смысл типа сигнала "cbf_cb" определяется следующим образом.
[0333] 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.
[0334] Другими словами, положение блока преобразования Cb определяется как значение трехмерного массива, включающего в себя иерархическую глубину (trafoDepth) относительно уровня CU в дополнение к вертикальным и горизонтальным элементам.
[0335] Кроме того, тип сигнала "cbf_cr" задает cbf_luma касательно яркости для цветности (cr). Смысл типа сигнала "cbf_cr" определяется следующим образом.
[0336] cbf_cr[x0][y0][trafoDepth], равный 1, задает, что блок преобразования Cb содержит один или более уровней коэффициента преобразования, не равных 0. Индексы x0, y0 массива задают местоположение (x0, y0) верхней левой выборки яркости у рассматриваемого блока преобразования относительно верхней левой выборки яркости изображения. Индекс trafoDepth массива задает текущий уровень подразделения единицы кодирования на блоки с целью кодирования с преобразованием. trafoDepth равен 0 для блоков, которые соответствуют единицам кодирования. Когда cbf_cr[x0][y0][trafoDepth] отсутствует, и PredMode не равен MODE_INTRA, значение cbf_cr[x0][y0][trafoDepth] подразумевается равным 0.
[0337] Другими словами, положение блока преобразования Cb определяется как значение трехмерного массива, включающего в себя иерархическую глубину (trafoDepth) относительно уровня CU в дополнение к вертикальным и горизонтальным элементам.
[0338] Фиг.16A и 16B - таблицы для описания результатов проверки над cbf_luma, cbf_cr и cbf_cb.
[0339] Фиг.28A указывает результат проверки с использованием одного соседнего блока (только значение определения условия L левого блока) в шаблоне 2. Фиг.28B указывает результат проверки с использованием нуля соседних блоков (не используется ни условие A верхнего блока, ни условие L левого блока) в шаблоне 3.
[0340] Результат проверки на каждой из Фиг.28A и 28B указывает увеличение и уменьшение BD-скорости в соответствии с четырьмя тестовыми шаблонами, как описано для первой проверки. Кроме того, смысл значения оценки такой же, как в первой проверке.
[0341] Результат отличается от такового в первой проверке split_coding_unit_flag и второй проверке skip_flag. Отсутствует значительная разница в BD-скорости между шаблонами 1 и 2 или 3 в качестве шаблона контекстной модели для cbf_luma, cbf_cr и cbf_cb.
[0342] Таким образом, в смешанном окружении с множеством управляющих параметров типов сигнала блок 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-скорости.
[0343] Когда шаблон 2 сравнивается с шаблоном 3 для cbf_luma, cbf_cr и cbf_cb, эти BD-скорости не имеют значительной разницы. Таким образом, предпочтительно использовать шаблон 3 для cbf_luma, cbf_cr и cbf_cb. Соответственно, можно дополнительно уменьшить использование памяти и объем обработки.
[0344] Кроме того, cbf_luma, cbf_cb и cbf_cr являются значениями трехмерного массива, содержащего глубину. Таким образом, как описано для Фиг.9B в соответствии с Вариантом 2 осуществления, расстояния (удаленность) между соседними опорными значениями в порядке декодирования (включающем рекурсивный порядок выполнения, и он будет таким же в дальнейшем) отличаются в соответствии с соответствующими иерархическими глубинами. Соответственно, доступно или нет фактически значение управляющего параметра или же дает преимущество в уменьшении использования памяти, отличается в зависимости от положения блока в иерархическом отношении.
[0345] Таким образом, блок 142 и 242 управления контекстом может изменять критерий определения условного значения в соответствии с иерархической глубиной. Например, блок 142 и 242 управления контекстом может использовать условное значение блока (придерживаться его) на более высоком уровне в качестве условного значения блока на более низком уровне.
[0346] Кроме того, блок 142 и 242 управления контекстом может изменять эти критерии с учетом взаимного расположения с другой секцией, в дополнение к вышесказанному или отдельно.
[0347] В результате вышеприведенных проверок возможна следующая подробная модификация. Тот факт, появляется или нет эффект разбавления, зависит от количества обучений, к которым применяется условие. Как правило, Y, которая представляет яркость в Y, U и V, например формате 4:2:0, больше по количеству выборок, чем две другие оси (U и V). Таким образом, одна граница, которую следует различать, находится между (a) яркостью и (b) парой cb и cr.
[0348] Например, шаблон 3 может применяться к (a) cbf_luma, а другой шаблон 2 или 1 может применяться к (b) cbf_cb и cbf_cr. Другими словами, блок 142 и 242 управления контекстом может определять контекст с использованием разного условия для каждого случая, когда типом сигнала является "cbf_luma" или типом сигнала является один из "cbf_cb" и "cbf_cr". Кроме того, блок 142 и 242 управления контекстом может применять шаблон 1 к (a) cbf_luma, а другой шаблон 2 или 3 к (b) cbf_cb и cbf_cr.
[0349] Кроме того, блок 142 и 242 управления контекстом может определять контекст в соответствии с иерархической глубиной для (b) cbf_cb и cbf_cr.
[0350] Количество обучений для каждого из условий (фиксированные M условий (M < N)) в (b) cbf_cb и cbf_cr, имеющих меньшее количество выборок, можно приблизить к количеству обучений каждого из условий (N условий, например, четыре условия 0, 1, 2, и 3) в (a) cbf_luma, имеющих большее количество выборок, путем значительного уменьшения количества условий (контекстных условий) для cbf_cb и cbf_cr до большего, чем у (a) cbf_luma.
[0351] Здесь блок 142 и 242 управления контекстом может определять контекст в соответствии с иерархической глубиной для (a) cbf_luma.
[0352] Здесь, когда количество обучений является достаточным, предпочтительно, чтобы блок 142 и 242 управления контекстом увеличивал количество (контекстных) условий для точности. Кроме того, предпочтительно, чтобы блок 142 и 242 управления контекстом уменьшал количество контекстных условий, когда количество обучений меньше. Таким образом, блок 142 и 242 управления контекстом может переключаться между этими условиями в соответствии с разрешением. Кроме того, блок 142 и 242 управления контекстом может переключаться между этими условиями в соответствии с форматом (4:2:0) и прочими.
[0353] Кроме того, 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 является флагом, который зависит от режима предсказания, предпочтительно, чтобы в качестве значения контекста использовалось фиксированное значение, которое не зависит от глубины.
[0354] Сущность результата проверок над всеми типами сигнала будет описываться ниже.
[0355] Фиг.29A и 29B являются графиками, указывающими результат у "4.1 Внутреннее кодирование, высокоэффективная настройка" (все типы сигнала).
[0356] Фиг.30A и 30B являются графиками, указывающими результат у "4.3 Произвольный доступ, высокоэффективная настройка" (все типы сигнала).
[0357] Фиг.31A и 31B являются графиками, указывающими результат у "4.5 Малая задержка, высокоэффективная настройка" (все типы сигнала).
[0358] Фиг.32A и 32B являются графиками, указывающими результат у "4.7 Малая задержка, высокоэффективная настройка (только P-секции)".
[0359] Фиг.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".
[0360] Фиг.33B - таблица, указывающая результат проверки, когда используется набор параметров, указанный на Фиг.33A. Как указано на Фиг.33B, использование набора параметров на Фиг.33A может уменьшить использование памяти наряду со сдерживанием уменьшения эффективности кодирования.
[0361] Фиг.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".
[0362] Фиг.34B - таблица, указывающая результат проверки, когда используется набор параметров, указанный на Фиг.34A. Как указано на Фиг.34B, использование набора параметров на Фиг.34A может уменьшить использование памяти наряду со сдерживанием уменьшения эффективности кодирования.
[0363] Кроме того, блок 142 или 242 управления контекстом может определять контекст с использованием глубины, как описано выше.
[0364] Фиг.35 - блок-схема алгоритма, указывающая способ арифметического кодирования, выполняемый блоком 104 кодирования переменной длины. Процессы из Фиг.35 получаются путем добавления этапов S111 и S112 к процессам на Фиг.4.
[0365] Когда типом сигнала является четвертый тип, соответствующий шаблону 4 (четвертый тип на этапе S104), блок 142 управления контекстом определяет значение контекста с использованием значения управляющего параметра у одного соседнего блока (левого блока) и глубины текущего блока, в качестве шаблона 4 (этап S111). Другими словами, блок 142 управления контекстом определяет контекст в соответствии с управляющим параметром левого блока и иерархической глубиной единицы данных, к которой принадлежит управляющий параметр текущего блока, без использования управляющего параметра верхнего блока.
[0366] Кроме того, когда типом сигнала является пятый тип, соответствующий шаблону 5 (пятый тип на этапе S104), блок 142 управления контекстом определяет значение контекста с использованием глубины текущего блока в качестве шаблона 5 (этап S112). Другими словами, блок 142 управления контекстом определяет контекст в соответствии с иерархической глубиной единицы данных, к которой принадлежит управляющий параметр текущего блока, без использования управляющих параметров верхнего блока и левого блока.
[0367] Блок 202 декодирования переменной длины выполняет такие же процессы. Фиг.36 - блок-схема алгоритма, указывающая способ арифметического декодирования, выполняемый блоком 202 декодирования переменной длины. Процессы из Фиг.36 получаются путем добавления этапов S213 и S214 к процессам на Фиг.7.
[0368] Когда типом сигнала является четвертый тип, соответствующий шаблону 4 (четвертый тип на этапе S205), блок 242 управления контекстом определяет значение контекста с использованием значения управляющего параметра у одного соседнего блока (левого блока) и глубины текущего блока, в качестве шаблона 4 (этап S213). Другими словами, блок 242 управления контекстом определяет контекст в соответствии с управляющим параметром левого блока и иерархической глубиной единицы данных, к которой принадлежит управляющий параметр текущего блока, без использования управляющего параметра верхнего блока.
[0369] Кроме того, когда типом сигнала является пятый тип, соответствующий шаблону 5 (пятый тип на этапе S205), блок 242 управления контекстом определяет значение контекста с использованием глубины текущего блока в качестве шаблона 5 (этап S214). Другими словами, блок 242 управления контекстом определяет контекст в соответствии с иерархической глубиной единицы данных, к которой принадлежит управляющий параметр текущего блока, без использования управляющих параметров верхнего блока и левого блока.
[0370] Здесь при описании каждого из Вариантов осуществления шаблон 2 можно заменить шаблоном 4, а шаблон 3 можно заменить шаблоном 5.
[0371] Хотя описываются устройство кодирования изображений и устройство декодирования изображений в соответствии с Вариантами осуществления с 1 по 3 в настоящем изобретении, настоящее изобретение не ограничивается этими Вариантами осуществления.
[0372] Например, можно объединить по меньшей мере часть устройства кодирования изображений, устройства декодирования изображений и функции модификаций этих устройств в соответствии с Вариантами осуществления с 1 по 3.
[0373] Кроме того, все описанные выше значения и логические значения являются иллюстративными примерами для конкретного описания настоящего изобретения, и настоящее изобретение не ограничивается проиллюстрированными значениями.
[0374] Кроме того, деления функциональных блоков на блок-схемах являются примерами. Таким образом, функциональные блоки могут быть реализованы в виде одного функционального блока, один функциональный блок можно разделить на множество функциональных блоков, и часть функций можно переключить на другой функциональный блок. Кроме того, множество функциональных блоков, имеющих аналогичные функции, можно обрабатывать единственными аппаратными средствами или программным обеспечением, параллельно либо с временным разделением.
[0375] Порядки этапов способа кодирования изображений, выполняемого устройством кодирования изображений, и способа декодирования изображений, выполняемого устройством декодирования изображений, предназначены для конкретного описания настоящего изобретения и могут быть порядком, отличным от вышеприведенных порядков. Кроме того, часть этапов может выполняться одновременно (параллельно) с другими этапами.
[0376] (Дополнительные проверки)
Ниже будет описываться результат проверок над сочетаниями типов сигнала и способов определения контекста. С помощью этих сочетаний проверяется, что использование памяти можно уменьшить без значительного уменьшения BD-скорости.
[0377] <Сочетание 1>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0378] <Сочетание 2>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0379] <Сочетание 3>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0380] <Сочетание 4>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0381] <Сочетание 5>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0382] <Сочетание 6>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0383] <Сочетание 7>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0384] <Сочетание 8>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0385] <Сочетание 9>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0386] <Сочетание 10>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0387] <Сочетание 11>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0388] <Сочетание 12>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0389] <Сочетание 13>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0390] <Сочетание 14>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0391] <Сочетание 15>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0392] <Сочетание 16>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0393] <Сочетание 17>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0394] <Сочетание 18>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0395] <Сочетание 19>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0396] <Сочетание 20>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0397] <Сочетание 21>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0398] <Сочетание 22>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 1 cbf_luma(intra) (обращение к верхнему и левому блокам); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0399] <Сочетание 23>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0400] <Сочетание 24>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0401] <Сочетание 25>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0402] <Сочетание 26>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0403] <Сочетание 27>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0404] <Сочетание 28>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 1 split_coding_unit_flag (обращение к верхнему и левому блокам);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0405] <Сочетание 29>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0406] <Сочетание 30>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0407] <Сочетание 31>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0408] <Сочетание 32>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 2 split_coding_unit_flag (обращение к левому блоку);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0409] <Сочетание 33>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0410] <Сочетание 34>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0411] <Сочетание 35>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 3 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку).
[0412] <Сочетание 36>
Шаблон 1 skip_flag (обращение к верхнему и левому блокам);
Шаблон 4 split_coding_unit_flag (обращение к левому блоку и глубине);
Шаблон 3 merge_flag (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 intra_chroma_pred_mode (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 inter_pred_flag (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине);
Шаблон 3 ref_idx (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 3 mvd (не обращаются ни к верхнему блоку, ни к левому блоку);
Шаблон 5 cbf_luma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине); и
Шаблон 5 cbf_chroma(intra) (не обращаются ни к верхнему блоку, ни к левому блоку, а обращаются к глубине).
[0413] (Вариант 4 осуществления)
Обработка, описанная в каждом из Вариантов осуществления, может быть легко реализована с помощью компьютерной системы путем записи на носитель записи программы для реализации структуры способа кодирования движущихся изображений или способа декодирования движущихся изображений, описанных в Варианте осуществления. Носитель записи может быть любым носителем записи при условии, что на него может быть записана программа, например магнитным диском, оптическим диском, магнитооптическим диском, платой ИС и полупроводниковым запоминающим устройством.
[0414] Ниже будут описываться применения к способу кодирования движущихся изображений или способу декодирования движущихся изображений, описанным в каждом из Вариантов осуществления, и системе, использующей эти способы.
[0415] Фиг.39 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для предоставления услуг связи делится на соты нужного размера, и в каждой из сот размещаются базовые станции с ex106 по ex110, которые являются стационарными беспроводными станциями.
[0416] Система ex100 предоставления контента подключается к устройствам, например компьютеру ex111, персональному цифровому помощнику (PDA) ex112, камере ex113, сотовому телефону ex114 и игровому устройству ex115, через Интернет ex101, поставщика ex102 услуг Интернета, телефонную сеть ex104, а также базовые станции ex106-ex110.
[0417] Однако конфигурация системы ex100 предоставления контента не ограничивается конфигурацией, показанной на Фиг.39, и допустимо сочетание, в котором соединяются любые элементы. К тому же каждое из устройств может быть подключено к телефонной сети ex104 напрямую, а не через базовые станции ex106 - ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть взаимосвязаны друг с другом посредством ближней беспроводной связи и других.
[0418] Камера ex113, например цифровая видеокамера, допускает съемку движущихся изображений. Камера ex116, например цифровая видеокамера, допускает съемку как неподвижных изображений, так и движущихся изображений. Кроме того, сотовый телефон ex114 может быть телефоном, который соответствует любому из стандартов, например Глобальной системе мобильной связи (GSM), Множественному доступу с кодовым разделением каналов (CDMA), Широкополосному множественному доступу с кодовым разделением каналов (W-CDMA), Системе долгосрочного развития (LTE) и Высокоскоростному пакетному доступу (HSPA). В качестве альтернативы сотовый телефон ex114 может относиться к Системе персональных переносных телефонов (PHS).
[0419] В системе ex100 предоставления контента сервер ex103 потоковой передачи подключается к камере ex113 и другим через телефонную сеть ex104 и базовую станцию ex109, что дает возможность распространения передачи в прямом эфире и прочих. Для такого распространения контент (например, видеоизображение музыкальной передачи в прямом эфире), снятый пользователем с использованием камеры ex113, кодируется как описано выше в каждом из Вариантов осуществления, и кодированный контент передается на сервер ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи осуществляет потоковое распространение данных принятого контента клиентам по их запросам. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114 и игровое устройство ex115, которые допускают декодирование вышеупомянутых кодированных данных. Каждое из устройств, которое приняло распространенные данные, декодирует и воспроизводит кодированные данные.
[0420] Записанные данные могут кодироваться камерой ex113 или сервером ex103 потоковой передачи, который передает данные, либо процессы кодирования могут распределяться между камерой ex113 и сервером ex103 потоковой передачи. Аналогичным образом, распространенные данные могут декодироваться клиентами или сервером ex103 потоковой передачи, либо процессы декодирования могут распределяться между клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и движущихся изображений, снятых не только камерой ex113, но также и камерой ex116, могут передаваться серверу ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут выполняться камерой ex116, компьютером ex111 или сервером ex103 потоковой передачи, либо распределяться между ними.
[0421] Кроме того, обычно компьютер ex111 и LSI ex500, включенные в каждое из устройств, выполняют такие процессы кодирования и декодирования. LSI ex500 может конфигурироваться из одиночной микросхемы или множества микросхем. Программное обеспечение для кодирования и декодирования движущихся изображений может встраиваться в некоторый тип носителя записи (например, CD-ROM, гибкий диск, жесткий диск), который считывается компьютером ex111 и другими, и процессы кодирования и декодирования могут выполняться с использованием этого программного обеспечения. Кроме того, когда сотовый телефон ex114 оборудован камерой, можно передавать видеоданные, полученные камерой. Видеоданные являются данными, кодированными LSI ex500, включенной в сотовый телефон ex114.
[0422] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовать данные и обрабатывать децентрализованные данные, записывать или распространять данные.
[0423] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, переданную пользователем, и воспроизводить декодированные данные в реальном масштабе времени в системе ex100 предоставления контента, чтобы пользователь, у которого нет никакого конкретного права и оборудования, мог реализовать личную трансляцию.
[0424] Настоящее изобретение не ограничивается вышеупомянутой системой ex100 предоставления контента, и по меньшей мере либо устройство кодирования движущихся изображений, либо устройство декодирования движущихся изображений, описанные в каждом из Вариантов осуществления, может включаться в систему ex200 цифрового вещания, которая показана на Фиг.40. Точнее говоря, вещательная станция ex201 сообщает или передает посредством радиоволн вещательному спутнику ex202 мультиплексированные данные, полученные путем мультиплексирования звуковых данных на видеоданные. Видеоданные являются данными, кодированными в соответствии со способом кодирования движущихся изображений, описанным в каждом из Вариантов осуществления. При приеме видеоданных вещательный спутник ex202 передает радиоволны для транслирования. Затем бытовая антенна ex204, допускающая приема спутникового вещания, принимает радиоволны. Устройство, например телевизор ex300 (приемник) и телевизионная приставка ex217 (STB), декодирует принятые мультиплексированные данные и воспроизводит данные.
[0425] Кроме того, считывающе-записывающее устройство ex218, которое (i) считывает и декодирует мультиплексированные данные, записанные на носителях ex215 записи, например DVD и BD, либо (ii) кодирует видеосигналы на носителе ex215 записи и в некоторых случаях записывает данные, полученные путем мультиплексирования звукового сигнала на кодированные данные, может включать в себя устройство декодирования движущихся изображений или устройство кодирования движущихся изображений, которые показаны в каждом из Вариантов осуществления. В этом случае воспроизведенные видеосигналы отображаются на мониторе ex219, и другое устройство или система могут воспроизводить видеосигналы, используя носитель ex215 записи, на котором записаны мультиплексированные данные. Кроме того, возможно реализовать устройство декодирования движущихся изображений в телевизионной приставке ex217, подключенной к кабелю ex203 для кабельного телевидения или к антенне ex204 для спутникового и/или наземного вещания, чтобы отобразить видеосигналы на мониторе ex219 телевизора ex300. Устройство декодирования движущихся изображений может включаться не в телевизионную приставку, а в телевизор ex300.
[0426] Фиг.41 иллюстрирует телевизор (приемник) ex300, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в каждом из Вариантов осуществления. Телевизор ex300 включает в себя: тюнер ex301, который получает или предоставляет мультиплексированные данные, полученные путем мультиплексирования звуковых данных и видеоданных, через антенну ex204 или кабель ex203 и т.д., который принимает трансляцию; блок ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные для поставки их наружу блока; и блок ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные на видеоданные и звуковые данные либо мультиплексирует видеоданные и звуковые данные, кодированные блоком ex306 обработки сигналов, в данные.
[0427] Кроме того, телевизор ex300 дополнительно включает в себя: блок ex306 обработки сигналов, включающий в себя блок ex304 обработки звукового сигнала и блок ex305 обработки видеосигнала, которые декодируют звуковые данные и видеоданные и кодируют звуковые данные и видеоданные соответственно; динамик ex307, который предоставляет декодированный звуковой сигнал; и блок ex309 вывода, включающий в себя блок ex308 отображения, который отображает декодированный видеосигнал, например дисплей. Кроме того, телевизор ex300 включает в себя интерфейсный блок ex317, включающий в себя блок ex312 ввода операции, который принимает ввод действия пользователя. Кроме того, телевизор ex300 включает в себя блок ex310 управления, который управляет в общем каждым составляющим элементом телевизора ex300, и схему ex311 питания, которая снабжает энергией каждый из элементов. Помимо блока ex312 ввода операции интерфейсный блок ex317 может включать в себя: мост ex313, который подключается к внешнему устройству, например считывающе-записывающему устройству ex218; разъем ex314 для обеспечения присоединения носителя ex216 записи, например карты SD; привод ex315, который нужно подключить к внешнему носителю записи, например жесткому диску; и модем ex316, который нужно подключить к телефонной сети. Здесь носитель ex216 записи может электрически записывать информацию с использованием элемента энергонезависимой/энергозависимой полупроводниковой памяти для хранения. Составляющие элементы телевизора ex300 соединяются друг с другом по синхронной шине.
[0428] Сначала будет описываться конфигурация, в которой телевизор ex300 декодирует мультиплексированные данные, полученные извне через антенну ex204 и прочие, и воспроизводит декодированные данные. В телевизоре ex300 в результате приема действия пользователя от пульта ex220 дистанционного управления и прочих блок ex303 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные, демодулированные блоком ex302 модуляции/демодуляции, под управлением блока ex310 управления, включающего в себя CPU. Кроме того, в телевизоре ex300 блок ex304 обработки звукового сигнала декодирует демультиплексированные звуковые данные, а блок ex305 обработки видеосигнала декодирует демультиплексированные видеоданные, используя способ декодирования, описанный в каждом из Вариантов осуществления. Блок ex309 вывода предоставляет вовне декодированный видеосигнал и звуковой сигнал. Когда блок ex309 вывода предоставляет видеосигнал и звуковой сигнал, сигналы могут быть временно сохранены в буферах ex318 и ex319 и других, чтобы сигналы воспроизводились синхронно друг с другом. Кроме того, телевизор ex300 может считывать мультиплексированные данные не путем трансляции и прочего, а с носителей ex215 и ex216 записи, например магнитного диска, оптического диска и карты SD. Далее будет описываться конфигурация, в которой телевизор ex300 кодирует звуковой сигнал и видеосигнал и передает данные вовне или записывает данные на носитель записи. В телевизоре ex300 в результате приема действия пользователя от пульта ex220 дистанционного управления и прочих блок ex304 обработки звукового сигнала кодирует звуковой сигнал, а блок ex305 обработки видеосигнала кодирует видеосигнал, под управлением блока ex310 управления с использованием способа кодирования изображений, который описан в каждом из Вариантов осуществления. Блок ex303 мультиплексирования/демультиплексирования мультиплексирует кодированный видеосигнал и звуковой сигнал и предоставляет наружу результирующий сигнал. Когда блок ex303 мультиплексирования/демультиплексирования мультиплексирует видеосигнал и звуковой сигнал, сигналы могут быть временно сохранены в буферах ex320 и ex321 и других, чтобы сигналы воспроизводились синхронно друг с другом. Здесь буферы с ex318 по ex321 могут быть многочисленными, как проиллюстрировано, или по меньшей мере один буфер может использоваться совместно в телевизоре ex300. Кроме того, данные могут храниться в буфере помимо буферов с ex318 по ex321, чтобы можно было избежать переполнения и незаполнения системы, например, между блоком ex318 модуляции/демодуляции и блоком ex321 мультиплексирования/демультиплексирования.
[0429] Кроме того, телевизор ex300 может включать в себя конфигурацию для приема аудиовизуальных входных данных от микрофона или камеры, помимо конфигурации для получения звуковых данных и видеоданных из трансляции или с носителя записи, и может кодировать полученные данные. Хотя в описании телевизор ex300 может кодировать, мультиплексировать и предоставлять вовне данные, он может не допускать выполнение всех процессов, а допускать только одно из приема, декодирования и предоставление данных вовне.
[0430] Кроме того, когда считывающе-записывающее устройство ex218 считывает или записывает мультиплексированные данные с носителя записи или на него, одно из телевизора ex300 и считывающе-записывающего устройства ex218 может декодировать или кодировать мультиплексированные данные, и телевизор ex300 и считывающе-записывающее устройство ex218 могут распределять декодирование или кодирование.
[0431] В качестве примера Фиг.42 иллюстрирует конфигурацию блока 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 системного управления включает в себя, например, микропроцессор и выполняет обработку путем побуждения компьютера выполнить программу для считывания и записи.
[0432] Хотя в описании оптическая головка ex401 излучает лазерное пятно, она может выполнять запись с высокой плотностью, используя свет ближней зоны.
[0433] Фиг.43 схематически иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности записи носителя ex215 записи направляющие канавки образуются по спирали, и информационная дорожка ex230 заранее записывает адресную информацию, указывающую абсолютное положение на диске в соответствии с изменением в форме направляющих канавок. Адресная информация включает в себя информацию для определения положений блоков ex231 записи, которые являются единицей для записи данных. Устройство, которое записывает и воспроизводит данные, воспроизводит информационную дорожку ex230 и считывает адресную информацию, чтобы определить положения блоков записи. Кроме того, носитель ex215 записи включает в себя область ex233 записи данных, область ex232 внутренней окружности и область ex234 внешней окружности. Область ex233 записи данных является областью для использования при записи пользовательских данных. Область ex232 внутренней окружности и область ex234 внешней окружности, которые находятся внутри и снаружи области ex233 записи данных соответственно, предназначены для специального использования за исключением записи пользовательских данных. Блок ex400 воспроизведения/записи информации считывает и записывает кодированные звуковые данные, кодированные видеоданные или мультиплексированные данные, полученные путем мультиплексирования кодированных звуковых данных и кодированных видеоданных, из области ex233 записи данных в носителе ex215 записи и на нее.
[0434] Хотя в описании в качестве примера описывается оптический диск, содержащий слой, например DVD и BD, оптический диск не ограничивается таковым и может быть оптическим диском, имеющим многослойную структуру и допускающим запись на части, отличной от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, например, записи информации с использованием света с цветами разных длин волн в одной и той же части оптического диска и записи информации, имеющей разные слои, с различных углов.
[0435] Кроме того, в системе ex200 цифрового вещания автомобиль ex210, имеющий антенну ex205, может принимать данные со спутника ex202 и других и воспроизводить видеоизображение на устройстве отображения, например автомобильной навигационной системе ex211, установленной в автомобиле ex210. Здесь конфигурация автомобильной навигационной системы ex211 будет конфигурацией, например, включающей в себя приемный блок GPS в конфигурации, проиллюстрированной на Фиг.41. То же самое будет справедливо для конфигурации компьютера ex111, сотового телефона ex114 и прочих.
[0436] Фиг.44A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в каждом из Вариантов осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн посредством базовой станции ex110; камеру ex365, допускающую съемку подвижных и неподвижных изображений; и блок ex358 отображения, например жидкокристаллический дисплей для отображения данных, например декодированного видеоизображения, снятого камерой ex365 или принятого антенной ex350. Сотовый телефон ex114 дополнительно включает в себя: корпус, включающий в себя набор кнопок ex366 управления; блок ex357 вывода звука, например динамик для вывода звукозаписи; блок ex356 ввода звука, например микрофон для ввода звукозаписи; запоминающее устройство ex367 для хранения снятого видеоизображения или неподвижных изображений, записанного звука, кодированных или декодированных данных принятого видеоизображения, неподвижных изображений, электронных писем или прочего; и разъем ex364, который является интерфейсным блоком для носителя записи, который хранит данные таким же образом, что и запоминающее устройство ex367.
[0437] Далее будет описываться пример конфигурации сотового телефона ex114 со ссылкой на Фиг.44B. В сотовом телефоне ex114 главный блок ex360 управления, спроектированный для управления в целом каждым блоком корпуса, включающего блок ex358 отображения, а также кнопки ex366 управления, взаимно подключается через синхронную шину ex370 к схеме ex361 питания, блоку ex362 управления вводом операции, блоку ex355 обработки видеосигнала, интерфейсному блоку ex363 камеры, блоку ex359 управления жидкокристаллическим дисплеем (LCD), блоку ex352 модуляции/демодуляции, блоку ex353 мультиплексирования/демультиплексирования, блоку ex354 обработки звукового сигнала, разъему ex364 и запоминающему устройству ex367.
[0438] Когда клавиша завершения вызова или клавиша питания нажимается в результате действия пользователя, схема ex361 питания снабжает соответствующие блоки энергией от аккумуляторной батареи, чтобы активизировать сотовый телефон ex114.
[0439] В сотовом телефоне ex114 блок ex354 обработки звукового сигнала преобразует звуковые сигналы, собранные блоком ex356 ввода звука в режиме разговора, в цифровые звуковые сигналы под управлением главного блока ex360 управления, включающего CPU, ROM и RAM. Затем блок ex352 модуляции/демодуляции выполняет обработку по расширению спектра над цифровыми звуковыми сигналами, а блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и преобразование частоты над данными, чтобы передать результирующие данные через антенну ex350. Также в сотовом телефоне ex114 блок ex351 передачи и приема усиливает данные, принятые антенной ex350 в режиме разговора, и выполняет преобразование частоты и аналого-цифровое преобразование над данными.
[0440] Затем блок ex352 модуляции/демодуляции выполняет обработку по обратному расширению спектра над данными, а блок ex354 обработки звукового сигнала преобразует их в аналоговые звуковые сигналы, чтобы вывести их через блок ex357 вывода звука. Кроме того, когда передается электронная почта в режиме передачи данных, текстовые данные электронной почты, введенные путем воздействия на кнопки ex366 управления и прочие в корпусе, отправляются главному блоку ex360 управления через блок ex362 управления вводом операции. Главный блок ex360 управления побуждает блок ex352 модуляции/демодуляции выполнить обработку по расширению спектра над текстовыми данными, а блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и преобразование частоты над результирующими данными, чтобы передать данные базовой станции ex110 через антенну ex350. Когда принимается электронная почта, над принятыми данными выполняется обработка, которая приблизительно обратна обработке для передачи электронной почты, и результирующие данные предоставляются блоку ex358 отображения.
[0441] Когда передаются видеоизображение, неподвижные изображения или видеоизображение и звукозапись в режиме передачи данных, блок ex355 обработки видеосигнала сжимает и кодирует видеосигналы, поступившие от камеры ex365, используя способ кодирования движущихся изображений, показанный в каждом из Вариантов осуществления, и передает кодированные видеоданные блоку ex353 мультиплексирования/демультиплексирования. В отличие от этого, во время того, когда камера ex365 снимает видеоизображение, неподвижные изображения и другие, блок ex354 обработки звукового сигнала кодирует звуковые сигналы, собранные блоком ex356 ввода звука, и передает кодированные звуковые данные блоку ex353 мультиплексирования/демультиплексирования.
[0442] Блок ex353 мультиплексирования/демультиплексирования мультиплексирует кодированные видеоданные, поступившие от блока ex355 обработки видеосигнала, и кодированные звуковые данные, поступившие от блока ex354 обработки звукового сигнала, используя предварительно определенный способ. Затем блок ex352 модуляции/демодуляции выполняет обработку по расширению спектра над мультиплексированными данными, а блок ex351 передачи и приема выполняет цифро-аналоговое преобразование и преобразование частоты над данными, чтобы передать результирующие данные через антенну ex350.
[0443] При приеме данных видеофайла, который связан с веб-страницей и другими в режиме передачи данных, или при приеме электронной почты с прикрепленным видеоизображением и/или звукозаписью, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, блок ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные на поток двоичных сигналов видеоданных и поток двоичных сигналов звуковых данных, и снабжает блок ex355 обработки видеосигнала кодированными видеоданными, а блок ex354 обработки звукового сигнала - кодированными звуковыми данными посредством синхронной шины ex370. Блок ex355 обработки видеосигнала декодирует видеосигнал с использованием способа декодирования движущихся изображений, соответствующего способу кодирования движущихся изображений, показанному в каждом из Вариантов осуществления, а затем блок ex358 отображения показывает, например, видеоизображение и неподвижные изображения, включенные в видеофайл, связанный с веб-страницей, посредством блока ex359 управления LCD. Кроме того, блок ex354 обработки звукового сигнала декодирует звуковой сигнал, и блок ex357 вывода звука предоставляет звукозапись.
[0444] Кроме того, аналогично телевизору ex300, терминал, например сотовый телефон ex114, возможно имеет 3 типа конфигураций исполнения, включающих не только (i) передающий и приемный терминал, включающий в себя устройство кодирования и устройство декодирования, но также и (ii) передающий терминал, включающий в себя только устройство кодирования, и (iii) приемный терминал, включающий в себя только устройство декодирования. Хотя в описании система ex200 цифрового вещания принимает и передает мультиплексированные данные, полученные путем мультиплексирования видеоданных звуковыми данными, мультиплексированные данные могут быть данными, полученными путем мультиплексирования видеоданных не звуковыми данными, а символьными данными, имеющими отношение к видеоизображению, и могут быть не мультиплексированными данными, а самими видеоданными.
[0445] По существу, способ кодирования движущихся изображений и способ декодирования движущихся изображений в каждом из Вариантов осуществления может использоваться на любом из описанных устройств и систем. Таким образом, можно получить преимущества, описанные в каждом из Вариантов осуществления.
[0446] Кроме того, настоящее изобретение не ограничивается Вариантами осуществления, и возможны различные модификации и изменения без отклонения от объема настоящего изобретения.
(Вариант 5 осуществления)
[0447]
Видеоданные могут формироваться путем переключения, по необходимости, между (i) способом кодирования движущихся изображений или устройством кодирования движущихся изображений, показанными в каждом из Вариантов осуществления, и (ii) способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с другим стандартом, например MPEG-2, MPEG4-AVC и VC-1.
[0448] Здесь, когда формируется множество видеоданных, которые соответствуют разным стандартам, а затем декодируется, нужно выбирать способы декодирования, которые соответствуют разным стандартам. Однако, поскольку нельзя определить то, какому стандарту соответствуют каждые из множества видеоданных, которые нужно декодировать, существует проблема, что нельзя выбрать подходящий способ декодирования.
[0449] Чтобы решить эту проблему, мультиплексированные данные, полученные путем мультиплексирования видеоданных звуковыми данными и другими, имеют структуру, включающую в себя идентификационную информацию, указывающую, какому стандарту соответствуют видеоданные. Ниже будет описываться конкретная структура мультиплексированных данных, включающих видеоданные, сформированные способом кодирования движущихся изображений и устройством кодирования движущихся изображений, показанными в каждом из Вариантов осуществления. Мультиплексированные данные являются цифровым потоком в формате транспортного потока MPEG-2.
[0450] Фиг.45 иллюстрирует структуру мультиплексированных данных. Как проиллюстрировано на Фиг.45, мультиплексированные данные можно получить путем мультиплексирования по меньшей мере одного из видеопотока, аудиопотока, потока демонстрационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичное видеоизображение и вторичное видеоизображение фильма, аудиопоток представляет первичную звуковую часть и вторичную звуковую часть, которую нужно смешать с первичной звуковой частью, а поток демонстрационной графики представляет субтитры фильма. Здесь первичное видеоизображение является обычным видеоизображением, показанным на экране, а вторичное видеоизображение является видеоизображением, которое нужно показать на меньшем окне в основном видеоизображении. Кроме того, поток интерактивной графики представляет интерактивный экран, который нужно сформировать путем размещения компонентов GUI на экране. Видеопоток кодируется способом кодирования движущихся изображений или устройством кодирования движущихся изображений, показанными в каждом из Вариантов осуществления, либо способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с традиционным стандартом, например MPEG-2, MPEG4-AVC и VC-1. Аудиопоток кодируется в соответствии со стандартом, например Dolby-AC-3, Dolby Digital Plus, MLP, DTS, DTS-HD и линейной PCM.
[0451] Каждый поток, включенный в мультиплексированные данные, идентифицируется по PID. Например, 0x1011 назначается видеопотоку, который нужно использовать для видеоизображения фильма, 0x1100 - 0x111F назначаются аудиопотокам, 0x1200 - 0x121F назначаются потокам демонстрационной графики, 0x1400 - 0x141F назначаются потокам интерактивной графики, 0x1B00 - 0x1B1F назначаются видеопотокам, которые нужно использовать для вторичного видеоизображения фильма, и 0x1A00 - 0x1A1F назначаются аудиопотокам, которые нужно использовать для вторичного звука, который нужно смешать с первичным звуком.
[0452] Фиг.46 схематически иллюстрирует то, как мультиплексируются данные. Сначала видеопоток ex235, состоящий из видеокадров, и аудиопоток ex238, состоящий из звуковых кадров, преобразуются в поток ex236 пакетов PES и поток ex239 пакетов PES, и дополнительно в пакеты ex237 TS и пакеты ex240 TS соответственно. Аналогичным образом данные из потока ex241 демонстрационной графики и данные из потока ex244 интерактивной графики преобразуются в поток ex242 пакетов PES и поток ex245 пакетов PES, и дополнительно в пакеты ex243 TS и пакеты ex246 TS соответственно. Эти пакеты TS мультиплексируются в поток для получения мультиплексированных данных ex247.
[0453] Фиг.47 подробнее иллюстрирует то, как видеопоток сохраняется в потоке пакетов PES. Первая полоса на Фиг.47 показывает поток видеокадров в видеопотоке. Вторая полоса показывает поток пакетов PES. Как указано стрелками, обозначенными yy1, yy2, yy3 и yy4 на Фиг.47, видеопоток делится на изображения в виде I-изображений, B-изображений и P-изображений, каждое из которых является блоком видеодемонстрации, и изображения сохраняются в полезной нагрузке каждого из пакетов PES. Каждый из пакетов PES имеет заголовок PES, и заголовок PES хранит Временную отметку воспроизведения (PTS), указывающую время показа изображения, и Временную отметку декодирования (DTS), указывающую время декодирования изображения.
[0454] Фиг.48 иллюстрирует формат пакетов TS, которые в конечном счете должны быть записаны в мультиплексированные данные. Каждый из пакетов TS является 188-байтным пакетом фиксированной длины, включающим 4-байтный заголовок TS, содержащий информацию, например PID для идентификации потока, и 184-байтную полезную нагрузку TS для хранения данных. Пакеты PES разделяются и сохраняются в полезных нагрузках TS соответственно. Когда используется BD ROM, каждому из пакетов TS выдается 4-байтный TP_Extra_Header, соответственно приводя к 192-байтным исходным пакетам. Исходные пакеты записываются в мультиплексированные данные. TP_Extra_Header хранит информацию, например Временную отметку поступления (ATS). ATS показывает время начала передачи, в которое каждый из пакетов TS нужно передать в фильтр PID. Номера, увеличивающиеся от начала мультиплексированных данных, называются номерами исходных пакетов (SPN), как показано в нижней части Фиг.48.
[0455] Каждый из пакетов TS, включенных в мультиплексированные данные, включает в себя не только потоки звукозаписи, видеоизображения, субтитров и других, но также Таблицу взаимосвязи программ (PAT), Таблицу преобразования программ (PMT) и Опорный сигнал программы (PCR). PAT показывает, что указывает PID в PMT, используемой в мультиплексированных данных, и PID самой PAT регистрируется как ноль. PMT хранит PID потоков видеоизображения, звукозаписи, субтитров и других, включенных в мультиплексированные данные, и информацию об атрибутах потоков, соответствующих PID. PMT также содержит различные дескрипторы, относящиеся к мультиплексированным данным. Дескрипторы обладают информацией, например информацией управления копированием, показывающей, разрешено ли копирование мультиплексированных данных. PCR хранит временную информацию STC, соответствующую ATS, показывающей, когда пакет PCR передается декодеру, чтобы достичь синхронизации между Таймером поступления (ATC), который является осью времени ATS, и Системным таймером (STC), который является осью времени PTS и DTS.
[0456] Фиг.49 подробно иллюстрирует структуру данных PMT. Заголовок PMT располагается в начале PMT. Заголовок PMT описывает длину данных, включенных в PMT, и прочее. После заголовка PMT располагается множество дескрипторов, относящихся к мультиплексированным данным. В дескрипторах описывается информация, например информация управления копированием. После дескрипторов располагается множество порций информации о потоке, относящихся к потокам, включенным в мультиплексированные данные. Каждая порция информации о потоке включает в себя дескрипторы потока, описывающие информацию, например тип потока для идентификации кодека сжатия потока, PID потока и информацию об атрибутах потока (например, частоту кадров или соотношение сторон). Дескрипторы потока по числу равны количеству потоков в мультиплексированных данных.
[0457] Когда мультиплексированные данные записываются на носитель записи и прочие, они записываются вместе с информационными файлами мультиплексированных данных.
[0458] Каждый из информационных файлов мультиплексированных данных является управляющей информацией о мультиплексированных данных, как показано на Фиг.50. Информационные файлы мультиплексированных данных находятся в однозначном соответствии с мультиплексированными данными, и каждый из файлов включает в себя информацию о мультиплексированных данных, информацию об атрибутах потока и карту входов.
[0459] Как проиллюстрировано на Фиг.50, информация о мультиплексированных данных включает в себя системную скорость, время начала воспроизведения и время окончания воспроизведения. Системная скорость указывает максимальную скорость передачи, с которой конечный декодер системы, который будет описан позже, передает мультиплексированные данные в фильтр PID. Интервалы ATS, включенных в мультиплексированные данные, устанавливаются не выше системной скорости. Время начала воспроизведения указывает PTS в видеокадре в начале мультиплексированных данных. Интервал в один кадр добавляется к PTS в видеокадре в конце мультиплексированных данных, и PTS устанавливается во время окончания воспроизведения.
[0460] Как показано на Фиг.51, порция информации об атрибутах регистрируется в информации об атрибутах потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждая порция информации об атрибутах содержит разную информацию в зависимости от того, является ли соответствующий поток видеопотоком, аудиопотоком, потоком демонстрационной графики или потоком интерактивной графики. Каждая порция информации об атрибутах видеопотока несет информацию, включающую, какой вид кодека сжатия используется для сжатия видеопотока, и разрешение, соотношение сторон и частоту кадров у порций данных изображения, которые включаются в видеопоток. Каждая порция информации об атрибутах аудиопотока несет информацию, включающую то, какой вид кодека сжатия используется для сжатия аудиопотока, сколько каналов включается в аудиопоток, какой язык поддерживает аудиопоток и какова частота дискретизации. Информация об атрибутах видеопотока и информация об атрибутах аудиопотока используются для инициализации декодера перед тем, как проигрыватель воспроизводит информацию.
[0461] В Варианте 5 осуществления мультиплексированные данные, которые нужно использовать, принадлежат к типу потока, включенному в PMT. Кроме того, когда мультиплексированные данные записываются на носитель записи, используется информация об атрибутах видеопотока, включенная в информацию о мультиплексированных данных. Точнее говоря, способ кодирования движущихся изображений или устройство кодирования движущихся изображений, описанные в каждом из Вариантов осуществления, включают в себя этап или блок для назначения уникальной информации, указывающей видеоданные, сформированные способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из Вариантов осуществления, типу потока, включенному в PMT, или информации об атрибутах видеопотока. С помощью этой структуры видеоданные, сформированные способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления, можно отличить от видеоданных, которые соответствуют другому стандарту.
[0462] Кроме того, Фиг.52 иллюстрирует этапы способа декодирования движущихся изображений в соответствии с Вариантом 5 осуществления. На этапе exS100 тип потока, включенный в PMT, или информация об атрибутах видеопотока получаются из мультиплексированных данных. Далее на этапе exS101 определяется, указывает или нет тип потока или информация об атрибутах видеопотока, что мультиплексированные данные формируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из Вариантов осуществления. Когда определяется, что тип потока или информация об атрибутах видеопотока указывает, что мультиплексированные данные формируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений в каждом из Вариантов осуществления, то на этапе exS102 тип потока или информация об атрибутах видеопотока декодируется способом декодирования движущихся изображений в каждом из Вариантов осуществления. Кроме того, когда тип потока или информация об атрибутах видеопотока указывает соответствие традиционным стандартам, например MPEG-2, MPEG4-AVC и VC-1, то на этапе exS103 тип потока или информация об атрибутах видеопотока декодируется способом декодирования движущихся изображений в соответствии с традиционными стандартами.
[0463] По существу, назначение нового уникального значения типу потока или информации об атрибутах видеопотока дает возможность определения, могут или нет способ декодирования движущихся изображений или устройство декодирования движущихся изображений, которые описаны в каждом из Вариантов осуществления, выполнять декодирование. Даже при вводе мультиплексированных данных, которые соответствуют другому стандарту, можно выбрать подходящий способ или устройство декодирования. Таким образом, становится возможным декодировать информацию без какой-либо ошибки. Кроме того, способ или устройство кодирования движущихся изображений либо способ или устройство декодирования движущихся изображений в Варианте 5 осуществления могут использоваться в устройствах и системах, описанных выше.
(Вариант 6 осуществления)
[0464]
Каждый из способа кодирования движущихся изображений, устройства кодирования движущихся изображений, способа декодирования движущихся изображений и устройства декодирования движущихся изображений в каждом из Вариантов осуществления обычно выполняется в виде интегральной схемы или Большой интегральной схемы (LSI). В качестве примера LSI Фиг.53 иллюстрирует конфигурацию LSI ex500, которая превращена в одну микросхему. LSI ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые будут описаны ниже, и эти элементы соединяются друг с другом посредством шины ex510. Схема ex505 питания активизируется путем подачи питания каждому из элементов, когда включается схема ex505 питания.
[0465] Например, когда выполняется кодирование, LSI ex500 принимает аудиовизуальный сигнал от микрофона ex117, камеры ex113 и других посредством аудиовизуального ввода/вывода ex509 под управлением блока ex501 управления, включающего в себя CPU ex502, контроллер ex503 памяти, контроллер ex504 потока и блок ex512 регулировки частоты возбуждения. Принятый аудиовизуальный сигнал временно сохраняется во внешнем запоминающем устройстве ex511, например SDRAM. Под управлением блока ex501 управления сохраненные данные сегментируются на порции данных в соответствии с объемом и скоростью обработки для передачи их блоку ex507 обработки сигналов. Затем блок ex507 обработки сигналов кодирует звуковой сигнал и/или видеосигнал. Здесь кодирование видеосигнала является кодированием, описанным в каждом из Вариантов осуществления. Кроме того, блок ex507 обработки сигналов иногда мультиплексирует кодированные звуковые данные и кодированные видеоданные, и ввод-вывод ex506 потока предоставляет мультиплексированные данные вовне. Предоставленные мультиплексированные данные передаются базовой станции ex107 или записываются на носители ex215 записи. Когда мультиплексируются наборы данных, наборы данных следует временно сохранить в буфере ex508, чтобы наборы данных синхронизировались друг с другом.
[0466] Хотя запоминающее устройство ex511 является элементом вне LSI ex500, оно может включаться в LSI ex500. Буфер ex508 не ограничивается одним буфером, а может состоять из буферов. Кроме того, LSI ex500 можно превратить в одну микросхему или множество микросхем.
[0467] Кроме того, хотя блок ex501 управления включает в себя CPU ex502, контроллер ex503 памяти, контроллер ex504 потока, блок ex512 регулировки частоты возбуждения, конфигурация блока ex501 управления не ограничивается таковой. Например, блок ex507 обработки сигналов может дополнительно включать в себя CPU. Включение другого CPU в блок ex507 обработки сигналов может повысить скорость обработки. Кроме того, в качестве другого примера CPU ex502 может работать в качестве блока ex507 обработки сигналов или быть его частью, и может, например, включать в себя блок обработки звукового сигнала. В таком случае блок ex501 управления включает в себя блок ex507 обработки сигналов или CPU ex502, включающий в себя часть блока ex507 обработки сигналов.
[0468] Используемым здесь наименованием является LSI, но она также может называться системной LSI, супер-LSI или ультра-LSI в зависимости от степени интеграции.
[0469] Кроме того, способы достижения интеграции не ограничиваются LSI, и специальная схема или универсальный процессор и т.д. также могут обеспечить интеграцию. С той же целью может использоваться программируемая пользователем вентильная матрица (FPGA), которую можно запрограммировать после производства LSI, или реконфигурируемый процессор, который допускает реконфигурацию соединения или конфигурацию LSI.
[0470] В будущем, с развитием полупроводниковой технологии совершенно новая технология может заменить LSI. Функциональные блоки можно интегрировать с использованием такой технологии. Есть вероятность, что настоящее изобретение применяется к биотехнологии.
(Вариант 7 осуществления)
[0471]
Когда видеоданные декодируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления, скорее всего, увеличивается объем вычислений по сравнению с видеоданными, которые соответствуют традиционному стандарту, например MPEG-2, MPEG-AVC и VC-1. Таким образом, LSI ex500 нужно настраивать на частоту возбуждения выше, чем у CPU ex502, которую нужно использовать, когда декодируются видеоданные в соответствии с традиционным стандартом. Однако, когда частота возбуждения устанавливается выше, имеется проблема, что увеличивается энергопотребление.
[0472] Чтобы решить эту проблему, устройство декодирования движущихся изображений, например телевизор ex300 и LSI ex500, конфигурируется для определения, какому стандарту соответствуют видеоданные, и переключения между частотами возбуждения в соответствии с определенным стандартом. Фиг.54 иллюстрирует конфигурацию ex800 в Варианте 7 осуществления. Блок ex803 переключения частоты возбуждения устанавливает частоту возбуждения в более высокую частоту возбуждения, когда видеоданные формируются способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления. Затем блок ex803 переключения частоты возбуждения дает блоку ex801 декодирующей обработки, который выполняет способ декодирования движущихся изображений, описанный в каждом из Вариантов осуществления, команду декодировать видеоданные. Когда видеоданные соответствуют традиционному стандарту, блок ex803 переключения частоты возбуждения устанавливает частоту возбуждения в меньшую частоту возбуждения, чем у видеоданных, сформированных способом кодирования движущихся изображений или устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления. Затем блок ex803 переключения частоты возбуждения дает команду блоку ex802 декодирующей обработки, который соответствует традиционному стандарту, декодировать видеоданные.
[0473] Точнее говоря, блок ex803 переключения частоты возбуждения включает в себя CPU ex502 и блок ex512 регулировки частоты возбуждения на Фиг.53. Здесь каждый из блока ex801 декодирующей обработки, который выполняет способ декодирования движущихся изображений, описанный в каждом из Вариантов осуществления, и блока ex802 декодирующей обработки, который соответствует традиционному стандарту, соответствует блоку ex507 обработки сигналов на Фиг.53. CPU ex502 определяет, какому стандарту соответствуют видеоданные. Затем блок ex512 регулировки частоты возбуждения определяет частоту возбуждения на основе сигнала от CPU ex502. Кроме того, блок ex507 обработки сигналов декодирует видеоданные на основе сигнала от CPU ex502. Например, идентификационная информация, описанная в Варианте 5 осуществления, скорее всего используется для идентификации видеоданных. Идентификационная информация не ограничивается описанной в Варианте 5 осуществления, а может быть любой информацией при условии, что эта информация указывает, какому стандарту соответствуют видеоданные. Например, когда на основе внешнего сигнала для определения, что видеоданные используются для телевидения или диска и т.д., можно определить, какому стандарту соответствуют видеоданные, определение можно выполнять на основе такого внешнего сигнала. Кроме того, CPU ex502 выбирает частоту возбуждения на основе, например, справочной таблицы, в которой стандарты видеоданных ассоциируются с частотами возбуждения, как показано на Фиг.56. Частота возбуждения может выбираться путем сохранения справочной таблицы в буфере ex508 и внутреннем запоминающем устройстве LSI, и при обращении к справочной таблице с помощью CPU ex502.
[0474] Фиг.55 иллюстрирует этапы для выполнения способа в Варианте 7 осуществления. Сначала на этапе exS200 блок ex507 обработки сигналов получает идентификационную информацию из мультиплексированных данных. Далее на этапе exS201 CPU ex502 определяет, формируются или нет видеоданные на основе идентификационной информации с помощью способа кодирования и устройства кодирования, описанных в каждом из Вариантов осуществления. Когда видеоданные формируются способом кодирования и устройством кодирования, описанными в каждом из Вариантов осуществления, на этапе exS202 CPU ex502 передает блоку ex512 регулировки частоты возбуждения сигнал для установки частоты возбуждения в более высокую частоту возбуждения. Затем блок ex512 регулировки частоты возбуждения устанавливает частоту возбуждения в более высокую частоту возбуждения. С другой стороны, когда идентификационная информация указывает, что видеоданные соответствуют традиционному стандарту, например MPEG-2, MPEG4-AVC и VC-1, на этапе exS203 CPU ex502 передает блоку ex512 регулировки частоты возбуждения сигнал для установки частоты возбуждения в меньшую частоту возбуждения. Затем блок ex512 регулировки частоты возбуждения устанавливает частоту возбуждения в меньшую частоту возбуждения, нежели в случае, когда видеоданные формируются способом кодирования и устройством кодирования, описанными в каждом из Вариантов осуществления.
[0475] Кроме того, вместе с переключением частот возбуждения можно усилить эффект экономии энергии путем изменения напряжения, которое нужно подать на LSI ex500 или устройство, включающее в себя LSI ex500. Например, когда частота возбуждения устанавливается ниже, напряжение, которое нужно подать на LSI ex500 или устройство, включающее в себя LSI ex500, скорее всего устанавливается в напряжение ниже, чем в случае, когда частота возбуждения устанавливается выше.
[0476] Кроме того, в качестве способа для установки частоты возбуждения, когда объем вычислений для декодирования больше, частоту возбуждения можно установить выше, а когда объем вычислений для декодирования меньше, частоту возбуждения можно установить ниже. Таким образом, способ установки не ограничивается способами, описанными выше. Например, когда объем вычислений для декодирования видеоданных в соответствии с MPEG4-AVC больше объема вычислений для декодирования видеоданных, сформированных способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления, частота возбуждения скорее всего устанавливается в обратном порядке к установке, описанной выше.
[0477] Кроме того, способ для установки частоты возбуждения не ограничивается способом для установки частоты возбуждения ниже. Например, когда идентификационная информация указывает, что видеоданные формируются способом кодирования движущихся изображений и устройством кодирования движущихся изображений, описанными в каждом из Вариантов осуществления, напряжение, которое нужно подать на 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.
[0478] Соответственно, можно усилить эффект экономии энергии путем переключения между частотами возбуждения в соответствии со стандартом, которому соответствуют видеоданные. Кроме того, когда LSI ex500 или устройство, включающее в себя LSI ex500, приводится в действие с использованием батареи, время работы от батарей можно продлить вместе с эффектом экономии энергии.
(Вариант 8 осуществления)
[0479]
Имеются случаи, когда множество видеоданных, которые соответствуют разным стандартам, предоставляется устройствам и системам, например телевизору и сотовому телефону. Чтобы обеспечить возможность декодирования множества видеоданных, которые соответствуют разным стандартам, блок ex507 обработки сигналов в LSI ex500 должен соответствовать разным стандартам. Однако возникают проблемы увеличения масштаба схемы LSI ex500 и увеличения стоимости с отдельным использованием блоков ex507 обработки сигналов, которые соответствуют соответствующим стандартам.
[0480] Чтобы решить эту проблему, представляется конфигурация, в которой блок декодирующей обработки для реализации способа декодирования движущихся изображений, описанного в каждом из Вариантов осуществления, и блок декодирующей обработки, который соответствует традиционному стандарту, например MPEG-2, MPEG4-AVC и VC-1, частично используются совместно. Ex900 на Фиг.57A показывает пример этой конфигурации. Например, способ декодирования движущихся изображений, описанный в каждом из Вариантов осуществления, и способ декодирования движущихся изображений, который соответствует MPEG4-AVC, имеют отчасти общие подробности обработки, например энтропийное кодирование, обратное квантование, фильтрацию уменьшения блочности и предсказание с компенсацией движения. Подробности обработки, которые должны использоваться совместно, скорее всего включают в себя использование блока ex902 декодирующей обработки, который соответствует MPEG4-AVC. В отличие от этого специализированный блок ex901 декодирующей обработки скорее всего используется для другой обработки, уникальной для настоящего изобретения. Поскольку настоящее изобретение отличается, в частности, арифметическим декодированием, то для арифметического декодирования используется, например, специализированный блок ex901 декодирующей обработки. В противном случае блок декодирующей обработки, скорее всего, совместно используется для одного из обратного квантования, фильтрации уменьшения блочности и компенсации движения, или для всей обработки. Блок декодирующей обработки для реализации способа декодирования движущихся изображений, описанного в каждом из Вариантов осуществления, может совместно использоваться для обработки, которую нужно распределить, а специализированный блок декодирующей обработки может использоваться для обработки, уникальной для обработки в MPEG4-AVC.
[0481] Кроме того, ex1000 на Фиг.57B показывает другой пример, в котором обработка частично распределяется. Этот пример использует конфигурацию, включающую специализированный блок ex1001 декодирующей обработки, который поддерживает обработку, уникальную для настоящего изобретения, специализированный блок ex1002 декодирующей обработки, который поддерживает обработку, уникальную для другого традиционного стандарта, и блок ex1003 декодирующей обработки, который поддерживает обработку, которую нужно распределить между способом декодирования движущихся изображений в настоящем изобретении и традиционным способом декодирования движущихся изображений. Здесь специализированные блоки ex1001 и ex1002 декодирующей обработки не обязательно являются специализированными для обработки по настоящему изобретению и обработки по традиционному стандарту, а могут быть блоками, допускающими реализацию общей обработки. Кроме того, конфигурация Варианта 8 осуществления может быть реализована с помощью LSI ex500.
[0482] По существу, уменьшение масштаба схемы LSI и сокращение затрат возможны путем совместного использования блока декодирующей обработки для обработки, которую нужно распределить между способом декодирования движущихся изображений в настоящем изобретении и способом декодирования движущихся изображений в соответствии с традиционным стандартом.
[Промышленная применимость]
[0483] Настоящее изобретение применимо к способу кодирования изображений, способу декодирования изображений, устройству кодирования изображений и устройству декодирования изображений, и в частности, применимо к способу кодирования изображений, способу декодирования изображений, устройству кодирования изображений и устройству декодирования изображений, которые используют арифметическое кодирование и арифметическое декодирование.
[0484] [Список ссылок]
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 Блок управления контекстом
143 Блок двоичного арифметического кодирования
151, 251 Двоичная последовательность
152, 252 Индекс контекста
200 Устройство декодирования изображений
201 Блок управления
202 Блок декодирования переменной длины
204 Блок обратного квантования
205 Блок обратного преобразования
224 Ортогональные коэффициенты преобразования
226 Декодированный сигнал изображения
229 Сигнал изображения
241 Блок обратного преобразования из двоичной формы
243 Блок двоичного арифметического декодирования