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

Область техники
Настоящее изобретение относится к способу кодирования изображения и способу декодирования изображения для использования в движущемся изображении или неподвижном изображении, устройству кодирования изображения и устройству декодирования изображения и к программе кодирования изображения и программе декодирования изображения.
Уровень техники
В последние годы был разработан метод кодирования видеосигнала, благодаря которому эффективность кодирования значительно повышается по сравнению с традиционной техникой, под названием ITU-T Rec. H.264 и ISO/IEC14496-10 (именуемый здесь "H.264") совместно с ITU-T и ISO/IEC. Традиционная система кодирования, например, ISO/IECMPEG-1,2,4, ITU-TH.261, H.263 осуществляет внутрикадровое прогнозирование в ортогонально-преобразованной частотной области (коэффициентах ДКП) для снижения количества кодированных битов коэффициентов преобразования. H.264 использует направленное прогнозирование в области пространства (пиксельной области) (непатентный источник 1) для реализации высокоэффективного прогнозирования по сравнению с внутрикадровым прогнозированием традиционной системы кодирования видеосигнала (ISO/IECMPEG-1,2,4).
В высоком профиле H.264 и т.д. задано три вида систем внутрикадрового прогнозирования для сигнала яркости и одну из систем можно выбирать на уровне макроблока (16x16-пиксельных блоков). Системы прогнозирования относятся к 4x4-пиксельному прогнозированию, 8x8-пиксельному прогнозированию и 16x16-пиксельному прогнозированию соответственно.
Для 16x16-пиксельного прогнозирования задано четыре режима кодирования, именуемых вертикальным прогнозированием, уровневым прогнозированием, DC-прогнозированием и плоскостным прогнозированием. Значение пикселя окружающих декодированных макроблоков до подачи на деблокирующий (устранения блочности) фильтр используется в качестве значения опорного пикселя и применяется для процесса прогнозирования.
4x4-пиксельное прогнозирование делит сигнал яркости в макроблоке на 16 4x4-пиксельных блоков и выбирает один из девяти режимов для каждого 4x4-пиксельного блока. Каждый из девяти режимов имеет направление прогнозирования в единицах 22.5 градусов за исключением DC-прогнозирования (режим 2) для прогнозирования с использованием среднего значения доступных опорных пикселей и экстраполирует макроблок в направлении прогнозирования с использованием опорного пикселя для генерации прогнозируемого значения. Информация режима 4x4-пиксельного прогнозирования нуждается в 16 элементах информации на один макроблок. Поскольку 4x4-пиксельное прогнозирование мало по отношению к процессу прогнозирования, прогнозирование сравнительно высокой эффективности можно осуществлять на изображении, имеющем усложненную текстуру. Однако это 4x4-пиксельное прогнозирование представляет собой прогнозирование, осуществляемое только путем копирования значения интерполяции просто в направлении прогнозирования, в связи с чем возникает проблема, состоящая в том, что ошибка прогнозирования возрастает с увеличением расстояния от опорного пикселя.
8x8-пиксельное прогнозирование делит сигнал яркости в макроблоке на четыре 8x8-пиксельных блока, и любой из девяти режимов выбирается для каждого 8x8-пиксельного блока. Режим 8x8-пиксельного прогнозирования, реализуемого по той же схеме, что и 4x4-пиксельное прогнозирование, осуществляет фильтрацию трех отводов на уже кодированном опорном пикселе и включает в себя процесс усреднения искажения кодирования путем «выравнивания» опорного пикселя, используемого для прогнозирования. Однако проблема заключается в том, что прогнозирование становится все менее достоверным с увеличением расстояния от опорного пикселя наподобие 4x4-пиксельного прогнозирования. Проблема состоит в том, что для изображения, имеющего усложненную текстуру, нельзя ожидать точного прогнозирования, поскольку расстояние от опорного пикселя увеличивается по сравнению с 4x4-пиксельным прогнозированием.
8x8-пиксельное прогнозирование это модуль прогнозирования, предписанный только высоким профилем H.264 и введенный, в частности, в целях повышения эффективности кодирования для изображения с высоким разрешением. В 4x4-пиксельном прогнозировании используется преобразованный/квантованный блок размером 4x4 пикселя, и в 8x8-пиксельном прогнозировании используется преобразованный/квантованный блок размером 8x8 пикселей. Иными словами, размер преобразованного/квантованного блока определяется формой блока прогнозирования. Поскольку совместимость главного профиля и высокого профиля предполагается для формы блока прогнозирования, 8x8-пиксельное прогнозирование и 4x4-пиксельное прогнозирование не могут сосуществовать в макроблоке согласно стандарту.
Для сокращения числа кодированных битов информации режима 4x4-пиксельное прогнозирование или 8x8-пиксельное прогнозирование согласно H.264 сокращает количество кодированных битов путем прогнозирования информации режима с использованием уровня корреляции информации режима соседних блоков. Когда прогнозирование информации режима достоверно, кодируется однобитовый флаг, а когда оно недостоверно, дополнительно кодируются 3 бита данных, благодаря чему число кодированных битов информации режима сокращается. Однако если 4x4-пиксельное прогнозирование выбрано в то время, как сигнал ошибки еще не сгенерирован в макроблоке, нужно кодировать минимум 16 битов (максимум 64 бита), что приводит к значительному снижению эффективности кодирования.
В JP-A 2003-323736 (KOKAI) предложена система для осуществления прогнозирования путем поблочного сравнения в кадре и дополнения значения прогнозирования прогнозируемого блока из кодированного опорного изображения. Эта система предусматривает метод прогнозирования, опирающийся на тот факт, что изображение произвольно закодированного блока в кадре аналогично изображению блока, подлежащего прогнозированию, и его проблема состоит в том, что точность прогнозирования оказывается низкой при низкой корреляции блоков в кадре. Величину смещения позиции, показывающую позицию опорного изображения, используемого при прогнозировании, приходится кодировать, что приводит к увеличению числа кодированных битов информации режима.
Сущность изобретения
Как рассмотрено выше, в случае когда интерполированные пиксели, согласно режиму прогнозирования, генерируются из кодированного опорного изображения методом, предписанным в высоком профиле H.264, и сигнал прогнозируемого изображения генерируется путем копирования интерполированных пикселей в направлении, предписанном режимом прогнозирования, возникает проблема, состоящая в том, что ошибка прогнозирования возрастает с ростом расстояния между пикселем прогнозирования и опорным пикселем в направлении прогнозирования, приводя к тому, что формы блоков прогнозирования не могут сосуществовать в макроблоке, и число кодированных битов информации режима нельзя уменьшить.
Аспект настоящего изобретения предусматривает способ кодирования изображения, содержащий этапы, на которых делят входное изображение на совокупность сигналов пиксельного блока; осуществляют внутреннее прогнозирование для экстраполяции или интерполяции пикселя прогнозирования с использованием опорных пикселей, количество которых изменяется согласно расстоянию между пикселем прогнозирования и опорным пикселем в множественных режимах прогнозирования, каждый из которых представляет направление прогнозирования; генерируют сигнал прогнозируемого изображения путем экстраполяции или интерполяции пикселя прогнозирования; вычисляют сигнал ошибки прогнозирования из сигнала пиксельного блока и сигнала прогнозируемого изображения; выбирают один режим прогнозирования из множественных режимов прогнозирования с использованием сигнала ошибки прогнозирования; и осуществляют статистическое кодирование с использованием сигнала ошибки прогнозирования на основании выбранного режима прогнозирования.
Второй аспект настоящего изобретения предусматривает способ декодирования изображения, содержащий этапы, на которых декодируют сигнал входного кодированного изображения для генерации сигнала декодированного изображения, включающего в себя информацию режима прогнозирования; изменяют количество опорных пикселей для использования при прогнозировании и в процедуре для генерации пикселя прогнозирования согласно выбранному режиму прогнозирования на основании информации режима прогнозирования сигнала декодированного изображения и расстояния между кодированным опорным пикселем и пикселем прогнозирования; генерируют сигнал прогнозируемого изображения путем прогнозирования внутри изображения для экстраполяции сигнала декодированного изображения на уровне пикселей; генерируют сигнал ошибки прогнозирования на основании сигнала декодированного изображения; и генерируют восстановленное изображение путем суммирования сигнала прогнозируемого изображения и сигнала ошибки прогнозирования.
Краткое описание чертежей
Фиг.1 - блок-схема устройства кодирования видеосигнала согласно первому варианту осуществления.
Фиг.2 - блок-схема модуля внутрикадрового прогнозирования согласно варианту осуществления.
Фиг.3 - последовательность операций работы устройства кодирования видеосигнала согласно варианту осуществления.
Фиг.4A - схема, иллюстрирующая порядок прогнозирования согласно варианту осуществления.
Фиг.4B - схема, иллюстрирующая форму блока согласно варианту осуществления.
Фиг.4C - схема, иллюстрирующая форму блока согласно варианту осуществления.
Фиг.4D - схема, иллюстрирующая форму блока согласно варианту осуществления.
Фиг.4E - схема, иллюстрирующая форму блока согласно варианту осуществления.
Фиг.5A - схема, иллюстрирующая направленное прогнозирование согласно варианту осуществления.
Фиг.5B - схема, иллюстрирующая соотношение между прогнозируемым блоком и опорным изображением при направленном прогнозировании согласно варианту осуществления.
Фиг.5C - схема, иллюстрирующая способ прогнозирования согласно варианту осуществления.
Фиг.5D - схема, иллюстрирующая способ прогнозирования согласно варианту осуществления.
Фиг.6A - схема, иллюстрирующая соотношение между блоком прогнозирования и опорным изображением при пиксельно-адаптивном прогнозировании согласно варианту осуществления.
Фиг.6B - схема, иллюстрирующая пиксельно-адаптивное вертикальное прогнозирование согласно варианту осуществления.
Фиг.6C - схема, иллюстрирующая пиксельно-адаптивное прогнозирование согласно варианту осуществления.
Фиг.7 - схема, иллюстрирующая взвешенную таблицу количества опорных изображений и коэффициентов фильтра, которые используются при пиксельно-адаптивном вертикальном прогнозировани согласно варианту осуществления.
Фиг.8 - схема, иллюстрирующая соседние блоки, используемые в режиме прогнозирования согласно варианту осуществления.
Фиг.9 - схема, иллюстрирующая направленное прогнозирование и пиксельно-адаптивное прогнозирование согласно варианту осуществления.
Фиг.10 - блок-схема, иллюстрирующая структуру устройства кодирования видеосигнала согласно второму варианту осуществления.
Фиг.11 - блок-схема, иллюстрирующая структуру модуля внутрикадрового прогнозирования согласно варианту осуществления.
Фиг.12 - схема последовательности операций устройства кодирования видеосигнала согласно варианту осуществления.
Фиг.13 - схема, иллюстрирующая структуру синтаксиса согласно варианту осуществления.
Фиг.14 - схема, иллюстрирующая структуру данных синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг.15 - схема, иллюстрирующая структуру данных синтаксиса набора параметров изображения согласно варианту осуществления.
Фиг.16 - схема, иллюстрирующая структуру данных синтаксиса заголовка среза согласно варианту осуществления.
Фиг.17 - схема, иллюстрирующая структуру данных синтаксиса уровня макроблоков согласно варианту осуществления.
Фиг.18 - схема, иллюстрирующая структуру данных синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг.19 - схема, иллюстрирующая структуру данных синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг.20 - схема, иллюстрирующая структуру данных синтаксиса заголовка среза согласно варианту осуществления.
Фиг.21A - схема, иллюстрирующая структуру данных синтаксиса уровня макроблоков согласно варианту осуществления.
Фиг.21B - схема, иллюстрирующая структуру данных синтаксиса прогнозирования макроблока согласно варианту осуществления.
Фиг.22 - блок-схема, иллюстрирующая структуру устройства кодирования видеосигнала согласно третьему варианту осуществления.
Фиг.23 - схема, иллюстрирующая структуру данных синтаксиса набора параметров последовательности согласно варианту осуществления.
Фиг.24 - схема, иллюстрирующая структуру данных синтаксиса набора параметров изображения согласно варианту осуществления.
Фиг.25 - схема, иллюстрирующая структуру данных синтаксиса заголовка среза (секции) согласно варианту осуществления.
Фиг.26 - схема, иллюстрирующая структуру данных синтаксиса уровня макроблоков согласно варианту осуществления.
Фиг.27 - схема, иллюстрирующая структуру данных mb_type согласно варианту осуществления.
Фиг.28A - схема, иллюстрирующая структуру данных для переключения размера блока согласно варианту осуществления.
Фиг.28B - схема, иллюстрирующая структуру данных для переключения размера блока согласно варианту осуществления.
Фиг.29 - блок-схема, иллюстрирующая устройство декодирования видеосигнала согласно четвертому варианту осуществления.
Фиг.30 - блок-схема, иллюстрирующая структуру модуля внутрикадрового прогнозирования устройства декодирования видеосигнала согласно варианту осуществления.
Фиг.31 - блок-схема, иллюстрирующая структуру устройства декодирования видеосигнала согласно пятому варианту осуществления.
Предпочтительные варианты осуществления изобретения
Перейдем к подробному описанию метода кодирования видеосигнала, устройства кодирования видеосигнала, способа декодирования видеосигнала и устройства декодирования видеосигнала со ссылкой на прилагаемые чертежи.
Первый вариант осуществления
Устройство 100 кодирования видеосигнала, показанное на фиг.1, способно делить видеосигнал на множество пиксельных блоков и кодировать их. Это устройство 100 кодирования видеосигнала подготавливает множество режимов прогнозирования кадра, которые отличаются друг от друга размером блока и способом генерации сигнала прогнозируемого изображения. Внутрикадровое прогнозирование - это система прогнозирования, причем прогнозирование заключено в кадре, и прогнозирует блок, подлежащий прогнозированию, с использованием уже кодированного опорного пикселя. В этом варианте осуществления предполагается, что процесс кодирования выполняется от верхнего левого угла к нижнему правому углу, как показано на фиг.4A.
Видеосигнал, поступающий на устройство 100 кодирования видеосигнала, делится на множество пиксельных блоков, в качестве сигнала 115 входного изображения, делителем 101 изображения. Часть разделенного сигнала 115 входного изображения поступает на модуль 102 внутрикадрового прогнозирования и, в конце концов, кодируется процессором кодирования 107 через модуль 103 выбора режима и преобразователь/квантователь 107 в выходные кодированные данные 113.
Делитель 101 изображения делит видеосигнал на множество пиксельных блоков для генерации 16x16-пиксельного блока для каждого пиксельного блока, как показано на фиг.4B. Этот 16x16-пиксельный блок именуется макроблоком и становится основным размером блока обработки для последующего процесса кодирования. Устройство 100 кодирования видеосигнала кодирует видеосигнал на уровне этого макроблока.
Модуль 102 внутрикадрового прогнозирования экстраполирует сигнал изображения для всех выбираемых режимов прогнозирования на уровне макроблока для генерации сигнала 114 прогнозируемого изображения с использованием опорного пикселя, временно хранящегося в памяти 106 опорного изображения. Иными словами, модуль 102 внутрикадрового прогнозирования генерирует сигналы 114 прогнозируемого изображения для всех режимов, выполнимых для блока пикселей прогнозирования, путем прогнозирования внутри изображения, например внутрикадрового прогнозирования. Однако когда следующее прогнозирование невозможно произвести, пока не будет сгенерировано локальное декодированное изображение в макроблоке, наподобие внутрикадрового прогнозирования согласно H.264 (4x4-пиксельное прогнозирование (со ссылкой на фиг.4C) или 8x8-пиксельное прогнозирование (со ссылкой на фиг.4D)), преобразование и квантование, деквантование и обратное преобразование могут производиться в модуле 102 внутрикадрового прогнозирования. Однако сигнал прогнозируемого изображения генерируется только в модуле 102 внутрикадрового прогнозирования.
Сигнал 114 прогнозируемого изображения, генерируемый модулем 102 внутрикадрового прогнозирования, передается на модуль 103 выбора режима. Модуль 103 выбора режима генерирует сигнал 116 ошибки прогнозирования путем вычитания сигнала 114 прогнозируемого изображения из сигнала 115 входного изображения. Модуль 103 выбора режима выбирает режим прогнозирования на основании информации режима, прогнозируемой модулем 102 внутрикадрового прогнозирования, и генерируемого сигнала 116 ошибки прогнозирования. При объяснении конкретного варианта осуществления используется стоимость, выраженная согласно следующему уравнению:
K = SAD + λ × OH
(1),
где OH указывает информацию режима, SAD указывает абсолютную сумму сигналов ошибки прогнозирования и λ - константа, определяемая на основании ширины квантования или значения параметра квантования. Режим прогнозирования определяется полученной таким образом стоимостью. Режим прогнозирования, при котором стоимость K достигает минимума, выбирается в качестве оптимального режима прогнозирования.
В этом варианте осуществления используются информация режима и абсолютная сумма ошибок прогнозирования. Однако для выбора режима прогнозирования можно использовать только информацию режима или только абсолютную сумму ошибок прогнозирования. Информация режима и абсолютная сумма ошибок прогнозирования может подвергаться преобразованию Адамара или можно использовать значения, аналогичные этим. Кроме того, стоимость можно получить с использованием активности сигнала входного изображения, и функцию стоимости можно получить с использованием ширины квантования и параметра квантования.
Модуль 103 выбора режима подключен к преобразователю/квантователю 104, и информация режима и сигнал ошибки прогнозирования, выбранные модулем 103 выбора режима, поступают на преобразователь/квантователь 104. Преобразователь/квантователь 104 осуществляет ортогональное преобразование на входном сигнале ошибки прогнозирования для генерации данных коэффициента преобразования. В данном варианте осуществления преобразователь/квантователь 104 преобразует сигнал ошибки прогнозирования в коэффициенты с использованием ДКП и т.д., но может преобразовывать сигнал ошибки прогнозирования в коэффициенты с использованием способа, например, вейвлет-преобразования или анализа независимых компонентов. Преобразователь/квантователь 104 квантует коэффициенты преобразования. Параметр квантования, необходимый для квантования, задается контроллером кодирования 108.
Квантованный коэффициент преобразования 117 выводится на процессор кодирования 107 совместно с информацией, относящейся к методу прогнозирования, например информацией прогнозирования 109, и параметром квантования. Процессор кодирования 107 осуществляет статистическое кодирование (кодирование Хафмана или арифметическое кодирование) на квантованном коэффициенте преобразования и входной информации прогнозирования и т.д. Данные, статистически кодированные процессором кодирования 107, мультиплексируются с информацией прогнозирования 109, и т.д. мультиплексором 111, и выводятся в качестве кодированных данных 113 через выходной буфер 112.
Деквантователь/обратный преобразователь 105 выполняет инверсное квантование коэффициента преобразования 117, квантованный преобразователем/квантователем 104 согласно параметру квантования, заданному контроллером кодирования 108, и подвергает коэффициент преобразования обратному преобразованию (например, обратному ДКП) для декодирования коэффициента преобразования в сигнал 116 ошибки прогнозирования.
Сигнал 116 ошибки прогнозирования, декодированный деквантователем/обратным преобразователем 105, суммируется с сигналом 114 прогнозируемого изображения для выбранного режима прогнозирования, выдаваемого модулем 103 выбора режима, посредством сумматора 118. Сигнал суммирования становится сигналом 119 декодированного изображения и поступает в память опорного изображения 106. Память 106 опорного изображения накапливает сигнал 119 декодированного изображения в качестве опорного изображения. Опорное изображение, накопленное в памяти 106 опорного изображения, необходимо для генерации сигнала ошибки прогнозирования модулем 102 внутрикадрового прогнозирования.
Цикл кодирования (процесс, осуществляемый в порядке: модуль 102 внутрикадрового прогнозирования → модуль 103 выбора режима → преобразователь/квантователь 104 → обратный преобразователь/деквантователь 105 → память опорного изображения на фиг.1) соответствует одному циклу, когда процесс кодирования осуществляется для всех режимов прогнозирования, выбираемых в макроблоке. Когда цикл кодирования заканчивается для макроблока прогнозирования, сигнал 115 входного изображения следующего блока является входным сигналом, подлежащим кодированию.
Контроллер 108 кодирования осуществляет управление обратной связью посредством количества кодированных битов, управления характеристиками квантования, управления режимами и т.д. Кроме того, контроллер 108 кодирования осуществляет управление скоростью для управления количеством кодированных битов, управления модулем прогнозирования и управления кодированием в целом.
Функция каждого из вышеупомянутых модулей может быть реализована в виде программы, хранящейся на компьютере.
Модуль внутрикадрового прогнозирования устройства 100 кодирования видеосигнала для реализации способа кодирования видеосигнала согласно данному варианту осуществления объяснен со ссылкой на фиг.2. Описание частей, аналогичных показанным на фиг.1, соответственно, опущено.
Модуль 102 внутрикадрового прогнозирования содержит внутренний 204 модуль выбора режима, внутренний преобразователь/квантователь 206, внутренний деквантователь/обратный преобразователь 207 и внутреннюю память опорного изображения 209 для осуществления прогнозирования при размере блока меньшем, чем размер макроблока. Модуль 201 пиксельно-адаптивного прогнозирования и модуль 202 направленного прогнозирования содержат множество режимов прогнозирования, но отличаются друг от друга способом прогнозирования. Модуль 203 прогнозирования фиксированного режима прогнозирует блок прогнозирования с использованием способа прогнозирования модуля 201 пиксельно-адаптивного прогнозирования и модуля 202 направленного прогнозирования, но выполняет один из режимов прогнозирования, который не передает информацию режима на уровне макроблока.
Рассмотрим подробно модуль 202 направленного прогнозирования и модуль 201 пиксельно-адаптивного прогнозирования. Эти модули прогнозирования прогнозируют блок прогнозирования с использованием уже декодированного опорного пикселя, находящегося в памяти 106 опорного изображения. Существует девять режимов прогнозирования, направления прогнозирования которых отличаются друг от друга на 22.5 градусов за исключением режима 2, как показано на фиг.5A. Режимы 0, 1 и 3-8, кроме режима 2, описаны, и режим 2 описывает DC-прогнозирование с помощью модуля 202 направленного прогнозирования. Имя режима направленного прогнозирования, производимого модулем 202 направленного прогнозирования, и имя режима пиксельно-адаптивного прогнозирования, производимого модулем 201 пиксельно-адаптивного прогнозирования, показаны на фиг.9. Соотношение между блоком прогнозирования для 4x4-пиксельного прогнозирования и опорным пикселем показано на фиг.5B. Пиксели, обозначенные заглавными буквами A-M, являются опорными пикселями, и пиксели, обозначенные строчными буквами a-p, являются пикселями прогнозирования.
Сначала объясним способ прогнозирования модуля 202 направленного прогнозирования. При выборе DC-прогнозирования режима 2 модуль направленного прогнозирования 202 вычисляет пиксель прогнозирования согласно следующему уравнению (2):
H = (A+B+C+D), V = (I+J+K+L)
(2)
a ~ p = (H+V+4) >> 3.
Когда опорный пиксель нельзя использовать, прогнозирование осуществляется по среднему значению доступных опорных пикселей. В отсутствие доступных опорных пикселей значение прогнозирования вычисляется по половинному значению (128, в случае 8 битов) от максимального значения яркости устройства кодирования. При выборе других режимов модуль 202 направленного прогнозирования использует способ прогнозирования путем копирования значения прогнозирования, интерполированного из опорного пикселя в направлении прогнозирования, показанном на фиг.5A. В частности, способ генерации значения прогнозирования при выборе режима 0 (вертикальное прогнозирование) объясняется на основании следующего уравнения (3):
a, e, i, m = A
b, f, j, n = B
c, g, k, o = C
d, h, 1, p = D (3)
Этот режим прогнозирования можно выбирать только при наличии опорных пикселей A-D. Способ прогнозирования подробно показан на фиг.5C. Значения яркости опорных пикселей A-D копируются в пиксели прогнозирования в вертикальном направлении и дополняется как значения прогнозирования.
Способ прогнозирования при выборе режима прогнозирования 4 (ортогональное прогнозирование вниз вправо) объясняется на основании следующего уравнения (4).
d = (B+(C<<1)+D+2) >> 2
c, h = (A+(B<<1)+C+2) >> 2
b, g, l = (M+(A<<1)+B+2) >> 2
a, f, k, p= (I+(M<<1)+A+2) >> 2
e, j, o = (J+(I<<1)+M+2) >> 2
i, n = (K+(J<<1)+I+2) >> 2
m = (L+(k<<1)+J+2) >> 2 (4)
Этот режим прогнозирования можно выбирать только при наличии опорных пикселей A-D и I-M. Этот режим прогнозирования подробно показан на фиг.5D. Значение, генерируемое фильтром с тремя отводами, копируется на пиксель прогнозирования в направлении вниз вправо под углом 45 градусов и дополняется как значение прогнозирования.
Конфигурация, приблизительно аналогичная вышеописанной, используется для способа прогнозирования за исключением режимов прогнозирования 0, 2, 4. Иными словами, значение интерполяции генерируется из опорного пикселя, имеющегося в направлении прогнозирования, и осуществляется прогнозирование путем копирования значения в пиксель прогнозирования согласно направлению прогнозирования.
Ниже описан модуль 201 пиксельно-адаптивного прогнозирования. Модуль 201 пиксельно-адаптивного прогнозирования осуществляет прогнозирование путем изменения количества используемых опорных пикселей согласно расстоянию между пикселем прогнозирования и опорным пикселем. Значение прогнозирования изменяется на уровне пикселей. Внутрикадровое прогнозирование - это прогнозирование с использованием пространственной корреляции изображений, генерирующее значение прогнозирования на основании предположения, что значения яркости соседних пикселей близки друг к другу. Когда расстояние между пикселем прогнозирования и доступным опорным пикселем возрастает, это предположение утрачивает силу, что обуславливает тенденцию к увеличению ошибки прогнозирования. По этой причине, когда расстояние между пикселем прогнозирования и опорным пикселем возрастает, ошибка прогнозирования снижается за счет увеличения количества доступных пикселей согласно увеличению расстояния. Это позволяет генерировать значение прогнозирования с более высокой точностью путем изменения взвешенной таблицы для доступного опорного пикселя согласно расстоянию.
Режим прогнозирования аналогичен представленному на фиг.5A. Соотношение между опорным пикселем и блоком прогнозирования показано на фиг.6A. Опорный пиксель и пиксель прогнозирования, показанные на фиг.6A и 5B, взаимно-однозначно соответствуют друг другу. Однако этим пикселям присвоены разные индексы для облегчения объяснения уравнения прогнозирования. Существует тринадцать опорных пикселей x00-x08, x09, x18, x27 и x36. Существует шестнадцать пикселей прогнозирования x10-x13, x19-x22, x28-x31 и x37-x40. Шестнадцать пикселей x14-x17, x23-x26, x32-x35 и x41-x44 являются вспомогательными пикселями прогнозирования, которые используются для повышения точности прогнозирования.
Перейдем к подробному объяснению способа генерации значений прогнозирования, связанного с пиксельно-адаптивным вертикальным прогнозированием (режим 0). Способ пиксельно-адаптивного вертикального прогнозирования показан на фиг.6B. На фиг.6B показано, что значение прогнозирования определяется с использованием опорных пикселей, количество которых возрастает с увеличением расстояния между опорным пикселем и пикселем прогнозирования. Например, в пикселе прогнозирования x10, отстоящем от опорного пикселя на один пиксель в направлении прогнозирования, значение прогнозирования вычисляется с использованием трех опорных пикселей x00, x01 и x02. В пикселе прогнозирования x20, отстоящем от опорного пикселя на два пикселя в направлении прогнозирования, значение прогнозирования вычисляется с использованием пяти опорных пикселей x00, x01, x02, x03 и x04. В пикселе прогнозирования x30, отстоящем от опорного пикселя на три пикселя в направлении прогнозирования, значение прогнозирования вычисляется с использованием пяти опорных пикселей x00, x01, x02, x03, x04, x05 и x06. В пикселе x40, отстоящем от опорного пикселя на четыре пикселя в направлении прогнозирования, значение прогнозирования вычисляется с использованием пяти опорных пикселей x00, x01, x02, x03, x04, x05, x06, x07 и x08.
Способ генерации значений прогнозирования конкретно объяснен согласно следующему уравнению (5). При пиксельно-адаптивном вертикальном прогнозировании пиксель прогнозирования вычисляется с использованием следующего уравнения (5):
X(n) = (X(n-d-1) + (X(n-d)<<1)+X(n-d+1)+2) >> 2
(5),
где n указывает индекс, соответствующий позиции пикселя прогнозирования (x10-x13, x19-x22, x28-x31 и x37-x40), показанной на фиг.6A. Величина d задается согласно следующему уравнению:
d = (blk_num<<1) + 1
(6),
где blk_num равно 4 в 4x4-пиксельном блоке и 8 в 8x8-пиксельном блоке.
Предполагается, что эта система прогнозирования не только прогнозирует пиксель с использованием уже кодированного опорного пикселя, но также прогнозирует следующий пиксель с использованием уже кодированного пикселя прогнозирования. На фиг.6 показана эта концепция. Для получения предназначенного пикселя прогнозирования предполагается, что эта система прогнозирования осуществляет прогнозирование с использованием пикселя прогнозирования, расстояние которого от опорного пикселя короче на один пиксель. Способ прогнозирования, показанный на фиг.6B, получается, если уравнение (5) составляется путем подстановки значения прогнозирования в уравнение (5).
Если уравнение (5) составляется согласно расстоянию между опорным пикселем и пикселем прогнозирования, получается следующее уравнение прогнозирования (7):
i
i
i
i
i
L представляет расстояние между опорным пикселем и пикселем прогнозирования. V указывает индекс, определяемый согласно соответствующему режиму прогнозирования. h представляет коэффициент фильтра, и количество отводов изменяется согласно L. h и V объясняются, в частности, применительно к пиксельно-адаптивному вертикальному прогнозированию. На фиг.7 показан пример взвешенных коэффициентов фильтра h (взвешенной таблицы), используемых согласно расстоянию между опорным пикселем и прогнозируемым изображением при 4x4-пиксельном прогнозировании.
Пиксель прогнозирования, отстоящий от опорного пикселя на один пиксель в направлении прогнозирования, прогнозируется согласно следующему уравнению (8) с использованием трех пикселей:
X(n) = (X(n-d-1) + (X(n-d)<<1) +X(n-d+1) +2) >> 2
(8),
i
i
где n указывает индекс, соответствующий L = 1 (x10-x13). Коэффициент фильтра представляет собой h = (1, 2, 1) и соответствует V = (d+1, d, d-1).
Пиксель прогнозирования, отстоящий от опорного пикселя на два пикселя, прогнозируется согласно следующему уравнению (9) с использованием пяти пикселей:
X(n) = (X(n-(d<<1)-2) + (X (n-(d<<1)-1)<<2) + (6X(n-(d<<1))) + (X(n-(d<<1)+)<<2) + X(n-(d<<1)+2)+8) >> 4
(9),
i
i
где n указывает индекс, соответствующий L = 2 (x19-x22). Коэффициент фильтра представляет собой h = (1, 4, 6, 4, 1) и соответствует V = (2d+2, 2d+1, 2d, 2d-1, 2d-2).
Пиксель прогнозирования, отстоящий от опорного пикселя на три пикселя, прогнозируется согласно следующему уравнению (10) с использованием семи пикселей:
X(n) = (X(n-3d-3) + (6X(n-3d-2)) + (15X(n-3d-1)) + (20X(n-3d)) + (15X(n-3d+1)) + (6X(n-3d+2)) + X(n-3d+3)+32) >> 6
(10),
i
i
где n указывает индекс, соответствующий L = 3 (x28 - x31). Коэффициент фильтра представляет собой h = (1, 6, 15, 20, 15, 6, 1) и соответствует V = (3d+3, 3d+2, 3d+1, 3d, 3d-1, 3d-2, 3d-3).
Пиксель прогнозирования, отстоящий от опорного пикселя на четыре пикселя, прогнозируется согласно следующему уравнению (11) с использованием семи пикселей:
X(n) = (X(n-(d<<2)-4) + (X(n-(d<<2)-3)<<3) + (28X(n-(d<<2)-2)) + (56X (n-(d<<2)-1)) + (70X(n-(d<<2))) + (56X(n-(d<<2)+1)) + (28X(n-(d<<2)+2)) + (X (n-(d<<2 )+3)<<3) + X(n-(d<<2)+4)+128) >> 8
(11),
i
i
где n указывает индекс, соответствующий L = 4 (x37-x40). Коэффициент фильтра представляет собой h = (1, 8, 28, 56, 70, 56, 28, 8, 1) и соответствует V = (4d+4, 4d+3,
4d+2, 4d+1, 4d, 4d-1, 4d-2, 4d-3, 4d-4).
i
Опорные пиксели, используемые для прогнозирования, количество опорных пикселей и взвешенная таблица получаются путем составления уравнения (5). Значение интерполяции пикселя прогнозирования вычисляется с использованием этой таблицы. При вычислении значения интерполяции пикселя x31 из таблицы, показанной на фиг.7, коэффициент фильтра h = (1, 6, 15, 20, 15, 6, 1) используется при L=3. Следующее уравнение прогнозирования (12) формируется согласно уравнению (9):
X(31) = (X(01) + (6X(02)) + (15X(03)) + (20X(04)) + (15X(05)) + (6X(06)) + X(07)+32) >> 6
(12)
В отсутствие соответствующего опорного пикселя прогнозирование производится путем подстановки значения последнего опорного пикселя в уравнение прогнозирования. При прогнозировании пикселя x19 нельзя использовать опорный пиксель слева от пикселя x00. Однако поскольку опорный пиксель x09 можно использовать, прогнозирование осуществляется согласно следующему уравнению (13):
X(19) = (X(09) + (X(00)<<1) + (5X(01)) +(X(02)<<2) + X(03)+8) >> 4
(13)
В этом случае уравнение (12) формируется путем определения пикселя, используемого для прогнозирования в уравнении (5) и получения необходимого значения прогнозирования.
Уравнение прогнозирования для пиксельно-адаптивного горизонтального прогнозирования (режим 1) выражается следующим уравнением (14):
X(n) = (X(n-d-1) + (X(n-1)<<1) + X(n+d-1)+2) >> 2
(14)
Уравнение прогнозирования для пиксельно-адаптивного прогнозирования вверх влево (режим 2) выражается следующим уравнением (15):
X(n) = (X(n-1)+X(n+d)+1) >> 1
(15)
Уравнение прогнозирования для пиксельно-адаптивного ортогонального прогнозирования вниз влево (режим 3) выражается следующим уравнением (16):
X(n) = (X(n-d) + (X (n-d+1)<<1)+X(n-d+2)+2) >> 2
(16)
Уравнение прогнозирования для пиксельно-адаптивного ортогонального прогнозирования вниз вправо (режим 4) выражается следующим уравнением (17):
X(n) = (X(n-d) + (X(n-d-1)<<1)+X(n-1)+2) >> 2
(17)
Уравнение прогнозирования для пиксельно-адаптивного вертикального прогнозирования влево (режим 5) выражается следующим уравнением (18):
X(n) = (X(n-d)+X(n-d-1)+1) >> 1
(18)
Уравнение прогнозирования для пиксельно-адаптивного горизонтального прогнозирования вниз (режим 6) выражается следующим уравнением (19):
X(n) = (X(n-d-1)+X(n-1)+1) >> 1
(19)
Уравнение прогнозирования для пиксельно-адаптивного вертикального прогнозирования влево (режим 7) выражается следующим уравнением (20):
X(n) = (X(n-d)+X(n-d+1)+1) >> 1
(20)
Уравнение прогнозирования для пиксельно-адаптивного горизонтального прогнозирования вверх (режим 8) выражается следующим уравнением (21):
X(n) = (X(n-1)+X(n+d-1)+1) >> 1
(21)
Для вычисления прогнозируемого значения пикселя необходимое прогнозируемое изображение подставляется в уравнение для его составления аналогично пиксельно-адаптивному вертикальному прогнозированию. В результате определяются необходимые опорные пиксели, количество опорных пикселей и взвешивающая таблица.
В отсутствие опорных пикселей, опорный пиксель дополняется наподобие пиксельно-адаптивного вертикального прогнозирования. Когда пиксель x37 прогнозируется посредством пиксельно-адаптивного горизонтального прогнозирования, опорный пиксель x45 нельзя использовать. Таким образом, этот опорный пиксель дополняется пикселем x36, согласно следующему уравнению (22):
X(37) = (X(36) + (X(36)<<1)+X(27)+2) >> 2 = (3X(36)+X(27)+2) >> 2
(22)
Таким образом, поскольку прогнозирование более высокой точности производится путем изменения количества используемых опорных пикселей, согласно расстоянию между пикселем прогнозирования и опорным пикселем становится возможным повышение эффективности кодирования. Повышение точности прогнозирования позволяет сделать прогнозируемое изображение близким к входному изображению. Таким образом, эта система прогнозирования имеет высокий эффект для зрения.
Перейдем к подробному описанию модуля 203 прогнозирования фиксированного режима. Модуль 203 прогнозирования фиксированного режима прогнозирует информацию режима и осуществляет пиксельно-адаптивное прогнозирование или направленное прогнозирование согласно определенному режиму прогнозирования. Информация режима прогнозируется с использованием информации режима соседних блоков прогнозирования. Соотношение между соседними блоками в случае 4x4-пиксельного прогнозирования показано на фиг.8. Пусть блок, примыкающий к левой стороне блока прогнозирования C, - это блок A и блок, примыкающий к его верхней стороне, - это блок B. Когда эти два режима прогнозирования заданы как prev_left_mode и prev_upper_mode, режим прогнозирования блока C определяется согласно следующему уравнению (23):
current_mode = min(prev_left_mode, prev_upper_mode)
(23),
где current_mode представляет режим прогнозирования блока прогнозирования C. Функция min (A, B) представляет значение меньшего из блоков A и B. Поскольку информация режима прогнозирования блока прогнозирования прогнозируется на основании информации режима прогнозирования окружающих блоков, этот режим является одним из режимов кодирования, что позволяет значительно уменьшить количество кодированных битов, необходимых для кодирования информации режима прогнозирования. Флаг ex_direct_intra, описанный ниже, определяет, используется ли модуль 201 пиксельно-адаптивного прогнозирования для генерации прогнозируемого изображения или же используется модуль 202 направленного прогнозирования, и это определение производится на основании флага ex_direct_intra, заданного контроллером кодирования 108.
В данном варианте осуществления информация режима прогнозирования текущего блока прогнозирования определяется на основании информации режима прогнозирования соседних блоков прогнозирования A и B. В качестве модификации данного варианта осуществления ее можно определить на основании информации режима прогнозирования окружающих блоков прогнозирования. Режим прогнозирования текущего блока прогнозирования можно определить с использованием информации режима прогнозирования блока на правой стороне блока прогнозирования B, блока на верхней стороне блока прогнозирования B, блока на левой стороне блока прогнозирования A и блока на верхней стороне блока прогнозирования A. Например, наиболее частый режим прогнозирования из режимов прогнозирования окружающих блоков прогнозирования - серединное значение режимов прогнозирования окружающих блоков прогнозирования или среднее значение режимов прогнозирования окружающих блоков прогнозирования можно определить как режим прогнозирования текущего блока прогнозирования.
Ниже подробно описана работа модуля 102 внутрикадрового прогнозирования, показанного на фиг.2. Когда сигнал 115 входного изображения поступает на модуль 102 внутрикадрового прогнозирования, сигнал поступает на модуль 201 пиксельно-адаптивного прогнозирования, модуль 202 направленного прогнозирования и модуль 203 прогнозирования фиксированного режима. Соответствующий сигнал 114 прогнозируемого изображения генерируется каждым из модуля 201 пиксельно-адаптивного прогнозирования, модуля 202 направленного прогнозирования и модуля 203 прогнозирования фиксированного режима согласно режиму прогнозирования и форме блока прогнозирования.
Затем, если информация запрета прогнозирования для запрещения прогнозирования поступает от контроллера кодирования 108, соответствующий модуль прогнозирования не генерирует никакого сигнала прогнозируемого изображения. В частности, когда информация запрета прогнозирования поступает на модуль 201 пиксельно-адаптивного прогнозирования, сигнал 114 прогнозируемого изображения не генерируется модулем 201 пиксельно-адаптивного прогнозирования. Когда информация запрета прогнозирования поступает на модуль 202 направленного прогнозирования, сигнал 114 прогнозируемого изображения не генерируется модулем 202 направленного прогнозирования. Когда информация запрета прогнозирования поступает на модуль 203 прогнозирования фиксированного режима, сигнал 114 прогнозируемого изображения не генерируется модулем 203 прогнозирования фиксированного режима.
Когда информация запрета прогнозирования поступает на один из модулей прогнозирования, соответствующий модуль прогнозирования не подключается к переключателю 205 режима прогнозирования. Поступление информации запрета прогнозирования одновременно на модуль пиксельно-адаптивного прогнозирования 201 и на модуль направленного прогнозирования 202 не разрешено.
Сигналы 114 прогнозируемого изображения и информация режима прогнозирования, которая прогнозируются каждым из модулей прогнозирования, поступают на внутренний модуль 204 выбора режима. Внутренний модуль 204 выбора режима генерирует сигнал 116 ошибки прогнозирования, полученный вычитанием сигнала 114 прогнозируемого изображения из сигнала 115 входного изображения. Внутренний модуль 204 выбора режима выбирает режим на основании информации режима, прогнозируемой каждым из модулей 116 прогнозирования генерируемого сигнала ошибки прогнозирования.
Режим прогнозирования выбирается с использованием стоимости, используемой в уравнении (1). Внутренний модуль 204 выбора режима передает на контроллер кодирования 108 информацию режима, представляющую, является ли выбранный режим прогнозирования режимом прогнозирования, предсказанным модулем 201 пиксельно-адаптивного прогнозирования, или же режимом прогнозирования, предсказанным модулем 202 направленного прогнозирования. При использовании пиксельно-адаптивного прогнозирования описанный ниже ex_adaptive_intra_flag равен TRUE, и при использовании направленного прогнозирования этот флаг равен FALSE. Контроллер кодирования 108 управляет переключателем 205 режима прогнозирования согласно данной информации режима. Флаг ex_direct_intra_flag определяет, производится ли прогнозирование фиксированного режима. Когда флаг равен TRUE, производится прогнозирование фиксированного режима, и когда он равен FALSE, прогнозирование не осуществляется.
Когда ex_adaptive_intra_flag равен TRUE, переключатель 205 режима прогнозирования подключен к модулю 201 пиксельно-адаптивного прогнозирования. Когда ex_adaptive_intra_flag равен FALSE, переключатель 205 режима прогнозирования подключен к модулю 202 направленного прогнозирования. Когда ex_direct_intra_flag равен TRUE, контроллер кодирования 108 подключает переключатель 205 к модулю 203 прогнозирования фиксированного режима.
По завершении прогнозирования во всех пиксельных блоках внутренний 204 модуль выбора режима выводит сигнал 114 прогнозируемого изображения для макроблока и информацию режима из модуля 102 внутрикадрового прогнозирования.
Переключатель 205 режима прогнозирования подключен к внутреннему преобразователю/квантователю 206. Информация режима и сигнал 114 ошибки прогнозирования, выбранные внутренним модулем 204 выбора режима, поступают на внутренний преобразователь/квантователь 206 через переключатель 205. Внутренний преобразователь/квантователь 206 преобразует входной сигнал 114 ошибки прогнозирования в коэффициент преобразования с использованием дискретного косинусного преобразования и т.д. и генерирует данные коэффициента преобразования. Сигнал ошибки прогнозирования 114 может преобразовываться посредством преобразования, например, вейвлет-преобразования или анализа независимых компонентов. Внутренний преобразователь/квантователь 206 квантует коэффициент преобразования. Параметр квантования, необходимый для квантования, задается контроллером кодирования 108.
Внутренний деквантователь/обратный преобразователь 207 деквантует коэффициент преобразования 117, квантованный внутренним преобразователем/квантователем 206, согласно параметру квантования, заданному контроллером кодирования 108, и подвергает деквантованный коэффициент преобразования обратному преобразованию (например, обратному ДКП) и выводит сигнал 116 ошибки прогнозирования. Сигнал 116 ошибки прогнозирования, декодированный внутренним деквантователем/обратным преобразователем 207, суммируется с сигналом 114 прогнозируемого изображения режима, выбранного внутренним модулем 204 выбора режима, посредством внутреннего сумматора 208. Сигнал суммирования поступает во внутреннюю память 209 опорного изображения в качестве сигнала 119 декодированного изображения.
Внутренняя память опорного изображения 209 накапливает сигнал 119 декодированного изображения в качестве опорного изображения. К опорному изображению, накопленному во внутренней памяти 209 опорного изображения, обращаются в случае генерации сигнала 114 прогнозируемого изображения и пр. посредством модуля 201 пиксельно-адаптивного прогнозирования, модуля 202 направленного прогнозирования или модуля 203 прогнозирования фиксированного режима. Внутренний цикл прогнозирования (процесс, осуществляемый в порядке: модуль 201 пиксельно-адаптивного прогнозирования, модуль 202 направленного прогнозирования или модуль 203 прогнозирования фиксированного режима → внутренний модуль 204 выбора режима → переключатель 205 режима прогнозирования → внутренний преобразователь/квантователь 206 → внутренний обратный преобразователь/деквантователь 207 → внутренняя память 209 опорного изображения, показанные на фиг.2) соответствует одному циклу, когда процесс кодирования осуществляется для всех режимов прогнозирования, выбираемых в пиксельных блоках макроблока.
При переключении между пиксельно-адаптивным прогнозированием, направленным прогнозированием и прогнозированием фиксированного режима, например, в 4x4-пиксельном прогнозировании внутренний цикл прогнозирования выполняется всего 16x3 раз. В этом случае контроллер кодирования 108 сначала подключает переключатель 205 режима прогнозирования к модулю пиксельно-адаптивного прогнозирования 201 для выполнения внутреннего цикла прогнозирования 16 раз и определяет оптимальную комбинацию режимов на уровне макроблока при пиксельно-адаптивном прогнозировании.
Контроллер кодирования 108 подключает переключатель режима прогнозирования 205 к модулю 202 направленного прогнозирования для выполнения внутреннего цикла прогнозирования 16 раз. Контроллер кодирования 108 подключает переключатель 205 режима прогнозирования к модулю 203 прогнозирования фиксированного режима для определения, какой способ прогнозирования используется для осуществления прогнозирования фиксированного режима, на основании состояния внутреннего флага и осуществления прогнозирования определенным способом прогнозирования. Три режима, полученные таким образом, поступают на модуль 103 выбора режима для выбора оптимального режима макроблока.
Аналогично в случае 8x8-пиксельного прогнозирования внутренний цикл прогнозирования выполняется 4x3 раз. Поскольку 16x6-пиксельное прогнозирование не нуждается в генерации локального декодированного изображения, внутренний цикл прогнозирования не требуется выполнять. Таким образом, режим и сигнал прогнозируемого изображения, которые прогнозируются модулем 201 пиксельно-адаптивного прогнозирования или модулем 202 направленного прогнозирования, выводятся из модуля 102 внутрикадрового прогнозирования как есть. По окончании внутреннего цикла прогнозирования для макроблока сигнал 115 входного изображения следующего макроблока является входным сигналом, подлежащим кодированию.
Способ кодирования видеосигнала, осуществляемый устройством 100 кодирования видеосигнала, описан со ссылкой на фиг.3.
Когда один кадр видеосигнала поступает на устройство 100 кодирования видеосигнала (этап S1), делитель 101 изображения делит один кадр на множество макроблоков и далее делит их на множество пиксельных блоков (этап S2). Один разделенный макроблок поступает на модуль 102 внутрикадрового прогнозирования в качестве сигнала 115 входного изображения. Затем модуль 103 выбора режима инициализирует индекс, указывающий режим и стоимость (этап S3).
Модуль 102 внутрикадрового прогнозирования генерирует сигнал 114 прогнозируемого изображения для режима прогнозирования, выбираемого блоком прогнозирования, с использованием сигнала 115 входного изображения (этап S4). Модуль 103 выбора режима вычисляет разность между сигналом 114 прогнозируемого изображения и сигналом 115 входного изображения для генерации сигнала 116 ошибки прогнозирования. Стоимость вычисляется из абсолютного значения суммы SAD количества кодированных битов OH и сигнала 116 ошибки прогнозирования для режима прогнозирования (этап S5).
Модуль 103 выбора режима определяет, меньше ли вычисленная стоимость, чем минимальная стоимость min_cost (этап S6). Модуль 103 выбора режима обновляет минимальную стоимость до вычисленной стоимости и поддерживает выбранный режим кодирования как индекс best_mode, когда вычисленная стоимость меньше минимальной стоимости (ДА) (этап S7). Когда вычисленная стоимость больше минимальной стоимости min_cost (НЕТ), индекс, указывающий номер режима, увеличивается, и выполняется определение, указывает ли увеличенный индекс последний режим (этап S8).
Когда индекс больше, чем MAX, указывающий номер последнего режима (ДА), информация режима кодирования best_mode и сигнал 116 ошибки прогнозирования передаются на преобразователь/квантователь 104 для преобразования и квантования (этап S9). Квантованный коэффициент преобразования 117 поступает на процессор кодирования 107 и подвергается статистическому кодированию совместно с информацией 109 прогнозирования и информацией 110 переключения прогнозирования посредством процессора кодирования 107 (этап S10). Когда индекс меньше, чем MAX, указывающий номер последнего режима (НЕТ), генерируется сигнал 114 прогнозируемого изображения для режима кодирования, указанного следующим индексом (этап S4).
Когда кодирование осуществляется в best_mode, квантованный коэффициент преобразования 117 поступает на деквантователь/обратный преобразователь 105 и подвергается деквантованию и обратному преобразованию для декодирования в сигнал 116 ошибки прогнозирования. Этот декодированный сигнал 116 ошибки прогнозирования суммируется с сигналом 114 прогнозируемого изображения для best_mode, выдаваемым модулем 103 выбора режима, посредством сумматора 118 для генерации сигнала 119 декодированного изображения. Этот сигнал 119 декодированного изображения сохраняется в памяти 106 опорного изображения в качестве опорного изображения.
Производится определение, закончено ли кодирование для одного кадра (этап S11). Когда процесс кодирования завершен (ДА), следующий кадр поступает на устройство 100 кодирования видеосигнала, и процесс кодирования осуществляется повторно. Когда процесс кодирования одного кадра не завершен (НЕТ), сигнал входного изображения следующего пиксельного блока поступает на модуль 102 внутрикадрового прогнозирования для продолжения процесса кодирования.
Как описано выше, устройство 100 кодирования видеосигнала согласно этому варианту осуществления кодирует видеосигнал.
При пиксельно-адаптивном прогнозировании согласно варианту осуществления пиксель прогнозирования вычисляется с использованием взвешенной таблицы фильтра, показанной на фиг.7. В этом случае пиксель прогнозирования прогнозируется в порядке возрастания расстояния между опорным пикселем и пикселем прогнозирования, и значение пикселя, полученное в результате прогнозирования, сохраняется в памяти. Это значение пикселя можно использовать в качестве опорного пикселя, когда расстояние между изображением прогнозирования и опорным изображением возрастает. Таким образом, порядок генерации пикселя прогнозирования можно определить в порядке возрастания расстояния между опорным пикселем и пикселем прогнозирования в направлении прогнозирования. Когда пиксель прогнозирования генерируется сверху вниз при пиксельно-адаптивном вертикальном прогнозировании (режим 0), например, на фиг.6A, можно обращаться к пикселю прогнозирования, сгенерированному при L=1 на момент прогнозирования
L=2. Аналогично при пиксельно-адаптивном уровневом прогнозировании (режим 1) пиксель прогнозирования генерируется в направлении слева направо. Сгенерированный пиксель прогнозирования сохраняется в памяти и используется в качестве опорного пикселя для следующего прогнозирования в любой момент времени. В результате можно снизить арифметическую стоимость вычисления значения прогнозирования для пикселя прогнозирования на большом расстоянии от опорного пикселя и можно снизить стоимость оборудования.
В этом варианте осуществления пиксельно-адаптивное внутрикадровое прогнозирование подробно объясняется для 4x4-пиксельного прогнозирования. Аналогичное прогнозирование можно производить для 8x8-пиксельного блока, 16x16-пиксельного блока и цветоразностного сигнала. В частности, поскольку расстояние между опорным пикселем и пикселем прогнозирования возрастает с увеличением размера пиксельного блока, пиксельно-адаптивное прогнозирование обеспечивает высокий эффект. Количество опорных пикселей, используемых для прогнозирования, увеличивается согласно расстоянию, но его можно уменьшить для снижения арифметической стоимости. Может существовать несколько комбинаций фильтров для прогнозирования каждого пикселя прогнозирования.
В этом варианте осуществления описан случай, когда обрабатываемый кадр делится на множество прямоугольных блоков, каждый из которых имеет размер 16x16 пикселей, и блоки кодируются в последовательности от верхнего левого угла до нижнего правого угла. Однако последовательность кодирования можно изменять. Кадр можно кодировать от нижнего правого угла к верхнему левому углу, а также можно кодировать по спирали от центра кадра. Кадр можно кодировать от верхнего правого угла к нижнему левому углу и можно кодировать к центру от периметра.
В этом варианте осуществления описан случай, когда обрабатываемый кадр делится на множество макроблоков размером 16x16, и внутрикадровое прогнозирование осуществляет на основании 8x8-пиксельного блока или 4x4-пиксельного блока. Однако обрабатываемый блок не обязан иметь однородную форму блока и может иметь размер блока, например, 16x8 пикселей, 8x16 пикселей, 8x4 пикселей, 4x8 пикселей и т.д. Например, 8x4-пиксельное прогнозирование или 2x2-пиксельное прогнозирование можно реализовать по аналогичной схеме.
Кроме того, размер блока преобразования/квантования не обязан быть одинаковым и может составлять, например, 16x8 пикселей, 8x16 пикселей, 8x4 пикселей, 4x8 пикселей. Кроме того, не обязательно брать одинаковый размер блока в одном макроблоке. В макроблоке можно обеспечивать разные размеры блока. Например, 8x8-пиксельное прогнозирование и 4x4-пиксельное прогнозирование могут сосуществовать в макроблоке, как показано на фиг.4E. В этом случае количество кодированных битов, необходимое для кодирования разделенных блоков, возрастает с увеличением количества разделенных блоков, но можно реализовать внутрикадровое прогнозирование с более высокой эффективностью прогнозирования, и ошибку прогнозирования можно снизить. Соответственно, размер блока можно выбирать с учетом баланса между количеством кодированных битов коэффициента преобразования и локального декодированного изображения.
В этом варианте осуществления режим прогнозирования объясняется только для внутрикадрового прогнозирования. Однако можно использовать межкадровое прогнозирование для осуществления прогнозирования с использованием корреляции между кадрами. Эту систему прогнозирования можно использовать в качестве внутрикадрового прогнозирования, выбранного при кодировании среза в межкадровом кодировании. В этом случае переключение между внутрикадровым прогнозированием и межкадровым прогнозированием не обязательно производить на уровне макроблока, и переключение можно производить для каждого 8x8-пиксельного блока, и можно производить разделение на 8x4-пиксельные блоки.
В этом варианте осуществления предусмотрены преобразователь/квантователь 104 и деквантователь/обратный преобразователь 105, но преобразование/квантование и деквантование/обратное преобразование не всегда обязательно применять ко всем сигналам ошибки прогнозирования. Сигнал ошибки прогнозирования может кодироваться процессором кодирования 107 как есть, и процесс квантования/деквантования можно опустить. Аналогично процесс преобразования/обратного преобразования проводить не обязательно.
Опишем способ кодирования ex_adaptive_intra_flag для переключения между пиксельно-адаптивным прогнозированием и направленным прогнозированием и ex_direct_intra_flag для осуществления прогнозирования фиксированного режима.
Структура синтаксиса, используемого в этом варианте осуществления, схематически показана на фиг.13. Синтаксисы состоят, в основном, из трех частей, т.е. синтаксиса высокого уровня (1301), синтаксиса уровня срезов (1304) и синтаксиса уровня макроблоков (1307). Синтаксис высокого уровня (1301) наполняется информацией синтаксиса более высоких уровней, чем срез. Синтаксис уровня срезов (1304) определяется информацией, необходимой для каждого среза. Синтаксис уровня макроблоков (1307) определяется значением изменения или информацией режима для параметра квантования, необходимого для каждого макроблока.
Каждый синтаксис состоит из более детализированных синтаксисов. Иными словами, синтаксис высокого уровня (1301) состоит из последовательностей, например, синтаксиса набора параметров последовательности (1302), синтаксиса набора параметров изображения (1303) и синтаксиса уровня изображения. Синтаксис уровня срезов (1304) состоит из синтаксиса заголовка среза (1305) и синтаксиса данных среза (1306). Синтаксис уровня макроблоков (1307) состоит из синтаксиса слоя макроблока (1308) и синтаксиса прогнозирования макроблока (1309).
В этом варианте осуществления необходимая информация синтаксиса представляет собой синтаксис набора параметров последовательности (1302), синтаксис набора параметров изображения (1303), синтаксис заголовка среза (1305) и синтаксис слоя макроблока (1308). Соответствующие синтаксисы будут объяснены ниже.
ex_adaptive_intra_in_seq_flag, показанный в синтаксисе набора параметров последовательности, показанном на фиг.14, - это флаг, указывающий, изменяется ли пиксельно-адаптивное прогнозирование для каждой последовательности. Когда флаг равен TRUE, пиксельно-адаптивное прогнозирование и направленное прогнозирование можно переключать на уровне последовательности. Когда флаг равен FALSE, невозможно использовать пиксельно-адаптивное прогнозирование в последовательности.
ex_adaptive_intra_in_pic_flag, показанный в синтаксисе набора параметров изображения, показанном на фиг.15, - это флаг, указывающий, изменяется ли пиксельно-адаптивное прогнозирование для каждого изображения. Когда флаг равен TRUE, пиксельно-адаптивное прогнозирование и направленное прогнозирование можно переключать на уровне изображений. Когда флаг равен FALSE, невозможно использовать пиксельно-адаптивное прогнозирование в изображении.
ex_adaptive_intra_in_slice_flag, показанный в синтаксисе заголовка среза, показанном на фиг.16, - это флаг, указывающий, изменяется ли пиксельно-адаптивное прогнозирование для каждого среза. Когда флаг равен TRUE, можно переключаться между пиксельно-адаптивным прогнозированием и направленным прогнозированием на уровне среза. Когда флаг равен FALSE, невозможно использовать пиксельно-адаптивное прогнозирование в срезе.
ex_adaptive_intra_flag, показанный в синтаксисе уровня макроблоков, показанном на фиг.17, - это флаг, указывающий, используется ли пиксельно-адаптивное прогнозирование в макроблоке. Когда флаг равен TRUE, используется пиксельно-адаптивное прогнозирование. Когда флаг равен FALSE, используется направленное прогнозирование. Этот флаг эффективен, когда, по меньшей мере, один из ex_adaptive_intra_in_seq_flag, ex_adaptive_intra_in_pic_flag и ex_adaptive_intra_in_slice_flag равны TRUE. Прогнозирование типа макроблока можно использовать только при внутрикадровом прогнозировании.
ex_direct_intra_in_seq_flag, показанный в синтаксисе набора параметров последовательности, показанном на фиг.18, - это флаг, указывающий, изменяется ли прогнозирование фиксированного режима для каждой последовательности. Когда флаг равен TRUE, можно переключаться между использованием и неиспользованием прогнозирования фиксированного режима на уровне последовательности. Когда флаг равен FALSE, невозможно использовать прогнозирование фиксированного режима в последовательности.
ex_direct_intra_in_pic_flag, показанный в синтаксисе набора параметров изображения, показанном на фиг.19, - это флаг, указывающий, изменяется ли прогнозирование фиксированного режима для каждого изображения. Когда флаг равен TRUE, можно переключаться между использованием и не использованием прогнозирования фиксированного режима на уровне изображений. Когда флаг равен FALSE, невозможно использовать прогнозирование фиксированного режима в изображении.
ex_direct_intra_in_slice_flag, показанный в синтаксисе заголовка среза, показанном на фиг.20, - это флаг, указывающий, изменяется ли прогнозирование фиксированного режима для каждого среза. Когда флаг равен TRUE, можно переключаться между использованием и не использованием прогнозирования фиксированного режима на уровне среза. Когда флаг равен FALSE, невозможно использовать прогнозирование фиксированного режима в срезе.
ex_direct_intra_flag, показанный в синтаксисе уровня макроблоков, показанном на фиг.21A, - это флаг, указывающий, используется ли прогнозирование фиксированного режима в макроблоке. Когда флаг равен TRUE, прогнозирование фиксированного режима используется. Когда флаг равен FALSE, прогнозирование фиксированного режима нельзя использовать. Этот флаг эффективен только когда, по меньшей мере, один из ex_direct_intra_in_seq_flag, ex_direct_intra_in_pic_flag и ex_direct_intra_in_slice_flag равен TRUE. Прогнозирование типа макроблока можно использовать только при внутрикадровом прогнозировании.
На фиг.21B показан синтаксис прогнозирования макроблока. В этом синтаксисе хранится информация режима прогнозирования в соответствующем макроблоке. При выборе режима прогнозирования, отличного от прогнозирования фиксированного режима, этот синтаксис задает соответствующую информацию режима прогнозирования.
prev_intra4x4_pred_mode_flag, показанный в этом синтаксисе, не используется, когда ex_direct_intra_flag равен TRUE. prev_intra4x4_pred_mode_flag - это флаг, указывающий, совпадает ли режим прогнозирования (current_mode), оцененный соседними блоками прогнозирования, с режимом прогнозирования (pred_mode), фактически выбранным для предназначенного блока прогнозирования. Когда они совпадают друг с другом, т.е. флаг равен TRUE, rem_intra4x4_pred_mode не используется. Когда они не совпадают друг с другом, дополнительно используется rem_intra4x4_pred_mode. rem_intra4x4_pred_mode представляет величину расхождения между текущим режимом и режимом прогнозирования (pred_mode), фактически выбранным для предназначенного блока прогнозирования. Когда pred_mode больше, чем current_mode, сохраняется значение rem_intra4x4_pred_mode = current_mode. Когда pred_mode меньше или равен current_mode, сохраняется значение rem_intra4x4_pred_mode = current_mode+1.
Когда оба ex_direct_intra_flag и ex_adaptive_intra_flag равны TRUE, используется режим кодирования, который не передает информацию режима при пиксельно-адаптивном прогнозировании. Когда ex_direct_intra_flag равен TRUE, и ex_adaptive_intra_flag равен FALSE, используется режим кодирования, который не передает информацию режима при направленном прогнозировании.
Данный вариант осуществления повышает точность прогнозирования для пикселя прогнозирования, отстоящего от опорного пикселя, и снижает ошибку прогнозирования.
Второй вариант осуществления (кодирование)
В устройстве 1000 кодирования видеосигнала согласно второму варианту осуществления, показанном на фиг.10, модуль 1001 временного кодирования/измерения количества кодированных битов, модуль 1002 измерения искажения кодирования, переключатель кодирования 1003 объединены с устройством кодирования видеосигнала согласно первому варианту осуществления. Поскольку модуль внутрикадрового прогнозирования и модуль выбора режима осуществляют иные функции, чем в первом варианте осуществления, они обозначены иными позициями, чем в первом варианте осуществления. В данном варианте осуществления аналогичные позиции используются для обозначения аналогичных структурных элементов, соответствующих аналогичным элементам, показанным на фиг.1, и любое дополнительное объяснение опущено для краткости.
Видеосигнал, поступающий на устройство 1000 кодирования видеосигнала, делится на множество пиксельных блоков делителем кадра 101. Каждый блок поступает на модуль 1004 внутрикадрового прогнозирования в качестве сигнала 115 входного изображения. Модуль 1004 внутрикадрового прогнозирования генерирует сигнал 114 прогнозируемого изображения для всех режимов прогнозирования, выбираемых в макроблоке, с использованием опорного изображения, временно хранящегося в памяти 106 опорного изображения. Однако когда следующее прогнозирование невозможно произвести, пока не будет сгенерировано локальное декодированное изображение в макроблоке, наподобие внутрикадрового прогнозирования согласно H.264 (4x4-пиксельное прогнозирование (фиг.4C) или 8x8-пиксельное прогнозирование (фиг.4D)), модуль 1004 внутрикадрового прогнозирования может осуществлять преобразование, и квантование, и деквантование, и обратное преобразование.
Сигнал 114 прогнозируемого изображения, генерируемый модулем 1004 внутрикадрового прогнозирования, передается на модуль 1005 выбора режима. Модуль 1005 выбора режима генерирует сигнал 116 ошибки прогнозирования путем вычитания сигнала 114 прогнозируемого изображения из сигнала 115 входного изображения. Модуль 1005 выбора режима принимает количество 1006 кодированных битов, накопленных модулем 1001 временного кодирования/измерения количества кодированных битов, и искажение кодирования 1007, вычисленное модулем 1002 измерения искажения кодирования и вычисляет стоимость кодирования. Стоимость кодирования вычисляется согласно следующему уравнению (24):
J = D + λ ×R
(24)
где R указывает количество кодированных битов, D - искажение кодирования, и λ - константа, определяемая на основании ширины квантования и значения параметра квантования. Режим выбирается исходя из стоимости кодирования, полученной таким образом. Режим, обеспечивающий стоимость J, значение которого минимально, выбирается как оптимальный режим.
В этом варианте осуществления используются количество 1006 кодированных битов и искажение кодирования 1007. Однако режим можно выбирать с использованием только количества кодированных битов или только искажения кодирования. Стоимость можно вычислить с использованием активности сигнала 115 входного изображения, и функцию стоимости можно вычислить с использованием ширины квантования и параметра квантования. Искажение кодирования, взвешенное визуальной частотной характеристикой или чувствительностью и т.д., используется в качестве стоимости кодирования.
Модуль 1005 выбора режима подключен к преобразователю/квантователю 104. Информация режима и сигнал 116 ошибки прогнозирования, которые выбираются модулем 1005 выбора режима, поступают на преобразователь/квантователь 104. Преобразователь/квантователь 104 выводит квантованный коэффициент преобразования 117, подвергая сигнал 116 ошибки прогнозирования преобразованию и квантованию.
Коэффициент преобразования 117 передается на переключатель 1003 временного кодирования. Когда флаг временного кодирования задан равным TRUE контроллером кодирования 108, переключатель 1003 временного кодирования подключает выход преобразователя/квантователя 104 к модулю 1001 временного кодирования/измерения количества кодированных битов. Коэффициент преобразования 117 поступает на модуль 1001 временного кодирования/измерения количества кодированных битов и временно статистически кодируется. В этом случае модуль 1001 временного кодирования/измерения количества кодированных битов накапливает количество кодированных битов и вычисляет оценку полного количества кодированных битов на основании фактического кодирования, но выводит кодированные данные. Количество 1006 кодированных битов, подсчитанное модулем 1001 временного кодирования/измерения количества кодированных битов, передается на модуль 1002 измерения искажения кодирования.
Модуль 1002 измерения искажения кодирования не только принимает сигнал 119 декодированного изображения, генерируемый как сумма сигнала 116 ошибки прогнозирования, декодированного деквантователем/обратным преобразователем 105, и сигнала 114 прогнозируемого изображения, в качестве входного сигнала, но также принимает сигнал 115 входного изображения и вычисляет среднеквадратическую ошибку (искажение кодирования 1007) сигнала 119 декодированного изображения и сигнала 115 входного изображения. Модуль 1002 измерения искажения кодирования передает количество 1006 кодированных битов в качестве входа и искажение кодирования 1007, обеспеченное путем вычисления, на модуль 1005 определения режима.
Цикл временного кодирования (процесс, осуществляемый в порядке: модуль 1004 внутрикадрового прогнозирования → модуль 1005 выбора режима → преобразователь/квантователь 104 → переключатель 1003 временного кодирования → модуль 1001 временного кодирования/измерения количества кодированных битов → модуль 1002 измерения искажения кодирования, показанные на фиг.10) соответствует одному циклу, когда процесс кодирования осуществляется для одного режима прогнозирования, выбираемого для макроблока. При наличии десяти возможных режимов цикл временного кодирования повторяется десять раз. Когда цикл временного кодирования закончен для всех режимов, выбираемых в макроблоке, модуль 1005 выбора режима задает флаг предварительного кодирования для контроллера кодирования 108, равным FALSE.
Когда флаг временного кодирования задан равным FALSE посредством контроллера кодирования 108, переключатель 1003 временного кодирования подключает выход преобразователя/квантователя 104 к процессору кодирования 107. При этом модуль 1005 определения режима вычисляет стоимости кодирования для всех режимов и передает коэффициент преобразования 117 и информацию режима одного режима из режимов, который обеспечивает минимальную стоимость кодирования, на процессор кодирования 107. Процессор кодирования 107 кодирует фактически квантованный коэффициент преобразования 117 согласно способу, предписанному входной информацией режима. В этом случае данные, подлежащие окончательному кодированию, уже однажды закодированы посредством временного кодирования. Таким образом, коэффициент преобразования и информация режима для режима, в котором стоимость кодирования предпочтительна на момент временного кодирования, сохраняются в памяти, процессор кодирования 107 может обрабатывать путем считывания кодированные данные, сохраненные в памяти, и копировать их без кодирования.
По завершении цикла кодирования для макроблока объекта сигнал 115 входного изображения следующего блока поступает на модуль 1004 внутрикадрового прогнозирования для кодирования следующего блока. Контроллер кодирования 108 осуществляет управление обратной связью посредством количества кодированных битов, управления характеристики квантования, управления режимами и т.д. и осуществляет управление скоростью для управления количеством кодированных битов, управления модулем прогнозирования и управления кодированием в целом.
Функция каждого из вышеупомянутых модулей может быть реализована в виде программы, хранящейся на компьютере.
Способ кодирования видеосигнала согласно данному варианту осуществления описан со ссылкой на модуль 1004 внутрикадрового прогнозирования, показанный на фиг.11. В данном варианте осуществления аналогичные позиции используются для обозначения аналогичных структурных элементов, соответствующих аналогичным элементам, показанным на фиг.2, и любое дополнительное объяснение опущено для краткости.
Когда сигнал 115 входного изображения поступает на модуль 1004 внутрикадрового прогнозирования, сигнал поступает на модуль 201 пиксельно-адаптивного прогнозирования, модуль 202 направленного прогнозирования и модуль 203 прогнозирования фиксированного режима. Сигнал 114 прогнозируемого изображения, соответствующий режиму прогнозирования и форме блока прогнозирования, генерируется каждым из модуля 201 пиксельно-адаптивного прогнозирования, модуля 202 направленного прогнозирования и модуля 203 прогнозирования фиксированного режима.
Сигналы 114 прогнозируемого изображения и информация режима прогнозирования, которые прогнозируются модулями прогнозирования 201, 202 и 203 соответственно, поступают на внутренний модуль 1104 выбора режима. Внутренний модуль 1104 выбора режима генерирует сигнал 116 ошибки прогнозирования путем вычитания сигнала 114 прогнозируемого изображения из сигнала 115 входного изображения. Внутренний модуль 1104 выбора режима вычисляет внутреннюю стоимость кодирования на основании количества 1105 кодированных битов, вычисленного внутренним модулем 1101 временного кодирования/измерения количества кодированных битов, и внутреннее искажение кодирования, вычисленное внутренним модулем 1102 измерения искажения кодирования согласно уравнению (24), и выбирает режим, обеспечивающий минимальное значение стоимости кодирования J, в качестве оптимального режима.
В этом варианте осуществления внутреннее количество 1105 кодированных битов и внутреннее искажение кодирования 1006 используются для определения режима. Однако для определения режима используется только количество кодированных битов или только искажение кодирования. Стоимость можно вычислить с использованием активности сигнала входного изображения, и функцию стоимости можно вычислить с использованием ширины квантования и параметра квантования. Искажение кодирования, взвешенное визуальной частотной характеристикой или чувствительностью и т.д., используется в качестве стоимости кодирования.
Внутренний модуль 1104 выбора режима передает на контроллер кодирования 108 информацию режима, указывающую, является ли выбранный режим режимом, прогнозируемым модулем 201 пиксельно-адаптивного прогнозирования, режимом, прогнозируемым модулем 202 направленного прогнозирования, или режимом, прогнозируемым модулем 203 прогнозирования фиксированного режима. Контроллер кодирования 108 управляет переключателем 205 режима прогнозирования согласно данной информации режима.
Информация режима и сигнал ошибки прогнозирования, выбранные внутренним модулем 1104 выбора режима, поступают на внутренний преобразователь/квантователь 206. Преобразователь/квантователь 206 подвергает ортогональному преобразованию входной сигнал 116 ошибки прогнозирования для генерации данных коэффициента преобразования 117. Преобразователь/квантователь 206 квантует коэффициент преобразования. Параметр квантования, необходимый для квантования, задается контроллером кодирования 108.
Контроллер кодирования 108 обращается к флагу временного кодирования и подключает внутренний переключатель 1103 временного кодирования к внутреннему модулю 1101 временного кодирования/измерения количества кодированных битов, в результате чего коэффициент преобразования и информация режима для режима поступает на внутренний модуль 1101 временного кодирования/измерения количества кодированных битов. Внутренний модуль 1101 временного кодирования/измерения количества кодированных битов подвергает статистическому кодированию эти входные данные. В этом случае внутренний модуль 1101 временного кодирования/измерения количества кодированных битов накапливает количество кодированных битов и вычисляет оценку полного количества кодированных битов, исходя из фактического кодирования, но не выводит кодированные данные. Внутреннее количество 1105 кодированных битов, измеренное внутренним модулем 1101 временного кодирования/измерения количества кодированных битов, передается на внутренний модуль 1102 измерения искажения кодирования.
Внутренний модуль 1102 измерения искажения кодирования не только принимает сигнал 119 декодированного изображения, генерируемый путем суммирования сигнала 116 ошибки прогнозирования, декодированного внутренним деквантователем/обратным преобразователем 207, и сигнала 114 прогнозируемого изображения, в качестве входного сигнала, но также принимает сигнал 115 входного изображения и вычисляет среднеквадратическую ошибку (внутреннее искажение кодирования 1106) сигнала 119 декодированного изображения и сигнала 115 входного изображения. Внутренний модуль 1102 измерения искажения кодирования передает внутреннее количество 1105 кодированных битов, принятое как входной сигнал, и внутреннее искажение кодирования 1106, обеспеченное путем вычисления, на внутренний модуль 1104 определения режима.
Внутренний цикл временного кодирования (процесс, осуществляемый в порядке: соответствующий модули прогнозирования → внутренний модуль 1104 выбора режима → переключатель 205 режима прогнозирования → внутренний преобразователь/квантователь 206 → внутренний переключатель 1103 временного кодирования → внутренний модуль 1101 измерения временного кодирования/ количества кодированных битов → внутренний модуль 1102 измерения искажения кодирования, показанные на фиг.10) соответствует одному циклу, когда процесс кодирования осуществляется для одного режима прогнозирования, выбираемого для макроблока. При наличии десяти возможных режимов внутренний цикл временного кодирования повторяется десять раз. Когда внутренний цикл временного кодирования закончен для всех режимов, которые могут быть выбраны для пиксельного блока, внутренний модуль 1104 выбора режима задает флаг временного кодирования для контроллера кодирования 108, равным FALSE.
Когда, например, производится 4x4-пиксельное прогнозирование, пиксельно-адаптивное прогнозирование, направленное прогнозирование и прогнозирование фиксированного режима осуществляются на одном 4x4-пиксельном блоке. В этом случае цикл временного кодирования повторяется 9+9+1 раз. Вышеописанные прогнозы делаются для 16 блоков при 4x4-пиксельном прогнозировании, внутренний цикл временного кодирования повторяется 16 x (9+9+1) раз.
Когда флаг временного кодирования задан равным FALSE посредством контроллера кодирования 108, внутренний переключатель 1103 временного кодирования подключает выход внутреннего преобразователя/квантователя 206 к выходу модуля 1004 внутрикадрового прогнозирования. При этом внутренний модуль 1104 определения режима вычисляет стоимости кодирования для всех режимов и передает на выход модуля 1004 внутрикадрового прогнозирования коэффициент преобразования 117 и информацию режима для одного из режимов, который обеспечивает минимальную стоимость кодирования.
Способ кодирования видеосигнала, осуществляемый устройством 1000 кодирования видеосигнала, описан со ссылкой на фиг.12.
Когда видеосигнал поступает на устройство 1000 кодирования видеосигнала (этап S001), делитель изображения 101 делит один кадр видеосигнала на множество макроблоков. Один разделенный макроблок поступает на модуль 102 внутрикадрового прогнозирования в качестве сигнала 115 входного изображения (этап S002). При этом модуль 1005 выбора режима и внутренний модуль 1104 выбора режима инициализируют индекс, указывающий режим и стоимость (этап S003).
Модуль 1004 внутрикадрового прогнозирования генерирует сигнал 114 прогнозируемого изображения для режима, выбираемого для блока прогнозирования с использованием сигнала 115 входного изображения (этап S004). Модуль 1005 выбора режима вычисляет ошибку между сигналом 114 прогнозируемого изображения и сигналом 115 входного изображения для генерации сигнала ошибки прогнозирования 116. Преобразователь/квантователь 104 преобразует и квантует сигнал 116 ошибки прогнозирования и вводит квантованный коэффициент преобразования 117 на модуль 1001 временного кодирования/измерения количества кодированных битов. Модуль 1001 временного кодирования/измерения количества кодированных битов временно кодирует коэффициент преобразования (этап S005) и накапливает количество кодированных битов. Коэффициент преобразования подвергается локальному декодированию, и среднеквадратическая ошибка сигнала входного изображения и сигнала декодированного изображения вычисляется модулем 1002 измерения искажения кодирования. Стоимость кодирования вычисляется на основании количества кодированных битов R и искажения кодирования D (этап S006).
Модуль 1005 выбора режима определяет, меньше ли вычисленная стоимость кодирования, чем минимальная стоимость кодирования min_cost (этап S007). Если она меньше (ДА), модуль 1005 выбора режима обновляет минимальную стоимость кодирования до стоимости кодирования, поддерживает режим кодирования, соответствующий вычисленной стоимости кодирования, как индекс best_mode и сохраняет временно кодированные данные во временном хранилище (этап S008). Когда вычисленная стоимость кодирования больше минимальной стоимости кодирования min_cost (НЕТ), модуль 1005 выбора режима увеличивает индекс, указывающий номер режима, и определяет, указывает ли увеличенный индекс последний режим (этап S009).
Когда индекс больше, чем MAX, указывающий номер последнего режима (ДА), индекс подвергается статистическому кодированию совместно с информацией режима кодирования best_mode, информацией прогнозирования 109 и информацией переключения прогнозирования 110 посредством процессора кодирования 107 (этап S010). Когда индекс меньше, чем MAX, указывающий номер последнего режима (т.е. результат определения НЕТ), генерируется сигнал 115 прогнозируемого изображения для режима кодирования, указанного следующим индексом (этап S004).
Когда кодирование производится в best_mode, квантованный коэффициент преобразования 117 поступает на деквантователь/обратный преобразователь 105 для деквантования и обратного преобразования. Декодированный сигнал 116 ошибки прогнозирования суммируется с сигналом 114 прогнозируемого изображения для best_mode, обеспеченным модулем 1004 выбора режима, посредством сумматора 118 и сохраняется в памяти 106 опорного изображения в качестве сигнала 119 декодированного изображения.
Затем производится определение, завершено ли кодирование одного кадра (этап S11). Когда кодирование завершено (ДА), сигнал входного изображения следующего кадра поступает на делитель кадра 101, и процесс кодирования осуществляется для следующего кадра. Если процесс кодирования одного кадра не завершен (НЕТ), входной сигнал следующего макроблока поступает на модуль 1004 внутрикадрового прогнозирования, и процесс кодирования продолжается.
Способ кодирования видеосигнала согласно этому варианту осуществления выполняется устройством 1000 кодирования видеосигнала, как описано выше. Согласно данному варианту осуществления количество кодированных битов может адекватно выделяться каждому блоку с использованием временного кодирования и индекса, благодаря чему эффективность кодирования повышается.
Третий вариант осуществления (кодирование)
В третьем варианте осуществления, показанном на фиг.22, первый модуль 2202 внутрикадрового прогнозирования и второй модуль 2203 внутрикадрового прогнозирования объединены со вторым вариантом осуществления. Поскольку делитель кадра 2201 осуществляют иные функции, чем во втором варианте осуществления, они обозначены иными позициями, чем во втором варианте осуществления. Согласно варианту осуществления, показанному на фиг.10, аналогичные позиции используются для обозначения аналогичных структурных элементов, соответствующих элементам, аналогичным согласно варианту осуществления, показанному на фиг.1, и любое дополнительное объяснение опущено для краткости.
В устройстве 2200 кодирования видеосигнала, показанном на фиг.22, первый модуль 2202 внутрикадрового прогнозирования отличается от первого модуля 2203 внутрикадрового прогнозирования только размером блока прогнозирования, и способ прогнозирования такой же, как осуществляемый модулем 1004 внутрикадрового прогнозирования, показанным на фиг.11. Делитель изображения 2201 делит входной видеосигнал на множество пиксельных блоков. При этом макроблок делится на блоки разной формы. Один макроблок делится на 16 4x4-пиксельных блоков, и другой макроблок делится на четыре 8x8-пиксельных блоков. Соответствующие разделенные блоки поступают на первый модуль 2202 внутрикадрового прогнозирования и второй модуль 2203 внутрикадрового прогнозирования в качестве сигнала 115 входного изображения. Первый модуль 2202 внутрикадрового прогнозирования осуществляет 4x4-пиксельное прогнозирование. Создаются четыре прогнозируемых изображения, каждое из которых сконфигурировано 8x8-пиксельным блоком, состоящим из четырех 4x4-пиксельных блоков, которые собираются. Второй модуль 2203 внутрикадрового прогнозирования осуществляет 8x8-пиксельное прогнозирование. Иными словами, второй модуль 2203 внутрикадрового прогнозирования осуществляет 8x8-пиксельное прогнозирование четыре раза. В момент времени, когда прогнозирование для первого 8x8-пиксельного блока завершено, сигнал прогнозируемого изображения на основании 4x4-пиксельного прогнозирования и сигнал прогнозируемого изображения на основании 8x8-пиксельного прогнозирования поступают на модуль 1005 выбора режима. Модуль 1005 выбора режима вычисляет стоимости кодирования согласно данной системе и выбирает из вычисленных стоимостей кодирования режим прогнозирования, обеспечивающий минимальную стоимость кодирования. Декодированное изображение, соответствующее выбранному режиму, накапливается в памяти 106 опорного изображения посредством преобразователя/квантователя 104 и деквантователя/обратного преобразователя 105.
Когда режим первого 8x8-пиксельного блока определен, прогнозирование следующего 8x8-пиксельного блока производится аналогично. Иными словами, 4x4-пиксельное прогнозирование и 8x8-пиксельное прогнозирование может переключаться на уровне 8x8 пикселей в макроблоке. На фиг.4E показан пример изменения размера блока прогнозирования в макроблоке. Когда все режимы четырех 8x8-пиксельных блоков определены, контроллер кодирования 108 подключает переключатель 1003 временного кодирования к процессору кодирования 107 для осуществления кодирования. Одновременно с этим кодируется информация, указывающая, кодируется ли 8x8 пиксельный блок посредством 4x4-пиксельного прогнозирования или 8x8-пиксельного прогнозирования. Эта информация кодируется процессором кодирования 107 как данные 4 битов на макроблоке.
Ниже описан синтаксис информации изменения размера блока, необходимой для изменения информации прогнозирования.
ex_adaptive_blocksize_in_seq_flag, показанный в синтаксисе набора параметров последовательности, показанном на фиг.23, - это флаг, указывающий, изменяется ли прогнозирование изменения размера блока для каждой последовательности. Когда флаг равен TRUE, можно переключаться между использованием и не использованием прогнозирования изменения размера блока на уровне последовательности. Когда флаг равен FALSE, невозможно использовать прогнозирование изменения размера блока в последовательности.
ex_adaptive_blocksize_in_pic_flag, показанный в синтаксисе набора параметров изображения, показанном на фиг.24, - это флаг, указывающий, изменяется ли прогнозирование изменения размера блока для каждого изображения. Когда флаг равен TRUE, можно переключаться между использованием и не использованием прогнозирования изменения размера блока на уровне изображений. Когда флаг равен FALSE, невозможно использовать прогнозирование изменения размера блока в изображении.
ex_adaptive_blocksize_in_slice_flag, показанный в синтаксисе заголовка среза, показанном на фиг.25, - это флаг, указывающий, изменяется ли прогнозирование изменения размера блока для каждого среза. Когда флаг равен TRUE, можно переключаться между использованием и не использованием прогнозирования изменения размера блока на уровне среза. Когда флаг равен FALSE, невозможно использовать прогнозирование изменения размера блока в срезе.
ex_adaptive_blocksize_mode, показанный в синтаксисе уровня макроблоков, показанном на фиг.26, - это данные 4 битов, соответствующие информации изменения размера блока. На фиг.28A показано, является ли 8x8-пиксельный блок 4x4-пиксельным прогнозированием или 8x8-пиксельным прогнозированием, в порядке, соответствующем A, B, C и D. Когда, например, ex_adaptive_blocksize_mode показывает 1100, можно видеть, что блоки A и B кодируются посредством 8x8-пиксельного прогнозирования, и блоки C и D кодируются посредством 4x4-пиксельного прогнозирования, как показано на фиг.28B. Эти данные эффективны, когда, по меньшей мере, один из ex_adaptive_blocksize_in_seq_flag, ex_adaptive_blocksize_in_pic_flag, и ex_adaptive_blocksize_in_slice_flag равен TRUE.
Синтаксис не передается слоем макроблока, но может передаваться типом макроблока. На фиг.27 показан пример присвоения информации изменения размера блока типу макроблока. Когда mb_type равен 0, макроблок прогнозируется только посредством 4x4-пиксельного прогнозирования. Когда mb_type равен 1, макроблок прогнозируется только посредством 8x8-пиксельноо прогнозирования. Когда mb_type представляет от 1 до 5, осуществляется прогнозирование изменения размера блока. Intra_A_B_C_D показывает, какой блок используется для 8x8-пиксельного прогнозирования. Позиции блоков A, B, C и D показаны на фиг.28A. Когда mb_type равен, например, 3, можно видеть, что блоки A и B прогнозируются посредством 8x8-пиксельного прогнозирования. Когда mb_type равен 6, можно видеть, что производится 16x16-пиксельное прогнозирование. Можно добиться высокой эффективности прогнозирования, назначая, таким образом, информацию изменения размера блока для mb_type и малый индекс для режима высокой частоты выбора.
Как рассмотрено выше, этот вариант осуществления осуществляет фактически процесс временного кодирования в каждом из множества выбираемых режимов кодирования в единицах 8x8 пикселей, выбирает режим, соответствующий минимум одной из стоимостей кодирования, вычисленных на основании количества кодированных битов для кодированных данных на основании режима каждого 8x8-пиксельного блока и его искажения кодирования, и выводит кодированные данные на основании выбранного режима. Таким образом, поскольку выбор режима осуществляется путем изменения размера блока прогнозирования для каждого 8x8-пиксельного блока в макроблоке, форму блока, допускающую кодирование с высокой эффективностью кодирования, можно выбирать согласно способу прогнозирования. Иными словами, предпочтительное кодирование можно осуществлять согласно содержимому пиксельного блока и т.д.
Таким образом, поскольку кодирование, имеющее большую нагрузку, не обязательно осуществлять для всех соответствующих режимов, и кодирование надлежит осуществлять только в выбранном режиме, можно подавлять возрастание операционной нагрузки. Иными словами, этот вариант осуществления позволяет реализовать выбор предпочтительного режима с высокой скоростью и кодирование видеосигнала с высокой скоростью и высокой эффективностью сжатия.
Как отмечено выше, в случае кодирования пиксельного блока в выбранном режиме декодированный видеосигнал подлежит генерации только в выбранном режиме. Кодирование не обязательно всегда выполнять в цикле для определения режима прогнозирования.
Рассмотрим устройство декодирования видеосигнала, соответствующее устройству кодирования видеосигнала.
Четвертый вариант осуществления (декодирование)
Согласно фиг.29 в устройстве декодирования видеосигнала кодированные данные, выводимые устройством кодирования видеосигнала и передаваемые через систему передачи или систему носителя записи, сохраняются в входном буфере 901 один раз. Кодированные данные делятся на множество пиксельных блоков согласно синтаксису для каждого кадра демультиплексором 902 и затем поступают на декодер 903 кодовых строк. Декодер 903 кодовых строк декодирует кодовую строку каждого синтаксиса кодированных данных для каждого из синтаксиса высокого уровня, синтаксиса уровня срезов и синтаксиса уровня макроблоков согласно структуре синтаксиса, показанной на фиг.13. В результате восстанавливаются квантованный коэффициент преобразования, матрица квантования, параметр квантования, информация режима прогнозирования, информация изменения прогнозирования.
Квантованный коэффициент преобразования деквантуется с использованием матрицы квантования и параметра квантования восстановленной информации деквантователем/обратным преобразователем 904, и подвергается обратному ортогональному преобразованию (например, обратному дискретному косинусному преобразованию). Здесь описано обратное ортогональное преобразование. Однако когда вейвлет-преобразование производится на кодере, деквантователь/обратный преобразователь 904 может выполнять обратное квантование и обратное вейвлет-преобразование, соответствующее обратному ортогональному преобразованию. Коэффициент, преобразованный деквантователем/обратным преобразователем 904, передается на сумматор 905 в качестве сигнала 911 ошибки. Сумматор 905 суммирует прогнозируемый сигнал 916, выдаваемый модулем 907 внутрикадрового прогнозирования, и сигнал 911 ошибки, и вводит сигнал суммирования в память 906 опорного изображения в качестве декодированного сигнала 912. Декодированный сигнал 912 передается в выходной буфер 913 и выводится с хронированием, регулируемым контроллером декодирования 908.
Информация 909 режима прогнозирования и информация 910 изменения прогнозирования, декодированные декодером 903 кодовых строк, поступают на модуль 907 внутрикадрового прогнозирования. Уже кодированный опорный сигнал 914 считывается из памяти 906 опорного изображения в модуль 907 внутрикадрового прогнозирования. Модуль 907 внутрикадрового прогнозирования генерирует прогнозируемый сигнал 916 на основании входной информации и вводит его в сумматор 905. Контроллер декодирования 908 управляет входным буфером 901 и выходным буфером 913 или хронированием декодирования и т.д.
Модуль 907 внутрикадрового прогнозирования устройства 900 декодирования видеосигнала, реализующего способ декодирования видеосигнала согласно данному варианту осуществления, описан со ссылкой на фиг.30. Согласно варианту осуществления, показанному на фиг.30, аналогичные позиции используются для обозначения аналогичных структурных элементов, соответствующих элементам, аналогичным согласно варианту осуществления, показанному на фиг.29, и любое дополнительное объяснение опущено для краткости.
Когда информация 909 режима прогнозирования и информация 910 переключения прогнозирования, декодированные декодером 903 кодовых строк, поступают на модуль 907 внутрикадрового прогнозирования, эти виды информации передаются на контроллер прогнозирования 3007 один раз. Управление переключателем 3001 режима прогнозирования осуществляется согласно информации 910 переключения прогнозирования. В частности, ex_adaptive_intra_flag и ex_direct_intra_flag поступают на контроллер прогнозирования 3007 в качестве информации переключения прогнозирования. ex_adaptive_intra_flag - это флаг, указывающий, прогнозируется ли изображение посредством пиксельно-адаптивного прогнозирования или направленного прогнозирования. Если флаг равен TRUE, переключатель 3001 режима прогнозирования подключен к модулю 3002 пиксельно-адаптивного прогнозирования. Если флаг равен FALSE, переключатель 3001 режима прогнозирования подключен к модулю 3003 направленного прогнозирования. ex_direct_intra_flag - это флаг, указывающий, производится ли прогнозирование фиксированного режима. Если флаг равен TRUE, переключатель 3001 режима прогнозирования подключен к модулю прогнозирования фиксированного режима независимо от состояния ex_adaptive_intra_flag. Когда переключатель режима прогнозирования 3001 переключается согласно соответствующей информации, опорный сигнал 914 поступает на модуль 907 внутрикадрового прогнозирования.
Опорный сигнал 914 поступает на модуль прогнозирования, соответствующий флагу, через переключатель 3001 режима прогнозирования. Когда опорный сигнал 914 поступает на модуль 3002 пиксельно-адаптивного прогнозирования, контроллер прогнозирования 3007 вводит информацию режима прогнозирования 909 в модуль 3002 пиксельно-адаптивного прогнозирования. На основании этой информации модуль 3002 пиксельно-адаптивного прогнозирования осуществляет пиксельно-адаптивное прогнозирование и генерирует прогнозируемый сигнал 916. Когда опорный сигнал 914 поступает на модуль 3003 направленного прогнозирования, контроллер прогнозирования 3007 вводит информацию 909 режима прогнозирования в модуль 3003 направленного прогнозирования. На основании этой информации модуль 3003 направленного прогнозирования осуществляет направленное прогнозирование и генерирует прогнозируемый сигнал 916. Когда опорный сигнал 914 поступает на модуль 3004 прогнозирования фиксированного режима, контроллер прогнозирования 3007 вводит информацию 909 режима прогнозирования в модуль 3004 прогнозирования фиксированного режима. На основании этой информации модуль 3003 прогнозирования фиксированного режима осуществляет прогнозирование фиксированного режима и генерирует прогнозируемый сигнал 916. Прогнозируемый сигнал 916, избирательно спрогнозированный таким образом модулями прогнозирования 3002, 3003 и 3004, выводится из модуля 907 внутрикадрового прогнозирования.
Ниже описан способ прогнозирования каждого из модулей прогнозирования 3002, 3003 и 3004. Каждый из этих модулей прогнозирования прогнозируют блок, подлежащий прогнозированию с использованием уже декодированного опорного сигнала 914, хранящегося в памяти 906 опорного изображения. Существует девять режимов прогнозирования, направления прогнозирования которых отличаются друг от друга на 22.5 градусов, как показано на фиг.5A. Предписаны режимы от режима 0 до режима 8, и режим 2 представляет собой DC-прогнозирование в модуле 3003 направленного прогнозирования. Имена режима направленного прогнозирования, осуществляемого модулем 3003 направленного прогнозирования, и режима пиксельно-адаптивного прогнозирования, осуществляемого модулем 3002 пиксельно-адаптивного прогнозирования, показаны на фиг.9. Соотношение между блоком прогнозирования для 4x4-пиксельное прогнозирование и опорным пикселем показано на фиг.5B. Пиксели, обозначенные заглавными буквами A-M, являются опорными пикселями, и пиксели, обозначенные строчными буквами a-p, являются пикселями прогнозирования.
Сначала описан способ прогнозирования для модуля 3003 направленного прогнозирования. При выборе DC-прогнозирования режима 2 модуль 3003 направленного прогнозирования вычисляет пиксель прогнозирования с использованием уравнения (2). Когда опорный пиксель нельзя использовать, прогнозирование осуществляется по среднему значению доступных опорных пикселей. В отсутствие доступных опорных пикселей значение прогнозирования вычисляется по половинному значению максимального значения яркости устройства кодирования (128, в случае 8 битов). Если выбран другой режим, модуль 3003 направленного прогнозирования использует способ прогнозирования для копирования значения прогнозирования, интерполированного опорными пикселями в направлении прогнозирования, показанном на фиг.5A. Когда выбран, например, режим 0 (вертикальное прогнозирование), способ генерации значений прогнозирования использует уравнение (3). Этот режим можно выбирать только, когда можно использовать опорные пиксели A-D. В этом способе прогнозирования значения яркости опорных пикселей A-D копируются в вертикальном направлении как есть, что показано на фиг.5C, и дополняются в качестве значений прогнозирования.
Способы прогнозирования, отличные от режимов прогнозирования 0 и 2, используют схему, примерно аналогичную вышеописанной, и осуществляют прогнозирование путем генерации значения интерполяции из опорных пикселей, доступных в направлении прогнозирования, и копирования значения согласно направлению прогнозирования.
Ниже описан модуль 3002 пиксельно-адаптивного прогнозирования. Режим прогнозирования идентичен режиму, описанному со ссылкой на фиг.5A. Модуль 3002 пиксельно-адаптивного прогнозирования осуществляет прогнозирование, изменяя при этом количество доступных опорных пикселей согласно расстоянию между пикселем прогнозирования и опорным пикселем, причем значение прогнозирования изменяется на уровне пикселей. Это позволяет генерировать значение прогнозирования с более высокой точностью путем изменения взвешенной таблицы для доступного опорного пикселя согласно расстоянию.
Соотношение между опорным пикселем и блоком прогнозирования показано на фиг.6A. Опорный пиксель и пиксель прогнозирования, показанные на фиг.6A и 5B, взаимно-однозначно соответствуют друг другу. Однако этим пикселям присвоены разные индексы для облегчения объяснения уравнения прогнозирования. Существует тринадцать опорных пикселей x00-x08, x09, x18, x27 и x36. Существует шестнадцать пикселей прогнозирования x10-x13, x19-x22, x28-x31 и x37-x40. Шестнадцать пикселей x14-x17, x23-x26, x32-x35 и x41-x44 являются вспомогательными пикселями прогнозирования, которые используются для повышения точности прогнозирования.
Перейдем к подробному описанию способа генерации значений прогнозирования, связанного с пиксельно-адаптивным вертикальным прогнозированием (режим 0). Способ пиксельно-адаптивного вертикального прогнозирования показан на фиг.6B. На фиг.6B показано, что значение прогнозирования определяется с использованием опорных пикселей, количество которых возрастает с увеличением расстояния между опорным пикселем и пикселем прогнозирования.
i
i
Ниже подробно описан способ генерации значений прогнозирования. Пиксельно-адаптивное вертикальное прогнозирование вычисляет пиксель прогнозирования с использованием уравнения (5). n указывает индекс, соответствующий одному из пикселей прогнозирования (x10-x13, x19-x22, x28-x31, x37-x40), показанных на фиг.6A. d задается согласно уравнению (6). Преобразуя уравнение (5) согласно расстоянию между опорным пикселем и пикселем прогнозирования, получаем уравнение прогнозирования, например уравнение (7). L представляет расстояние между опорным пикселем и пикселем прогнозирования. V - это индекс, определяемый согласно соответствующему режиму прогнозирования. h представляет коэффициент фильтра, и количество отводов изменяется согласно L.
i
i
Пиксель прогнозирования, отстоящий от опорного пикселя на один пиксель в направлении прогнозирования, вычисляется согласно уравнению (8) с использованием трех опорных пикселей. Где n указывает индекс, соответствующий L = 1 (пиксели x10-x13). Коэффициент фильтра представляет собой h = (1, 2, 1) и соответствует V = (d+1, d, d-1).
i
i
Пиксель прогнозирования, отстоящий от опорного пикселя на два пикселя в направлении прогнозирования, прогнозируется согласно уравнению (9) с использованием пяти опорных пикселей. n указывает индекс, соответствующий L = 2 (x19-x22). Коэффициент фильтра представляет собой h = (1, 4, 6, 4, 1) и соответствует V = (2d+2, 2d+1, 2d, 2d-1, 2d-2).
i
i
Пиксель прогнозирования, отстоящий от опорного пикселя на три пикселя в направлении прогнозирования прогнозируется согласно уравнению (9) с использованием семи опорных пикселей. n указывает индекс, соответствующий L = 3 (x28-x31). Коэффициент фильтра представляет собой h = (1, 6, 15, 20, 15, 6, 1) и соответствует V = (3d+3, 3d+2, 3d+1, 3d, 3d-1, 3d-2, 3d-3).
i
i
Пиксель прогнозирования, отстоящий от опорного пикселя на четыре пикселя в направлении прогнозирования прогнозируется согласно уравнению (10) с использованием семи опорных пикселей. n указывает индекс, соответствующий L = 4 (x37-x40). Коэффициент фильтра представляет собой h = (1, 8, 28, 56, 70, 56, 28, 8, 1) и соответствует V = (4d+ 4, 4d+3, 4d+2, 4d+1, 4d, 4d-1, 4d-2, 4d-3, 4d-4).
Рассмотрим уравнения прогнозирования для соответствующих режимов. Пиксельно-адаптивное горизонтальное прогнозирование (режим 1) осуществляет прогнозирование с использованием уравнения (14). Пиксельно-адаптивное прогнозирование вверх влево (режим 2) осуществляет прогнозирование с использованием уравнения (15). Пиксельно-адаптивное ортогональное прогнозирование вниз влево (режим 3) осуществляет прогнозирование с использованием уравнения (16). Пиксельно-адаптивное ортогональное прогнозирование вниз вправо (режим 4) осуществляет прогнозирование с использованием уравнения (17). Пиксельно-адаптивное вертикальное прогнозирование влево (режим 5) осуществляет прогнозирование с использованием уравнения (18). Пиксельно-адаптивное горизонтальное прогнозирование вниз (режим 6) осуществляет прогнозирование с использованием уравнения (19). Пиксельно-адаптивное вертикальное прогнозирование влево (режим 7) осуществляет прогнозирование с использованием уравнения (20). Пиксельно-адаптивное горизонтальное прогнозирование вверх (режим 8) осуществляет прогнозирование с использованием уравнения (21). Для вычисления прогнозируемого значения пикселя необходимое прогнозируемое изображение подставляется в уравнение для его составления. В результате определяются необходимые опорные пиксели, количество опорных пикселей и взвешивающая таблица.
В отсутствие опорных пикселей опорный пиксель дополняется наподобие пиксельно-адаптивного вертикального прогнозирования. Когда пиксель x37 прогнозируется посредством пиксельно-адаптивного горизонтального прогнозирования, опорный пиксель x45 нельзя использовать. Таким образом, этот опорный пиксель дополняется пикселем x36.
Как описано выше, способ генерации прогнозируемого изображения выполняется модулем 3002 пиксельно-адаптивного прогнозирования.
Ниже приведено подробное описание модуля 3004 прогнозирования фиксированного режима. Модуль 3004 прогнозирования фиксированного режима прогнозирует информацию режима и осуществляет пиксельно-адаптивное прогнозирование или направленное прогнозирование в определенном режиме прогнозирования. Прогнозирование информации режима использует информацию режима блока прогнозирования, примыкающего к предназначенному блоку прогнозирования.
Соотношение между соседним блоком и предназначенным блоком прогнозирования при 4x4-пиксельном прогнозировании показано на фиг.8. Пусть блок, примыкающий к левой стороне блока прогнозирования C, - это блок A, и блок, примыкающий к его верхней стороне, - это блок B. Когда эти два режима прогнозирования заданы как prev_left_mode и prev_upper_mode, режим прогнозирования блока C определяется согласно уравнению (23). current_mode указывает режим прогнозирования предназначенного блока прогнозирования. Функция min (A, B) представляет значение меньшего из блоков A и B. Таким образом, поскольку информация режима прогнозирования для предназначенного блока прогнозирования прогнозируется на основании информации режима прогнозирования для окружающих блоков, режим кодирования является одним из режимов кодирования, в котором количество кодированных битов, необходимое для кодирования информации режима прогнозирования, можно значительно сократить.
На основании ex_direct_intra_flag производится определение, используется ли для генерации прогнозируемого изображения модуль 201 пиксельно-адаптивного прогнозирования или модуль 202 направленного прогнозирования. Это определение производится на основании флага ex_direct_intra, заданного контроллером кодирования 108.
В данном варианте осуществления информация режима прогнозирования текущего блока прогнозирования определяется на основании информации режима прогнозирования соседних блоков прогнозирования A и B. Альтернативно данному варианту осуществления ее можно определить на основании информации режима прогнозирования окружающих блоков прогнозирования. Режим прогнозирования текущего блока прогнозирования можно определить с использованием информации режима прогнозирования блока на правой стороне блока прогнозирования B, блока на верхней стороне блока прогнозирования B, блока на левой стороне блока прогнозирования A и блока на верхней стороне блока прогнозирования A. Например, наиболее частый режим прогнозирования из режимов прогнозирования окружающих блоков прогнозирования, серединное значение режимов прогнозирования окружающих блоков прогнозирования или среднее значение режимов прогнозирования окружающих блоков прогнозирования можно определить как режим прогнозирования текущего блока прогнозирования.
Способ декодирования для декодирования синтаксиса информации переключения прогнозирования для переключения между пиксельно-адаптивным прогнозированием и направленным прогнозированием, ex_adaptive_intra_flag, синтаксиса для прогнозирования фиксированного режима, и ex_direct_intra_flag аналогичен методу кодирования, показанному на фиг.13-21.
Пятый вариант осуществления (декодирование)
Устройство декодирования 3100 согласно второму варианту осуществления описано со ссылкой на фиг.31. В этом варианте осуществления модуль 907 внутрикадрового прогнозирования согласно четвертому варианту осуществления заменен первым модулем 3102 внутрикадрового прогнозирования и вторым модулем 3103 внутрикадрового прогнозирования. Новым является переключатель 3101 размера блока. В данном варианте осуществления аналогичные позиции используются для обозначения аналогичных структурных элементов, соответствующих элементам, аналогичным согласно варианту осуществления, показанному на фиг.29, и любое дополнительное объяснение опущено для краткости.
Информация 909 режима прогнозирования, информация 910 переключения прогнозирования и информация 915 переключения размера блока, декодированные декодером 903 кодовых строк, передаются на переключатель 3101 размера блока и контроллер декодирования 908. Контроллер декодирования 908 подключает переключатель 3101 размера блока к соответствующему контакту на основании информации переключения размера блока.
В частности, размер блока определяется на основании ex_adaptive_blocksize_mode, полученного из декодера 903 кодовых строк.
Эта информация состоит из 4 битов и указывает, осуществляется ли 4x4-пиксельное прогнозирование или 8x8-пиксельное прогнозирование для 8x8 пикселей в макроблоке. Биты выделяются последовательно от верхнего левого угла к нижнему правому углу и размещаются в порядке, соответствующем A, B, C и D, как показано на фиг.28A. Когда значение ex_adaptive_blocksize_mode равно 1100, можно видеть, что 8x8-пиксельное прогнозирование выделяется блокам A и B и 4x4-пиксельное прогнозирование выделяется блокам C и D, как показано на фиг.28B.
Если значение каждого бита равно 0, контроллер декодирования 903 подключает первый выход переключателя 3101 размера блока к модулю 3102 внутрикадрового прогнозирования. Первый модуль 3102 внутрикадрового прогнозирования осуществляет 4x4-пиксельное прогнозирование на четырех 4x4-пиксельных блоках и передает прогнозируемое изображение на сумматор 905.
Если значение каждого бита, соответствующего 8x8-пиксельному блоку, равно 1, контроллер декодирования 908 подключает второй выход переключателя 3101 размера блока к модулю 3103 внутрикадрового прогнозирования. Второй модуль 3103 внутрикадрового прогнозирования осуществляет 8x8-пиксельное прогнозирование одного 8x8-пиксельного блока и передает прогнозируемое изображение на сумматор 905.
Первый модуль 3102 внутрикадрового прогнозирования и второй модуль 3103 внутрикадрового прогнозирования имеют внутреннюю структуру, аналогичную показанной на фиг.30, и осуществляют прогнозирование с размером блока, определенным на основании входной информации переключения прогнозирования, и каждый из них выводит прогнозируемый сигнал.
Контроллер декодирования 908 управляет переключателем размера блока, а также управляет входным буфером 901 и выходным буфером 913 или управляет хронированием декодирования. Синтаксис информации изменения размера блока, необходимый при изменении информации прогнозирования, в этом варианте осуществления такой же, как показанный на фиг.24-26. Информация переключения размера блока не получается из слоя макроблока, но ее можно получить из типа макроблока.
На фиг.27 показан пример получения информаци переключения размера блока из типа макроблока. Когда mb_type равен 0, макроблок прогнозируется только посредством 4x4-пиксельного прогнозирования. Когда mb_type равен 1, макроблок прогнозируется только посредством 8x8-пиксельного прогнозирования. Когда mb_type равен от 1 до 5, осуществляется прогнозирование размера макроблока. Intra_A_B_C_D показывает, какой блок использует 8x8-пиксельное прогнозирование. Позиции блоков A, B, C и D показаны на фиг.28A.
Согласно данному варианту осуществления генерация прогнозируемого изображения высокой точности возможна в каждом блоке. При осуществлении внутрикадрового прогнозирования режим прогнозирования может изменяться для каждой последовательности, каждого среза или каждого макроблока, что позволяет генерировать прогнозируемое изображение с учетом субъективного качества изображения.
В данном варианте осуществления объясняется кодирование видеосигнала, но настоящее изобретение можно применять к кодированию неподвижного изображения.
Согласно настоящему изобретению снижается ошибка прогнозирования при внутрикадровом прогнозировании, в то же время снижается стоимость оборудования, повышается эффективность кодирования, что позволяет генерировать прогнозируемое изображение достаточно высокого визуального качества.
Промышленное применение
Изобретение применимо к кодированию и декодированию движущегося изображения, неподвижного изображения, речи и т.д. в таких областях техники, как, например, устройства воспроизведения видео и аудио, мобильная связь, широковещание, информационный терминал, сеть.