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

Область техники, к которой относится изобретение
[0001] Настоящее изобретение относится к способу кодирования изображений с использованием арифметического кодирования.
Уровень техники
[0002] Предусмотрены технологии, описанные в непатентном документе (NPL) 1 и NPL 2, которые связаны со способом кодирования изображений с использованием арифметического кодирования.
Список библиографических ссылок
Непатентные документы
[0003] [NPL 1] ISO/IEC 14496-10 "MPEG-4 Part 10 Advanced Video Coding".
[NPL 2] Frank Bossen, "Common test conditions and software reference configurations", JCTVC-H1100, Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 8th Meeting, San Jose, CA, USA, 1-10 февраля 2012 года, http://phenix.it-sudparis.eu/jct/doc_end_user/documents/ 8_San%20Jose/wg11/JCTVC-H1100-v1.zip.
Сущность изобретения
Техническая задача
[0004] Тем не менее, когда кодирование выполняется с плохой эффективностью обработки, трудно подавлять задержку обработки, которая возникает во время кодирования.
[0005] С учетом вышеизложенного, настоящее изобретение предоставляет способ кодирования изображений, который дает возможность кодирования с высокой эффективностью кодирования.
Решение задачи
[0006] Способ кодирования изображений согласно аспекту настоящего изобретения включает в себя: выполнение контекстного арифметического кодирования, чтобы последовательно кодировать (i) первую информацию, указывающую то, выполнять ли обработку адаптивного к выборке смещения (SAO) для первой области изображения, и (ii) вторую информацию, указывающую то, использовать ли, при SAO-обработке для первой области, информацию относительно SAO-обработки для области, отличной от первой области, причем контекстное арифметическое кодирование является арифметическим кодированием с использованием переменной вероятности, при этом SAO-обработка является обработкой смещения в отношении пиксельного значения; и выполнение обходного арифметического кодирования, чтобы кодировать другую информацию, которая является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации, после того как кодируются первая информация и вторая информация, причем обходное арифметическое кодирование является арифметическим кодированием с использованием фиксированной вероятности, при этом другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению, при выполнении контекстного арифметического кодирования значение начального бита в битовой строке параметра кодируется в качестве первой информации, причем параметр указывает тип SAO-обработки для первой области, а при выполнении обходного арифметического кодирования значение следующего бита после начального бита в битовой строке параметра кодируется в качестве третьей информации.
[0007] Следует отметить, что эти общие и конкретные аспекты могут быть реализованы с использованием системы, устройства, интегральной схемы, компьютерной программы или энергонезависимого считываемого компьютером носителя записи, к примеру, CD-ROM или любой комбинации систем, устройств, интегральных схем, способов, компьютерных программ или носителей записи.
Преимущества изобретения
[0008] Способ кодирования изображений согласно настоящему изобретению дает возможность кодирования с высокой эффективностью кодирования.
Краткое описание чертежей
[0009] Фиг. 1 является блок-схемой, которая иллюстрирует пример конфигурации устройства кодирования изображений согласно варианту 1 осуществления.
Фиг. 2 является блок-схемой, которая иллюстрирует пример конфигурации устройства декодирования изображений согласно варианту 1 осуществления.
Фиг. 3 является схематичным видом, который иллюстрирует пример смещения края согласно варианту 1 осуществления.
Фиг. 4 является схематичным видом, который иллюстрирует категории смещения края согласно варианту 1 осуществления.
Фиг. 5 является схематичным видом, который иллюстрирует примеры типов смещения края согласно варианту 1 осуществления.
Фиг. 6 является схематичным видом, который иллюстрирует пример смещения полосы согласно варианту 1 осуществления.
Фиг. 7 является схематичным видом, который иллюстрирует категории смещения полосы согласно варианту 1 осуществления.
Фиг. 8 является схематичным видом, который иллюстрирует целевую информацию кодирования смещения полосы согласно варианту 1 осуществления.
Фиг. 9A является схематичным видом, который иллюстрирует пример процесса разделения области согласно варианту 1 осуществления.
Фиг. 9B является схематичным видом, который иллюстрирует пример результата разделения области согласно варианту 1 осуществления.
Фиг. 10 является блок-схемой, иллюстрирующей пример конфигурации модуля фильтрации контуров в устройстве кодирования изображений согласно варианту 1 осуществления.
Фиг. 11 является блок-схемой, иллюстрирующей пример конфигурации модуля фильтрации контуров в устройстве декодирования изображений согласно варианту 1 осуществления.
Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей пример операций модуля фильтрации контуров в устройстве кодирования изображений согласно варианту 1 осуществления.
Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей пример операций модуля фильтрации контуров в устройстве декодирования изображений согласно варианту 1 осуществления.
Фиг. 14 является схематичным видом, который иллюстрирует пример выделения битов числовым индексам, указывающим способ классификации пикселей согласно варианту 1 осуществления.
Фиг. 15 является схематичным видом, который иллюстрирует пример кодированного потока согласно варианту 1 осуществления.
Фиг. 16A является схематичным видом, который иллюстрирует пример синтаксиса (aps_sao_param) в APS согласно варианту 1 осуществления.
Фиг. 16B является схематичным видом, который иллюстрирует пример синтаксиса (aps_unit_vlc) в APS согласно варианту 1 осуществления.
Фиг. 16C является схематичным видом, который иллюстрирует пример синтаксиса (sao_offset_vlc) в APS согласно варианту 1 осуществления.
Фиг. 17A является схематичным видом, который иллюстрирует пример синтаксиса (slice_data) в данных среза согласно варианту 1 осуществления.
Фиг. 17B является схематичным видом, который иллюстрирует пример синтаксиса (sao_unit_cabac) в данных среза согласно варианту 1 осуществления.
Фиг. 17C является схематичным видом, который иллюстрирует пример синтаксиса (sao_offset_cabac) в данных среза согласно варианту 1 осуществления.
Фиг. 18 является схематичным видом, который иллюстрирует пример областей, между которыми совместно используется информация смещения, согласно варианту 1 осуществления.
Фиг. 19 является блок-схемой последовательности операций способа, которая иллюстрирует пример кодирования числового индекса, который указывает способ классификации пикселей согласно варианту 1 осуществления.
Фиг. 20 является блок-схемой последовательности операций способа, которая иллюстрирует пример декодирования числового индекса, который указывает способ классификации пикселей согласно варианту 1 осуществления.
Фиг. 21 является блок-схемой, иллюстрирующей пример конфигурации модуля фильтрации контуров в устройстве кодирования изображений согласно варианту 2 осуществления.
Фиг. 22 является блок-схемой, иллюстрирующей пример конфигурации модуля фильтрации контуров в устройстве декодирования изображений согласно варианту 2 осуществления.
Фиг. 23 является блок-схемой последовательности операций способа, иллюстрирующей пример операций модуля фильтрации контуров в устройстве кодирования изображений согласно варианту 2 осуществления.
Фиг. 24 является блок-схемой последовательности операций способа, иллюстрирующей пример операций модуля фильтрации контуров в устройстве декодирования изображений согласно варианту 2 осуществления.
Фиг. 25 является схематичным видом, который иллюстрирует пример выделения битов числовым индексам, указывающим способ классификации пикселей согласно варианту 2 осуществления.
Фиг. 26 является схематичным видом, который иллюстрирует пример выделения битов числовым индексам, указывающим способ классификации пикселей согласно варианту 2 осуществления.
Фиг. 27A является схематичным видом, который иллюстрирует пример синтаксиса (sao_unit_vlc) в APS согласно варианту 2 осуществления.
Фиг. 27B является схематичным видом, который иллюстрирует пример синтаксиса (sao_offset_vlc) в APS согласно варианту 2 осуществления.
Фиг. 27C является схематичным видом, который иллюстрирует пример выделения индекса контекста информации смещения в APS согласно варианту 2 осуществления.
Фиг. 27D является блок-схемой последовательности операций способа, которая иллюстрирует пример кодирования информации смещения в APS согласно варианту 2 осуществления
Фиг. 27E является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения в APS согласно варианту 2 осуществления.
Фиг. 28A является схематичным видом, который иллюстрирует пример синтаксиса (sao_unit_cabac) в данных среза согласно варианту 2 осуществления.
Фиг. 28B является схематичным видом, который иллюстрирует пример синтаксиса (sao_offset_cabac) в данных среза согласно варианту 2 осуществления.
Фиг. 28C является схематичным видом, который иллюстрирует пример выделения индекса контекста информации смещения в данных среза согласно варианту 2 осуществления.
Фиг. 28D является блок-схемой последовательности операций способа, которая иллюстрирует пример кодирования информации смещения в данных среза согласно варианту 2 осуществления.
Фиг. 28E является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения в данных среза согласно варианту 2 осуществления.
Фиг. 29 является блок-схемой последовательности операций способа, которая иллюстрирует пример кодирования числового индекса, который указывает способ классификации пикселей согласно варианту 2 осуществления.
Фиг. 30 является блок-схемой последовательности операций способа, которая иллюстрирует пример декодирования числового индекса, который указывает способ классификации пикселей согласно варианту 2 осуществления.
Фиг. 31 является блок-схемой, которая иллюстрирует пример конфигурации модуля кодирования информации смещения согласно варианту 3 осуществления.
Фиг. 32 является блок-схемой, которая иллюстрирует пример конфигурации модуля декодирования информации смещения согласно варианту 3 осуществления.
Фиг. 33 является схематичным видом, который иллюстрирует выделение индекса контекста информации смещения согласно первому примеру варианта 3 осуществления.
Фиг. 34 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля кодирования информации смещения согласно первому примеру варианта 3 осуществления.
Фиг. 35 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля декодирования информации смещения согласно первому примеру варианта 3 осуществления.
Фиг. 36A является схематичным видом, который иллюстрирует выделение индекса контекста информации смещения согласно второму примеру варианта 3 осуществления.
Фиг. 36B является схематичным видом, который иллюстрирует выделение битов числовым индексам, указывающим способ классификации пикселей согласно второму примеру варианта 3 осуществления.
Фиг. 36C является схемой, которая показывает целевую производительность устройства кодирования изображений и устройства декодирования изображений согласно второму примеру варианта 3 осуществления.
Фиг. 37 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля кодирования информации смещения согласно второму примеру варианта 3 осуществления.
Фиг. 38 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля декодирования информации смещения согласно второму примеру варианта 3 осуществления.
Фиг. 39A является схематичным видом, который иллюстрирует выделение индекса контекста информации смещения согласно третьему примеру варианта 3 осуществления.
Фиг. 39B является схемой, которая показывает целевую производительность устройства кодирования изображений и устройства декодирования изображений согласно третьему примеру варианта 3 осуществления.
Фиг. 40 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля кодирования информации смещения согласно третьему примеру варианта 3 осуществления.
Фиг. 41 является блок-схемой последовательности операций способа, которая иллюстрирует операции модуля декодирования информации смещения согласно третьему примеру варианта 3 осуществления.
Фиг. 42 является блок-схемой последовательности операций способа, которая иллюстрирует пример особенности кодирования согласно варианту 3 осуществления.
Фиг. 43 является блок-схемой последовательности операций способа, которая иллюстрирует пример особенности декодирования согласно варианту 3 осуществления.
Фиг. 44 показывает общую конфигурацию системы предоставления контента для реализации услуг распространения контента.
Фиг. 45 показывает общую конфигурацию цифровой широковещательной системы.
Фиг. 46 показывает блок-схему, иллюстрирующую пример конфигурации телевизионного приемника.
Фиг. 47 показывает блок-схему, иллюстрирующую пример конфигурации модуля воспроизведения/записи информации, который считывает и записывает информацию с и на носитель записи, который является оптическим диском.
Фиг. 48 показывает пример конфигурации носителя записи, который является оптическим диском.
Фиг. 49A показывает пример сотового телефона.
Фиг. 49B является блок-схемой, показывающей пример конфигурации сотового телефона.
Фиг. 50 иллюстрирует структуру мультиплексированных данных.
Фиг. 51 схематично показывает то, как каждый поток мультиплексируется в мультиплексированные данные.
Фиг. 52 подробнее показывает то, как видеопоток сохраняется в потоке PES-пакетов.
Фиг. 53 показывает структуру TS-пакетов и исходных пакетов в мультиплексированных данных.
Фиг. 54 показывает структуру данных PMT.
Фиг. 55 показывает внутреннюю структуру информации мультиплексированных данных.
Фиг. 56 показывает внутреннюю структуру информации атрибутов потока.
Фиг. 57 показывает этапы для идентификации видеоданных.
Фиг. 58 показывает пример конфигурации интегральной схемы для реализации способа кодирования движущихся изображений и способа декодирования движущихся изображений согласно каждому из вариантов осуществления.
Фиг. 59 показывает конфигурацию для переключения между частотами возбуждения.
Фиг. 60 показывает этапы для идентификации видеоданных и переключения между частотами возбуждения.
Фиг. 61 показывает пример таблицы поиска, в которой стандарты видеоданных ассоциированы с частотами возбуждения.
Фиг. 62A является схемой, показывающей пример конфигурации для совместного использования модуля процессора сигналов.
Фиг. 62B является схемой, показывающей другой пример конфигурации для совместного использования модуля процессора сигналов.
Подробное описание вариантов осуществления
[0010] Базовая основа формирования знаний настоящего изобретения
Авторы изобретения обнаружили проблему в способе кодирования изображений с использованием арифметического кодирования, которая описана в разделе "Уровень техники". Далее описываются подробности.
[0011] Устройство кодирования изображений согласно системе кодирования изображений, представленной посредством стандарта ITU-T, называемого H.26x, и стандарта ISO/IEC, называемого MPEG-X, разделяет изображение на предварительно определенные единицы и выполняет кодирование посредством единицы. Например, устройство кодирования изображений согласно стандарту H.264/MPEG-4 AVC (см. непатентный документ NPL1) выполняет процесс посредством единицы, называемой макроблоком, имеющим 16 горизонтальных пикселей и 16 вертикальных пикселей.
[0012] Устройство кодирования изображений разделяет макроблок на субблоки (имеющие, по меньшей мере 4 горизонтальных пикселя и 4 вертикальных пикселя) при выполнении компенсации движения. Устройство кодирования изображений выполняет компенсацию движения с использованием вектора движения, который отличается для каждого из субблоков, выполняет преобразование частоты в отношении разностного сигнала между исходным сигналом и сигналом прогнозирования, собирает информацию относительно разностного сигнала в области низких частот и выполняет квантование, тем самым сжимая информацию.
[0013] Известно, что решетчатое искажение, называемое искажением в виде блочности, возникает на границе блоков согласно способу для кодирования изображения на поблочной основе с использованием ортогонального преобразования, такого как DCT, которое собирает информацию относительно разностного сигнала в области низких частот. Устройство кодирования изображений допускает сокращение эффектов блочности посредством выполнения обработки фильтрации для удаления блочности.
[0014] Тем не менее, в системе, которая обрабатывает только границу блока, аналогично вышеописанному фильтру удаления блочности, возникает сложность при снижении ухудшения качества кодирования кроме искажения в виде блочности.
[0015] С учетом вышеизложенного, способ кодирования изображений согласно аспекту настоящего изобретения включает в себя: способ кодирования изображений, содержащий: выполнение контекстного арифметического кодирования, чтобы последовательно кодировать (i) первую информацию, указывающую то, выполнять ли обработку адаптивного к выборке смещения (SAO) для первой области изображения, и (ii) вторую информацию, указывающую то, использовать ли, при SAO-обработке для первой области, информацию относительно SAO-обработки для области, отличной от первой области, причем контекстное арифметическое кодирование является арифметическим кодированием с использованием переменной вероятности, при этом SAO-обработка является обработкой смещения в отношении пиксельного значения; и выполнение обходного арифметического кодирования, чтобы кодировать другую информацию, которая является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации, после того как кодируются первая информация и вторая информация, причем обходное арифметическое кодирование является арифметическим кодированием с использованием фиксированной вероятности, при этом другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению, при выполнении контекстного арифметического кодирования значение начального бита в битовой строке параметра кодируется в качестве первой информации, причем параметр указывает тип SAO-обработки для первой области, а при выполнении обходного арифметического кодирования значение следующего бита после начального бита в битовой строке параметра кодируется в качестве третьей информации.
[0016] Вследствие этого, в параметре SAO-обработки для повышения качества изображений, контекстное арифметическое кодирование применяется к части, в которой целесообразно использовать контекстное арифметическое кодирование, а обходное арифметическое кодирование применяется к части, в которой целесообразно использовать обходное арифметическое кодирование. Кроме того, контекстное арифметическое кодирование выполняется последовательно. Это означает то, частое переключение между контекстным арифметическим кодированием и обходным арифметическим кодированием подавляется, и процессы идентичного типа последовательно выполняются. Таким образом, повышается эффективность обработки.
[0017] Например, при выполнении контекстного арифметического кодирования, первая информация может быть кодирована после того, как кодируется вторая информация.
[0018] Вследствие этого, можно кодировать, сразу после кодирования значения начального бита, включенного в параметр посредством контекстного арифметического кодирования, значение следующего бита, включенного в параметр, при поддержании последовательности контекстного арифметического кодирования. Это сокращает число сложных процессов, которые должны быть выполнены в отношении параметра, и за счет этого повышается эффективность обработки.
[0019] Помимо этого, например, при выполнении обходного арифметического кодирования может быть кодирована другая информация, которая включает в себя четвертую информацию, указывающую абсолютное значение значения смещения.
[0020] Вследствие этого, множество информационных элементов кодируется посредством обходного арифметического кодирования после контекстного арифметического кодирования. В общем, процессы идентичного типа выполняются совместно. Таким образом, повышается эффективность обработки.
[0021] Помимо этого, например, при выполнении обходного арифметического кодирования, когда SAO-обработка для первой области является обработкой смещения полосы, может быть кодирована другая информация, которая включает в себя (i) пятую информацию, указывающую то, является ли значение смещения положительным или отрицательным, и (ii) шестую информацию, указывающую область применения значения смещения.
[0022] Вследствие этого, дополнительное множество информационных элементов кодируется посредством обходного арифметического кодирования согласно состоянию после контекстного арифметического кодирования. Таким образом, повышается эффективность обработки.
[0023] Помимо этого, например, при выполнении контекстного арифметического кодирования, может быть кодирована вторая информация, которая включает в себя по меньшей мере одну из (i) информации, указывающей то, используется ли информация относительно SAO-обработки для левой области при SAO-обработке для первой области, и (ii) информации, указывающей то, используется ли информация относительно SAO-обработки для верхней области при SAO-обработке для первой области, причем левая область является смежной с первой областью и располагается слева от первой области, верхняя область является смежной с первой областью и располагается выше первой области.
[0024] Вследствие этого, при контекстном арифметическом кодировании, которое последовательно выполняется, информация, указывающая многократное использование сверху или слева, надлежащим образом кодируется.
[0025] Помимо этого, способ декодирования изображений согласно аспекту настоящего изобретения может быть способом декодирования изображений, включающим в себя: выполнение контекстного арифметического декодирования, чтобы последовательно декодировать (i) первую информацию, указывающую то, выполнять ли обработку адаптивного к выборке смещения (SAO) для первой области изображения, и (ii) вторую информацию, указывающую то, использовать ли, при SAO-обработке для первой области, информацию относительно SAO-обработки для области, отличной от первой области, причем контекстное арифметическое декодирование является арифметическим декодированием с использованием переменной вероятности, при этом SAO-обработка является обработкой смещения в отношении пиксельного значения; и выполнение обходного арифметического декодирования, чтобы декодировать другую информацию, которая является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации, после того как декодируются первая информация и вторая информация, причем обходное арифметическое декодирование является арифметическим декодированием с использованием фиксированной вероятности, при этом другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению, при выполнении контекстного арифметического декодирования значение начального бита в битовой строке параметра декодируется в качестве первой информации, причем параметр указывает тип SAO-обработки для первой области, а при выполнении обходного арифметического декодирования значение следующего бита после начального бита в битовой строке параметра декодируется в качестве третьей информации.
[0026] Вследствие этого, в параметре SAO-обработки для повышения качества изображений, контекстное арифметическое декодирование применяется к части, в которой целесообразно использовать контекстное арифметическое декодирование, а обходное арифметическое декодирование применяется к части, в которой целесообразно использовать обходное арифметическое декодирование. Кроме того, контекстное арифметическое декодирование выполняется последовательно. Более конкретно, частое переключение между контекстным арифметическим декодированием и обходным арифметическим декодированием подавляется, и процессы идентичного типа последовательно выполняются. Таким образом, повышается эффективность обработки.
[0027] Например, при выполнении контекстного арифметического декодирования, первая информация может быть декодирована после того, как декодируется вторая информация.
[0028] Вследствие этого, можно декодировать, сразу после декодирования значения начального бита, включенного в параметр посредством контекстного арифметического декодирования, значение следующего бита, включенного в параметр, при поддержании последовательности контекстного арифметического декодирования. Это сокращает число сложных процессов, которые должны быть выполнены в отношении параметра, и за счет этого повышается эффективность обработки.
[0029] Помимо этого, например, при выполнении обходного арифметического декодирования может быть декодирована другая информация, которая включает в себя четвертую информацию, указывающую абсолютное значение значения смещения.
[0030] Вследствие этого, множество информационных элементов декодируется посредством обходного арифметического декодирования после контекстного арифметического декодирования. В общем, процессы идентичного типа выполняются совместно. Таким образом, повышается эффективность обработки.
[0031] Помимо этого, например, при выполнении обходного арифметического декодирования, когда SAO-обработка для первой области является обработкой смещения полосы, может быть декодирована другая информация, которая включает в себя (i) пятую информацию, указывающую то, является ли значение смещения положительным или отрицательным, и (ii) шестую информацию, указывающую область применения значения смещения.
[0032] Вследствие этого, дополнительное множество информационных элементов декодируется посредством обходного арифметического декодирования согласно состоянию после контекстного арифметического декодирования. Таким образом, повышается эффективность обработки.
[0033] Помимо этого, например, при выполнении контекстного арифметического декодирования, может быть декодирована вторая информация, которая включает в себя по меньшей мере одну из (i) информации, указывающей то, используется ли информация относительно SAO-обработки для левой области при SAO-обработке для первой области, и (ii) информации, указывающей то, используется ли информация относительно SAO-обработки для верхней области при SAO-обработке для первой области, причем левая область является смежной с первой областью и располагается слева от первой области, верхняя область является смежной с первой областью и располагается выше первой области.
[0034] Вследствие этого, при контекстном арифметическом декодировании, которое последовательно выполняется, информация, указывающая многократное использование сверху или слева при контекстном арифметическом декодировании, надлежащим образом декодируется.
[0035] Следует отметить, что общие и конкретные аспекты, раскрытые выше, могут быть реализованы с использованием системы, устройства, интегральной схемы, компьютерной программы или энергонезависимого считываемого компьютером носителя записи, к примеру, CD-ROM или любой комбинации систем, устройств, интегральных схем, способов, компьютерных программ или носителей записи.
[0036] Далее подробно описываются варианты осуществления со ссылкой на чертежи. Следует отметить, что каждый из вариантов осуществления, описанных ниже, показывает общий или конкретный пример. Числовые значения, формы, материалы, структурные элементы, компоновка и соединение структурных элементов, этапы, порядок обработки этапов и т.д., показанные в следующих вариантах осуществления, являются просто примерами, и, следовательно, не ограничивают объем настоящего изобретения. Следовательно, из структурных элементов в следующих вариантах осуществления, структурные элементы, не изложенные в любом из независимых пунктов формулы изобретения, описываются как произвольные структурные элементы.
[0037] Помимо этого, термин "кодирование" в нижеприведенном описании может быть использован для того, чтобы означать "кодирование".
[0038] Первый вариант осуществления
Фиг. 1 иллюстрирует конфигурацию устройства кодирования изображений согласно варианту 1 осуществления. Устройство 100 кодирования изображений, проиллюстрированное на фиг. 1, включает в себя модуль 110 управления и модуль 120 кодирования. Модуль 120 кодирования включает в себя: модуль 121 вычитания; модуль 122 преобразования частоты; модуль 123 квантования; модуль 124 энтропийного кодирования; модуль 125 обратного квантования; модуль 126 обратного преобразования частоты; сумматор 127; модуль 128 фильтрации контуров; модуль 129 хранения; модуль 130 внутреннего прогнозирования; модуль 131 компенсации движения; модуль 132 оценки движения; и переключатель 133.
[0039] Модуль 120 кодирования кодирует изображение 141 на поблочной основе, чтобы формировать кодированный поток 142. В это время, модуль 121 вычитания в модуле 120 кодирования вычитает пиксельный блок, имеющий несколько пиксельных значений прогнозного изображения, из пиксельного блока, имеющего несколько пиксельных значений изображения 141. Модуль 122 преобразования частоты преобразует пиксельный блок, полученный в результате вычитания, в блок коэффициентов, имеющий несколько частотных коэффициентов. Модуль 123 квантования квантует блок коэффициентов, полученный из модуля 122 преобразования частоты.
[0040] Между тем, модуль 132 оценки движения обнаруживает вектор движения с использованием пиксельного блока изображения 141. Модуль 131 компенсации движения выполняет межкадровое прогнозирование (внешнее прогнозирование) с использованием опорного изображения в модуле 129 хранения и вектора движения, обнаруженного посредством модуля 132 оценки движения. Модуль 130 внутреннего прогнозирования выполняет внутрикадровое прогнозирование (внутреннее прогнозирование) с использованием пиксельного блока, полученного из сумматора 127, согласно режиму внутреннего прогнозирования. Переключатель 133 вводит пиксельный блок прогнозного изображения, полученный в результате внутрикадрового прогнозирования или межкадрового прогнозирования, в модуль 121 вычитания и сумматор 127.
[0041] Модуль 124 энтропийного кодирования выполняет энтропийное кодирование в отношении информации сегментов блока, типа прогнозирования, вектора движения, режима прогнозирования (режима внутрикадрового прогнозирования), параметра квантования, блока квантованных коэффициентов и т.д., чтобы формировать кодированный поток 142.
[0042] Помимо этого, модуль 125 обратного квантования выполняет обратное квантование в отношении блока квантованных коэффициентов. Помимо этого, модуль 126 обратного преобразования частоты преобразует блок коэффициентов, в отношении которого выполняется обратное квантование, в пиксельный блок. Сумматор 127 суммирует пиксельный блок прогнозного изображения с пиксельным блоком, полученным из модуля 126 обратного преобразования частоты. Модуль 128 фильтрации контуров подавляет искажение в пиксельном блоке, полученном в сумматоре 127, и сохраняет пиксельный блок в качестве опорного изображения в модуле 129 хранения.
[0043] Кроме того, модуль 110 управления управляет модулем 120 кодирования.
[0044] Устройство 100 кодирования изображений кодирует изображение 141 посредством операции, описанной выше. Помимо этого, устройство 100 кодирования изображений уменьшает объем данных кодированного потока 142 посредством множества процессов, таких как преобразование частоты, квантование, внутрикадровое прогнозирование, межкадровое прогнозирование, энтропийное кодирование, контурная фильтрация и т.д.
[0045] Фиг. 2 иллюстрирует конфигурацию устройства 200 декодирования изображений, соответствующего устройству 100 кодирования изображений, проиллюстрированному на фиг. 1. Устройство 200 декодирования изображений, проиллюстрированное на фиг. 2, включает в себя модуль 210 управления и модуль 220 декодирования. Модуль 220 декодирования включает в себя: модуль 224 энтропийного декодирования; модуль 225 обратного квантования; модуль 226 обратного преобразования частоты; сумматор 227; модуль 228 фильтрации контуров; модуль 229 хранения; модуль 230 внутрикадрового прогнозирования; модуль 231 компенсации движения; и переключатель 233.
[0046] Модуль 220 декодирования декодирует, на поблочной основе, изображение 241, включенное в кодированный поток 242. В это время, модуль 224 энтропийного декодирования в модуле 220 декодирования выполняет энтропийное декодирование в отношении кодированного потока 242, тем самым получая информацию сегментов блока, тип прогнозирования, вектор движения, режим внутрикадрового прогнозирования, параметр квантования, блок квантованных коэффициентов и т.д.
[0047] Затем модуль 210 управления управляет работой, выполняемой посредством модуля 220 декодирования.
[0048] Модуль 225 обратного квантования в модуле 220 декодирования выполняет обратное квантование в отношении блока квантованных коэффициентов. Модуль 226 обратного преобразования частоты преобразует блок коэффициентов, в отношении которого выполняется обратное квантование, в пиксельный блок.
[0049] Сумматор 227 суммирует пиксельный блок прогнозного изображения с пиксельным блоком, полученным из модуля 226 обратного преобразования частоты. Модуль 228 фильтрации контуров подавляет искажение в пиксельном блоке, полученном из сумматора 227. Затем, модуль 228 фильтрации контуров сохраняет опорное изображение, включающее в себя пиксельные блоки, в модуле 229 хранения. Кроме того, модуль 228 фильтрации контуров выводит изображение 241, включающее в себя пиксельные блоки.
[0050] Когда тип прогнозирования является внутрикадровым прогнозированием, модуль 230 внутреннего прогнозирования выполняет внутрикадровое прогнозирование с использованием пиксельного блока, полученного из сумматора 227, согласно режиму внутреннего прогнозирования. Когда тип прогнозирования является межкадровым прогнозированием, модуль 231 компенсации движения выполняет межкадровое прогнозирование с использованием вектора движения и опорного изображения в модуле 229 хранения. Переключатель 233 вводит пиксельный блок прогнозного изображения, полученный в результате внутрикадрового прогнозирования или межкадрового прогнозирования, в сумматор 227.
[0051] Модуль 200 декодирования изображений декодирует, на поблочной основе, изображение 241, включенное в кодированный поток 242, посредством операции, соответствующей операции, выполняются посредством устройства 100 кодирования изображений.
[0052] Далее подробнее описывается контурная фильтрация. Контурная фильтрация является обработкой для снижения ухудшения качества кодирования в восстановленном сигнале, и согласно стандарту H.264/MPEG-4 AVC (см. непатентный документ (NPL) 1), выполняется фильтрация для удаления блочности для уменьшения искажения в виде блочности, которое возникает на границе макроблока.
[0053] Тем не менее, фильтрация для удаления блочности не разрешает ухудшение качества кодирования, возникающее в макроблоке. С учетом этого, выполняется обработка смещения для снижения ухудшения качества кодирования согласно этому варианту осуществления. Обработка смещения суммирует значение смещения с пикселем, включенным в текущий блок, который должен быть обработан, в восстановленном сигнале, за счет этого уменьшая искажение от исходного сигнала.
[0054] Кроме того, при обработке смещения, пиксели в текущем блоке классифицируются на множество категорий, и используется значение смещения, которое является общим для каждой категории. Способы классификации пикселей включают в себя (i) способ классификации пикселей на основе смещения края, который выполняется посредством сравнения целевого пикселя для классификации со смежным пикселем, и (ii) способ классификации пикселей на основе смещения полосы, который выполняется согласно пиксельному значению целевого пикселя для классификации. Смещение края является смещением, выполняемым согласно краю, и смещение полосы является смещением, выполняемым согласно пиксельному значению.
[0055] В нижеприведенном описании, использование способа классификации пикселей на основе смещения края описывается как то, что способ классификации пикселей является смещением края, или как использование смещения края для способа классификации пикселей в некоторых случаях. Аналогично, использование способа классификации пикселей на основе смещения полосы описывается как то, что способ классификации пикселей является смещением полосы, или как использование смещения полосы для способа классификации пикселей в некоторых случаях.
[0056] Фиг. 3 является схематичным видом, иллюстрирующим пример способа классификации пикселей с использованием смещения края. При смещении края классификация выполняется с использованием соотношения абсолютных величин между текущим пикселем c, который должен быть классифицирован, и смежными пикселями c1 и c2, расположенными слева и справа, соответственно, от пикселя c.
[0057] Фиг. 4 является схематичным видом, иллюстрирующим пример классификации блока, который должен быть обработан, на пять категорий посредством смещения края. Например, когда пиксельное значение c превышает пиксельное значение c1 и равно пиксельному значению c2, текущий пиксель классифицируется на категорию 3, и прибавляется значение Offset [3] смещения, выделенное категории 3.
[0058] Помимо этого, как проиллюстрировано на фиг. 5, пиксели, которые сравниваются с целевым пикселем, который должен быть классифицирован при смещении края, являются правым и левым смежными пикселями (EO(0)), верхним и нижним смежными пикселями (EO(1)), смежными по диагонали пикселями (EO(2) или EO(3)), их комбинацией (EO(4) или EO(5)) и т.д.
[0059] Фиг. 6 является схематичным видом, иллюстрирующим пример способа классификации пикселей с использованием смещения полосы. Здесь, градации, которые, возможно, принимает текущее пиксельное значение, которое должно быть обработано, равномерно разделяются на M. M равно, например, 32. Сегменты градации, полученные в результате разделения, представляют категории. Текущий пиксель, который должен быть обработан, классифицируется на категорию, в которую включается пиксельное значение.
[0060] Фиг. 7 является схематичным видом, иллюстрирующим пример классификации блоков, которые должны быть обработаны, на 16 классов посредством смещения полосы. Например, когда пиксельное значение c превышает или равно R9 и меньше R10, текущий пиксель, который должен быть обработан, классифицируется на категорию 9, и прибавляется значение Offset [9] смещения, выделенное категории 9.
[0061] Помимо этого, необязательно выделять значение смещения для всех категорий, и, как проиллюстрировано на фиг. 8, устройство 100 кодирования изображений допускает кодирование только значения смещения для категории, имеющей высокий эффект смещения. В это время, устройство 100 кодирования изображений совместно кодирует числовой индекс категории, который указывает категорию кодированного значения смещения.
[0062] Помимо этого, адаптивное к выборке смещение (SAO) определяет оптимальный способ классификации пикселей и оптимальное значение смещения для единицы целевой области, которая должна быть обработана, которое получается посредством иерархического разделения блока, как проиллюстрировано на фиг. 9A. Фиг. 9B иллюстрирует пример шаблона разделения.
[0063] Фиг. 10 является блок-схемой, иллюстрирующей пример конфигурации модуля 128 фильтрации контуров в устройстве 100 кодирования изображений согласно этому варианту осуществления.
[0064] Модуль 128 фильтрации контуров включает в себя: модуль 151 получения сигналов; модуль 152 вычисления информации смещения; процессор 153 смещения; модуль 154 кодирования информации смещения; и модуль 155 вывода сигналов.
[0065] Модуль 151 получения сигналов получает восстановленный пиксельный сигнал в целевой области, которая должна быть обработана.
[0066] Модуль 152 вычисления информации смещения вычисляет информацию смещения для использования при обработке смещения, такую как шаблон разделения, способ классификации пикселей, значение смещения и т.д.
[0067] Процессор 153 смещения классифицирует, на категории, пиксели в целевой области, которая должна быть обработана, с использованием информации смещения и выполняет обработку смещения для каждой из категорий.
[0068] Модуль 154 кодирования информации смещения выводит информацию смещения в модуль 124 энтропийного кодирования, проиллюстрированный на фиг. 1. Следует отметить, что модуль 154 кодирования информации смещения может кодировать информацию смещения. Помимо этого, модуль 154 кодирования информации смещения может быть включен в модуль 124 энтропийного кодирования.
[0069] Модуль 155 вывода сигналов выводит пиксельный сигнал в целевой области, в отношении которой выполняется обработка смещения.
[0070] Фиг. 11 является блок-схемой, иллюстрирующей пример конфигурации модуля 228 фильтрации контуров в устройстве 200 декодирования изображений согласно этому варианту осуществления.
[0071] Модуль 228 фильтрации контуров включает в себя: модуль 251 получения сигналов; модуль 252 декодирования информации смещения; процессор 253 смещения; и модуль 254 вывода сигналов.
[0072] Модуль 251 получения сигналов получает восстановленный пиксельный сигнал в целевой области, которая должна быть обработана.
[0073] Модуль 252 декодирования информации смещения получает информацию смещения для использования при обработке смещения, такую как шаблон разделения, способ классификации пикселей, значение смещения и т.д. Следует отметить, что модуль 252 декодирования информации смещения может декодировать информацию смещения. Помимо этого, модуль 252 декодирования информации смещения может быть включен в модуль 224 энтропийного декодирования.
[0074] Процессор 253 смещения классифицирует, на категории, пиксели в целевой области, которая должна быть обработана, с использованием информации смещения и выполняет обработку смещения для каждой из категорий.
[0075] Модуль 254 вывода сигналов выводит пиксельный сигнал в целевой области, в отношении которой выполняется обработка смещения.
[0076] Фиг. 12 является блок-схемой последовательности операций способа, иллюстрирующей операции, выполняемые, главным образом, посредством модуля 128 фильтрации контуров, проиллюстрированного на фиг. 10, устройства 100 кодирования изображений, проиллюстрированного на фиг. 1.
[0077] Во-первых, модуль 151 получения сигналов получает, из сумматора 127, восстановленный пиксельный сигнал в целевой области, которая должна быть обработана. Затем, модуль 152 вычисления информации смещения вычисляет информацию смещения для использования при обработке смещения, такую как шаблон разделения, способ классификации пикселей, значение смещения и т.д. (этап S152). Затем, процессор 153 смещения разделяет область на основе информации смещения, классифицирует пиксели в разделенной области на категории и прибавляет значение смещения для каждой из категорий (этап S153).
[0078] Затем, модуль 154 кодирования информации смещения выводит, в модуль 124 энтропийного кодирования, информацию смещения, такую как шаблон разделения, способ классификации пикселей, числовой индекс категории, значение смещения и т.д. Модуль 124 энтропийного кодирования кодирует информацию смещения и вставляет кодированную информацию смещения в кодированный поток (этап S154). Следует отметить, что модуль 154 кодирования информации смещения может кодировать информацию смещения и вставлять кодированную информацию смещения в кодированный поток.
[0079] Затем, модуль 155 вывода сигналов выводит, в модуль 129 хранения, пиксельный сигнал в целевой области, в отношении которой выполняется обработка смещения (этап S155).
[0080] Фиг. 13 является блок-схемой последовательности операций способа, иллюстрирующей операции, выполняемые посредством модуля 228 фильтрации контуров, проиллюстрированного на фиг. 11, устройства 200 декодирования изображений, проиллюстрированного на фиг. 2.
[0081] Во-первых, модуль 251 получения сигналов получает, из сумматора 227, восстановленный пиксельный сигнал в целевой области, которая должна быть обработана.
[0082] Затем, модуль 224 энтропийного декодирования декодирует, из кодированного потока, информацию смещения, такую как шаблон разделения, способ классификации пикселей, числовой индекс категории, значение смещения и т.д. и модуль 252 декодирования информации смещения получает декодированную информацию смещения (этап S252). Следует отметить, что модуль 252 декодирования информации смещения может декодировать информацию смещения из кодированного потока.
[0083] Затем, процессор 253 смещения разделяет область на основе информации смещения, классифицирует пиксели в разделенной области на категории и прибавляет значение смещения для каждой из категорий (этап S253). Затем, модуль 254 вывода сигналов выводит, в модуль 229 хранения, пиксельный сигнал в целевой области, в отношении которой выполняется обработка смещения (этап S254).
[0084] Здесь подробнее описывается кодирование и декодирование информации смещения в модуле 154 кодирования информации смещения и модуле 252 декодирования информации смещения. Способы классификации пикселей при обработке смещения включают в себя, например, пять типов способов EO(0), EO(1), EO(2) и EO(3) для смещения края и BO(0) для смещения полосы.
[0085] Фиг. 14 иллюстрирует пример выделения числовых индексов, который иллюстрирует соответствующие способы классификации пикселей. На фиг. 14, числовые индексы преобразуются в двоичную форму таким образом, что небольшое значение имеет небольшую длину в битах, а большое значение имеет большую длину в битах, и максимальная длина в битах указывается как пять битов. Тем не менее, способ выделения не ограничивается этим. Например, максимальная длина в битах не может указываться, и вместо этого, всем числовым индексам могут выделяться биты, так что последний бит равен 0.
[0086] Помимо этого, информация, указывающая, что обработка смещения не должна быть выполнена в отношении текущего блока, который должен быть обработан, выделяется числовому индексу 0.
[0087] Устройство 100 кодирования изображений согласно варианту 1 осуществления формирует кодированный поток посредством кодирования видео. Как проиллюстрировано на фиг. 15, кодированный поток включает в себя часть заголовка, такую как SPS (набор параметров последовательности), PPS (набор параметров изображения) и т.д. и данные изображений, т.е. кодированные данные изображений.
[0088] Данные изображений дополнительно включают в себя заголовок среза (SH) и данные среза. Данные среза включают в себя кодированные данные изображений, включенные в срез. Данные среза дополнительно включают в себя заголовок блока (BH) и данные блока. Данные блока включают в себя кодированные данные изображений, включенные в блок.
[0089] Кроме того, кодированный поток включает в себя APS (набор параметров адаптации), в котором сохраняется параметр, который должен быть использован в другом одном или более срезах, помимо вышеуказанного. Числовой индекс aps_idx выделяется APS, и устройство 100 кодирования изображений может вставлять, в заголовок среза, числовой индекс aps_idx для вызова APS, который должен быть использован.
[0090] Информация смещения кодируется посредством модуля 154 кодирования информации смещения (или модуля 124 энтропийного кодирования) и вставляется в любое из SPS, PPS, SH, данных среза, BH, данных блока и APS. Помимо этого, информация смещения получается из любого из SPS, PPS, SH, данных среза, BH, данных блока и APS и декодируется посредством модуля 252 декодирования информации смещения (или модуля 224 энтропийного декодирования).
[0091] Примеры вставки информации смещения в APS показаны на фиг. 16A, фиг. 16B и фиг. 16C. Устройство 100 кодирования изображений допускает совместную вставку информации смещения всех блоков в срезе, и устройство 200 декодирования изображений допускает совместное получение информации смещения от APS.
[0092] Примеры вставки информации смещения в данные среза показаны на фиг. 17A, фиг. 17B и фиг. 17C. Устройство 100 кодирования изображений допускает вставку информации смещения на поблочной основе в данных среза, и устройство 200 декодирования изображений допускает получение информации смещения на поблочной основе в данных среза.
[0093] Согласно этому варианту осуществления, информация смещения может быть совместно использована между множеством целевых областей, которые должны быть обработаны в устройстве 100 кодирования изображений (устройстве 200 декодирования изображений), как показано на фиг. 18. Сплошные линии на фиг. 18 показывают границы сегментов целевых областей для обработки смещения, а пунктирные линии показывают границы сегментов областей, между которыми совместно используется информация смещения. Здесь, устройство 100 кодирования изображений вставляет, в кодированный поток, не информацию смещения, указывающую значение смещения и т.п., а информацию, указывающую совместное использование значения смещения и т.п., за счет этого подавляя увеличение числа битов, вызываемое посредством обработки смещения.
[0094] Например, устройство 100 кодирования изображений может кодировать флаг, указывающий то, что информация смещения совместно используется всеми блоками в срезе, к примеру, sao_one_lima_unit_flag, sao_one_cr_unit_flag и sao_one_cb_unit_flag на фиг. 16A. Помимо этого, устройство 100 кодирования изображений может кодировать флаг, указывающий то, что информация смещения для одной строки должна быть скопирована из строки непосредственно выше, к примеру, sao_repeat_row_flag на фиг. 16A.
[0095] Кроме того, устройство 100 кодирования изображений может кодировать параметр, указывающий число целевых областей, которые должны быть обработаны, между которыми совместно используется информация смещения, к примеру, saoRun и sao_run_diff на фиг. 16B. Помимо этого, устройство 100 кодирования изображений может кодировать sao_merge_left_flag или sao_merge_up_flag, который указывает то, что информация смещения должна быть скопирована из области, расположенной слева, или области, расположенной выше, как показано на фиг. 16B и фиг. 17B.
[0096] Фиг. 19 является блок-схемой последовательности операций способа, указывающей операцию кодирования, из элементов информации смещения, числового индекса, который указывает способ классификации пикселей, выполняемый посредством модуля 154 кодирования информации смещения.
[0097] Во-первых, модуль 154 кодирования информации смещения определяет то, выполняется ли обработка смещения (этап S1541). Модуль 152 вычисления информации смещения вычисляет информацию смещения, такую как шаблон разделения, способ классификации пикселей, числовой индекс категории, значение смещения и т.д. Модуль 152 вычисления информации смещения определяет то, что обработка смещения не должна быть выполнена, когда число битов, требуемое для информации смещения, превышает величину коррекции ухудшения качества кодирования. В этом случае, процессор 153 смещения не выполняет обработку смещения.
[0098] Здесь, модуль 154 кодирования информации смещения получает информацию относительно того, выполнена ли обработка смещения, из модуля 152 вычисления информации смещения или процессора 153 смещения. Когда обработка смещения не выполнена ("Нет" на этапе S1541), модуль 154 кодирования информации смещения кодирует числовой индекс 0, который указывает способ классификации пикселей (этап S1542).
[0099] Когда обработка смещения выполняется ("Да" на этапе S1541), модуль 154 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(0) (этап S1543). Когда способ классификации пикселей является смещением края EO(0) ("Да" на этапе S1543), модуль 154 кодирования информации смещения кодирует числовой индекс 1, который указывает способ классификации пикселей (этап S1544).
[0100] Когда способ классификации пикселей не является смещением края EO(0) ("Нет" на этапе S1543), модуль 154 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(1) (этап S1545). Когда способ классификации пикселей является смещением края EO(1) ("Да" на этапе S1545), модуль 154 кодирования информации смещения кодирует числовой индекс 2, который указывает способ классификации пикселей (этап S1546).
[0101] Когда способ классификации пикселей не является смещением края EO(1) ("Нет" на этапе S1545), модуль 154 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(2) (этап S1547). Когда способ классификации пикселей является смещением края EO(2) ("Да" на этапе S1547), модуль 154 кодирования информации смещения кодирует числовой индекс 3, который указывает способ классификации пикселей (этап S1548).
[0102] Когда способ классификации пикселей не является смещением края EO(2) ("Нет" на этапе S1547), модуль 154 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(3) (этап S1549). Когда способ классификации пикселей является смещением края EO(3) ("Да" на этапе S1549), модуль 154 кодирования информации смещения кодирует числовой индекс 4, который указывает способ классификации пикселей (этап S1550).
[0103] Когда способ классификации пикселей не является смещением края EO(3) ("Нет" на этапе S1549), модуль 154 кодирования информации смещения кодирует числовой индекс 5, который указывает способ классификации пикселей (этап S1551).
[0104] Фиг. 20 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством модуля 252 декодирования информации смещения для того, чтобы декодировать, из элементов информации смещения, числовой индекс, который указывает способ классификации пикселей, и операцию, выполняемую посредством процессора 253 смещения для того, чтобы выполнять обработку смещения.
[0105] Во-первых, процессор 253 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 252 декодирования информации смещения, 0 (этап S2521). Когда числовой индекс равен 0 ("Да" на этапе S2521), процессор 253 смещения не выполняет обработку смещения (этап S2522).
[0106] Когда числовой индекс не равен 0 ("Нет" на этапе S2521), процессор 253 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 252 декодирования информации смещения, 1 (этап S2523). Когда числовой индекс равен 1 ("Да" на этапе S2523), процессор 253 смещения выполняет смещение края EO(0) (этап S2524).
[0107] Когда числовой индекс не равен 1 ("Нет" на этапе S2523), процессор 253 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 252 декодирования информации смещения, 2 (этап S2525). Когда числовой индекс равен 2 ("Да" на этапе S2525), процессор 253 смещения выполняет смещение края EO(1) (этап S2526).
[0108] Когда числовой индекс не равен 2 ("Нет" на этапе S2525), процессор 253 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 252 декодирования информации смещения, 3 (этап S2527). Когда числовой индекс равен 3 ("Да" на этапе S2527), процессор 253 смещения выполняет смещение края EO(2) (этап S2528).
[0109] Когда числовой индекс не равен 3 ("Нет" на этапе S2527), процессор 253 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 252 декодирования информации смещения, 4 (этап S2529). Когда числовой индекс равен 4 ("Да" на этапе S2529), процессор 253 смещения выполняет смещение края EO(3) (этап S2530).
[0110] Когда числовой индекс не равен 4 ("Нет" на этапе S2529), процессор 253 смещения выполняет смещение полосы BO(0) (этап S2531).
[0111] Посредством процессов, описанных выше, устройство 100 кодирования изображений и устройство 200 декодирования изображений суммируют, с сигналом восстановленного изображения, значение смещения для формирования разности между исходным сигналом и сигналом восстановленного изображения. Это позволяет формировать восстановленный сигнал, аналогичный исходному сигналу.
[0112] Второй вариант осуществления
Согласно варианту 1 осуществления, можно совместно использовать информацию смещения между множеством областей. Тем не менее, с учетом уменьшения задержки обработки или понижения объема запоминающего устройства, области, которые должны совместно использоваться, ограничены смежными областями. Например, задержка обработки сокращается посредством ограничения областей, которые должны совместно использоваться, смежными областями слева и выше. Кроме того, объем запоминающего устройства для сохранения информации смещения в обработанной области сокращается посредством ограничения областей, которые должны совместно использоваться, смежной областью слева.
[0113] С другой стороны, ограничение областей, которые должны совместно использоваться, затрудняет совместное использование информации смещения в большой области. Именно по этой причине частота кодирования информации смещения растет, а число битов увеличивается. Здесь, как показано на фиг. 16C или фиг. 17C, при полосовом смещении, категория sao_band_position начала кодирования смещения полосы кодируется в качестве параметра. Таким образом, число битов превышает число битов смещения края. Соответственно, с точки зрения увеличения числа битов, преимущественнее использовать смещение края.
[0114] С учетом вышеизложенного, устройство кодирования изображений согласно этому варианту осуществления уменьшает число битов, требуемое при использовании смещения полосы, чтобы корректировать недостатки смещения полосы по сравнению со смещением края. Следует отметить, что категория sao_band_position начала кодирования смещения полосы является примером информации, которая указывает область применения значения смещения.
[0115] Далее описывается устройство кодирования изображений согласно настоящему варианту осуществления и устройство декодирования изображений, соответствующее устройству кодирования изображений.
[0116] Фиг. 21 является блок-схемой, иллюстрирующей конфигурацию модуля фильтрации контуров в устройстве кодирования изображений согласно этому варианту осуществления. Остальная конфигурация устройства кодирования изображений согласно этому варианту осуществления является по существу эквивалентной конфигурации устройства 100 кодирования изображений, проиллюстрированного на фиг. 1. Фиг. 22 является блок-схемой, иллюстрирующей конфигурацию модуля фильтрации контуров в устройстве декодирования изображений согласно этому варианту осуществления. Остальная конфигурация устройства декодирования изображений согласно этому варианту осуществления является по существу эквивалентной конфигурации устройства 200 декодирования изображений, проиллюстрированного на фиг. 2.
[0117] Фиг. 23 является блок-схемой последовательности операций способа, иллюстрирующей операции, выполняемые посредством модуля 300 фильтрации контуров (модуля фильтрации контуров устройства кодирования изображений), проиллюстрированного на фиг. 21. Фиг. 24 является блок-схемой последовательности операций способа, иллюстрирующей операции, выполняемые посредством модуля 400 фильтрации контуров (модуля фильтрации контуров устройства декодирования изображений), проиллюстрированного на фиг. 22.
[0118] Во-первых, описывается конфигурация и работа модуля 300 фильтрации контуров (модуля фильтрации контуров устройства кодирования изображений), проиллюстрированного на фиг. 21. Модуль 300 фильтрации контуров включает в себя: модуль 301 получения сигналов; модуль 302 вычисления информации смещения; процессор 303 смещения; модуль 304 вывода сигналов; модуль 305 кодирования информации смещения; и модуль 306 управления. Описание для перекрывающихся частей с вариантом 1 осуществления опускается, и описываются отличия, т.е. модуль 306 управления на фиг. 21, модуль 305 кодирования информации смещения на фиг. 21 и этап S304 на фиг. 23.
[0119] Модуль 306 управления управляет модулем 305 кодирования информации смещения таким образом, чтобы уменьшать число битов информации смещения для смещения полосы, когда способ классификации пикселей является смещением полосы.
[0120] Модуль 305 кодирования информации смещения выполняет кодирование для того, чтобы уменьшать числовое значение числового индекса, указывающего то, что способ классификации пикселей является смещением полосы.
[0121] На этапе S304 по фиг. 23, модуль 305 кодирования информации смещения выделяет числовой индекс для способа классификации пикселей и кодирует информацию смещения. В это время, модуль 305 кодирования информации смещения выделяет числовой индекс таким образом, что числовой индекс, который указывает смещение полосы BO(0), меньше четырех смещений края EO(0), EO(1), EO(2) и EO(3). Затем, модуль 305 кодирования информации смещения вставляет кодированную информацию смещения в кодированный поток.
[0122] Далее описывается конфигурация и работа модуля 400 фильтрации контуров (модуля фильтрации контуров устройства декодирования изображений), проиллюстрированного на фиг. 22. Модуль 400 фильтрации контуров включает в себя: модуль 401 получения сигналов; модуль 402 декодирования информации смещения; процессор 403 смещения; модуль 404 вывода сигналов; и модуль 405 управления. Описание для перекрывающихся частей с вариантом 1 осуществления опускается, и описываются отличия, т.е. модуль 405 управления на фиг. 22, модуль 402 декодирования информации смещения на фиг. 22 и этап S402 на фиг. 24.
[0123] Модуль 405 управления управляет модулем 402 декодирования информации смещения таким образом, что информация смещения для смещения полосы декодируется с помощью небольшого числа битов, когда способ классификации пикселей является смещением полосы.
[0124] Модуль 402 декодирования информации смещения декодирует числовой индекс с небольшим числовым значением в качестве числового индекса, указывающего то, что способ классификации пикселей является смещением полосы.
[0125] На этапе S402 по фиг. 24, модуль 402 декодирования информации смещения выделяет числовой индекс для способа классификации пикселей и декодирует информацию смещения. В это время, модуль 402 декодирования информации смещения выделяет числовой индекс таким образом, что числовой индекс, который указывает смещение полосы BO(0), меньше четырех смещений края EO(0), EO(1), EO(2) и EO(3).
[0126] Здесь подробнее описывается кодирование и декодирование информации смещения, выполняемое посредством модуля 305 кодирования информации смещения и модуля 402 декодирования информации смещения. Для способов классификации пикселей при обработке смещения используются смещения края EO(0), EO(1), EO(2) и EO(3) и смещение полосы BO(0), аналогично варианту 1 осуществления. В этом случае, разность между наименьшим числом битов и наибольшим числом битов, которые соответствуют числовому индексу, указывающему способ классификации пикселей, составляет три бита за исключением числового индекса 0 для случая, когда обработка смещения не выполняется.
[0127] В варианте 1 осуществления наибольшее число битов выделяется смещению полосы, как показано на фиг. 14. Когда число категорий смещения полосы равно 32, разность самое большее в восемь битов и по меньшей мере пять битов, включающая в себя sao_band_position, формируется между смещением полосы и смещением края.
[0128] По этой причине, согласно этому варианту осуществления, бит, меньший бита в случае смещения края, выделяется числовому индексу, указывающему смещение полосы, как показано на фиг. 25. Вследствие этого, разность числа битов между смещением полосы и смещением края составляет самое большее четыре бита и по меньшей мере два бита, корректируя недостатки смещения полосы по сравнению со смещением края.
[0129] Следует отметить, что, как показано на фиг. 26, флаг активации/деактивации обработки смещения (флаг обработки смещения) может быть независимым, в качестве sao_on_flag, от числового индекса sao_type_idx, который указывает способ классификации пикселей.
[0130] На фиг. 26, смещение полосы выделяется числовому индексу 0. Числовые индексы преобразуются в двоичную форму таким образом, что небольшое значение имеет небольшую длину в битах, а большое значение имеет большую длину в битах, и максимальная длина в битах указывается как четыре бита. Тем не менее, способ выделения не ограничивается вышеуказанным. Например, максимальная длина в битах может не указываться, и вместо этого, всем числовым индексам могут выделяться биты, так что последний бит равен 0. Затем, приводится описание на основе выделения битов, показанного на фиг. 26.
[0131] Примеры вставки информации смещения в APS показаны на фиг. 27A и фиг. 27B. Флаг sao_on_flag активации/деактивации обработки смещения, который является независимым от индекса, который указывает способ классификации пикселей, заново предоставляется в sao_unit_vlc, показанном на фиг. 27A. Помимо этого, наименьший бит выделяется смещению полосы в sao_type_idx для sao_offset_vlc на фиг. 27B.
[0132] Фиг. 27C является схемой, которая показывает пример контекстов информации смещения в APS. Фиг. 27D является блок-схемой последовательности операций способа, которая показывает пример кодирования информации смещения в APS. Фиг. 27E является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения в APS.
[0133] Помимо этого, примеры вставки информации смещения в данные среза показаны на фиг. 28A и фиг. 28B. Флаг sao_on_flag активации/деактивации обработки смещения заново предоставляется в sao_unit_cabac, показанном на фиг. 28A. Помимо этого, наименьший бит выделяется смещению полосы в sao_type_idx для sao_offset_cabac, показанном на фиг. 28B.
[0134] Фиг. 28C является схематичным видом, иллюстрирующим пример контекстов информации смещения в данных среза. Фиг. 28D является блок-схемой последовательности операций способа, которая показывает пример кодирования информации смещения в данных среза. Фиг. 28E является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения в данных среза.
[0135] Фиг. 29 является блок-схемой последовательности операций способа, указывающей операцию кодирования, из элементов информации смещения, числового индекса, который указывает способ классификации пикселей, выполняемый посредством модуля 305 кодирования информации смещения.
[0136] Во-первых, модуль 305 кодирования информации смещения определяет то, выполняется ли обработка смещения (этап S3051). Модуль 302 вычисления информации смещения вычисляет информацию смещения, такую как шаблон разделения, способ классификации пикселей, числовой индекс категории, значение смещения и т.д. Модуль 302 вычисления информации смещения определяет то, что обработка смещения не должна быть выполнена, когда число битов, требуемое для информации смещения, превышает величину коррекции ухудшения качества кодирования. В этом случае, процессор 303 смещения не выполняет обработку смещения.
[0137] Здесь, модуль 305 кодирования информации смещения получает информацию относительно того, выполнена ли обработка смещения, из модуля 302 вычисления информации смещения или процессора 303 смещения. Когда обработка смещения не выполнена ("Нет" на этапе S3051), модуль 305 кодирования информации смещения кодирует флаг активации/деактивации обработки смещения в качестве 0 (этап S3052).
[0138] Когда обработка смещения выполнена ("Да" на этапе S3051), модуль 305 кодирования информации смещения кодирует флаг активации/деактивации обработки смещения в качестве 1 (этап S3053). Затем, модуль 305 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением полосы BO(0) (этап S3054).
[0139] Когда способ классификации пикселей является смещением полосы BO(0) ("Да" на этапе S3054), модуль 305 кодирования информации смещения кодирует числовой индекс 0, который указывает способ классификации пикселей (этап S3055). Когда способ классификации пикселей не является смещением полосы BO(0) ("Нет" на этапе S3054), модуль 305 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(0) (этап S3056).
[0140] Когда способ классификации пикселей является смещением края EO(0) ("Да" на этапе S3056), модуль 305 кодирования информации смещения кодирует числовой индекс 1, который указывает способ классификации пикселей (этап S3057). Когда способ классификации пикселей не является смещением края EO(0) ("Нет" на этапе S3056), модуль 305 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(1) (этап S3058).
[0141] Когда способ классификации пикселей является смещением края EO(1) ("Да" на этапе S3058), модуль 305 кодирования информации смещения кодирует числовой индекс 2, который указывает способ классификации пикселей (этап S3059). Когда способ классификации пикселей не является смещением края EO(1) ("Нет" на этапе S3058), модуль 305 кодирования информации смещения определяет то, является ли способ классификации пикселей смещением края EO(2) (этап S3060).
[0142] Когда способ классификации пикселей является смещением края EO(2) ("Да" на этапе S3060), модуль 305 кодирования информации смещения кодирует числовой индекс 3, который указывает способ классификации пикселей (этап S3061). Когда способ классификации пикселей не является смещением края EO(2) ("Нет" на этапе S3060), модуль 305 кодирования информации смещения кодирует числовой индекс 4, который указывает способ классификации пикселей (этап S3062).
[0143] Фиг. 30 является блок-схемой последовательности операций способа, указывающей операцию, выполняемую посредством модуля 402 декодирования информации смещения для того, чтобы декодировать, из элементов информации смещения, числовой индекс, который указывает способ классификации пикселей, и операцию, выполняемую посредством процессора 403 смещения для того, чтобы выполнять обработку смещения.
[0144] Во-первых, процессор 403 смещения определяет то, равен ли флаг активации/деактивации обработки смещения, декодированный посредством модуля 402 декодирования информации смещения, 0 (этап S4021). Когда флаг активации/деактивации обработки смещения равен 0 ("Да" на этапе S4021), процессор 403 смещения не выполняет обработку смещения (этап S4022).
[0145] Когда флаг активации/деактивации обработки смещения не равен 0 ("Нет" на этапе S4021), модуль 402 декодирования информации смещения декодирует числовой индекс (этап S4023). Затем, процессор 403 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 402 декодирования информации смещения, 0 (этап S4024).
[0146] Когда числовой индекс равен 0 ("Да" на этапе S4024), процессор 403 смещения выполняет смещение полосы BO(0) (этап S4025). Когда числовой индекс не равен 0 ("Нет" на этапе S4024), процессор 403 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 402 декодирования информации смещения, 1 (этап S4026).
[0147] Когда числовой индекс равен 1 ("Да" на этапе S4026), процессор 403 смещения выполняет смещение края EO(0)) (этап S4027). Когда числовой индекс не равен 1 ("Нет" на этапе S4026), процессор 403 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 402 декодирования информации смещения, 2 (этап S4028).
[0148] Когда числовой индекс равен 2 ("Да" на этапе S4028), процессор 403 смещения выполняет смещение края EO(1) (этап S4029). Когда числовой индекс не равен 2 ("Нет" на этапе S4028), процессор 403 смещения определяет то, равен ли числовой индекс, декодированный посредством модуля 402 декодирования информации смещения, 3 (этап S4030).
[0149] Когда числовой индекс равен 3 ("Да" на этапе S4030), процессор 403 смещения выполняет смещение края EO(2) (этап S4031). Когда числовой индекс не равен 3 ("Нет" на этапе S4030), процессор 403 смещения выполняет смещение края EO(3) (этап S4032).
[0150] Посредством процессов, описанных выше, устройство кодирования изображений и устройство декодирования изображений уменьшают разность в числе битов, требуемом для кодирования информации смещения между смещением полосы и смещением края. Это дает возможность устройству кодирования изображений и устройству декодирования изображений выполнять надлежащую обработку смещения для каждой из целевых областей, которые должны быть обработаны. Следовательно, повышается эффективность кодирования и субъективное качество изображений.
[0151] Следует отметить, что устройство кодирования изображений и устройство декодирования изображений могут выделять небольшое число битов для числового индекса смещения края, когда обработка смещения выполняется для сигнала яркости. Кроме того, устройство кодирования изображений и устройство декодирования изображений могут выделять небольшое число битов для числового индекса смещения полосы, когда обработка смещения выполняется для сигнала цветности. Это упрощает использование способа классификации пикселей, который является более подходящим для особенности сигнала, который должен быть обработан. Следовательно, дополнительно повышается эффективность кодирования и субъективное качество изображений.
[0152] Помимо этого, устройство кодирования изображений и устройство декодирования изображений могут обращаться к коэффициенту преобразования частоты и выделять небольшое число битов для числового индекса смещения края в области, которая должна быть обработана, которая имеет небольшой низкочастотный компонент. Кроме того, устройство кодирования изображений и устройство декодирования изображений могут выделять небольшое число битов для числового индекса смещения полосы в области, которая должна быть обработана, которая имеет большой низкочастотный компонент. Это упрощает использование способа классификации пикселей, который является более подходящим для особенности сигнала, который должен быть обработан. Следовательно, дополнительно повышается эффективность кодирования и субъективное качество изображений.
[0153] Помимо этого, для определения того, является число вышеописанных низкочастотных компонентов большим или небольшим, пороговое значение может быть использовано, или пороговое значение может быть кодировано.
[0154] Здесь, арифметическое кодирование описывается в качестве способа для кодирования и декодирования информации смещения, выполняемого посредством модуля 305 кодирования информации смещения и модуля 402 декодирования информации смещения. При арифметическом кодировании устройство кодирования изображений сначала преобразует (преобразует в двоичную форму) текущий сигнал, который должен быть кодирован, из многозначного сигнала в двоичный сигнал (элемент выборки, сигнал 0 или 1) и выполняет арифметическое кодирование для двоичного сигнала с тем, чтобы формировать поток битов. Один пример арифметического кодирования является контекстным арифметическим кодированием (контекстно-адаптивным арифметическим кодированием), в котором арифметическое кодирование выполняется с использованием адаптивной вероятности появления символов.
[0155] При контекстном арифметическом кодировании устройство кодирования изображений выбирает контекст для каждого из сигналов, которые должны быть кодированы, и определяет вероятность появления символов согласно контексту. Более конкретно, при контекстном арифметическом кодировании, устройство кодирования изображений сначала загружает контекст и выполняет арифметическое кодирование в отношении текущего сигнала, который должен быть кодирован, на основе вероятности появления символов для контекста. Затем, устройство кодирования изображений обновляет вероятность появления символов, соответствующую контексту, согласно значению текущего сигнала, который кодируется.
[0156] При кодировании флага sao_on_flag активации/деактивации обработки смещения в сигнале яркости, сигнале Cb цветности и сигнале Cr цветности, может быть использован общий контекст, либо контексты могут изменяться для каждого из сигналов, как показано на фиг. 27C или фиг. 28C.
[0157] Фиг. 28D является блок-схемой последовательности операций способа, которая показывает пример использования трех контекстов, когда модуль 305 кодирования информации смещения кодирует и вставляет в данные среза флаг sao_on_flag активации/деактивации обработки смещения.
[0158] Во-первых, модуль 305 кодирования информации смещения определяет то, является ли текущий сигнал, который должен быть обработан, сигналом яркости (этап S3041). Модуль 305 кодирования информации смещения использует cIdx, проиллюстрированный на фиг. 28A, для определения сигнала яркости. Здесь, когда cIdx=0, текущий сигнал является сигналом яркости.
[0159] Когда текущий сигнал является сигналом яркости ("Да" на этапе S3041), модуль 305 кодирования информации смещения выбирает и загружает контекст 1 (этап S3042). Когда текущий сигнал не является сигналом яркости ("Нет" на этапе S3041), модуль 305 кодирования информации смещения определяет то, является ли текущий сигнал сигналом Cb цветности (этап S3043). Модуль 305 кодирования информации смещения использует cIdx для определения сигнала Cb цветности, идентично определению сигнала яркости (этап S3041). Здесь, когда cIdx=1, текущий сигнал является сигналом Cb цветности.
[0160] Когда текущий сигнал является сигналом Cb цветности ("Да" на этапе S3043), модуль 305 кодирования информации смещения выбирает и загружает контекст 2 (этап S3044). Когда текущий сигнал не является сигналом Cb цветности ("Нет" на этапе S3043), модуль 305 кодирования информации смещения выбирает и загружает контекст 3 (этап S3045).
[0161] Затем, модуль 305 кодирования информации смещения кодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста, который выбирается и загружается (этап S3046).
[0162] Следует отметить, что блок-схема последовательности операций способа, проиллюстрированная на фиг. 27D, которая показывает пример случая, в котором флаг sao_on_flag активации/деактивации обработки смещения кодируется и вставляется в APS, является идентичной блок-схеме последовательности операций способа, проиллюстрированной на фиг. 28, описанной выше, и в силу этого ее описание опускается.
[0163] Фиг. 28E является блок-схемой последовательности операций способа, которая показывает пример использования трех контекстов, когда модуль 402 декодирования информации смещения декодирует флаг sao_on_flag активации/деактивации обработки смещения, который вставляется в данные среза.
[0164] Во-первых, модуль 402 декодирования информации смещения определяет то, является ли текущий сигнал, который должен быть обработан, сигналом яркости (этап S4021). Модуль 402 декодирования информации смещения использует cIdx, проиллюстрированный на фиг. 28A, для определения сигнала яркости. Здесь, когда cIdx=0, текущий сигнал является сигналом яркости.
[0165] Когда текущий сигнал является сигналом яркости ("Да" на этапе S4021), модуль 402 декодирования информации смещения выбирает и загружает контекст 1 (этап S4022). Когда текущий сигнал не является сигналом яркости ("Нет" на этапе S4021), модуль 402 декодирования информации смещения определяет то, является ли текущий сигнал сигналом Cb цветности (этап S4023). Модуль 402 декодирования информации смещения использует cIdx для определения сигнала Cb цветности, идентично определению сигнала яркости (этап S4021). Здесь, когда cIdx=1, текущий сигнал является сигналом Cb цветности.
[0166] Когда текущий сигнал является сигналом Cb цветности ("Да" на этапе S4023), модуль 402 декодирования информации смещения выбирает и загружает контекст 2 (этап S4024). Когда текущий сигнал не является сигналом Cb цветности ("Нет" на этапе S4023), модуль 402 декодирования информации смещения выбирает и загружает контекст 3 (этап S4025).
[0167] Затем, модуль 402 декодирования информации смещения декодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста, который выбирается и загружается (этап S4026).
[0168] Следует отметить, что блок-схема последовательности операций способа, проиллюстрированная на фиг. 27E, которая показывает пример случая, в котором флаг sao_on_flag активации/деактивации обработки смещения, который вставляется в APS, декодируется, является идентичной блок-схеме последовательности операций способа, проиллюстрированной на фиг. 28E, описанной выше, и в силу этого ее описание опускается.
[0169] Посредством процессов, описанных выше, устройство кодирования изображений и устройство декодирования изображений используют различный контекст для каждого из сигнала яркости, сигнала Cb цветности и сигнала Cr цветности, тем самым выделяя вероятность появления символов согласно особенности каждого из сигналов. Таким образом, устройство кодирования изображений и устройство декодирования изображений допускают подавление объема кода флага sao_on_flag активации/деактивации обработки смещения.
[0170] Следует отметить, что устройство кодирования изображений и устройство декодирования изображений могут сокращать число контекстов, которые должны использоваться для кодирования и декодирования, до двух (сигнал яркости и сигнал цветности) посредством совместного использования контекста сигналами Cb и Cr цветности.
[0171] Третий вариант осуществления
Устройство кодирования изображений и устройство декодирования изображений согласно варианту 1 осуществления суммируют, с восстановленным сигналом, значение смещения, вычисленное из значения разности между исходным сигналом и восстановленным сигналом, за счет этого обеспечивая уменьшение искажения восстановленного сигнала относительно исходного сигнала. Помимо этого, устройство кодирования изображений и устройство декодирования изображений совместно используют информацию смещения между множеством целевых областей, которые должны быть обработаны, в силу этого подавляя увеличение числа битов информации смещения в кодированном потоке.
[0172] Дополнительно, согласно варианту 2 осуществления, устройство кодирования изображений кодирует информацию, указывающую то, выполнять ли обработку смещения для каждой из областей, которые должны быть обработаны, в качестве флага sao_on_flag активации/деактивации обработки смещения, в начале информации смещения независимо от способа sao_type_idx классификации пикселей. Когда обработка смещения не должна быть выполнена, устройство кодирования изображений не выполняет кодирование в отношении sao_merge_left_flag или sao_merge_up_flag, который указывает то, копировать ли информацию смещения из области слева или выше, соответственно.
[0173] Вследствие этого, можно подавлять число битов. Устройство кодирования изображений согласно этому варианту осуществления дополнительно позволяет повышать пропускную способность посредством интегрирования или упрощения арифметического кодирования для каждого элемента информации смещения.
[0174] Примеры арифметического кодирования включают в себя обходное арифметическое кодирование в дополнение к контекстному арифметическому кодированию, описанному в варианте 2 осуществления. Контекстное арифметическое кодирование использует адаптивную вероятность появления символов. С другой стороны, при обходном арифметическом кодировании, арифметическое кодирование выполняется с использованием вероятности появления символов, которая составляет 50%. Вследствие этого, устройство кодирования изображений не должно загружать и обновлять контекст при обходном арифметическом кодировании, и за счет этого можно ускорять процессы.
[0175] В этом варианте осуществления, операции, выполняемые посредством модуля кодирования информации смещения и модуля декодирования информации смещения согласно этому варианту осуществления, отличаются от операций, выполняемых посредством модуля 154 кодирования информации смещения и модуля 252 декодирования информации смещения согласно варианту 1 осуществления. Помимо этого, операции, выполняемые посредством модуля кодирования информации смещения и модуля декодирования информации смещения согласно этому варианту осуществления, отличаются от операций, выполняемых посредством модуля 305 кодирования информации смещения и модуля 402 декодирования информации смещения согласно варианту 2 осуществления. Далее описываются отличия.
[0176] Фиг. 31 иллюстрирует конфигурацию модуля 507 кодирования информации смещения, который кодирует информацию смещения в устройстве кодирования изображений согласно этому варианту осуществления. Модуль 507 кодирования информации смещения включает в себя: модуль 5071 управления арифметическим кодированием; модуль 5072 контекстного арифметического кодирования; и модуль 5073 обходного арифметического кодирования.
[0177] Модуль 5071 управления арифметическим кодированием переключается между контекстным арифметическим кодированием и обходным арифметическим кодированием, которое должно быть использовано, согласно информации смещения. Следует отметить, что модуль 5071 управления арифметическим кодированием может быть включен в модуль 110 управления устройства 100 кодирования изображений, проиллюстрированного на фиг. 1. Модуль 5072 контекстного арифметического кодирования загружает контекст согласно информации смещения и выполняет кодирование. Модуль 5073 обходного арифметического кодирования выполняет кодирование с использованием вероятности появления символов, которая составляет 50%.
[0178] Фиг. 32 иллюстрирует конфигурацию модуля 606 декодирования информации смещения, который декодирует информацию смещения в устройстве декодирования изображений согласно этому варианту осуществления. Модуль 606 декодирования информации смещения включает в себя: модуль 6061 управления арифметическим декодированием; модуль 6062 контекстного арифметического декодирования; и модуль 6063 обходного арифметического декодирования.
[0179] Модуль 6061 управления арифметическим декодированием переключается между контекстным арифметическим декодированием (контекстно-адаптивным арифметическим декодированием) и обходным арифметическим декодированием, которое должно быть использовано, согласно информации смещения. Следует отметить, что модуль 6061 управления арифметическим декодированием может быть включен в модуль 210 управления устройства 200 декодирования изображений, проиллюстрированного на фиг. 2. Модуль 6062 контекстного арифметического декодирования загружает контекст согласно информации смещения и выполняет декодирование. Модуль 6063 обходного арифметического декодирования выполняет декодирование с использованием вероятности появления символов, которая составляет 50%.
[0180] Фиг. 33 иллюстрирует выделение контекстов (индексов контекстов) информации смещения согласно первому примеру этого варианта осуществления и тип арифметического кодирования, используемого в каждом элементе синтаксиса информации смещения.
[0181] Синтаксисы для кодирования и декодирования информация смещения являются идентичными синтаксисам в варианте 1 осуществления, проиллюстрированном на фиг. 17A, фиг. 17B и фиг. 17C.
[0182] Здесь, начальный бит способа sao_type_idx классификации пикселей служит в качестве активации/деактивации, чтобы определять то, выполнять ли обработку смещения, как проиллюстрировано на фиг. 14. Имеется существенная тенденция в отношении вероятности появления символов в начальном бите по сравнению с другими элементами информации смещения. По этой причине, контекстное арифметическое кодирование используется только для начального бита способа sao_type_idx классификации пикселей, а обходное арифметическое кодирование используется для других элементов информации смещения, включающих в себя второй и последующие биты способа sao_type_idx классификации пикселей.
[0183] Фиг. 34 является блок-схемой последовательности операций способа, иллюстрирующей пример кодирования информации смещения на основе комбинации типов арифметического кодирования, проиллюстрированного на фиг. 33, которое выполняется посредством модуля 507 кодирования информации смещения.
[0184] Во-первых, после начала обработки, выполняемой посредством модуля 507 кодирования информации смещения, модуль 5071 управления арифметическим кодированием задает обходное арифметическое кодирование в качестве способа кодирования (S5070).
[0185] Затем, модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S5071). Информация смещения копируется только из области в идентичном срезе и мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до кодирования флага sao_merge_left_flag копирования информации смещения влево.
[0186] В случае если целевая область не размещается в левом конце ("Нет" на этапе S5071), модуль 5073 обходного арифметического кодирования кодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S5072).
[0187] Когда целевая область размещается в левом конце ("Да" на этапе S5071) или после кодирования sao_merge_left_flag (этап S5072), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_left_flag 0 (этап S5073). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0188] Следует отметить, что когда кодирование sao_merge_left_flag (этап S5072) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0189] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S5073), модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S5074). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S5071), вышеописанное определение выполняется до кодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0190] В случае если целевая область не находится в верхнем конце ("Нет" на этапе S5074), модуль 5073 обходного арифметического кодирования кодирует флаг sao_merge_up_flag копирования информации смещения влево (этап S5075).
[0191] Когда целевая область размещается в верхнем конце ("Да" на этапе S5074) или после кодирования sao_merge_up_flag (этап S5075), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_up_flag 0 (этап S5076). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0192] Следует отметить, что когда кодирование sao_merge_up_flag (этап S5075) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0193] Затем, когда sao_merge_up_flag указывает 0 ("Да" на этапе S5076), модуль 5071 управления арифметическим кодированием переключает способ кодирования на контекстное арифметическое кодирование (этап S5077).
[0194] Затем, модуль 5072 управления арифметическим кодированием загружает контекст для binIdx0 способа sao_type_idx классификации пикселей. После этого, модуль 5072 управления контекстным арифметическим кодированием кодирует binIdx0 способа sao_type_idx классификации пикселей (этап S5078).
[0195] Затем, модуль 5071 управления арифметическим кодированием определяет то, указывает ли binIdx0 sao_type_idx 1 (этап S5079). Здесь, он указывает то, что обработка смещения не должна выполняться в отношении целевой области, которая должна быть обработана, когда binIdx0 указывает 0, и он указывает то, что обработка смещения должна выполняться, когда binIdx0 указывает 1.
[0196] Когда binIdx0 указывает 1 ("Да" на этапе S5079), модуль 5071 управления арифметическим кодированием переключает способ кодирования на обходное арифметическое кодирование (этап S5080).
[0197] После этого, модуль 5073 обходного арифметического кодирования кодирует оставшийся способ sao_type_idx классификации пикселей, за исключением binIdx0, и абсолютное значение sao_offset смещения (этап S5081). Здесь, согласно этому варианту осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 5073 обходного арифметического кодирования может кодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0198] Затем, модуль 5071 управления арифметическим кодированием определяет то, является ли способ классификации пикселей смещением полосы (этап S5082). Здесь, модуль 5071 управления арифметическим кодированием использует способ sao_type_idx классификации пикселей для определения.
[0199] В этом примере, смещению полосы выделяется 5 в качестве значения sao_type_idx. По этой причине, модуль 5071 управления арифметическим кодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 5, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx не равен 5.
[0200] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S5082), модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S5083).
[0201] Следует отметить, что в этом варианте осуществления, модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 5073 обходного арифметического кодирования также может кодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения кодируется на этапе S5081.
[0202] Дополнительно в этом случае, на этапе S5081, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и кодированы в качестве значения смещения.
[0203] Фиг. 35 является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения на основе комбинации типов арифметического декодирования, проиллюстрированного на фиг. 33, которое выполняется посредством модуля 606 декодирования информации смещения.
[0204] Во-первых, после начала обработки, выполняемой посредством модуля 606 декодирования информации смещения, модуль 6061 управления арифметическим декодированием задает контекстное арифметическое декодирование в качестве способа декодирования (этап S6060).
[0205] После этого, модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S6061). Информация смещения копируется только из области в идентичном срезе и идентичном мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до декодирования флага sao_merge_left_flag копирования информации смещения влево.
[0206] Когда целевая область не размещается в левом конце ("Нет" на этапе S6061), модуль 6063 обходного арифметического декодирования декодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S6062).
[0207] Когда целевая область размещается в левом конце ("Да" на этапе S6061) или после декодирования sao_merge_left_flag (этап S6062), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_left_flag 0 (этап S6063). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0208] Следует отметить, что когда декодирование sao_merge_left_flag (этап S6062) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0209] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S6063), модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S6064). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S6061), вышеописанное определение выполняется до декодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0210] Когда целевая область не размещается в верхнем конце ("Нет" на этапе S6064), модуль 6063 обходного арифметического декодирования декодирует флаг sao_merge_up_flag копирования информации смещения вверх (этап S6065).
[0211] Когда целевая область размещается в верхнем конце ("Да" на этапе S6064) или после декодирования sao_merge_up_flag (этап S6065), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_up_flag 0 (этап S6066). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0212] Следует отметить, что когда декодирование sao_merge_up_flag (этап S6065) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0213] Затем, когда sao_merge_up_flag указывает 0 ("Да" на этапе S6066), модуль 6061 управления арифметическим декодированием переключает способ декодирования на обходное арифметическое декодирование (этап S6067).
[0214] Затем, модуль 6062 контекстного арифметического декодирования загружает контекст для binIdx способа sao_type_idx классификации пикселей. После этого, модуль 6062 управления контекстным арифметическим декодированием декодирует binIdx0 способа sao_type_idx классификации пикселей (этап S6068).
[0215] Затем, модуль 6061 управления арифметическим декодированием определяет то, указывает ли binIdx0 sao_type_idx 1 (этап S6069). Здесь, он указывает то, что обработка смещения не должна выполняться в отношении целевой области, которая должна быть обработана, когда binIdx0 указывает 0, и он указывает то, что обработка смещения должна выполняться, когда binIdx0 указывает 1.
[0216] Когда binIdx0 указывает 1 ("Да" на этапе S6069), модуль 6061 управления арифметическим декодированием переключает способ декодирования на обходное арифметическое декодирование (этап S6070).
[0217] Затем, модуль 6063 обходного арифметического декодирования декодирует оставшийся способ sao_type_idx классификации пикселей, за исключением binIdx0, и абсолютное значение sao_offset смещения (этап S6071). Здесь, в этом варианте осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 6063 обходного арифметического декодирования может декодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0218] Затем, модуль 6061 управления арифметическим декодированием определяет то, является ли способ классификации пикселей смещением полосы (этап S6072). Здесь, модуль 6061 управления арифметическим декодированием использует способ sao_type_idx классификации пикселей для определения.
[0219] В этом примере, смещению полосы выделяется 5 в качестве значения sao_type_idx. По этой причине, модуль 6061 управления арифметическим декодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 5, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx не равен 5.
[0220] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S6072), модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S6073).
[0221] Следует отметить, что в этом варианте осуществления, модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 6063 обходного арифметического декодирования также может декодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения декодируется на этапе S6071.
[0222] Дополнительно в этом случае, на этапе S6071, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и декодированы в качестве значения смещения.
[0223] Как описано выше, обходное арифметическое кодирование и обходное арифметическое декодирование используются при кодировании и декодировании всей информации смещения, за исключением binIdx0 способа sao_type_idx классификации пикселей. Это исключает необходимость для устройства кодирования изображений и устройств декодирования изображений загружать и обновлять контексты везде. Следовательно, повышается пропускная способность.
[0224] Фиг. 36A иллюстрирует выделение контекстов (индексов контекстов) информации смещения согласно второму примеру этого варианта осуществления и тип арифметического кодирования, используемого в каждом элементе синтаксиса информации смещения.
[0225] В этом примере, начальный бит способа sao_type_idx классификации пикселей кодируется (декодируется) в качестве флага sao_on_flag активации/деактивации обработки смещения в начале информации смещения независимо от способа sao_type_idx классификации пикселей. Синтаксисы для кодирования и декодирования информации смещения являются идентичными синтаксисам в варианте 2 осуществления, проиллюстрированном на фиг. 28A и фиг. 28B.
[0226] Здесь, имеется существенная тенденция в отношении вероятности появления символов во флаге sao_on_flag активации/деактивации обработки смещения по сравнению с другой информацией смещения. По этой причине, контекстное арифметическое кодирование используется только для флага sao_on_flag активации/деактивации обработки смещения. Обходное арифметическое кодирование используется для флага sao_merge_left_flag копирования информации смещения влево, который кодируется (декодируется) после флага sao_on_flag активации/деактивации обработки смещения, и для последующей информации смещения.
[0227] Пропускная способность дополнительно повышается посредством использования обходного арифметического кодирования для флага sao_merge_left_flag копирования информации смещения влево и для последующей информации смещения.
[0228] Здесь, выделение битов флагу sao_on_flag активации/деактивации обработки смещения и способу sao_type_idx классификации пикселей является эквивалентным выделению согласно варианту 2 осуществления, проиллюстрированному на фиг. 26. Тем не менее, способ выделения битов не ограничивается вышеуказанным. В отношении выделения бита способу sao_type_idx классификации пикселей, смещению края (0) может выделяться наименьшее число битов, а смещению полосы может выделяться наибольшее число битов, как проиллюстрировано на фиг. 36B.
[0229] В примере, показанном на фиг. 28B, знак sao_offset_sign ± значения смещения и категория sao_band_position начала кодирования смещения полосы последовательно кодируются (декодируются), чтобы подавлять число условных переходов, соответствующих операторам IF. Тем не менее, порядок кодирования (декодирования) не ограничивается примером, показанным на фиг. 28B.
[0230] Фиг. 36C является таблицей, которая показывает целевую производительность устройства кодирования изображений и устройства декодирования изображений согласно примеру, показанному на фиг. 36C. Фиг. 36C показывает, что имеется несущественное снижение целевой производительности, на основе индекса в NPL 2. Ниже описываются подробности целевой производительности, соответствующей примеру по фиг. 36A.
[0231] Фиг. 37 является блок-схемой последовательности операций способа, иллюстрирующей пример кодирования информации смещения на основе комбинации типов арифметического кодирования, проиллюстрированного на фиг. 36A, которое выполняется посредством модуля 507 кодирования информации смещения.
[0232] Во-первых, после начала обработки посредством модуля 507 кодирования информации смещения, модуль 5071 управления арифметическим кодированием задает контекстное арифметическое кодирование в качестве способа кодирования (этап S5170).
[0233] Затем, модуль 5072 контекстного арифметического кодирования загружает контекст для флага sao_on_flag активации/деактивации обработки смещения и кодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста (этап S5171).
[0234] Затем, модуль 5071 управления арифметическим кодированием определяет то, указывает ли флаг sao_on_flag активации/деактивации обработки смещения 1 (этап S5172). Здесь, он указывает то, что обработка смещения не должна быть выполнена в отношении целевой области, которая должна быть обработана, когда sao_on_flag указывает 0, и он указывает то, что обработка смещения должна быть выполнена в отношении целевой области, когда sao_on_flag указывает 1.
[0235] Когда флаг sao_on_flag активации/деактивации обработки смещения указывает 1 ("Да" на этапе S5172), модуль 5071 управления арифметическим кодированием переключает способ кодирования на обходное арифметическое кодирование (этап S5173). Вследствие этого, обходное арифметическое кодирование используется на всех последующих этапах кодирования.
[0236] После этого, модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S5174). Информация смещения копируется только из области в идентичном срезе и идентичном мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до кодирования флага sao_merge_left_flag копирования информации смещения влево.
[0237] В случае если целевая область не находится в левом конце ("Нет" на этапе S5174), модуль 5073 обходного арифметического кодирования кодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S5175).
[0238] Когда целевая область размещается в левом конце ("Да" на этапе S5174) или после кодирования sao_merge_left_flag (этап S5175), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_left_flag 0 (этап S5176). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0239] Следует отметить, что когда кодирование sao_merge_left_flag (этап S5175) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0240] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S5176), модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S5177). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S5174), вышеописанное определение выполняется до кодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0241] В случае, когда целевая область не находится в верхнем конце ("Нет" на этапе S5177), модуль 5073 обходного арифметического кодирования кодирует флаг sao_merge_up_flag копирования информации смещения вверх (этап S5178).
[0242] Когда целевая область размещается в верхнем конце ("Да" на этапе S5177) или после кодирования sao_merge_up_flag (этап S5178), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_up_flag 0 (этап S5179). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0243] Следует отметить, что когда кодирование sao_merge_up_flag (этап S5178) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0244] Затем, когда sao_merge_up_flag указывает 0 ("Да" на этапе S5179), модуль 5073 обходного арифметического кодирования кодирует способ sao_type_idx классификации пикселей и абсолютное значение sao_offset смещения (этап S5180). Здесь, в этом варианте осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 5073 обходного арифметического кодирования может кодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0245] Затем, модуль 5071 управления арифметическим кодированием определяет то, является ли способ классификации пикселей смещением полосы (этап S5181). Здесь, модуль 5071 управления арифметическим кодированием использует способ sao_type_idx классификации пикселей для определения.
[0246] В этом примере, смещению полосы выделяется 0 в качестве значения sao_type_idx. По этой причине, модуль 5071 управления арифметическим кодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 0, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx отличается от 0.
[0247] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S5181), модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S5182).
[0248] Следует отметить, что в этом варианте осуществления, модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 5073 обходного арифметического кодирования также может кодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения кодируется на этапе S5180.
[0249] Дополнительно в этом случае, на этапе S5180, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и кодированы в качестве значения смещения.
[0250] Фиг. 38 является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения на основе комбинации типов арифметического декодирования, проиллюстрированного на фиг. 36A, которое выполняется посредством модуля 606 декодирования информации смещения.
[0251] Во-первых, после начала обработки, выполняемой посредством модуля 606 декодирования информации смещения, модуль 6061 управления арифметическим декодированием задает контекстное арифметическое декодирование в качестве способа декодирования (этап S6160).
[0252] Затем, модуль 6062 контекстного арифметического декодирования загружает контекст для флага sao_on_flag активации/деактивации обработки смещения и декодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста (этап S6161).
[0253] Затем, модуль 6061 управления арифметическим декодированием определяет то, указывает ли флаг sao_on_flag активации/деактивации обработки смещения 1 (этап S6162). Здесь, когда sao_on_flag 0, он указывает то, что обработка смещения не должна выполняться в отношении целевой области, которая должна быть обработана, а когда sao_on_flag равняется 1, он указывает то, что обработка смещения должна выполняться в отношении целевой области.
[0254] Затем, когда флаг sao_on_flag активации/деактивации обработки смещения указывает 1 ("Да" на этапе S6162), модуль 6061 управления арифметическим декодированием переключает способ декодирования на обходное арифметическое декодирование (этап S6163). Вследствие этого, обходное арифметическое декодирование используется на всех последующих этапах декодирования.
[0255] После этого, модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S6164). Информация смещения копируется только из области в идентичном срезе и идентичном мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до декодирования флага sao_merge_left_flag копирования информации смещения влево.
[0256] Когда целевая область не размещается в левом конце ("Нет" на этапе S6164), модуль 6063 обходного арифметического декодирования декодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S6165).
[0257] Когда целевая область размещается в левом конце ("Да" на этапе S6164) или после декодирования sao_merge_left_flag (этап S6165), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_left_flag 0 (этап S6166). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0258] Следует отметить, что когда декодирование sao_merge_left_flag (этап S6165) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0259] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S6166), модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S6167). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S6164), вышеописанное определение выполняется до декодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0260] Когда целевая область не размещается в верхнем конце ("Нет" на этапе S6167), модуль 6063 обходного арифметического декодирования декодирует флаг sao_merge_up_flag копирования информации смещения вверх (этап S6168).
[0261] Когда целевая область размещается в верхнем конце ("Да" на этапе S6167) или после декодирования sao_merge_up_flag (этап S6168), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_up_flag 0 (этап S6169). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0262] Следует отметить, что когда декодирование sao_merge_up_flag (этап S6168) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0263] Далее, когда sao_merge_up_flag указывает 0 ("Да" на этапе S6169), модуль 6063 обходного арифметического декодирования декодирует способ sao_type_idx классификации пикселей и абсолютное значение sao_offset смещения (этап S6170). Здесь, в этом варианте осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 6063 обходного арифметического декодирования может декодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0264] Затем, модуль 6061 управления арифметическим декодированием определяет то, является ли способ классификации пикселей смещением полосы (этап S6171). Здесь, модуль 6061 управления арифметическим декодированием использует способ sao_type_idx классификации пикселей для определения.
[0265] В этом примере, смещению полосы выделяется 0 в качестве значения sao_type_idx. По этой причине, модуль 6061 управления арифметическим декодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 0, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx отличается от 0.
[0266] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S6171), модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S6172).
[0267] Следует отметить, что согласно этому варианту осуществления, модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 6063 обходного арифметического декодирования также может декодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения декодируется на этапе S6170.
[0268] Дополнительно в этом случае, на этапе S6170, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и декодированы в качестве значения смещения.
[0269] Как описано выше, обходное арифметическое кодирование и обходное арифметическое декодирование используются при кодировании и декодировании всех элементов информации смещения, за исключением флага sao_on_flag активации/деактивации обработки смещения, который размещается первым. Это исключает необходимость для устройства кодирования изображений и устройств декодирования изображений загружать и обновлять контексты везде. Следовательно, повышается пропускная способность.
[0270] Фиг. 36C иллюстрирует результат на основе условий испытания, указываемых в HEVC-стандарте (см. NPL 2), в качестве целевой производительности согласно примеру по фиг. 36A.
[0271] На фиг. 36C, конфигурация указывает условия настройки параметров кодирования. BD-показатель указывает целевой индекс, вычисленный из пикового отношения "сигнал-шум" (PSNR) восстановленного изображения и объема кода кодированного потока. Отрицательный BD-показатель указывает повышение целевой производительности, и положительный BD-показатель указывает снижение целевой производительности. Следует отметить, что BD-показатель на фиг. 36С указывает повышение или снижение целевой производительности согласно примеру фиг. 36A, на основе сравнения с первым вариантом осуществления.
[0272] Как проиллюстрировано на фиг. 36C, BD-показатель попадает в диапазон ±0,1. Это указывает то, что целевая производительность согласно примеру по фиг. 36A является по существу эквивалентной целевой производительности варианта 1 осуществления. Это означает то, что имеется несущественное снижение целевой производительности, и что пропускная способность повышена в примере по фиг. 36A.
[0273] Фиг. 39A иллюстрирует выделение контекстов (индексов контекстов) элементам информации смещения согласно третьему примеру этого варианта осуществления и тип арифметического кодирования, используемого в каждом элементе синтаксиса элементов информации смещения.
[0274] В этом примере, по сравнению с фиг. 36A, контекстное арифметическое кодирование используется для флага sao_merge_left_flag копирования информации смещения влево и флага sao_merge_up_flag копирования информации смещения вверх. Синтаксисы для кодирования и декодирования информации смещения являются идентичными синтаксисам в варианте 2 осуществления, проиллюстрированном на фиг. 28A и фиг. 28B.
[0275] Имеется существенная тенденция в отношении вероятности появления символов в sao_on_flag, sao_merge_left_flag и sao_merge_up_flag, по сравнению с другими элементами информации смещения. По этой причине, контекстное арифметическое кодирование используется только для вышеописанных трех флагов, а обходное арифметическое кодирование используется для способа sao_type_idx классификации пикселей и последующих элементов информации смещения. Вследствие этого, устройство кодирования изображений может кодировать информацию смещения при поддержании эффективности кодирования и пропускной способности сбалансированным способом.
[0276] Для флага sao_on_flag активации/деактивации обработки смещения и способа sao_type_idx классификации пикселей могут выделяться биты, как показано на фиг. 26 или на фиг. 36B.
[0277] В примере, показанном на фиг. 28B, знак sao_offset_sign ± значения смещения и категория sao_band_position начала кодирования смещения полосы последовательно кодируются (декодируются), чтобы подавлять число условных переходов, соответствующих операторам IF. Тем не менее, порядок кодирования (декодирования) не ограничивается примером, показанным на фиг. 28B.
[0278] Помимо этого, в примере по фиг. 39A, контекст используется для флага sao_on_flag активации/деактивации обработки смещения, флага sao_merge_left_flag копирования информации смещения влево и флага sao_merge_up_flag копирования информации смещения вверх. Контекст, используемый для этих флагов, может быть совместно использован сигналом яркости, сигналом Cb цветности и сигналом Cr цветности. Вследствие этого, можно сокращать число контекстов и емкость запоминающего устройства.
[0279] Помимо этого, устройство кодирования изображений может использовать различный контекст для каждого из сигнала яркости, сигнала Cb цветности и сигнала Cr цветности или может совместно использовать идентичный контекст сигналами Cb и Cr цветности. Вследствие этого, устройство кодирования изображений дополнительно может повышать эффективность кодирования по сравнению со случаем, в котором идентичный контекст используется для всех сигналов.
[0280] Фиг. 39B является таблицей, которая показывает целевую производительность устройства кодирования изображений и устройства декодирования изображений согласно примеру, показанному на фиг. 39A. Фиг. 39B показывает, что имеется несущественное снижение целевой производительности, на основе индекса в NPL 2. Ниже описываются подробности целевой производительности, соответствующей примеру по фиг. 39A.
[0281] Фиг. 40 является блок-схемой последовательности операций способа, иллюстрирующей пример кодирования информации смещения на основе комбинации типов арифметического кодирования, проиллюстрированного на фиг. 39A, которое выполняется посредством модуля 507 кодирования информации смещения.
[0282] Во-первых, после начала обработки посредством модуля 507 кодирования информации смещения, модуль 5071 управления арифметическим кодированием задает контекстное арифметическое кодирование в качестве способа кодирования (этап S5270).
[0283] Затем, модуль 5072 контекстного арифметического кодирования загружает контекст для флага sao_on_flag активации/деактивации обработки смещения и кодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста (этап S5271).
[0284] Затем, модуль 5071 управления арифметическим кодированием определяет то, указывает ли флаг sao_on_flag активации/деактивации обработки смещения 1 (этап S5272). Здесь, он указывает то, что обработка смещения не должна быть выполнена в отношении целевой области, которая должна быть обработана, когда sao_on_flag указывает 0, и он указывает то, что обработка смещения должна быть выполнена в отношении целевой области, когда sao_on_flag указывает 1.
[0285] Когда флаг sao_on_flag активации/деактивации обработки смещения указывает 1 ("Да" на этапе S5272), модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S5273). Информация смещения копируется только из области в идентичном срезе и идентичном мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до кодирования флага sao_merge_left_flag копирования информации смещения влево.
[0286] Когда целевая область не размещается в левом конце ("Нет" на этапе S5273), модуль 5072 контекстного арифметического кодирования загружает контекст для флага sao_merge_left_flag копирования информации смещения влево. Затем, модуль 5072 контекстного арифметического кодирования кодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S5274).
[0287] Когда целевая область размещается в левом конце ("Да" на этапе S5273) или после кодирования sao_merge_left_flag (этап S5274), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_left_flag 0 (этап S5275). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0288] Следует отметить, что когда кодирование sao_merge_left_flag (этап S5274) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0289] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S5275), модуль 5071 управления арифметическим кодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S5276). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S5273), вышеописанное определение выполняется до кодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0290] Когда целевая область не размещается в верхнем конце ("Нет" на этапе S5276), модуль 5072 контекстного арифметического кодирования загружает контекст для флага sao_merge_up_flag копирования информации смещения вверх. Затем, модуль 5072 контекстного арифметического кодирования кодирует флаг sao_merge_up_flag копирования информации смещения вверх (этап S5277).
[0291] Когда целевая область размещается в верхнем конце ("Да" на этапе S5276) или после кодирования sao_merge_up_flag (этап S5277), модуль 5071 управления арифметическим кодированием определяет то, равен ли sao_merge_up_flag 0 (этап S5278). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0292] Следует отметить, что когда кодирование sao_merge_up_flag (этап S5277) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 507 кодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0293] Затем, когда sao_merge_up_flag указывает 0 ("Да" на этапе S5278), модуль 5071 управления арифметическим кодированием переключает способ кодирования на обходное арифметическое кодирование (этап S5279). Вследствие этого, обходное арифметическое кодирование используется на всех последующих этапах кодирования.
[0294] Затем, модуль 5073 обходного арифметического кодирования кодирует способ sao_type_idx классификации пикселей и абсолютное значение sao_offset смещения (этап S5280). Здесь, в этом варианте осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 5073 обходного арифметического кодирования может кодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0295] Далее, модуль 5071 управления арифметическим кодированием определяет, является ли способ классификации пикселей смещением полосы (этап S5281). Здесь, модуль 5071 управления арифметическим кодированием использует способ sao_type_idx классификации пикселей для определения.
[0296] В этом примере, смещению полосы выделяется 0 в качестве значения sao_type_idx. По этой причине, модуль 5071 управления арифметическим кодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 0, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx отличается от 0.
[0297] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S5281), модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S5282).
[0298] Следует отметить, что в этом варианте осуществления, модуль 5073 обходного арифметического кодирования кодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 5073 обходного арифметического кодирования также может кодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения кодируется на этапе S5280.
[0299] Дополнительно в этом случае, на этапе S5280, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и кодированы в качестве значения смещения.
[0300] Фиг. 41 является блок-схемой последовательности операций способа, которая показывает пример декодирования информации смещения на основе комбинации типов арифметического декодирования, проиллюстрированного на фиг. 39A, которое выполняется посредством модуля 606 декодирования информации смещения.
[0301] Во-первых, после начала обработки посредством модуля 606 декодирования информации смещения, модуль 6061 управления арифметическим декодированием задает контекстное арифметическое декодирование в качестве способа декодирования (этап S6260).
[0302] Затем, модуль 6062 контекстного арифметического декодирования загружает контекст для флага sao_on_flag активации/деактивации обработки смещения и декодирует флаг sao_on_flag активации/деактивации обработки смещения с использованием контекста (этап S6261).
[0303] Затем, модуль 6061 управления арифметическим декодированием определяет то, указывает ли флаг sao_on_flag активации/деактивации обработки смещения 1 (этап S6262). Здесь, он указывает то, что обработка смещения не должна быть выполнена в отношении целевой области, которая должна быть обработана, когда sao_on_flag указывает 0, и он указывает то, что обработка смещения должна быть выполнена в отношении целевой области, когда sao_on_flag указывает 1.
[0304] Затем, когда sao_on_flag указывает 1 ("Да" на этапе S6262), модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в левом конце среза или мозаичного фрагмента (этап S6263). Информация смещения копируется только из области в идентичном срезе и идентичном мозаичном фрагменте. По этой причине, вышеописанное определение выполняется до декодирования флага sao_merge_left_flag копирования информации смещения влево.
[0305] Когда целевая область не размещается в левом конце ("Нет" на этапе S6263), модуль 6062 контекстного арифметического декодирования загружает контекст для флага sao_merge_left_flag копирования информации смещения влево. Затем, модуль 6062 контекстного арифметического декодирования декодирует флаг sao_merge_left_flag копирования информации смещения влево (этап S6264).
[0306] Когда целевая область размещается в левом конце ("Да" на этапе S6263) или после декодирования sao_merge_left_flag (этап S6264), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_left_flag 0 (этап S6265). Здесь, sao_merge_left_flag, равный 0, указывает то, что информация смещения не копируется из левой области, и sao_merge_left_flag, равный 1, указывает то, что информация смещения копируется из левой области.
[0307] Следует отметить, что когда декодирование sao_merge_left_flag (этап S6264) не выполняется, значение sao_merge_left_flag не существует. В этом случае, значение sao_merge_left_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_left_flag во время начала процесса и задавать начальное значение 0.
[0308] Затем, когда sao_merge_left_flag указывает 0 ("Да" на этапе S6265), модуль 6061 управления арифметическим декодированием определяет то, размещается ли целевая область в верхнем конце среза или мозаичного фрагмента (этап S6266). Поскольку информация смещения копируется только из области в идентичном срезе и в идентичном мозаичном фрагменте, что и согласно определению для левого конца (этап S6263), вышеописанное определение выполняется до декодирования флага sao_merge_up_flag копирования информации смещения вверх.
[0309] Когда целевая область не размещается в верхнем конце ("Нет" на этапе S6266), модуль 6062 контекстного арифметического декодирования загружает контекст для флага sao_merge_up_flag копирования информации смещения вверх. Затем, модуль 6062 контекстного арифметического декодирования декодирует флаг sao_merge_up_flag копирования информации смещения вверх (этап S6267).
[0310] Когда целевая область размещается в верхнем конце ("Да" на этапе S6266) или после декодирования sao_merge_up_flag (этап S6267), модуль 6061 управления арифметическим декодированием определяет то, равен ли sao_merge_up_flag 0 (этап S6268). Здесь, sao_merge_up_flag, равный 0, указывает то, что информация смещения не копируется из верхней области, и sao_merge_up_flag, равный 1, указывает то, что информация смещения копируется из верхней области.
[0311] Следует отметить, что когда декодирование sao_merge_up_flag (этап S6267) не выполняется, значение sao_merge_up_flag не существует. В этом случае, значение sao_merge_up_flag обрабатывается в качестве 0. Помимо этого, модуль 606 декодирования информации смещения может обеспечивать запоминающее устройство для sao_merge_up_flag во время начала процесса и задавать начальное значение 0.
[0312] Затем, когда sao_merge_up_flag указывает 0 ("Да" на этапе S6268), модуль 6061 управления арифметическим декодированием переключает способ декодирования на обходное арифметическое декодирование (этап S6269). Вследствие этого, обходное арифметическое декодирование используется на всех последующих этапах декодирования.
[0313] Затем, модуль 6063 обходного арифметического декодирования декодирует способ sao_type_idx классификации пикселей и абсолютное значение sao_offset смещения (этап S6270). Здесь, в этом варианте осуществления, число абсолютных значений sao_offset смещения составляет четыре в любом из способов классификации пикселей. Тем не менее, модуль 6063 обходного арифметического декодирования может декодировать абсолютные значения смещения, которые отличаются по числу для каждого из способов классификации пикселей.
[0314] Затем, модуль 6061 управления арифметическим декодированием определяет то, является ли способ классификации пикселей смещением полосы (этап S6271). Здесь, модуль 6061 управления арифметическим декодированием использует способ sao_type_idx классификации пикселей для определения.
[0315] В этом примере, смещению полосы выделяется 0 в качестве значения sao_type_idx. По этой причине, модуль 6061 управления арифметическим декодированием определяет то, что способ классификации пикселей является смещением полосы, когда sao_type_idx равен 0, и что способ классификации пикселей не является смещением полосы, когда sao_type_idx отличается от 0.
[0316] Когда способ классификации пикселей является смещением полосы ("Да" на этапе S6271), модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения и категорию sao_band_position начала кодирования смещения полосы (этап S6272).
[0317] Следует отметить, что в этом варианте осуществления, модуль 6063 обходного арифметического декодирования декодирует знак sao_offset_sign ± значения смещения только в случае смещения полосы. Тем не менее, модуль 6063 обходного арифметического декодирования также может декодировать знак sao_offset_sign ± значения смещения в случае смещения края. В этом случае, знак sao_offset_sign ± значения смещения декодируется на этапе S6270.
[0318] Дополнительно в этом случае, на этапе S6270, абсолютное значение sao_offset смещения и знак sao_offset_sign ± значения смещения могут быть интегрированы и декодированы в качестве значения смещения.
[0319] Как описано выше, обходное арифметическое кодирование (декодирование) используется для кодирования (декодирования) всех параметров после трех первых параметров из флага sao_on_flag активации/деактивации обработки смещения, флага sao_merge_left_flag копирования информации смещения влево и флага sao_merge_up_flag копирования информации смещения вверх. Это исключает необходимость для устройства кодирования изображений и устройств декодирования изображений загружать и обновлять контексты везде. Следовательно, повышается пропускная способность.
[0320] Фиг. 39B иллюстрирует результат на основе условий испытания, указываемых в HEVC-стандарте (см. NPL 2) в качестве целевой производительности согласно примеру по фиг. 39A.
[0321] На фиг. 39B, конфигурация указывает условия настройки параметров кодирования. BD-показатель указывает целевой индекс, вычисленный из пикового отношения "сигнал-шум" (PSNR) восстановленного изображения и объема кода кодированного потока. Отрицательный BD-показатель указывает повышение целевой производительности, и положительный BD-показатель указывает снижение целевой производительности. Следует отметить, что BD-показатель на фиг. 39B указывает повышение или снижение целевой производительности согласно примеру по фиг. 39A на основе сравнения с вариантом 1 осуществления.
[0322] Как проиллюстрировано на фиг. 39B, BD-показатель попадает в диапазон ±0,1. Это указывает то, что целевая производительность согласно примеру по фиг. 39A является по существу эквивалентной целевой производительности варианта 1 осуществления. Это означает то, что имеется меньшее снижение целевой производительности, и пропускная способность повышается в примере по фиг. 39A.
[0323] Фиг. 42 является блок-схемой последовательности операций способа, которая показывает пример особенности вышеописанного кодирования. Во-первых, модуль 5072 контекстного арифметического кодирования последовательно кодирует первую информацию и вторую информацию посредством контекстного арифметического кодирования (этап S711). Контекстное арифметическое кодирование является арифметическим кодированием, которое использует переменную вероятность. Первая информация указывает то, выполнять ли для первой области изображения обработку адаптивного к выборке смещения (SAO), которая является обработкой смещения в отношении пиксельного значения. Вторая информация указывает то, использовать ли, при SAO-обработке для первой области, информацию SAO-обработки для области, отличной от первой области.
[0324] Например, согласно примеру, показанному на фиг. 33, модуль контекстного арифметического кодирования 5072 кодирует, в качестве первой информации, значение начального бита в битовой строке параметра, указывающего тип SAO-обработки для первой области.
[0325] Затем, модуль 5073 обходного арифметического кодирования, после того как кодируются первая информация и вторая информация, кодирует другую информацию посредством обходного арифметического кодирования (этап S712). Обходное арифметическое кодирование является арифметическим кодированием, которое использует фиксированную вероятность. Другая информация является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации. Помимо этого, другая информация включает в себя третью информацию, указывающую то, является SAO-обработка для первой области обработкой смещения края или обработкой смещения полосы.
[0326] Например, согласно примеру, показанному на фиг. 33, модуль 5073 обходного арифметического кодирования кодирует, в качестве третьей информации, значение следующего бита после начального бита в битовой строке параметра, указывающего тип SAO-обработки для первой области. Здесь, значение следующего бита после начального бита указывает смещение полосы или смещение края, как в примере по фиг. 25.
[0327] Фиг. 43 является блок-схемой последовательности операций способа, которая показывает пример особенности вышеописанного декодирования. Во-первых, модуль 6062 контекстного арифметического декодирования последовательно декодирует первую информацию и вторую информацию посредством контекстного арифметического декодирования (этап S721). Контекстное арифметическое декодирование является арифметическим декодированием, которое использует переменную вероятность. Первая информация указывает то, выполнять ли для первой области изображения обработку адаптивного к выборке смещения (SAO), которая является обработкой смещения в отношении пиксельного значения. Вторая информация указывает то, использовать ли, при SAO-обработке для первой области, информацию SAO-обработки для области, отличной от первой области.
[0328] Например, согласно примеру, показанному на фиг. 33, модуль 6062 контекстного арифметического декодирования декодирует, в качестве первой информации, значение начального бита в битовой строке параметра, указывающего тип SAO-обработки для первой области, с использованием контекстного арифметического декодирования.
[0329] Затем, модуль 6063 обходного арифметического декодирования, после того как декодируются первая информация и вторая информация, декодирует другую информацию посредством обходного арифметического декодирования (этап S722). Обходное арифметическое декодирование является арифметическим декодированием, которое использует фиксированную вероятность. Другая информация является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации. Помимо этого, другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению.
[0330] Например, согласно примеру, показанному на фиг. 33, модуль 6063 обходного арифметического декодирования декодирует, в качестве третьей информации, значение следующего бита после начального бита в битовой строке параметра, указывающего тип SAO-обработки для первой области. Здесь, значение следующего бита после начального бита указывает смещение полосы или смещение края, как в примере по фиг. 25.
[0331] Следует отметить, что либо первая информация, либо вторая информация может кодироваться первой. Аналогично, либо первая информация, либо вторая информация может декодироваться первой. Тем не менее, можно последовательно обрабатывать первую информацию и третью информацию, которые соответствуют одному параметру, посредством обработки второй информации раньше первой информации.
[0332] Помимо этого, порядок кодирования является порядком, в котором информация записывается в кодированный поток в качестве знака (кода), а порядок декодирования порядок, в котором знак (код) считывается из кодированного потока в качестве информации. Таким образом, порядок кодирования и декодирования, проиллюстрированный выше в отношении нескольких схем, соответствует порядку информации в кодированном потоке. Помимо этого, порядок элементов синтаксиса, проиллюстрированных выше в отношении нескольких схем, соответствует порядку информации в кодированном потоке и порядку кодирования и декодирования.
[0333] Помимо этого, обработка смещения края, более конкретно, выполняется на основе классификации согласно краю. Помимо этого, обработка смещения полосы, более конкретно, выполняется на основе классификации согласно пиксельному значению.
[0334] Помимо этого, устройство кодирования изображений может быть устройством, которое выполняет только процессы, проиллюстрированные на фиг. 42. Аналогично, устройство декодирования изображений может быть устройством, которое выполняет только процессы, проиллюстрированные на фиг. 43. Другие процессы могут быть выполнены посредством других устройств.
[0335] Как описано выше, устройство кодирования изображений согласно этому варианту осуществления допускает кодирование изображения с высокой эффективностью обработки. Помимо этого, устройство декодирования изображений согласно этому варианту осуществления допускает декодирование изображения с высокой эффективностью обработки.
[0336] Каждый из структурных элементов в каждом из вышеописанных вариантов осуществления может быть сконфигурирован в форме полностью аппаратного продукта или может быть реализован посредством исполнения программы, подходящей для структурного элемента. Каждый из структурных элементов может быть реализован посредством модуля исполнения программ, такого как CPU и процессор, считывающий и выполняющий программу, записанную на носителе записи, таком как жесткий диск или полупроводниковое запоминающее устройство.
[0337] Другими словами, устройство кодирования изображений и устройство декодирования изображений включают в себя схему управления и средство хранения, которое электрически соединено со схемой управления (которое является доступным из схемы управления). Схема управления включает в себя по меньшей мере одно из полностью аппаратного продукта и модуля исполнения программ. Помимо этого, когда схема управления включает в себя модуль исполнения программ, средство хранения сохраняет программу, которая выполняется посредством модуля исполнения программ.
[0338] Здесь, программное обеспечение, которое осуществляет устройство кодирования изображений согласно каждому из вышеописанных вариантов осуществления, является программой, как пояснено ниже.
[0339] Другими словами, программа побуждает компьютер выполнять способ кодирования изображений, который включает в себя: выполнение контекстного арифметического кодирования, чтобы последовательно кодировать (i) первую информацию, указывающую то, выполнять ли обработку адаптивного к выборке смещения (этап SAO) для первой области изображения, и (ii) вторую информацию, указывающую то, использовать ли, при SAO-обработке для первой области, информацию относительно SAO-обработки для области, отличной от первой области, причем контекстное арифметическое кодирование является арифметическим кодированием с использованием переменной вероятности, при этом SAO-обработка является обработкой смещения в отношении пиксельного значения; и выполнение обходного арифметического кодирования, чтобы кодировать другую информацию, которая является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации, после того как кодируются первая информация и вторая информация, причем обходное арифметическое кодирование является арифметическим кодированием с использованием фиксированной вероятности, при этом другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению, при выполнении контекстного арифметического кодирования значение начального бита в битовой строке параметра кодируется в качестве первой информации, причем параметр указывает тип SAO-обработки для первой области, а при выполнении обходного арифметического кодирования значение следующего бита после начального бита в битовой строке параметра кодируется в качестве третьей информации.
[0340] Кроме того, программа может побуждать компьютер выполнять способ декодирования изображений, который включает в себя: выполнение контекстного арифметического декодирования, чтобы последовательно декодировать (i) первую информацию, указывающую то, выполнять ли обработку адаптивного к выборке смещения (этап SAO) для первой области изображения, и (ii) вторую информацию, указывающую то, использовать ли, при SAO-обработке для первой области, информацию относительно SAO-обработки для области, отличной от первой области, причем контекстное арифметическое декодирование является арифметическим декодированием с использованием переменной вероятности, при этом SAO-обработка является обработкой смещения в отношении пиксельного значения; и выполнение обходного арифметического декодирования, чтобы декодировать другую информацию, которая является информацией относительно SAO-обработки для первой области и отличается от первой информации или второй информации, после того как декодируются первая информация и вторая информация, причем обходное арифметическое декодирование является арифметическим декодированием с использованием фиксированной вероятности, при этом другая информация включает в себя третью информацию, указывающую то, является ли SAO-обработка для первой области обработкой смещения края, выполняемой согласно обработке смещения края или полосы, выполняемой согласно пиксельному значению, при выполнении контекстного арифметического декодирования значение начального бита в битовой строке параметра декодируется в качестве первой информации, причем параметр указывает тип SAO-обработки для первой области, а при выполнении обходного арифметического декодирования значение следующего бита после начального бита в битовой строке параметра декодируется в качестве третьей информации.
[0341] Помимо этого, каждый из структурных элементов может быть схемой. Схемы могут быть сконфигурированы как одна схема в целом или могут быть взаимно различными схемами. Помимо этого, каждый из структурных элементов может быть реализован как процессор общего назначения или как специализированный процессор.
[0342] Устройство кодирования изображений и т.п. согласно одному или более аспектов описано выше на основе вариантов осуществления. Тем не менее, настоящее изобретение не ограничено этими вариантами осуществления. Специалисты в данной области техники должны легко принимать во внимание, что различные модификации могут выполняться в варианте осуществления, и другие варианты осуществления могут получаться посредством произвольного комбинирования некоторых из структурных элементов различных вариантов осуществления без фактического отступления от принципов и сущности настоящего изобретения.
[0343] Например, когда имеется тенденция в отношении вероятности появления символов информации смещения, за исключением флага активации/деактивации обработки смещения и флага копирования информации смещения, устройство кодирования изображений может кодировать информацию смещения с использованием контекстного арифметического кодирования. Аналогично, устройство декодирования изображений может декодировать информацию смещения с использованием контекстного арифметического декодирования.
[0344] Помимо этого, может предоставляться оптимальное проектирование таким образом, что информация смещения, к которой применяется контекстное арифметическое кодирование (декодирование), и информация смещения, к которой применяется обходное арифметическое кодирование (декодирование), последовательно кодируются (декодируются) в максимально возможной степени.
[0345] Помимо этого, информация, которая указывает то, выполнять ли обработку смещения, может быть спроектирована не в качестве части битовой строки флага sao_on_flag активации/деактивации обработки смещения или способа sao_type_idx классификации пикселей. Даже в таком случае, контекстное арифметическое кодирование может быть использовано только для информации, которая указывает то, выполнять ли обработку смещения.
[0346] Помимо этого, флаг копирования информации смещения может указывать то, копировать ли информацию смещения из смежной области, которая находится в месте, отличном от слева или выше целевой области. Помимо этого, может присутствовать любой один из флага копирования информации смещения влево или флага копирования информации смещения вверх.
[0347] Например, устройство кодирования и декодирования изображений может включать в себя устройство кодирования изображений и устройство декодирования изображений. Помимо этого, процессы, выполняемые посредством конкретного модуля обработки, могут выполняться посредством другого модуля обработки. Кроме того, порядок, в котором выполняются процессы, может быть изменен, или множество процессов может выполняться параллельно. Кроме того, выделенный или общий модуль хранения для сохранения множества информационных элементов может добавляться в конфигурацию.
[0348] Четвертый вариант осуществления
Обработка, описанная в каждом из вариантов осуществления, может быть реализована просто в независимой компьютерной системе, посредством записи, на носителе записи, программы для реализации конфигураций способа кодирования движущихся изображений (способа кодирования изображений) и способа декодирования движущихся изображений (способа декодирования изображений), описанных в каждом из вариантов осуществления. Носители записи могут быть любыми носителями записи при условии, что программа может записываться, такими как магнитный диск, оптический диск, магнитооптический диск, IC-карта и полупроводниковое запоминающее устройство.
[0349] В дальнейшем в этом документе описываются варианты применения к способу кодирования движущихся изображений (способу кодирования изображений) и способу декодирования движущихся изображений (способу декодирования изображений), описанных в каждом из вариантов осуществления, и к системам с их использованием. Система имеет особенность наличия устройства кодирования и декодирования изображений, которое включает в себя устройство кодирования изображений с использованием способа кодирования изображений и устройство декодирования изображений с использованием способа декодирования изображений. Другие конфигурации в системе могут быть изменены надлежащим образом в зависимости от случаев применения.
[0350] Фиг. 44 иллюстрирует общую конфигурацию системы ex100 предоставления контента для реализации услуг распространения контента. Область для предоставления услуг связи разделяется на соты требуемого размера, и базовые станции ex106, ex107, ex108, ex109 и ex110, которые являются стационарными беспроводными станциями, размещаются в каждой из сот.
[0351] Система ex100 предоставления контента подключается к таким устройствам, как компьютер ex111, персональное цифровое устройство (PDA) ex112, камера ex113, сотовый телефон ex114 и игровая машина ex115, через Интернет ex101, поставщика ex102 Интернет-услуг, телефонную сеть ex104, а также базовые станции ex106-ex110, соответственно.
[0352] Тем не менее, конфигурация системы ex100 предоставления контента не ограничена конфигурацией, показанной на фиг. 44, и комбинация, в которой подключаются любые из элементов, является допустимой. Помимо этого, каждое устройство может подключаться к телефонной сети ex104 непосредственно, а не через базовые станции ex106-ex110, которые являются стационарными беспроводными станциями. Кроме того, устройства могут быть подключены друг к другу через беспроводную связь ближнего действия и т.п.
[0353] Камера ex113, такая как цифровая видеокамера, допускает захват видео. Камера ex116, такая как цифровая камера, допускает захват как неподвижных изображений, так и видео. Кроме того, сотовый телефон ex114 может быть телефоном, который удовлетворяет любому из таких стандартов, как глобальная система мобильной связи (GSM) (зарегистрированная торговая марка), множественный доступ с кодовым разделением каналов (CDMA), широкополосный множественный доступ с кодовым разделением каналов (W-CDMA), стандарт долгосрочного развития (LTE) и высокоскоростной пакетный доступ (HSPA). Альтернативно, сотовый телефон ex114 может соответствовать стандарту системы персональных мобильных телефонов (PHS).
[0354] В системе ex100 предоставления контента сервер ex103 потоковой передачи подключается к камере ex113 и т.п. через телефонную сеть ex104 и базовую станцию ex109, которая предоставляет распространение изображений трансляции в прямом эфире и т.п. При таком распределении, контент (например, видео музыкального концерта в прямом эфире), захватываемый пользователем с использованием камеры ex113, кодируется так, как описано выше в каждом из вариантов осуществления (т.е. камера выступает в качестве устройства кодирования изображений согласно аспекту настоящего изобретения), и кодированный контент передается на сервер ex103 потоковой передачи. С другой стороны, сервер ex103 потоковой передачи выполняет потоковое распространение передаваемых данных контента в клиенты при запросах. Клиенты включают в себя компьютер ex111, PDA ex112, камеру ex113, сотовый телефон ex114 и игровую машину ex115, которые допускают декодирование вышеуказанных кодированных данных. Каждое из устройств, которое принимает распределенные данные, декодирует и воспроизводит кодированные данные (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения).
[0355] Захватываемые данные могут кодироваться посредством камеры ex113 или сервера ex103 потоковой передачи, который передает данные, или процессы кодирования могут быть совместно использованы камерой ex113 и сервером ex103 потоковой передачи. Аналогично, распространенные данные могут быть декодированы посредством клиентов или сервера ex103 потоковой передачи, или процессы декодирования могут быть совместно использованы клиентами и сервером ex103 потоковой передачи. Кроме того, данные неподвижных изображений и видео, захватываемых не только посредством камеры ex113, но также и камеры ex116, могут быть переданы на сервер ex103 потоковой передачи через компьютер ex111. Процессы кодирования могут выполняться посредством камеры ex116, компьютера ex111 или сервера ex103 потоковой передачи или совместно использоваться ими.
[0356] Кроме того, процессы кодирования и декодирования могут выполняться посредством LSI ex500, в общем, включенной в каждый из компьютера ex111 и устройств. LSI ex500 может быть сконфигурирована из одного кристалла или множества кристаллов. Программное обеспечение для кодирования и декодирования видео может быть интегрировано в определенный тип носителя записи (такой как CD-ROM, гибкий диск и жесткий диск), который является читаемым посредством компьютера ex111 и т.п., и процессы кодирования и декодирования могут выполняться с использованием программного обеспечения. Кроме того, когда сотовый телефон ex114 содержит камеру, могут передаваться видеоданные, полученные посредством камеры. Видеоданные - это данные, кодированные посредством LSI ex500, включенной в сотовый телефон ex114.
[0357] Кроме того, сервер ex103 потоковой передачи может состоять из серверов и компьютеров и может децентрализовать данные и обрабатывать децентрализованные данные, записывать или распространять данные.
[0358] Как описано выше, клиенты могут принимать и воспроизводить кодированные данные в системе ex100 предоставления контента. Другими словами, клиенты могут принимать и декодировать информацию, передаваемую пользователем, и воспроизводить декодированные данные в режиме реального времени в системе ex100 предоставления контента, так что пользователь, который не имеет конкретных прав и оборудования, может реализовывать персональную широковещательную передачу.
[0359] Помимо примера системы ex100 предоставления контента, по меньшей мере, одно из устройства кодирования движущихся изображений (устройства кодирования изображений) и устройства декодирования движущихся изображений (устройства декодирования изображений), описанных в каждом из вариантов осуществления, может быть реализовано в цифровой широковещательной системе ex200, проиллюстрированной на фиг. 45. Более конкретно, широковещательная станция ex201 сообщает или передает по радиоволнам в широковещательный спутник ex202 мультиплексированные данные, полученные посредством мультиплексирования аудиоданных и т.п. в видеоданные. Видеоданные являются данными, кодированными посредством способа кодирования движущихся изображений, описанного в каждом из вариантов осуществления (т.е. данными, кодированными посредством устройства кодирования изображений согласно аспекту настоящего изобретения). При приеме мультиплексированных видеоданных широковещательный спутник ex202 передает радиоволны для широковещательной передачи. Затем, антенна ex204 для домашнего применения с функцией приема спутниковой широковещательной передачи принимает радиоволны. Далее такое устройство, как телевизионный приемник (приемное устройство) ex300 и абонентская приставка (STB) ex217, декодирует принятые мультиплексированные данные и воспроизводит декодированные данные (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения).
[0360] Кроме того, модуль ex218 считывания/записи (i) считывает и декодирует мультиплексированные данные, записанные на носителе ex215 записи, таком как DVD и BD, или (i) кодирует видеосигналы на носителе ex215 записи, и в некоторых случаях записывает данные, полученные посредством мультиплексирования аудиосигнала, в кодированные данные. Модуль ex218 считывания/записи может включать в себя устройство декодирования движущихся изображений или устройство кодирования движущихся изображений, как показано в каждом из вариантов осуществления. В этом случае, воспроизведенные видеосигналы отображаются на мониторе ex219 и могут быть воспроизведены посредством другого устройства или системы с использованием носителя ex215 записи, на котором записываются мультиплексированные данные. Также можно реализовывать устройство декодирования движущихся изображений в абонентской приставке ex217, подключенной к кабелю ex203 для кабельного телевидения или к антенне ex204 для спутниковой и/или наземной широковещательной передачи, с тем чтобы отображать видеосигналы на мониторе ex219 телевизионного приемника ex300. Устройство декодирования движущихся изображений может быть реализовано не в абонентской приставке, а в телевизионном приемнике ex300.
[0361] Фиг. 46 иллюстрирует телевизионный приемник (приемное устройство) ex300, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в каждом из вариантов осуществления. Телевизионный приемник ex300 включает в себя: тюнер ex301, который получает или предоставляет мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданные, через антенну ex204 или кабель ex203 и т.д., который принимает широковещательную передачу; модуль ex302 модуляции/демодуляции, который демодулирует принятые мультиплексированные данные или модулирует данные в мультиплексированные данные, которые должны подаваться наружу; и модуль ex303 мультиплексирования/демультиплексирования, который демультиплексирует модулированные мультиплексированные данные в видеоданные и аудиоданные или мультиплексирует видеоданные и аудиоданные, кодированные посредством процессора ex306 сигналов, в данные.
[0362] Телевизионный приемник ex300 дополнительно включает в себя: процессор ex306 сигналов, включающий в себя процессор ex304 аудиосигналов и процессор ex305 видеосигналов, которые декодируют аудиоданные и видеоданные и кодируют аудиоданные и видеоданные, соответственно (которые выступают в качестве устройства кодирования изображений и устройства декодирования изображений согласно аспектам настоящего изобретения); и модуль ex309 вывода, включающий в себя динамик ex307, который предоставляет декодированный аудиосигнал, и модуль ex308 отображения, который отображает декодированный видеосигнал, такой как устройство отображения. Кроме того, телевизионный приемник ex300 включает в себя интерфейсный модуль ex317, включающий в себя модуль ex312 функционального ввода, который принимает ввод пользовательской операции. Кроме того, телевизионный приемник ex300 включает в себя модуль ex310 управления, который осуществляет общее управление каждым составляющим элементом телевизионного приемника ex300, и модуль ex311 схемы электропитания, который предоставляет питание в каждый из элементов. Кроме модуля ex312 функционального ввода, интерфейсный модуль ex317 может включать в себя: мост ex313, который подключается к внешнему устройству, такому как модуль ex218 считывания/записи; модуль ex314 гнезда для предоставления возможности присоединения носителя ex216 записи, такого как SD-карта; драйвер ex315 для того, чтобы подключаться к внешнему носителю записи, такому как жесткий диск; и модем ex316 для того, чтобы подключаться к телефонной сети. Здесь, носитель ex216 записи может электрически записывать информацию с использованием элемента энергонезависимого/энергозависимого полупроводникового запоминающего устройства для хранения. Составляющие элементы телевизионного приемника ex300 подключены друг к другу через синхронную шину.
[0363] Во-первых, описывается конфигурация, в которой телевизионный приемник ex300 декодирует мультиплексированные данные, полученные снаружи через антенну ex204 и т.п., и воспроизводит декодированные данные. В телевизионном приемнике ex300, при пользовательской операции через удаленный контроллер ex220 и т.п., модуль ex303 мультиплексирования/ демультиплексирования демультиплексирует мультиплексированные данные, демодулированные посредством модуля ex302 модуляции/демодуляции, под управлением модуля ex310 управления, включающего в себя CPU. Кроме того, процессор ex304 аудиосигналов декодирует демультиплексированные аудиоданные, и процессор ex305 видеосигналов декодирует демультиплексированные видеоданные с использованием способа декодирования, описанного в каждом из вариантов осуществления, в телевизионном приемнике ex300. Модуль ex309 вывода предоставляет декодированный видеосигнал и аудиосигнал наружу, соответственно. Когда модуль ex309 вывода предоставляет видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex318 и ex319 и т.п. так, что сигналы воспроизводятся синхронно друг с другом. Кроме того, телевизионный приемник ex300 может считывать мультиплексированные данные не через широковещательную передачу и т.п., а из носителей ex215 и ex216 записи, таких как магнитный диск, оптический диск и SD-карта. Далее описывается конфигурация, в которой телевизионный приемник ex300 кодирует аудиосигнал и видеосигнал и передает данные наружу или записывает данные на носитель записи. В телевизионном приемнике ex300, при пользовательской операции через удаленный контроллер ex220 и т.п., процессор ex304 аудиосигналов кодирует аудиосигнал, и процессор ex305 видеосигналов кодирует видеосигнал под управлением модуля ex310 управления с использованием способа кодирования, как описано в каждом из вариантов осуществления. Модуль ex303 мультиплексирования/ демультиплексирования мультиплексирует кодированный видеосигнал и аудиосигнал и предоставляет результирующий сигнал наружу. Когда модуль ex303 мультиплексирования/демультиплексирования мультиплексирует видеосигнал и аудиосигнал, сигналы могут временно сохраняться в буферах ex320 и ex321 и т.п. так, что сигналы воспроизводятся синхронно друг с другом. Здесь, буферов ex318, ex319, ex320 и ex321 может быть множество, как проиллюстрировано, или, по меньшей мере, один буфер может быть совместно использован в телевизионном приемнике ex300. Кроме того, данные могут быть сохранены в буфере, так что может не допускаться переполнение и опустошение в системе, например, между модулем ex302 модуляции/демодуляции и модулем ex303 мультиплексирования/демультиплексирования.
[0364] Кроме того, телевизионный приемник ex300 может включать в себя конфигурацию для приема AV-ввода из микрофона или камеры, отличную от конфигурации для получения аудио- и видеоданных из широковещательной передачи или носителя записи, и может кодировать полученные данные. Хотя телевизионный приемник ex300 может кодировать, мультиплексировать и предоставлять наружу данные в описании, он может допускать только прием, декодирование и предоставление наружу данных, а не кодирование, мультиплексирование и предоставление наружу данных.
[0365] Кроме того, когда модуль ex218 считывания/записи считывает или записывает мультиплексированные данные с или на носитель записи, один из телевизионного приемника ex300 и модуля ex218 считывания/записи может декодировать или кодировать мультиплексированные данные, и телевизионный приемник ex300 и модуль ex218 считывания/записи могут совместно использовать декодирование или кодирование.
[0366] В качестве примера, фиг. 47 иллюстрирует конфигурацию модуля ex400 воспроизведения/записи информации, когда данные считываются или записываются с или на оптический диск. Модуль ex400 воспроизведения/записи информации включает в себя составляющие элементы ex401, ex402, ex403, ex404, ex405, ex406 и ex407, которые описаны ниже. Оптическая головка ex401 испускает лазерное пятно на поверхности для записи носителя ex215 записи, который является оптическим диском, чтобы записывать информацию, и обнаруживает отраженный свет от поверхности для записи носителя ex215 записи, чтобы считывать информацию. Модуль ex402 модуляционной записи электрически возбуждает полупроводниковый лазер, включенный в оптическую головку ex401, и модулирует лазерное излучение согласно записанным данным. Модуль ex403 демодуляции при воспроизведении усиливает сигнал воспроизведения, полученный посредством электрического обнаружения отраженного света от поверхности для записи, с использованием фотодетектора, включенного в оптическую головку ex401, и демодулирует сигнал воспроизведения посредством разделения компонента сигнала, записанного на носитель ex215 записи, чтобы воспроизводить необходимую информацию. Буфер ex404 временно хранит информацию, которая должна записываться на носитель ex215 записи, и информацию, воспроизведенную из носителя ex215 записи. Дисковый электромотор ex405 вращает носитель ex215 записи. Модуль ex406 сервоуправления перемещает оптическую головку ex401 в заранее определенную информационную дорожку при одновременном управлении вращательным приводом дискового электромотора ex405, чтобы следовать лазерному пятну. Модуль ex407 управления системой осуществляет общее управление модулем ex400 воспроизведения/записи информации. Процессы считывания и записи могут реализовываться посредством модуля ex407 управления системой с использованием различной информации, хранимой в буфере ex404, и формирования и добавления новой информации по мере необходимости, и посредством модуля ex402 модуляционной записи, модуля ex403 демодуляции при воспроизведении и модуля ex406 сервоуправления, которые записывают и воспроизводят информацию через оптическую головку ex401 при координированном управлении. Модуль ex407 управления системой включает в себя, например, микропроцессор и выполняет обработку посредством побуждения компьютера выполнять программу для считывания и записи.
[0367] Хотя в описании оптическая головка ex401 испускает лазерное пятно, она может выполнять запись с высокой плотностью с использованием света в поле в ближней зоне.
[0368] Фиг. 48 иллюстрирует носитель ex215 записи, который является оптическим диском. На поверхности для записи носителя ex215 записи, направляющие канавки формируются по спирали, и информационная дорожка ex230 записывает, заранее, информацию адреса, указывающую абсолютную позицию на диске, согласно изменению в форме направляющих канавок. Информация адреса включает в себя информацию для определения позиций блоков ex231 записи, которые являются единицей для записи данных. Воспроизведение информационной дорожки ex230 и считывание информации адреса в устройстве, которое записывает и воспроизводит данные, может приводить к определению позиций блоков записи. Кроме того, носитель ex215 записи включает в себя зону ex233 записи данных, зону ex232 внутренней окружности и зону ex234 внешней окружности. Зона ex233 записи данных является зоной для использования при записи пользовательских данных. Зона ex232 внутренней окружности и зона ex234 внешней окружности, которые находятся внутри и снаружи зоны ex233 записи данных, соответственно, предназначены для конкретного применения за исключением записи пользовательских данных. Модуль 400 воспроизведения/записи информации считывает и записывает кодированное аудио, кодированные видеоданные или мультиплексированные данные, полученные посредством мультиплексирования кодированного аудио и кодированных видеоданных, из и в зону ex233 записи данных носителя ex215 записи.
[0369] Хотя оптический диск, имеющий слой, такой как DVD и BD, описывается в качестве примера в описании, оптический диск не ограничен таким образом и может быть оптическим диском, имеющим многослойную структуру и допускающим запись на часть, отличную от поверхности. Кроме того, оптический диск может иметь структуру для многомерной записи/воспроизведения, к примеру, записи информации с использованием света цветов с различными длинами волн в одной части оптического диска и для записи информации, имеющей различные слои, с различных углов.
[0370] Кроме того, автомобиль ex210, имеющий антенну ex205, может принимать данные из спутника ex202 и т.п. и воспроизводить видео на устройстве отображения, таком как автомобильная навигационная система ex211, установленная в автомобиле ex210, в цифровой широковещательной системе ex200. Здесь, конфигурация автомобильной навигационной системы ex211 является конфигурацией, например, включающей в себя приемный GPS-модуль, из конфигурации, проиллюстрированной на фиг. 46. То же применимо для конфигурации компьютера ex111, сотового телефона ex114 и т.п.
[0371] Фиг. 49A иллюстрирует сотовый телефон ex114, который использует способ кодирования движущихся изображений и способ декодирования движущихся изображений, описанные в вариантах осуществления. Сотовый телефон ex114 включает в себя: антенну ex350 для передачи и приема радиоволн через базовую станцию ex110; модуль ex365 камеры, допускающий захват движущихся и неподвижных изображений; и модуль ex358 отображения, к примеру, жидкокристаллическое устройство отображения для отображения данных, таких как декодированное видео, захватываемое посредством модуля ex365 камеры или принимаемое посредством антенны ex350. Сотовый телефон ex114 дополнительно включает в себя: модуль основного корпуса, включающий в себя модуль ex366 функциональных клавиш; модуль ex357 аудиовывода, к примеру, динамик для вывода аудио; модуль ex356 аудиоввода, к примеру, микрофон для ввода аудио; запоминающее устройство ex367 для сохранения захваченного видео или неподвижных изображений, записанного аудио, кодированных или декодированных данных принимаемого видео, неподвижных изображений, почтовых сообщений и т.п.; и модуль ex364 гнезда, который является интерфейсным модулем для носителя записи, который сохраняет данные таким же образом, как запоминающее устройство ex367.
[0372] Далее описывается пример конфигурации сотового телефона ex114 со ссылкой на фиг. 49B. В сотовом телефоне ex114 главный модуль ex360 управления, спроектированный с возможностью полностью управлять каждым модулем основного корпуса, включающим в себя модуль ex358 отображения, а также модуль ex366 функциональных клавиш, взаимно соединяется, через синхронную шину ex370, с модулем ex361 схемы электропитания, модулем ex362 управления функциональным вводом, процессором ex355 видеосигналов, модулем ex363 интерфейса камеры, модулем ex359 управления жидкокристаллическим устройством отображения (ЖК-устройством отображения), модулем ex352 модуляции/демодуляции, модулем ex353 мультиплексирования/демультиплексирования, процессором ex354 аудиосигналов, модулем ex364 гнезда и запоминающим устройством ex367.
[0373] Когда клавиша завершения вызова или клавиша включения питания включается посредством пользовательской операции, модуль ex361 схемы электропитания предоставляет в соответствующие модули питание из аккумуляторной батареи с тем, чтобы активировать сотовый телефон ex114.
[0374] В сотовом телефоне ex114 процессор ex354 аудиосигналов преобразует аудиосигналы, собираемые посредством модуля ex356 аудиоввода в режиме речевой связи, в цифровые аудиосигналы под управлением главного модуля ex360 управления, включающего в себя CPU, ROM и RAM. Затем, модуль ex352 модуляции/демодуляции выполняет обработку с расширенным спектром для цифровых аудиосигналов, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для данных, с тем чтобы передавать результирующие данные через антенну ex350. Так же, в сотовом телефоне ex114, приемо-передающий модуль ex351 усиливает данные, принимаемые посредством антенны ex350 в режиме речевой связи, и выполняет преобразование частоты и аналого-цифровое преобразование для данных. Затем, модуль ex352 модуляции/демодуляции выполняет обработку с обратным расширенным спектром для данных, и процессор ex354 аудиосигналов преобразует их в аналоговые аудиосигналы, с тем чтобы выводить их через модуль ex357 аудиовывода.
[0375] Кроме того, когда передается электронная почта в режиме передачи данных, текстовые данные электронной почты, введенные посредством операций с модулем ex366 функциональных клавиш и т.п. основного корпуса, отправляются в главный модуль ex360 управления через модуль ex362 управления функциональным вводом. Главный модуль ex360 управления побуждает модуль ex352 модуляции/демодуляции выполнять обработку с расширенным спектром для текстовых данных, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для результирующих данных, чтобы передавать данные в базовую станцию ex110 через антенну ex350. Когда принимается почтовое сообщение, обработка, которая является приблизительно обратной относительно обработки для передачи почтового сообщения, выполняется для принимаемых данных, и результирующие данные предоставляются в модуль ex358 отображения.
[0376] Когда передается видео, неподвижные изображения либо видео и аудио в режиме передачи данных, процессор ex355 видеосигналов сжимает и кодирует видеосигналы, предоставляемые из модуля ex365 камеры, с использованием способа кодирования движущихся изображений, показанного в каждом из вариантов осуществления (т.е. выступает в качестве устройства кодирования изображений согласно аспекту настоящего изобретения), и передает кодированные видеоданные в модуль ex353 мультиплексирования/ демультиплексирования. В отличие от этого, в течение времени, когда модуль ex365 камеры захватывает видео, неподвижные изображения и т.п., процессор ex354 аудиосигналов кодирует аудиосигналы, собранные посредством модуля ex356 аудиоввода, и передает кодированные аудиоданные в модуль ex353 мультиплексирования/демультиплексирования.
[0377] Модуль ex353 мультиплексирования/ демультиплексирования мультиплексирует кодированные видеоданные, подаваемые из процессора ex355 видеосигналов, и кодированные аудиоданные, подаваемые из процессора ex354 аудиосигналов, с использованием предварительно определенного способа. Затем, модуль ex352 модуляции/демодуляции (модуль схемы модуляции/демодуляции) выполняет обработку с расширенным спектром для мультиплексированных данных, и приемо-передающий модуль ex351 выполняет цифро-аналоговое преобразование и преобразование частоты для данных с тем, чтобы передавать результирующие данные через антенну ex350.
[0378] При приеме данных видеофайла, который связывается с веб-страницей и т.п., в режиме передачи данных или при приеме почтового сообщения с присоединенным видео и/или аудио, чтобы декодировать мультиплексированные данные, принятые через антенну ex350, модуль ex353 мультиплексирования/демультиплексирования демультиплексирует мультиплексированные данные в поток битов видеоданных и поток битов аудиоданных и предоставляет в процессор ex355 видеосигналов кодированные видеоданные, а в процессор ex354 аудиосигналов кодированные аудиоданные через синхронную шину ex370. Процессор ex355 видеосигналов декодирует видеосигнал с использованием способа декодирования движущихся изображений, соответствующего способу кодирования движущихся изображений, показанному в каждом из вариантов осуществления (т.е. выступает в качестве устройства декодирования изображений согласно аспекту настоящего изобретения), и затем модуль ex358 отображения отображает, например, видеоизображения и неподвижные изображения, включенные в видеофайл, связанный с веб-страницей, через модуль ex359 управления ЖК-устройством отображения. Кроме того, процессор ex354 аудиосигналов декодирует аудиосигнал, и модуль ex357 аудиовывода предоставляет аудио.
[0379] Кроме того, аналогично телевизионному приемнику ex300, терминал, такой как сотовый телефон ex114, вероятно, имеет 3 типа реализованных конфигураций, включающих в себя не только (i) приемо-передающий терминал, включающий в себя как устройство кодирования, так и устройство декодирования, но также и (ii) передающий терминал, включающий в себя только устройство кодирования, и (iii) приемный терминал, включающий в себя только устройство декодирования. Хотя в описании цифровая широковещательная система ex200 принимает и передает мультиплексированные данные, полученные посредством мультиплексирования аудиоданных в видеоданные в описании, мультиплексированные данные могут быть данными, полученными посредством мультиплексирования не аудиоданных, а символьных данных, связанных с видео, в видеоданные, и могут быть не мультиплексированными данными, а самими видеоданными.
[0380] По сути, способ кодирования движущихся изображений и способ декодирования движущихся изображений в каждом из вариантов осуществления могут использоваться в любых из описанных устройств и систем. Таким образом, могут быть получены преимущества, описанные в каждом из вариантов осуществления.
[0381] Кроме того, настоящее изобретение не ограничивается вышеописанными вариантами осуществления, и различные модификации и версии могут быть сделаны в любом из вариантов осуществления в настоящем изобретении без фактического отступления от объема настоящего изобретения.
[0382] Пятый вариант осуществления
Видеоданные могут быть сформированы посредством переключения, по мере необходимости, между (i) способом кодирования движущихся изображений или устройством кодирования движущихся изображений, показанными в каждом из вариантов осуществления, и (ii) способом кодирования движущихся изображений или устройством кодирования движущихся изображений в соответствии с другим стандартом, таким как MPEG-2, MPEG-4 AVC и VC-1.
[0383] Здесь, когда множество видеоданных, которые соответствуют различным стандартам, формируются, а затем декодируются, способы декодирования должны быть выбраны таким образом, что они соответствуют различным стандартам. Тем не менее, поскольку не может быть определено то, какому стандарту каждые из множества из видеоданных, которые должны быть декодированы, соответствуют, надлежащий способ декодирования не может быть выбран.
[0384] С учетом этого, мультиплексированные данные, полученные путем мультиплексирования аудиоданных и других данных в видеоданные, имеют структуру, включающую в себя идентификационную информацию, указывающую то, какому стандарту соответствуют видеоданные. Далее описывается конкретная структура мультиплексированных данных, включающих в себя видеоданные, сформированные в способе кодирования движущихся изображений и посредством устройства кодирования движущихся изображений, показанных в каждом из вариантов осуществления. Мультиплексированные данные являются цифровым потоком в формате транспортных потоков MPEG-2.
[0385] Фиг. 50 иллюстрирует структуру мультиплексированных данных. Как проиллюстрировано на фиг. 51, мультиплексированные данные могут быть получены посредством мультиплексирования, по меньшей мере, одного из видеопотока, аудиопотока, потока презентационной графики (PG) и потока интерактивной графики. Видеопоток представляет первичное видео и вторичное видео фильма, аудиопоток (IG) представляет часть первичного аудио и часть вторичного аудио, которая должна смешиваться с частью первичного аудио, а поток презентационной графики представляет субтитры фильма. Здесь, первичное видео является обычным видео, которое должно отображаться на экране, а вторичное видео является видео, которое должно отображаться в меньшем окне в первичном видео. Кроме того, поток интерактивной графики представляет интерактивный экран, который должен быть сформирован посредством размещения GUI-компонентов на экране. Видеопоток кодируется в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений, показанных в каждом из вариантов осуществления, либо в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений в соответствии с традиционным стандартом, таким как MPEG-2, MPEG-4 AVC и VC-1. Аудиопоток кодируется в соответствии с таким стандартом, как AC-3 Dolby, Dolby Digital Plus, MLP, DTS, DTS-HD и линейная PCM.
[0386] Каждый поток, включенный в мультиплексированные данные, идентифицируется посредством PID. Например, 0x1011 выделяется видеопотоку, который должен быть использован для видео фильма, 0x1100-0x111F выделяются аудиопотокам, 0x1200-0x121F выделяются потокам презентационной графики, 0x1400-0x141F выделяются потокам интерактивной графики, 0x1B00-0x1B1F выделяются видеопотокам, которые должны быть использованы для вторичного видео фильма, и 0x1A00-0x1A1F выделяются аудиопотокам, которые должны быть использованы для вторичного аудио, которое должно смешиваться с первичным аудио.
[0387] Фиг. 51 схематично иллюстрирует то, как мультиплексируются данные. Во-первых, видеопоток ex235, состоящий из видеокадров, и аудиопоток ex238, состоящий из аудиокадров, преобразуются в поток PES-пакетов ex236 и поток PES-пакетов ex239 и дополнительно в TS-пакеты ex237 и TS-пакеты ex240, соответственно. Аналогично, данные потока ex241 презентационной графики и данные потока ex244 интерактивной графики преобразуются в поток PES-пакетов ex242 и поток PES-пакетов ex245 и дополнительно в TS-пакеты ex243 и TS-пакеты ex246, соответственно. Эти TS-пакеты мультиплексируются в поток, чтобы получать мультиплексированные данные ex247.
[0388] Фиг. 52 иллюстрирует то, как видеопоток сохраняется в потоке PES-пакетов. Первая панель на фиг. 52 показывает поток видеокадров в видеопотоке. Вторая панель показывает поток PES-пакетов. Как указано посредством стрелок, обозначенных как yy1, yy2, yy3 и yy4 на фиг. 52, видеопоток разделяется на изображения, такие как I-изображения, B-изображения и P-изображения, каждое из которых является единицей видеопредставления, и изображения сохраняются в рабочих данных каждого из PES-пакетов. Каждый из PES-пакетов имеет PES-заголовок, и PES-заголовок сохраняет временную метку представления (PTS), указывающую время отображения изображения, и временную метку декодирования (DTS), указывающую время декодирования изображения.
[0389] Фиг. 53 иллюстрирует формат TS-пакетов, которые должны быть в итоге записаны в мультиплексированные данные. Каждый из TS-пакетов является 188-байтовым пакетом фиксированной длины, включающим в себя 4-байтовый TS-заголовок, имеющий такую информацию, как PID для идентификации потока, и 184-байтовые рабочие TS-данные для сохранения данных. PES-пакеты разделяются и сохраняются в рабочих данных TS, соответственно. Когда используется BD-ROM, каждому из TS-пакетов присваивается 4-байтовый TP_Extra_Header, тем самым приводя к 192-байтовым исходным пакетам. Исходные пакеты записываются в мультиплексированные данные. TP_Extra_Header хранит такую информацию, как Arrival_Time_Stamp (ATS). ATS показывает время начала передачи, в которое каждый из TS-пакетов должен быть передан в PID-фильтр. Исходные пакеты размещаются в мультиплексированных данных, как показано в нижней части фиг. 53. Номера, увеличивающиеся с заголовка мультиплексированных данных, называются номерами исходных пакетов (SPN).
[0390] Каждый из TS-пакетов, включенных в мультиплексированные данные, включает в себя не только потоки аудио, видео, субтитров и т.п., но также и таблицу ассоциаций программ (PAT), таблицу структуры программ (PMT) и временную отметку программ (PCR). PAT показывает то, что указывает PID в PMT, используемой в мультиплексированных данных, и PID самого PAT регистрируется как нуль. PMT сохраняет PID потоков видео, аудио, субтитров и т.п., включенных в мультиплексированные данные, и информацию атрибутов потоков, соответствующих PID. PMT также имеет различные дескрипторы, связанные с мультиплексированными данными. Дескрипторы имеют такую информацию, как информация управления копированием, показывающая то, разрешено или нет копирование мультиплексированных данных. PCR сохраняет информацию STC-времени, соответствующую ATS, показывающей, когда PCR-пакет передается в декодер, чтобы достигать синхронизации между таймером поступления (ATC), т.е. временной осью ATS, и системным таймером (STC), т.е. временной осью PTS и DTS.
[0391] Фиг. 54 подробно поясняет структуру данных PMT. PMT-заголовок располагается в верхней части PMT. PMT-заголовок описывает длину данных, включенных в PMT, и т.п. Множество дескрипторов, связанных с мультиплексированными данными, располагается после PMT-заголовка. Информация, такая как информация управления копированием, описывается в дескрипторах. После дескрипторов располагается множество фрагментов информации потока, связанных с потоками, включенными в мультиплексированные данные. Каждый фрагмент информации потока включает в себя дескрипторы потоков, каждый из которых описывает такую информацию, как тип потока для идентификации кодека сжатия потока, PID потока и информация атрибутов потока (такая как частота кадров или соотношение сторон). Дескрипторы потоков по числу равны числу потоков в мультиплексированных данных.
[0392] Когда мультиплексированные данные записываются на носителе записи и т.д., они записываются вместе с файлами информации мультиплексированных данных.
[0393] Каждый из файлов информации мультиплексированных данных является управляющей информацией мультиплексированных данных, как показано на фиг. 55. Файлы информации мультиплексированных данных находятся в соответствии "один-к-одному" с мультиплексированными данными, и каждый из файлов включает в себя информацию мультиплексированных данных, информацию атрибутов потока и карту вхождений.
[0394] Как проиллюстрировано на фиг. 55, информация мультиплексированных данных включает в себя системную скорость, время начала воспроизведения и время завершения воспроизведения. Системная скорость указывает максимальную скорость передачи, на которой декодер системных целевых объектов, который должен быть описан ниже, передает мультиплексированные данные в PID-фильтр. Интервалы ATS, включенных в мультиплексированные данные, задаются не больше системной скорости. Время начала воспроизведения указывает PTS в видеокадре в заголовке мультиплексированных данных. Интервал одного кадра добавляется к PTS в видеокадре в конце мультиплексированных данных, и PTS задается равным времени завершения воспроизведения.
[0395] Как показано на фиг. 56, фрагмент информации атрибутов регистрируется в информации атрибутов потока для каждого PID каждого потока, включенного в мультиплексированные данные. Каждый фрагмент информации атрибутов имеет различную информацию в зависимости от того, является соответствующий поток видеопотоком, аудиопотоком, потоком презентационной графики или потоком интерактивной графики. Каждый фрагмент информации атрибутов видеопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия видеопотока, а также разрешение, соотношение сторон и частоту кадров фрагментов данных изображений, которые включаются в видеопоток. Каждый фрагмент информации атрибутов аудиопотока переносит информацию, включающую в себя то, какой кодек сжатия используется для сжатия аудиопотока, сколько каналов включается в аудиопоток, какой язык поддерживает аудиопотока, и насколько высокой является частота дискретизации. Информация атрибутов видеопотока и информация атрибутов аудиопотока используются для инициализации декодера до того, как проигрыватель воспроизводит информацию.
[0396] В настоящем варианте осуществления мультиплексированные данные, которые должны быть использованы, имеют тип потока, включенный в PMT. Кроме того, когда мультиплексированные данные записываются на носителе записи, используется информация атрибутов видеопотока, включенная в информацию мультиплексированных данных. Более конкретно, способ кодирования движущихся изображений или устройство кодирования движущихся изображений, описанные в каждом из вариантов осуществления, включают в себя этап или модуль для выделения уникальных видеоданных, указывающих информацию, сформированную посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений в каждом из вариантов осуществления, для типа потока, включенного в PMT, или информации атрибутов видеопотока. При этой конфигурации, видеоданные, сформированные посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, могут отличаться от видеоданных, которые соответствуют другому стандарту.
[0397] Кроме того, фиг. 57 иллюстрирует этапы способа декодирования движущихся изображений согласно настоящему варианту осуществления. На этапе exS100, тип потока, включенный в PMT или информацию атрибутов видеопотока, включенную в информацию мультиплексированных данных, получается из мультиплексированных данных. Затем, на этапе exS101, определяется то, указывает ли тип потока либо информация атрибутов видеопотока то, что мультиплексированные данные формируются посредством способа кодирования видео или устройства кодирования видео в каждом из вариантов осуществления. Когда определяется то, что тип потока или информация атрибутов видеопотока указывают то, что мультиплексированные данные формируются посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений в каждом из вариантов осуществления, на этапе exS102, декодирование выполняется посредством способа декодирования движущихся изображений в каждом из вариантов осуществления. Кроме того, когда тип потока или информация атрибутов видеопотока указывает соответствие традиционным стандартам, таким как MPEG-2, MPEG-4 AVC и VC-1, на этапе exS103, декодирование выполняется посредством способа декодирования движущихся изображений в соответствии с традиционными стандартами.
[0398] Также, выделение нового уникального значения для типа потока или информации атрибутов видеопотока обеспечивает определение того, могут или нет выполнять декодирование способ декодирования движущихся изображений или устройство декодирования движущихся изображений, которые описываются в каждом из вариантов осуществления. Даже когда вводятся мультиплексированные данные, которые соответствуют различному стандарту, может быть выбран надлежащий способ или устройство декодирования. Таким образом, появляется возможность декодировать информацию без ошибок. Кроме того, способ или устройство кодирования движущихся изображений либо способ или устройство декодирования движущихся изображений в настоящем варианте осуществления могут быть использованы в устройствах и системах, описанных выше.
[0399] Шестой вариант осуществления
Каждый из способа кодирования движущихся изображений, устройства кодирования движущихся изображений, способа декодирования движущихся изображений и устройства декодирования движущихся изображений в каждом из вариантов осуществления типично осуществляется в форме интегральной схемы или большой интегральной (LSI) схемы. В качестве примера LSI, фиг. 58 иллюстрирует конфигурацию LSI ex500, которая состоит из одного кристалла. LSI ex500 включает в себя элементы ex501, ex502, ex503, ex504, ex505, ex506, ex507, ex508 и ex509, которые должны быть описаны ниже, и элементы соединяются друг с другом через шину ex510. Модуль ex505 схемы электропитания активируется посредством предоставления питания в каждый из элементов, когда модуль ex505 схемы электропитания включается.
[0400] Например, когда выполняется кодирование, LSI ex500 принимает AV-сигнал из микрофона ex117, камеры ex113 и т.п. через AV-ввод/вывод ex509 под управлением модуля ex501 управления, включающего в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504 и модуль ex512 управления частотой возбуждения. Принимаемый AV-сигнал временно сохраняется во внешнем запоминающем устройстве ex511, к примеру, SDRAM. Под управлением модуля ex501 управления, сохраненные данные сегментируются на части данных согласно объему и скорости обработки так, что они передаются в процессор ex507 сигналов. Затем, процессор ex507 сигналов кодирует аудиосигнал и/или видеосигнал. Здесь, кодирование видеосигнала является кодированием, описанным в каждом из вариантов осуществления. Кроме того, процессор ex507 сигналов иногда мультиплексирует кодированные аудиоданные и кодированные видеоданные, и потоковый ввод-вывод ex506 предоставляет мультиплексированные данные наружу. Предоставляемый поток битов передается в базовую станцию ex107 или записывается на носителе ex215 записи. Когда наборы данных мультиплексируются, данные должны временно сохраняться в буфере ex508 так, что наборы данных являются синхронизированными друг с другом.
[0401] Хотя запоминающее устройство ex511 является элементом за пределами LSI ex500, оно может быть включено в LSI ex500. Буфер ex508 не ограничен одним буфером, а может состоять из буферов. Кроме того, LSI ex500 может состоять из одного кристалла или множества кристаллов.
[0402] Кроме того, хотя модуль ex501 управления включает в себя CPU ex502, контроллер ex503 запоминающего устройства, потоковый контроллер ex504, модуль ex512 управления частотой возбуждения, конфигурация модуля ex501 управления не ограничена этой. Например, процессор ex507 сигналов дополнительно может включать в себя CPU. Включение другого CPU в процессор ex507 сигналов может повышать скорость обработки. Кроме того, в качестве другого примера, CPU ex502 может выступать в качестве или быть частью процессора ex507 сигналов и, например, может включать в себя процессор аудиосигналов. В таком случае, модуль ex501 управления включает в себя процессор ex507 сигналов или CPU ex502, включающий в себя часть процессора ex507 сигналов.
[0403] Используемым здесь названием является LSI, но она также может называться IC, системной LSI, супер-LSI или ультра-LSI в зависимости от степени интеграции.
[0404] Кроме того, способы достигать интеграции не ограничены LSI, и специальная схема или процессор общего назначения и т.д. также позволяет достигать интеграции. Программируемая пользователем вентильная матрица (FPGA), которая может программироваться после изготовления LSI, или реконфигурируемый процессор, который дает возможность переконфигурирования подключения или конфигурации LSI, может использоваться для аналогичной цели. Такое программируемое логическое устройство может типично выполнять способ кодирования движущихся изображений и/или способ декодирования движущихся изображений согласно любому из вышеописанных вариантов осуществления путем загрузки или считывания из запоминающего устройства и т.п. одной или более программ, которые включаются в программное обеспечение или микропрограммное обеспечение.
[0405] В будущем, с развитием полупроводниковых технологий совершенно новая технология может заменять LSI. Функциональные блоки могут быть интегрированы с использованием этой технологии. Имеется возможность того, что настоящее изобретение применимо к биотехнологии.
[0406] Седьмой вариант осуществления
Когда декодируются видеоданные, сформированные в способе кодирования движущихся изображений или посредством устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, по сравнению с тем, когда декодируются видеоданные, которые соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, объем обработки, вероятно, возрастает. Таким образом, LSI ex500 должна задаваться на частоте возбуждения, превышающей частоту CPU ex502, которая должна быть использована, когда видеоданные декодируются в соответствии с традиционным стандартом. Однако когда частота возбуждения задается более высокой, растет потребление мощности.
[0407] C этой точки зрения, устройство декодирования движущихся изображений, такое как телевизионный приемник ex300 и LSI ex500, выполнено с возможностью определять то, какому стандарту соответствуют видеоданные, и переключаться между частотами возбуждения согласно определенному стандарту. Фиг. 59 иллюстрирует конфигурацию ex800 в настоящем варианте осуществления. Модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной высокой частоте возбуждения, когда видеоданные формируются посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления. Затем, модуль ex803 переключения частоты возбуждения побуждает процессор ex801 декодирования, который осуществляет способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, декодировать видеоданные. Когда видеоданные соответствуют традиционному стандарту, модуль ex803 переключения частоты возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения видеоданных, сформированных посредством способа кодирования движущихся изображений или устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления. Затем, модуль ex803 переключения частоты возбуждения побуждает процессор ex802 декодирования, который соответствует традиционному стандарту, декодировать видеоданные.
[0408] Более конкретно, модуль ex803 переключения частоты возбуждения включает в себя CPU ex502 и модуль ex512 управления частотой возбуждения на фиг. 58. Здесь, каждый из процессора ex801 декодирования, который осуществляет способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и процессора ex802 декодирования, который соответствует традиционному стандарту, соответствует процессору ex507 сигналов на фиг. 58. CPU ex502 определяет то, какому стандарту соответствуют видеоданные. Затем, модуль ex512 управления частотой возбуждения определяет частоту возбуждения на основе сигнала из CPU ex502. Кроме того, процессор ex507 сигналов декодирует видеоданные на основе сигнала из CPU ex502. Например, идентификационная информация, описанная в варианте 5 осуществления, вероятно, используется для идентификации видеоданных. Идентификационная информация не ограничена идентификационной информацией, описанной в варианте 5 осуществления, а может быть любой информацией при условии, что информация указывает то, какому стандарту соответствуют видеоданные. Например, когда то, какому стандарту соответствуют стандартные видеоданные, может быть определено на основе внешнего сигнала для определения того, что видеоданные используются для телевизионного приемника или диска и т.д., определение может выполняться на основе такого внешнего сигнала. Кроме того, CPU ex502 выбирает частоту возбуждения на основе, например, таблицы поиска, в которой стандарты видеоданных ассоциированы с частотами возбуждения, как показано на фиг. 61. Частота возбуждения может быть выбрана посредством сохранения таблицы поиска в буфере ex508 и внутреннем запоминающем устройстве LSI и при обращении к таблице поиска посредством CPU ex502.
[0409] Фиг. 60 иллюстрирует этапы для осуществления способа в настоящем варианте осуществления. Во-первых, на этапе exS200, процессор ex507 сигналов получает идентификационную информацию из мультиплексированных данных. Затем, на этапе exS201, CPU ex502 определяет на основе идентификационной информации то, формируются или нет видеоданные посредством способа кодирования и устройства кодирования, описанных в каждом из вариантов осуществления. Когда видеоданные формируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, на этапе exS202, CPU ex502 передает сигнал для задания частоты возбуждения равной большей частоте возбуждения в модуль ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения задает частоту возбуждения равной большей частоте возбуждения. С другой стороны, когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, на этапе exS203, CPU ex502 передает сигнал для задания частоты возбуждения равной меньшей частоте возбуждения в модуль ex512 управления частотой возбуждения. Затем, модуль ex512 управления частотой возбуждения задает частоту возбуждения равной меньшей частоте возбуждения, чем частота возбуждения в случае, если видеоданные формируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления.
[0410] Кроме того, наряду с переключением частот возбуждения, энергосберегающий эффект может быть повышен посредством изменения напряжения, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500. Например, когда частота возбуждения задается меньшей, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается равным напряжению, меньшему напряжения в случае, если частота возбуждения задается большей.
[0411] Кроме того, когда объем обработки для декодирования больше, частота возбуждения может задаваться большей, а когда объем обработки для декодирования меньше, частота возбуждения может задаваться меньшей в качестве способа для задания частоты возбуждения. Таким образом, способ задания не ограничен способами, описанными выше. Например, когда объем обработки для декодирования видеоданных в соответствии с MPEG-4 AVC превышает объем обработки для декодирования видеоданных, сформированных посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, частота возбуждения, вероятно, задается в обратном порядке относительно задания, описанного выше.
[0412] Кроме того, способ для задания частоты возбуждения не ограничен способом для задания частоты возбуждения меньшей. Например, когда идентификационная информация указывает то, что видеоданные формируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается большим. Когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, напряжение, которое должно прикладываться к LSI ex500 или к устройству, включающему в себя LSI ex500, вероятно, задается меньшим. В качестве другого примера, когда идентификационная информация указывает то, что видеоданные формируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, возбуждение CPU ex502, вероятно, не должно приостанавливаться. Когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1, возбуждение CPU ex502, вероятно, приостанавливается в данное время, поскольку CPU ex502 имеет дополнительную производительность обработки. Даже когда идентификационная информация указывает то, что видеоданные формируются посредством способа кодирования движущихся изображений и устройства кодирования движущихся изображений, описанных в каждом из вариантов осуществления, в случае если CPU ex502 имеет дополнительную производительность обработки, возбуждение CPU ex502, вероятно, приостанавливается в данное время. В таком случае, время приостановки, вероятно, задается меньшим времени приостановки в случае, когда идентификационная информация указывает то, что видеоданные соответствуют традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1.
[0413] Соответственно, энергосберегающий эффект может быть повышен посредством переключения между частотами возбуждения согласно стандарту, которому соответствуют видеоданные. Кроме того, когда LSI ex500 или устройство, включающее в себя LSI ex500, возбуждается с использованием аккумулятора, время работы от аккумулятора может быть продлено за счет энергосберегающего эффекта.
[0414] Восьмой вариант осуществления
Возникают случаи, когда множество видеоданных, которые соответствуют различным стандартам, предоставляются в устройства и системы, такие как телевизионный приемник и сотовый телефон. Чтобы обеспечивать декодирование множества видеоданных, которые соответствуют различным стандартам, процессор ex507 сигналов LSI ex500 должен соответствовать различным стандартам. Тем не менее, увеличение масштаба схемы LSI ex500 и рост затрат возникают при отдельном использовании процессоров ex507 сигналов, которые соответствуют соответствующим стандартам.
[0415] С этой точки зрения, задумана конфигурация, в которой частично совместно используются процессор декодирования для реализации способа декодирования движущихся изображений, описанного в каждом из вариантов осуществления, и процессор декодирования, который соответствует традиционному стандарту, такому как MPEG-2, MPEG-4 AVC и VC-1. Ex900 на фиг. 62A показывает пример конфигурации. Например, способ декодирования движущихся изображений, описанный в каждом из вариантов осуществления, и способ декодирования движущихся изображений, который соответствует MPEG-4 AVC, имеют, частично совместно, сведения по обработке, такой как энтропийное кодирование, обратное квантование, фильтрация для удаления блочности и прогнозирование с компенсацией движения. Сведения по обработке, которая должна совместно использоваться, вероятно, включают в себя использование процессора ex902 декодирования, который соответствует MPEG-4 AVC. В отличие от этого, выделенный процессор ex901 декодирования, вероятно, используется для другой обработки, которая является уникальной для аспекта настоящего изобретения и не удовлетворяет MPEG-4 AVC. Поскольку аспект настоящего изобретения отличается посредством энтропийного декодирования, в частности, например, выделенный процессор ex901 декодирования используется для энтропийного декодирования. В противном случае, процессор декодирования, вероятно, совместно используется для одного из обратного квантования, фильтрации для удаления блочности и компенсации движения или всей обработки. Процессор декодирования для реализации способа декодирования движущихся изображений, описанного в каждом из вариантов осуществления, может быть совместно использован для обработки, которая должна совместно использоваться, и выделенный процессор декодирования может использоваться для обработки, уникальной для MPEG-4 AVC.
[0416] Кроме того, ex1000 на фиг. 62B показывает другой пример, в котором обработка совместно используется частично. Этот пример использует конфигурацию, включающую в себя выделенный процессор ex1001 декодирования, который поддерживает обработку, уникальную для аспекта настоящего изобретения, выделенный процессор ex1002 декодирования, который поддерживает обработку, уникальную для другого традиционного стандарта, и процессор ex1003 декодирования, который поддерживает обработку, которая должна совместно использоваться способом декодирования движущихся изображений согласно аспекту настоящего изобретения и традиционным способом декодирования движущихся изображений. Здесь, выделенные процессоры ex1001 и ex1002 декодирования не обязательно являются специализированными для обработки согласно аспекту настоящего изобретения и обработки по традиционному стандарту, соответственно, и могут быть процессорами, допускающими реализацию общей обработки. Кроме того, конфигурация настоящего варианта осуществления может быть реализована посредством LSI ex500.
[0417] Так же, уменьшение масштаба схемы LSI и сокращение затрат возможно за счет совместного использования процессора декодирования для обработки, которая должна совместно использоваться способом декодирования движущихся изображений согласно аспекту настоящего изобретения и способом декодирования движущихся изображений в соответствии с традиционным стандартом.
Промышленная применимость
[0418] Способ кодирования изображений и способ декодирования изображений согласно настоящему изобретению обеспечивают преимущества предотвращения ухудшения качества изображений и повышения эффективности обработки и являются применимыми для множества назначений, таких как накопление, передача и обмен изображениями. Способ кодирования изображений и способ декодирования изображений согласно настоящему изобретению могут использоваться, например, для устройства отображения или устройства захвата информации высокого разрешения, такого как телевизионный приемник, цифровое записывающее видеоустройство, автомобильная навигационная система, сотовый телефон, цифровая камера, цифровая видеокамера и т.д., и являются полезными.
Список номеров ссылок
[0419] 100 - устройство кодирования изображений
110, 210, 306, 405 - модуль управления
120 - модуль кодирования
121 - модуль вычитания
122 - модуль преобразования частоты
123 - модуль квантования
124 - модуль энтропийного кодирования
125, 225 - модуль обратного квантования
126, 226 - модуль обратного преобразования частоты
127 227 - сумматор
128, 228, 300, 400 - модуль фильтрации контуров
129, 229 - модуль хранения
130, 230 - модуль внутреннего прогнозирования
131, 231 - модуль компенсации движения
132 - модуль оценки движения
133, 233 - переключатель
141, 241 - изображение
142, 242 - кодированный поток
151, 251, 301, 401 - модуль получения сигналов
152, 302 - модуль вычисления информации смещения
153, 253, 303, 403 - процессор смещения
154, 305, 507 - модуль кодирования информации смещения
155, 254, 304, 404 - модуль вывода сигналов
200 - устройство декодирования изображений
220 - модуль декодирования
224 - модуль энтропийного декодирования
252, 402, 606 - модуль декодирования информации смещения
5071 - модуль управления арифметическим кодированием
5072 - модуль контекстного арифметического кодирования
5073 - модуль обходного арифметического кодирования
6061 - модуль управления арифметическим декодированием
6062 - модуль контекстного арифметического декодирования
6063 - модуль обходного арифметического декодирования