Устройство обработки изображения и способ обработки изображения

Иллюстрации

Показать все

Изобретение относится к устройству кодирования изображения и, в частности, к области кодирования для приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра без использования управления с внутрикадровой обратной связью. Техническим результатом является повышение эффективности кодирования изображений. Предложено устройство (200) кодирования изображения, которое кодирует входное изображение (91) в ходе обычного процесса, аналогичного основному кодированию, исходя из предсказанного параметра (QPd) квантования, и кодирует входное изображение (91) более простым способом (упрощенный процесс) исходя из QPd и параметров (QP) квантования, близких к QPd. Вычисляют отношение R-reduction длин кодов между хорошо согласующейся длиной генерируемого кода, полученной в ходе обычного процесса на основе QPd, и длиной генерируемого кода, полученной в ходе упрощенного процесса на основе QPd, и вычисляют хорошо согласующиеся длины генерируемых кодов, основанные на QP, близких к QPd, исходя из отношения R-reduction длин кодов и длин генерируемых кодов, полученных в ходе упрощенного процесса на основе QP, близких к QPd. 2 н. и 6 з.п. ф-лы, 11 ил.

Реферат

Область техники, к которой относится изобретение

Настоящее изобретение относится, например, к устройству кодирования изображения или подобным устройствам и более конкретно относится к области приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра без использования управления с внутрикадровой обратной связью.

Уровень техники

Обычно в системах или подобных устройствах, предназначенных для передачи последовательности битов, которые соответствуют движущимся изображениям, или предназначенных для записи последовательности битов на носитель информации, осуществляют высокоэффективное кодирование с целью эффективного использования канала передачи или емкости носителя. В устройстве кодирования изображения, предназначенном для реализации высокоэффективного кодирования, скорость в битах генерирования кодирующим устройством последовательности битов устанавливается равной некоторому значению, соответствующему скорости передачи по каналу передачи. Согласно этому ограничению управляют количеством генерируемых данных, то есть при квантовании в кодирующем устройстве управляют шагом квантования. То есть, например, в случае когда повторяются изображения сложного шаблона, шаг квантования увеличивается для уменьшения генерируемого количества данных, тогда как в случае, когда повторяются изображения простого шаблона, шаг квантования уменьшается для увеличения количества генерируемых данных, тем самым поддерживается фиксированная скорость, что нужно для предотвращения переполнения буферной памяти или ее опустошения.

Таким образом, в устройстве кодирования изображения, которое соответствует уровню техники, шаг квантования увеличивается для ухудшения качества изображения при повторении сложных изображений, тогда как шаг квантования уменьшается при повторении простых изображений, так что в целом не может быть получено постоянное качество изображения. С учетом этой проблемы, например, в патентном документе 1 описано устройство кодирования изображения, вычисляющее присвоенную длину кода, которую необходимо присвоить каждой ГИ (группа изображений) в соответствии с отношением сложности при кодировании каждой ГИ и общей суммы сложностей при кодировании нескольких ГИ, так что большую длину присваивают ГИ, содержащей изображение со сложным шаблоном, и малую длину присваивают ГИ, содержащей изображение с простым шаблоном.

С другой стороны, в качестве способа приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра, хорошо известен, например, этап 2 ТМ5 (тестовая модель 5). В этом способе длина кода, присвоенная кадру, равномерно распределяется по макроблокам (МБ), при этом каждая распределенная длина устанавливается в качестве целевой длины кода для каждого МБ, и приведение в соответствие с целевой длиной кода осуществляется с помощью управления с обратной связью в кадре.

Патентный документ 1: патент Японии №3358620.

Тем не менее, в описанном выше способе из этапа 2 ТМ5 ухудшение качества изображения может иметь место при кодировании кадра в начале последовательности или кадра, следующего сразу после изменения сцены, так как начальное значение шага квантования не соответствует шаблону кадра.

