Способ декодирования изображения, способ кодирования изображения, устройство декодирования изображения, устройство кодирования изображения и устройство кодирования и декодирования изображения

Иллюстрации

Показать все

Изобретение относится к средствам декодирования изображения. Технический результат заключается в расширении арсенала технических средств декодирования или кодирования изображений. Предложен способ декодирования изображения для декодирования на поблочной основе кодированного изображения, включенного в битовый поток, причем способ декодирования изображения содержит: выполнение арифметического декодирования над текущим блоком, подлежащим декодированию; определение, находится ли текущий блок в конце слайса; определение, находится ли текущий блок в конце субпотока, когда определено, что текущий блок не находится в конце слайса, причем субпоток является структурной единицей изображения, которая отлична от слайса; и выполнение арифметического декодирования над субпоследним битом и выполнение завершения арифметического декодирования в качестве первого завершения, когда определено, что текущий блок находится в конце субпотока. 5 н. и 10 з.п. ф-лы, 39 ил.

Реферат

ОБЛАСТЬ ТЕХНИКИ

[0001] Настоящее изобретение относится к способам кодирования движущихся изображений и способам декодирования движущихся изображений и, в частности, относится к способу арифметического кодирования и способу арифметического декодирования.

ПРЕДШЕСТВУЮЩИЙ УРОВЕНЬ ТЕХНИКИ

[0002] Стандарт высокоэффективного видеокодирования (HEVC), который является стандартом кодирования изображений следующего поколения, исследовался в разных направлениях, чтобы повысить его эффективность кодирования (см. непатентный документ (NРL) 1). Существуют традиционные стандарты сектора стандартизации телекоммуникаций Международного союза по телекоммуникациям (ITU-T), примером которых является H.26x, и стандарты ISO/IEC, примером которых является MPEG-x. Последний и наиболее продвинутый стандарт кодирования изображений в настоящее время исследовался в качестве стандарта, следующего по отношению к стандарту, примерами которого являются H.264/AVC или MPEG-4 AVC (см. NРL 2).

[0003] В стандарте HEVC, арифметическое кодирование, упоминаемое как основанное на контексте адаптивное двоичное арифметическое кодирование (CABAC), используется как энтропийное кодирование.

СПИСОК ЦИТИРОВАННЫХ ДОКУМЕНТОВ

НЕПАТЕНТНЫЕ ДОКУМЕНТЫ

[0004] [NРL 1] Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTС1/SC29/WG11 10th Meeting: Stockholm, SE, 11-20 July 2012, JCTVC-J1003_d7, “High efficiency video coding (HEVC) text specification draft 8”

[NPL 2] ITU-T Recommendation H.264 “Advanced video coding for generic audiovisual services”, March, 2010

СУЩНОСТЬ ИЗОБРЕТЕНИЯ

ТЕХНИЧЕСКАЯ ЗАДАЧА

[0005] Однако, обычный способ декодирования изображения и обычный способ кодирования изображения имеют проблему сложности в конфигурации для выполнения обработки в соответствии с этими способами.

[0006] Ввиду этого, настоящее изобретение предлагает способ декодирования изображения, способ кодирования изображения и другое, которые способны декодировать и кодировать изображения с простой конфигурацией.

РЕШЕНИЕ ЗАДАЧИ

[0007] Способ декодирования изображения в соответствии с аспектом настоящего изобретения является способом декодирования изображения для декодирования, на поблочной основе, кодированного изображения, включенного в битовый поток. Способ декодирования изображения включает в себя: выполнение арифметического декодирования над текущим блоком, подлежащим декодированию; определение, находится ли текущий блок на конце слайса; определение, находится ли текущий блок на конце субпотока, когда определено, что текущий блок не находится на конце слайса, причем субпоток является структурной единицей изображения, которая отлична от слайса; и выполнение арифметического декодирования над субпоследним битом и выполнение завершения арифметического декодирования в качестве первого завершения, когда определено, что текущий блок находится на конце субпотока.

[0008] Эти общие и специфические аспекты могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы или считываемого компьютером носителя записи, такого как память только для считывания на компакт-диске (CD-ROM), или любая комбинация систем, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей записи.

ПОЛЕЗНЫЕ ЭФФЕКТЫ ИЗОБРЕТЕНИЯ

[0009] Способ декодирования изображения и способ кодирования изображения в соответствии с настоящим изобретением упрощают конфигурацию для декодирования или кодирования изображений.

КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ

[0010]

Фиг. 1 - блок-схема, показывающая конфигурацию модуля энтропийного декодирования.

Фиг. 2 - блок-схема последовательности операций обработки, выполняемой модулем энтропийного декодирования.

Фиг. 3А - диаграмма, показывающая синтаксис слайса.

Фиг. 3В - диаграмма, показывающая синтаксис битового потока в слайсе.

Фиг. 4 - блок-схема, показывающая конфигурацию модуля энтропийного кодирования.

Фиг. 5 - блок-схема последовательности операций обработки, выполняемой модулем энтропийного кодирования.

Фиг. 6 - блок-схема, показывающая пример конфигурации устройства декодирования изображения согласно варианту осуществления 1.

Фиг. 7 - блок-схема, показывающая пример конфигурации модуля энтропийного декодирования согласно варианту осуществления 1.

Фиг. 8 - блок-схема последовательности операций примера обработки, выполняемой модулем энтропийного декодирования согласно варианту осуществления 1.

Фиг. 9 - диаграмма, показывающая пример синтаксиса слайса согласно варианту осуществления 1.

Фиг. 10 - диаграмма, показывающая пример синтаксиса битового потока согласно вариации варианта осуществления 1.

Фиг. 11 - блок-схема, показывающая пример конфигурации устройства кодирования изображения согласно варианту осуществления 2.

Фиг. 12 - блок-схема, показывающая пример конфигурации модуля энтропийного кодирования согласно варианту осуществления 2.

Фиг. 13 - блок-схема последовательности операций примера обработки, выполняемой модулем энтропийного кодирования согласно варианту осуществления 2.

Фиг. 14А - блок-схема последовательности операций способа декодирования изображения согласно одному варианту осуществления настоящего изобретения.

Фиг. 14В - диаграмма, показывающая конфигурацию устройства декодирования изображения согласно одному варианту осуществления настоящего изобретения.

Фиг. 15А - блок-схема последовательности операций способа кодирования изображения согласно одному варианту осуществления настоящего изобретения.

Фиг. 15В - диаграмма, показывающая конфигурацию устройства кодирования изображения согласно одному варианту осуществления настоящего изобретения.

Фиг. 16 - диаграмма общей конфигурации системы предоставления контента, которая предоставляет услуги распространения контента.

Фиг. 17 - общая конфигурация цифровой системы вещания.

Фиг. 18 - блок-схема, иллюстрирующая пример конфигурации телевизора.

Фиг. 19 - блок-схема, иллюстрирующая пример конфигурации модуля воспроизведения/записи информации, который считывает и записывает информацию с/на носитель записи, которым является оптический диск.

Фиг. 20 - пример конфигурации носителя записи, которым является оптический диск.

Фиг. 21А - пример сотового телефона.

Фиг. 21В - блок-схема, показывающая пример конфигурации сотового телефона.

Фиг. 22 - структура мультиплексированных данных.

Фиг. 23 схематично показывает, каким образом каждый поток мультиплексирован в мультиплексированных данных.

Фиг. 24 показывает, каким образом видеопоток сохранен в потоке PES-пакетов, более детально.

Фиг. 25 - структура TS-пакетов и исходных пакетов в мультиплексированных данных.

Фиг. 26 - структура данных РМТ.

Фиг. 27 - внутренняя структура информации мультиплексированных данных.

Фиг. 28 - внутренняя структура информации атрибутов потока.

Фиг. 29 - этапы для идентификации видеоданных.

Фиг. 30 - пример конфигурации интегральной схемы для реализации способа кодирования движущегося изображения и способа декодирования движущегося изображения согласно каждому из вариантов осуществления.

Фиг. 31 - конфигурация для переключения между частотами возбуждения.

Фиг. 32 - этапы для идентификации видеоданных и переключения между частотами возбуждения.

Фиг. 33 - пример таблицы преобразования, в которой стандарты видеоданных ассоциированы с частотами возбуждения.

Фиг. 34А - диаграмма, показывающая пример конфигурации для совместного использования модуля блока обработки сигналов.

Фиг. 34В - диаграмма, показывающая другой пример конфигурации для совместного использования модуля блока обработки сигналов.

ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ

[0011] Базовые знания, формирующие основу настоящего изобретения

В отношении традиционного способа декодирования изображения и способа кодирования изображения, изобретателями были выявлены проблемы, описанные ниже.

