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

ОБЛАСТЬ ТЕХНИКИ
Настоящее изобретение имеет отношение к устройству кодирования изображения, способу кодирования изображения, устройству декодирования изображения, способу декодирования изображения и программе и, в частности, к способу для кодирования/декодирования параметра квантования в изображении.
УРОВЕНЬ ТЕХНИКИ
Стандарт H.264/ MPEG-4 AVC (именуемый в дальнейшем "H.264") известен как способ кодирования для использования при сжатии и записи динамического изображения (ITU-T H.264 (03/2010), Advanced video coding for generic audiovisual services (Усовершенствованное видеокодирование для универсальных аудиовизуальных сервисов)). В соответствии с H.264 разность параметра квантования с блоком, кодированным непосредственно перед текущим блоком, кодируется как информация mb_qp_delta, посредством чего параметр квантования каждого блока может являться произвольным значением.
Затем она кодируется с использованием традиционного метода двоичного арифметического кодирования, принятого в H.264. Более определенно, каждый синтаксический элемент, такой как описанная выше информация mb_qp_delta, преобразуется в двоичную форму, в результате чего формируется двоичный сигнал. Каждому синтаксическому элементу заранее назначается вероятность возникновения в виде таблицы (именуемой в дальнейшем "таблицей вероятности возникновения"). Описанный выше двоичный сигнал арифметически кодируется на основе таблицы вероятности возникновения. Затем, каждый раз, когда кодируется двоичный сигнал, таблица вероятности возникновения обновляется на основе статистической информации, указывающей, является ли кодированный двоичный сигнал наиболее вероятным символом.
В последние годы началась деятельность по стандартизации еще более эффективной технологии кодирования в качестве преемника H.264, и между Международной организацией по стандартизации/Международной электротехнической комиссией (ISO/IEC) и сектором телекоммуникаций Международного союза электросвязи (ITU-T) была учреждена Совместная группа по видеокодированию (JCT-VC). Группа JCT-VC стандартизировала технологию кодирования под названием "видеокодирование высокой производительности" (именуемую в дальнейшем "HEVC").
При стандартизации HEVC различные виды способов кодирования широко рассматривались с точки зрения не только улучшения эффективности кодирования, но также и других аспектов, в том числе простоты реализации и сокращения времени обработки. Для уменьшения времени обработки также рассматривались способы для улучшения параллелизма в предположении, что способ кодирования используется, например, на многоядерном центральном процессоре. Одним из них является способ реализации параллельной обработки энтропийного кодирования/декодирования, названный "методом волнового фронта" (статьи JCT-VC, JCTV-F274.doc, доступен в Интернете по адресу <http://phenix.int-evry.fr/jct/doc_end_user/documents/6_Torino/wg11/>). Следующая цель кодирования должна быть кодирована с использованием обновленной таблицы вероятности возникновения, таким образом, обработка не может быть выполнена параллельно, пока статистическая информация не будет сброшена. Однако это приводит к такой проблеме, что сброс статистической информации ухудшает эффективность кодирования. Напротив, метод волнового фронта позволяет кодировать блоки параллельно по строкам, предотвращая ухудшение эффективности кодирования, посредством применения таблицы вероятности возникновения, полученной во время завершения кодирования предварительно заданного количества блоков, к самому левому блоку в следующей строке. Главным образом, это описание процесса кодирования, но оно также применимо к процессу декодирования.
Однако метод волнового фронта позволяет улучшить параллелизм арифметического кодирования/декодирование каждой строки, но фактически квантование и обратное квантование не могут быть выполнены, пока не определен параметр квантования непосредственно предыдущего блока в растровой развертке. Таким образом, даже текущая реализация метода волнового фронта имеет проблему, заключающуюся в неспособности выполнить всю обработку кодирования/декодирования параллельно.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Настоящее изобретение направлено на обеспечение возможности параллельного кодирования/декодирования в качестве всей обработки, включающей в себя обработку квантования/обратного квантования, когда блоки кодируются/декодируются параллельно по строкам с использованием метода волнового фронта.
В соответствии с аспектом настоящего изобретения устройство кодирования изображения, выполненное с возможностью разделять изображение на один или более слайсов, каждый из которых включает в себя множество блоков, и по блокам кодировать каждый слайс, содержит первое средство кодирования, выполненное с возможностью кодировать блоки, включенные в первую часть слайса, и второе средство кодирования, выполненное с возможностью кодировать блоки, включенные во вторую часть слайса, при этом, когда второе средство кодирования кодирует начальный блок во второй части, второе средство кодирования кодирует начальный блок, включенный во вторую часть, посредством обращения к первому параметру квантования, обеспеченному для слайса в качестве начального значения, и к которому обращается первое средство кодирования, когда первое средство кодирования кодирует начальный блок в первой части.
В соответствии с иллюстративными вариантами осуществления настоящего изобретения возможно реализовать параллельное кодирование/декодирование в качестве всей обработки, включающей в себя обработку квантования/обратного квантования, когда блоки кодируются/декодируются параллельно по строкам с использованием метода волнового фронта.
Дополнительные признаки и аспекты настоящего изобретения станут очевидны из следующего подробного описания иллюстративных вариантов осуществления со ссылкой на приложенные чертежи.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Сопроводительные чертежи, которые включены в спецификацию и составляют ее часть, показывают иллюстративные варианты осуществления, признаки и аспекты изобретения и вместе с описанием служат для разъяснения принципов изобретения.
Фиг. 1 - блок-схема, иллюстрирующая конфигурацию устройства кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 2 иллюстрирует конфигурацию строк блоков.
Фиг. 3 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования кадра устройством кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 4 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования верхней строки блоков устройством кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 5 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования строки блоков, отличающейся от верхней строки блоков, устройством кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 6 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования блока устройством кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 7A иллюстрирует передачу параметра квантования традиционным устройством кодирования изображения.
Фиг. 7B иллюстрирует передачу параметра квантования устройством кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Фиг. 8 - блок-схема, иллюстрирующая конфигурацию устройства декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Фиг. 9 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования кадра устройством декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Фиг. 10 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования верхней строки блоков устройством декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Фиг. 11 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования строки блоков, отличающейся от верхней строки блоков, устройством декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Фиг. 12 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования блока устройством декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Фиг. 13 - блок-схема, иллюстрирующая пример аппаратной конфигурации компьютера, который можно использовать в качестве устройства кодирования изображения и устройства декодирования изображения в соответствии с иллюстративными вариантами осуществления настоящего изобретения.
Фиг. 14 - блок-схема, иллюстрирующая конфигурацию устройства кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Фиг. 15 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования верхней строки блоков устройством кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Фиг. 16 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования строки блоков, отличающейся от верхней строки блоков, устройством кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Фиг. 17A иллюстрирует передачу параметра квантования устройством кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Фиг. 17B иллюстрирует передачу параметра квантования устройством кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Фиг. 18 - блок-схема, иллюстрирующая конфигурацию устройства декодирования изображения в соответствии с четвертым иллюстративным вариантом осуществления.
Фиг. 19 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования верхней строки блоков устройством декодирования изображения в соответствии с четвертым иллюстративным вариантом осуществления.
Фиг. 20 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования строки блоков, отличающейся от верхней строки блоков, устройством декодирования изображения в соответствии с четвертым иллюстративным вариантом осуществления.
Фиг. 21 - блок-схема, иллюстрирующая конфигурацию устройства кодирования изображения в соответствии с пятым иллюстративным вариантом осуществления.
Фиг. 22 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования верхней строки блоков в соответствии с пятым иллюстративным вариантом осуществления.
Фиг. 23 - блок-схема последовательности операций, иллюстрирующая обработку для кодирования строки блоков, отличающейся от верхней строки блоков, в соответствии с пятым иллюстративным вариантом осуществления.
Фиг. 24 - блок-схема, иллюстрирующая конфигурацию устройства декодирования изображения в соответствии с шестым иллюстративным вариантом осуществления.
Фиг. 25 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования верхней строки блоков в соответствии с шестым иллюстративным вариантом осуществления.
Фиг. 26 - блок-схема последовательности операций, иллюстрирующая обработку для декодирования строки блоков, отличающейся от верхней строки блоков, в соответствии с шестым иллюстративным вариантом осуществления.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
Ниже со ссылкой на чертежи будут подробно описаны различные иллюстративные варианты осуществления, признаки и аспекты изобретения.
Фиг. 1 является блок-схемой, иллюстрирующей устройство кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Как показано на фиг. 1, селектор 101 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 101 выдает блок первому модулю 102 кодирования 102, если блок принадлежит четной строке блоков, в ином случае выдает блок второму модулю 103 кодирования.
Первый и второй модули 102 и 103 кодирования кодируют блоки, на которые разделено входное изображение по n x n пикселей (n - положительное целое число, равное или больше 2), по строкам, как проиллюстрировано на фиг. 2 (модули соответствуют "первому средству кодирования" и "второму средству кодирования", и "кодовым блокам, включенным в первую часть слайса", и "кодовым блокам, включенным во вторую часть слайса" в формуле изобретения). В дальнейшем строка из блоков будет упоминаться как "строка блоков". Настоящий иллюстративный вариант осуществления будет описан на основе примера, использующего два модуля кодирования, но настоящее изобретение не ограничено этим. Что касается фиг. 2, слайс 201, обозначенный квадратом, нарисованным тонкой линией, представляет блок, и слайс 202, обозначенный прямоугольником, нарисованным толстой линией, представляет строку блоков. Кроме того, блоки с белыми областями, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), кодируются первым модулем 102 кодирования. Блоки с затененными областями, которые указывают нечетные строки блоков, кодируются вторым модулем 103 кодирования.
Каждый из первого и второго модулей 102 и 103 кодирования сначала формирует ошибки предсказания в соответствии с предсказанием посредством обращения к пикселям, окружающим целевой блок кодирования, или другому кадру и выполняет ортогональное преобразование, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 102 и 103 кодирования определяет параметр квантования для ортогонально преобразованных коэффициентов преобразования и квантует каждый коэффициент преобразования, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 102 и 103 кодирования преобразует в двоичную форму каждый синтаксический элемент, включающий в себя коэффициенты квантования, чтобы сформировать двоичные сигналы. Вероятность возникновения назначается каждому синтаксическому элементу заранее как таблица (именуемая в дальнейшем "таблицей вероятности возникновения"). Двоичные сигналы арифметически кодируются на основе описанной выше таблицы вероятности возникновения. Затем, каждый раз, когда двоичный сигнал кодируется, таблица вероятности возникновения обновляется с использованием статистической информации, указывающей, является ли кодированный двоичный сигнал наиболее вероятным символом.
Первый модуль 104 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную первым модулем 102 кодирования. В дальнейшем таблица вероятности возникновения, сохраненная в первом модуле 104 хранения таблицы вероятности возникновения, будет упоминаться как "первая таблица вероятности возникновения".
Первый модуль 105 хранения параметра квантования хранит параметр квантования, определенный первым модулем 102 кодирования. В дальнейшем параметр квантования, сохраненный в первом модуле 105 хранения параметра квантования, будет упоминаться как "первый параметр квантования".
Второй модуль 105 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную вторым модулем 103 кодирования. В дальнейшем таблица вероятности возникновения, сохраненная во втором модуле 106 хранения таблицы вероятности возникновения, будет упоминаться как "вторая таблица вероятности возникновения".
Второй модуль 107 хранения параметра квантования хранит параметр квантования, определенный вторым модулем 103 кодирования. В дальнейшем параметр квантования, сохраненный во втором модуле 107 хранения параметра квантования, будет упоминаться как "второй параметр квантования".
Модуль 108 интеграции кодирования интегрирует кодированные данные, сформированные первым модулем 102 кодирования, и кодированные данные, сформированные вторым модулем 103 кодирования, и выдает интегрированные данные как битовый поток.
Работа устройства кодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 3-6. В настоящем иллюстративном варианте осуществления данные динамического изображения вводятся по кадрам, разделяются на блоки и обрабатываются в растровом порядке. Настоящий иллюстративный вариант осуществления выполнен с возможностью вводить данные динамического изображения по кадрам, но может быть выполнен с возможностью вводить данные неподвижного изображения, соответствующие одному кадру, или вводить данные изображения по слайсам, на которые разделен кадр. Далее для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки кодирования с интра-предсказанием (внутренним предсказанием), но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке кодирования с интер-предсказанием (внешним предсказанием).
Сначала на этапе S301 устройство кодирования изображения определяет, принадлежит ли целевой блок обработки верхней строке блоков. Если блок принадлежит верхней строке блоков (ДА на этапе S301), обработка переходит на этап S302. Если блок не принадлежит верхней строке блоков (НЕТ на этапе S301), обработка переходит на этап S303.
Обработка этапа S302 представляет собой обработку для кодирования верхней строки блоков, подробности которого будут описаны ниже. Обработка этапа S303 представляет собой обработку для кодирования строки блоков, отличающейся от верхней строки блоков, подробности которого также будут описаны ниже. Далее селектор 101 определяет, является ли строка блоков, которой принадлежит целевой блок обработки, четной строкой блоков или нечетной строкой блоков. Если строка блоков является четной строкой блоков, целевой блок обработки кодируется первым модулем 102 кодирования независимо. Если строка блоков является нечетной строкой блоков, целевой блок обработки кодируется вторым модулем 103 кодирования.
Затем на этапе S304 модуль 108 интеграции кодирования интегрирует кодированные данные, выданные из первого модуля 102 кодирования, и кодированные данные, выданные из второго модуля 103 кодирования, и формирует и выдает битовый поток.
Затем на этапе S305 устройство кодирования изображения определяет, кодированы ли все строки блоков в целевом кадре обработки. Если все строки блоков кодированы (ДА на этапе S305), обработка для кодирования одного кадра закончена. Если кодированы не все строки блоков (НЕТ на этапе S305), обработка переходит снова на этап S301, и начинается кодирование следующей строки блоков.
Обработка этапа S302 (обработка для кодирования верхней строки блоков) будет описана подробно со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 4. Верхняя строка блоков является четной строкой блоков, таким образом целевой блок обработки вводится селектором 101 в первый модуль 102 кодирования и кодируется первым модулем 102 кодирования.
Сначала на этапе S401 на основе того, какой блок кодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса. В дальнейшем параметр квантования на основе того, какой блок кодируется, будет упоминаться как "опорный параметр квантования блока". Что касается параметра квантования, используемого для квантования целевого блока кодирования, его значение непосредственно не кодируется как синтаксический элемент, а кодируется значение его разности с опорным параметром квантования блока. В настоящем иллюстративном варианте осуществления это значение разности соответствует значению cu_qp_delta в способе HEVC. Однако настоящее изобретение не ограничено этим, и, например, описанное выше значение разности может соответствовать коду mb_qp_delta в способе H.264 способа. Затем на этапе S402 таблица вероятности возникновения инициализируется предопределенным способом. Инициализированная таблица вероятности возникновения используется для арифметического кодирования первого двоичного сигнала самого левого блока в строке блоков и обновляется по мере необходимости на этапе S403, который будет описан ниже. В дальнейшем таблица вероятности возникновения, используемая для арифметического кодирования первого двоичного сигнала самого левого блока в строке блоков, будет упоминаться как "опорная таблица вероятности возникновения строки блоков".
Затем на этапе S403 первый модуль 102 кодирования кодирует пиксельные данные по блокам.
В настоящем иллюстративном варианте осуществления один блок состоит из 64 x 64 пикселей, но настоящее изобретение не ограничено этим. Размер блока может быть меньше, например, 32 x 32 пикселя, или больше, например, 128 x 128 пикселей. Обработка кодирования блоков на этапе S403 будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 6.
Сначала на этапе S601 первый модуль 102 кодирования выполняет интра-предсказание над входным блоком изображения с использованием пикселей, окружающих блок, чтобы сформировать ошибки предсказания.
Затем на этапе S602 первый модуль 102 кодирования выполняет ортогональное преобразование над ошибками предсказания, чтобы сформировать коэффициенты преобразования. Далее первый модуль 102 кодирования квантует коэффициенты преобразования с использованием параметра квантования (именуемого в дальнейшем "параметром квантования блока"), определенного, например, на основе характеристик и количества кодированной информации изображения, чтобы сформировать коэффициенты квантования.
Затем на этапе S603 первый модуль 102 кодирования вычисляет значение разности между описанным выше опорным параметром квантования блока и параметром квантования блока, чтобы сформировать значение cu_qp_delta.
Затем на этапе S604 первый модуль 102 кодирования устанавливает параметр квантования блока, используемый для кодирования целевого блока обработки, в опорный параметр квантования блока, тем самым обновляя опорный параметр квантования блока. Опорный параметр квантования блока будет использоваться для формирования значения cu_qp_delta следующего блока.
Затем на этапе S605 первый модуль 102 кодирования преобразует в двоичную форму каждый синтаксический элемент, в том числе описанное выше значение cu_qp_delta и описанные выше коэффициенты квантования, чтобы сформировать двоичные сигналы. Первый модуль 102 кодирования использует различные способы преобразования в двоичную форму, такие как унарная бинаризация и бинаризация с фиксированной длиной, переключая способ преобразования в двоичную форму для каждого синтаксического элемента подобно способу H.264. Далее первый модуль 102 кодирования арифметически кодирует двоичные сигналы на основе таблицы вероятности возникновения.
Затем на этапе S606 первый модуль 102 кодирования обновляет таблицу вероятности возникновения на основе того, является ли арифметически кодированный двоичный сигнал наиболее вероятным символом.
Затем на этапе S607 первый модуль 102 кодирования определяет, все ли синтаксические элементы в блоке арифметически кодированы. Если все синтаксические элементы арифметически кодированы (ДА на этапе S607), обработка кодирования блоков закончена. Если не все синтаксические элементы кодированы (НЕТ на этапе S607), обработка переходит снова на этап S605.
Вернемся к фиг. 4, на которой на этапе S404 первый модуль 102 кодирования определяет, удовлетворено ли условие для сохранения опорного параметра квантования блока. В настоящем иллюстративном варианте осуществления условие для сохранения опорного параметра квантования блока состоит в том, является ли блок, кодированный на этапе S403, самым левым блоком в строке блоков. Если условие удовлетворено (ДА на этапе S404), обработка переходит на этап S405. На этапе S405 опорный параметр квантования блока сохраняется в первом модуле 105 хранения параметра квантования как первый параметр квантования. Если условие не удовлетворено (НЕТ на этапе S404), обработка переходит на этап 5406. Первый параметр квантования будет использоваться в качестве опорного параметра квантования блока, когда второй модуль 103 кодирования кодирует самый левый блок в следующей строке блоков.
Затем на этапе S406 первый модуль 102 кодирования определяет, удовлетворено ли условие для сохранения таблицы вероятности возникновения. В настоящем иллюстративном варианте осуществления условие для сохранения таблицы вероятности возникновения состоит в том, является ли блок, кодированный на этапе S403, блоком с предопределенным номером от самого левого блока в строке блоков. Если это условие удовлетворено (ДА на этапе S406), обработка переходит на этап 5407. На этапе S407 таблица вероятности возникновения сохраняется в первом модуле 104 хранения таблицы вероятности возникновения как первая таблица вероятности возникновения. Если условие не удовлетворено (НЕТ на этапе S406), обработка переходит на этап 5408. Первая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда второй модуль 103 кодирования кодирует самый левый блок в следующей строке блоков.
Затем на этапе S408 первый модуль 102 кодирования определяет, все ли блоки в целевой строке блоков обработки кодированы. Если все блоки кодированы (ДА на этапе S408), кодирование верхней строки блоков закончено. Если не все блоки кодированы (НЕТ на этапе S408), обработка переходит снова на этап S403. На этапе S403 кодируется следующий блок в растровом порядке.
Обработка этапа S303 (обработка для кодирования строки блоков, отличающейся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 5. Селектор 101 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, изображение целевой строки блоков обработки вводится в первый модуль 102 кодирования и кодируется первым модулем 102 кодирования. Если строка блоков является нечетной строкой блоков, изображение целевой строки блоков обработки вводится во второй модуль 103 кодирования и кодируется вторым модулем 103 кодирования. Сначала будет описана последовательность операций, когда второй модуль 103 кодирования кодирует нечетную строку блоков.
Сначала на этапе S501 первый параметр квантования вводится из первого модуля 105 хранения параметра квантования как опорный параметр квантования блока. Затем на этапе S502 первая таблица вероятности возникновения вводится из первого модуля 104 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S503, S504, S506 и S508 аналогична обработки этапов S403, S404, S406 и S408 и поэтому ее описание здесь опущено.
На этапе S505 опорный параметр квантования блока сохраняется во втором модуле 107 хранения параметра квантования как второй параметр квантования. Второй параметр квантования будет использоваться в качестве опорного параметра квантования блока для самого левого блока в следующей строке блоков.
На этапе S507 таблица вероятности возникновения сохраняется во втором модуле 106 хранения таблицы вероятности возникновения как вторая таблица вероятности возникновения. Вторая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда будет арифметически кодироваться самый левый блок в следующей строке блоков.
Далее будет описана последовательность операций, когда первый модуль 102 кодирования кодирует четную строку блоков.
Сначала на этапе S501 второй параметр квантования вводится из второго модуля 107 хранения параметра квантования как опорный параметр квантования блока. Затем на этапе S502 вторая таблица вероятности возникновения вводится из второго модуля 106 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S503-S508 аналогична обработки этапов S403-S408 и поэтому ее описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного кодирования, позволяя обращаться к опорному параметру квантования в дополнение к таблице вероятности возникновения во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед кодируемой строкой блоков. Каждая из фиг. 7A и 7B иллюстрирует, каким образом осуществляется обращение к опорному параметру квантования блока. В соответствии с традиционной методикой, как проиллюстрировано на фиг. 7A, обработка следующей строки блоков не может начаться, пока не завершена обработка предыдущей строки блоков. Однако в соответствии с настоящим иллюстративным вариантом осуществления, если сделать возможным обращение к более верхнему в пространстве блоку, когда обрабатывается самый левый блок, что в конечном счете обеспечивает шаблон обращений, проиллюстрированный на фиг. 7B, становится ненужным ожидать завершения обработки предыдущей строки блоков.
Кроме того, в настоящем иллюстративном варианте осуществления параметр квантования, используемый в самом левом блоке в расположенной непосредственно сверху строке блоков, используется в качестве опорного параметра квантования блока, когда кодируется самый левый блок. Однако настоящее изобретение не ограничено этим и может быть воплощено посредством любой конфигурации, способной улучшить параллелизм обработки по строкам блоков. Например, начальное значение параметра квантования, обеспеченное для слайса, может использоваться в качестве опорного параметра квантования блока, когда кодируются самые левые блоки во всех строках блоков. В качестве другой возможной конфигурации опорный параметр квантования блока может быть таким же, как условие для сохранения таблицы вероятности возникновения, обеспеченное на этапах S406 и S506. Более определенно, когда кодируется блок с предопределенным номером от самого левого блока в строке блоков, параметр квантования может использоваться в качестве опорного параметра квантования блока для самого левого блока в следующей строке блоков. Кроме того, устройство кодирования изображения может быть выполнено с возможностью переключать блок, к которому обращаются в качестве опорного параметра квантования блока, на основе режима кодирования самого левого блока.
Кроме того, в настоящем иллюстративном варианте осуществления в качестве энтропийного кодирования используется арифметическое кодирование, но настоящее изобретение не ограничено этим. Может использоваться любое кодирование, пока во время энтропийного кодирования на основе статистической информации, такой как таблица вероятности возникновения, статистическая информация в середине кодирования строки блоков используется для выполнения энтропийного кодирования самого левого блока следующей строки блоков.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля кодирования. Однако очевидно, что добавление, например, третьего модуля кодирования, третьего модуля хранения таблицы вероятности возникновения и третьего модуля хранения параметра квантования дает возможность параллельной обработки посредством большего количества модулей кодирования.
Фиг. 8 является блок-схемой, иллюстрирующей устройство декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления.
Как показано на фиг. 8, селектор 801 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 801 выдает описанный выше битовый поток первому модулю 802 декодирования, если целевой блок обработки принадлежит четной строке блоков, в ином случае выдает описанный выше битовый поток второму модулю 803 декодирования.
Модули 802 и 803 декодирования декодируют входной битовый поток по строкам блоков, как проиллюстрировано на фиг. 2. Настоящий иллюстративный вариант осуществления будет описан на основе примере, использующего два модуля декодирования, но настоящее изобретение не ограничено этим. Как показано на фиг. 2, блоки в белых областях, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), декодируются первым модулем 802 декодирования. Блоки в затененных областях, которые указывают нечетные строки блоков, декодируются вторым модулем 803 декодирования.
Каждый из первого и второго модулей 802 и 803 декодирования сначала выбирает таблицу вероятности возникновения для декодируемых двоичных сигналов битового потока и арифметически декодирует двоичные сигналы на основе таблицы вероятности возникновения, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 802 и 803 декодирования выполняет обратное квантование коэффициентов квантования на основе параметра квантования, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 802 и 803 декодирования выполняет обратное ортогональное преобразование над коэффициентами преобразования, чтобы сформировать ошибки предсказания. Затем каждый из первого и второго модулей 802 и 803 декодирования выполняет предсказание посредством обращения к пикселям, окружающим целевой блок декодирования, или другому кадру, чтобы сформировать данные изображения целевого блока декодирования. Первый модуль 804 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную первым модулем 802 декодирования. Первый модуль 805 хранения параметра квантования хранит параметр квантования, определенный первым модулем 802 декодирования.
Второй модуль 806 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную вторым модулем 803 декодирования. Второй модуль 807 хранения параметра квантования хранит параметр квантования, определенный вторым модулем 803 декодирования. Модуль 808 интеграции данных изображения формирует данные изображения, сформированные первым модулем 802 декодирования, и данные изображения, сформированные вторым модулем 803 декодирования, и выдает сформированные данные изображения.
Работа устройства декодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 9-12. В настоящем иллюстративном варианте осуществления битовый поток вводится по кадрам. Битовый поток разделяется на кодированные части данных и затем декодируется. Настоящий иллюстративный вариант осуществления выполнен таким образом, что битовый поток вводится по кадрам, но может быть выполнен таким образом, что кадр разделен на слайсы, и битовый поток вводится по слайсам. Кроме того, для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки декодирования с интра-предсказанием, но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке декодирования с интер-предсказанием.
Сначала на этапе S901 устройство декодирования изображения определяет, принадлежит ли целевой блок обработки верхней строке блоков. Если целевой блок обработки принадлежит верхней строке блоков (ДА на этапе S901), обработка переходит на этап S902. Если целевой блок обработки не принадлежит верхней строке блоков (НЕТ в этапе S901), обработка переходит на этап S903.
Обработка этапа S902 представляет собой обработку для декодирования верхней строки блоков, подробности которой будут описаны ниже. Обработка этапа S903 представляет собой обработку для декодирования строки блоков, отличающейся от верхней строки блоков, подробности которого также будут описаны ниже. Далее селектор 801 определяет, является ли строка блоков, которой принадлежит целевой блок обработки, четной строкой блоков или нечетной строкой блоков. Если строка блоков является четной строкой блоков, целевой блок обработки декодируется первым модулем 802 декодирования независимо. Если строка блоков не является четной строкой блоков, целевой блок обработки декодируется вторым модулем 803 декодирования независимо. В настоящем иллюстративном варианте осуществления селектор 801 определяет, является ли строка блоков четной строкой блоков, на основе количества декодированных блоков. Однако настоящее изобретение не ограничено этим. Например, входной битовый поток может включать в себя идентификатор, который заранее обеспечен на границе между строками блоков, и селектор 801 может определить, является ли строка блоков четной строкой блоков, на основе идентификатора. В качестве альтернативы, может быть обеспечена информация, указывающая размер битового потока каждой строки блоков или начальной позиции следующей строки блоков, и селектор 801 может определить, является ли строка блоков четной строкой блоков, на основе этой информации.
Затем на этапе S904 модуль 808 интеграции данных изображения интегрирует данные изображения, выданные из первого модуля 802 декодирования, и данные изображения, выданные из второго модуля 803 декодирования, и формирует и выдает декодированное изображение.
Затем на этапе S905 устройство декодирования изображения определяет, декодированы ли все строки блоков в целевом кадре обработки. Если все строки блоков декодированы (ДА на этапе S905), обработка для декодирования одного кадра закончена. Если не все блоки декодированы (НЕТ на этапе S905), обработка переходит снова на этап S901, с которого декодируется следующая строка блоков.
Обработка этапа S902 (обработка для декодирования верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 10. Поскольку верхняя строка блоков является четной строкой блоков, кодированные данные целевой строки блоков обработки вводятся селектором 801 в первый модуль 802 декодирования и декодируются первым модулем 802 декодирования.
Как показано на фиг. 10, сначала на этапе S1001 на основе того, какой блок декодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса. В дальнейшем параметр квантования на основе того, какой блок декодируется, будет упоминаться как "опорный параметр квантования блока" подобно устройству кодирования изображения в соответствии с первым иллюстративным вариантом осуществления. Когда выполняется обратное квантование целевого блока декодирования, параметр квантования блока находится в таком состоянии, что само значение не кодировано, а в качестве синтаксического элемента кодировано значение его разности с опорным параметром квантования блока. Поэтому во время декодирования параметр квантования блока должен быть формирован посредством сложения опорного параметра квантования блока и описанного выше значения разности, и устройство декодирования должно выполнить обратное квантование с использованием сформированного параметра квантования блока. В настоящем иллюстративном варианте осуществления это значение разности соответствует значению cu_qp_delta в способе HEVC. Однако настоящее изобретение не ограничено этим. Например, значение разности может соответствовать значению mb_qp_delta в способе H.264. Затем на этапе S1002 таблица вероятности возникновения инициализируется предопределенным способом. Инициализированная таблица вероятности возникновения используется для арифметического декодирования первого двоичного сигнала самого левого блока в строке блоков и обновляется по мере необходимости на этапе S1003, который будет описан ниже. В дальнейшем таблица вероятности возникновения, используемая для арифметического декодирования первого двоичного сигнала начального блока в строке блоков, будет упоминаться как "опорная таблица вероятности возникновения строки блоков" подобно устройству кодирования изображения в соответствии с первым иллюстративным вариантом осуществления.
Затем на этапе S1003 первый модуль 802 декодирования декодирует битовый поток по блокам, чтобы сформировать данные изображения.
В настоящем иллюстративном варианте осуществления один блок состоит из 64x64 пикселей, но настоящее изобретение не ограничено этим. Размер блока может быть меньше, например, 32x32 пикселя, или больше, например, 128x128 пикселей. Обработка декодирования блока на этапе S1003 будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 12.
Сначала на этапе S1201 первый модуль 802 декодирования арифметически декодирует битовый поток на основе описанной выше таблице вероятности возникновения, чтобы сформировать двоичный сигнал. Затем первый модуль 802 декодирования декодирует двоичный сигнал, преобразованный в двоичную форму в соответствии с любым из различных способов преобразования в двоичную форму, таких как унарная бинаризация и бинаризация с фиксированной длиной, для каждого синтаксического элемента подобно способу H.264, чтобы сформировать синтаксические элементы, включающие в себя коэффициенты квантования.
Затем на этапе S1202 таблица вероятности возникновения обновляется на основе того, является ли арифметически декодированный двоичный сигнал наиболее вероятным символом.
Затем на этапе S1203 первый модуль 802 декодирования определяет, все ли синтаксические элементы в блоке арифметически декодированы. Если все синтаксические элементы арифметически декодированы (ДА на этапе S1203), обработка переходит на этап S1204. Если не все синтаксические элементы арифметически декодированы (НЕТ на этапе S1203), обработка переходит снова на этап S1201.
Затем на этапе S1204 первый модуль 802 декодирования формирует параметр квантования блока, складывая описанный выше опорный параметр квантования блока и значение cu_qp_delta, декодированное на этапе S1201.
Затем на этапе S1205 первый модуль 802 декодирования выполняет обратное квантование коэффициентов квантования на основе параметра квантования блока, чтобы сформировать коэффициенты преобразования. Затем первый модуль 802 декодирования выполняет обратное ортогональное преобразование над коэффициентами преобразования, чтобы сформировать ошибки предсказания.
Затем на этапе S1206 первый модуль 802 декодирования устанавливает параметр квантования блока, использованный при обратном квантовании целевого блока обработки, в опорный параметр квантования блока, тем самым обновляя опорный параметр квантования блока. Опорный параметр квантования блока будет использоваться, чтобы сформировать параметр квантования блока следующего блока.
Затем на этапе S1207 первый модуль 802 декодирования выполняет интра-предсказание на основе пикселей, окружающих целевой блок обработки, чтобы сформировать изображение предсказания. Затем первый модуль 802 декодирования формирует данные изображения, соответствующие одному блоку, складывая ошибки предсказания и изображение предсказания.
Вернемся к блок-схеме последовательности операций, проиллюстрированной на фиг. 10, в которой на этапе S1004 первый модуль 802 декодирования определяет, удовлетворено ли условие для сохранения опорного параметра квантования блока. В настоящем иллюстративном варианте осуществления условие для сохранения опорного параметра квантования блока состоит в том, является ли блок, декодированный на этапе S1003, самым левым блоком в строке блоков. Если условие удовлетворено (ДА на этапе S1004), обработка переходит на этап S1005. На этапе S1005 опорный параметр квантования блока сохраняется в первом модуле 805 хранения параметра квантования как первый параметр квантования. Если условие не удовлетворено (НЕТ на этапе S1004), обработка переходит на этап S1006. Первый параметр квантования будет использоваться в качестве опорного параметра квантования блока, когда второй модуль 803 декодирования будет декодировать самый левый блок в следующей строке блоков.
Затем на этапе S1006 первый модуль 802 декодирования определяет, удовлетворено ли условие для сохранения таблицы вероятности возникновения. В настоящем иллюстративном варианте осуществления условие для сохранения таблицы вероятности возникновения состоит в том, является ли блок, декодированный на этапе S1003, блоком с предопределенным номером от самого левого блока в строке блоков. Если это условие удовлетворено (ДА на этапе S1006), обработка переходит на этап S1007. На этапе S1007 таблица вероятности возникновения сохраняется в первом модуле 804 хранения таблицы вероятности возникновения как первая таблица вероятности возникновения. Если условие не удовлетворено (НЕТ на этапе S1006), обработка переходит на этап S1008. Первая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда второй модуль 803 декодирования будет декодировать самый левый блок в следующей строке блоков.
Затем на этапе S1008 первый модуль 802 декодирования определяет, декодированы ли все блоки в целевой строке блоков обработки. Если все блоки декодированы (ДА на этапе S1008), декодирование верхней строки блоков закончено. Если не все блоки декодированы (НЕТ в этапе S1008), обработка переходит снова на этап S1003, с которого первый модуль 802 декодирования декодирует следующий блок в растровом порядке.
Обработка этапа S903 (обработка для декодирования строки блоков, отличающейся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 11. Селектор 801 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, битовый поток целевого блока обработки вводится в первый модуль 802 декодирования и декодируется первым модулем 802 декодирования. Если строка блоков является нечетной строкой блоков, битовый поток целевого блока обработки вводится во второй модуль 803 декодирования и декодируется вторым модулем 803 декодирования. Сначала будет описана последовательность операций, когда второй модуль 803 декодирования декодирует нечетную строку блоков.
Сначала на этапе S1101 первый параметр квантования вводится из первого модуля 805 хранения параметра квантования как опорный параметр квантования блока. Затем на этапе S1102 первая таблица вероятности возникновения вводится из первого модуля 804 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S1103, S1104, S1106 и S1108 аналогично обработке этапов S1003, S1004, S1006 и S1008 и поэтому ее описание здесь опущено.
На этапе S1105 опорный параметр квантования блока сохраняется во втором модуле 807 хранения параметра квантования как второй параметр квантования. Второй параметр квантования будет использоваться в качестве опорного параметра квантования блока для самого левого блока в следующей строке блоков.
На этапе S1107 таблица вероятности возникновения сохраняется во втором модуле 806 хранения таблицы вероятности возникновения как вторая таблица вероятности возникновения. Вторая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда первый модуль 802 декодирования будет арифметически декодировать самый левый блок в следующей строке блоков.
Далее будет описана последовательность операций, когда первый модуль 802 декодирования декодирует четную строку блоков.
Сначала на этапе S1101 второй параметр квантования вводится из второго модуля 807 хранения параметра квантования как опорный параметр квантования блока. Затем на этапе S1102 вторая таблица вероятности возникновения вводится из второго модуля 806 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S1103-S1108 аналогична обработке этапов S1003-S1008 и поэтому ее описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного выполнения декодирования, позволяя обращаться к опорному параметру квантования блока в дополнение к таблице вероятности возникновения, которая является статистической информацией, во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед строкой блоков, которая в настоящий момент декодируется. Каждая из фиг. 7A и 7B иллюстрирует, каким образом осуществляется обращение к упомянутому опорному параметру квантования блока. В соответствии с традиционной методикой, как проиллюстрировано на фиг. 7A, обработка следующей строки блоков не может начаться, пока не завершена обработка предыдущей строки блоков. Однако в соответствии с настоящим иллюстративным вариантом осуществления может быть осуществлено обращение к более верхнему в пространстве блоку, когда обрабатывается самый левый блок, что обеспечивает шаблон обращений, проиллюстрированный на фиг. 7B, и тем самым устраняется потребность ожидания завершения обработки предыдущей строки блоков.
Кроме того, в настоящем иллюстративном варианте осуществления параметр квантования, используемый в самом левом блоке в расположенной непосредственно сверху строке блоков, используется в качестве опорного параметра квантования блока, когда декодируется самый левый блок. Однако настоящее изобретение не ограничено этим и может быть воплощено посредством любой конфигурации, способной улучшить параллелизм обработки по строкам блоков. Например, начальное значение параметра квантования, обеспеченное для слайса, может использоваться в качестве опорного параметра квантования блока, когда декодируются самые левые блоки во всех строках блоков. В качестве другой возможной конфигурации условие сохранения опорного параметра квантования блока может быть таким же, как условие для сохранения таблицы вероятности возникновения, обеспеченное на этапах S1006 и S1106. Более определенно, когда декодируется блок с предопределенным номером от самого левого блока в строке блоков, параметр квантования может использоваться в качестве опорного параметра квантования блока для самого левого блока в следующей строке блоков. Кроме того, устройство декодирования изображения может быть выполнено с возможностью переключать блок, к которому обращаются в качестве опорного параметра квантования блока, на основе режима кодирования самого левого блока.
Кроме того, в настоящем иллюстративном варианте осуществления в качестве энтропийного декодирования используется арифметическое декодирование, но настоящее изобретение не ограничено этим. Может использоваться любое декодирование, пока во время энтропийного декодирования на основе статистической информации, такой как таблица вероятности возникновения, статистическая информация в середине декодирования строки блоков используется для выполнения энтропийного декодирования самого левого блока следующей строки блоков.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля декодирования. Однако очевидно, что добавление, например, третьего модуля декодирования, третьего модуля хранения таблицы вероятности возникновения и третьего модуля хранения параметра квантования дает возможность параллельной обработки посредством большего количества модулей декодирования.
Фиг. 14 является блок-схемой, иллюстрирующей устройство кодирования изображения в соответствии с третьим иллюстративным вариантом осуществления.
Как показано на фиг. 14, селектор 1401 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 1401 выдает блок первому модулю 1402 кодирования, если блок принадлежит четной строке блоков, в ином случае выдает блок второму модулю 1403 кодирования.
Первый и второй модули 1402 и 1403 кодирования кодируют блоки, на которые входное изображение разделено по n x n пикселей ("n" - положительное целое число, равное или больше 2), по строкам, как проиллюстрировано на фиг. 2. Настоящий иллюстративный вариант осуществления будет описан на основе примера, использующего два модуля кодирования, но настоящее изобретение, не ограничено этим. Как показано на фиг. 2, слайс 201, обозначенный квадратом, нарисованным тонкой линией, представляет блок, и слайс 202, обозначенный прямоугольником, нарисованным толстой линией, представляет строку блоков. Кроме того, блоки в белых областях, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), кодируются первым модулем 1402 кодирования. Блоки в затененных областях, которые указывают нечетные строки блоков, кодируются вторым модулем 1403 кодирования.
Каждый из первого и второго модулей 1402 и 1403 кодирования сначала формирует ошибки предсказания в соответствии с предсказанием посредством обращения к пикселям, окружающим целевой блок кодирования, или другому кадру и выполняет ортогональное преобразование, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 1402 и 1403 кодирования определяет параметр квантования для ортогонально преобразованных коэффициентов преобразования и квантует каждый коэффициент преобразования, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 1402 и 1403 кодирования преобразует в двоичную форму каждый синтаксический элемент, включающий в себя коэффициенты квантования, чтобы сформировать двоичные сигналы. Вероятность возникновения заранее назначается каждому синтаксическому элементу как таблица (именуемая в дальнейшем "таблица вероятности возникновения"). Двоичные сигналы арифметически кодируются на основе описанной выше таблицы вероятности возникновения. Затем, каждый раз, когда кодируется двоичный сигнал, таблица вероятности возникновения обновляется с использованием статистической информации, указывающей, является ли кодированный двоичный сигнал наиболее вероятным символом.
Модуль хранения 1404 начального параметра квантования хранит начальное значение параметра квантования.
Первый модуль 1405 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную первым модулем 1402 кодирования. В дальнейшем таблица вероятности возникновения, сохраненная в первом модуле 1405 хранения таблицы вероятности возникновения, будет упоминаться как "первая таблица вероятности возникновения".
Второй модуль 1406 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную вторым модулем 1403 кодирования. В дальнейшем таблица вероятности возникновения, сохраненная во втором модуле 1406 хранения таблицы вероятности возникновения, будет упоминаться как "вторая таблица вероятности возникновения".
Модуль 1407 интеграции кодирования интегрирует кодированные данные, сформированные первым модулем 1402 кодирования, и кодированные данные, сформированные вторым модулем 1403 кодирования, и выдает интегрированные данные как битовый поток.
Работа устройства кодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 3, 15 и 16. В настоящем иллюстративном варианте осуществления данные динамического изображения вводятся по кадрам, разделяются на блоки и обрабатываются в растровом порядке. Настоящий иллюстративный вариант осуществления выполнен с возможностью вводить данные динамического изображения по кадрам, но может быть выполнен с возможностью вводить данные неподвижного изображения, соответствующие одному кадру, или вводить данные изображения по слайсам, на которые разделен кадр. Далее для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки кодирования с интра-предсказанием, но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке кодирования с интер-предсказанием.
Обработка этапов S301, S304 и S305, проиллюстрированных на фиг. 3, является такой же, как в первом иллюстративном варианте осуществления, и поэтому ее описание здесь опущено.
Далее, обработка этапа S302 (обработка для кодирования верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 15. Поскольку верхняя строка блоков является четной строкой блоков, целевой блок обработки вводится селектором 1401 в первый модуль 1402 кодирования и кодируется первым модулем 1402 кодирования.
Сначала на этапе S1501 на основе того, какой блок кодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса, и сохраняется в модуле 1404 хранения начального параметра квантования. В дальнейшем параметр квантования на основе того, какой блок кодируется, будет упоминаться как "опорный параметр квантования блока" подобно первому иллюстративному варианту осуществления. Что касается параметра квантования, используемого для квантования целевого блока кодирования, его значение непосредственно не кодируется как синтаксический элемент, а кодируется значение его разности с опорным параметром квантования блока.
Затем на этапе S1502 первый модуль 1402 кодирования считывает инициализированный параметр квантования из модуля 1404 хранения начального параметра квантования как опорный параметр квантования блока для кодирования самого левого блока в строке блоков. Затем обработка этапов S1503-S1507 аналогична обработке этапов S402, S403 и S406-S408, проиллюстрированных на фиг. 4, соответственно, и поэтому ее описание здесь опущено.
Однако на этапе S1504 первый модуль 1402 кодирования кодирует пиксельные данные по блокам.
Затем обработка этапа S303 (обработка для кодирования строки блоков, отличающейся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 16. Селектор 1401 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, изображение целевой строки блоков обработки вводится в первый модуль 1402 кодирования и кодируется первым модулем 1402 кодирования. Если строка блоков является нечетной строкой блоков, изображение целевой строки блоков обработки вводится во второй модуль 1403 кодирования и кодируется вторым модулем 1403 кодирования. Сначала будет описана последовательность операций, когда второй модуль 1403 кодирования кодирует нечетную строку блоков.
Сначала на этапе S1601 опорный параметр квантования блока для кодирования самого левого блока в строке блоков вводится из модуля 1404 хранения начального параметра квантования. Затем на этапе S1602 первая таблица вероятности возникновения вводится из первого модуля 1405 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
На этапе S1603 второй модуль 1403 кодирования кодирует пиксельные данные по блокам. Обработка этапа S1604 аналогична обработке этапа S1505, проиллюстрированного на фиг. 15.
На этапе S1605 таблица вероятности возникновения сохраняется во втором модуле 1406 хранения таблицы вероятности возникновения как вторая таблица вероятности возникновения. Вторая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда первый модуль 1402 кодирования арифметически кодирует самый левый блок в следующей строке блоков.
Обработка этапа S1606 аналогична обработке этапа S1507, проиллюстрированного на фиг. 15.
Далее будет описана последовательность операций, когда первый модуль 1402 кодирования кодирует четную строку блоков.
Сначала на этапе S1601 опорный параметр квантования блока для кодирования самого левого блока в строке блоков вводится из модуля 1404 хранения начального параметра квантования. Затем на этапе S1602 вторая таблица вероятности возникновения вводится из второго модуля 1406 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S1603-S1606 аналогична обработке этапов S1504-S1507 и поэтому ее описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного выполнения кодирования, позволяя осуществлять обращение к опорному параметру квантования блока в дополнение к таблице вероятности возникновения, которая является статистической информацией, во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед строкой блоков, которая в настоящий момент кодируется. Каждая из фиг. 17A и 17B иллюстрирует, каким образом осуществляется обращение к опорному параметру квантования блока. На фиг. 17A и 17B, "параметр квантования слайса" указывает начальное значение параметра квантования, обеспеченное для слайса. В соответствии с традиционной методикой, как проиллюстрировано на фиг. 17A, обработка следующей строки блоков не может начаться, пока не завершена обработка предыдущей строки блоков. Однако в соответствии с настоящим иллюстративным вариантом осуществления к начальному значению параметра квантования, обеспеченному для слайса, может быть осуществлено обращение как к опорному параметру квантования блока для кодирования самого левого блока в строке блоков, и тем самым устраняется потребность ожидания завершения обработки предыдущей строки блоков, как проиллюстрировано на фиг. 17B.
Кроме того, в настоящем иллюстративном варианте осуществления в качестве энтропийного кодирования используется арифметическое кодирование, но настоящее изобретение не ограничено этим. Может использоваться любое кодирование, пока во время энтропийного кодирования на основе статистической информации, такой как таблица вероятности возникновения, статистическая информация в середине кодирования строки блоков используется для выполнения энтропийного кодирования самого левого блока следующей строки блоков.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля кодирования. Однако очевидно, что добавление, например, третьего модуля кодирования и третьего модуля хранения таблицы вероятности возникновения дает возможность параллельной обработки посредством большего количества модулей кодирования.
Фиг. 18 является блок-схемой, иллюстрирующей устройство декодирования изображения в соответствии с четвертым иллюстративным вариантом осуществления.
Как показано на фиг. 18, селектор 1801 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 1801 выдает описанный выше битовый поток первому модулю 1802 декодирования, если целевой блок обработки принадлежит четной строке блоков, в ином случае выдает описанный выше битовый поток второму модулю 1803 декодирования.
Модули 1802 и 1803 декодирования декодируют входной битовый поток по строкам блоков, как проиллюстрировано на фиг. 2. Настоящий иллюстративный вариант осуществления будет описан на основе примера, использующего два модуля декодирования, но настоящее изобретение не ограничено этим. Как показано на фиг. 2, блоки в белых областях, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), декодируются первым модулем 1802 декодирования. Блоки в затененных областях, которые указывают нечетные строки блоков, декодируются вторым модулем 1803 декодирования.
Каждый из первого и второго модулей 1802 и 1803 декодирования сначала выбирает таблицу вероятности возникновения для двоичных сигналов битового потока, который является целью декодирования, и арифметически декодирует двоичные сигналы на основе таблицы вероятности возникновения, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 1802 и 1803 декодирования выполняет обратное квантование коэффициентов квантования на основе параметра квантования, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 1802 и 1803 декодирования выполняет обратное ортогональное преобразование над коэффициентами преобразования, чтобы сформировать ошибки предсказания. Затем каждый из первого и второго модулей 1802 и 1803 декодирования выполняет компенсацию движения посредством обращения к пикселям, окружающим целевой блок декодирования, или другому кадру, чтобы сформировать данные изображения целевого блока декодирования. Модуль 1804 хранения начального параметра квантования хранит начальное значение параметра квантования. Первый модуль 1805 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную первым модулем 1802 декодирования.
Второй модуль 1806 хранения таблицы вероятности возникновения хранит таблицу вероятности возникновения, сформированную вторым модулем 1803 декодирования. Модуль 1807 интеграции данных изображения формирует данные изображения, сформированные первым модулем 1802 декодирования, и данные изображения, сформированные вторым модулем 1803 декодирования, и выдает сформированные данные изображения.
Работа устройства декодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 9, 19 и 20. В настоящем иллюстративном варианте осуществления битовый поток вводится по кадрам. Битовый поток разделяется на кодированные части данных, каждая из которых соответствует одному блоку, и затем декодируется. Настоящий иллюстративный вариант осуществления выполнен таким образом, что битовый поток вводится по кадрам, но может быть выполнен таким образом, что кадр разделен на слайсы, и битовый поток вводится по слайсам. Кроме того, для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки декодирования с интра-предсказанием, но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке декодирования с интер-предсказанием.
Обработка этапов S901, S904 и S905, проиллюстрированных на фиг. 9, является такой же, как во втором иллюстративном варианте осуществления, и поэтому ее описание здесь опущено.
Обработка этапа S902 (обработку для декодирования верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 19. Поскольку верхняя строка блоков является четной строкой блоков, кодированные данные целевой строки блоков обработки вводятся селектором 1801 в первый модуль 1802 декодирования и декодируются первым модулем 1802 декодирования.
Сначала на этапе S1901 на основе того, какой блок декодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса, и сохраняется в модуле 1804 хранения начального параметра квантования. В дальнейшем параметр квантования на основе того, какой блок декодируется, будет упоминаться как "опорный параметр квантования блока" подобно устройству декодирования изображения в соответствии со вторым иллюстративным вариантом осуществления. Когда выполняется обратное квантование целевого блока декодирования, параметр квантования блока находится в таком состоянии, что само значение не кодировано, а в качестве синтаксического элемента кодировано значение его разности с опорным параметром квантования блока. Поэтому во время декодирования параметр квантования блока должен быть формирован посредством сложения опорного параметра квантования блока и описанного выше значения разности, и устройство декодирования должно выполнить обратное квантование с использованием сформированного параметра квантования блока.
Затем на этапе S1902 первый модуль 1802 декодирования считывает значение из модуля 1804 хранения начального параметра квантования как опорный параметр квантования блока для декодирования самого левого блока в строке блоков. Затем обработка этапов S1903-S1907 аналогична обработке этапов S1002, S1003, S1006-S1008, соответственно, и поэтому ее описание здесь опущено.
Далее обработка этапа S903 (обработка для декодирования строки блоков, отличающейся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 20. Селектор 1801 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, битовый поток целевого блока обработки вводится в первый модуль 1802 декодирования и декодируется первым модулем 1802 декодирования. Если строка блоков является нечетной строкой блоков, битовый поток целевого блока обработки вводится во второй модуль 1803 декодирования и декодируется вторым модулем 1803 декодирования. Сначала будет описана последовательность операций, когда второй модуль 1803 декодирования декодирует нечетную строку блоков.
Сначала на этапе S2001 опорный параметр квантования блока для декодирования самого левого блока в строке блоков вводится из модуля 1804 хранения начального параметра квантования. Затем на этапе S2002 первая таблица вероятности возникновения вводится из первого модуля 1805 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
На этапе S2003 второй модуль 1403 декодирования декодирует пиксельные данные по блокам. Обработка этапа S2004 аналогична обработке этапа S1905 и поэтому ее описание здесь опущено.
На этапе S2005 таблица вероятности возникновения сохраняется во втором модуле 1806 хранения таблицы вероятности возникновения как вторая таблица вероятности возникновения. Вторая таблица вероятности возникновения будет использоваться в качестве опорной таблицы вероятности возникновения строки блоков, когда первый модуль 1402 декодирования будет арифметически декодировать самый левый блок в следующей строке блоков.
Обработка этапа S2006 аналогично обработке этапа S1907 и поэтому ее описание здесь опущено. Далее будет описана последовательность операций, когда первый модуль 1802 декодирования декодирует четную строку блоков.
Сначала на этапе S2001 опорный параметр квантования блока для декодирования самого левого блока в строке блоков вводится из модуля 1804 хранения начального параметра квантования. Затем на этапе S2002 первая таблица вероятности возникновения вводится из второго модуля 1806 хранения таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S2003-S2006 аналогична обработке этапов S1904-S1907 и поэтому ее описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного выполнения декодирования, позволяя осуществлять обращение к опорному параметру квантования блока в дополнение к таблице вероятности возникновения, которая является статистической информацией, во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед строкой блоков, которая в настоящий момент декодируется.
Кроме того, в настоящем иллюстративном варианте осуществления в качестве энтропийного декодирования используется арифметическое декодирование, но настоящее изобретение не ограничено этим. Может использоваться любое декодирование, пока во время энтропийного декодирования на основе статистической информации, такой как таблица вероятности возникновения, статистическая информация в середине декодирования строки блоков используется для выполнения энтропийного декодирования самого левого блока следующей строки блоков.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля декодирования. Однако очевидно, что добавление, например, третьего модуля декодирования и третьего модуля хранения таблицы вероятности возникновения дает возможность параллельной обработки посредством большего количества модулей декодирования.
Фиг. 21 является блок-схемой, иллюстрирующей устройство кодирования изображения в соответствии с пятым иллюстративным вариантом осуществления.
Как показано на фиг. 21, селектор 2101 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 2101 выдает блок к первому модулю 2102 кодирования, если блок принадлежит четной строке блоков, в ином случае выдает блок второму 2103 модулю кодирования 2103.
Первый и второй модули 2102 и 2103 кодирования кодируют блоки, на которые входное изображение разделено по n x n пикселей ("n" положительное целое число, равное или больше 2), по строкам, как проиллюстрировано на фиг. 2. Настоящий иллюстративный вариант осуществления будет описан на основе примера, использующего два модуля кодирования, но настоящее изобретение не ограничено этим. Как показано на фиг. 2, слайс 201, обозначенный квадратом, нарисованным тонкой линией, представляет блок, и слайс 202, обозначенный прямоугольником, нарисованным толстой линией, представляет строку блоков. Кроме того, блоки в белых областях, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), кодируются первым модулем 2102 кодирования. Блоки в затененных областях, которые указывают нечетные строки блоков, кодируются вторым модулем 2103 кодирования.
Каждый из первого и второго модулей 2102 и 2103 кодирования сначала формирует ошибки предсказания в соответствии с предсказанием посредством обращения к пикселям, окружающим кодирующий целевой блок, или другому кадру и выполняет ортогональное преобразование, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 2102 и 2103 кодирования определяет параметр квантования для ортогонально преобразованных коэффициентов преобразования и квантует каждый коэффициент преобразования, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 2102 и 2103 кодирования преобразует в двоичную форму каждый синтаксический элемент, включающий в себя коэффициенты квантования, чтобы сформировать двоичные сигналы. Вероятность возникновения заранее назначается каждому синтаксическому элементу как таблица (именуемая в дальнейшем "таблица вероятности возникновения"). Двоичные сигналы арифметически кодируются на основе описанной выше таблицы вероятности возникновения. Затем, каждый раз, когда кодируется двоичный сигнал, таблица вероятности возникновения обновляется с использованием статистической информации, указывающей, является ли кодированный двоичный сигнал наиболее вероятным символом.
Модуль 2104 хранения начального параметра квантования хранит начальное значение параметра квантования. Модуль 2105 хранения начальной таблицы вероятности возникновения хранит начальное значение таблицы вероятности возникновения. Модуль 2106 интеграции кодирования интегрирует кодированные данные, сформированные первым модулем 2102 кодирования, и кодированные данные, сформированные вторым модулем 2103 кодирования, и выдает интегрированные данные как битовый поток.
Работа устройства кодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 3, 22 и 23. В настоящем иллюстративном варианте осуществления данные динамического изображения вводятся по кадрам, разделяются на блоки и обрабатываются в растровом порядке. Настоящий иллюстративный вариант осуществления выполнен с возможностью вводить данные динамического изображения по кадрам, но может быть выполнен с возможностью вводить данные неподвижного изображения, соответствующие одному кадру, или вводить данные изображения по слайсам, на которые разделен кадр. Далее для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки кодирования с интра-предсказанием, но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке кодирования с интер-предсказанием.
Обработка этапов S301, S304 и S305, проиллюстрированных на фиг. 3, является такой же, как в первом иллюстративном варианте осуществления, и поэтому ее описание здесь опущено.
Обработка этапа S302 (обработка для кодирования верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 22. Поскольку верхняя строка блоков является четной строкой блоков, целевой блок обработки вводится селектором 2101 в первый модуль 2102 кодирования и кодируется первым модулем 2102 кодирования.
Сначала на этапе S2201 на основе того, какой блок кодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса, и сохраняется в модуле 2104 хранения начального параметра квантования. В дальнейшем параметр квантования, основанный на том, какой блок кодируется, будет упоминаться как "опорный параметр квантования блока" подобно первому иллюстративному варианту осуществления. Что касается параметра квантования, используемого для квантования целевого блока кодирования, его значение непосредственно не кодируется как синтаксический элемент, а кодируется значение его разности с опорным параметром квантования блока.
Затем на этапе S2202 первый модуль 2102 кодирования считывает инициализированный параметр квантования из модуля 2104 хранения начального параметра квантования как опорный параметр квантования блока для кодирования самого левого блока в строке блоков. Затем на этапе S2203 таблица вероятности возникновения инициализируется предопределенным способом и сохраняется в модуле 2105 хранения начальной таблицы вероятности возникновения. Таблица вероятности возникновения, сохраненная в модуле 2105 хранения начальной таблицы вероятности возникновения, используется для арифметического кодирования первого двоичного сигнала самого левого блока в строке блоков и обновляется по мере необходимости на этапе S2205, который будет описан ниже. В дальнейшем таблица вероятности возникновения, используемая для арифметического кодирования двоичного сигнала первого блока в строке блоков, будет упоминаться как "опорная таблица вероятности возникновения строки блоков" подобно первому иллюстративному варианту осуществления.
Затем на этапе S2204 первый модуль 2102 кодирования считывает инициализированный параметр квантования из модуля 2105 хранения начальной таблицы вероятности возникновения как опорную таблицу вероятности возникновения строки блоков.
Затем обработка этапов S2205 и S2206 аналогична обработке этапов S403 и S408, иллюстрированных на фиг. 4, соответственно, и поэтому ее описание здесь опущено. Однако на этапе S2205 первый модуль 2012 кодирования кодирует пиксельные данные по блокам. Далее обработка этапа S303 (обработка для кодирования строки блоков, отличающихся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 23. Селектор 2101 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, изображение целевой строки блоков обработки вводится в первый модуль 2102 кодирования и кодируется первым модулем 2102 кодирования. Если строка блоков является нечетной строкой блоков, изображение целевой строки блоков обработки вводится во второй модуль 2103 кодирования и кодируется вторым модулем 2103 кодирования. Сначала будет описана последовательность операций, когда второй модуль 2103 кодирования кодирует нечетную строку блоков.
Сначала на этапе S2301 опорный параметр квантования блока для кодирования самого левого блока в строке блоков вводится из модуля 2104 хранения начального параметра квантования.
Затем на этапе S2302 значение вводится из модуля 2105 хранения начальной таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Затем на этапе S2303 второй модуль 2103 кодирования кодирует пиксельные данные по блокам. Обработка этапа S2304 аналогична обработке этапа S2206, проиллюстрированного на фиг. 22. Далее будет описана последовательность операций, когда первый модуль 2102 кодирования кодирует четную строку блоков. Сначала на этапе S2301 опорный параметр квантования блока для кодирования самого левого блока в строке блоков вводится из модуля 2104 хранения начального параметра квантования. Затем на этапе S2302 значение вводится из модуля 2105 хранения начальной таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S2303 и S2304 аналогична обработке этапов S2205 и S2206 и поэтому их описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного выполнения кодирования посредством использования таблицы вероятности возникновения, которая является статистической информацией, и инициализированного значения в качестве опорного параметра квантования блока во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед строкой блоков, которая в настоящий момент кодируется. Кроме того, в настоящем иллюстративном варианте осуществления арифметическое кодирование используется для энтропийного кодирования, но настоящее изобретение не ограничено этим. Любой способ кодирования может использоваться, пока статистическая информация инициализируется в начале обработки кодирования, обработка кодирования выполняется с использованием статистической информации, и статистическая информация обновляется каждый раз, когда выполняется обработка кодирования.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля кодирования. Однако очевидно, что добавление, например, третьего модуля кодирования дает возможность параллельной обработки посредством большего количества модулей кодирования.
Фиг. 24 является блок-схемой, иллюстрирующей устройство декодирования изображения в соответствии с шестым иллюстративным вариантом осуществления.
Как показано на фиг. 24, селектор 2401 определяет, принадлежит ли целевой блок обработки четной строке блоков. Селектор 2401 выдает блок к первому модулю 2402 декодирования, если блок принадлежит четной строке блоков, в ином случае выдает блок второму модулю 2403 декодирования.
Первый и второй модули 2402 и 2403 декодирования декодируют входной битовый поток по строкам блоков, как проиллюстрировано на фиг. 2. В дальнейшем строка из блоков будет упоминаться как "строка блоков". Настоящий иллюстративный вариант осуществления будет описан на основе примера, использующего два модуля декодирования, но настоящее изобретение не ограничено этим. Как показано на фиг. 2, слайс 201, обозначенный квадратом, нарисованным тонкой линией, представляет блок, и слайс 202, обозначенный прямоугольником, нарисованным толстой линией, представляет строку блоков. Кроме того, блоки с белыми областями, которые указывают четные строки блоков, в том числе верхнюю строку блоков (строку блоков с номером 0), декодируются первым модулем 2402 декодирования. Блоки с затененными областями, которые указывают нечетные строки блоков, декодируются вторым модулем 2403 декодирования.
Каждый из первого и второго модулей 2402 и 2403 декодирования сначала выбирает таблицу вероятности возникновения для двоичного сигнала битового потока, который является целью декодирования, и арифметически декодирует двоичный сигнал на основе таблицы вероятности возникновения, чтобы сформировать коэффициенты квантования. Затем каждый из первого и второго модулей 2402 и 2403 декодирования выполняет обратное квантование коэффициентов квантования на основе параметра квантования, чтобы сформировать коэффициенты преобразования. Затем каждый из первого и второго модулей 2402 и 2403 декодирования выполняет обратное ортогональное преобразование над коэффициентами преобразования, чтобы сформировать ошибки предсказания. Затем каждый из первого и второго модулей 2402 и 2403 декодирования выполняет предсказание посредством обращения к пикселям, окружающим целевой блок декодирования, или другому кадру, чтобы сформировать данные изображения целевого блока декодирования.
Модуль 2404 хранения начального параметра квантования хранит начальное значение параметра квантования. Модуль 2405 хранения начальной таблицы вероятности возникновения хранит начальное значение таблицы вероятности возникновения. Блок 2406 интеграции данных изображения формирует данные изображения, сформированные первым модулем 2402 декодирования, и данные изображения, сформированные вторым модулем 2403 декодирования, и выдает сформированные данные.
Работа устройства декодирования изображения в соответствии с настоящим иллюстративным вариантом осуществления будет подробно описана со ссылкой на блок-схемы последовательности операций, проиллюстрированные на фиг. 9, 25 и 26. В настоящем иллюстративном варианте осуществления битовый поток вводится по кадрам. Битовый поток разделяется на кодированные части данных, каждая из которых соответствует одному блоку и затем декодируется. Настоящий иллюстративный вариант осуществления выполнен таким образом, что битовый поток вводится по кадрам, но может быть выполнен таким образом, что кадр разделен на слайсы, и битовый поток вводится по слайсам. Кроме того, для упрощения описания настоящий иллюстративный вариант осуществления будет описан только на основе обработки декодирования с интра-предсказанием, но он не ограничен этим. Настоящий иллюстративный вариант осуществления также может использоваться в обработке декодирования с интер-предсказанием.
Обработка этапов S901, S904 и S905, проиллюстрированных на фиг. 9, является такой же, как во втором иллюстративном варианте осуществления, и поэтому ее описание здесь опущено.
Обработка этапа S902 (обработка для декодирования верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 25. Поскольку верхняя строка блоков является четной строкой блоков, кодированные данные целевой строки блоков обработки вводятся селектором 2401 в первый модуль 2402 декодирования и декодируются первым модулем 2402 декодирования.
Сначала на этапе S2501 на основе того, какой блок декодируется, параметр квантования инициализируется таким образом, чтобы он совпадал с начальным значением параметра квантования для слайса, и сохраняется в модуле 2404 хранения начального параметра квантования. В дальнейшем параметр квантования на основе того, какой блок декодируется, будет упоминаться как "опорный параметр квантования блока" подобно второму иллюстративному варианту осуществления. Когда выполняется обратное квантование целевого блока декодирования, параметр квантования блока находится в таком состоянии, что само значение не кодировано, а в качестве синтаксического элемента кодировано значение его разности с опорным параметром квантования блока. Поэтому во время декодирования параметр квантования блока должен быть формирован посредством сложения опорного параметра квантования блока и описанного выше значения разности, и устройство декодирования должно выполнить обратное квантование.
Затем на этапе S2502 первый модуль 2402 декодирования считывает значение из модуля 2404 хранения начального параметра квантования как опорный параметр квантования блока для кодирования самого левого блока в строке блоков. Затем на этапе S2503 таблица вероятности возникновения инициализируется предопределенным способом и сохраняется в модуле 2405 хранения начальной таблицы вероятности возникновения. Таблица вероятности возникновения, сохраненная в модуле 2405 хранения начальной таблицы вероятности возникновения, используется для арифметического декодирования первого двоичного сигнала самого левого блока в строке блоков и обновляется по мере необходимости на этапе S2505, который будет описан ниже. В дальнейшем таблица вероятности возникновения, используемая для арифметического декодирования первого двоичного сигнала начального блока в строке блоков, будет упоминаться как "опорная таблица вероятности возникновения строки блоков" подобно второму иллюстративному варианту осуществления.
Затем на этапе S2504 первый модуль 2402 декодирования считывает значение из модуля 2405 хранения начальной таблицы вероятности возникновения как опорную таблицу вероятности возникновения строки блоков.
Затем обработка этапов S2505 и S2506 аналогична обработке этапов S1003 и S1008, проиллюстрированных на фиг. 10 соответственно, и поэтому их описание здесь опущено.
Однако на этапе S2505 первый модуль 2402 декодирования декодирует пиксельные данные по блокам.
Далее обработка этапа S903 (обработка для декодирования строки блоков, отличающейся от верхней строки блоков) будет подробно описана со ссылкой на блок-схему последовательности операций, проиллюстрированную на фиг. 26. Селектор 2401 определяет для каждой строки блоков, является ли строка блоков четной строкой блоков. Если строка блоков является четной строкой блоков, битовый поток целевого блока обработки вводится в первый модуль 2402 декодирования и декодируется первым модулем 2402 декодирования. Если строка блоков является нечетной строкой блоков, битовый поток целевого блока обработки вводится во второй модуль 2403 декодирования и декодируется вторым модулем 2403 декодирования. Сначала будет описана последовательность операций, когда второй модуль 2403 декодирования декодирует нечетную строку блоков.
Сначала на этапе S2601 опорный параметр квантования блока для декодирования самого левого блока в строке блоков вводится из модуля 2404 хранения начального параметра квантования.
Затем на этапе S2602 значение вводится из модуля 2405 хранения начальной таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Затем на этапе S2603 второй модуль 2403 декодирования декодирует пиксельные данные по блокам. Обработка этапа S2604 аналогична обработке этапа S2506, проиллюстрированного на фиг. 25. Далее будет описана последовательность операций, когда первый модуль 2402 декодирования декодирует четную строку блоков. Сначала на этапе S2601 опорный параметр квантования блока для декодирования самого левого блока в строке блоков вводится из модуля 2404 хранения начального параметра квантования. Затем на этапе S2602 значение вводится из модуля 2405 хранения начальной таблицы вероятности возникновения как опорная таблица вероятности возникновения строки блоков.
Обработка этапов S2603 и S2604 аналогична обработке этапов S2505 и S2506 и поэтому ее описание здесь опущено.
Описанные выше конфигурация и операции дают возможность параллельного выполнения декодирования посредством использования таблицы вероятности возникновения, которая является статистической информацией, и инициализированного значения в качестве опорного параметра квантования блока во время обработки самого левого блока даже до завершения обработки строки блоков непосредственно перед строкой блоков, которая в настоящий момент декодируется.
Кроме того, в настоящем иллюстративном варианте осуществления арифметическое декодирование используется для энтропийного декодирования, но настоящее изобретение не ограничено этим. Любой способ декодирования может использоваться, пока статистическая информация инициализируется в начале обработки декодирования, обработка декодирования выполняется с использованием статистической информации, и статистическая информация обновляется каждый раз, когда выполняется обработка декодирования.
Настоящий иллюстративный вариант осуществления был описан на основе примера, использующего два модуля декодирования. Однако очевидно, что добавление, например, третьего модуля декодирования дает возможность параллельной обработки посредством большего количества модулей декодирования.
Представленные выше иллюстративные варианты осуществления были описаны в предположении, что соответствующие модули обработки, проиллюстрированные на фиг. 1, 8, 14, 18, 21 и 24, реализованы посредством аппаратных устройств. Однако обработка, выполняемая соответствующими модулями обработки, проиллюстрированными на фиг. 1, 8, 14, 18, 21 и 24, может быть реализована посредством компьютерной программы.
Фиг. 13 является блок-схемой, иллюстрирующей пример аппаратной конфигурации компьютера, который может быть использован как устройство обработки изображений в соответствии с описанными выше соответствующими иллюстративными вариантами осуществления.
Центральный процессор (ЦП) 1301 управляет всем компьютером с использованием компьютерной программы и данных, хранящихся в оперативном запоминающем устройстве (ОЗУ; RAM) 1302 и постоянном запоминающем устройстве (ПЗУ; ROM) 1303, и выполняет соответствующие описанные виды обработки, которые должны выполняться устройствами обработки изображений в соответствии с описанными выше соответствующими иллюстративными вариантами осуществления. Другими словами, ЦП 1301 функционирует как соответствующие модули обработки, проиллюстрированные на фиг. 1, 8, 14, 18, 21 и 24.
ОЗУ 1302 имеет область для временного хранения, например, компьютерной программы и данных, загруженных из внешнего устройства 1306 хранения, и данных, полученных от внешней стороны через интерфейс (I/F) 1307. Кроме того, ОЗУ 1302 имеет рабочую область, используемую, когда ЦП 1301 выполняет различные виды обработки. Другими словами, например, ОЗУ 1302 может быть назначено в качестве памяти кадров или может обеспечить другие различные виды областей по мере необходимости.
ПЗУ 1303 хранит, например, данные установки настоящего компьютера и программу начальной загрузки. Функциональный модуль 1304 включает в себя клавиатуру и мышь. Пользователь настоящего компьютера может вводить различные виды инструкций для ЦП 1301 посредством управления функциональным модулем 1304. Модуль 1305 отображения отображает результат обработки, выполняемой ЦП 1301. Кроме того, модуль 1305 отображения включает в себя устройство отображения, такое как жидкокристаллический дисплей.
Внешним устройством 1306 хранения является устройство хранения информации большой емкости, представленное накопителем на жестком диске. Внешнее устройство 1306 хранения хранит операционную систему (OS) и компьютерную программу для того, чтобы дать возможность ЦП 1301 реализовать функции соответствующих модулей, проиллюстрированных на фиг. 1, 8, 14, 18, 21 и 24. Кроме того, внешнее устройство 1306 хранения может хранить данные изображения как цель обработки.
Компьютерная программа и данные, хранящиеся на внешнем устройстве 1306 хранения, загружаются в ОЗУ 1302 по мере необходимости в соответствии с управлением посредством ЦП 1301 и обрабатываются посредством ЦП 1301. Сеть, такая как локальная сеть (LAN) и Интернет, и другое устройство, такое как проекционное устройство и устройство отображения, могут быть соединены с интерфейсом 1307. Компьютер может получать и передавать различные виды информации через интерфейс 1307. Шина 1308 соединяет описанные выше соответствующие модули с друг другом.
Что касается операций описанной выше конфигурации, ЦП 1301 играет центральную роль в управлении операциями, объясненными со ссылками на описанные выше блок-схемы последовательности операций.
Настоящее изобретение также может быть воплощено посредством того, что для системы обеспечивают носитель, хранящий коды компьютерной программы, которая может реализовать описанные выше функции, и заставляют систему считывать и исполнять коды компьютерной программы. В этом случае коды компьютерной программы, считанные с носителя, реализуют функции описанных выше иллюстративных вариантов осуществления, и носитель, хранящий коды компьютерной программы, находится в рамках объема настоящего изобретения. В качестве альтернативы, операционная система и т.п., которая работает на компьютере, может выполнять часть фактической обработки или всю фактическую обработку на основе инструкций кодов компьютерной программы, тем самым реализуя описанные выше функции посредством этой обработки. Этот случай также находится в рамках объема настоящего изобретения.
Кроме того, в качестве альтернативы, настоящее изобретение может быть воплощено посредством следующего варианта осуществления; коды компьютерной программы, считанные с носителя, могут быть записаны на функциональной плате расширения, вставленной в компьютер, или на запоминающее устройство, обеспеченное для функционального блока расширения, соединенного с компьютером, и ЦП и т.п., обеспеченные для функциональной платы расширения или функционального блока расширения, могут выполнять часть фактической обработки или всю фактическую обработку на основе инструкций кодов компьютерной программы, тем самым реализуя описанные выше функции. Этот случай также находится в рамках объема настоящего изобретения.
В случае, когда настоящее изобретение воплощено посредством описанного выше носителя, носитель хранит коды компьютерной программы, соответствующие описанным выше блок-схемам последовательности операций.
Хотя настоящее изобретение было описано со ссылкой на иллюстративные варианты осуществления, следует понимать, что изобретение не ограничено раскрытыми иллюстративными вариантами осуществления. Объем следующей формулы изобретения должен получить самую широкую интерпретацию для охвата всех модификаций, эквивалентных структур и функций.
Эта заявка испрашивает приоритет заявки на патент Японии № 2011-243940, поданной 7 ноября 2011 года, которая тем самым включена в настоящий документ по ссылке во всей своей полноте.