Например, если в некоторой части используется слишком большой шаг квантования до того как управление с обратной связью отследит шаблон кадра, то качество изображения в упомянутой части будет хуже качества других частей. В случае когда шаг квантования слишком мал, для этой части используется код слишком большой длины и это может оказывать влияние на другие части.

Так же так как целевая длина кода для МБ всегда поддерживается постоянной, то когда сложность изображения неравномерна по кадру, имеет место неприемлемое распределение длины кода. В этих обстоятельствах устройство кодирования изображения должно подходящим образом предсказывать длину генерируемого кода путем заблаговременного выполнения параллельного кодирования и приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра без использования управления с внутрикадровой обратной связью. Тем не менее, если устройство кодирования изображения выполняет квантование параллельно для нескольких параметров квантования, то увеличиваются масштаб схемы, что невыгодно.

Сущность изобретения

Для решения указанных выше проблем в устройстве обработки изображения, согласно настоящему изобретению предусмотрен блок определения предсказанного показателя квантования, предназначенный для определения предсказанного показателя квантования, который предсказывается так, чтобы быть близким к основному показателю квантования, с помощью которого предсказывают длину генерируемого кода, полученную путем кодирования входного изобретения, чтобы указанная длина была наиболее близка к целевой длине кода, блок упрощенного кодирования, предназначенный для кодирования входного изображения более простым образом по сравнению с кодированием на основе предсказанного показателя квантования и показателей квантования, близких к предсказанному показателю квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе упрощенного кодирования, блок кодирования, предназначенный для кодирования входного изображения исходя из предсказанного показателя квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе кодирования, блок вычисления отношения длин кодов, который предназначен для вычисления отношения длин кодов между длиной генерируемого кода, которая вычислена блоком кодирования и которая основана на предсказанном показателе квантования, и длиной генерируемого кода, которая вычисляется блоком упрощенного кодирования и которая основана на предсказанном показателе квантования, и блок корректировки, предназначенный для умножения отношения длин кодов на длины генерируемых кодов, которые вычисляются блоком упрощенного кодирования и которые основаны на показателях квантования, близких к предсказанному показателю квантования, тем самым корректируют длины генерируемых кодов на основе показателей квантования, близких к предсказанному показателю квантования.

Соответственно устройство обработки изображения может выполнять вычисление длины генерируемого кода, полученной в ходе кодирования только для предсказанного показателя квантования, и выполнять вычисления длин генерируемых кодов, которые получаются в ходе упрощенного кодирования для показателей квантования, близких к предсказанному показателю квантования.

Также в устройстве обработки изображения согласно настоящему изобретению предусмотрен этап определения предсказанного показателя квантования, который предсказывается так, чтобы быть близким к основному показателю квантования, с помощью которого предсказывают длину генерируемого кода, полученную путем кодирования входного изобретения, чтобы указанная длина была наиболее близка к целевой длине кода, этап упрощенного кодирования, предназначенный для кодирования входного изображения более простым образом по сравнению с кодированием на основе предсказанного показателя квантования и показателей квантования, близких к предсказанному показателю квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе упрощенного кодирования, этап кодирования, предназначенный для кодирования входного изображения, исходя из предсказанного показателя квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе кодирования, этап вычисления отношения длин кодов, заключающийся в вычислении отношения длины генерируемого кода, которая вычисляется блоком кодирования и которая основана на предсказанном показателе квантования, и длины генерируемого кода, которая вычисляется на этапе упрощенного кодирования и которая основана на предсказанном показателе квантования, и этап корректировки, предназначенный для умножения отношения длин кодов на длины генерируемых кодов, которые вычисляются на этапе упрощенного кодирования и которые основаны на показателях квантования, близких к предсказанному показателю квантования, тем самым корректируют длины генерируемых кодов на основе показателей квантования, близких к предсказанному показателю квантования.

Соответственно, способ обработки изображения может выполнять вычисление длины генерируемого кода, полученной в ходе кодирования только для предсказанного показателя квантования, и выполнять вычисления длин генерируемых кодов, которые получаются в ходе упрощенного кодирования для показателей квантования, близких к предсказанному показателю квантования.

