Устройство кодирования изображения, способ кодирования изображения и программа и устройство декодирования изображения, способ декодирования изображения и программа
Иллюстрации
Показать всеНастоящее изобретение относится к средствам кодирования без потерь. Технический результат заключается в увеличении эффективности сжатия при кодировании изображения за счет выбора режима кодирвоания. Способ кодирования изображения содержит этапы: выполнения первого кодирования, выполняющего ортогональное преобразование и квантование; и выполнения второго кодирования, выполняемого посредством использования любого из режима интра-предсказания для выполнения интра-предсказания с использованием пикселя, находящегося за пределами блока, подлежащего кодированию, и режима DPCM для выполнения обработки дифференциальной импульсно-кодовой модуляции (DPCM) на основе пиксель-за-пикселем, при этом способ кодирования изображения дополнительно содержит этап кодирования информации для указания того, выполняется ли декодирование, соответствующее второму кодированию, с использованием режима интра-предсказания или с использованием режима DPCM. 6 н. и 13 з.п. ф-лы, 14 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
[0001] Настоящее изобретение относится к устройству кодирования изображения, способу кодирования изображения, и программе, в частности, к процессу интра-предсказания, выполняемому над блоком кодирования без потерь.
УРОВЕНЬ ТЕХНИКИ ИЗОБРЕТЕНИЯ
[0002] Система, H.264/MPEG-4 AVC (далее, кратко H.264) известна в качестве системы кодирования для сжатия и записи фильма (смотри NPL 1).
[0003] В H.264, кодирование без потерь может быть выполнено посредством выполнения процесса обхода преобразования, при котором осуществляется обход ортогонального преобразования и квантования. В частности, кодирование без потерь обладает характеристикой, при которой, когда интра-предсказание выполняется в горизонтальном или вертикальном направлении, выполняется кодирование с дифференциальной импульсно-кодовой модуляцией (DPCM). При кодировании с DPCM, вместо нормального предсказания, выполняемого на основе кодированных пикселей вокруг целевого пикселя, предсказание выполняется на основе пиксель-за-пикселем в блоке.
[0004] В последнее время, были запущены мероприятия, направленные на реализацию международного стандарта для более высокоэффективной системы кодирования, как приемника H.264. Международной Организацией по Стандартизации (ISO)/Международной Электротехнической Комиссией (IEC) и Сектором Стандартизации Телекоммуникаций Международного Союза Электросвязи (ITU-T) была основана Объединенная Рабочая Группа по Кодированию Видео (JCT-VC). В JCT-VC, был достигнут прогресс по стандартизации, который дал результатом систему высокоэффективного кодирования видео (HEVC) (далее именуемую как HEVC).
[0005] Первая версия стандартизации, которая рассматривается в качестве базового технического описания в HEVC, была завершена в январе 2013 г. Подобно H.264, первая версия HEVC использует кодирование без потерь, при котором осуществляется обход ортогонального преобразования и квантования. Тем не менее, первая версия HEVC обладает характеристикой, при которой, аналогично типичному кодированию с потерями, интра-предсказание выполняется на основе блок-за-блоком (смотри NPL 2).
[0006] В HEVC, с точки зрения совместимости с кодированием с потерями, интра-предсказание на основе блок-за-блоком, которое подобно тому, что используется в кодировании с потерями, используется в кодировании без потерь. Тем не менее, в целом, считается, что кодирование с DPCM на основе пиксель-за-пикселем, которое также используется в H.264, обладает более высокой эффективностью сжатия при кодировании без потерь. Вследствие этого, возникает проблема, состоящая в том, что эффективность сжатия кодирования без потерь в HEVC не является достаточно высокой.
СПИСОК ЦИТИРОВАНИЯ
НЕПАТЕНТНАЯ ЛИТЕРАТУРА
[0007] NPL 1: ITU-T H.264 (01/2012) Advanced Video Coding for Generic Audiovisual Services
NPL 2: Contributed Article by the JCT-VC, JCTVC-L1003,
http://phenix.int-evry.fr/jct/doc_end_user/documents/ 12_Geneva/ wg11/
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0008] Вследствие этого, настоящее изобретение выполнено с тем, чтобы обеспечить переключение между процессом кодирования без потерь, который отдает приоритет совместимости с процессом кодирования с потерями, и процессом кодирования без потерь, который отдает приоритет эффективности сжатия.
[0009] В качестве единицы решения описанной выше проблемы, типичное устройство кодирования изображения настоящего изобретения обладает следующей конфигурацией. А именно, устройство кодирования изображения, которое кодирует изображение на основе блок-за-блоком, включает в себя первый модуль кодирования и второй модуль кодирования. Первый модуль кодирования выполняет необратимое кодирование со сжатием над принятым первым блоком. Второй модуль кодирования выполняет обратимое кодирование со сжатием над принятым вторым блоком. Второй модуль кодирования кодирует второй блок посредством использования любого из первого режима интра-предсказания для выполнения интра-предсказания на основе блок-за-блоком и второго режима интра-предсказания для выполнения интра-предсказания на основе пиксель-за-пикселем.
[0010] В дополнение, типичное устройство декодирования изображения настоящего изобретения имеет следующую конфигурацию. Т.е., устройство декодирования изображения, которое декодирует кодированное изображение на основе блок-за-блоком, включает в себя первый модуль декодирования и второй модуль декодирования. Первый модуль декодирования декодирует первый блок, который был подвергнут необратимому кодированию со сжатием. Второй модуль декодирования декодирует второй блок, который был подвергнут обратимому кодированию со сжатием. Второй модуль декодирования декодирует второй блок посредством использования любого из первого режима интра-предсказания для выполнения интра-предсказания на основе блок-за-блоком и второго режима интра-предсказания для выполнения интра-предсказания на основе пиксель-за-пикселем.
[0011] Кроме того, признаки настоящего изобретения станут очевидны из нижеследующего описания примерных вариантов осуществления со ссылкой на приложенные чертежи.
[0012] Настоящее изобретение достигает кодирования и декодирования, которые поддерживают как процесс кодирования без потерь, который отдает приоритет совместимости с процессом кодирования с потерями, так и процесс кодирования без потерь, который отдает приоритет эффективности сжатия. Как результат, между этими процессами кодирования без потерь переключение может быть выполнено в соответствии с требованием для приложения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0013] [фиг.1]Фиг. 1 является структурной схемой, иллюстрирующей конфигурацию устройства кодирования изображения в соответствии с первым вариантом осуществления.
[фиг.2]Фиг. 2 является структурной схемой, иллюстрирующей конфигурацию устройства декодирования изображения в соответствии со вторым вариантом осуществления.
[фиг.3A]Фиг. 3A является схемой, иллюстрирующей примерный процесс интра-предсказания, выполняемый над блоком кодирования без потерь.
[фиг.3B]Фиг. 3B является схемой, иллюстрирующей примерный процесс интра-предсказания, выполняемый над блоком кодирования без потерь.
[фиг.3C]Фиг. 3C является схемой, иллюстрирующей примерный процесс интра-предсказания, выполняемый над блоком кодирования без потерь.
[фиг.3D]Фиг. 3D является схемой, иллюстрирующей примерный процесс интра-предсказания, выполняемый над блоком кодирования без потерь.
[фиг.3E]Фиг. 3E является схемой, иллюстрирующей примерный процесс интра-предсказания, выполняемый над блоком кодирования без потерь.
[фиг.4]Фиг. 4 является блок-схемой процесса кодирования изображения, выполняемого устройством кодирования изображения в соответствии с первым вариантом осуществления.
[фиг.5]Фиг. 5 является блок-схемой процесса декодирования изображения, выполняемого устройством декодирования изображения в соответствии со вторым вариантом осуществления.
[фиг.6A]Фиг. 6A является схемой, иллюстрирующей примерную структуру битового потока, которая генерируется в первом варианте осуществления и которая должна быть декодирована во втором варианте осуществления.
[фиг.6B]Фиг. 6B является схемой, иллюстрирующей примерную структуру битового потока, которая генерируется в первом варианте осуществления и которая должна быть декодирована во втором варианте осуществления.
[фиг.7]Фиг. 7 является схемой, иллюстрирующей направления режимов интра-предсказания в HEVC.
[фиг.8]Фиг. 8 является структурной схемой, иллюстрирующей примерную конфигурацию аппаратного обеспечения компьютера, которая может быть применена к устройству кодирования изображения и устройству декодирования изображения в настоящем изобретении.
ОПИСАНИЕ ВАРИАНТОВ ОСУЩЕСТВЛЕНИЯ
[0014] Настоящее изобретение будет подробно описано на основе вариантов осуществления со ссылкой на приложенные чертежи. Конфигурации в вариантах осуществления, описываемых ниже, являются лишь примерами, и настоящее изобретение не ограничивается иллюстрируемыми конфигурациями.
ПЕРВЫЙ ВАРИАНТ ОСУЩЕСТВЛЕНИЯ
[0015] Первый вариант осуществления настоящего изобретения будет описан ниже посредством использования чертежей. Фиг. 1 является структурной схемой, иллюстрирующей устройство кодирования изображения в соответствии с первым вариантом осуществления. На Фиг. 1, контактный зажим 101 является контактным зажимом для ввода данных изображения. Модуль 102 определения кодирования без потерь вырезает несколько блоков из принятых данных изображения, и определяет, должно ли быть выполнено обратимое кодирование со сжатием (далее именуемое кодированием без потерь) или необратимое кодирование со сжатием (далее кодирование с потерями) над каждым из блоков. Модуль 103 генерирования информации-управления-без-потерь генерирует и выводит информацию управления без потерь, указывающую на то, какой вид процесса интра-предсказания должен быть выполнен над блоком кодирования без потерь, который должен быть подвергнут кодированию без потерь.
[0016] Первый модуль 104 предсказания выполняет, например, интра-предсказание, которое является внутрикадровым предсказанием, и интер-предсказание, которое является межкадровым предсказанием, над каждым из блоков данных изображения, когда выбирается кодирование с потерями, и генерирует предсказанные данные изображения. Первый модуль 104 предсказания дополнительно вычисляет ошибки предсказания из принятых данных изображения и предсказанных данных изображения, и выводит ошибки предсказания. В дополнение к этому, выводится информация, требуемая для предсказания, например, информация касательно режима предсказания. Далее, информация, требуемая для предсказания, именуется первой информацией предсказания.
[0017] Когда выбирается кодирование с потерями, модуль 105 преобразования/квантования выполняет ортогональное преобразование над ошибками предсказания на основе блок-за-блоком, чтобы получить преобразованные коэффициенты, и дополнительно квантует преобразованные коэффициенты, чтобы получить квантованные коэффициенты. Когда выбирается кодирование с потерями, модуль 106 обратного-квантования/обратного-преобразования выполняет обратное квантование над квантованными коэффициентами, которые выводятся из модуля 105 преобразования/квантования, с тем, чтобы воспроизвести преобразованные коэффициенты, и дополнительно выполняет обратное ортогональное преобразование над преобразованными коэффициентами с тем, чтобы воспроизвести ошибки предсказания. Память 108 кадра хранит воспроизведенные данные изображения.
[0018] Когда выбирается кодирование с потерями, первый модуль 107 воспроизведения изображения генерирует предсказанные данные изображения посредством обращения к памяти 108 кадра при необходимости, на основе первой информации предсказания, которая выводится из первого модуля 104 предсказания, генерирует воспроизведенные данные изображения из предсказанных данных изображения и принятых ошибок предсказания, и выводит воспроизведенные данные изображения.
[0019] Когда выбирается кодирование без потерь, второй модуль 109 предсказания выполняет интра-предсказание, интер-предсказание, и подобное над каждым из блоков данных изображения с тем, чтобы сгенерировать предсказанные данные изображения. Подобно первому модулю 104 предсказания, второй модуль 109 предсказания вычисляет ошибки предсказания из принятых данных изображения и предсказанных данных изображения, и выводит информацию, требуемую для предсказания, такую как режим предсказания, как впрочем и ошибки предсказания. Далее, информация, требуемая для предсказания, именуется второй информацией предсказания.
[0020] Селектор 110 выводит принятое изображение, которое выводится из модуля 102 определения кодирования без потерь, или воспроизведенное изображение, которое выводится из первого модуля 107 воспроизведения изображения, в память 108 кадра на основе информации блока кодирования без потерь, которая описывается ниже, и которая выводится из модуля 102 определения кодирования без потерь.
[0021] Первый модуль 111 кодирования кодирует квантованные коэффициенты, которые выводятся из модуля 105 преобразования/квантования, и первую информацию предсказания, которая выводится из первого модуля 104 предсказания, с тем, чтобы сгенерировать и вывести первые кодированные данные.
[0022] Второй модуль 112 кодирования кодирует вторую информацию предсказания и ошибки предсказания, которые выводятся из второго модуля 109 предсказания, с тем, чтобы сгенерировать и вывести вторые кодированные данные.
[0023] Модуль 113 интегрированного-кодирования кодирует выводы из модуля 102 определения кодирования без потерь и модуля 103 генерирования информации-управления-без-потерь с тем, чтобы сгенерировать кодированные данные заголовка. Модуль 113 интегрированного-кодирования затем добавляет кодированные данные, который выводятся из первого модуля 111 кодирования и второго модуля 112 кодирования, с тем, чтобы сгенерировать и вывести битовый поток.
[0024] Контактный зажим 114 является контактным зажимом для вывода битового потока, сгенерированного посредством модуля 113 интегрированного-кодирования, во вне.
[0025] Операция кодирования изображения, выполняемая посредством описанного выше устройства кодирования изображения, будет описана ниже. В первом варианте осуществления, данные фильма вводятся на основе кадр-за-кадром, однако могут быть введены статические данные изображения одного кадра.
[0026] Данные изображения одного кадра, которые вводятся через контактный зажим 101, принимаются посредством модуля 102 определения кодирования без потерь. Перед процессом кодирования, модуль 103 генерирования информации-управления-без-потерь определяет, какой вид процесса интра-предсказания должен быть выполнен над пикселями в блоке кодирования без потерь. Модуль 103 генерирования информации-управления-без-потерь выводит информацию определения в качестве информации управления без потерь на второй модуль 109 предсказания и модуль 113 интегрированного-кодирования.
[0027] Чтобы сделать описание простым, Фиг. с 3A по 3E иллюстрируют примерное интра-предсказание. Фиг. 3A иллюстрирует блок 300 над которым выполняется интра-предсказание. Примеры на Фиг. с 3A по 3E используют блок из 4×4 пикселей, однако размер и форма не ограничиваются этим. Пиксели с a по p, которые формируют 4×4 пиксели, включены в блок 300. Фиг. 3B является схемой, иллюстрирующей то, каким образом выполнять горизонтально интра-предсказание на основе блок-за-блоком, и горизонтальное предсказание выполняется, начиная с группы 302 пикселей (с H0 по H3), которая располагаются слева и которая является смежной с блоком 300. Такое предсказание именуется основанным на блоке горизонтальным режимом предсказания. Фиг. 3C является схемой, иллюстрирующей то, каким образом выполнять вертикальное интра-предсказание на основе блок-за-блоком, и вертикальное предсказание выполняется, начиная с группы 301 пикселей (с V0 по V3), которая располагается на верхней стороне и которая является смежной с блоком 300. Такое предсказание именуется основанным на блоке вертикальным режимом предсказания. Фиг. 3D является схемой, иллюстрирующей то, каким образом выполнять горизонтальное предсказание с DPCM на основе пиксель-за-пикселем, и горизонтальное предсказание выполняется, начиная с пикселя, который является смежным по левой стороне с каждым из пикселей. Такое предсказание именуется основанным на пикселе горизонтальным режимом DPCM. В первом варианте осуществления, значение пикселя каждого из писклей, расположенных по левому краю в целевом блоке, кодируется как есть, однако настоящее изобретение этим не ограничивается. Может быть закодирована разница между значением пикселя каждого из пикселей, расположенных по левому краю в целевом блоке, и значением пикселя соответствующего одного из пикселей, расположенных по правому краю в блоке, расположенном по левую сторону целевого блока. Фиг. 3E является схемой, иллюстрирующей то, каким образом выполнять вертикальное предсказание с DPCM на основе пиксель-за-пикселем, и вертикальное предсказание выполняется начиная с пикселя, который является смежным с верхней стороной каждого из пикселей. Такое предсказание именуется основанным на пикселе вертикальным режимом DPCM. Аналогично основанному на пикселе горизонтальному режиму DPCM, в первом варианте осуществления, значение пикселя каждого из пикселей, расположенных по верхнему краю в целевом блоке, кодируется как есть, однако настоящее изобретение этим не ограничивается. Может быть закодирована разность между значением пикселя каждого из пикселей, расположенных по верхнему краю в целевом блоке, и значением пикселя соответствующего одного из пикселей, расположенных по нижнему краю блока, расположенного на верхней стороне целевого блока.
[0028] В первом варианте осуществления, описанная выше информация управления без потерь указывает на то, используется ли основанный на блоке режим интра-предсказания (Фиг. 3B или 3C) или основанный на пикселе режим интра-предсказания (Фиг. 3D или 3E) для пикселей в блоке кодирования без потерь. В частности, когда информация управления без потерь имеет значение 0, используется основанное на блоке предсказание Фиг. 3B или 3C. Когда информация управления без потерь имеет значение 1, используется основанное на пикселе предсказание Фиг. 3D или 3E.
[0029] То, каким образом определять информацию управления без потерь, в частности этим не ограничивается, и определение может быть выполнено посредством использования характеристик входного изображения или посредством использования ввода пользователя. В качестве альтернативы, определение может быть выполнено на основе процесса интра-предсказания, поддерживаемого устройством декодирования изображения, которое декодирует битовый поток, который выводится из устройства кодирования изображения. Модуль 113 интегрированного-кодирования кодирует информацию управления без потерь и генерирует код информации-управления-без-потерь (первый код информации). Метод кодирования в частности не указывается, и может быть использовано кодирование Голомба, арифметическое кодирование, кодирование Хаффмана, или подобное.
[0030] Модуль 102 определения кодирования без потерь режет принятые данные изображения на несколько блоков, и определяет, должно ли быть выполнено кодирование без потерь или кодирование с потерями для каждого из блоков. Метод определения этим не ограничивается, и определение может быть выполнено посредством использования характеристик входного изображения или посредством использования ввода пользователя. Информация, указывающая на то, должно ли быть выполнено кодирование без потерь или кодирование с потерями над блоком, который должен быть закодирован, выводится в качестве информации блока кодирования без потерь на модуль 113 интегрированного-кодирования. Модуль 102 определения кодирования без потерь дополнительно выводит принятые данные изображения, как есть, на первый модуль 104 предсказания, второй модуль 109 предсказания, и селектор 110.
[0031] В дополнение, модуль 102 определения кодирования без потерь генерирует информацию кодирования без потерь, которая является информацией, указывающей на то, включен или нет блок, подвергнутый кодированию без потерь, в кадр или последовательность, которая должна быть обработана. Модуль 113 интегрированного-кодирования кодирует информацию кодирования без потерь и генерирует код информации-кодирования-без-потерь (второй код информации). Метод кодирования в частности не указывается, и может быть использовано кодирование Голомба, арифметическое кодирование, кодирование Хаффмана, или подобное.
[0032] Процесс кодирования после этого разбивается в соответствии с тем, выбирает ли модуль 102 определения кодирования без потерь кодирование без потерь или кодирование с потерями. Будет описана операция кодирования данных изображения, когда модуль 102 определения кодирования без потерь выбирает кодирование с потерями.
[0033] Модуль 102 определения кодирования без потерь вводит данные изображения блока, который должен быть закодирован, в первый модуль 104 предсказания. Первый модуль 104 предсказания выполняет предсказание на основе блок-за-блоком, генерирует ошибки предсказания, и выводит ошибки предсказания на модуль 105 преобразования/квантования. В дополнение, первый модуль 104 предсказания генерирует первую информацию предсказания, и выводит первую информацию предсказания на первый модуль 111 кодирования и первый модуль 107 воспроизведения изображения. Модуль 105 преобразования/квантования выполняет ортогональное преобразование/квантование над принятыми ошибками предсказания, и генерирует квантованные коэффициенты. Сгенерированные квантованные коэффициенты выводятся на первый модуль 111 кодирования и модуль 106 обратного-квантования/обратного-преобразования. Модуль 106 обратного-квантования/обратного преобразования выполняет обратное квантования над принятыми квантованными коэффициентами с тем, чтобы воспроизвести преобразованные коэффициенты, выполняет обратное ортогональное преобразование на преобразованными коэффициентами таким образом воспроизведенными, с тем чтобы воспроизвести ошибки предсказания, и выводит воспроизведенные ошибки предсказания на первый модуль 107 воспроизведения изображения.
[0034] Первый модуль 107 воспроизведения изображения воспроизводит предсказанное изображение посредством обращения к памяти 108 кадра при необходимости, на основе первой информации предсказания, принятой от первого модуля 104 предсказания. Первый модуль 107 воспроизведения изображения воспроизводит данные изображения из воспроизведенного предсказанного изображения и воспроизведенных ошибок предсказания, которые принимаются от модуля 106 обратного-квантования/обратного-преобразования, и сохраняет их в памяти 108 кадра.
[0035] Первый модуль 111 кодирования выполняет энтропийное кодирование над квантованными коэффициентами, сгенерированными посредством модуля 105 преобразования/квантования, и первой информацией предсказания, принятой посредством первого модуля 104 предсказания, на основе блок-за-блоком, с тем, чтобы сгенерировать первые кодированные данные. Метод энтропийного кодирования в частности не указывается, и может быть использовано кодирование Голомба, арифметическое кодирование, кодирование Хаффмана, или подобное. Сгенерированные первые кодированные данные выводятся на модуль 113 интегрированного-кодирования.
[0036] Будет описана операция кодирования данных изображения, когда модуль 102 определения кодирования без потерь выбирает кодирование без потерь.
[0037] Модуль 102 кодирования без потерь вводит данные изображения блока, который должен быть закодирован, во второй модуль 109 предсказания. Второй модуль 109 предсказания выполняет предсказание на основе информации управления без потерь, принятой от модуля 103 генерирования информации-управления-без-потерь, генерирует ошибки предсказания, и выводит сгенерированные ошибки предсказания на второй модуль 112 кодирования. Вторая информация предсказания также выводится на второй модуль 112 кодирования.
[0038] Селектор 110 выводит входное изображение, принятое от модуля 102 определения кодирования без потерь, или воспроизведенное изображение, принятое от первого модуля 107 воспроизведения изображения, в память 108 кадра на основе информации блока кодирования без потерь, принятой от модуля 102 определения кодирования без потерь. В частности, когда информация блока кодирования без потерь представляет собой кодирование без потерь, входное изображение, принятое от модуля 102 определения кодирования без потерь, выводится в память 108 кадра. Когда информация блока кодирования без потерь представляет собой кодирование с потерями, воспроизведенное изображение, принятое от первого модуля 107 воспроизведения изображения, выводится в память 108 кадра.
[0039] Второй модуль 112 кодирования выполняет энтропийное кодирование над второй информацией предсказания и ошибками предсказания, принятыми от второго модуля 109 предсказания, и генерирует вторые кодированные данные. Метод энтропийного кодирования в частности не указывается, и может быть использовано кодирование Голомба, арифметическое кодирование, кодирование Хаффмана, или подобное. Сгенерированные вторые кодированные данные выводятся на модуль 113 интегрированного-кодирования.
[0040] Модуль 113 интегрированного-кодирования мультиплексирует код информации-управления-без-потерь, сгенерированный перед процессом кодирования, код информации-кодирования-без-потерь, первые кодированные данные, сгенерированные посредством первого модуля 111 кодирования, вторые кодированные данные, сгенерированные посредством второго модуля 112 кодирования, и подобное с тем, чтобы сформировать битовый поток. В заключение, битовый поток, сформированный посредством модуля 113 интегрированного-кодирования, выводится через контактный зажим 114 во вне.
[0041] Фиг. 6A иллюстрирует примерный битовый поток, включающий в себя информацию кодирования без потерь и информацию управления без потерь, которые закодированы. Информация кодирования без потерь включена в качестве кода информации-кодирования-без-потерь в заголовок картинки или подобное. Например, код информации-кодирования-без-потерь является флагом из одного бита. Когда код информации-кодирования-без-потерь имеет значение 1, битовый поток вероятно включает в себя блок кодирования без потерь. Когда код информации-кодирования-без-потерь имеет значение 0, битовый поток едва ли включает в себя блок кодирования без потерь. Информация управления без потерь включается в качестве кода информации-управления-без-потерь в заголовок последовательности или подобное. Информация управления без потерь является информацией с, по меньшей мере, одним битом. Когда код информации-управления-без-потерь имеет значение 1, процесс интра-предсказания выполняется над блоком кодирования без потерь на основе пиксель-за-пикселем. Когда код информации-управления-без-потерь имеет значение 0, процесс интра-предсказания выполняется над блоком кодирования без потерь на основе блок-за-блоком.
[0042] В первом варианте осуществления, информация управления без потерь включается в заголовок последовательности, а код информации-кодирования-без-потерь включается в заголовок картинки.
[0043] Относительно информации блока кодирования без потерь, код информации-блока-кодирования-без-потерь (третий код информации) включается в каждый из блоков в битовом потоке. Когда код информации-блока-кодирования-без-потерь имеет значение 1, блок подвергается кодированию без потерь. Когда код информации-блока-кодирования-без-потерь имеет значение 0, блок подвергается кодированию с потерями.
[0044] Фиг. 4 является блок-схемой процесса кодирования, выполняемого посредством устройства кодирования изображения в соответствии с первым вариантом осуществления.
[0045] На этапе S401, модуль 103 генерирования информации-управления-без-потерь определяет, какой вид процесса интра-предсказания должен быть выполнен над пикселями в блоке кодирования без потерь. Информация, представляющая собой определенный процесс интра-предсказания, является информацией управления без потерь. Модуль 113 интегрированного-кодирования кодирует информацию управления без потерь.
[0046] На этапе S402, модуль 102 определения кодирования без потерь определяет, должно или нет кодирование без потерь быть выполнено на основе кадр-за-кадром. Информацией, представляющей собой результат определения, является информация кодирования без потерь. Модуль 113 интегрированного-кодирования кодирует информацию кодирования без потерь.
[0047] На этапе S403, модуль 102 определения кодирования без потерь режет принятые данные изображения на несколько блоков, определяет, должно ли быть выполнено кодирование без потерь или кодирование с потерями на основе блок-за-блоком, и использует результат определения в качестве информации блока кодирования без потерь.
[0048] На этапе S404, устройство кодирования изображения определяет, должно или нет кодирование без потерь быть выполнено над блоком, который должен быть закодирован. Если должно быть выполнено кодирование без потерь, процесс переходит к этапу S410. Если должно быть выполнено кодирование с потерями, процесс переходит к этапу S405.
[0049] На этапе S405, первый модуль 104 предсказания выполняет интра-предсказание или интер-предсказание, и генерирует первую информацию предсказания и предсказанные данные изображения. Первый модуль 104 предсказания дополнительно вычисляет ошибки предсказания из принятых данных изображения и предсказанных данных изображения. На этапе S406, модуль 105 преобразования/квантования выполняет ортогональное преобразование над ошибками предсказания, вычисленными на этапе S405, с тем, чтобы сгенерировать преобразованные коэффициенты. Модуль 105 преобразования/квантования дополнительно квантует преобразованные коэффициенты с тем, чтобы сгенерировать квантованные коэффициенты. На этапе S407, модуль 106 обратного-квантования/обратного-преобразования выполняет обратное квантование и обратное ортогональное преобразование над квантованными коэффициентами, сгенерированными на этапе S406, с тем, чтобы воспроизвести ошибки предсказания. На этапе S408, первый модуль 107 воспроизведения изображения воспроизводит предсказанное изображение на основе первой информации предсказания, сгенерированной на этапе S405. Первый модуль 107 воспроизведения изображения дополнительно воспроизводит данные изображения из предсказанного изображения, воспроизведенного таким образом, и ошибок предсказания, сгенерированных на этапе S407. На этапе S409, первый модуль 111 кодирования кодирует первую информацию предсказания, сгенерированную на этапе S405, и квантованные коэффициенты, сгенерированные на этапе S406, с тем, чтобы сгенерировать первые кодированные данные. Модуль 113 интегрированного-кодирования генерирует битовый поток, который также включает в себя другие кодированные данные.
[0050] На этапе S410, второй модуль 109 предсказания делает определение на основе информации управления без потерь, сгенерированной на этапе S401. Если информация управления без потерь имеет значение 1, которое указывает на то, что должно быть выполнено интра-предсказание на основе пиксель-за-пикселем, процесс переходит к этапу S411. Если информация управления без потерь имеет значение 0, которое указывает на то, что должно быть выполнено интра-предсказание на основе блок-за-блоком, процесс переходит к этапу S412. На этапе S411, второй модуль 109 предсказания выполняет предсказание на основе пиксель-за-пикселем, и генерирует вторую информацию предсказания и предсказанные данные изображения. Второй модуль 109 предсказания дополнительно вычисляет ошибки предсказания из принятых данных изображения и предсказанных данных изображения. На этапе S412, второй модуль 109 предсказания выполняет предсказание на основе блок-за-блоком, и генерирует вторую информацию предсказания и предсказанные данные изображения. Второй модуль 109 предсказания вычисляет ошибки предсказания из принятых данных изображения и предсказанных данных изображения. На этапе S413, второй модуль 111 кодирования кодирует вторую информацию предсказания и ошибки предсказания, которые сгенерированы на этапе S411 или этапе S412, и генерирует вторые кодированные данные. Модуль 113 интегрированного-кодирования генерирует битовый поток, который также включает в себя другие кодированные данные.
[0051] На этапе S414, устройство кодирования изображения определяет были ли закодированы или нет все из блоков в кадре. Если были закодированы все блоки, процесс переходит к этапу S415. В противном случае, процесс возвращается обратно к этапу S403, чтобы обработать следующий блок. На этапе S415, устройство кодирования изображения определяет, были ли закодированы или нет все из кадров. Если были закодированы все кадры, процесс кодирования заканчивается. В противном случае, процесс возвращается обратно к этапу S402, чтобы обработать следующий кадр.
[0052] Описанная выше конфигурация и операции, в частности операция на этапе S401, которая обеспечивает управление над процессом интра-предсказания, который выполняется над пикселями в блоке кодирования без потерь, обеспечивает возможность при необходимости выбора отдать ли приоритет эффективности сжатия, или совместимости с кодированием с потерями. В частности, когда информация управления без потерь устанавливается в 0 на этапе S401, интра-предсказание выполняется на основе блок-за-блоком на этапе S412, обеспечивая генерирование битового потока, который отдает приоритет совместимости с блоком кодирования с потерями, который должен быть сгенерирован. Когда информация управления без потерь устанавливается в 1 на этапе S401, интра-предсказание выполняется на основе пиксель-за-пикселем на этапе S411, обеспечивая генерирование битового потока, который отдает приоритет эффективности сжатия.
[0053] В первом варианте осуществления, кодирование без потерь и кодирование с потерями выполняются посредством первого модуля 104 предсказания и второго модуля 109 предсказания, которые являются независимыми друг от друга. Один и тот же модуль предсказания может выполнять кодирование без потерь и кодирование с потерями. В дополнение, используются первый модуль 111 кодирования и второй модуль 112 кодирования, которые являются независимыми друг от друга. В качестве альтернативы, один и то же модуль кодирования может выполнять кодирование без потерь и кодирование с потерями. В первом варианте осуществления, предполагается случай, при котором смешиваются блоки кодирования без потерь/с потерями. Когда очевидно, что поток, который должен быть закодирован, имеет только блоки кодирования без потерь, компоненты для кодирования с потерями могут быть опущены. В данном случае, в частности, могут быть опущены первый модуль 104 предсказания, модуль 105 преобразования/квантования, модуль 106 обратного-квантования/обратного-преобразования, первый модуль 107 воспроизведения изображения, и первый модуль 111 кодирования.
[0054] В первом варианте осуществления, Фиг. с 3A по 3E иллюстрируют примерные режимы, используемые, когда блок кодирования без потерь подвергается интра-предсказанию. Режимы интра-предсказания в настоящем изобретения не ограничиваются этими. Т.е., любой режим может быть использован до тех пор, пока режим является поддерживаемым устройством декодирования изображения, которое декодирует битовый поток, который выводится из устройства кодирования изображения.
[0055] Конфигурация битового потока не ограничивается этим. Например, может быть выполнено кодирование, как иллюстрируется на Фиг. 6B. Фиг. 6B иллюстрирует пример, в котором каждый из блоков включает в себя код информации-блока-кодирования-без-потерь, указывающий на то, было ли выполнено кодирование без потерь или кодирование с потерями на основе блок-за-блоком. В данном случае, заголовок картинки, который является заголовком кадра, не включает в себя код информации-кодирования-без-потерь. В данной конфигурации, каждый из блоков включает в себя код информации-блока-кодирования-без-потерь, достигая эффекта простого различения между блоком кодирования без потерь и блоком кодирования с потерями.
[0056] Длина данных кода информации-управления-без-потерь и та, что у кода информации-кодирования-без-потерь этим не ограничиваются. Например, код информации-управления-без-потерь может иметь дополнительные биты, когда дополнительно выполняются другие процессы интра-предсказания.
[0057] В первом варианте осуществления, когда информация управления без потерь имеет значение 1, интра-предсказание выполняется на основе пиксель-за-пикселем безотносительно направления интра-предсказания. Настоящее изобретение этим не ограничивается. Например, в HEVC, как иллюстрируется на Фиг. 7, присутствует 35 режимов предсказания от 0 (плоское предсказание) до 34 (диагональное предсказание вдоль линии снизу слева в верх вправо). В некоторых из режимов предсказания, интра-предсказание может быть выполнено на основе пиксель-за-пикселем. В других режимах, интра-предсказание может быть выполнено на основе блок-за-блоком. Например, интра-предсказание на основе пиксель-за-пикселем может быть применено только к режиму 10 (вертикальное предсказание) и р