Область техники, к которой относится изобретение
Настоящее изобретение относится, например, к устройству, кодирующему изображение, или подобному устройству, и в частности к области техники для регулирования генерируемого количества кодовой информации до целевого количества кодовой информации, данного для одного изображения, без выполнения внутриэкранного управления с обратной связью.
Уровень техники
Традиционно в системе или подобных средствах для передачи потока двоичных сигналов подвижных изображений или записи потока двоичных сигналов на носитель для записи выполняется высокоэффективное кодирование, чтобы эффективно использовать канал передачи или записывающую емкость. В устройстве кодирования изображения для реализации высокоэффективного кодирования кодирующая битовая скорость передачи данных потока двоичных сигналов, генерируемого кодирующим устройством, устанавливается на определенную скорость, согласно скорости передачи канала передачи. При этом ограничении контролируется аналого-цифровое преобразование данных, которые должны передаваться, т.е. этап квантования аналого-цифрового преобразования в кодирующем устройстве. То есть, устройство кодирования изображения увеличивает этап квантования, чтобы сдерживать количество данных, которые должны генерироваться, когда изображения, например, имеют продолжение как сложный растр изображения, в то же время устройство уменьшает этап квантования, чтобы увеличить количество данных, которые должны генерироваться, когда изображения имеют продолжение в виде простого растра изображения, тем самым поддерживая фиксированную скорость передачи, чтобы предотвратить переполнение или недогрузку буферной памяти.
Поэтому в устройстве кодирования изображения, согласно такой родственной области техники, этап квантования увеличивается, чтобы понизить качество изображения при продолжении в виде сложных изображений, в то время как этап квантования уменьшается при продолжении в виде простых изображений, таким образом одинаковое качество изображения, в целом, не может быть получено. Принимая во внимание эту проблему, например, патентный документ 1 раскрывает устройство кодирования изображения, которое рассчитывает заданное количество кодовой информации, которое должно быть назначено для каждой группы изображений GOP (Group Of Pictures), в соответствии с соотношением между трудностью кодирования каждой GOP и общей суммы трудностей в кодировании множества GOP таким образом, чтобы большое количество назначалось группе изображений, включающей в себя изображения, имеющие сложный растр изображения, и малое количество назначалось группе изображений, включающей в себя изображения, имеющие простой растр изображения.
С другой стороны, например, этап 2 тестовой модели 5 ТМ5 (test model 5), как способ для регулирования генерируемого количества кодовой информации до целевого количества кодовой информации, данного для одного изображения, хорошо известен. В этом способе количество кодовой информации, назначаемое на изображение, равномерно распределено по макроблокам (MB), каждое распределенное количество устанавливается как целевое количество кодовой информации каждого MB, и настройка на целевое количество кодовой информации выполняется через управление с обратной связью в изображении.
Также в кодирующем процессе, основанном на способе избыточного сжатия, такого как MPEG (Moving Picture Experts Group), устройство кодирования изображения осуществляет ортогональную трансформацию, такую как DCT (Discrete Cosine Transform), а затем выполняет процесс квантования, таким образом осуществляя процесс уменьшения количества информации. Затем, устройство кодирования изображения управляет величиной квантования, чтобы управлять количеством кодовой информации. В это время между параметром квантования и генерируемым количеством кодовой информации устанавливается отношение однообразного уменьшения. Поэтому устройство кодирования изображения может прогнозировать генерируемое количество кодовой информации с помощью фактически рассчитанных количеств кодовой информации, использующих значения квантования соответствующих интервалов и осуществляя линейную интерполяцию прогнозируемого значения количества кодовой информации, расположенной в середине (двоичный поиск или ему подобный, выполняемый с помощью intra-VTR, такого как формат DV).
Этот способ может быть применен не только к способу кодирования, использующему фиксированную таблицу, такому как MPEG2, но также и к контекстному адаптивному способу кодирования, используемому в AVC (Advanced Video Coding), или подобному способу.
Патентный Документ 1: Патент Японии №3358620.
Однако в вышеописанном способе этапа 2 тестовой модели ТМ5 может произойти ухудшение качества изображения при кодировании изображения в верхней части последовательности или изображения, следующего сразу после изменения сцены, т.к. начальное значение этапа квантования не соответствует растру изображения.
Например, в способе этапа 2 тестовой модели ТМ5, в устройстве кодирования изображения, в том случае, когда этап квантования на участке перед обратной связью следует слишком большой растр изображения, то качество изображения участка ухудшается по сравнению с другим участком. В том случае, когда значение квантования слишком мало, слишком много количества кодовой информации используется на участке и влияние от этого может быть оказано на другой участок.
Кроме того, в устройстве кодирования изображения, целевое количество кодовой информации MB всегда сохраняется постоянным, и таким образом происходит неподходящее распределение количества кодовой информации, когда трудность изображения на экране является неравномерной.
С другой стороны, в вышеописанном процессе прогнозирования количества генерированной кодовой информации, устройство кодирования изображения нуждается в том, чтобы иметь множество блоков обработки квантования и блоков расчета кодовой длины, работающих параллельно, для того чтобы осуществить точное прогнозирование и уменьшить ошибки, возникающие в результате интерполяции. В этом случае устройство кодирования изображения улучшает точность прогнозирования количества кодовой информации за счет множества параллельных цепей. Однако масштаб аппаратной части этого устройства является большим, и желательно уменьшить масштаб схемы.
Соответственно, настоящее изобретение направлено на уменьшение масштаба схемы при прогнозировании количества кодовой информации.
Сущность изобретения
Для решения вышеупомянутых проблем в устройстве кодирования изображения, согласно настоящему изобретению, обеспечивается модуль выбора с таблицей переменной длины, сконфигурированный таким образом, чтобы выбирать таблицу переменной длины, соответствующую среднему значению кодирующих значений, в которых выполняется кодирование с переменной длиной в прилегающих сверху и прилегающих слева кодирующих блоках кодирующего блока как цели кодирования в целевых кодирующих данных, базирующихся на входном изображении, являющемся построчно сканируемым в виде строчной развертки в модулях сканирующих блоков, каждый из которых составлен множеством кодирующих блоков, в то же время сосканированных в модулях кодирующих блоков, каждый из которых составлен множеством пикселей, в которых модуль выбора таблицы переменной длины приравнивает кодирующее значение кодирующего блока, прилегающего сверху, к кодирующему значению кодирующего блока, прилегающего слева, в том случае, когда кодирующий блок, как цель кодирования, находится на верхнем конце блока сканирования при выборе таблицы переменной длины, а кодирующий модуль переменной длины сконфигурирован таким образом, чтобы осуществлять кодирование переменной длины на кодирующем значении кодирующего блока как цели кодирования в целевых данных кодирования с помощью использования таблицы переменной длины.
Соответственно, устройство кодирования изображения не нуждается в том, чтобы сохранять кодирующие значения одной строки кодирующего блока на нижнем конце в блоке сканирования.
Кроме того, в способе обработки изображения, согласно настоящему изобретению, этап выбора таблицы переменной длины, выбирающий таблицу переменной длины, соответствующую среднему значению кодирующих значений, на которых осуществляется кодирование переменной длины, в прилегающих сверху и прилегающих слева кодирующих блоках блока кодирования как цель кодирования в целевых кодирующих данных, базирующихся на входном изображении, являющимся построчно сканируемым в виде строчной развертки в модулях сканирующих блоков, каждый из которых составлен множеством кодирующих блоков, в то же время сосканированных в модулях кодирующих блоков, каждый из которых составлен множеством пикселей, при этом этап выбора таблицы переменной длины приравнивает кодирующее значение кодирующего блока, прилегающего сверху, к кодирующему значению кодирующего блока, прилегающего слева, в том случае, когда кодирующий блок, как цель кодирования, находится на верхнем конце блока сканирования при выборе таблицы переменной длины, и
кодирующий этап переменной длины выполнения кодирования переменной длины на кодирующем значении блока кодирования, как цели кодирования, в целевых кодирующих данных с помощью использования таблицы переменной длины.
Соответственно, способ обработки изображения не нуждается в том, чтобы сохранять кодирующие значения одной строки кодирующего блока на нижнем конце в блоке сканирования.
Согласно настоящему изобретению, кодирующие значения одной строки кодирующего блока на нижнем конце в блоке сканирования не требуют необходимости хранения, и, таким образом, нет необходимости обеспечивать запоминающее устройство для хранения строки. Следовательно, могут быть реализованы устройство обработки изображения и способ обработки изображения, дающие возможность уменьшить масштаб схемы.
Краткое описание чертежей
Фиг.1 - схема, изображающая конфигурацию устройства кодирования изображения, согласно первому варианту осуществления настоящего изобретения.
Фиг.2 - схема, изображающая конфигурацию модуля квантования и вычислительного модуля CAVLC традиционного устройства кодирования изображения.
Фиг.3 - схема, иллюстрирующая базовую конфигурацию модуля квантования и вычислительного модуля CAVLC.
Фиг.4 - схема, изображающая конфигурацию и отдельно иллюстрирующая модуль квантования и вычислительный модуль CAVLC устройства кодирования изображения, согласно первому варианту осуществления настоящего изобретения.
Фиг.5 - диаграмма, иллюстрирующая таблицу VLC процедуры выбора процесса.
Фиг.6 - схема, изображающая конфигурацию устройства кодирования изображения, согласно второму варианту осуществления настоящего изобретения.
Фиг.7 - схема, изображающая подробную конфигурацию модуля, определяющего режим прогнозирования, и модуля обработки параметра воспроизведения.
Фиг.8 - диаграмма, иллюстрирующая процесс воспроизведения параметра.
Фиг.9 - схема, изображающая подробную конфигурацию модуля MB QP поиска назад.
Фиг.10 - диаграмма, иллюстрирующая процесс MB QP поиска назад.
Фиг.11 - схема, изображающая подробную конфигурацию модуля внутреннего прогнозирования при поиске назад.
Фиг.12 - диаграмма, иллюстрирующая процесс внутреннего прогнозирования поиска назад.
Фиг.13 - схема, изображающая подробную конфигурацию вычислительного модуля средства оповещения.
На фиг.14 представлено объяснение цифровых ссылок.
Подробное описание изобретения
В дальнейшем будут детально описаны наилучшие режимы осуществления изобретения (ниже просто определяемые как варианты осуществления изобретения) со ссылками на чертежи. Описание будет дано в следующем порядке:
1. Первый вариант осуществления изобретения (частичное разделение в вычислительном модуле.
2. Второй вариант осуществления изобретения (конфигурация цепи модуля поиска назад).
3. Другие варианты осуществления изобретения.
<1. Первый вариант осуществления изобретения>
1-1. Конфигурация устройства кодирования изображения
Фиг.1 иллюстрирует и описывает конфигурацию устройства 100 кодирования изображения, согласно варианту осуществления настоящего изобретения.
Устройство 100 кодирования изображения включает в себя первый модуль 1 предварительного кодирования, второй модуль 2 предварительного кодирования, главный модуль 3 кодирования, модуль 4 управления количеством кодовой информации, и буферы 5 и 6 задержки.
Для осуществления управления количеством кодовой информации устройство 100 кодирования изображения заранее выполняет предварительное кодирование, используя первый модуль 1 предварительного кодирования и второй модуль 2 предварительного кодирования, таким образом определяя главную кодирующую информацию, используемую в главном модуле 3 кодирования, например такую, как базовый параметр QPMB квантования, прогнозирующую матрицу Q MatrixD квантования, режим внутриэкранного прогнозирования, и группу активности.
В это время первый модуль 1 предварительного кодирования осуществляет параллельное предварительное кодирование, используя широкий диапазон параметров QP квантования с немного уменьшенной точностью, а также с подавлением масштаба схемы и нагрузки обработки, таким образом грубо оценивая параметр QPd прогнозируемого квантования для реализации целевого количества кодовой информации. Второй модуль 2 предварительного кодирования выполняет параллельное предварительное кодирование в узком диапазоне, с увеличенной точностью, таким образом определяя базовый параметр QPMB квантования, который должен использоваться в главном модуле 3 кодирования.
Первый модуль 1 предварительного кодирования является модулем для выполнения первого процесса предварительного кодирования и включает в себя модуль 11 режима внутриэкранного прогнозирования, модуль 12 обработки внутриэкранного прогнозирования, модуль 13 DCT, модуль 14 квантования, вычислительный модуль 15 CAVLC, и модуль 16 расчета активности.
Второй модуль 2 предварительного кодирования является модулем для выполнения второго процесса предварительного кодирования и включает в себя модуль 21 обработки внутриэкранного прогнозирования, модуль 22 DCT, модуль 23 квантования, модуль 24 расчета длины статистического кода, буфер 25, модуль 26 IDСТ (инверсного DCT), и модуль 27 деквантизации.
С другой стороны, главный модуль 3 кодирования является модулем для осуществления главного кодирования и включает в себя модуль 31 обработки внутриэкранного прогнозирования, модуль 32 DCT, модуль 33 квантования, модуль 34 расчета длины статистического кода, буфер 35, модуль 36 IDСТ и модуль 37 деквантизации.
Модуль 4 управления количеством кодовой информации является модулем для осуществления управления количеством кодовой информации.
В устройстве 100 кодирования изображения поступающее извне входное изображение 91 поступает к первому кодирующему модулю 1 и буферам 5 и 6 задержки. Первый кодирующий модуль 1 грубо оценивает генерируемое количество кодовой информации для соответствующих параметров QP квантования. В первом модуле 1 кодирования поступающее входное изображение 91 поступает к модулю 16 расчета активности и модулю 11, определяющему режим внутриэкранного прогнозирования. Модуль 16 расчета активности сортирует блоки MB в группы активности, в соответствии со сложностью изображения. Модуль 16 расчета активности поставляет номера группы активности к модулю 14 квантования и модулю 4 управления количеством кодовой информации.
При поставке входного изображения 91 модуль 11 режима внутриэкранного прогнозирования осуществляет на входном изображении 91 процесс внутриэкранного прогнозирования, чтобы генерировать данные разницы изображения. Кроме того, режим внутриэкранного прогнозирования определяющего модуля 11 упрощает процесс внутриэкранного прогнозирования в первом модуле 1 предварительного кодирования с помощью использования входного изображения 91, как прогнозирующего изображения. Определяющий модуль 11 внутриэкранного режима прогнозирования определяет режим внутриэкранного прогнозирования, который должен использоваться в главном модуле 3 кодирования на основе генерированного количества кодовой информации данных разницы изображения, и поставляет определенный режим внутриэкранного прогнозирования к модулям 12, 21 и 31 обработки внутриэкранного прогнозирования.
Модуль 12 обработки внутриэкранного прогнозирования генерирует данные разницы изображения из входного изображения 91, используя режим внутриэкранного прогнозирования, определенный с помощью режима внутриэкранного прогнозирования определяющего модуля 11, и поставляет данные разницы изображения к модулю 13 DCT. Модуль 13 DCT осуществляет процесс DCT, основываясь на данных разницы изображения, генерирует коэффициенты DCT и передает коэффициенты DCT к модулю 14 квантования.
Модуль 14 квантования осуществляет квантование параллельно с множеством этапов квантования, использующих выборочные параметры QP1 квантования, которые дискретно выбраны из параметров QP квантования, составляющих значения от 0 до 51. Например, модуль 14 квантования включает в себя n этапов квантования модулей от 14-1 до 14-n, соединенных параллельно, и осуществляет процесс квантования на основе n выбранных параметров QP1 квантования таким образом, чтобы генерировать n коэффициентов квантования. Кроме того, модуль 14 квантования рассматривает выбранные параметры QP1 квантования, как средние параметры BaseQP квантования изображения, и осуществляет процесс квантования, добавляя смещение, согласно номеру группы активности из модуля 16 расчета активности. Детальная конфигурация модуля 14 квантования будет описана ниже. Модуль 14 квантования поставляет n коэффициентов квантования к вычислительному модулю 15 CAVLC.
Вычислительный модуль 15 CAVLC осуществляет CAVLC процесс на соответствующих n коэффициентах квантования и поставляет генерированное количество кодовой информации соответствующих блоков MB к модулю 4 управления количеством кодовой информации.
Здесь, в первом модуле 1 предварительного кодирования, входное изображение 91 используется как прогнозируемое изображение, вместо локального декодированного изображения в модуле 12 обработки внутриэкранного прогнозирования. С другой стороны, в главном модуле 3 кодирования CAVLC и САВАС (Context-Adaptive Binary Arithmetic Coding) осуществляются как способы статистического кодирования, в то же время между ними осуществляется переключение.
Поэтому модуль 4 управления количеством кодовой информации корректирует количество генерируемой кодовой информации, используя статистическую модель, заранее рассчитанную через статистические данные. Соответственно, модуль 4 управления количеством кодовой информации может увеличить точность количеств генерируемой кодовой информации, рассчитанных первым модулем 1 предварительного кодирования. Кроме того, модуль 4 управления количеством кодовой информации рассчитывает количества генерируемой кодовой информации, базируясь на параметрах квантования, отличающихся от выбранных параметров QP1 квантования в отношении к откорректированным количествам генерируемой кодовой информации, базирующимся на выбранных параметрах QP1 квантования. В дальнейшем откорректированные количества генерируемой кодовой информации, базирующиеся на выбранных параметрах QP1 квантования и количества генерируемой кодовой информации, рассчитанные через интерполяцию, вместе называются количествами генерируемой кодовой информации низкой точности. Соответственно, модуль 4 управления количеством кодовой информации не нуждается в выполнении квантования и процесса CAVLC для всех параметров QP квантования, таким образом конфигурация схемы модуля 14 квантования может быть уменьшена, и нагрузка при обработке может быть уменьшена.
Модуль 4 управления количеством кодовой информации выбирает, как параметр QPd прогнозируемого квантования, параметр QP квантования, в котором генерированное количество кодовой информации, имеющее низкую точность, наиболее приближено к целевому количеству кодовой информации. Этот параметр QPd прогнозируемого квантования является грубым значением, базирующимся на генерированных количествах кодовой информации с низкой точностью, которые рассчитываются первым модулем 1 предварительного кодирования простым способом, и это такое значение, в котором прогнозируется, что главное кодируемое генерированное количество кодовой информации при главном кодировании приближается к целевому количеству кодовой информации. Кроме того, в том случае, когда матрицы Q Matrix квантования выбираются адаптивно, модуль 4 управления количеством кодовой информации генерирует количества кодовой информации с низкой точностью для соответствующей матрицы Q Matrix квантования, и выбирает, как прогнозирующую матрицу Q MatrixD квантования, матрицу Q Matrix квантования, которая включает в себя параметры QP квантования, допустимые в матрице Q Matrix квантования, и которые имеют генерированное количество кодовой информации с низкой точностью, приближенное к целевому количеству кодовой информации с наименьшим отклонением.
Второй модуль 2 предварительного кодирования определяет базовый параметр QPMB квантования, который должен использоваться в главном модуле 3 кодирования. Во втором модуле 2 предварительного кодирования входное изображение 91, которое задерживается и передается из буфера 5 задержки, поставляется к модулю 21 обработки внутриэкранного прогнозирования. Модуль 21 обработки внутриэкранного прогнозирования кодирует входное изображение 91 через внутриэкранное прогнозирование, используя режим внутриэкранного прогнозирования, поставляемого из определяющего модуля 11 внутриэкранного режима прогнозирования к генерируемой разнице данных изображения, и поставляет разницу данных изображения к модулю 22 DCT.
Модуль 22 DCT осуществляет процесс DCT на разнице данных изображения, чтобы генерировать коэффициенты DCT и поставляет коэффициенты DCT в модуль 23 квантования. Модуль 23 квантования включает в себя три ступени модулей квантования: 23-1, 23-2 и 23-3. Модуль 23 квантования генерирует коэффициенты квантования с помощью квантования коэффициентов DCT на основе параметра QPd прогнозируемого квантования и параметров QP квантования, приближенных к параметру QPd прогнозируемого квантования, и поставляет коэффициенты квантования в вычислительный модуль 24 расчета длины статистического кода. Модуль 24 расчета длины статистического кода кодирует коэффициенты квантования, используя способ кодирования, применяемый в главном модуле 3 кодирования между CAVLC и САВАС, таким образом генерируя высокоточные генерируемые количества кодовой информации для соответствующих параметров QP квантования. На основе высокоточных генерируемых количеств кодовой информации, которые генерируются с помощью вычислительного модуля 24 расчета длины статистического кода, модуль 4 управления количеством кодовой информации определяет параметр QP квантования высокоточного генерируемого количества кодовой информации, которое наиболее приближено к целевому количеству кодовой информации, и которое должно быть базовым параметром QPMB квантования. Модуль 23 квантования поставляет коэффициенты квантования, генерированные на основе параметра QPd прогнозируемого квантования, к модулю 27 деквантизации. Модуль 27 деквантизации деквантизирует коэффициенты квантования, чтобы генерировать коэффициенты DCT, и поставляет коэффициенты DCT в модуль 26 IDСТ. Модуль 26 IDСТ осуществляет процесс IDСТ на коэффициентах DCT, чтобы генерировать локальное декодирующее изображение и передает изображение в буфер 25. Буфер 25 поставляет локальное декодирующее изображение в модуль 21 обработки внутриэкранного прогнозирования. В результате модуль 21 обработки внутриэкранного прогнозирования осуществляет внутриэкранный процесс прогнозирования, используя локальное декодирующее изображение как прогнозируемое изображение.
Второй модуль 2 предварительного кодирования использует локальное декодирующее изображение как прогнозируемое изображение и осуществляет статистическое кодирование, применяя тот же самый способ кодирования, как тот, который используется в главном модуле 3 кодирования, таким образом осуществляется возможность рассчитывать высокоточные генерируемые количества кодовой информации с более высокой точностью, чем в первом модуле 1 предварительного кодирования. Затем, на основе высокоточных генерируемых количеств кодовой информации модуль 4 управления количеством кодовой информации может определить прогнозируемый параметр QP квантования, чтобы генерировать главное кодирующее генерируемое количество кодовой информации, которое наиболее приближено к целевому количеству кодовой информации, и которое должно быть базовым параметром QPMB квантования.
В главном модуле 3 кодирования входное изображение 91, которое задерживается и поступает из буфера 6 задержки, поступает к модулю 31 обработки внутриэкранного прогнозирования. Модуль обработки 31 внутриэкранного прогнозирования кодирует входное изображение 91 через внутриэкранное прогнозирование, используя режим внутриэкранного прогнозирования, поступающий из определяющего модуля 11 внутриэкранного режима прогнозирования, чтобы генерировать данные разницы изображения, и поставляет данные разницы изображения к модулю 32 DCT.
Модуль 32 DCT осуществляет процесс DCT на данных разницы изображения, чтобы генерировать коэффициенты DCT, и поставляет коэффициенты DCT к модулю 23* квантования. Модуль 33 квантования производит квантование коэффициентов DCT на основе базового параметра QPMB квантования, чтобы генерировать коэффициенты квантования, и поставляет коэффициенты квантования к вычислительному модулю 34 расчета длины статистического кода. Модуль 34 расчета длины статистического кода осуществляет статистическое кодирование на коэффициентах квантования, используя любой из модулей CAVLC и САВАС, и поставляет коэффициенты, как выходной поток 92, к внешнему устройству.
Модуль 33 квантования поставляет коэффициенты квантования, сгенерированные на основе базового параметра QPMB квантования к модулю 37 деквантизации. Модуль 37 деквантизации осуществляет деквантизацию коэффициентов квантования, чтобы генерировать коэффициенты DCT, и поставляет коэффициенты DCT к модулю 36 IDCT. Модуль 36 IDСТ осуществляет процесс IDCT на коэффициентах DCT, чтобы генерировать локальное декодированное изображение, и поставляет локальное декодированное изображение к модулю 31 внутриэкранной обработки прогнозирования через буфер 35. Модуль 31 обработки внутриэкранного прогнозирования осуществляет процесс внутриэкранного прогнозирования, используя локальное декодированное изображение, как прогнозируемое изображение.
Таким образом, устройство 100 кодирования изображения грубо оценивает генерируемые количества кодовой информации для соответствующих параметров QP квантования, как генерируемые количества кодовой информации низкой точности, используемые первым модулем 1 предварительного кодирования, и определяет параметр QPd прогнозируемого квантования на основе генерируемых количеств кодовой информации низкой точности. Устройство 100 кодирования изображения рассчитывает высокоточные генерируемые количества кодовой информации с высокой точностью, используя параметр QPd прогнозируемого квантования и параметры QP квантования, приближающиеся к ним, используя второй модуль 2 предварительного кодирования. Затем устройство 100 кодирования изображения определяет базовый параметр QPMB квантования на основе высокоточных генерируемых количеств кодовой информации, рассчитанных с высокой точностью, и использует параметр QPMB квантования для главного процесса кодирования, осуществляемого главным модулем 3 кодирования. Соответственно, устройство 100 кодирования изображения может рассчитать высокоточные генерируемые количества кодовой информации на основе базового параметра QPMB квантования с высокой точностью, без расчета генерируемых количеств кодовой информации, основанных на всех параметрах QP квантования, благодаря предварительному кодированию в два этапа: в первом модуле 1 предварительного кодирования и втором модуле 2 предварительного кодирования. В результате, устройство 100 кодирования изображения может определить соответствующий базовый параметр QPMB квантования с использованием простой конфигурации.
1-2. Конфигурации традиционного модуля квантования и расчетного модуля CAVLC.
Сейчас, для глубокого понимания устройства 100 кодирования изображения, согласно этому варианту осуществления изобретения, будет дано описание конфигураций и работы традиционного модуля квантования и традиционного вычислительного модуля CAVLC, который служит в качестве основы.
Фиг.2 иллюстрирует и описывает конфигурации традиционного модуля 300 квантования и традиционного вычислительного модуля 400 CAVLC. Количество установленных модулей 300 квантования и вычислительных модулей 400 CAVLC равно количеству выбранных параметров QP1 квантования. Каждая пара модуля 300 квантования и вычислительного модуля 400 CAVLC рассчитывает генерируемое количество кодовой информации, основываясь на одном выбранном параметре QP1 квантования.
Модуль 300 квантования включает в себя MB QP расчетный модуль 301, модуль 302, генерирующий адрес сканирования, QP %6 трансформирующий модуль 303, QP/6 трансформирующий модуль 304, память RAM (Random Access Memory - ОЗУ) 305 масштабного коэффициента, умножитель 306, и многорегистровое циклическое сдвиговое устройство 307.
С другой стороны, вычислительный модуль 400 CAVLC включает в себя счетный модуль 401 TrailingOne, счетный модуль 402 TotalCoef, счетный модуль 403 TotalZero, счетный модуль 404 RunBefore, расчетный модуль 405 LevelLength, расчетный модуль 406 ZeroLeft, память ROM (постоянное запоминающее устройство - ПЗУ) 407 длины в битах TotalCoefLength, память ПЗУ 408 длины в битах TotalZeroLength, память ПЗУ 409 длины в битах RunBefore, сумматоры 410, 411 и 416, память 412 для сохранения строки границы nB блока MB, память nB holding memory 413, память nA holding memory 415, и модуль 414 выбора nB.
Модуль 300 квантования рассчитывает коэффициент Z квантования, используя следующее уравнение с использованием DCT коэффициента W и параметра QP квантования.
Z={(MF*16/QMatrix)*W+f}>>(15+QP/6).
Здесь MF - это масштабный коэффициент, рассчитанный из значения, определяемого стандартом AVC, a f - это коэффициент округления для определения позиции округления числа с повышением и округления числа с понижением.
В этой конфигурации следующие сигналы являются входными для модуля 300 квантования.
- сигнал AFF, показывающий имеет ли макроблок структуру поля или структуру кадра;
- сигнал 8×8/4×4, показывающий какой из 8×8 DCT и 4×4 DCT должен использоваться для ортогональной трансформации;
- группа активности;
- DCT коэффициенты как результат DCT.
Здесь «группа активности» поставляется как информация о смещении квантования соответствующих макроблоков по отношению к среднему параметру квантования Base QP, который является базовым параметром всего изображения. «DCT коэффициенты» поставляются в таком порядке, чтобы соответствовать для кодирования (например, в обратном порядке сканирования).
MB QP расчетный модуль 301 рассчитывает адаптивный параметр QPt квантования, который получается за счет смещения активностей в модулях MB из групп активности, и среднего параметра Base QP квантования (выбранный параметр QP1 квантования, который является установленным). QP %6 трансформирующий модуль 303 выводит средство оповещения, генерируемое с помощью разделения адаптивного параметра QPt квантования на «6» (т.е. любое из шести значений из 0, 1, 2, 3, 4 и 5) и поставляет остаток к масштабному коэффициенту 305 памяти RAM (Random Access Memory - ОЗУ) и QP/6 трансформирующему модулю 304.
Сигнал AFF и сигнал 8×8/4×4 являются входными в генерирующий модуль 302 адреса сканирования. Генерирующий модуль 302 адреса сканирования генерирует DCT адреса, показывающие входное положение DCT коэффициента на основании сигнала AFF и сигнала 8×8/4×4, и поставляет DCT адреса в масштабный коэффициент 305 ОЗУ.
Масштабный коэффициент памяти ОЗУ 305 удерживает коэффициент умножения, полученный из следующего уравнения.
Коэффициент умножения = 16×MF(8×8/4×4,QP,h,v)/Q Matrix (8×8/4×4,h,v).
Здесь h и v являются DCT адресами, показывающими горизонтальное и вертикальное направления в DCT коэффициенте, и изменяются в диапазоне от 0 до 7 в 8×8 и от 0 до 3 в 4×4. MF - это масштабный коэффициент, который является постоянным параметром, определяемым с помощью Н.264. Также, матрица квантования Q Matrix является параметром, который может быть установлен в кодировщике. Таким образом, масштабный коэффициент памяти ОЗУ 305 удерживает значение, рассчитанное с помощью умножения размера блока DCT (8×8/4×4), значения адаптивного параметра QPt квантования и масштабного коэффициента MF, который изменяется в соответствии с DCT адресами на «16» и деления этого произведения на матрицу квантования Q Matrix (MF*16/ Q Matrix). Масштабный коэффициент памяти ОЗУ 305 выводит коэффициент умножения, имеющий адаптивную фазу позиции сканирования к умножителю 306 на основании DCT адресов.
Когда из MB QP расчетного модуля 301 поступает адаптивный параметр QPt квантования, QP/6 трансформирующий модуль 304 выводит результат деления адаптивного параметра QPt квантования на целое число к многорегистровому циклическому сдвиговому устройству 307. Многорегистровое циклическое сдвиговое устройство 307 добавляет «15» к QP/6 трансформирующему модулю 304, чтобы рассчитать величину смещения, и поставляет величину смещения к вычислительному модулю 400 CAVLC. Выходное значение модуля 300 квантования, которое является результатом умножителя 306, смещенного многорегистровым циклическим сдвиговым устройством 307, эквивалентно тому, которое получено при осуществлении квантования (деления).
При получении выходных данных от модуля 300 квантования, вычислительный модуль 400 CAVLC рассчитывает генерированное количество кодовой информации, которое получено при выполнении фактического кодирования.
Вычислительный модуль 400 CAVLC кодирует TotalCoef, представляющий количество ненулевых коэффициентов, TrailingOne и trailing_ones_sign_flag, представляющий количество и знак коэффициентов, имеющих абсолютное значение, равное 1, последовательно расположенных в последний раз по времени, уровень, представляющий значение DCT коэффициента, total_zero, представляющий количество нулевых коэффициентов перед последним ненулевым коэффициентом, и run_before, представляющий количество нулей, последовательно расположенных перед ненулевым DCT коэффициентом, а также рассчитывает их кодовые длины. В это время вычислительный модуль 400 CAVLC осуществляет адаптивное кодирование на TotalCoef, представляющем количество ненулевых коэффициентов, и TrailingOne, представляющем количество и знак коэффициентов, имеющих абсолютное значение, равное 1, последовательно расположенных в последний раз по времени, в соответствии с состоянием окружающих 4×4 блоков. Вычислительный модуль 400 CAVLC выбирает таблицу VLC для каждого из 4×4 блоков на основе добавочного значения TotalCoef и TrailingOne.
Счетный модуль 401 TrailingOne считает количество значений 1 или -1, последовательно расположенных с верхней части, кроме нуля, среди входных значений из 16 образцов в блоке 4×4 в порядке, обратном сканированию, и поставляет это количество как TrailingOne к сумматору 411 и в память ROM (постоянное запоминающее устройство ПЗУ) 407 длины в битах TotalCoefLength. Счетный модуль 402 TotalCoef считает количество ненулевых коэффициентов, которые не считаются счетным модулем 401 TrailingOne и поставляет это количество, как TotalCoef, к сумматору 411, в память ПЗУ 407 длины в битах TotalCoefLength, и в память ПЗУ 408 длины в битах TotalZeroLength. Память ПЗУ 407 длины в битах TotalCoefLength адаптивно выбирает таблицы VLC в модулях блоков 4×4, в соответствии с результатом из сумматора 416, чтобы кодировать TotalCoef и TrailingOne, и поставляет их длину кодов в сумматор 410.
Счетный модуль 403 TotalZero считает количество нулевых коэффициентов, кроме нулей, последовательно расположенных в верхней части, и поставляет это количество, как total_zero, в память ПЗУ 408 длины в битах TotalZeroLength и расчетный модуль 406 ZeroLeft. Память ПЗУ 408 длины в битах TotalZeroLength рассчитывает длину кода total_zero и TotalCoef, как их комбинацию, и поставляет длину кода к сумматору 410.
Счетный модуль 404 RunBefore последовательно считает количество нулей, последовательно расположенных возле ненулевых коэффициентов (+/-1), считаемых счетным модулем 401 TrailingOne, и количество нулей, последовательно расположенных возле ненулевых коэффициентов, считаемых счетным модулем 402 TotalCoef, и поставляет эти количества в расчетный модуль 406 ZeroLeft.
Расчетный модуль 406 ZeroLeft последовательно вычитает последовательные количества zerorun* счетного модуля 404 RunBefore из total_zero счетного модуля 403 TotalZero, таким образом аккумулируя Zero Left, который является количеством остающихся нулей. Память ПЗУ 409 длины в битах RunBefore получает длину кода для кодирования RunBefore, как комбинацию Zero Left и RunBefore.
Затем расчетный модуль 405 LevelLength рассчитывает длину кода ненулевых коэффициентов DCT.
Адаптивный выбор таблиц VLC в памяти ПЗУ 407 длины в битах TotalCoefLength выполняется на основе TotalCoef и TrailingOne. Сумматор 411 добавляет TrailingOne, поставляемый из счетного модуля 401 TrailingOne и TotalCoef, поставляемый из счетного модуля 402 TotalCoef, чтобы рассчитать общее количество ненулевых коэффициентов. Таблица VLC выбирается на основе количества nА ненулевых коэффициентов в примыкающем слева блоке 4×4 и количества nВ ненулевых коэффициентов в примыкающем сверху блоке 4×4. Сумматор 411 аккумулирует количества ненулевых коэффициентов в необходимых блоках 4×4 в памяти nB holding memory 413 и памяти nА holding memory 415, для того чтобы обращаться к этим количествам как nА и nB.
Также блоки последовательно поставляются в построчном направлении и блоки 4×4 сканируются в заданном порядке (в порядке растрового сканирования) в блоки MB. Поэтому примыкающий слева блок 4×4 сканируется предварительно и почти сразу. Аналогично, примыкающий сверху блок 4×4 в MB сканируется предварительно и почти сразу. Однако в блоке 4×4 в верхнем конце MB необходимо обратиться к блоку 4×4 на самом нижнем конце MB в предшествующей строке, для того чтобы обратиться к примыкающему сверху блоку. Поэтому сумматор 411 аккумулирует значения для строк макроблока в памяти 412 для сохранения строки границы nB блока MB. На основе адреса блока 4×4 в MB модуль 414 выбора nB выбирает значение nB, которое располагается на верхнем участке, и которое удерживается в памяти 412 для сохранения строки границы nB блока MB в случае верхней границы, и выбирает значение nB, которое располагается на верхнем участке из памяти nB holding memory 413 в других случаях. Затем сумматор 416 рассматривает среднее значение ненулевых коэффициентов в примыкающих слева и примыкающих справа блоках 4×4, как таблицу выбора индекса nС, и рассчитывает таблицу выбора индекса nС в соответствии со следующим уравнением:
nС=(nА+nВ)/2.
Затем сумматор 410 складывает значения, поставляемые из счетного модуля 401 TrailingOne, памяти ПЗУ 407 длины в битах TotalCoefLength, памяти ПЗУ 408 длины в битах TotalZeroLength, памяти ПЗУ 409 длины в битах RunBefore, и расчетного модуля 405 LevelLength, таким образом получая общую сумму длин кодов.
Вышеописанный процесс неоднократно осуществляется на всем изображении в модулях из 4×4 блоков, таким образом получается генерированное количество кодовой информации с низкой точностью изображения, соответствующее среднему параметру Base QP квантования. Этот процесс получения генерированного количества кодовой информации с низкой точностью изображения осуществляется за 15 этапов, осуществляемых параллельно, с помощью использования различных дискретно выбранных параметров QP1 квантования как средних параметров Base QP квантования, и выполняется для соответствующих матриц Q Matrix квантования.
1-3. Конфигурации модуля квантования и вычислительного модуля CAVLC, согласно этому варианту осуществления изобретения.
Фиг.3 и 4 иллюстрируют и описывают выделенную часть конфигурации устройства 100 кодирования изображения, согласно варианту осуществления настоящего изобретения, с характеристическим процессом, добавленным к конфигурации, показанной на фиг.2 и описанной выше. Следует заметить, что части, соответствующие частям в традиционном вычислительном модуле 400 CAVLC, показанном на фиг.2, обозначаются одинаковыми цифровыми ссылками и описание тех же самых частей будет пропущено.
Устройство 100 кодирования изображения и способ кодирования изображения, согласно этому варианту осуществления изобретения имеет следующие характеристики.
В том случае, когда генерированное количество кодовой информации прогнозируется в предварительном процессе, использующем способ сжатия изображения, представленный H.264/AVC (Advanced Video Coding: advanced moving image compression coding standard), или подобным способом, процесс упрощается, когда квантование осуществляется параллельно в различных этапах квантования, чтобы рассчитать длину кода, при помощи чего аппаратная часть уменьшается. Эта конфигурация имеет следующие три характеристики:
- совместный вычислительный модуль 150 CAVLC вычислительного модуля 15 CAVLC рассчитывает количество кодовой информации без использования количества nВ ненулевых коэффициентов в блоке 4×4 в верхнем конце MB, за счет чего уменьшается память строки,
- совместный вычислительный процесс CAVLC, в котором вычисление осуществляется в модулях блоков 4×4, при этом процесс является совместным в режиме разделения времени, при помощи чего логический модуль, такой как память преобразования длины кода, уменьшается,
- процесс выбора и процесс квантования масштабных коэффициентов и матриц квантования Q Matrix разделены с помощью модуля 140 совместного квантования, таким образом память используется совместно и размер памяти уменьшается.
Фиг.3 показывает конфигурации модуля 14 квантования и модуля 15 вычисления длины кода. Модуль 14 квантования обеспечивается параллельными модулями с 14-1 по 14-n квантования, количество которых аналогично количеству выбранных параметров QP1 квантования, а модуль 140 совместного квантования используется совместно модулями с 14-1 по 14-n квантования, при этом он соединяется с каждым из модулей с 14-1 по 14-n квантования. Аналогично, вычислительный модуль 15 CAVLC обеспечивается параллельными вычислительными модулями CAVLC с 15-1 по 15-n, количество которых аналогично количеству выбранных параметров QP1 квантования, а совместный вычислительный модуль 150 CAVLC используется совместно вычислительными модулями CAVLC с 15-1 по 15-n, при этом он соединяется с каждым из вычислительных CAVLC модулей с 15-1 по 15-n.
Фиг.4 является схемой главной части для осуществления квантования и кодирования с переменной длиной, использующего множество параметров квантования QP. Следует заметить, что работа устройства 100 кодирования изображения также применима к способу кодирования изображения, согласно этому варианту осуществления изобретения.
Как показано на фиг.4, модуль 140 совместного квантования включает в себя ОЗУ (оперативную память) 101 генерирования адреса сканирования, ОЗУ 102 масштабного коэффициента, и ОЗУ 103 1/матрица (1/matrix).
Каждый из модулей с 14-1 по 14-n квантования включает в себя MB QP вычислительный модуль 501, QP %6 трансформирующий модуль 502, переключатель 503 масштабного коэффициента, переключатель 504 1/matrix, QP/6 трансформирующий модуль ПЗУ (постоянное запоминающее устройство) 505, умножители 506 и 507, и многорегистровую схему 508 циклического сдвига.
Совместный вычислительный модуль 150 CAVLC включает в себя буферы 201 и 202, сумматор 203, память 204 nB holding memory, память 205 nA holding memory, сумматор 206, память ПЗУ 207 длины в битах TotalCoefLength, и сумматор 208.
Кроме того, каждый из вычислительных модулей CAVLC с 15-1 по 15-n включает в себя счетный модуль 401 TrailingOne, счетный модуль 402 TotalCoef, счетный модуль 403 TotalZero, счетный модуль 404 RunBefore, расчетный модуль 405 LevelLength, расчетный модуль 406 ZeroLeft, память ПЗУ 408 длины в битах TotalZeroLength, память ПЗУ 409 длины в битах RunBefore, и сумматор 410.
Как описывалось ранее, устройство 100 кодирования изображения имеет конфигурацию, использующую модуль 140 совместного квантования и совместный вычислительный модуль 150 CAVLC, которые используются совместно, чтобы уменьшить масштаб схемы при использовании процесса, осуществляемого параллельно.
В модуле 140 совместного квантования оперативная память 102 масштабного коэффициента и оперативная память 103 1/матрица (1/matrix) главным образом используются совместно, чтобы уменьшить размер статического ОЗУ. В совместном вычислительном модуле 150 CAVLC вычисление кодовой длины с помощью памяти ПЗУ 207 длины в битах TotalCoefLength может быть выполнено один раз для блока 4×4, в то же время другие процессы выполняются в модулях пикселей, и таким образом, схема используется совместно, чтобы осуществлять процесс с разделением времени.
Кроме того, вычислительный модуль 15 CAVLC приблизительно рассчитывает количество кодовой информации при допущении, что nВ=nА на верхней границе MB, чтобы уменьшить память 412 для сохранения строки границы nВ блока MB, показанную на фиг.3. Определение nВ=nА является процессом приближения и является причиной ошибки, но внутри допуска, в процессе прогнозирования количества кодовой информации. Кроме того, эффект уменьшения памяти с 15 параллельными линиями, получаемый с помощью этого приближения, является очень большим.
В этой конфигурации сигнал AFF, показывающий имеет ли MB структуру поля или структуру кадра, и сигнал 8×8/4×4, показывающий какой из 8×8 DCT и 4×4 DCT должен быть использован для ортогональной трансформации, вводятся в модуль 140 совместного квантования. Если более точно, то оперативная память 101 генерирования адреса сканирования осуществляет генерирование адресов DCT, показывающих положение коэффициента DCT на входе сигнала AFF и сигнала 8×8/4×4.
Оперативная память 102 масштабного коэффициента выводит масштабный коэффициент MF, имеющий фазовое положение адаптивного сканирования к переключателю 503 масштабного коэффициента модуля 500 квантования. Как описывалось ранее, масштабный коэффициент MF выбирается в соответствии с адресами DCT и значением QP%6 (средство оповещения, генерируемое с помощью деления выбранного параметра QP1 квантования на 6). В соответствующих модулях квантования с 14-1 по 14-n выбранные параметры QP1 квантования отличаются друг от друга и устанавливаются как средние параметры BaseQP квантования. Поэтому оперативная память 102 масштабного коэффициента выводит все масштабные коэффициенты MF, соответствующие всем шести значениям (QP%6=0, 1, 2, 3, 4, 5), в соответствии с адресами DCT, и заставляет переключатели 503 масштабного коэффициента в модулях квантования с 14-1 по 14-n в последующем этапе выбирать масштабные коэффициенты MF. Аналогично, оперативная память 103 1/matrix выводит к переключателям 504 1/matrix модулей квантования с 14-1 по 14-n обратную величину значения матрицы, имеющую адаптивную фазу позиции сканирования среди матриц квантования Q Matrix. Оперативная память 103 1/matrix переносит обратную величину значения матрицы с помощью смещения влево около 20 бит, для того чтобы вывести обратную величину значения матрицы.
То есть, матрица квантования Q Matrix, которая должна быть использована, изменяется в зависимости от значения выбранного параметра QP1 квантования, таким образом необходимо множество (например около четырех типов) матриц квантования Q Matrix. Оперативная память 103 1/matrix выводит все типы (четыре типа) обратных величин значения матрицы к переключателям 504 1/matrix модулей квантования с 14-1 по 14-n и заставляет переключатели 504 1/matrix модулей квантования с 14-1 по 14-n в последующем этапе выбирать обратные величины в соответствии со значением установленного параметра QP1 квантования.
Следовательно, в каждом из модулей квантования с 14-1 по 14-n последовательно поставляемые коэффициенты DCT передаются к MB QP вычислительному модулю 501. MB QP вычислительный модуль 501 добавляет смещение активности, согласно группе активности, к выбранному параметру QP1 квантования и передает его в QP%6 трансформирующий модуль 501 и QP/6 трансформирующий модуль 505. QP%6 трансформирующий модуль 501 рассчитывает значение QP%6, которое является устройством оповещения, генерируемым с помощью деления адаптивного параметра QPt квантования на «6», и передает его к переключателю 503 масштабного коэффициента. Переключатель 503 масштабного коэффициента выбирает масштабный коэффициент MF, как первое умножение, вычисленное в соответствии со значением QP%6, и передает его к умножителю 506. Переключатель 504 1/matrix выбирает обратную величину значения матрицы как второе умножение, вычисленное на основании идентификационного номера idx матрицы квантования Q Matrix, которая должна использоваться, и посылает его к умножителю 506.
Умножитель 506 умножает масштабный коэффициент MF на «16» и обратную величину значения матрицы (MF*16/QMatrix). Умножитель 506 осуществляет умножение выходных значений переключателя 503 масштабного коэффициента и переключателя 504 1/matrix, а затем осуществляет смещение вправо на 20 битов, для того чтобы достичь соответствия для переноса в оперативную память 103 1/matrix, и переносит значение умножения к умножителю 507. Умножитель 507 умножает коэффициенты DCT в порядке, обратном сканированию, на величину умножения и передает полученное значение к многорегистровой схеме 508 циклического сдвига. QP/6 трансформирующий модуль передает значение QP/6, генерируемое при делении параметра QPt адаптивного квантования на «6», к многорегистровой схеме 508 циклического сдвига. Многорегистровая схема 508 циклического сдвига уменьшает цифры выходного значения умножителя 507 на количество цифр согласно значению QP/6, таким образом получая результат квантования.
Таким образом, оперативная память 102 масштабного коэффициента и оперативная память 103 1/matrix используются совместно в модуле 14 квантования, и все масштабные коэффициенты MF и обратные величины значения матрицы, которые пригодны для модулей квантования с 14-1 по 14-n во время последующего этапа, поступают к модулям квантования с 14-1 по 14-n, в соответствии с адресами DCT. Каждый из модулей квантования с 14-1 по 14-n выбирает масштабный коэффициент MF в соответствии с выбранным параметром QP1 квантования. Также каждый из модулей квантования с 14-1 по 14-n выбирает обратную величину значения матрицы, в соответствии с идентификационным номером idx матрицы. Соответственно, оперативная память 102 масштабного коэффициента и оперативная память 103 1/matrix могут быть использованы совместно в модуле 14 квантования, так что емкость оперативной памяти, необходимая для всего модуля 14 квантования, может быть уменьшена. Кроме того, модуль 14 квантования удерживает масштабные коэффициенты MF и обратные величины значения матрицы отдельно друг от друга. По этой причине, необходимая емкость для сохранения оперативной памяти 102 масштабного коэффициента и оперативной памяти 103 1/matrix может быть уменьшена, по сравнению со случаем удерживания всех значений полученных масштабных коэффициентов MF и обратных величин значения матрицы.
Вычислительный модуль 15 CAVLC отличается от традиционного вычислительного модуля 400 CAVLC тем, что совместный вычислительный модуль 150 CAVLC адаптивно выбирает таблицы VLC и кодирует значения TrailingOne и TotalCoef.
Счетный модуль 401 TrailingOne, счетный модуль 402 TotalCoef, счетный модуль 403 TotalZero, счетный модуль 404 RunBefore, расчетный модуль 405 LevelLength, расчетный модуль 406 ZeroLeft, память ПЗУ 408 длины в битах TotalZeroLength, и память ПЗУ 409 длины в битах RunBefore в каждом из вычислительных CAVLC модулей с 15-1 по 15-n последовательно выполняют процесс на коэффициентах DCT, подаваемых к ним. То есть, соответствующие модули в каждом из вычислительных CAVLC модулей с 15-1 по 15-n выполняют 4×4=16 раз вычисление на 4×4 DCT блоках. В противоположность этому, память ПЗУ 407 длины в битах TotalCoefLength нуждается только в выборе одной таблицы VLC, и выполняет вычисление один раз на TrailingOne и TotalCoef, вычисленных для 4×4 DCT блоков. То есть, память ПЗУ 407 длины в битах TotalCoefLength нуждается во времени вычисления, составляющем только около одной шестнадцатой относительно соответствующих модулей в каждом из вычислительных CAVLC модулей с 15-1 по 15-n. Таким образом, совместный вычислительный модуль 150 CAVLC удерживает TrailingOne и TotalCoef, передаваемые из вычислительных CAVLC модулей с 15-1 по 15-n, в буферах 201 и 202 соответственно. В то время как соответствующие модули в каждом из вычислительных CAVLC модулей с 15-1 по 15-n выполняют процесс на следующих блоках 4×4, совместный вычислительный модуль 150 CAVLC адаптивно выбирает таблицы VLC для предшествующих блоков 4×4 и последовательно кодирует пятнадцать модулей TrailingOnes и TotalCoefs, рассчитанных вычислительными CAVLC модулями с 15-1 по 15-n.
В совместном вычислительном модуле 150 CAVLC выходы счетных модулей 401 TrailingOne и счетных модулей 402 TotalCoef вычислительных CAVLC модулей с 15-1 по 15-n с 15 параллельными линиями удерживаются в пятнадцати этапах буферов в каждом из буферов 201 и 202.
Сумматор 203 принимает модули TrailingOnes и TotalCoefs из буферов 201 и 202 в режиме разделения времени и добавляет TrailingOnes и TotalCoefs, чтобы рассчитать количество ненулевых коэффициентов. Память 205 nA holding memory удерживает количество nA ненулевых коэффициентов блока 4×4, определяемых как примыкающий слева блок в макроблоке. Память 204 nB holding memory удерживает количество nВ ненулевых коэффициентов блока 4×4, определяемых как примыкающий сверху блок в макроблоке блоков 4×4.
Здесь совместный вычислительный модуль 150 CAVLC обычно нуждается в удерживании информации nB нижней границы макроблока MB и использует ее как информацию nB блока 4×4 на верхней границе нижнего макроблока. Однако если 15-этапная память строки для удерживания nB располагается в совместном вычислительном модуле 150 CAVLC, то емкость хранения памяти ОЗУ, требуемая для совместного вычислительного модуля 150 CAVLC, становится больше, что является нежелательным в связи с увеличением масштаба схемы. Поэтому, когда происходит обработка блока 4×4 на верхней границе MB, то совместный вычислительный модуль 150 CAVLC выполняет такой же процесс, как процесс макроблока на самом верхнем участке экрана за счет установления равенства между nA и nB.
То есть, в том случае, когда блок 4×4 находится на верхней границе MB, сумматор 206 устанавливает индекс nС выбора таблицы на nA. Сумматор 206 устанавливает индекс nС на значение nB для блока 4×4 на левой границе экрана. В других случаях, отличающихся от двух вышеописанных случаев, т.е. в тех случаях, когда блок 4×4 находится ни на верхней границе MB, ни на левой границе экрана, сумматор 206 устанавливает индекс nС на значение (nA+nВ)/2. В этом случае ПЗУ 207 длины в битах TotalCoefLength выбирает таблицу VLC на основе индекса nС выбора таблицы, кодирует TrailingOnes и TotalCoefs и рассчитывает их длины кодов. В результате, ПЗУ 207 длины в битах TotalCoefLength последовательно выводит длины в битах TotalCoefLength в сумматор 208. В сумматор 208 поступают длины кодов, рассчитанных вычислительными CAVLC модулями с 15-1 по 15-n. Сумматор 208 складывает коды, которые соответствуют длинам в битах TotalCoefLength, и которые поступили из вычислительных CAVLC модулей с 15-1 по 15-n, и длины в битах TotalCoefLength, таким образом рассчитывая длины кодов соответствующих блоков 4×4. Модуль 4 управления количества кода добавляет длины кода соответствующих блоков 4×4 в модули блоков MB, таким образом рассчитывая генерируемые количества кодовой информации соответствующих блоков MB. Эти процессы неоднократно осуществляются на всем изображении.
Таким образом, в вычислительном модуле 15 CAVLC, ПЗУ 207 длины в битах TotalCoefLength, в котором количество вычислений мало, используется совместно. Соответственно, в вычислительном модуле 15 CAVLC количество ПЗУ 207 длины в битах TotalCoefLength может быть уменьшено, и конфигурация схемы может быть упрощена. Вычислительный модуль 15 CAVLC устанавливает индекс nС выбора таблицы на значение nА в том случае, когда блок 4×4 находится на верхней границе MB. Соответственно, память nВ сохранения строки на границе MB в вычислительном модуле 15 CAVLC может быть опущена, объем памяти ОЗУ, требуемой для вычислительного модуля 15 CAVLC, может быть значительно уменьшен, и конфигурация схемы может быть упрощена.
Согласно вышеописанному устройству 100 кодирования изображения и способу кодирования изображения, в соответствии с вариантом осуществления настоящего изобретения, модуль 14 квантования сохраняет масштабные коэффициенты MF и 1/Q Matrix отдельно друг от друга, и поставляет все значения, подходящие в соответствии с адресами DCT, в соответствующие модули с 14-1 по 14-n квантования. Каждый из модулей с 14-1 по 14-n квантования выбирает масштабный коэффициент MF и 1/Q Matrix в соответствии с установленным параметром QP квантования. Соответственно, в модуле 14 квантования память может быть использована совместно модулями с 14-1 по 14-n квантования, и таким образом память может быть уменьшена. Вычислительный модуль 15 CAVLC не использует прилегающий сверху блок 4×4 в верхнем конечном участке блока MB во время выбора таблицы VLC, таким образом память 412 для сохранения строки границы nВ блока MB может быть уменьшена. Более того, в вычислительном модуле 15 CAVLC совместно используемый вычислительный модуль 15 CAVLC, в котором вычисление осуществляется в модулях 4×4 блоков DCT, используется совместно в режиме разделения времени, таким образом логический модуль может быть уменьшен.
Кроме того, устройство 100 кодирования изображения выполняет предварительное кодирование дважды в модулях изображений, принимая во внимание, что преимущество AVC не может быть максимизировано, если модуль процесса слишком мал, потому что эффективность увеличивается за счет использования внутриэкранной корреляции в AVC. Кроме того, устройство 100 кодирования изображения применяет частично параллельную конфигурацию, основанную на частичном совместном использовании схемы, чтобы преодолеть проблему, в которой количество обработки увеличивается, в результате приводя к увеличению в масштабе схемы кодирования с целью увеличения эффективности. Соответственно, устройство 100 кодирования изображения способно приводить в соответствие генерированное количество кодовой информации и целевое количество кодовой информации, данное в одном изображении, и определяющее распределение количества кодовой информации, принимая во внимание визуальную характеристику, т.е. параметры QP квантования, в то же время упрощая конфигурацию устройств предварительного кодирования.
Кроме того, настоящее изобретение не ограничивается вышеописанным вариантом осуществления изобретения, и различные улучшения и изменения допустимы без отклонения от замысла изобретения.
Например, вышеописанное устройство кодирования изображения и способ кодирования изображения могут быть осуществлены как компьютерная программа, загруженная в устройство, или носитель записи, выполняющий программу, и как компьютерная программа для выполнения способа или носитель записи, выполняющий эту программу.
Кроме того, вышеописанные последовательности процессов кодирования могут быть выполнены с помощью аппаратной части, и могут быть выполнены с помощью программного обеспечения. В том случае, когда процессы кодирования реализуются с помощью программного обеспечения, устройство 100 кодирования изображения виртуально формируется в центральном процессоре или ОЗУ. Затем программа кодирования, сохраняемая в ПЗУ, развертывается в ОЗУ, таким образом осуществляются процессы кодирования.
1-4. Процедура процесса.
Далее будет дано описание со ссылкой на диаграмму, показанную на фиг.5, иллюстрирующую таблицу VLC процедуры RT1 выбора процесса, осуществляемую с помощью совместного вычислительного модуля 150 CAVLC в соответствии с программой кодирования.
Вычислительный модуль 15 CAVLC запускает таблицу VLC процедуры RT1 выбора процесса, когда она присылается с коэффициентами DCT из модуля 14 квантования, и переходит к шагу S1. Вычислительный модуль 15 CAVLC считает с помощью вычислительных CAVLC модулей с 15-1 по 15-n значения TrailingOnes и TotalCoefs, а затем переходит к следующему шагу S2.
Во время выполнения шага S2 вычислительный модуль 15 CAVLC добавляет значения TrailingOnes и TotalCoefs, чтобы рассчитать количество ненулевых коэффициентов, а затем переходит к следующему шагу S3.
Во время выполнения шага S3 вычислительный модуль 15 CAVLC временно сохраняет количества nА и nВ ненулевых коэффициентов как эталонную цель, а затем переходит к следующему шагу S4.
Во время выполнения шага S4 вычислительный модуль 15 CAVLC оценивает, находится ли блок 4×4, как цель процесса, на верхней границе блока MB. Здесь, если получен отрицательный ответ, то это означает, что nВ, как эталонная цель, удерживается в памяти 204 nВ holding memory. В это время вычислительный модуль 15 CAVLC переходит к следующему шагу S6. Во время выполнения шага S6 вычислительный модуль 15 CAVLC использует среднее значение nА и nВ как индекс nС выбора таблицы, а затем переходит к следующему шагу S7.
С другой стороны, если во время выполнения шага S4 получен положительный ответ, то вычислительный модуль 15 CAVLC переходит к шагу S5 и использует nА как индекс nС выбора таблицы, а затем переходит к следующему шагу S7.
Во время выполнения шага S7 вычислительный модуль 15 CAVLC выбирает таблицу VLC на основании индекса nС выбора таблицы, и переходит к конечному шагу, чтобы завершить процесс.
1-5. Процесс работы и эффект
В вышеописанной конфигурации устройство 100 кодирования изображения обеспечивается входным изображением 91, которое построчно сканируется в модулях MB, как блоках сканирования, каждый из которых составлен множеством блоков 4×4, в то же время сосканированных в модулях из блоков 4×4, как кодирующих блоках, каждый из которых составлен множеством пикселей. Устройство 100 кодирования изображения выбирает таблицу VLC (переменной длины), соответствующую индексу nС выбора таблицы, который является средним значением количеств nА и nВ ненулевых коэффициентов, как кодирующих значений, на которых должно быть выполнено кодирование переменной длины в прилегающих сверху и прилегающих слева блоках 4×4 блока 4×4, как цели кодирования, в коэффициентах квантования, как данных цели кодирования, основанных на входном изображении 91. В это время, в том случае когда блок 4×4, как цель кодирования, находится на верхнем конце блока MB, устройство 100 кодирования изображения приравнивает количество nВ ненулевых коэффициентов прилегающего сверху блока 4×4 к количеству nА ненулевых коэффициентов прилегающего слева блока 4×4. Устройство 100 кодирования изображения осуществляет кодирование переменной длины на количестве ненулевых коэффициентов блока 4×4, как цели кодирования, в коэффициентах квантования, использующих выбранную таблицу VLC.
Соответственно, в устройстве 100 кодирования изображения память для одной строки, используемой для обращения к количеству nВ прилегающих сверху ненулевых коэффициентов в верхнем конце блока MB, может не применяться, таким образом конфигурация схемы может быть упрощена.
Устройство 100 кодирования изображения кодирует входное изображение 91 с помощью квантования, используя этапы квантования, основанные на, по меньшей мере, коэффициентах квантования (параметры QP квантования или матрицу квантования или оба этих параметра), таким образом генерируя коэффициенты квантования, как данные цели кодирования.
Устройство 100 кодирования изображения определяет базовый параметр QPMB квантования, в котором прогнозируется, что генерируемое количество кодовой информации главного кодирования, полученное с помощью выполнения главного кодирования на входном изображении 91, является наиболее приближенным к целевому количеству кодовой информации на основе генерированных количеств кодовой информации низкой точности, полученных через кодирование переменной длины, выполненное на коэффициентах квантования. Устройство 100 кодирования изображения осуществляет главное кодирование на входном изображении 91 на основе определенного базового параметра QPMB квантования.
Соответственно, устройство 100 кодирования изображения может определять базовый параметр QPMB квантования на основе генерированных количеств кодовой информации низкой точности, рассчитанных в простой конфигурации.
Устройство 100 кодирования изображения осуществляет процесс DCT, который является ортогональной трансформацией, на входном изображении 91 в модулях из блоков 4×4, а затем выполняет квантование входного изображения 91, используя этапы квантования, основанные на параметрах QP квантования, чтобы кодировать его, таким образом генерируя коэффициенты квантования. Устройство 100 кодирования изображения определяет прогнозируемый параметр QPd квантования, как прогнозируемый коэффициент квантования, для приближения к базовому параметру QPMB квантования.
Устройство 100 кодирования изображения кодирует входное изображение 91 на основе выбранного прогнозируемого параметра QPd квантования и параметров QP квантования, приближающихся к прогнозируемому параметру QPd квантования, и рассчитывает генерированные количества кодовой информации с высокой точностью входного изображения 91. Устройство 100 кодирования изображения определяет базовый параметр QPMB квантования на основе рассчитанных генерированных количеств кодовой информации с высокой точностью входного изображения 91.
Соответственно, устройство 100 кодирования изображения может определять базовый параметр QPMB квантования на основе прогнозируемого параметра QPd квантования, который с высокой вероятностью может быть базовым параметром QPMB квантования, при этом параметры QP квантования приближаются к прогнозируемому параметру QPd квантования. Поэтому устройство 100 кодирования изображения может увеличить точность прогнозирования на основе базового параметра QPMB квантования.
Устройство 100 кодирования изображения кодирует входное изображение 91, используя множество этапов квантования, основанных на множестве параметров QP квантования, таким образом генерируя множество коэффициентов квантования. Устройство 100 кодирования изображения определяет базовый параметр QPMB квантования на основе множества генерированных количеств кодовой информации низкой точности, полученных при выполнении кодирования переменной длины, выполненное на множестве коэффициентов квантования.
Соответственно, устройство 100 кодирования изображения может увеличить точность прогнозирования на основе базового параметра QPMB квантования.
Устройство 100 кодирования изображения включает в себя множество счетных модулей, подключенных параллельно, количество которых равно количеству множества коэффициентов квантования, которые должны быть генерированы. Каждый модуль из этого множества счетных модулей считает количество ненулевых коэффициентов, которые не являются нулем, как кодирующее значение из блока 4×4 в коэффициентах квантования. Устройство 100 кодирования изображения последовательно осуществляет кодирование переменной длины на всех посчитанных количествах ненулевых коэффициентов.
Соответственно, в устройстве 100 кодирования изображения память ПЗУ 207 длины в битах TotalCoefLength, которая осуществляет кодирование переменной длины на количестве ненулевых коэффициентов, может быть использована совместно как совместный вычислительный модуль 150 CAVLC. То есть, в устройстве 100 кодирования изображения счетные модули, которые требуют 4×4=16 раз вычислений для блока 4×4, являются отделенными от памяти ПЗУ 207 длины в битах TotalCoefLength, для которой только нужно выполнить процесс на блоке 4×4 один раз, и память ПЗУ 207 длины в битах TotalCoefLength используется совместно, как совместный вычислительный модуль 150 CAVLC. Также устройство 100 кодирования изображения использует в режиме разделения времени количество ненулевых коэффициентов, например, посчитанных с помощью пятнадцати счетных модулей, и затем память ПЗУ 207 длины в битах TotalCoefLength последовательно осуществляет кодирование переменной длины. Соответственно, в устройстве 100 кодирования изображения количество памяти ПЗУ 207 длины в битах TotalCoefLength может быть уменьшена, таким образом конфигурация вычислительного модуля 15 CAVLC может быть упрощена.
Устройство 100 кодирования изображения последовательно выбирает таблицы VLC, соответствующие множеству коэффициентов квантования на основе всех количеств ненулевых коэффициентов, посчитанных с помощью множества счетных модулей.
Соответственно, в устройстве 100 кодирования изображения цепь для адаптивного выбора таблиц VLC (буферы 201 и 202, сумматоры 203 и 206, память 204 nB holding memory, память 205 nA holding memory) могут быть использованы совместно множеством счетных устройств. В результате, для устройства 100 кодирования изображения требуется только одна цепь для адаптивного выбора таблиц VLC, таким образом конфигурация может быть упрощена.
Устройство 100 кодирования изображения включает в себя, как счетные модули, счетный модуль 401 TrailingOne, который считает значения TrailingOne, являющиеся количеством последовательно расположенных значений 1 или -1, и счетный модуль 402 TotalCoef, который считает значения TotalCoef, являющиеся количеством ненулевых значений, не посчитанных счетным модулем 401 TrailingOne. Устройство 100 кодирования изображения дополнительно включает в себя, как цепь для осуществления кодирования переменной длины, буфер 201, который сохраняет все значения TrailingOne, посчитанные счетным модулем 401 TrailingOne, буфер 202, который сохраняет все значения TotalCoef, посчитанные счетным модулем 401* TotalCoef, и сумматор 203, который последовательно суммирует значения TrailingOne и TotalCoef, хранящиеся в буферах 201 и 202, таким образом последовательно вычисляя количество ненулевых счетных значений.
В устройстве 100 кодирования изображения оперативная память 102 масштабного коэффициента сохраняет первые коэффициенты умножения (масштабные коэффициенты MF), согласно комбинациям адресов DCT, которые являются положениями в блоках 4×4, и коэффициенты квантования (параметры QP квантования), определяет масштабные коэффициенты MF, являющиеся допустимыми в соответствии со всеми параметрами QP квантования из адресов DCT блока 4×4, и выводит определенные масштабные коэффициенты MF. В устройстве 100 кодирования изображения модули выбора коэффициента умножения (переключатели 503 масштабного коэффициента) обеспечиваются параллельно, причем их количество равно количеству множества коэффициентов квантования, а выбранные масштабные коэффициенты MF, согласно параметрам QP квантования, должны быть использованы среди выходных масштабных коэффициентов MF. В устройстве 100 кодирования изображения множество умножителей 507 обеспечиваются параллельно, причем их количество равно количеству множества коэффициентов квантования, умноженных на выбранные коэффициенты умножения с помощью значения блока 4×4. В устройстве 100 кодирования изображения многорегистровая схема 508 циклического сдвига, как множество смещающих модулей, обеспечивается параллельно, причем их количество равно количеству множества коэффициентов квантования, причем смещение значений коэффициентов квантования, умноженных с помощью умножителей 507, производится вправо на количество цифр, соответствующее коэффициентам квантования.
Соответственно, в устройстве 100 кодирования изображения оперативная память для удерживания коэффициентов умножения может использоваться совместно, таким образом емкость оперативной памяти может быть уменьшена.
В устройстве 100 кодирования изображения оперативная память 103 1/Matrix сохраняет, как коэффициенты квантования, вторые коэффициенты умножения (величины, обратные значениям матрицы в матрице квантования), согласно комбинациям матриц квантования и положений блоков кодирования, определяет обратные величины значений матрицы, допустимые в соответствии со всеми матрицами Q Matrix квантования из адресов DCT блоков 4×4, и выводит определенные обратные величины значений матрицы. Устройство 100 кодирования изображения выбирает обратные величины значений матрицы, согласно матрице Q Matrix квантования, которые должны быть использованы среди выходных обратных величин значений матрицы.
Соответственно, устройство 100 кодирования изображения может сохранять комбинации параметров QP квантования и адреса блоков 4×4, а также комбинации матриц квантования и адреса блоков 4×4 отдельно друг от друга. Поэтому в устройстве 100 кодирования изображения общее количество комбинаций, которые должны сохраняться в памяти, может быть уменьшено по сравнению с традиционной оперативной памятью ОЗУ 305 масштабного коэффициента, которая сохраняет параметры QP квантования, адреса блоков 4×4 и коэффициенты умножения, согласно матрицам квантования. В результате, устройство 100 кодирования изображения может уменьшить объем оперативной памяти 102 масштабного коэффициента и оперативной памяти 103 обратной величины матрицы 1/Matrix.
Согласно вышеописанной конфигурации, устройство 100 кодирования изображения принимает входное изображение 91, которое является построчно сканированным в модулях MB, и которое является сканированным в порядке растрового сканирования, в котором блок 4×4 сканируется в Z-образной форме. В результате, примыкающий слева блок 4×4, в котором количество nА ненулевых коэффициентов относится к тому, чем является блок 4×4 перед предшествующим блоком в максимуме. И наоборот, примыкающий сверху блок, в котором количество nВ ненулевых коэффициентов относится к тому, что может быть на предшествующей строке MB. При кодировании блока 4×4 в верхнем конце блока MB в режиме простого кодирования, устройство 100 кодирования изображения приравнивает количество nВ ненулевых коэффициентов примыкающего сверху блока к количеству nА ненулевых коэффициентов примыкающего слева блока 4×4, таким образом устройство становится способным уменьшить память для сохранения количества nВ ненулевых коэффициентов в предшествующей строке MB. Таким образом, конфигурация схемы может быть упрощена.
<2. Второй вариант осуществления изобретения>
Второй вариант осуществления изобретения, проиллюстрированный на фиг.6-13, отличается от первого варианта осуществления изобретения тем, что здесь обеспечивается модуль 40 предварительного кодирования с оценкой предшествующего режима.
2-1. Поиск назад.
Настоящее изобретение относится, например, к устройству кодирования изображения или подобному устройству, и особенно относится к технической области предотвращения ухудшения качества во время копирования и выполнения управления для получения желаемого главного кодирующего генерируемого количества кодовой информации во время главного кодирования.
Традиционно, когда видеоданные передаются между станциями телевизионного вещания, или когда осуществляется копирование видеоданных с использованием множества видеомагнитофонов (устройств VTR), кодирующее устройство и декодирующее устройство нужно соединить в последовательный тандем, потому что видеоданные, которые сжимаются и кодируются с помощью способа MPEG (Moving Picture Experts Group) 2, распаковываются и декодируются, а затем снова сжимаются и кодируются.
В этом случае применяется так называемый способ «поиск назад» ("back search"), как способ для уменьшения ухудшения качества видео вследствие повторения сжимающего кодирования и распаковывающего декодирования в таком последовательном соединении.
Здесь «поиск назад» является способом для получения этапа квантования, относящегося к минимальному значению, как оптимальный этап квантования с помощью использования характеристики, в которой общая сумма средств оповещения коэффициентов DCT (Discrete Cosine Transform) является чрезвычайно малой, когда используется этап квантования в предшествующем сжимающем кодировании или используется этап квантования, имеющий отношение к множеству таких кодирований.
Что касается технологии, использующей этот способ «поиск назад», то, например, патентный документ 2 раскрывает устройство сжатия видеоданных для предотвращения ухудшения качества видео в том случае, когда этап квантования в предшествующем сжимающем кодировании воспроизводится с использованием способа обратного поиска, когда входные видеоданные являются сжатыми с помощью кодирования снова с этапом квантования и фазой GOP (Group Of Pictures), которые являются аналогичными предшествующим, и где сжимающее кодирование и распаковывающее декодирование видеоданных повторяются с помощью последовательного соединения кодирующего устройства и декодирующего устройства.
В способе кодирования, использующем ортогональную трансформацию, таком как MPEG2, существует способ для воспроизводства или повторного использования значения квантования и взаимно-прогнозируемого* изображения (вектор перемещения) как способа предотвращения ухудшения качества во время копирования. С другой стороны, в Н.264 (AVC: Advanced Video Coding: advanced moving image compression coding standard) используется прогнозирование внутри изображения и внутриэкранное прогнозирование (внутреннее прогнозирование), и ухудшение качества во время копирования может быть предотвращено с помощью воспроизводства матрицы Q Matrix в модулях изображений, режимов внутриэкранного прогнозирования в модулях блоков DCT и значений квантования в модулях макроблоков.
Патентный Документ 2: Нерассмотренная Заявка на Патент Японии. Публикация заявки №10-174098.
Кроме того, в AVC Intra, если матрица Q Matrix квантования и параметр QP квантования, используемые в прогнозирующем кодировании, используются для того, чтобы снова декодировать изображение, которое уже однажды кодировалось и декодировалось при декодировании, то возникновение искажения квантования уже менее вероятно, поскольку искажения квантования было уже удалено в процессе предварительного кодирования. Обнаружение Q Matrix и QP, используемые в прогнозирующем кодировании таким способом, при высокой вероятности вызвано функцией «поиск назад» ("back search").
Этот поиск назад имеет процесс конфигурации воспроизводимых значений квантования и параметров для улучшения характеристик процесса копирования в H.264/AVC (Advanced Video Coding) - способе сжатия изображения, и имеет следующие характеристики, любая из которых направлена на уменьшение масштаба схемы:
- входное изображение, нелокальное декодирующее изображение, используется как внутреннее прогнозируемое изображение;
- значение уровня квантования генерируется из масштабного коэффициента декодирующего устройства;
- QP макроблока определяется на основе минимального состояния устройства оповещения, а затем параметр внутриэкранного режима прогнозирования воспроизводится с минимальным состоянием устройства оповещения.
Кроме того, конфигурация кодирующего устройства выполняет поиск назад, в соответствии с AVC, описанной, например, в Патентном Документе 3.
Патентный Документ 3: Международная Заявка на изобретение №PCT/JP2008/066917.
В дополнение к вышеупомянутой конфигурации, для дополнительного уменьшения схемы в этом варианте осуществления изобретения используется следующая конфигурация:
- только коэффициенты первой половины в порядке DCT сканирования рассматриваются в качестве цели процесса;
- цепь вычисления для значений устройства оповещения (соответствующая модулю расчета устройства оповещения, описанного ниже) является приближенной в помощью вычитания около десяти разрядов.
В дальнейшем этот вариант осуществления изобретения будет подробно описываться с учетом этих характеристик.
Фиг.6 иллюстрирует и описывает конфигурацию устройства 200 кодирования изображения, согласно варианту осуществления настоящего изобретения.
Модуль 40 предварительного кодирования с оценкой предшествующего режима является модулем, который осуществляет предварительное кодирование для оценивания предшествующего режима и включает в себя модуль 60 для обработки параметра воспроизведения, буфер 44, модуль 45 квантования и модуль 46 расчета длины статистического кода.
Модуль 4 управления количеством кодовой информации является модулем, который осуществляет управление количеством кодовой информации.
В модуле 40 предварительного кодирования с оценкой предшествующего режима первые кандидатуры* до номера n режимов внутриэкранного прогнозирования, определяемые в порядке возрастания количества кодовой информации с помощью режима внутриэкранного прогнозирования, определяемого модулем 11, вводятся в модуль 60 для обработки параметра воспроизведения. Модуль 60 для обработки параметра воспроизведения имеет функцию выявления параметра QP квантования и функцию выявления режима внутриэкранного прогнозирования. Модуль 60 для обработки параметра воспроизведения выявляет параметр QP квантования, используемый в предшествующем кодировании с помощью использования функции выявления режима внутриэкранного прогнозирования. В дальнейшем, параметр QP квантования, который является выявленным, называется выявленным параметром QPe квантования. В частности, модуль 60 для обработки параметра воспроизведения обнаруживает выявленный параметр QPe квантования, используя устройства оповещения, генерируемые с помощью разделения DCT коэффициентов в каждом блоке MB коэффициентами RF изменения масштаба, основанными на множестве параметров QP квантования. Затем модуль 60 для обработки параметра воспроизведения выявляет режим внутриэкранного прогнозирования, который был использован в предшествующем кодировании, на основе выявленного параметра QPe квантования с помощью использования функции выявления режима внутриэкранного прогнозирования. Подробности этой конфигурации описаны в Патентном Документе 3. Следует заметить, что в этом варианте осуществления изобретения только обнаружение выявленного параметра QPe квантования и режима внутриэкранного прогнозирования выполняется как поиск назад, и что обнаружение выявленной матрицы Q MatrixE квантования не выполняется для уменьшения процессов.
Модуль 45 квантования осуществляет квантование, используя выявленный параметр QPe квантования и режим внутриэкранного прогнозирования, выявленные в процессе обратного поиска на блоке MB, в котором обратный поиск был успешно выполнен. Модуль 45 квантования использует базовый параметр QPMB квантования, группу активности, и первую кандидатуру режима внутриэкранного прогнозирования, определенную первым модулем 1 предварительного кодирования для блока MB, в котором обратный поиск не был успешно выполнен. Модуль 46 расчета длины статистического кода выбирает такой же способ, как способ статистического кодирования главного кодирования, осуществляемый модулем 3 главного кодирования из CABAC/CAVLC. Модуль 4 управления количеством кодовой информации оценивает, удовлетворяет ли обратный поиск генерированного количества кодовой информации, полученной этим способом, целевому количеству кодовой информации, и определяет, какой из оригинальных режимов изображения и режима копирования должен быть использован для осуществления кодирования.
Модуль 4 управления количеством кодовой информации определяет, какой из оригинальных режима изображения и режима копирования должен быть использован для осуществления кодирования, в соответствии с результатом предварительного кодирования с оценкой предшествующего режима, выполняемого модулем 4*, и определяет окончательный параметр кодирования (подробности будут описаны ниже). Модуль 4 управления количеством кодовой информации поставляет в модуль 3 главного кодирования результат оценки оригинального режима изображения/режима копирования, базовый параметр QPMB квантования, матрицу Q MatrixD прогнозируемого квантования, режим внутриэкранного прогнозирования и группу активности каждого блока MB (в дальнейшем эти параметры в общем будут называться главной кодирующей информацией). В результате, модуль 3 главного кодирования переходит или в оригинальный режим изображения, или режим копирования, и осуществляет кодирование, используя главную кодирующую информацию, согласно оригинальному режиму изображения и режиму копирования.
Модуль 3 главного кодирования осуществляет главное кодирование, используя базовый параметр QPMB квантования, матрицу Q MatrixD прогнозируемого квантования, группу активности, и т.д. То есть, модуль 31 внутриэкранной обработки прогнозирования, принимая задержанное входное изображение через буфер 6 задержки, рассчитывает разницу в изображении между прогнозируемым изображением и входным изображением в режиме прогнозирования, определенном при первом предварительном кодировании. В это время модуль 31 внутриэкранной обработки прогнозирования использует режим внутриэкранного прогнозирования, определяемого модулем 11 внутриэкранного режима прогнозирования, если режим является оригинальным режимом изображения, и использует режим внутриэкранного прогнозирования, определяемого модулем 60 для обработки параметра воспроизведения, если режим является режимом копирования.
2-2. Конфигурация модуля обработки параметра воспроизведения
Фиг.7 иллюстрирует и описывает отношения между модулем 11 внутриэкранного режима прогнозирования и модулем 60 для обработки параметра воспроизведения.
Как показано на фиг.7, модуль 11 внутриэкранного режима прогнозирования включает в себя модуль 51 для оценки блока MB кадр/поле, модуль 52 определения группы активности, и модуль 53 для оценки внутриэкранного режима прогнозирования. Модуль 60 для обработки параметра воспроизведения включает в себя первый модуль 61 обработки внутреннего прогнозирования, второй модуль 62 обработки внутреннего прогнозирования, третий модуль 63 обработки внутреннего прогнозирования, модули с 64 по 66 DCT, модуль 70 поиска назад MB QP и модуль 80 внутреннего прогнозирования при поиске назад.
Параметры Intra AVC включают в себя AFF, показывающий тип макроблока кадр/поле, смещение значения квантования (активное смещение) каждого блока MB, и режим внутриэкранного прогнозирования 4×4, 8×8 и 16×16 (8×8/4×4 I-Prediction). Модуль 11 внутриэкранного режима прогнозирования определяет эти параметры на основе входного изображения 91.
В дальнейшем, процедура RT2 обработки параметра воспроизведения будет описана со ссылкой на диаграмму, показанную на фиг.10.
То есть, входное изображение 91 является входным для модуля 51 оценки блока MB кадр/поле. Модуль 51 для оценки блока MB кадр/поле оценивает, является ли блок MB кадром или полем с помощью выполнения процесса получения суммы квадратов разницы всех образцов блока MB в межполевой корреляции (этап S21).
Этот процесс является процессом исключения блоков MB, имеющих исключительно низкую кадровую корреляцию, такие как фейерверки или вспышки, сравнительно с простыми кадровыми блоками MB, и рассматривают их как полевые MB. Оценочное значение для оценки полевого MB является большим и с меньшей вероятностью будет подвергаться влиянию искажения, и таким образом, та же самая оценка выполняется с высокой вероятностью даже при втором кодировании.
Модуль 52 определения группы активности получает четыре типа суммы квадратов из среднего значения блока 8×8, чтобы выбрать минимальное значение, и осуществляет группирование (определяет активную группу) на граничном значении, которая является заданной в соответствии с блоком минимального значения (этап S22). В однократно кодированном сигнале существует много случаев, когда коэффициент после DCT округляется до нуля в результате квантования, и таким образом, активность (сумма квадратов из среднего значения) уменьшается во многих случаях. Модуль 70 поиска назад MB QP, описанный ниже, ищет предполагаемое значение как прогнозируемый параметр QP квантования с помощью смещения параметра QP квантования в направлении увеличения от минимального значения.
В некоторых случаях существуют два или три режима, имеющие приблизительный прогнозируемый остаток, и модуль 53 для оценки внутриэкранного режима прогнозирования выбирает режим внутриэкранного прогнозирования, который отличается от режима в предварительном кодировании как первый кандидат. Модуль 53 для оценки внутриэкранного режима прогнозирования получает трех кандидатов режимов внутриэкранного прогнозирования: первый, второй и третий кандидаты в оптимальном порядке, и выводит этих кандидатов как параметры (этап S23). В этом примере количество кандидатов равно трем, что соответствует упрощению конфигурации на стороне модуля 60 для обработки параметра воспроизведения. Максимальное количество кандидатов режимов внутриэкранного прогнозирования составляет девять. Любое предпочтительное количество, равное девяти или меньше, является приемлемым как количество кандидатов, и конечно, это количество не ограничивается девятью.
Принимая во внимание эти результаты, модуль 60 для обработки параметра воспроизведения использует результат модуля 53 для оценки внутриэкранного режима прогнозирования так же, как результат AFF оценки.
Входное изображение 91 является входным для модуля 60 обработки параметра воспроизведения. Модуль 60 для обработки параметра воспроизведения осуществляет с помощью первого модуля 61 обработки внутреннего прогнозирования, второго модуля 62 обработки внутреннего прогнозирования и третьего модуля 63 обработки внутреннего прогнозирования процесс прогнозирования, используя первого, второго и третьего кандидатов режимов внутриэкранного прогнозирования, полученных с помощью модуля 53, для оценки внутриэкранного режима прогнозирования, таким образом генерируя данные разницы изображения.
Впоследствии соответствующие модули с 64 по 66 DCT осуществляют процесс DCT на основе данных разницы изображения, чтобы генерировать коэффициенты DCT. Модуль 70 поиска назад MB QP обнаруживает выявленные параметры QPe квантования, используя первого кандидата режима внутриэкранного прогнозирования (этап S24). Модуль 80 внутреннего прогнозирования при поиске назад обнаруживает режим внутриэкранного прогнозирования, используемый в предшествующем кодировании (этап S25).
Здесь первый модуль 61 обработки внутреннего прогнозирования, второй модуль 62 обработки внутреннего прогнозирования и третий модуль 63 обработки внутреннего прогнозирования следует обычно использовать как прогнозируемое изображение, локальное декодирующее изображение, на котором после квантования были осуществлены деквантизация и инверсное DCT, но с использованием входного изображения 91. Соответственно, конфигурация схемы первого модуля 61 обработки внутреннего прогнозирования, второго модуля 62 обработки внутреннего прогнозирования и третьего модуля 63 обработки внутреннего прогнозирования может быть уменьшена, таким образом аккумулирование ошибки может быть предотвращено в том случае, когда режим внутриэкранного прогнозирования отличается от этого режима в предшествующем кодировании.
Далее фиг.9 иллюстрирует и описывает детальную конфигурацию модуля 70 поиска назад MB QP.
Как показано на фиг.9, модуль 70 поиска назад MB QP включает в себя ОЗУ 71 генерации адреса порядка сканирования, буфер 72 коэффициента, ОЗУ 73 матрицы V×A×Q, вычислительный модуль (×10) 74 MB QP, вычислительные модули со 100а по 100е устройства оповещения, и модуль 75 выбора минимального значения.
Вычислительный модуль (×10) 74 MB QP модуля 70 поиска назад MB QP выбирает адаптивные параметры QPt квантования, которые должны быть использованы с помощью добавления активного смещения с десятью типами выбранных параметров QP 1 (с QP0 по QP9) квантования, являющихся средними параметрами BaseQP квантования. То есть, вычислительный модуль (×10) 74 MB QP выбирает десять типов адаптивных параметров QPt квантования. ОЗУ 71 генерации адреса порядка сканирования генерирует адреса DCT, обозначающие положения поставляемых коэффициентов DCT, и передает адреса DCT в буфер 72 коэффициента и ОЗУ 73 матрицы V×A×Q. ОЗУ 73 матрицы V×A×Q рассчитывает коэффициент RF изменения масштаба, используя следующее уравнение на основе адреса DCT и адаптивного параметра QPt квантования. Здесь А является матрицей, представляющей отклонения значения элемента коэффициента, составляющего коэффициент DCT в соотношении между коэффициентом DCT и инверсным коэффициентом DCT, a RF является коэффициентом изменения масштаба, который используется во время декодирования (см. Патентный Документ 3).
RF=RFr*A={V QMatrix A 2floor(QP/6)}>>4.
Кроме того, в ОЗУ 73 матрицы V×A×Q схема составлена из параметров процесса деквантизации декодера, в соответствии с чем длина в битах, требуемая для вычисления, может быть уменьшена по сравнению с традиционным случаем, когда схема составлена с использованием масштабного коэффициента квантования на стороне кодирующего устройства, результатом чего, главным образом, является эффект уменьшения масштаба схемы вычислительных модулей от 100а по 100е устройства оповещения.
Коэффициенты DCT однократно аккумулируются в буфере 72 коэффициента. ОЗУ 71 генерации адреса порядка сканирования управляет буфером 72 коэффициента, чтобы выводить половину примеров (примеры 8/16 в 4×4 DCT, примеры 32/64 в 8×8 DCT) в сканирующем порядке кодирования к модулям от 100а по 100е устройства оповещения посредством повторения их дважды. То есть, модуль 70 поиска назад MB QP рассматривает только первую половину коэффициентов в порядке сканирования DCT (зигзагообразное сканирование от низкочастотного компонента в направлении к высокочастотному) как процесс обработки целей (оценка целей). Вычислительные модули от 100а по 100е средства оповещения могут обрабатывать два типа параметров квантования в режиме разделения времени, рассматривая только половину образцов в качестве оценки целей, и таким образом схема, которая служит как вычислительные модули от 100а по 100е средства оповещения, может быть уменьшена наполовину.
Кроме того, данные на участке, составляющем последнюю половину сканирования после DCT, составлены, главным образом, из коэффициентов, округленных до нуля во время предшествующего кодирования и обычно содержащих много коэффициентов с погрешностями, когда средство оповещения находится в минимуме. С помощью оценки только половины образцов модуль 70 поиска назад MB QP исключает коэффициенты, округленные до нуля во время предшествующего кодирования, что генерирует эффект улучшения точности обнаружения. ОЗУ 73 матрицы V×A×Q выводит значение, которое соответствует фазе сканирования вывода буфера 72 коэффициента.
В этом варианте осуществления изобретения модуль 70 поиска назад MB QP использует параметр со стороны декодера, определяемый с помощью Н.264.
Это описывается следующим уравнением.
Значение ОЗУ=V [QP] [j] [i] × Q Matrix [j] [i] × A [j] [i]
(j и i являются значениями от 0 до 3 в 4×4 DCT и от 0 до 7 в 8×8 DCT).
Кроме того, в Н.264 V [QP] [j] [i] выражается как normAdjust (m, i, j) или normAdjust 8×8 (m, i, j), Q Matrix [j] [i] выражается как weightScale (i, j) или weightScale 8×8 (i,j), и A [j] [i] выражается как Aij.
В дальнейшем процедура RT3 обработки поиска назад будет описана со ссылкой на диаграмму, показанную на фиг.10.
Первое, модуль 70 поиска назад MB QP определяет коэффициент RF изменения масштаба (величину знаменателя) (этап S31).
Значение знаменателя, используемое для вычисления средства оповещения, получено, используя следующее уравнение.
Значение знаменателя = (значение ОЗУ <<(QP/6))>>4
Модуль 70 поиска назад MB QP вычисляет средства оповещения для десяти типов параметров QP квантования, используя следующее уравнение (этап S32).
Средство оповещения = ∑ (коэффициент DCT <<6) % значения знаменателя.
Здесь используются десять типов, принимая во внимание следующее. Параметр QPd прогнозируемого квантования грубо оценивается на основе результата первого предварительного устройства 1 кодирования, и таким образом существенно увеличивает точность, если заданный диапазон, включающий в себя полученный параметр QPd прогнозируемого квантования, рассматривается как цель процесса.
Таким образом, модуль 70 поиска назад MB QP оценивает, закончилось ли сложение средств оповещения в каждом блоке MB (этап S33). Если не закончилось, то процесс возвращается к этапу S31, и вышеупомянутый процесс повторяется. С другой стороны, если сложение закончилось, модуль 70 поиска назад MB QP оценивает, закончилась ли оценка всех десяти типов параметров QP квантования (этап S34). Если оценка не закончилась, процесс возвращается к этапу S31, и вышеупомянутый процесс повторяется. С другой стороны, если оценка закончилась, то модуль 70 поиска назад MB QP собирает средства оповещения, соответствующие десяти типам параметров QP квантования в модулях макроблоков. Модуль 70 поиска назад MB QP сравнивает средства оповещения, соответствующие десяти типам параметров QP квантования, выбирает и выводит параметры QP, соответствующие минимуму средства оповещения (этап S35), и процесс заканчивается. Таким образом модуль 70 поиска назад MB QP определяет параметры QP квантования макроблоков на основе минимального состояния средства оповещения. Параметр режима внутриэкранного прогнозирования воспроизводится в минимальном состоянии средства оповещения.
Кроме того, если во время этапа S33 при оценке выясняется, что сложение средств оповещения в соответствующих блоках MB закончилось, то модуль 70 поиска назад MB QP выводит средства оповещения, собранные в соответствующих блоках MB, в модуль 80 внутреннего прогнозирования при поиске назад (этап S37).
Кроме того, модуль 70 поиска назад MB QP оценивает, закончилось ли сложение в блоках DCT после вычисления средств оповещения (этап S36). Если сложение не закончилось, то процесс возвращается к этапу S31, и вышеупомянутый процесс повторяется. С другой стороны, если сложение закончилось, то средства оповещения, собранные в модулях блоков DCT, также выводятся в модуль 80 внутреннего прогнозирования при поиске назад для выполнения процесса внутреннего прогнозирования при поиске назад (этап S38).
Фиг.11 иллюстрирует и описывает конфигурацию модуля 80 внутреннего прогнозирования при поиске назад.
Как показано на фиг.11, модуль 80 внутреннего прогнозирования при поиске назад включает в себя ОЗУ 81 генерации адреса порядка сканирования, буфер 82 второго коэффициента, буфер 83 третьего коэффициента, SEL 84, ОЗУ 85 матрицы V×A×Q, вычислительный модуль 100f средства оповещения, и модуль 86 выбора минимального значения.
В этой конфигурации модуль 80 внутреннего прогнозирования при поиске назад оценивает режим внутриэкранного прогнозирования, используемый в предшествующем кодировании, на основе минимального состояния средства оповещения в отношении второго и третьего кандидатов режимов внутриэкранного прогнозирования, относящихся к параметрам QP квантования, полученным в модуле 70 поиска назад MB QP.
Обычно устройство 200 кодирования изображения должно иметь конфигурацию процесса, оценивающего десять типов параметров QP квантования для всех режимов внутриэкранного прогнозирования, и выбирающего внутреннее прогнозирование минимума в каждом блоке DCT, но это не является предпочтительным, поскольку масштаб схемы увеличивается.
Соответственно, в этом модуле 80 внутреннего прогнозирования при поиске назад вышеописанная конфигурация схемы применяется для уменьшения масштаба схемы на основе характеристики, в которой может быть реализована некоторая воспроизводимость первого кандидата режима внутриэкранного прогнозирования, и при которой могут быть воспроизведены с высокой вероятностью параметры QP квантования предшествующего кодирования в процессе MB QP поиска назад, использующего первого кандидата режима внутриэкранного прогнозирования. То есть, модуль 80 внутреннего прогнозирования при поиске назад обнаруживает режим внутриэкранного прогнозирования, используемый в предшествующем кодировании, используя выявленный параметр QPe квантования, который обнаруживается с помощью использования первого кандидата режима внутриэкранного прогнозирования.
Как показано на фиг.11, трансформирующие коэффициенты, использующие второго и третьего кандидатов режимов внутриэкранного прогнозирования, аккумулируются во втором буфере 82 для коэффициентов и третьем буфере 83 для коэффициентов. ОЗУ 81 генерации адреса порядка сканирования осуществляет управление, чтобы выводить половину образцов в сканированном порядке кодирования из второго буфера 82 для коэффициентов и третьего буфера 83 для коэффициентов. SEL 84 последовательно выводит половину образцов в сканированном порядке кодирования из второго буфера 82 для коэффициентов и третьего буфера 83 для коэффициентов в режиме разделения времени. ОЗУ 85 матрицы V×A×Q и вычислительный модуль 100f* средства оповещения осуществляет процесс, аналогичный процессу, описанному выше со ссылкой на фиг.9. То есть, ОЗУ 73 матрицы V×A×Q выводит значение, которое соответствует фазе сканирования вывода буфера 72 коэффициента.
Модуль 86 выбора минимального значения выбирает среди трех кандидатов режимов внутриэкранного прогнозирования такой режим внутриэкранного прогнозирования, который позволяет получить минимальное средство оповещения в модулях блоков DCT.
В дальнейшем процесс внутреннего прогнозирования при поиске назад, осуществляемый модулем 80 внутреннего прогнозирования при поиске назад будет описываться согласно диаграмме на фиг.12, в соответствии с процедурой процесса.
Во-первых, модуль 80 внутреннего прогнозирования при поиске назад определяет значение знаменателя (этап S51). Кроме того, знаменатель, используемый для вычисления средств оповещения, получается таким же способом, как и в вышеописанном модуле 70 поиска назад MB QP. Впоследствии модуль 80 внутреннего прогнозирования при поиске назад получает средства оповещения таким же способом, как и в вышеописанном модуле 70 поиска назад MB QP (этап S52).
Затем модуль 80 внутреннего прогнозирования при поиске назад оценивает, закончилось ли сложение DCT (этап S53). Если сложение не закончилось, то процесс возвращается к этапу S51 и вышеупомянутый процесс повторяется. С другой стороны, если сложение закончилось, то модуль 80 внутреннего прогнозирования при поиске назад определяет, была ли произведена оценка второго и третьего кандидатов (этап S54). Если второй и третий кандидаты не были оценены, то процесс возвращается к этапу S51 и вышеупомянутый процесс повторяется. С другой стороны, если второй и третий кандидаты были оценены, то модуль 80 внутреннего прогнозирования при поиске назад выбирает режим внутриэкранного прогнозирования, соответствующий минимальному значению средства оповещения, выбранному модулем 86 выбора минимального значения (этап S55) и выводит режим внутриэкранного прогнозирования (этап S57).
Впоследствии модуль 80 внутреннего прогнозирования при поиске назад оценивает, подошел ли к концу блок MB (этап S56). Если блок не подошел к концу, то процесс возвращается к этапу S51 и вышеупомянутый процесс повторяется. С другой стороны, если блок подошел к концу, то модуль 80 внутреннего прогнозирования при поиске назад заканчивает процесс.
Далее фиг.13 иллюстрирует и описывает конфигурацию вычислительного модуля 100 устройства оповещения.
Как показано на фиг.13, вычислительный модуль 100 средства оповещения включает в себя QP %6 модуль 101, QP/6 модуль 102, модуль 103 выбора масштабного коэффициента, модуль 104 определения значения квантования, модуль 105 смещения <<9 (shift<<9), модуль 106 смещения <<6 (shift<<6), модули со 107 по 116 вычитания, и модуль 117 сбора средств оповещения. Модуль 107 вычитания включает в себя модуль 107а вычитания, модуль 107b смещения <<1, буферы 107с и 107е, и SEL 107d. Модули вычитания со 107 по 116 аналогичны по составу.
В этой конфигурации вычислительный модуль 100 средства оповещения осуществляет процесс вычисления средства оповещения, полученного когда коэффициент DCT делится на значение знаменателя (коэффициент RF изменения масштаба).
В QP %6 модуль 101 и QP/6 модуль 102 поставляется выявленный параметр QPe квантования. В QP %6 модуль 101 поставляется средство оповещения, полученное при делении выявленного параметра QPe квантования на «6». ОЗУ 85 матрицы V×A×Q поставляет значения матрицы V×A×Q, являющиеся допустимыми в соответствии с адресами DCT, в модуль 103 выбора масштабного коэффициента. Модуль 103 выбора масштабного коэффициента выбирает значение матрицы V×A×Q на основе вычисления результата, генерируемого модулем 101 QP %6. Модуль 102 QP/6 вычисляет значение, полученное при делении выявленного параметра QPe квантования на «6», и поставляет это значение в модуль 104 определения значения квантования. Модуль 104 определения значения квантования определяет значение знаменателя. Модуль 105 смещения <<9 осуществляет сдвиг влево на девять бит в последовательно полученных средствах оповещения, начиная от средства оповещения, когда значение знаменателя умножено на 512.
С другой стороны, коэффициенты DCT вводятся в модуль 106 смещения <<6. Этот модуль 106 смещения <<6 осуществляет сдвиг влево на шесть бит, как процесс инверсной трансформации округления деквантизации в модуле декодера. Этот процесс соответствует состоянию, когда коэффициент RFr изменения масштаба переносится на шесть цифр для предотвращения округления при декодировании. Масштаб вычислительного модуля 100 средства оповещения является большим, если делитель сгруппирован в схеме как делитель, и таким образом, процесс осуществления приближения в десять этапов модулей вычитания со 107 по 116 применяется для вычислительной схемы, рассчитывающей значения средств оповещения. В модулях вычитания со 107 по 116 осуществляется вычитание знаменателя из числителя. Если выполняется неравенство числитель ≥ знаменатель, то SEL 107d выводит значение, полученное при вычитании знаменателя из числителя. В другом случае SEL 107d выводит значение числителя.
Модуль 107b смещения >>1 устанавливает значение знаменателя на половину значения. Модули вычитания со 108 по 116 получают результаты средств оповещения таким образом, чтобы соединять процессы в модулях вычитания в коммуникационный канал. Модуль 117 сбора средств оповещения рассчитывает общие суммы средств оповещения в модулях блоков DCT и в модулях макроблоков и выводит общие суммы.
Как описано выше, устройство 200 кодирования изображения использует входное изображение, нелокальное декодирующее изображение, как внутреннее прогнозируемое изображение, таким образом процесс, включающий в себя деквантизацию, DCT и инверсное внутреннее прогнозирование, может быть уменьшен. Кроме того, может быть предотвращено распространение ошибки, которое происходит в том случае, когда режим прогнозирования не может быть воспроизведен, таким образом увеличивается точность обнаружения.
Кроме того, устройство 200 кодирования изображения осуществляет процесс только на первой половине коэффициентов в порядке сканирования DCT, таким образом оно способно дважды обрабатывать одну логику в режиме разделения времени. Таким образом, схема может быть уменьшена наполовину, и точность обнаружения увеличивается за счет уменьшения ошибок нулевых коэффициентов.
Кроме того, устройство 200 кодирования изображения определяет QP макроблока на основе минимального состояния средства оповещения, а затем воспроизводит параметр режима внутриэкранного прогнозирования на основе минимального состояния средства оповещения, таким образом количество каскадов схемы может быть уменьшено.
Кроме того, в устройстве 200 кодирования изображения цепь вычисления для значений средства оповещения осуществляет приближение при вычитании около десяти ступеней, таким образом масштаб вычислительной схемы делителя может быть уменьшен.
Кроме того, настоящее изобретение не ограничивается вышеописанным вариантом осуществления изобретения, и различные улучшения и изменения могут быть приняты в рамках замысла изобретения.
Например, вышеописанное устройство кодирования изображения и способ кодирования изображения могут также быть реализованы в виде компьютерной программы, загруженной в устройство, или как носитель записи, на который записана программа, и компьютерная программа, осуществляющая способ, или носитель записи, являющийся носителем для программы.
2-3. Работа и эффект
Согласно вышеописанной конфигурации, устройство 100 кодирования изображения обнаруживает, как выявленные параметры QPe квантования, параметры QP квантования, которые были использованы, когда входное изображение 91 кодировалось предыдущий раз в каждом блоке MB, который является модулем квантования, на основе средств оповещения, полученных при разделении входного изображения 91, на котором DCT, как ортогональная трансформация, была выполнена с помощью коэффициентов RF изменения масштаба, основывающихся на параметрах QP квантования, которые являются коэффициентами квантования. В это время устройство 100 кодирования изображения разделяет только первую половину коэффициентов DCT, как входное изображение 91, на котором было выполнено DCT.
Соответственно, устройству 100 кодирования изображения не нужно использовать участок с последней половиной, в котором значения коэффициентов DCT являются маленькими, и разница в средстве оповещения по отношению к разнице на этапе квантования появится с меньшей вероятностью, таким образом точность поиска назад может быть увеличена.
Устройство 100 кодирования изображения разделяет только участок с первой половиной входного изображения 91, на котором было выполнено DCT, с помощью коэффициента RF изменения масштаба, на основе параметра QP квантования с использованием модулей со 108 по 117, как модулей вычитания, имеющих десятиэтапную конфигурацию.
Соответственно, в устройстве 100 кодирования изображения конфигурация схемы может быть упрощенной с минимальным количеством модулей вычитания со 108 по 117, в то же время сохраняется точность разделения в диапазоне, для поддержки точности обратного поиска.
3. Другие варианты осуществления изобретения
Кроме того, в вышеописанном первом варианте осуществления изобретения, описание было дано для того случая, когда процесс DCT, как ортогональной трансформации, осуществляется на разнице данных изображения, основанных на внутреннем прогнозировании, как целевые данные кодирования, и когда используются коэффициенты квантования, полученные через квантование. Настоящее изобретение этим не ограничивается. Например, входное изображение 91 может быть использовано как целевые данные кодирования. Данные, на которых были выполнены любой один или два процесса из следующих процессов: внутреннее прогнозирование, ортогональная трансформация, и квантование, могут быть использованы как входное изображение 91, более того, могут быть использованы данные, на которых был выполнен другой процесс. Конечно, трансформация на волне малой амплитуды или ей подобная, может быть использована как ортогональная трансформация.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда блок 4×4 используется как блок кодирования, служащий в качестве цели кодирования. Настоящее изобретение этим не ограничивается. Например, другой модуль, такой как блок 8×8 или 2×2 может использоваться как блок кодирования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда количество ненулевых коэффициентов используется как кодирующее значение. Настоящее изобретение этим не ограничивается. Например, различные значения, согласно способу кодирования, такому как количество zero-runs*, может использоваться как кодирующее значение.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда выражение nC=nA+nВ используется как среднее значение кодирующих значений. Настоящее изобретение этим не ограничивается, и выражение nC=nA+nВ+1 может быть использовано как среднее значение кодирующих значений для удобства округления при вычислении.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда настоящее изобретение применяется для упрощенного кодирования, вычисляющего генерируемые количества кодовой информации низкой точности в первом модуле 1 предварительного кодирования. Настоящее изобретение этим не ограничивается. Например, настоящее изобретение может применяться для вычисления генерируемых количеств кодовой информации низкой точности во втором модуле 2 предварительного кодирования. Конечно, использование в модуле 3 главного кодирования является допустимым. Также настоящее изобретение может применяться для устройств кодирования изображения, имеющих различные конфигурации, отличающиеся от устройства 100 кодирования изображения и включающие в себя первый модуль 1 предварительного кодирования, второй модуль 2 предварительного кодирования и третий модуль 3 предварительного кодирования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда обеспечиваются модуль 14 квантования и вычислительный модуль 15 CAVLC, имеющие конфигурацию, показанную на фиг.4 (имеющую совместный модуль). Настоящее изобретение этим не ограничивается, и могут быть обеспечены модуль 14 квантования и вычислительный модуль 15 CAVLC, имеющие другие различные конфигурации.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда масштабные коэффициенты MF и обратные величины значения матриц квантования Q Matrix сохраняются раздельно в модуле 150 совместного коэффициента. Настоящее изобретение этим не ограничивается, и значения, рассчитанные с помощью умножения масштабных коэффициентов MF на обратные величины значения матриц квантования Q Matrix, могут быть сохранены как коэффициенты умножения. В этом случае все коэффициенты умножения, которые являются допустимыми, согласно адресам DCT, являются выходными, и модуль выбора выбирает коэффициент умножения в соответствии с параметром QP квантования и матрицей квантования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда модули вычитания со 108 по 117, имеющие десятиступенчатую конфигурацию, обеспечиваются вместо делителей. Настоящее изобретение этим не ограничивается. Количество модулей вычитания не является ограниченным в высокой степени, и делители также могут использоваться.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда только половина коэффициентов DCT на низкочастотной стороне разделяются с помощью коэффициентов RF изменения масштаба. Настоящее изобретение этим не ограничивается. Например, одна треть или две трети коэффициентов DCT на низкочастотной стороне (первая половина участка сканирования) могут быть использованы как участок первой половины.
Кроме того, в вышеописанном втором варианте осуществления изобретения, описание было дано для случая, когда блок 4×4 используется как модуль квантования. Настоящее изобретение этим не ограничивается. Например, различные размеры блока, такие как 8×8 и 16×16 могут быть использованы как модуль квантования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда настоящее изобретение применяется к AVC. Настоящее изобретение этим не ограничивается, и настоящее изобретение может применяться к различным способам кодирования для адаптивного выбора таблиц VLC. Например, в случае, когда настоящее изобретение применяется к способу MPEG-2, масштаб квантования используется как коэффициент квантования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда генерируемое количество кодовой информации каждого изображения сдерживается в пределах целевого количества кодовой информации. Настоящее изобретение этим не ограничивается. Например, генерируемое количество кодовой информации каждого слоя массива данных может сдерживаться в пределах целевого количества кодовой информации.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда параметр QP квантования, соответствующий высокоточному генерируемому количеству кодовой информации, который является наиболее приближенным к целевому количеству кодовой информации, определяется таким образом, чтобы быть базовым параметром QPMB квантования. Настоящее изобретение этим не ограничивается. Например, параметр QP квантования, соответствующий высокоточному генерируемому количеству кодовой информации, который является наиболее приближенным к целевому количеству кодовой информации среди высокоточных генерируемых количеств кодовой информации, меньше, чем целевое количество кодовой информации, которое может быть определено, чтобы быть базовым параметром QPMB квантования.
Кроме того, в вышеописанном первом и втором вариантах осуществления изобретения, описание было дано для случая, когда устройство 100 кодирования изображения, как устройство, обрабатывающее изображение, сконфигурировано с использованием памяти ПЗУ 207 длины в битах TotalCoefLength, как модуль выбора таблицы переменной длины и модуль кодирования переменной длины. Настоящее изобретение этим не ограничивается, и устройство кодирования изображения настоящего изобретения может быть сконфигурировано с использованием модуля выбора таблицы переменной длины и модуля кодирования переменной длины, имеющих другие различные конфигурации.
Изобретение относится к кодированию изображений, и в частности к регулированию генерируемого количества кодовой информации до целевого количества кодовой информации, данного для одного изображения. Техническим результатом является повышение точности прогнозирования количества кодовой информации. Указанный технический результат достигается тем, что устройство (100) кодирования изображения выбирает таблицу VLC (переменной длины), соответствующую индексу nС выбора таблицы, который является средним значением количеств nА и nВ ненулевых коэффициентов, как кодирующих значений, на которых выполняется кодирование переменной длины в прилегающих сверху и прилегающих слева блоках 4×4 блока 4×4, как цели кодирования, в коэффициентах квантования, как данных цели кодирования, основанных на входном изображении (91). В том случае когда блок 4×4, как цель кодирования, находится на верхнем конце блока MB, устройство (100) кодирования изображения приравнивает количество nВ ненулевых коэффициентов прилегающего сверху блока 4×4 к количеству nА ненулевых коэффициентов прилегающего слева блока 4×4. Устройство (100) кодирования изображения осуществляет кодирование переменной длины на количестве ненулевых коэффициентов блока 4×4, как цели кодирования, в коэффициентах квантования, использующих выбранную таблицу VLC. 2 н. и 9 з.п. ф-лы. 14 ил.
1. Устройство для обработки изображения, содержащее:
модуль выбора таблицы переменной длины, сконфигурированный таким образом, чтобы выбирать таблицу переменной длины, соответствующую среднему значению среди значений кодирования, на которых осуществляется кодирование переменной длины в прилегающих сверху и прилегающих слева блоках кодирования кодирующего блока как цели кодирования, в данных целевого кодирования, основанных на входном изображении, которое является построчно сканированным в модулях сканирующих блоков, каждый из которых составлен из множества кодирующих блоков, в то же время будучи сканированным в модулях кодирующих блоков, каждый из которых составлен из множества пикселей, в которых модуль выбора таблицы переменной длины приравнивает кодирующее значение кодирующего блока, прилегающего сверху, к кодирующему значению кодирующего блока, прилегающего слева, в том случае, когда кодирующий блок как цель кодирования находится на верхнем конце блока сканирования при выборе таблицы переменной длины; и
кодирующий модуль переменной длины, сконфигурированный таким образом, чтобы осуществлять кодирование переменной длины на кодирующем значении кодирующего блока как цели кодирования в целевых данных кодирования с помощью использования таблицы переменной длины;
модуль предварительного кодирования, сконфигурированный таким образом, чтобы кодировать входное изображение с помощью квантования входного изображения, используя этап квантования, основанный, по меньшей мере, на коэффициенте квантования, таким образом генерируя целевые данные кодирования;
модуль определения базового коэффициента квантования, сконфигурированный таким образом, чтобы определять базовый коэффициент квантования, в котором когда генерируемое количество кодовой информации, полученное с помощью осуществления главного кодирования на входном изображении, является прогнозируемым, чтобы оно было приближенным к целевому количеству кодовой информации на основе генерируемого количества кодовой информации, полученного при осуществлении кодирования переменной длины на целевых данных кодирования с помощью модуля кодирования переменной длины; и
главный модуль кодирования, сконфигурированный таким образом, чтобы осуществлять главное кодирование на входном изображении на основе базового коэффициента квантования, определенного модулем определения базового коэффициента квантования, в котором модуль определения базового коэффициента квантования включает в себя:
модуль выбора прогнозируемого коэффициента квантования, сконфигурированный таким образом, чтобы определять прогнозируемый коэффициент квантования, который приближен к базовому коэффициенту квантования;
вычислительный модуль приближения генерируемого количества кодовой информации, сконфигурированный таким образом, чтобы кодировать входное изображение на основе прогнозируемого коэффициента квантования, выбранного модулем выбора прогнозируемого коэффициента квантования, и коэффициента квантования, приближенного к прогнозируемому коэффициенту квантования, и вычислять генерируемое количество кодовой информации входного изображения; при этом
модуль определения базового коэффициента квантования, сконфигурированный таким образом, чтобы определять базовый коэффициент квантования на основе генерируемого количества кодовой информации входного изображения, вычисленной с помощью вычислительного модуля приближения генерируемого количества кодовой информации.
2. Устройство для обработки изображения по п.1, в котором модуль предварительного кодирования осуществляет ортогональную трансформацию на входном изображении в модулях блоков кодирования, а затем кодирует входное изображение с помощью квантования входного изображения, используя этап квантования, основанный на коэффициенте квантования, таким образом генерируя целевые данные кодирования.
3. Устройство для обработки изображения по п.1, в котором модуль предварительного кодирования кодирует входное изображение, сканированное модулем строчной развертки, использующим множество этапов квантования, основанных на множестве коэффициентов квантования, таким образом генерируя множество элементов данных целевого кодирования, и в котором модуль определения базового коэффициента квантования определяет базовый коэффициент квантования на основе множества генерированных количеств кодовой информации, которые получены, когда множество элементов данных целевого кодирования кодируются кодирующим модулем переменной длины.
4. Устройство для обработки изображения по п.3, дополнительно содержащее:
множество счетных модулей, сконфигурированных таким образом, чтобы считать количества ненулевых значений, которые не являются нулем, как кодирующие значения из блока кодирования в данных целевого кодирования, при этом обеспечивается параллельное соединение множества счетных модулей, количество которых аналогично количеству множества элементов данных целевого кодирования, в котором модуль кодирования переменной длины последовательно осуществляет кодирование переменной длины на всех значениях кодирования, посчитанных множеством счетных модулей.
5. Устройство для обработки изображения по п.4, в котором модуль выбора таблицы переменной длины последовательно выбирает таблицы переменной длины, соответствующие множеству элементов данных целевого кодирования на основе всех значений кодирования, посчитанных множеством счетных модулей.
6. Устройство для обработки изображения по п.5, в котором счетные модули включают в себя:
счетный модуль TrailingOne, сконфигурированный таким образом, чтобы считать значения TrailingOne, которые являются количеством последовательно расположенных значений 1 или -1, и
счетный модуль TotalCoef, сконфигурированный таким образом, чтобы считать значения TotalCoef, которые являются количеством ненулевых значений, не посчитанных счетным модулем TrailingOne, и
в котором модуль кодирования переменной длины включают в себя:
первый модуль хранения, сконфигурированный таким образом, чтобы сохранять все значения TrailingOne, посчитанные счетным модулем TrailingOne,
второй модуль хранения, сконфигурированный таким образом, чтобы сохранять все значения TotalCoef, посчитанные счетным модулем TotalCoef, и
модуль сложения, сконфигурированный таким образом, чтобы последовательно складывать значения TrailingOne и TotalCoef, сохраняемые в первом и втором модулях хранения, таким образом последовательно рассчитывая значения кодирования.
7. Устройство для обработки изображения по п.3, в котором модуль предварительного кодирования включает в себя:
модуль, поставляющий коэффициент умножения, сконфигурированный таким образом, чтобы сохранять первые коэффициенты умножения, согласно комбинациям положений в блоках кодирования, и коэффициенты квантования, устанавливая первые допустимые коэффициенты умножения в соответствии со всеми коэффициентами квантования из положений в блоках кодирования, и выводить установленные коэффициенты умножения,
множество модулей выбора первого коэффициента умножения, сконфигурированного таким образом, чтобы выбирать первый коэффициент умножения согласно коэффициенту квантования, который должен быть использован среди первых коэффициентов умножения, выводимых модулем, поставляющим коэффициент умножения, при этом множество модулей выбора первого коэффициента умножения, обеспеченных в параллельном соединении, имеют такое же количество, как и количество множества элементов данных целевого кодирования,
множество модулей умножения, сконфигурированных таким образом, чтобы умножать коэффициенты умножения, выбранные с помощью модулей выбора первого коэффициента умножения и значений блоков кодирования, при этом множество модулей умножения, обеспеченных в параллельном соединении, имеют такое же количество, как и количество множества элементов данных целевого кодирования, и
множество модулей смещения, сконфигурированных таким образом, чтобы смещать значения блоков кодирования, умноженных с помощью модулей умножения, вправо на количество цифр согласно коэффициентам квантования, при этом множество модулей умножения, обеспеченных в параллельном соединении, имеют такое же количество, как и количество множества элементов данных целевого кодирования.
8. Устройство для обработки изображения по п.7, в котором модуль предварительного кодирования дополнительно включает в себя:
модуль, поставляющий второй коэффициент умножения, сконфигурированный таким образом, чтобы сохранять вторые коэффициенты умножения согласно комбинациям матриц квантования и положений в блоках кодирования, устанавливая вторые допустимые коэффициенты умножения в соответствии со всеми матрицами квантования из положений в блоках кодирования, и выводить установленные вторые коэффициенты умножения, и
модуль выбора второго коэффициента умножения, сконфигурированный таким образом, чтобы выбирать коэффициент умножения согласно матрице квантования, и который должен быть использован среди вторых коэффициентов умножения, которые выводятся модулем, поставляющим второй коэффициент умножения.
9. Устройство для обработки изображения по п.1, дополнительно содержащее:
модуль поиска назад, сконфигурированный таким образом, чтобы осуществлять разделение только на первой половине участка входного изображения, на котором была выполнена ортогональная трансформация при обнаружении коэффициентов квантования, которые используются, когда входное изображение было закодировано в предыдущий раз, как выявленные коэффициенты квантования, в каждом модуле квантования на основе средств оповещения, генерируемых за счет разделения входного изображения, на котором была выполнена ортогональная трансформация, с помощью коэффициентов изменения масштаба, основанных на коэффициентах квантования.
10. Устройство для обработки изображения по п.9, в котором модуль поиска назад осуществляет разделение с помощью коэффициентов изменения масштаба, основанных на коэффициентах квантования, только на первой половине участка входного изображения, на котором была выполнена ортогональная трансформация, с использованием вычитающих устройств, имеющих десятиступенчатую конфигурацию.
11. Способ для обработки изображения, содержащий:
этап выбора таблицы переменной длины, во время которого выбирается таблица переменной длины, соответствующая среднему значению среди значений кодирования, на котором осуществляется кодирование переменной длины в примыкающих сверху и примыкающих слева блоках кодирования кодирующих блоков как цель кодирования в данных цели кодирования, основанных на входном изображении, которое является построчно сканируемым в модулях блоков сканирования, каждый из которых составлен множеством блоков кодирования, в то же время сосканированных в модулях из кодирующих блоков, каждый из которых составлен множеством пикселей, при этом этап выбора таблицы переменной длины приравнивает значение кодирования примыкающего сверху блока кодирования к значению кодирования примыкающего слева блока кодирования в том случае, когда блок кодирования как цель кодирования находится на верхнем конце блока сканирования при выборе таблицы переменной длины;
этап кодирования переменной длины, осуществляющий кодирование переменной длины на кодирующем значении блока кодирования как цели кодирования в данных целевого кодирования, с помощью использования таблицы переменной длины;
этап предварительного кодирования для кодирования входного изображения с помощью квантования входного изображения, используя этап квантования, основанный, по меньшей мере, на коэффициенте квантования, таким образом генерируя целевые кодирующие данные;
этап определения базового коэффициента квантования, в котором генерированное количество кодовой информации, полученное при осуществлении главного кодирования на входном изображении, прогнозируется, чтобы быть приближенным к целевому количеству кодовой информации на основе генерированного количества кодовой информации, полученного при осуществлении кодирования переменной длины на данных целевого кодирования на этапе кодирования переменной длины; и
этап главного кодирования, осуществляющий главное кодирование на входном изображении на основе базового коэффициента квантования, определенного на этапе определения базового коэффициента квантования, в котором этап определения базового коэффициента квантования включает в себя:
этап выбора прогнозируемого коэффициента квантования, на котором определяют прогнозируемый коэффициент квантования, который приближен к базовому коэффициенту квантования;
этап вычисления приближения генерируемого количества кодовой информации, на котором кодируют входное изображение на основе прогнозируемого коэффициента квантования, выбранного на этапе выбора прогнозируемого коэффициента квантования, и коэффициента квантования, приближенного к прогнозируемому коэффициенту квантования, и вычисляют генерируемое количество кодовой информации входного изображения; при этом
на этапе определения базового коэффициента квантования определяют базовый коэффициент квантования на основе генерируемого количества кодовой информации входного изображения, вычисленного на этапе вычисления приближения генерируемого количества кодовой информации.
THOMAS WIEGAND et al | |||
Кипятильник для воды | 1921 |
|
SU5A1 |
RU 2004125588 A, 2006.01.27 | |||
Установка для исследования элементов ходовой части гусеничной машины | 1987 |
|
SU1453208A1 |
US 2007041449 A1, 2007.02.22 | |||
US 6879268 B2, 2005.04.12 | |||
US 6144322 A, 2000.11.07 | |||
JP 2004007475 A, 2004.01.08 | |||
JP |
Авторы
Даты
2013-04-20—Публикация
2009-06-23—Подача