Согласно настоящему изобретению, вычисление длины генерируемого кода, полученной в ходе кодирования, может быть выполнено только для предсказанного показателя квантования, и вычисление длин генерируемых кодов, полученных в ходе упрощенного кодирования, может быть выполнено для показателей квантования, близких к предсказанному показателю квантования. Соответственно, настоящее изобретение может реализовать устройство обработки изображения и способ обработки изображения, которые допускают упрощенную конфигурацию схемы.

Краткое описание чертежей

Фиг.1 - вид, показывающий структурную схему устройства кодирования изображения, которое соответствует первому варианту осуществления настоящего изобретения;

фиг.2 - вид, показывающий структурную схему блока квантования и блока вычислений для процесса CAVLC обычного устройства кодирования изображения;

фиг.3 - вид, показывающий базовую конфигурацию блока квантования и блока вычислений для процесса CAVLC;

фиг.4 - вид, показывающий структурную схему блока квантования и блока вычислений для процесса CAVLC устройства кодирования изображения, которое соответствует первому варианту осуществления настоящего изобретения;

фиг.5 - блок-схема, поясняющая процедуру кодирования, которая осуществляется устройством кодирования изображения;

фиг.6 - блок-схема, дополнительно поясняющая процесс переключения для адаптивной матрицы Q Matrix;

фиг.7 - блок-схема, поясняющая процедуру выбора таблицы VLC;

фиг.8 - вид, показывающий структурную схему устройства кодирования изображения, которое соответствует второму варианту осуществления изобретения;

фиг.9 - блок-схема, показывающая процедуру определения основного параметра квантования;

фиг.10 - вид, в общем, поясняющий процесс оценки основного параметра квантования;

фиг.11 - блок-схема, показывающая процедуру вычисления хорошо согласующейся длины генерируемого кода.

Подробное описание изобретения

Далее со ссылками на чертежи будут описаны наилучшие варианты осуществления изобретения (далее называемые просто вариантами осуществления изобретения). Описание приведено в следующем порядке.

1. Первый вариант осуществления изобретения (частичное коллективное использование блока квантования и блока вычислений для процесса CAVLC).

2. Второй вариант осуществления изобретения (оценка хорошо согласующейся длины генерируемого кода с использованием упрощенного кодирования).

3. Другие варианты осуществления изобретения:

1. Первый вариант осуществления изобретения.

1-1. Конфигурация устройства кодирования изображения.

На фиг.1 показана и пояснена конфигурация устройства 100 кодирования изображения, которое соответствует варианту осуществления настоящего изобретения.

Устройство 100 кодирования изображения содержит блок 1 первого предварительного кодирования, блок 2 второго предварительного кодирования, блок 3 основного кодирования, блок 4 управления длиной кода и буферы 5 и 6 задержки.

Для осуществления управления длиной кода устройство 100 кодирования изображения заранее выполняет предварительное кодирование с использованием блока 1 первого предварительного кодирования и блока 2 второго предварительного кодирования, тем самым определяется информация для основного кодировании, используемая в блоке 3 основного кодирования, указанная информация, например, содержит основной параметр QРМВ квантования, предсказанную матрицу Q MatrixD квантования, режим внутрикадрового предсказания и группу активности.

На этом этапе блок 1 первого предварительного кодирования осуществляет параллельное предварительное кодирование с использованием широкого диапазона параметров QP квантования, при этом точность немного снижена и сдерживаются масштаб схемы и объем обработки, тем самым для достижения целевой длины кода грубо оценивается предсказанный параметр QPd квантования. Блок 2 второго предварительного кодирования осуществляет параллельное предварительное кодирование с использованием узкого диапазона, при этом увеличивается точность, тем самым определяется основной параметр QPMB квантования, который должен быть использован в блоке 3 основного кодирования.