[0012] В арифметическом кодировании, соответствующем CABAC, вводятся ctxIdx, которое является индексом модели вероятности, упоминаемой как контекст, и binVal, которое является двоичным сигналом, подлежащим кодированию, и определяется выходная кодовая последовательность посредством обновления codIRange, codILow, firstBitFlag BitsOutstanding, которые являются информацией, указывающей внутренние вероятностные состояния.

[0013] Для начальных значений информации внутреннего вероятностного состояния устанавливаются codIRange=510, codILow=0, firstBitFlag=1 и BitsOutstanding=0.

[0014] В противоположность этому, в арифметическом декодировании, соответствующем САВАС, вводятся ctxIdx, которое является индексом модели вероятности, ctxIdxTable, которое является ассоциированной информацией, и bypassFlag, которое указывает, применяется ли обходное декодирование к текущей кодовой последовательности, и элемент (бин) декодированного двоичного сигнала выводится посредством обновления codIRange и codIOffset, которые являются информацией, указывающей внутренние вероятностные состояния.

[0015] Как описано выше, в арифметическом кодировании и декодировании в САВАС, кодирование или декодирование выполняется посредством обновлений внутренних вероятностных состояний. Кроме того, когда обработка САВАС начинается в точке иной, чем начало в обработке, существуют случаи, где внутреннее вероятностное состояние той же самой структурной единицы (единицы, формирующей изображение, и также упоминаемой как единица обработки) может отличаться в кодировании и декодировании. Это препятствует надлежащему кодированию или декодированию изображений. Следовательно, завершение выполняется в кодировании и декодировании.

[0016] В способе, раскрытом в NPL 1, при кодировании, арифметическое кодирование выполняется над флагом конца слайса (end_of_slice), указывающим значение 1, флаг конца слайса помещается в конец слайса, и выполняется завершение. При декодировании, арифметическое декодирование выполняется над флагом конца слайса, и выполняется завершение. Соответственно, даже когда САВАС (арифметическое кодирование или арифметическое декодирование) начинается в точке иной, чем начало в обработке, если начальное положение является началом слайса, имеется возможность наличия того же самого внутреннего вероятностного состояния в кодировании и декодировании.

[0017] Однако стандарт HEVC использует, в отличие от слайсов (фрагментов), структурные единицы, упоминаемые как мозаичные элементы, для параллельной обработки, и структурные единицы (далее упоминаемые как CTU-строки) для обеспечения возможности параллельной обработки, упоминаемой как параллельная обработка волнового фронта (WPP). В стандарте HEVC завершение не выполняется над мозаичными элементами и CTU-строками.

[0018] Фиг. 1 является блок-схемой, показывающей конфигурацию модуля энтропийного декодирования.

[0019] Модуль 800 энтропийного декодирования выполняет арифметическое декодирование САВАС и включает в себя модуль 801 декодирования CTU, модуль 802 определения конца слайса, модуль 803 определения кода субпотока, модуль 804 поиска начала байта и модуль 805 завершения.

[0020] На фиг. 2 показана блок-схема последовательности операций обработки, выполняемой модулем 800 энтропийного декодирования.

[0021] Сначала, модуль 801 декодирования CTU в модуле энтропийного декодирования выполняет арифметическое декодирование над единицей дерева кодирования (CTU) в битовом потоке BS (этап S801). CTU относится к блоку, формирующему изображение (картинку). Затем, модуль 802 определения конца слайса выполняет арифметическое декодирование над флагом конца слайса (end_of_slice_flag) (этап S802). Модуль 802 определения конца слайса тогда определяет, указывает ли 0 декодированный флаг конца слайса (end_of_slice_flag) (этап S803). Когда определено, что флаг конца слайса не указывает 0 («нет» на этапе S803), модуль 805 завершения выполняет завершение арифметического декодирования (завершение арифметического декодирования) (этап S804). С другой стороны, когда определено, что флаг конца слайса указывает 0 («да» на этапе S803), то модуль 803 определения конца субпотока определяет, находится ли CTU, который был арифметически декодирован непосредственно перед этим, на конце субпотока (этап S805). Субпоток относится к мозаичному элементу или CTU-строке, как описано выше. CTU-строка является структурной единицей, включающей в себя горизонтально выровненные CTU.