Блок 1 первого предварительного кодирования представляет собой модуль, предназначенный для осуществления процесса первого предварительного кодирования, и содержит блок 11 определения режима внутрикадрового предсказания, блок 12 обработки внутрикадрового предсказания, блок 13 ДКП (дискретного косинусного преобразования), блок 14 квантования, блок 15 вычислений для процесса CAVLC и блок 16 вычисления активности.

Блок 2 второго предварительного кодирования представляет собой модуль, предназначенный для осуществления процесса второго предварительного кодирования, и содержит блок 21 обработки внутрикадрового предсказания, блок 22 ДКП, блок 23 квантования, блок 24 вычисления длины кода для энтропийного кодирования, буфер 25, блок 26 преобразования, обратного ДКП, и блок 27 преобразования, обратного квантованию.

С другой стороны, блок 3 основного кодирования представляет собой модуль, предназначенный для осуществления основного кодирования, и содержит блок 31 обработки внутрикадрового предсказания, блок 32 ДКП, блок 33 квантования, блок 34 энтропийного кодирования, буфер 35, блок 36 преобразования, обратного ДКП, и блок 37 преобразования, обратного квантованию.

Блок 4 управления длиной кода представляет собой модуль, предназначенный для осуществления управления длиной кода.

В устройстве 100 кодирования изображения поступающее извне входное изображение 91 подается на блок 1 первого предварительно кодирования и буферы 5 и 6 задержки. Блок 1 первого предварительного кодирования грубо оценивает длины генерируемых кодов для соответствующих параметров QP квантования. В блоке 1 первого предварительного кодирования поступающее извне входное изображение 91 подается на блок 16 вычисления активности и блок 11 определения режима внутрикадрового предсказания. Блок 16 вычисления активности сортирует МБ на группы активности в соответствии со сложностью изображения. Блок 16 вычисления активности подает номера групп активности на блок 14 квантования и блок 4 управления длиной кода.

При подаче входного изображения 91 блок 11 определения режима внутрикадрового предсказания выполняет процесс внутрикадрового предсказания для входного изображения 91 с целью получения данных разности изображений. Кроме того блок 11 определения режима внутрикадрового предсказания упрощает процесс внутрикадрового предсказания в блоке 1 первого предварительного кодирования путем использования входного изображения 91 в качестве предсказанного изображения. Блок 11 определения режима внутрикадрового предсказания определяет режим внутрикадрового предсказания, который будет использоваться в блоке 3 основного кодирования, что делается на основе длины генерируемого кода для данных разности изображений, и подает определенный режим внутрикадрового предсказания на блоки 12, 21 и 31 обработки внутрикадрового предсказания.

Блок 12 обработки внутрикадрового предсказания получает данные разности изображений по входному изображению 91 с использованием режима внутрикадрового предсказания, который определил блок 11 определения режима внутрикадрового предсказания и подаст данные разности изображений на блок 13 ДКП. Блок 13 ДКП осуществляет процесс ДКП для данных разности изображений, генерирует коэффициенты ДКП и подает коэффициенты ДКП на блок 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 коэффициентов, прошедших квантование, и подает длины генерируемого кода соответствующих МБ на блок 4 управления длиной кода.

Здесь в блоке 1 первого предварительного кодирования входное изображение 91 используется в качестве предсказанного изображения вместо локального декодированного изображения в блоке 12 обработки внутрикадрового предсказания. С другой стороны, в блоке 3 основного кодирования в качестве способа энтропийного кодирования используются процессы CAVLC и САВАС (контекстно-зависимое адаптивное бинарное арифметическое кодирование), при этом можно переключаться между ними.

Следовательно, блок 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 обработки внутрикадрового предсказания кодирует входное изображение с помощью внутрикадрового предсказания с использованием режима внутрикадрового предсказания, подаваемого от блока 11 определения режима внутрикадрового предсказания, указанное выше делается с целью получения данных разности изображений и подает получения данных разности изображений на блок 22 ДКП.

Блок 22 ДКП осуществляет процесс ДКП с данными разности изображений с целью получения коэффициентов ДКП и подает коэффициенты ДКП на блок 23 квантования. Блок 23 квантования содержит три каскада блоков 23-1, 23-2 и 23-3 квантования. Блок 23 квантования генерирует коэффициенты, прошедшие квантование, путем квантования коэффициентов ДКП исходя из предсказанного параметра QPd квантования и параметров QP квантования, близких к предсказанному параметру QPd квантования, и подает коэффициенты, прошедшие квантование, на блок 24 вычисления длины кода для энтропийного кодирования. Блок 24 вычисления длины кода для энтропийного кодирования кодирует коэффициенты, прошедшие квантование, с использованием способа кодирования, использованного в блоке 3 основного квантования (или CAVLC или САВАС), тем самым генерируются хорошо согласующиеся длины генерируемых кодов для соответствующих параметров QP квантования. На основе хорошо согласующихся длин генерируемых кодов, полученных блоком 24 вычисления длины кода для энтропийного кодирования, блок 4 управления длиной кода считает основным параметром QPMB квантования параметр QP квантования для хорошо согласующейся длины генерируемого кода, которая наиболее близка к целевой длине кода. Блок 23 квантования подает коэффициенты, прошедшие квантование, полученные на основе предсказанного параметра QPd квантования, на блок 27 преобразования, обратного квантованию. Блок 27 преобразования, обратного квантованию, осуществляет преобразование, обратное квантованию, с коэффициентами, прошедшими квантование, с целью получения коэффициентов ДКП и подаст коэффициенты ДКП на блок 26 преобразования, обратного ДКП. Блок 26 преобразования, обратного ДКП, осуществляет процесс, обратный ДКП, для коэффициентов ДКП с целью получения локального декодированного изображения и подает изображение в буфер 25. Буфер 25 подает локальное декодированное изображение на блок 21 обработки внутрикадрового предсказания. В результате блок 21 обработки внутрикадрового предсказания осуществляет процесс внутрикадрового предсказания с использованием локального декодированного изображения в качестве предсказанного изображения.

Блок 2 второго предварительного кодирования использует локальное декодированное изображение в качестве предсказанного изображения и выполняет энтропийное кодирование с использованием того же способа кодирования, что используется в блоке 3 основного кодирования, тем самым указанный блок 2 способен вычислить хорошо согласующиеся длины генерируемых кодов с более высокой точностью по сравнению с блоком 1 первого предварительного кодирования. Далее на основе хорошо согласующихся длин генерируемых кодов блок 4 управления длиной кода может считать основным параметром QPMB квантования параметр QP квантования, предсказанный для получения длины кода, генерируемого при основном кодировании, причем указанная длина наиболее близка к целевой длине кода.

В блоке 3 основного кодирования входное изображение 91, которое было задержано, подается от буфера 6 задержки на блок 31 обработки внутрикадрового предсказания. Блок 31 обработки внутрикадрового предсказания кодирует входное изображение 91 с помощью внутрикадрового предсказания с использованием режима внутрикадрового предсказания, подаваемого от блока 11 определения режима внутрикадрового предсказания, с целью получения данных разности изображений, и подает данные разности изображений на блок 32 ДКП.

Блок 32 ДКП осуществляет процесс ДКП для данных разности изображений с целью получения коэффициентов ДКП и подает коэффициенты ДКП на блок 33 квантования. Блок 33 квантования осуществляет квантование коэффициентов ДКП исходя из основного параметра QPMB квантования с целью получения коэффициентов, прошедших квантование, и подает коэффициенты, прошедшие квантование, на блок 34 вычисления длины кода для энтропийного кодирования. Блок 34 вычисления длины кода для энтропийного кодирования осуществляет энтропийное кодирование коэффициентов, прошедших квантование, с использованием или CAVLC или САВАС и подает на внешнее устройство указанные коэффициенты в качестве выходного потока 92.