[0022] Здесь, когда определено, что CTU находится в конце субпотока («да» на этапе S805), модуль 804 поиска начала байта выполняет поиск начала байта (поиск начала байта) (этап S806). Этот поиск начала байта относится к обработке поиска битового потока в отношении начала байтовой единицы, при этом пропуская битовую строку. С другой стороны, когда определено, что CTU не находится на конце субпотока («нет» на этапе S805), или после этапа S806, модуль 800 энтропийного декодирования повторяет обработку от этапа 801 над следующим CTU.

[0023] Фиг. 3А является диаграммой, показывающей синтаксис слайса.

[0024] Слайс включает в себя данные 851, указывающие кодированную CTU (coding_tree_unit()), и арифметически кодированный флаг 852 конца слайса (end_of_slice_flag) для определения конца слайса. Слайс также включает в себя предопределенную битовую строку 854 (byte_alignment()), когда удовлетворено условие 853. Условие 853 является условием, что CTU, указанная данными 851, находится на конце субпотока.

[0025] Фиг. 3В является диаграммой, показывающей синтаксис битовой строки 854.

[0026] Битовая строка 854 включает в себя бит 855, указывающий значение 1 (bit_equal_to_one), и такое количество битов 856, указывающих значения 0 (bit_equal_to_zero), как это необходимо. Битовая строка 854 включена в битовый поток, так что число битов кодированного субпотока равно целому кратному байтовой единицы. Битовая строка 854 не была арифметически кодирована и является кодом, указывающим значение 0 или 1. В поиске начала байта битовая строка 854 пропускается.

[0027] На фиг. 4 показана блок-схема, иллюстрирующая конфигурацию модуля энтропийного кодирования.

[0028] Модуль 900 энтропийного кодирования выполняет арифметическое кодирование САВАС и включает в себя модуль 901 кодирования CTU, модуль 902 кодирования конца слайса, модуль 903 определения конца субпотока, модуль 904 байтового выравнивания и модуль 905 завершения.

[0029] На фиг. 5 показана блок-схема последовательности операций обработки, выполняемой модулем 900 энтропийного кодирования.

[0030] Сначала, модуль 901 кодирования CTU в модуле 900 энтропийного кодирования выполняет арифметическое кодирование над CTU в текущем сигнале, подлежащем кодированию (этап S901). Затем, модуль 902 определения конца слайса выполняет арифметическое кодирование над флагом конца слайса (end_of_slice_flag) (этап S902). Модуль 902 кодирования конца слайса затем определяет, указывает ли 0 флаг конца слайса (end_of_slice_flag) (этап S903). Здесь, когда определено, что флаг конца слайса не указывает 0 («нет» на этапе S903), модуль 905 завершения выполняет завершение арифметического кодирования (завершение арифметического кодирования) (этап S904). С другой стороны, когда определено, что флаг конца слайса указывает 0 («да» на этапе S903), модуль 903 определения конца субпотока определяет, находится ли CTU, которая была арифметически кодирована непосредственно перед этим, на конце субпотока (этап S905).

[0031] Здесь, когда определено, что CTU находится на конце субпотока («да» на этапе S905), модуль 904 байтового выравнивания выполняет байтовое выравнивание (этап S906). Когда определено, что CTU не находится на конце субпотока («нет» на этапе S905) или после этапа S906, модуль 900 энтропийного кодирования повторяет обработку от этапа S901 над следующей CTU.

[0032] В способе декодирования изображения и в способе кодирования изображения, описанных выше, завершение не выполняется после выполнения арифметического декодирования или арифметического кодирования над CTU, которая находится на конце субпотока. Следовательно, например, когда множество субпотоков обрабатываются параллельно, обработка начинается в точке иной, чем начало в битовом потоке BS или сигнале, подлежащем кодированию. В результате, внутреннее вероятностное состояние САВАС, соответствующее данному субпотоку, может отличаться в кодировании и декодировании. Более конкретно, надлежащее кодирование и декодирование изображения не может выполняться.

[0033] Для того чтобы решить такую проблему, каждый слайс может быть разделен на меньшие единицы без использования субпотоков. Однако, в таком случае, эффективность кодирования снижается, что является еще одной проблемой.

[0034] Другим методом решения этой проблемы является просто выполнение завершения после выполнения арифметического декодирования или кодирования над CTU, которая находится на конце субпотока. Однако в этом случае необходим дополнительный модуль обработки для выполнения завершения на конце субпотока, что приводит в результате к усложненной конфигурации.

[0035] Чтобы решить такие проблемы, способом декодирования изображения в соответствии с аспектом настоящего изобретения является способ декодирования изображения для декодирования, на поблочной основе, кодированного изображения, включенного в битовый поток. Способ декодирования изображения включает в себя: выполнение арифметического декодирования над текущим блоком, подлежащим декодированию; определение того, находится ли текущий блок на конце слайса; определение того, находится ли текущий блок на конце субпотока, когда определено, что текущий блок не находится на конце слайса, причем субпоток является структурной единицей изображения, которая отличается от слайса; и выполнение арифметического декодирования над субпоследним битом и выполнение завершения арифметического декодирования в качестве первого завершения, когда определено, что текущий блок находится на конце субпотока.

[0036] При этом, даже если арифметически декодированный блок не находится на конце слайса, если блок находится на конце субпотока, выполняется завершение арифметического декодирования. Это позволяет надлежащим образом декодировать параллельно множество субпотоков в битовом потоке. Кроме того, можно надлежащим образом декодировать кодированный битовый поток с меньшим снижением эффективности, путем использования слайсов и субпотоков. Кроме того, обработка, включая арифметическое декодирование субпоследнего бита и завершение, выполняется над концом субпотока. Следовательно, когда обработка, включая арифметическое декодирование флага и завершение, выполняется над концом слайса, общая обработка может выполняться над концом субпотока и концом слайса. Более конкретно, поскольку дополнительный модуль обработки не требуется для обработки, выполняемой над концом субпотока, изображения могут декодироваться с простой конфигурацией.

[0037] Кроме того, может быть, что способ декодирования изображения дополнительно включает в себя выполнение завершения арифметического декодирования в качестве второго завершения, когда определено, что текущий блок находится на конце слайса, и что, когда выполнено первое завершение, выполняется та же самая обработка, как второе завершение.

[0038] При этом, завершение, выполняемое над концом слайса, является тем же самым, что и завершение, выполняемое над концом субпотока. Это допускает более простую конфигурацию для декодирования изображений.

[0039] Кроме того, может быть, что способ декодирования изображения дополнительно включает в себя выполнение арифметического декодирования над флагом конца слайса, указывающим, находится ли текущий блок на конце слайса, и что при определении того, находится ли текущий блок на конце слайса, определяется, что текущий блок находится на конце слайса, когда флаг конца слайса, над которым выполнялось арифметическое декодирование, указывает предопределенное значение, и при выполнении арифметического декодирования над субпоследним битом, то же самое значение, что и предопределенное значение, восстанавливается посредством арифметического декодирования. Например, может быть, что при выполнении арифметического декодирования над субпоследним битом, значение 1 восстанавливается посредством арифметического декодирования.

[0040] Соответственно, завершение, выполняемое над концом слайса, и завершение, выполняемое над концом субпотока, исполняются, когда то же самое значение получается в арифметическом декодировании 1-бита. Следовательно, больше обработки может совместно использоваться в обработке, выполняемой над концом субпотока и концом слайса.

[0041] Более того, может быть, что способ декодирования изображения дополнительно включает в себя пропуск битовой строки после выполнения первого завершения, причем битовая строка записывается в битовый поток, так что битовая длина, включающая в себя субпоток и субпоследний бит, равна множеству предопределенных N битов.

[0042] При этом, например, выполняется поиск начала байта, обеспечивающий возможность надлежащего декодирования каждой байтовой единицы.

[0043] Кроме того, может быть, что при выполнении арифметического декодирования над субпоследним битом арифметическое декодирование выполняется над первым битом битовой строки в качестве субпоследнего бита.

[0044] Соответственно, не требуется включать дополнительный бит в битовом потоке в качестве субпоследнего бита; и, таким образом, можно надлежащим образом декодировать кодированный битовый поток с меньшим снижением эффективности.

[0045] Кроме того, чтобы решить упомянутые проблемы, способом кодирования изображения согласно одному аспекту настоящего изобретения является способ кодирования изображения для кодирования изображения на поблочной основе, чтобы генерировать битовый поток. Способ кодирования изображения включает в себя: выполнение арифметического кодирования над текущим блоком, подлежащим кодированию; определение, находится ли текущий блок на конце слайса; определение, находится ли текущий блок на конце субпотока, когда определено, что текущий блок не находится на конце слайса, причем субпоток является структурной единицей изображения, которая отличается от слайса; и выполнение арифметического кодирования над субпоследним битом и выполнение завершения арифметического кодирования в качестве первого завершения, когда определено, что текущий блок находится на конце субпотока.