Блок 33 квантования подает коэффициенты, прошедшие квантование и полученные исходя из основного параметра ОРМВ квантования, на блок 37 преобразования, обратного квантованию. Блок 37 преобразования, обратного квантованию, осуществляет преобразование, обратное квантованию, для коэффициентов, прошедших квантование, с целью получения коэффициентов ДКП и подает коэффициенты ДКП на блок 36 преобразования, обратного ДКП. Блок 36 преобразования, обратного ДКП, осуществляет процесс, обратный ДКП, для коэффициентов ДКП с целью получения локального декодированного изображения и подает локальное декодированное изображение на блок 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 квантования содержит блок 301 вычисления QP для МБ, блок 302 получения адреса сканирования, блок 303 преобразования QP%6, блок 304 преобразования QP/6, ОЗУ 305 (оперативное запоминающее устройство) коэффициента масштабирования, блок 306 умножения и многорегистровое устройство 307 циклического сдвига.

С другой стороны, блок 400 вычислений для процесса CAVLC содержит блок 401 подсчета значения TrailingOne, блок 402 подсчета значения TotalCoef, блок 403 подсчета значения TotatZero, блок 404 подсчета значения RunBefore, блок 405 вычисления значения LevelLength, блок 406 вычисления значения ZeroLen, ПЗУ 407 (постоянное запоминающее устройство) длины в битах TotalCoefLength, ПЗУ 408 (хранящее длину) длины в битах TotalZeroLength, ПЗУ 409 длины в битах RunBefore, сумматоры 410, 411 и 416, память 412 строк, хранящая nB границы МБ, память 413, хранящая значение nA, и блок 414 выбора значения nB.

Блок 300 квантования вычисляет коэффициент Z, прошедший квантование, с использованием следующей формулы, в которой участвует коэффициент W ДКП и параметр QP квантования:

Z={(MF*16/QMatrix)*W+f}>>(15+QP/6).

Здесь параметр MF является коэффициентом масштабирования, вычисленным из значения, определенного по стандарту AVC, а параметр f является поправочным коэффициентом для определения округления в большую сторону и округления в меньшую сторону.

В этой конфигурации следующие сигналы являются входными для блока 300 квантования.

- AFF сигнал, указывающий, имеет ли макроблок структуру поля или структуру кадра;

- сигнал 8×8/4×4, указывающий, что используется для ортогонального преобразования: 8×8 ДКП или 4×4 ДКП;

- группа активности;

- коэффициенты ДКП, которые являются результатом ДКП.

Здесь «группа активности» подается как информация о смещении квантования соответствующих макроблоков относительно среднего параметра Base QP квантования, который является основной всего кадра. «Коэффициенты ДКП» подаются в порядке, подходящем для кодирования (например, в порядке, обратном по отношению к порядку сканирования).

Блок 301 вычисления QP для МБ вычисляет адаптивный параметр QPt квантования, который получается путем смещения в блоках МБ из групп активности, и средний параметр Base QP квантования (выбранный параметр QP1 квантования, который установлен). Блок 303 преобразования QP %6 выдает остаток, полученный делением адаптивного параметра QPt квантования на число 6 (то есть он равен одному из шести значений 0, 1, 2, 3, 4 или 5), и подает этот остаток на ОЗУ 305 коэффициента масштабирования и блок 304 преобразования QP/6.

AFF сигнал и сигнал 8×8/4×4 представляют собой вход для блока 302 получения адреса сканирования. Блок 302 получения адреса сканирования получает адреса ДКП, указывающие входное положение коэффициента ДКП исходя из AFF сигнала и сигнала 8×8/4×4, и подает адреса ДКП на ОЗУ 305 коэффициента масштабирования.

ОЗУ 305 коэффициента масштабирования хранит множитель, полученный по следующей формуле:

Множитель=16×MF(8×8/4×4,QP,h,v)/Q Matrix(8×8/4×4,h,v).