[0046] При этом, даже если арифметически кодированный блок не находится на конце слайса, если блок находится на конце субпотока, выполняется завершение арифметического кодирования. Это позволяет надлежащим образом кодировать параллельно множество субпотоков в битовом потоке. Кроме того, можно подавлять снижение в эффективности кодирования путем использования слайсов и субпотоков. Кроме того, обработка, включая арифметическое кодирование субпоследнего бита и завершение, выполняется над концом субпотока. Следовательно, когда обработка, включая арифметическое кодирование флага и завершение, выполняется над концом слайса, общая обработка может выполняться над концом субпотока и концом слайса. Более конкретно, поскольку дополнительный модуль обработки не требуется для обработки, выполняемой над концом субпотока, изображения могут кодироваться с простой конфигурацией.

[0047] Кроме того, может быть, что способ кодирования изображения дополнительно включает в себя выполнение завершения арифметического кодирования в качестве второго завершения, когда определено, что текущий блок находится на конце слайса, и что когда выполняется первое завершение, выполняется та же обработка, как второе завершение.

[0048] При этом, завершение, выполняемое над концом слайса, является тем же самым, что и завершение, выполняемое над концом субпотока. Это допускает более простую конфигурацию для кодирования изображений.

[0049] Кроме того, может быть, что способ кодирования изображения дополнительно включает в себя: выполнение арифметического кодирования над флагом конца слайса, указывающим, находится ли текущий блок на конце слайса, и что при определении, находится ли текущий блок на конце слайса, определяется, что текущий блок находится на конце слайса, когда флаг конца слайса указывает предопределенное значение, и при выполнении арифметического декодирования над субпоследним битом, арифметическое кодирование выполняется над субпоследним битом, указывающим то же самое значение, что и предопределенное значение. Например, может быть, что при выполнении арифметического кодирования над субпоследним битом, арифметическое кодирование выполняется над субпоследним битом, указывающим значение 1.

[0050] Соответственно, завершение, выполняемое над концом слайса, и завершение, выполняемое над концом субпотока, исполняются, когда арифметическое кодирование выполняется на 1-битом, указывающим то же самое значение. Следовательно, больше обработки может использоваться совместно при обработке, выполняемой над концом субпотока и концом слайса.

[0051] Кроме того, может быть, что способ кодирования изображения дополнительно включает в себя запись битовой строки в битовый поток после выполнения первого завершения так, что битовая длина, включающая в себя субпоток и субпоследний бит, равна множеству предопределенных N битов.

[0052] При этом, например, можно надлежащим образом выполнять кодирование каждой байтовой единицы.

[0053] Кроме того, может быть, что при выполнении арифметического кодирования над субпоследним битом, арифметическое кодирование выполняется над первым битом битовой строки, в качестве субпоследнего бита.

[0054] Соответственно, не требуется включать дополнительный бит в битовый поток в качестве субпоследнего бита; и, таким образом, можно подавлять снижение в эффективности кодирования.

[0055] Эти общие и специфические аспекты могут быть реализованы с использованием системы, способа, интегральной схемы, компьютерной программы или считываемого компьютером носителя для записи данных, такого как CD-ROM, или любой комбинации систем, способов, интегральных схем, компьютерных программ или считываемых компьютером носителей для записи данных.

[0056] Далее конкретно описываются варианты осуществления со ссылками на чертежи.

[0057] Каждый из вариантов осуществления, описанных ниже, показывает общий или специфический пример. Числовые значения, формы, материалы, структурные элементы, компоновка и соединение структурных элементов, этапы, порядок обработки этапов и т.п., показанные в последующих вариантах осуществления, являются всего лишь примерами и поэтому не ограничивают объем пунктов формулы изобретения. Поэтому, среди структурных элементов в последующих вариантах осуществления, структурные элементы, не перечисленные в любом одном из независимых пунктов, описаны как произвольные структурные элементы. В последующем описании термин «кодирование» (coding) может относиться к «преобразованию в кодовую форму» (encoding).

[0058] ВАРИАНТ ОСУЩЕСТВЛЕНИЯ 1

На фиг. 6 показана блок-схема, иллюстрирующая пример конфигурации устройства декодирования изображения согласно варианту осуществления 1.

[0059] Устройство 100 декодирования изображения согласно варианту осуществления 1 декодирует битовый поток BS, который представляет собой кодированные со сжатием данные изображения. Например, устройство 100 декодирования изображения декодирует битовый поток BS на поблочной основе. Более конкретно, устройство 100 декодирования изображения восстанавливает данные изображения путем выполнения декодирования переменной длины, обратного квантования, обратного преобразования и т.д. над текущим блоком, подлежащим кодированию.

[0060] Как показано на фиг. 6, устройство 100 декодирования изображения содержит модуль 110 энтропийного декодирования, модуль 120 обратного квантования и обратного преобразования, сумматор 125, фильтр 130 контура, память 140, модуль 150 интра- (внутреннего) предсказания, модуль 160 компенсации движения и интра (внутри-)/интер(меж-) селекторный переключатель 170.

[0061] Модуль 110 энтропийного декодирования выполняет декодирование переменной длины над битовым потоком BS и восстанавливает, поблочно, квантованные коэффициенты в блоке. Модуль 110 энтропийного декодирования получает данные движения из битового потока BS и выводит полученные данные движения на модуль 160 компенсации движения.

[0062] Модуль 120 обратного квантования и обратного преобразования восстанавливает коэффициенты преобразования путем выполнения обратного квантования на квантованных коэффициентах, восстановленных посредством модуля 110 энтропийного декодирования. Модуль 120 обратного квантования и обратного преобразования выполняет обратное преобразование (обратное частотное преобразование) на восстановленных коэффициентах преобразования. Соответственно, восстанавливается сигнал ошибки предсказания, соответствующий отличающемуся одному из блоков в битовом потоке BS.

[0063] Сумматор 125 генерирует декодированное изображение путем суммирования восстановленного сигнала ошибки предсказания и сигнала предсказания.

[0064] Фильтр 130 контура выполняет контурную фильтрацию, такую как фильтрация удаления блочности, на сгенерированном декодированном изображении. Декодированное изображение, на котором выполнена контурная фильтрация, выводится как декодированный сигнал.

[0065] Память 140 является памятью для хранения опорных изображений, подлежащих использованию для компенсации движения. Более конкретно, память 140 хранит, в качестве опорного изображения, декодированное изображение, на котором выполнена контурная фильтрация.

[0066] Модуль 150 интрапредсказания генерирует сигнал предсказания (сигнал интрапредсказания) путем выполнения интрапредсказания в соответствии с режимом интрапредсказания. Более конкретно, модуль 150 интрапредсказания использует в качестве опоры изображения, смежные с декодируемым текущим блоком в декодированном изображении, сгенерированном сумматором 125, чтобы выполнять интрапредсказание на текущем блоке. Соответственно, модуль 150 интрапредсказания генерирует сигнал интрапредсказания.

[0067] Модуль 160 компенсации движения генерирует сигнал предсказания (сигнал интерпредсказания) текущего блока путем выполнения компенсации движения на основе данных движения, выведенных из модуля 110 энтропийного декодирования.

[0068] Интра/интер селекторный переключатель 170 выбирает сигнал интрапредсказания или сигнал интерпредсказания и выводит выбранный сигнал на сумматор 125 в качестве сигнала предсказания.

[0069] При вышеописанной конфигурации, устройство 100 декодирования изображения согласно варианту осуществления 1 декодирует кодированные со сжатием данные изображения.

[0070] Здесь модуль 110 энтропийного декодирования в устройстве 100 декодирования изображения согласно варианту осуществления 1 выполняет декодирование переменной длины над битовым потоком BS путем выполнения арифметического декодирования над битовым потоком BS.

[0071] В арифметическом декодировании, выполняемом посредством модуля 110 энтропийного декодирования, согласно варианту осуществления 1, битовый поток BS может быть надлежащим образом декодирован как в параллельной обработке, так и в последовательной обработке. Следовательно, когда используются субпотоки, и высокоскоростная обработка необходима в HEVC, реализация арифметического декодирования согласно варианту осуществления 1 является весьма полезной.

[0072] Далее приводится детальное описание арифметического декодирования, выполняемого модулем 110 энтропийного декодирования.

[0073] На фиг. 7 представлена блок-схема, показывающая пример конфигурации модуля 110 энтропийного декодирования согласно варианту осуществления 1. Модуль 110 энтропийного декодирования согласно варианту осуществления 1 включает в себя модуль 111 декодирования CTU, модуль 112 определения конца слайса, модуль 113 определения конца субпотока, модуль 116 завершения субпотока, модуль 114 поиска начала байта и модуль 115 завершения. Модуль 110 энтропийного декодирования восстанавливает, из битового потока BS, декодированные данные, включающие в себя, например, квантованные коэффициенты и сигнал завершения обработки слайса.