Здесь h и v являются адресами ДКП, указывающими горизонтальное и вертикальное направления в коэффициенте ДКП, и они изменяются в диапазоне от 0 до 7 в 8×8 и в диапазоне от 0 до 3 в 4×4. MF является коэффициентом масштабирования, который представляет собой постоянный параметр, определенный стандартом Н.264. Также матрица Q Matrix квантования является параметром, который можно установить в устройстве кодирования. То есть ОЗУ 305 коэффициента масштабирования хранит значение, вычисленное путем умножения на 16 размера блока ДКП (8×8/4×4), значения адаптивного параметра QPt квантования и коэффициента MF масштабирования, который меняется в соответствии с адресами ДКП, и деления полученного произведения на матрицу Q Matrix (MF*16/Q Matrix) квантования. ОЗУ 305 коэффициента масштабирования выдает на блок 306 умножения множитель с адаптивного фазой положения сканирования на основе адресов ДКП.

При подаче адаптивного параметра QPt квантования из блока 301 вычисления QP для МБ блок 304 преобразования QP/6 выдает результат деления адаптивного параметра QPt квантования на целое число в многорегистровое устройство 307 циклического сдвига. Многорегистровое устройство 307 циклического сдвига прибавляет «15» к результату блока 304 преобразования QP/6 с целью вычисления величины сдвига и подачи величины сдвига на блок 400 вычислений для процесса CAVLC. Выход блока 300 квантования, который представляет собой результат работы блока 306 умножения, сдвинутый многорегистровым устройством 307 циклического сдвига, равен результату, полученному при выполнении квантования (деления).

При получении выхода блока 300 квантования, блок 400 вычислений для процесса CAVLC вычисляет длину генерируемого кода, которая получается в случае, когда действительно осуществляется кодирование.

Блок 400 вычислений для процесса CAVLC кодирует значение TotalCoef, представляющее собой число ненулевых коэффициентов, значения TrailingOne и trailing_ones_sign_flag, представляющие собой количество и признак наличия коэффициентов, модуль которых равен 1 и которые по порядку расположены последними, значение level, представляющее собой значение коэффициента ДКП, значение total_zero, представляющее собой количество нулевых коэффициентов перед последним ненулевым коэффициентом, и значение run_before, представляющее собой количество нулей, последовательно расположенных перед ненулевым коэффициентом ДКП, и вычисляет длины кода для указанных значений. На этом этапе блок 400 вычислений для процесса CAVLC осуществляет адаптивное кодирование значения TotalCoef, которое представляет собой количество ненулевых коэффициентов, и значения TrailingOne, которое представляет собой количество и признак наличия коэффициентов, модуль которых равен 1 и которые по порядку расположены последними, в соответствии с состоянием окружающих блоков 4×4. Блок 400 вычислений для процесса CAVLC выбирает таблицу VLC для каждого блока 4×4 на основе значений TotalCoef и TrailingOne.

Блок 401 подсчета значения TrailingOne подсчитывает количество значений, которые равны 1 или -1 и которые последовательно расположены от верха, за исключением нулей, среди входных значений 16 элементов блока 4×4 в порядке, обратном порядку сканирования, и подает указанное количество в виде значения TrailingOne на сумматор 411 и ПЗУ 407 длины в битах TotalCoefLength. Блок 402 подсчета значения TotalCoef вычисляет количество ненулевых коэффициентов, которые не подсчитываются блоком 401 подсчета значения TrailingOne, и подает указанное количество как значение TotalCoef на сумматор 411, ПЗУ 407 длины в битах TotalCoefLength и ПЗУ 408 длины в битах TotaIZeroLength. ПЗУ 407 длины в битах TotalCoefLength адаптивно выбирает таблицы VLC для блоков 4х4 в соответствии с результатом сумматора 416, указанные таблицы используются для кодирования значений TotalCoef и TrailingOne, далее ПЗУ 407 длины в битах TotalCoefLength подает длины кодов для значений 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 последовательно вычитает последовательные количества Runbefore блока 404 подсчета значения Runbefore из значения total_zero блока 403 подсчета значения TotalZero, тем самым накапливая значение Zero Left, которое является количеством оставшихся нулей. ПЗУ 409 длины в битах RunBefore получает длину кода для значения Runbefore в виде комбинации знач