[0074] Фиг. 8 является блок-схемой последовательности операций примера обработки, выполняемой модулем 110 энтропийного декодирования, согласно варианту осуществления 1.

[0075] Сначала модуль 111 декодирования CTU выполняет арифметическое декодирование над CTU (coding_tree_unit() - единица дерева кодирования) в битовом потоке BS в соответствии с предопределенным способом (этап S101). Здесь CTU относится к предопределенной единице кодирования в изображении (картинке) и является, например, блоком, включающим в себя 16 х 16 пикселей, 32 х 32 пикселя или 64 х 64 пикселя. Кодированная CTU, включенная в битовый поток BS, является набором информации, включающей в себя, например, информацию о способе генерации изображения предсказания (сигнала предсказания) CTU и информацию о сигнале (квантованные коэффициенты), полученном путем преобразования и квантования сигнала ошибки предсказания, который является разностью между сигналом предсказания и исходным изображением.

[0076] Затем модуль 112 определения конца слайса выполняет арифметическое декодирование над флагом конца слайса (end_of_slice_flag), указывающим, находится ли CTU, арифметически декодированная на этапе S101, на конце слайса (этап S102). Например, слайсы являются областями, полученными делением картинки в точках деления, обеспеченных в порядке растрового сканирования, когда картинка обрабатывается на по-СTU основе. Кроме того, когда флаг конца слайса указывает 1, это указывает, что CTU, соответствующая флагу, то есть, CTU, которая была арифметически декодирована непосредственно перед этим, находится на конце слайса. Когда флаг конца слайса указывает 0, это указывает, что CTU не находится на конце слайса.

[0077] Модуль 112 определения конца слайса затем определяет, указывает ли 0 флаг конца слайса (end_of_slice_flag) (этап S103). Здесь, когда определено, что флаг конца слайса указывает 1, а не 0, то есть, CTU находится на конце слайса («нет» на этапе S103), модуль 115 завершения выполняет завершение арифметического декодирования (этап S104). Завершение арифметического декодирования относится к обработке, в которой указатель битового потока настраивается, чтобы позволить декодирование следующего сигнала в битовом потоке BS без повторной нормализации внутреннего вероятностного состояния арифметического декодирования. При завершении, например, семь битов могут дополнительно считываться из битового потока BS. Кроме того, модуль 115 завершения выводит сигнал, указывающий, что CTU находится на конце слайса (сигнал завершения обработки слайса). Например, сигнал завершения обработки слайса используется для уведомления об исполнении обработки следующего слайса.

[0078] С другой стороны, когда определено, что флаг конца слайса указывает 0 («да» на этапе S103), то есть, когда CTU, которая была арифметически декодирована непосредственно перед этим, не находится на конце слайса, модуль 113 определения конца субпотока определяет, находится ли CTU на конце субпотока (этап S105).

[0079] Субпоток относится, например, к единице обработки, такой как мозаичный элемент или CTU-строка. Мозаичные элементы являются блоками, полученными путем деления картинки вертикально и/или горизонтально. Один мозаичный элемент включает в себя одну или более CTU. Кроме того, поскольку кодирование/декодирование может начинаться с начала мозаичного элемента, мозаичные элементы являются структурными единицами, которые могут использоваться в параллельной обработке. Кроме того, CTU-строки являются структурными единицами, полученными путем деления слайса или картинки на строки. В способе, упоминаемом как WPP, где обработка начинается с левого конца картинки, контекстная информация (вероятностная информация) конца CTU, расположенной сверху справа от текущей CTU, подлежащей арифметическому кодированию или арифметическому декодированию, используется в качестве начальной вероятности текущей CTU. В WPP, арифметическое кодирование или арифметическое декодирование текущей CTU может начинаться, когда обработка CTU, из которой получена начальная вероятность, завершена. Таким образом, множество CTU-строк могут обрабатываться параллельно (детальная обработка может быть подобна описанной в NPL 1).

[0080] Здесь, например, когда субпоток является мозаичным элементом, модуль 113 определения конца субпотока сравнивает, на этапе S105, ID мозаичного элемента CTU, которая была арифметически декодирована непосредственно перед этим, с ID мозаичного элемента следующей CTU,