устройство обработки изображения и способ обработки изображения
Классы МПК: | H04N7/46 с использованием субдискретизации на входе кодера и восстановления образца интерполяцией на входе кодера или декодера H03M7/42 с использованием обращений к таблице в процессе кодирования или декодирования, например с использованием постоянного ЗУ |
Автор(ы): | ФУТИЕ Такааки (JP), СИБАТА Содзиро (JP), ТАКАХАСИ Касу (JP) |
Патентообладатель(и): | СОНИ КОРПОРЕЙШН (JP) |
Приоритеты: |
подача заявки:
2009-06-23 публикация патента:
20.04.2013 |
Изобретение относится к устройству кодирования изображения и, в частности, к области кодирования для приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра без использования управления с внутрикадровой обратной связью. Техническим результатом является повышение эффективности кодирования изображений. Предложено устройство (200) кодирования изображения, которое кодирует входное изображение (91) в ходе обычного процесса, аналогичного основному кодированию, исходя из предсказанного параметра (QPd) квантования, и кодирует входное изображение (91) более простым способом (упрощенный процесс) исходя из QPd и параметров (QP) квантования, близких к QPd. Вычисляют отношение R-reduction длин кодов между хорошо согласующейся длиной генерируемого кода, полученной в ходе обычного процесса на основе QPd, и длиной генерируемого кода, полученной в ходе упрощенного процесса на основе QPd, и вычисляют хорошо согласующиеся длины генерируемых кодов, основанные на QP, близких к QPd, исходя из отношения R-reduction длин кодов и длин генерируемых кодов, полученных в ходе упрощенного процесса на основе QP, близких к QPd. 2 н. и 6 з.п. ф-лы, 11 ил.
Формула изобретения
1. Устройство обработки изображения, содержащее:
блок определения предсказанного показателя квантования, предназначенный для определения предсказанного показателя квантования, который предсказывается так, чтобы быть близким к основному показателю квантования, с помощью которого предсказывают длину генерируемого кода, полученную путем кодирования входного изображения, чтобы указанная длина была наиболее близка к целевой длине кода;
блок предварительного кодирования, предназначенный для кодирования входного изображения на основе параметров квантования, которые меньше и больше предсказанного показателя квантования, для вычисления длины генерируемого кода;
блок кодирования, предназначенный для кодирования входного изображения исходя из предсказанного показателя квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе кодирования;
блок вычисления отношения длин кодов, который предназначен для вычисления отношения длин кодов между длиной генерируемого кода, которая вычислена блоком кодирования и которая основана на предсказанном показателе квантования, и длиной генерируемого кода, которая вычисляется блоком предварительного кодирования; и
блок корректировки, предназначенный для умножения отношения длин кодов на длины генерируемых кодов, которые вычисляются блоком упрощенного кодирования и которые основаны на показателях квантования, близких к предсказанному показателю квантования, тем самым корректируют длины генерируемых кодов на основе показателей квантования, близких к предсказанному показателю квантования.
2. Устройство обработки изображения по п.1, в котором блок кодирования кодирует входное изображение с использованием арифметического кодирования.
3. Устройство обработки изображения по п.1, в котором блок предварительного кодирования присваивает кодируемому значению для прилегающего сверху блока кодируемое значение прилегающего слева кодируемого блока в случае, когда кодируемый блок, являющийся объектом кодирования, расположен в верхнем конце сканируемого блока, при выборе таблицы кода с переменной длиной кодовых слов в соответствии со средним значением кодируемых значений, к которым применяют кодирование с переменной длиной кодовых слов в прилегающем сверху и прилегающем слева блоках относительно кодируемого блока, являющегося объектом кодирования, и которые являются данными по объекту кодирования, основанными на входном изображении, которое сканируется по строкам в совокупности сканируемых блоков, каждый из которых состоит из нескольких кодируемых блоков, при сканировании каждый из сканируемых блоков состоит из множества пикселей; и при этом блок кодирования выбирает таблицу кода с переменной длиной кодовых слов в соответствии со средним значением кодируемых значений, к которым применяют кодирование с переменной длиной кодовых слов в прилегающих сверху и прилегающих слева блоках относительно кодируемого блока, являющегося объектом кодирования, независимо от положения кодируемого блока в сканируемом блоке.
4. Устройство обработки изображения по п.1, в котором блок предварительного кодирования содержит: блок получения множителей, предназначенный для хранения множителей в соответствии с комбинацией положений в кодируемом блоке и показателей квантования, для определения множителей, доступных в соответствии со всеми показателями квантования на основе положений в кодируемом блоке, и для выдачи определенных множителей, множество блоков выбора множителей, предназначенных для выбора множителей в соответствии с используемыми показателями квантования из множителей, выданных блоком получения множителей, блоки выбора множителей расположены параллельно и их количество совпадает с количеством элементов во множестве данных по объектам кодирования, множество блоков умножения, предназначенных для умножения множителей, выбранных блоками выбора множителей, на значение кодируемого блока, блоки умножения расположены параллельно и их количество совпадает с количеством элементов во множестве данных по объекту кодирования, и множество блоков сдвига, предназначенных для сдвига значения кодируемого блока, умноженного блоками умножения, вправо на количество цифр, которое соответствует показателям квантования, блоки сдвига расположены параллельно и их количество совпадает с количеством элементов во множестве данных по объекту кодирования, в котором блок получения множителей включает в себя: блок получения первых множителей, предназначенный для хранения первых множителей в соответствии с комбинацией показателей квантования и положений в кодируемом блоке, для определения первых множителей, доступных в соответствии со всеми показателями квантования на основе положений в кодируемом блоке, и для выдачи определенных первых множителей, и блок получения вторых множителей, предназначенный для хранения вторых множителей в соответствии с комбинацией матриц квантования и положений в кодируемом блоке, для определения вторых множителей, доступных в соответствии со всеми матрицами квантования на основе положений в кодируемом блоке, и для выдачи определенных вторых множителей, и в котором блоки выбора множителей включают в себя: блок выбора первых множителей, предназначенный для выбора первых множителей в соответствии с используемыми показателями квантования из первых множителей, выданных блоком получения первых множителей, и блок выбора вторых множителей, предназначенный для выбора вторых множителей в соответствии с используемыми матрицами квантования из вторых множителей, выданных блоком получения вторых множителей.
5. Устройство обработки изображения по п.1, дополнительно содержащее: блок вычисления, предназначенный для вычисления длин генерируемых кодов исходя из показателей квантования, отличных от предсказанного показателя квантования, и показателей квантования, близких к предсказанному показателю квантования, на основе коэффициента колебаний длин генерируемых кодов, которые скорректированы блоком корректировки и которые основаны на показателях квантования, близких к предсказанному показателю квантования, и длины генерируемого кода, которая вычислена блоком кодирования и которая основана на предсказанном показателе квантования.
6. Устройство обработки изображения по п.4, дополнительно содержащее: блок определения основного показателя квантования, предназначенный для фиксации в качестве основного показателя квантования показателя квантования, соответствующего длине генерируемого кода, которая наиболее близка к целевой длине кода и которая выбрана из длины генерируемого кода, которая вычислена блоком кодирования и которая основана на предсказанном показателе квантования, длин генерируемых кодов, которые скорректированы блоком корректировки и которые основаны на показателях квантования, близких к предсказанному показателю квантования, длин генерируемых кодов, которые вычислены блоком кодирования и которые основаны на показателях квантования, отличающихся от предсказанного показателя квантования, и показателях квантования, близких к предсказанному показателю квантования.
7. Устройство обработки изображения по п.5, дополнительно содержащее блок основного кодирования, предназначенный для осуществления основного кодирования входного изображения исходя из основного показателя квантования, который определен блоком определения основного показателя квантования.
8. Способ обработки изображения, который включает в себя:
этап определения предсказанного показателя квантования, предназначенный для определения предсказанного показателя квантования, который предсказывается так, чтобы быть близким к основному показателю квантования, с помощью которого предсказывают длину генерируемого кода, полученную путем кодирования входного изображения, чтобы указанная длина была наиболее близка к целевой длине кода;
этап предварительного кодирования, предназначенный для кодирования входного изображения на основе параметров квантования, которые меньше и больше предсказанного показателя квантования, для вычисления длины генерируемого кода;
этап кодирования, предназначенный для кодирования входного изображения исходя из предсказанного показателя квантования, тем самым вычисляют длину генерируемого кода, полученную в ходе кодирования;
этап вычисления отношения длин кодов, предназначенный для вычисления отношения длины генерируемого кода, которая вычисляется блоком кодирования и которая основана на предсказанном показателе квантования, и длины генерируемого кода, которая вычисляется на этапе предварительного кодирования и которая основана на предсказанном показателе квантования; и
этап корректировки, предназначенный для умножения отношения длин кодов на длины генерируемых кодов, которые вычисляются на этапе упрощенного кодирования и которые основаны на показателях квантования, близких к предсказанному показателю квантования, тем самым корректируют длины генерируемых кодов на основе показателей квантования, близких к предсказанному показателю квантования.
Описание изобретения к патенту
Область техники, к которой относится изобретение
Настоящее изобретение относится, например, к устройству кодирования изображения или подобным устройствам и более конкретно относится к области приведения длины генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра без использования управления с внутрикадровой обратной связью.
Уровень техники
Обычно в системах или подобных устройствах, предназначенных для передачи последовательности битов, которые соответствуют движущимся изображениям, или предназначенных для записи последовательности битов на носитель информации, осуществляют высокоэффективное кодирование с целью эффективного использования канала передачи или емкости носителя. В устройстве кодирования изображения, предназначенном для реализации высокоэффективного кодирования, скорость в битах генерирования кодирующим устройством последовательности битов устанавливается равной некоторому значению, соответствующему скорости передачи по каналу передачи. Согласно этому ограничению управляют количеством генерируемых данных, то есть при квантовании в кодирующем устройстве управляют шагом квантования. То есть, например, в случае когда повторяются изображения сложного шаблона, шаг квантования увеличивается для уменьшения генерируемого количества данных, тогда как в случае, когда повторяются изображения простого шаблона, шаг квантования уменьшается для увеличения количества генерируемых данных, тем самым поддерживается фиксированная скорость, что нужно для предотвращения переполнения буферной памяти или ее опустошения.
Таким образом, в устройстве кодирования изображения, которое соответствует уровню техники, шаг квантования увеличивается для ухудшения качества изображения при повторении сложных изображений, тогда как шаг квантования уменьшается при повторении простых изображений, так что в целом не может быть получено постоянное качество изображения. С учетом этой проблемы, например, в патентном документе 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 кодирования изображения определяет основной параметр QP MB квантования исходя из хорошо согласующихся длин генерируемых кодов, вычисленных с высокой точностью, и использует основной параметр 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 в виде комбинации значений Zero Left и Runbefore.
Далее блок 405 вычисления значения LevelLength вычисляет длину кода для ненулевых коэффициентов ДКП.
Адаптивный выбор таблиц VLC в ПЗУ 407 длины в битах TotalCoefLength выполняется на основе значений TotalCoef и TrailingOne. Сумматор 411 складывает значение TrailingOne, подаваемое блоком 401 подсчета значения TrailingOne, и значение TotalCoef, подаваемое блоком 402 подсчета значения TotalCoef, с целью вычисления общего количества ненулевых коэффициентов. Таблицу VLC выбирают на основе количества nA ненулевых коэффициентов в примыкающем слева блоке 4×4 и количества nB ненулевых коэффициентов в примыкающем сверху блоке 4×4. Сумматор 411 накапливает количества ненулевых коэффициентов в необходимых блоках 4×4 в памяти 413, хранящей значение nB, и памяти 415, хранящей значение nA, при этом на указанные значения памятей ссылаются как на nA и nB.
Также МБ последовательно подают по строкам и блоки 4×4 сканируются в заранее заданном порядке (растровый порядок сканирования в подблоке 8×8) в МБ. Следовательно, примыкающий слева блок 4×4 сканируют практически непосредственно перед текущим блоком 4×4. Аналогично примыкающий сверху блок в МБ сканируют практически непосредственно перед текущим блоком 4×4. Тем не менее, для ссылки на примыкающий сверху блок для блока 4×4, расположенного в верхнем конце МБ, необходимо ссылаться на блок 4×4, расположенный в самом нижнем конце МБ из предыдущей строки. Следовательно, сумматор 411 накапливает значения для строк макроблоков в памяти 412 строк, хранящей nB границы МБ. На основе адреса блока 4×4 в МБ, в случае верхней границы блок 414 выбора значения nB выбирает значение nB, которое расположено в верхней части и который хранится в памяти 412 строк, хранящей nB границы МБ, и в других случаях выбирает значение nB, которое хранится в верхней части памяти 413, хранящей значение nB. Далее сумматор 416 рассматривает среднее значение ненулевых коэффициентов в примыкающих слева и примыкающих сверху блоках 4×4 как индекс nC выбора таблицы и вычисляет индекс nC выбора таблицы в соответствии со следующей формулой:
nC=(nA+nB)/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 (Улучшенное кодирование видео: стандарт улучшенного кодирования со сжатием движущегося изображения) или подобного, процесс упрощается, когда квантование выполняется параллельно для различных шагов квантования с целью получения длины кода, при этом уменьшается количество аппаратных средств. Эта конфигурация имеет следующие три отличительные черты:
- Коллективно используемый блок 150 вычислений для процесса CAVLC блока 15 вычислений для процесса CAVLC вычисляет длину кода без использования числа nB ненулевых коэффициентов в блоке 4×4 в верхнем краю МБ, при этом отсутствует память строк.
- Процесс коллективных вычислений для процесса 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 снабжен параллельно расположенными блоками 15-1-15-n вычислений для процесса CAVLC, количество которых равно количеству выбранных параметров QP1 квантования, и коллективно используемый блок 150 вычислений для процесса CAVLC, который коллективно используется блоками 15-1-15-n вычислений для процесса CAVLC, соединен с каждым из блоков 15-1-15-n вычислений для процесса CAVLC.
На фиг.4 показана структурная схема основной части, предназначенной для выполнения квантования и кодирования с переменной длиной кодового слова с использованием нескольких параметров QP квантования. Заметим, что работа устройства 100 кодирования изображения также соответствует способу кодирования изображения, который соответствует этому варианту осуществления изобретения.
Как показано на фиг.4, коллективно используемый блок 140 квантования содержит ОЗУ 101 получения адреса сканирования, ОЗУ 102 коэффициента масштабирования и ОЗУ 103 1/матрица.
Каждый из блоков 14-1-14-n квантования содержит блок 501 вычисления QP для МБ, блок 502 преобразования QP%6, блок 503 выбора коэффициента масштабирования, блок 504 выбора 1/матрица, ПЗУ 505 преобразования QP/6, блоки 506 и 507 умножения и многорегистровое устройство 508 циклического сдвига.
Коллективно используемый блок 150 вычислений для процесса CAVLC содержит буферы 201 и 202, сумматор 203, память 204, хранящую значение nB, память 205, хранящую значение nА, сумматор 206, ПЗУ 207 длины в битах TotalCoefLength и сумматор 208.
Также каждый из блоков 15-1-15-n вычислений для процесса CAVLC содержит блок 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/матрица в основном используются коллективно с целью уменьшения размера статического ОЗУ. В коллективно используемом блоке 150 вычислений для процесса CAVLC вычисление длины кода, осуществляемое ПЗУ 207 длины в битах TotalCoefLength, может быть выполнено один раз для блока 4×4, а другие процессы выполняются для блоков пикселей и таким образом указанная схема используется коллективно для реализации процесса разделения по времени.
Также блок 15 вычислений для процесса CAVLC приблизительно вычисляет длину кода в предположении nB=nA на верхней границе МБ с целью уменьшения памяти 412 строк, хранящей nB границы МБ и показанной на фиг.3. Присваивание nB=nA представляет собой процесс приближения и является источником ошибки, но находится в пределах допустимого для процесса предсказания длины кода. Также очень значителен полученный благодаря этому предположению эффект сокращения памяти строк в 15 параллельно расположенных каскадов.
В этой конфигурации AFF сигнал, указывающий МБ, имеет структуру поля или структуру кадра, и сигнал 8×8/4×4, указывающий, что для ортогонального преобразования будет использоваться 8×8 ДКП или 4×4 ДКП, являются входом для коллективно используемого блока 140 квантования. Более конкретно, ОЗУ 101 получения адреса сканирования генерирует адреса ДКП, указывающие входное положение коэффициента ДКП при поступлении AFF сигнала и сигнала 8×8/4×4.
ОЗУ 102 коэффициента масштабирования выдает коэффициент MF масштабирования, содержащий адаптивную фазу положения сканирования, на блок 503 выбора коэффициента масштабирования блока 500 квантования. Как описано выше, коэффициент MF масштабирования выбирается в соответствии с адресами ДКП и значением QP%6 (остаток, полученный делением на 6 выбранного параметра QPl квантования). В соответствующих блоках 14-1-14-n квантования выбранные параметры QPl квантования, отличающиеся друг от друга, установлены равными средним параметрам Base QP квантования. Следовательно, ОЗУ 102 коэффициента масштабирования выдает все коэффициенты MF масштабирования, соответствующие всем шести значениями (QP%6=0, 1, 2, 3, 4 и 5) согласно адресам ДКП, и это приводит к тому, что блоки 503 выбора коэффициента масштабирования блоков 14-1-14-n квантования на последующей стадии выбирают коэффициенты MF масштабирования. Аналогично, ОЗУ 103 1/матрица выдает на блоки 504 выбора 1/матрица блоков 14-1-14-n квантования обратный элемент для некоторого значения матрицы, содержащий адаптивную фазу положения сканирования среди матриц Q Matrix квантования. ОЗУ 103 1/матрица сдвигает обратный элемент для некоторого значения матрицы влево примерно на 20 бит, что делается для выпуска обратного элемента для значения матрицы.
То есть используемая матрица Q Matrix квантования изменяется в зависимости от значения выбранного параметра QPl квантования и, следовательно, необходимо несколько (например, примерно четыре типа) матриц Q Matrix квантования. ОЗУ 103 1/матрица выдаст все типы (четыре типа) обратных элементов для значений матриц на блок 504 выбора 1/матрица блоков 14-1-14-n квантования и на следующей стадии блоки 504 выбора 1/матрица блоков 14-1-14-n квантования выбирают обратные элементы в соответствии со значением выбранного параметра QPl квантования, которое установлено.
В дальнейшем в каждом из блоков 14-1-14-n квантования последовательно подаваемые коэффициенты ДКП подаются на блок 501 вычисления QP для МБ. Блок 501 вычисления QP для МБ добавляет сдвиг в соответствии с группой активности к выбранному параметру QPl квантования, что делают с целью получения адаптивного параметра QPt квантования, и подает его на блок 501 преобразования QP%6 и блок 505 преобразования QP/6. Блок 501 преобразования QP%6 вычисляет значение QP%6, которое представляет собой остаток от деления на 6 адаптивного параметра QPt квантования, и подает это значение на блок 503 выбора коэффициента масштабирования. Блок 503 выбора коэффициента масштабирования выбирает коэффициент MF масштабирования, как первый множитель, в соответствии со значением QP%6 и подает его на блок 506 умножения. Блок 504 выбора 1/матрица выбирает обратный элемент для некоторого значения матрицы в качестве второго множителя на основе идентификационного номера idx используемой матрицы Q Matrix квантования и подает указанный обратный элемент на блок 506 умножения.
Блок 506 умножения умножает коэффициент MF масштабирования на 16 и на обратный элемент для определенного значения матрицы (MF*16/QMatrix). Блок 506 умножения осуществляет умножение выходных значений блока 503 выбора коэффициента масштабирования и блока 504 выбора 1/матрица и далее осуществляет сдвиг вправо на 20 бит, чтобы достичь соответствия с проделанным в ОЗУ 103 1/матрица, и подает значение произведения на блок 507 умножения. Блок 507 умножения умножает коэффициенты ДКП в порядке, обратном порядку сканирования, на значение произведения и подает произведения на многорегистровое устройство 508 циклического сдвига. Блок преобразования QP/6 подает значение QP/6, полученное делением на 6 адаптивного параметра QPt квантования на многорегистровое устройство 508 циклического сдвига. Многорегистровое устройство 508 циклического сдвига уменьшает цифры выходного значения блока 507 умножения на количество цифр, которое соответствует значению QP/6, тем самым получается результат квантования.
Таким образом, ОЗУ коэффициента масштабирования и ОЗУ 103 1/матрица коллективно используются в блоке 14 квантования и все коэффициенты MF масштабирования и обратные элементы для значений матриц, которые доступны в блоках 14-1-14-n квантования на последующей стадии, подаются на блоки 14-1-14-n квантования в соответствии с адресами ДКП. Каждый из блоков 14-1-14-n квантования выбирает коэффициент MF масштабирования в соответствии с выбранным параметром QP1 квантования. Также каждый из блоков 14-1-14-n квантования выбирает обратный элемент для некоторого значения матрицы в соответствии с идентификационным номером idx матрицы. Соответственно ОЗУ 102 коэффициента масштабирования и ОЗУ 103 1/матрица могут быть использованы коллективно в блоке 14 квантования, так что может быть уменьшена емкость ОЗУ необходимая для всего блока 14 квантования. Также блок 14 квантования хранит коэффициенты MF масштабирования и обратные элементы для значений матрицы отдельно друг от друга. Таким образом может быть уменьшена емкость памяти, необходимая для ОЗУ 102 коэффициента масштабирования и ОЗУ 103 1/матрица по сравнению со случаем хранения всех значений произведений коэффициентов 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 в каждом из блоков 15-1-15-n вычислений для процесса CAVLC последовательно выполняют обработку подаваемых коэффициентов ДКП. То есть соответствующие блоки в каждом из блоков 15-1-15-n вычислений для процесса CAVLC выполняют 4×4=16 вычислений для блока 4×4 ДКП. В отличие от этого для ПЗУ 207 длины в битах TotalCoefLength необходимо только выбрать одну таблицу VLC и выполнить вычисление один раз для значений TrailingOne и TotalCoef, вычисленных для блока 4×4 ДКП. То есть время вычисления в ПЗУ 207 длины в битах TotalCoefLength составляет только примерно одну шестнадцатую по сравнению со временем вычисления в соответствующих блоках в каждом из блоков 15-1-15-n вычислений для процесса CAVLC. Таким образом, коллективно используемый блок 150 вычислений для процесса CAVLC хранит значения TrailingOnes и TotalCoefs, полученные из блоков 15-1-15-n вычислений для процесса CAVLC, в буферах 201 и 202 соответственно. Когда соответствующие блоки в каждом из блоков 15-1-15-n вычислений для процесса CAVLC выполняют обработку следующего блока 4×4, коллективно используемый блок 150 вычислений для процесса CAVLC адаптивно выбирает таблицу VLC для предыдущего блока 4×4 и последовательно кодирует пятнадцать значений TrailingOnes и TotalCoefs, вычисленных блоками 15-1-15-n вычислений для процесса CAVLC.
В коллективно используемом блоке 150 вычислений для процесса CAVLC выходные значения блоков 401 подсчета значения TrailingOne и блоков 402 подсчета значения TotalCoef 15 параллельно расположенных блоков 15-1-15-n вычислений для процесса CAVLC хранятся в пятнадцати каскадах буферов в каждом из буферов 201 и 202.
Сумматор 203 получает значения TrailingOnes и TotalCoefs из буферов 201 и 202 с разделением по времени и складывает значения TrailingOnes и TotalCoefs с целью вычисления количества ненулевых коэффициентов. Память 205, хранящая значение nA, хранит количество nА ненулевых коэффициентов блока 4×4, называемого примыкающим слева блоком в макроблоке. Память 204, хранящая значение nB, хранит количество nB ненулевых коэффициентов блока 4×4, называемого примыкающим сверху блоком в макроблоке из блоков 4×4.
Здесь в коллективно используемом блоке 150 вычислений для процесса CAVLC нужно хранить информацию о значении nB для нижней границы МБ и использовать ее как информацию для блока 4×4 на верхней границе расположенного ниже макроблока. Тем не менее, если 15-каскадная память строк для хранения nB расположена в коллективно используемом блоке 150 вычислений для процесса CAVLC, то становится большой емкость ОЗУ, нужная для коллективно используемого блока 150 вычислений для процесса CAVLC, что нежелательно с точки зрения масштаба схемы. Следовательно, при обработке блока 4×4 на верхней границе МБ коллективно используемый блок 150 вычислений для процесса CAVLC выполняет тот же самым процесс, что и для макроблока на самой верхней части кадра, при этом полагают равными nB и nА.
То есть в случае когда блок 4×4 расположен на верхней границе МБ, сумматор 206 устанавливает индекс nC выбора таблицы равным nA. Сумматор 206 устанавливает значение nC равным nB для блока 4×4 на левой границе кадра. В случае, который отличается от упомянутых выше случаев, то есть когда блок 4×4 не находится ни на верхней границе МБ ни на левой границе кадра, сумматор 206 устанавливает значение nC равным (nA+nB)/2. Далее ПЗУ 207 длины в битах TotalCoefLength выбирает таблицу VLC исходя из индекса nC выбора таблицы, кодирует значения TrailingOne и TotalCoef и вычисляет длины их кодов. В результате ПЗУ 207 длины в битах TotalCoefLength последовательно подает длины в битах TotalCoefLength на сумматор 208. Сумматор 208 получает длины кодов, вычисленные блоками 15-1-15-n вычислений для процесса CAVLC. Сумматор 208 складывает коды, которые соответствуют длинам в битах TotalCoefLength и которые поданы от блоков 15-1-15-n вычислений, тем самым вычисляет длины кодов для соответствующих блоков 4×4. Блок 4 управления длиной кода складывает длины кодов для соответствующих блоков 4×4 в блоках МБ, тем самым вычисляет длины генерируемых кодов для соответствующих МБ. Эти процессы повторяются для всего кадра.
Таким образом, в блоке 15 вычислений для процесса CAVLC коллективно используется ПЗУ 207 длины в битах TotalCoefLength, в котором число вычислений мало. Соответственно, в блоке 15 вычислений для процесса CAVLC может быть уменьшено количество ПЗУ 207 длины в битах TotalCoefLength и может быть упрощена конфигурация схемы. Блок 15 вычислений для процесса CAVLC устанавливает индекс nC выбора таблицы равным nA в случае, когда блок 4×4 находится на верхней границе МБ. Соответственно, память строк, хранящая значение nB на границе МБ, может быть опущена в блоке 15 вычислений для процесса CAVLC, может быть значительно уменьшена емкость памяти ОЗУ, необходимой для блока 15 вычислений для процесса CAVLC, и может быть упрощена конфигурация схемы.
Согласно устройству 100 кодирования изображения и способу кодирования изображения, которые соответствуют варианту изобретения, блок 14 квантования хранит коэффициенты MF масштабирования и 1/Q Matrix отдельно друг от друга и подает все значения, доступные в соответствии с адресами ДКП, на соответствующие блоки 14-1-14-n квантования. Каждый из блоков 14-1-14-n квантования выбирает коэффициенты MF масштабирования и 1/Q Matrix в соответствии с установленным параметром QP квантования. Соответственно, в блоке 14 квантования память может коллективно использоваться блоками 14-1-14-n квантования и таким образом может быть уменьшен объем памяти. Блок 15 вычислений для процесса CAVLC не использует прилегающий сверху блок 4×4 в верхней концевой части МБ при выборе таблицы VLC, так что может быть уменьшен объем памяти 412 строк, хранящей nB границы МБ. Более того, в блоке 15 вычислений для процесса CAVLC коллективно используемый блок 15 вычислений для процесса CAVLC, в котором производятся вычисления для блоков 4×4 ДКП, коллективно используется с разделением по времени, так что может быть уменьшен логический модуль.
Также устройство 100 кодирования изображения выполняет предварительное кодирование дважды в блоках кадров, учитывая что преимущество AVC не может быть максимизировано, если мал блок процесса обработки, это объясняется тем, что эффективность увеличивается благодаря использованию в AVC внутрикадровой корреляции. Также для увеличения эффективности в устройстве 100 кодирования изображения применена частично распараллеленная конфигурация, основанная на частичном коллективном использовании схемы, что нужно для преодоления проблемы увеличения объемов обработки, в результате чего увеличивается масштаб схемы кодирования. Соответственно устройство 100 кодирования изображения способно приводить длину генерируемого кода в соответствие с целевой длиной кода, заданной для одного кадра, и способно определять распределение длины кода с точки зрения визуальных характеристик, то есть параметров QP квантования, при одновременном упрощении конфигурации устройств, осуществляющих предварительное кодирование.
1-4. Определение основного параметра квантования
Блок 2 второго предварительного кодирования фактически выполняет кодирование, аналогичное устройству 3 кодирования, с использованием предсказанного параметра QPd квантования и предсказанной матрицы Q MatrixD квантования, тем самым с высокой точностью вычисляется хорошо согласующаяся длина генерируемого кода. Далее длина генерируемого кода, вычисленная блоком 2 второго предварительного кодирования, называется хорошо согласующейся длиной генерируемого кода. На этом этапе блок 2 второго предварительного кодирования вычисляет хорошо согласующуюся длину генерируемого кода с использованием не только предсказанного параметра QPd квантования, но также с использованием параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования, и предсказывает хорошо согласующуюся длину генерируемого кода близко к предсказанному параметру QPd квантования с использованием коэффициента колебаний.
Блок 4 управления длиной кода подает предсказанный параметр QPd квантования, предсказанную матрицу Q MatrixD квантования и группы активности соответствующих МБ на блок 2 второго предварительного кодирования. Блок 2 второго предварительного кодирования осуществляет второе предварительное кодирование на основе указанных значений.
В блоке 2 второго предварительного кодирования входное изображение 91 подают на блок 21 обработки внутрикадрового предсказания после задержки в буфере 5 задержки. Блок 21 обработки внутрикадрового предсказания вычисляет разность между предсказанным изображением и входным изображением 91 с целью получения данных разности изображений. Далее блок 22 ДКП выполняет процесс ДКП для данных разности изображений с целью получения коэффициентов ДКП. Блок 23 квантования выполняет процесс квантования коэффициентов ДКП с целью получения коэффициентов, прошедших квантование. Блок 24 вычисления длины кода для энтропийного кодирования осуществляет энтропийное кодирование коэффициентов, прошедших квантование, с использованием CAVLC или САВАС с целью получения вычисленных хорошо согласующихся длин генерируемых кодов.
Кроме того, во время обработки в блоке 2 второго предварительного кодирования блок 23 квантования предает коэффициенты, прошедшие квантование, в блок 27 преобразования, обратного квантованию. Блок 27 преобразования, обратного квантованию, осуществляет преобразование, обратное квантованию, коэффициентов, прошедших квантование, с целью восстановления коэффициентов ДКП. Далее блок 26 преобразования, обратного ДКП, реализует преобразование, обратное ДКП, коэффициентов ДКП с целью получения локального декодированного изображения, которое сохраняется в буфере 25.
Здесь блок 23 квантования состоит в этом примере из трех каскадов блоков 23-1, 23-2 и 23-3 квантования, и блок 24 вычисления длины кода для энтропийного кодирования состоит в этом примере из трех каскадов блоков 24-1, 24-2 и 24-3 вычисления длины кода для энтропийного кодирования. Причина того, что используется малое (три) количество каскадов, состоит в том, что параметры QP квантования уже были грубо оценены в широком диапазоне при первом предварительном кодировании.
При такой конфигурации блок 23 квантования и блок 24 вычисления длины кода для энтропийного кодирования выполняют обработку параллельно, чтобы получить хорошо согласующиеся длины генерируемых кодов, которые соответствуют предсказанному параметру QPd квантования и параметрам QP квантования, которые меньше и больше предсказанного параметра QPd квантования. На этом этапе блок 24 вычисления длины кода для энтропийного кодирования выбирает из CABAC/CAVLC тот же самый способ, как и способ энтропийного кодирования при основном кодировании, выполняемым блоком 3 основного кодирования.
В дальнейшем блок 4 управления длиной кода определяет основной параметр QPMB квантования кадра, который предназначен для использования при основном кодировании, что делается исходя из хорошо согласующихся длин генерируемых кодов, полученных при втором предварительном кодировании. Далее блок 4 управления длиной кода передает в блок 3 основного кодирования информацию по квантованию (матрицу Q Matrix, параметры QP для каждого МБ и так далее), опирающуюся на определенный основной параметр ОРМВ квантования кадра, предсказанную матрицу Q MatrixD квантования и группу активности каждого МБ.
Более конкретно, в случае когда целевая длина кода находится между хорошо согласующимися длинами генерируемых кодов, полученными при втором предварительном кодировании, то есть в случае когда выполняется следующее:
Generatcd_bits(QP_precode1+l) Target_bits Generated_bits(QP_precode1-1),
то параметр QP квантования, который наиболее близок к целевой длине кода, выбирается в качестве основного параметра QPMB квантования.
Иначе блок 4 управления длиной кода получает из результата второго предварительного кодирования коэффициент колебаний хорошо согласующихся длин генерируемых кодов относительно изменения параметра QP квантования. Предсказанный параметр QPd квантования вычисляется на основе грубо согласующихся длин генерируемых кодов, которые получены блоком 1 первого предварительного кодирования. Таким образом, параметр QP квантования, который наиболее близок к целевой длине кода, существует рядом с предсказанным параметром QPd квантования. В случае когда значения параметров QP квантования близки друг к другу, коэффициент колебаний длин генерируемых кодов кода по существу постоянен. Тогда блок 4 управления длиной кода предсказывает хорошо согласующиеся длины генерируемых кодов, которые отвечают соответствующим параметрами QP квантования, на основе коэффициента колебаний хорошо согласующихся длин генерируемых кодов, соответствующих предсказанному параметру QPd квантования и параметрам QP квантования, которые меньше и больше предсказанного параметра QPd квантования, и выбирает параметр QP квантования, который наиболее близок к целевой длине кода, в качестве основного параметра QPMB квантования.
Сначала значение DiffRatio_1, которое показывает количество процентов, на которое изменится хорошо согласующаяся длина генерируемого кода, если «1» вычесть из параметра QP квантования, следующим образом получают из результата блока 2 второго предварительного кодирования. Заметим, что значение Generated_bits представляет собой длину генерируемого кода для блока 2 второго предварительного кодирования, значение QP_precode1 представляет собой предсказанный параметр QPd квантования, а значение QP_precode1-1 представляет собой параметр QP квантования, который меньше на 1 предсказанного параметра QPd квантования.
DiifRatio_1=(Generated_bits(QP_precode1-1)-Generated_bits(QP_precode1))/Generated_bits(QP_precode1).
Значение DiffRatio_2, показывающее количество процентов, на которое изменится хорошо согласующаяся длина генерируемого кода, если «1» прибавить к параметру QP квантования, следующим образом получают из результата блока 2 второго предварительного кодирования. Значение QP_precode1+1 представляет собой параметр QP квантования, который больше на 1 предсказанного параметра QPd квантования.
DiffRatio_2=(Generated_bits(QP_precode1)-Generated_bits(QP_precode1+1))/Generated_bits(QP_precode1+1).
Коэффициент DiffRatio колебаний хорошо согласующейся длины генерируемого кода рядом с предсказанным параметром QPd квантования получают следующим образом:
DiffRatio=(DiffRatio_1+DiffRatio_2)/2.
То есть значение DiffRatio вычисляют как среднее значение колебания длины генерируемого кода при изменении параметра квантования только на 1 в положительную и отрицательную стороны от предсказанного параметра QPd квантования.
Предположим, что значение DeltaQP является абсолютным значением разности между предсказанным параметром QPd квантования (QP_precode1) и параметром QP квантования, при котором хорошо согласующаяся длина генерируемого кода наиболее близка к целевой длине кода. Тогда когда параметр QP квантования, соответствующий хорошо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода, меньше параметра QP квантования (QP_precode1-1), который меньше предсказанного параметра QPd квантования на единицу, то хорошо согласующаяся длина (Generated_bits(QP)) генерируемого кода для параметра QP квантования, при котором хорошо согласующаяся длина генерируемого кода наиболее близка к целевой длине кода, вычисляется следующим образом:
Generated_bits(QP)=Generated_bits(QP_precode1-1)×(1.0+DiffRatio)^(DeltaQP-1).
Когда параметр QP квантования, соответствующий хорошо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода, больше параметра QP квантования (QP_precode1+1), который больше предсказанного параметра QPd квантования на единицу, то хорошо согласующаяся длина (Generated_bits (QP)) генерируемого кода для параметра QP квантования, при котором хорошо согласующаяся длина генерируемого кода наиболее близка к целевой длине кода, вычисляется следующим образом:
Generated_bits(QP)=Generated_bits(QP_precode1+1)×(1.0-DiffRatio^(DeltaQP-1).
To есть блок 4 управления длиной кода увеличивает/уменьшает хорошо согласующиеся длины генерируемых кодов, полученные когда используются параметры QP квантования, которые меньше и больше предсказанного параметра QPd квантования, на величину длины кода согласно коэффициенту колебаний, когда значение параметра QP квантования изменяется на 1 относительно предсказанного параметра QPd квантования. Блок 4 управления длиной кода может вычислять с высокой точностью хорошо согласующиеся длины генерируемых кодов, которые получены когда используются параметры QP квантования, близкие к предсказанному параметру QPd квантования.
Аналогично описанному выше, блок 4 управления длиной кода выбирает параметр QP квантования, который наиболее близок к целевой длине кода в качестве основного параметра QPMB квантования, который используется в качестве среднего параметра (BaseQP) квантования при основном кодировании.
Аналогично описанному выше, блок 2 второго предварительного квантования осуществляет предварительное кодирование с использованием предсказанного параметра QPd (QP_precode1) квантования, оцененного блоком 1 первого предварительного кодирования, параметра QP квантования, большего на 1 (QP_precode1+1), и параметра QP квантования, меньшего на 1 (QP_precode1-1). Здесь, как описано выше, только блок 23 квантования и блок 24 вычисления длины кода для энтропийного кодирования работают параллельно, а другие процессы используются коллективно с целью уменьшения масштаба схемы.
На этом этапе локальное декодированное изображение, используемое в процессе внутрикадрового предсказания, представляет собой данные, которые прошли квантование с использованием предсказанного параметра QPd(QP_precode1) квантования, оцененного на основе результата работы блока 1 первого предварительного кодирования. То есть данные, обработанные в ходе преобразований, обратных квантованию и ДКП, представляют собой выход процесса квантования с использованием предсказанного параметра QPd(QP_precode1) квантования. Это означает, что локальное декодированное изображение для предсказанного параметра QPd(QP_precode1) квантования, не являющееся собственно локальным декодированным изображением, используется как замена входа для процесса внутрикадрового предсказания предварительного кодирования, который использует параметры QP(QP_precode1+1 и QP_precode1-1) квантования, которые меньше и больше предсказанного параметра QPd квантования.
Таким образом, блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов с помощью кодирования, аналогичного основному кодированию, с использованием предсказанного параметра QPd квантования, с которым очень высока вероятность того, что грубо согласующаяся длина генерируемого кода наиболее близка к целевой длине кода, и с использованием параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования, описанное делается на основе предсказания грубо согласующихся длин генерируемых кодов с учетом результата работы блока 1 первого предварительного предсказания. Соответственно блок 4 управления длиной кода может вычислить практически без потери точности хорошо согласующиеся длины генерируемых кодов в случае когда используются предсказанный параметр QPd квантования и параметры QP квантования, которые меньше и больше предсказанного параметра QPd квантования. Более того, в настоящем изобретении внимание сосредоточено на том, что коэффициент колебаний хорошо согласующихся длин генерируемых кодов, вызванных изменением параметра QP квантования, по существу, является постоянным в узком диапазоне. Блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов, полученные тогда когда используются параметры QP квантования, близкие к предсказанному параметру QPd квантования, на основе коэффициента колебаний хорошо согласующихся длин генерируемых кодов при предсказанном параметре QPd квантования и параметрах QP квантования, которые меньше и больше предсказанного параметра QPd квантования. Соответственно, блок 4 управления длиной кода может вычислить хорошо согласующиеся длины генерируемых кодов практически без потери точности для параметров QP квантования, близких к предсказанному параметру QPd квантования.
Кроме того, настоящее изобретение не ограничено описанным выше вариантом осуществления изобретения и приемлемы различные улучшения и изменения, не выходящие за границы объема изобретения.
Например, описанное выше устройство кодирования изображения и способ кодирования изображения также могут быть осуществлены в виде компьютерной программы, загруженной в устройство, или в виде носителя информации с программой, и в виде компьютерной программы, предназначенной для реализации способа, или в виде носителя информации с программой.
Кроме того, описанные выше серии процессов кодирования могут быть выполнены аппаратными средствами и могут быть выполнены программными средствами. В случае реализации процессов кодирования в виде программных средств устройство 100 кодирования изображения виртуально формируется в ЦП или ОЗУ Тогда программа кодирования, хранящаяся в ПЗУ, переносится в ОЗУ, где выполняются процессы кодирования.
1-5. Процедура работы
В дальнейшем со ссылками на блок-схему, показанную на фиг.5, будет подробно описана процедура RT1 кодирования, выполняемая устройством 100 кодирования изображения, которое соответствует варианту осуществления настоящего изобретения. Часть или вся процедура работы также соответствует способу кодирования изображения, который соответствует варианту осуществления изобретения.
Сначала блок 16 вычисления активности вычисляет активности в блоках МБ и сортирует МБ на группы активности в соответствии с полученными значениями (этап S1).
Далее блок 11 определения режима внутрикадрового предсказания определяет режим внутрикадрового предсказания на основе входного изображения 91 (этап S2). Режим внутрикадрового предсказания также используется при втором предварительном кодировании, которое осуществляет блок 2 второго предварительного кодирования, и при основном кодировании, осуществляемом блоком 3 основного кодирования.
Далее, блок 12 обработки внутрикадрового предсказания вычисляет данные разности изображений между предсказанным изображением и входным изображением. Здесь входное изображение 91 используется в качестве предсказанного изображения с целью упрощения процесса. Далее блок 13 ДКП осуществляет ДКП с целочисленной точностью и передает коэффициенты ДКП в блок 14 квантования (этап S3).
Блок 14 квантования осуществляет квантование значений коэффициентов ДКП с использованием в качестве средних параметров (BaseQP) квантования кадра нескольких выбранных параметров QP1 квантования произвольных интервалов. Блок 15 вычисления длины кода для энтропийного кодирования осуществляет кодирование с переменной длиной кодовых слов коэффициентов, прошедших квантование, и вычисляет длину кода, тем самым получаются длины генерируемых кодов для соответствующих выбранных параметров QP1 квантования (этап S4). На этом этапе значения даны с учетом использования активности в параметрах QP квантования МБ, как описано выше, и далее осуществляется кодирование. То есть, как описано выше, параметры QP квантования МБ получаются путем сложения смещения, зависящего от группы активности, и среднего параметра (BaseQP) квантования кадра.
Кроме того, в случае зависимости от процесса выбора адаптивной матрицы Q Matrix квантования описанный выше процесс осуществляется для каждой матрицы Q Matrix квантования. То есть предварительное кодирование осуществляется с использованием выбранных параметров QP1 квантования, имеющих дискретные значения для каждой матрицы Q Matrix квантования, при этом получается длина генерируемого кода одного кадра. На этом этапе выбранные параметры QP1 квантования выбраны так, чтобы покрывать допустимый диапазон параметров QP квантования для каждой матрицы Q Matrix квантования.
Далее блок 4 управления длиной кода осуществляет процесс корректировки длин генерируемых кодов, вычисленных блоком 1 первого предварительного кодирования, с целью получения грубо согласующихся длин генерируемых кодов. Блок 4 управления длиной кода корректирует ошибку, порожденную упрощением предварительного кодирования, а также вычисляет грубо согласующиеся длины генерируемых кодов, соответствующие параметрам QP квантования, отличным от выбранных параметров QP1 квантования, с помощью процесса интерполяции (этап S5).
Блок 4 управления длиной кода выполняет процесс, соответствующий этапу S5, для соответствующих матриц Q Matrix квантования и вычисляет грубо согласующиеся длины генерируемых кодов для соответствующих матриц Q Matrix квантования (этап S6). В упомянутом выше процессе могут быть получены грубо согласующиеся длины генерируемых кодов, соответствующие всем необходимым параметрами QP квантования. Среди параметров QP квантования, которые могут генерировать грубо согласующуюся длину генерируемого кода, которая наиболее близка к целевой длине кода, в качестве предсказанной матрицы Q MatrixD квантования выбирают матрицу Q Matrix квантования с наименьшим смещением. Более того, блок 4 управления длиной кода выбирает в качестве предсказанного параметра QPd квантования параметр QP квантования, который может сгенерировать грубо согласующуюся длину генерируемого кода, наиболее близкую к целевой длине кода, в соответствии с предсказанной матрицей Q MatrixD квантования (этап S7). Также благодаря описанному выше выбору матрицы Q Matrix квантования ограничивают диапазон возможных параметров QP квантования, так что может быть уменьшен диапазон выбранных параметров QP1 квантования, предназначенных для вычисления грубо согласующихся длин генерируемых кодов блоком 1 первого предварительного кодирования. Соответственно получается предсказанная матрица Q MatrixD квантования и предсказанный параметр QPd квантования, определенные блоком 1 первого предварительного кодирования.
В дальнейшем процесс получения длин генерируемых кодов осуществляется блоком 2 второго предварительного кодирования (этапы S8-S10). Цель этого блока 2 второго предварительного кодирования состоит в том, чтобы снова выполнить предварительное кодирование с целью увеличения точности оцененного основного параметра QPMB квантования с учетом того, что предсказанный параметр QPd квантования, оцененный блоком 1 первого предварительного кодирования, содержит ошибку.
То есть предварительное кодирование выполняется снова с использованием параметров QP квантования, близких к предсказанному параметру QPd квантования, который грубо оценен на основе результата работы блока 1 первого предварительного кодирования, что делается с целью получения хорошо согласующихся длин генерируемых кодов, при этом снова получают параметр QP квантования, который наиболее близок к целевой длине кода. Для вычисления длин кодов для энтропийного кодирования используется тот же способ, что и для основного кодирования (САВАС или CAVLC).
В частности, процесс внутрикадрового предсказания, осуществляемый блоком 21 обработки внутрикадрового предсказания, выполняется с использованием режима внутрикадрового предсказания, определенного из результата работы блока 1 первого предварительного кодирования, и блок 22 ДКП выполняет ДКП (этап S8). Блок 2 второго предварительного кодирования использует в качестве локального декодированного изображения (предсказанного изображения), которое используется для внутрикадрового предсказания, локальное декодированное изображение, которое проходит квантование с предсказанным параметром QPd (QP_precode1) квантования, который был оценен на основе результата работы блока 1 первого предварительного кодирования.
При квантовании используется предсказанный параметр QPd (QP_precode1) квантования, определенный на основе результата работы блока 1 первого предварительного кодирования, матрицы Q Matrix квантования и группы активности. В блоке 23-1 квантования устанавливается предсказанный параметр QPd (QP_precode1) квантования, в блоке 23-2 квантования устанавливается параметр QP (QP_precode1-1) квантования, меньший на 1 предсказанного параметра QPd квантования, а в блоке 23-3 квантования устанавливается параметр QP (QP_precode1+1) квантования, больший на 1 предсказанного параметра QPd квантования.
Более того, значения присваиваются параметрам (QP) квантования МБ с учетом активности и выполняется кодирование. В ходе описанного выше второго предварительного кодирования может быть получен хорошо согласующаяся длина генерируемого кода одного кадра (этап S9).
Далее блок 4 управления длиной кода определяет основной параметр QPMB квантования на основе хорошо согласующихся длин генерируемых кодов, полученных исходя из работы блока 2 второго предварительного кодирования (этап S10).
Далее блок 3 основного кодирования выполняет основное кодирование (этап S11). В ходе основного кодирования кодирование выполняют с использованием основного параметра QP MB квантования кадра, определенного на основе результата работы блока 2 второго предварительного кодирования, предсказанной матрицы Q MatrixD квантования, определенной на основе результата работы блока 1 первого предварительного кодирования, и группы активности. Таким образом, заканчивается серия процессов, связанных с кодированием.
Далее будет подробно со ссылками на блок-схему, показанную на фиг.6, описана процедура RT2 определения матрицы Q Matrix, выполняемая на этапе S7 процедуры RT1 кодирования, осуществляемой устройством 100 кодирования изображения.
В начале этого процесса блок 4 управления длиной кода сначала инициализирует параметр Id значением равным нулю (этап S21), а затем сравнивает параметр (QP) квантования, соответствующий грубо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода, с максимальным параметром QP (QMatrixTheshold [Id]) квантования, который возможен в матрице Q-Matrix квантования, из матрицы Q-Matrix квантования, в которой параметр Id имеет малое значение (этап S22). Далее, если параметр (QP) квантования, соответствующий грубо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода в Id-й матрице Q-Matrix квантования, меньше, чем QMatrixTheshold [Id], то блок 4 управления длиной кода присваивает текущей матрице Q-Matrix квантования значение предсказанной матрицы Q MatrixD квантования. Более того, после присваивания параметру (QP) квантования, соответствующему грубо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода, в предсказанной матрицы Q MatrixD квантования значения предсказанного параметра QPd квантования (этап S23), блок 4 управления длиной кода заканчивает процедуру RT2 определения матрицы Q Matrix.
С другой стороны, на этапе S22, если параметр (QP) квантования, соответствующий грубо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода в Id-й матрице Q-Matrix квантования, равен или больше значения QMatrixTheshold [Id], то блок 4 управления длиной кода увеличивает значение Id (этап S24). Блок 4 управления длиной кода, меньше ли значение Id общего количества матриц Q-Matrix квантования, из которого вычтена единица (NumOfQMatrixId-1) (step S25). Далее, если равенство Id=NumOfQMatrixId-1 не выполняется, то процесс возвращается на этап S22, где проверяется следующая матрица Q-Matrix квантования. С другой стороны, если равенство Id=NumOfQMatrixId-1 выполняется, то выбирается матрица Q-Matrix квантования с самым большим смещением (матрица Q-Matrix квантования, для которой значение ID равно NumOfMatrixId) (этап S23) и заканчивается процедура RT2 определения матрицы Q Matrix.
В этой процедуре RT2 определения матрицы Q Matrix, показанной на фиг.6, блок 4 управления длиной кода устанавливает возможный максимальный параметр QP квантования для каждой матрицы Q-Matrix квантования и определяет, близко ли значение грубо согласующейся длины генерируемого кода, соответствующей параметру QP квантования, при котором оцененная грубо согласующаяся длина генерируемого кода наиболее близка к целевой длине кода, находится близко к целевой длине кода из матрицы Q-Matrix квантования с небольшим смещением. Далее, если значение грубо согласующейся длины генерируемого кода близко по значению, то соответствующая матрица Q-Matrix квантования считается предсказанной матрицей Q MatrixD квантования, предназначенной для использования в основном кодировании.
Как описано выше, согласно варианту осуществления настоящего изобретения, предварительное кодирование выполняется дважды для блоков кадров. Также устройство 100 кодирования изображения использует частично распараллеленную конфигурацию, основанную на частичном коллективном использовании схемы, что с целью увеличения эффективности нужно для решения проблемы возрастания объемов обработки, приводящей к увеличению масштаба схемы кодирования. Соответственно упрощается конфигурация устройств, осуществляющих предварительное кодирование, и ошибка, возникающая из-за упрощения, корректируется с использованием статистических данных.
Следовательно, устройство 100 кодирования изображения может приводить длину генерируемого кода, полученную при основном кодировании, в соответствие с целевой длиной кода, которая задана для одного кадра, что делается без использования управления с внутрикадровой обратной связью. Соответственно, устройство 100 кодирования изображения может избавиться от проблем при управлении с обратной связью, таких как отрицательный эффект неподходящего начального значения параметра обратной связи и неподходящее распределение целевой длины кода. В результате устройство 100 кодирования изображения может добиться соответствия длины генерируемого кода, полученной при основном кодировании, и целевой длины кода и определить распределение длины кода с точки зрения визуальных характеристик, то есть подходящих параметров квантования.
Далее со ссылками на блок-схему, которая показана на фиг.7, будет описана процедура RT3 выбора таблицы VLC, выполняемая коллективно используемым блоком 150 вычислений для процесса CAVLC в соответствии с программой кодирования.
Блок 15 вычислений для процесса CAVLC начинает процедуру RT3 выбора таблицы VLC при подаче коэффициентов ДКП от блока 14 квантования и переходит к выполнению этапа S41. Блок 15 вычислений для процесса CAVLC подсчитывает с помощью блоков 15-1-15-n вычислений для процесса CAVLC значения TrailingOnes и TotalCoefs и переходит на следующий этап S42.
На этапе S42 блок 15 вычислений для процесса CAVLC складывает значения TrailingOnes и TotalCoefs с целью вычисления количеств ненулевых коэффициентов и переходит на следующий этап S43.
На этапе S43 блок 15 вычислений для процесса CAVLC временно сохраняет значения nA и nB ненулевых коэффициентов в качестве ссылочных величин и затем переходит на следующий этап S44.
На этапе S44 блок 15 вычислений для процесса CAVLC определяет, находится ли блок 4×4 на верхней границе МБ. Здесь если получен отрицательный результат, то это означает, что nB в качестве ссылочной величины хранится в памяти 204, хранящей значение nB. На этом этапе блок 15 вычислений для процесса CAVLC переходит на следующий этап S46. На этапе S46 блок 15 вычислений для процесса CAVLC используется среднее арифметическое значений nA и nB в качестве индекса nC выбора таблицы и затем переходит на следующий этап S47.
С другой стороны, если на этапе S44 получен положительный результат, то блок 15 вычислений для процесса CAVLC переходит на этап S45 и использует значение пА в качестве индекса nC выбора таблицы и затем переходит на следующий этап S47.
На этапе S47 блок 15 вычислений для процесса CAVLC выбирает таблицу VLC исходя из индекса nC выбора таблицы и переходит на конечный этап процесса.
1-6. Функционирование и результат
В описанной выше конфигурации, на устройство 100 кодирования изображения подают входное изображение 91, которое построчно сканируют в блоки МБ, называемые сканируемыми блоками, каждый из которых состоит из множества блоков 4×4, при этом отсканированные блоки 4×4 называются кодируемыми блоками и каждый из них состоит из множества пикселей. Устройство 100 кодирования изображения выбирает таблицу VLC (кодирование с переменной длиной кодовых слов), соответствующую индексу nC выбора таблицы, который представляет собой среднее арифметическое значений nB и nA ненулевых коэффициентов, являющихся кодируемыми значениями, к которым должно быть применено кодирование с переменной длиной кодовых слов в блоках 4×4, примыкающих сверху и примыкающих слева к блоку 4×4, который используется в качестве объекта кодирования и которые являются коэффициентами, прошедшими квантование, рассматриваемыми как данные по объекту кодирования и полученными исходя из входного изображения 91. На этом этапе в случае когда блок 4×4, используемый как объект кодирования, расположен на верхнем конце МБ, устройство 100 кодирования изображения присваивает количеству nB ненулевых коэффициентов примыкающего сверху блока 4×4 количество nA ненулевых коэффициентов примыкающего слева блока 4×4. Устройство 100 кодирования изображения с использованием выбранной таблицы VLC осуществляет кодирование с переменной длиной слов количества ненулевых коэффициентов блока 4×4, как объекта кодирования, при этом указанные ненулевые коэффициенты являются коэффициентами, прошедшими квантование.
Соответственно в устройстве 100 кодирования изображения может отсутствовать память для одной строки, предназначенной для ссылки на количество nB ненулевых коэффициентов в примыкающем сверху блоке, расположенном на верхнем конце МБ, так что может быть упрощена конфигурация схемы.
Устройство 100 кодирования изображения кодирует входное изображение 91 путем его квантования с использованием шагов квантования исходя, по меньшей мере, из показателей квантования (параметров QP квантования или матриц квантования или их обоих), тем самым генерируют коэффициенты, прошедшие квантование и используемые в качестве данных по объекту кодирования.
Устройство 100 кодирования изображения определяет основной параметр QP MB квантования, с помощью которого предсказывается, что длина генерируемого кода, полученная при выполнении основного кодирования входного изображения 91, будет наиболее близка к целевой длине кода, указанная длина основана на грубо согласующихся длинах генерируемых кодов, полученных с помощью кодирования с переменной длиной кодовых слов, которое применяется к коэффициентам, прошедшим квантование. Устройство 100 кодирования изображения осуществляет основное кодирование входного изображения 91 исходя из определенного основного параметра QPMB квантования.
Соответственно, устройство 100 кодирования изображения может определить основной параметр QPMB квантования исходя из грубо согласующихся длин генерируемых кодов, вычисленных для простой конфигурации.
Устройство 100 кодирования изображения осуществляет процесс ДКП, который является ортогональным преобразованием, для входного изображения 91, разбитого на блоки 4×4, и затем осуществляет квантование входного изображения 91 с использованием шагов квантования исходя из параметров QP квантования, тем самым получаются коэффициенты, прошедшие квантование. Устройство 100 кодирования изображения определяет предсказанный параметр QPd квантования, служащий в качестве предсказанного показателя квантования, близкого к основному параметру QP MB квантования. Устройство 100 кодирования изображения кодирует входное изображение 91 исходя из выбранного предсказанного параметра QPd квантования, и параметров QP квантования, близких к предсказанному параметру QPd квантования и вычисляет хорошо согласующуюся длину генерируемого кода для входного изображения 91. Устройство 100 кодирования изображения определяет основной параметр QPMB квантования исходя из вычисленной хорошо согласующейся длины генерируемого кода для входного изображения 91.
Соответственно, устройство 100 кодирования изображения может определить основной параметр QPMB квантования исходя из предсказанного параметра QPd квантования, который с большой вероятностью является основным параметром QP MB квантования, и параметров QP квантования, близких к предсказанному параметру QPd квантования. Следовательно, устройство 100 кодирования изображения может улучшить точность предсказания основного параметра QPMB квантования.
2. Второй вариант осуществления изобретения
2-1. Конфигурация устройства кодирования изображения
Во втором варианте осуществления изобретения, показанном на фиг.8-10, части, соответствующие частям с фиг.1-7, обозначены теми же ссылочными позициями и опущено описание одинаковых частей. Во втором варианте осуществления изобретения различие с первым вариантом осуществления изобретения заключается в конфигурации блока 28 упрощенного квантования, блоке 41 квантования, блоке 29 упрощенного вычисления длины кода и блоке 42 вычисления длины кода для энтропийного кодирования, расположенном в блоке 2 второго предварительного кодирования.
Устройство 200 кодирования изображения и способ кодирования изображения, которые соответствуют рассматриваемому варианту осуществления изобретения, отличаются следующим.
То есть устройство 200 кодирования изображения осуществляет упрощенный процесс управления длиной кода с использованием способа сжатия изображения, описанного в стандарте MPEG4 AVC (Улучшенное кодирование видеосигнала: улучшенный стандарт кодирования со сжатием подвижного изображения) или подобного, при этом уменьшено количество аппаратных средств. Устройство 200 кодирования изображения представляет собой систему, способную выбрать один из двух способов энтропийного кодирования: контекстно-зависимое адаптивное бинарное арифметическое кодирование (САВАС) и контекстно-зависимое адаптивное кодирование с переменной длиной кодовых слов (CAVLC). Когда устройство 200 кодирования изображения осуществляет параллельное квантование с использованием различных значений квантования, что делается для вычисления длины кодов с целью предсказания длины генерируемого кода, устройство 200 кодирования изображения использует один способ кодирования для параллельной части, что делается для уменьшения масштаба схемы. То сеть в устройстве 200 кодирования изображения блок 28 упрощенного квантования в блоке 2 второго предварительного кодирования состоит из коллективно используемого блока 280 и блоков 28-1-28-3 квантования, что аналогично блоку 14 квантования блока 1 первого предварительного кодирования. Также в устройстве 200 кодирования изображения блок 29 упрощенного вычисления длины кода, предназначенный для вычисления длины упрощенного генерируемого кода с помощью CAVLC, состоит из коллективно используемого блока 290 вычислений и блоков 29-1-29-3 вычислений для процесса CAVLC, что аналогично блоку 15 вычислений для процесса CAVLC блока 1 первого предварительного кодирования. Блок 29-1 вычислений для процесса CAVLC вычисляет длину генерируемого кода исходя из предсказанного параметра QPd квантования. Блоки 29-2 и 29-3 вычислений для процесса CAVLC вычисляют длины генерируемых кодов исходя из параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования.
Более того, в устройстве 200 кодирования изображения предусмотрен только один каскад блока 42 вычисления длины кода для энтропийного кодирования, предназначенного для вычисления длины генерируемого кода с использованием CAVLC или САВАС, и переключение между CAVLC и САВАС выполняется в соответствии со способом основного кодирования, при этом вычисляют хорошо согласующуюся длину генерируемого кода исходя из предсказанного параметра QPd квантования. Также в случае когда для основного кодирования используется CAVLC, устройство 200 кодирования изображения предсказывает хорошо согласующиеся длины генерируемых кодов исходя из параметров QP квантования, отличающихся от предсказанного параметра QPd квантования, на основе разницы между длиной генерируемого кода, которая вычисляется блоком 29-1 вычислений для процесса CAVLC и которая основана на предсказанном параметре QPd квантования, и хорошо согласующейся длиной генерируемого кода, которая вычисляется блоком 42 вычисления длины кода для энтропийного кодирования и которая основана на предсказанном параметре QPd квантования. С другой стороны, в случае когда для основного кодирования используется САВАС, устройство 200 кодирования изображения вычисляет разницу (отношение) в длине генерируемого кода для CAVLC и для САВАС, тем самым предсказывая хорошо согласующуюся длину генерируемого кода для САВАС на основе хорошо согласующейся длины генерируемого кода для CAVLC. Соответственно, устройству 200 кодирования изображения не требуется схема для САВАС, которая расположена в параллельной части и предназначена для вычисления хорошо согласующихся длин генерируемых кодов исходя из параметров QP квантования, которые больше и меньше предсказанного параметра QPd квантования, тем самым уменьшается масштаб схемы.
На фиг.8 показана конфигурация устройства 200 кодирования изображения, которое соответствует варианту осуществления настоящего изобретения.
Блок 2 второго предварительного кодирования представляет собой модуль, предназначенный для осуществления второго предварительного кодирования, и содержит блок 21 обработки внутрикадрового предсказания, блок 22 ДКП, блок 41 квантования, блок 42 вычисления длины кода для энтропийного кодирования, буфер 25, блок 26 преобразования, обратного ДКП, блок 27 преобразования, обратного квантованию, и блок 29 упрощенного вычисления длины кода.
Блок 4 управления длиной кода представляет собой модуль, предназначенный для осуществления управления длиной кода.
2-2. Вычисление хорошо согласующейся длины генерируемого кода с использованием упрощенного CAVLC
Как описано выше, блок 28 упрощенного квантования отдельно выдает в качестве множителей коэффициент MF масштабирования и матрицу обратных элементов (1/Q Matrix) для матрицы Q Matrix квантования. Блок 28 упрощенного квантования порождает небольшую ошибку по сравнению с обычным блоком 300 квантования, что происходит из-за округления при выдаче матрицы обратных элементов для матрицы Q Matrix квантования. Так же блок 29 упрощенного вычисления длины кода порождает небольшую ошибку, происходящую из-за приравнивания количества nB примыкающих сверху ненулевых коэффициентов количеству пА примыкающих слева ненулевых коэффициентов в блоке 4×4, который расположен в верхнем конце МБ. Следовательно, устройство 200 кодирования изображения корректирует длины генерируемых кодов, вычисленные блоком 29 упрощенного вычисления длины кода для параметров QP квантования, близких к предсказанному параметру QPd квантования, при этом выполняется кодирование, совпадающее с основным кодированием, тем самым вычисляются хорошо согласующиеся длины генерируемых кодов.
В случае использования CAVLC для основного кодирования устройство 200 кодирования изображения вычисляет хорошо согласующиеся длины генерируемых кодов, близкие к предсказанному параметру QPd квантования исходя из отношения между хорошо согласующейся длиной генерируемого кода, которая вычислена блоком 42 вычисления длины кода для энтропийного кодирования и которая основана на предсказанном параметре QPd квантования, и длиной генерируемого кода, полученной с помощью упрощенного кодирования и вычисленной блоком 29-1 вычислений для процесса CAVLC и основанной на предсказанном параметре QPd квантования.
Предположим, что отношение между хорошо согласующейся длиной Generated_bits (QP_precode1) генерируемого кода обычного процесса (процесса, осуществленного блоком 42 вычисления длины кода для энтропийного кодирования) с предсказанным параметром QPd (QP_precode1) квантования и длиной Reduce_Generated_bits (QP_precode1) генерируемого кода упрощенного процесса (процесса, осуществленного блоком 29-1 вычислений для процесса CAVLC) является отношением R_reduction длин кодов, которое выражено следующей формулой:
R_reduction=Geberated_bits(QP_precode1)/Reduce_Generated_bits(QP_precode1).
Блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов исходя из параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования, с использованием отношения R_reduction длин кодов и длин генерируемых кодов, полученных в ходе упрощенного процесса. Здесь длины генерируемых кодов, полученные с использованием отношения R_reduction длин кодов и упрощенного процесса для параметра (QP_precode1-1) квантования, который меньше на единицу предсказанного параметра QPd квантования, и для параметра (QP_precode1+1) квантования, который больше на единицу предсказанного параметра QPd квантования, называются соответственно как длина Reduce_Generated_bits (QP_precode1-1) упрощенного генерируемого кода и длина Reduce_Generated_bits (QP_precodc1+1) упрощенного генерируемого кода. Учитывая, что отношения между длиной кода в обычном процессе и длиной кода в упрощенном процессе, по существу, равны в случае, когда параметры QP квантования близки друг к другу, блок 4 управления длиной кода предсказывает хорошо согласующиеся длины генерируемых кодов исходя из параметра (QP_precode1-1) квантования, который меньше на единицу предсказанного параметра QPd квантования, и параметра (QP_precode1+1) квантования, который больше на единицу предсказанного параметра QPd квантования, с использованием отношения R_reduction длин кодов исходя из предсказанного параметра QPd квантования.
В частности, предполагая, что хорошо согласующаяся длина генерируемого кода обычного процесса представляет собой Generated_bits, блок 4 управления длиной кода вычисляет хорошо согласующуюся длину Generated_bits (QP_precode1-1) генерируемого кода для параметра (QP_precode1-1) квантования, который меньше на единицу предсказанного параметра QPd квантования, в соответствии со следующим выражением:
Generated_bits(QP_precode1-1)=R_reduction×Reduce_Generated_bits(QP_precode1-1).
Блок 4 управления длиной кода вычисляет хорошо согласующуюся длину Generated_bits (QP_precode1+1) генерируемого кода для параметра (QP_precode1+1) квантования, который больше на единицу предсказанного параметра QPd квантования, в соответствии со следующим выражением:
Generated_bits(QP_precode1+1)=R_reduction×Reduce_Generated_bits(QP_precode1+1).
То есть блок 4 управления длиной кода умножает длины генерируемых кодов, полученные в ходе упрощенного процесса (процесса, выполненного блоками 29-2 и 29-3 вычислений для процесса CAVLC), на отношение R_reduction длин кодов, тем самым вычисляются хорошо согласующиеся длины генерируемых кодов для параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования.
Более того, как описано выше в первом варианте осуществления изобретения, блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов для других параметров QP квантования исходя из коэффициента DiffRatio колебаний для предсказанного параметра (QP_precode1) квантования и параметров QP (QP_precode1-1 и +1) квантования, которые меньше и больше предсказанного параметра QPd квантования.
Таким образом, устройство 200 кодирования изображения вычисляет длины генерируемых кодов с использованием упрощенного CAVLC (упрощенный процесс) исходя из предсказанного параметра QPd квантования и близких к нему параметров QP квантования. Устройство 200 кодирования изображения вычисляет хорошо согласующуюся длину генерируемого кода исходя из предсказанного параметра QPd квантования с использованием кодирования, аналогичного основному кодированию (обычный процесс).
Далее устройство 200 кодирования изображения вычисляет отношение R_reduction длин кодов между упрощенным процессом и обычным процессом и умножает отношение R_reduction длин кодов на длины генерируемых кодов, полученные в ходе упрощенного процесса на основе параметров QP квантования, близких к предсказанному параметру QPd квантования. Соответственно, устройство 200 кодирования изображения может корректировать ошибку, вызванную упрощенным процессом, и с высокой точностью вычислять хорошо согласующиеся длины генерируемых кодов для параметров QP квантования, близких к предсказанному параметру QPd квантования.
2-3. Вычисление хорошо согласующейся длины генерируемого кода с использованием САВАС
Как описано выше, процесс САВАС сложный и делает большим масштаб схемы. Далее в устройстве 200 кодирования изображения, так как для предсказанного параметра QPd квантования выполняется кодирование, аналогичное основному кодированию (то есть САВАС), то длина генерируемого кода, полученная в ходе CAVLC и вычисленная блоком 29 упрощенного вычисления длины кода, корректируется для параметров QP квантования, близких к предсказанному параметру QPd квантования, при этом вычисляется хорошо согласующаяся длина генерируемого кода в случае использования САВАС.
В случае использования САВАС для основного кодирования, блок 2 второго предварительного кодирования вычисляет только хорошо согласующуюся длину генерируемого кода исходя из предсказанного параметра QPd квантования путем фактического кодирования. В этом случае блок 4 управления длиной кода считает отношение R_reduction длин кодов равным отношению между хорошо согласующейся длиной Generated_bits (QP_precode1) генерируемого кода при предсказанном параметре QPd (QP_precode1) квантования и длиной Reduce_Generated_bits (QP_precode1) генерируемого кода упрощенного процесса (процесса, который выполняется блоком 29-1 вычислений для процесса CAVLC).
Далее, как в случае CAVLC, блок 4 управления длиной кода умножает длину генерируемого кода, полученную в ходе упрощенного процесса (процесса, выполненного блоками 29-2 и 29-3 вычислений для процесса CAVLC) на отношение R_reduction длин кодов, тем самым вычисляются хорошо согласующиеся длины генерируемых кодов для САВАС для параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования.
Более того, как описано выше в первом варианте осуществления изобретения, блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов для других параметров QP квантования исходя из коэффициента DiffRatio колебаний предсказанного параметра QPd (QP_precode1) квантования и параметров QP (QP_precode1-1 и +1) квантования, которые меньше и больше предсказанного параметра QPd квантования.
Таким образом, устройство 200 кодирования изображения вычисляет длины генерируемых кодов с использованием упрощенного CAVLC (упрощенный процесс) исходя из предсказанного параметра QPd квантования и близких к нему параметров QP квантования. Устройство 200 кодирования изображения вычисляет хорошо согласующуюся длину генерируемого кода исходя из предсказанного параметра QPd квантования с использованием САВАС (обычный процесс), то есть кодирования, аналогичного основному кодированию.
Далее устройство 200 кодирования изображения вычисляет отношение R_reduction длин кодов между упрощенным процессом и обычным процессом и умножает отношение R_reduction длин кодов на длины генерируемых кодов, полученные в ходе упрощенного процесса исходя из параметров QP квантования, близких к предсказанному параметру QPd квантования. Соответственно, устройство 200 кодирования изображения может предсказывать хорошо согласующуюся длину генерируемого кода, полученную в ходе САВАС с высокой точностью исходя из длины генерируемого кода, полученной в ходе упрощенного CAVLC (упрощенный процесс). То есть устройство 200 кодирования изображения может предсказывать хорошо согласующиеся длины генерируемых кодов, полученные в ходе САВАС, с высокой точностью исходя только из одной схемы САВАС, имеющей сложную конфигурацию, так что конфигурацию схемы можно значительно упростить по сравнению с первым вариантом осуществления изобретения, в котором были предусмотрены расположенные параллельно три схемы САВАС, соответствующие параметрам QP квантования, которые меньше и больше предсказанного параметра QPd квантования.
2-4. Процедура работы
Далее со ссылкой на блок-схему с фиг.9 и 10 будет описана процедура RT4 определения основного параметра квантования.
После начала работы процедуры RT4 определения основного параметра квантования блок 4 управления длиной кода устройства 200 кодирования изображения переходит к этапу S51. На этапе S51 блок 4 управления длиной кода вычисляет отношение ratio R_reduction длин кодов между упрощенным процессом, выполняемым блоком 29-1 вычислений для процесса CAVLC (показан черным квадратом на фиг.10), и обычным процессом, выполняемым блоком 42 вычисления длины кода для энтропийного кодирования (показан черным кругом на фиг.10) и затем переходит на следующий этап S52.
На этапе S52 блок 4 управления длиной кода умножает отношение R_reduction длин кодов на длины генерируемых кодов (отмеченные белыми квадратами на фиг.10) для параметров QP (QP_precode1-1 и +1) квантования, которые меньше и больше предсказанных параметров QPd квантования, полученных в ходе упрощенного процесса, тем самым вычисляют хорошо согласующиеся длины генерируемых кодов (показанные белыми кругами на фиг.10) для параметров QP (QP_precode1-1 и +1) квантования, которые меньше и больше предсказанного параметра QPd квантования. Более того, блок 4 управления длиной кода вычисляет хорошо согласующиеся длины генерируемых кодов (обозначенные треугольниками на фиг.10) для параметров QP квантования, близких к предсказанному параметру QPd квантования исходя из коэффициента DiffRatio колебаний длин генерируемых кодов для предсказанного параметра QPd квантования и параметров QP квантования, которые меньше и больше предсказанного параметра QPd квантования, и производится переход на следующий этап S53.
На этапе S53 блок 4 управления длиной кода определяет параметр QP квантования, соответствующий хорошо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода, и считает этот параметр QP квантования основным параметром QPMB квантования, и затем переходит на конечный этап для окончания процесса.
Кроме того, настоящее изобретение не ограничено описанными выше вариантами осуществления и приемлемы различные улучшения и изменения, не выходящие за границы объема изобретения.
Например, описанное выше устройство кодирования изображения и способ кодирования изображения также могут быть осуществлены в виде компьютерной программы, загруженной в устройство, или в виде носителя информации с программой, и в виде компьютерной программы, предназначенной для реализации способа, или в виде носителя информации с программой.
2-5. Функционирование и результат
В описанной выше конфигурации устройство 200 кодирования изображения определяет предсказанный параметр QPd квантования, служащий в качестве предсказанного показателя квантования, который предсказывается так, чтобы приближаться к основному параметру QPMB квантования, служащему в качестве основного показателя квантования, с помощью которого предсказывается длина генерируемого кода, полученная при основном кодировании входного изображения 91 в блоке 3 основного кодирования, и являющаяся наиболее близкой к целевой длине кода (этап S61 на фиг.11).
Исходя из предсказанного параметра QPd квантования и параметров QP квантования, близких к предсказанному параметру QPd квантования, устройство 200 кодирования изображения кодирует входное изображение 91 более простым образом по сравнению с кодированием, осуществляемым блоком 41 квантования и блоком 42 вычисления длины кода для энтропийного кодирования (осуществляет упрощенный процесс), тем самым вычисляются длины генерируемых кодов, полученные в ходе упрощенного кодирования (этап S62). Устройство 200 кодирования изображения кодирует входное изображение 91 исходя из предсказанного параметра QPd квантования (осуществляет обычный процесс), тем самым вычисляет длину генерируемого кода, полученную в ходе обычного процесса (этап S63).
Устройство 200 кодирования изображения вычисляет отношение R_reduction длины Reduce_Generated_bits (QP_precode1) генерируемого кода исходя из параметра QPd квантования, который получен в ходе упрощенного процесса, и длины Generated_bits (QP_precode1) генерируемого кода, основанного на параметре QPd квантования, который получен в ходе обычного процесса (этап S64).
Устройство 200 кодирования изображения умножает отношение R_reduction длин кодов на длины Reduce_Generated_bits (QP_precode1+1, -1) генерируемых кодов, основанные на параметрах QP квантования, близких к предсказанному параметру QPd квантования, тем самым корректируются длины Reduce_Generated_bits (QP_precode1+1, -1) генерируемых кодов, основанные на параметрах QP квантования, близких к предсказанному параметру QPd квантования (этап S65).
Соответственно устройство 200 кодирования изображения может выполнять кодирование, аналогичное основному кодированию, только для предсказанного параметра QPd квантования, так что может быть упрощена конфигурация схемы блока 2 второго предварительного кодирования при поддержании точности хорошо согласующихся длин генерируемых кодов.
Устройство 200 кодирования изображения кодирует входное изображение 91 простым образом с использованием кодирования с переменной длиной кодовых слов (CAVLC) (упрощенный процесс) и кодирует входное изображение 91 с использованием арифметического кодирования (САВАС) (обычный процесс).
Соответственно, в устройстве 200 кодирования изображения для параметров QP квантования, близких к предсказанному параметру QPd квантования, процесс CAVLC может быть использован как замена процессу САВАС, для которого сложна конфигурация схемы, таким образом конфигурация схемы может быть упрощена.
Устройство 200 кодирования изображения кодирует входное изображение 91 более простым образом по сравнению с кодированием (обычный процесс) с использованием упрощенного CAVLC (упрощенный процесс).
Соответственно, в устройстве 200 кодирования изображения может быть упрощена конфигурация блока 29 упрощенного вычисления длины кода.
Устройство 200 кодирования изображения кодирует более простым образом по сравнению с основным кодированием, данные по объекту кодирования (коэффициенты, прошедшие квантование), основанные на входном изображении 91, которое построчно сканируют для получения блоков МБ, каждый из которых служит в качестве сканируемого блока, состоящего из множества блоков 4×4, при этом отсканированные блоки 4×4, служащие в качестве кодируемых блоков, состоят из множества пикселей. Устройство 200 кодирования изображения выбирает таблицу VLC, соответствующую среднему арифметическому кодируемых значений (числа nB и nA ненулевых коэффициентов), к которым применяют кодирование с переменной длиной кодовых слов в примыкающих сверху и примыкающих слева блоках 4×4 для блока 4×4, являющегося объектом кодирования. В случае когда блок 4×4, используемый как объект кодирования, расположен в верхнем конце МБ, устройство 200 кодирования изображения присваивает количеству nA ненулевых коэффициентов примыкающего сверху блока 4×4 количество nB ненулевых коэффициентов примыкающего слева блока 4×4, тем самым кодирование входного изображение 91 производится более простым образом (упрощенный процесс).
При кодировании входного изображения 91 (обычный процесс) устройство 200 кодирования изображения выбирает таблицу VLC, соответствующую среднему арифметическому значений nB и nA ненулевых коэффициентов, к которым применяют кодирование с переменной длиной кодовых слов в примыкающих сверху и примыкающих слева блоках 4×4 для блока 4×4, являющегося объектом кодирования, что делают независимо от положения блока 4×4 в МБ.
Соответственно, в устройстве 200 кодирования изображения в блоке 29 упрощенного вычисления длины кода может быть опущена память строк, служащая для хранения одной строки количеств nB ненулевых коэффициентов блока 4×4, расположенного в нижнем конце МБ, так что может быть упрощена конфигурация блока 29 упрощенного вычисления длины кода.
Устройство 200 кодирования изображения кодирует более простым образом по сравнению с основным кодированием, входное изображение 91 в ходе упрощенного квантования, выполненного блоком 28 упрощенного квантования. То есть устройство 200 кодирования изображения хранит первые множители (коэффициенты MF масштабирования), соответствующие комбинации положений (адреса ДКП) в блоке 4×4 и параметры QP квантования, определяет коэффициенты MF масштабирования, доступные согласно всем параметрам QP квантования на основе положений в блоке 4×4, и выдает определенные коэффициенты MF масштабирования. Устройство 200 кодирования изображения выбирает коэффициенты MF масштабирования в соответствии с параметрами QP квантования, которые предполагается использовать из выданных коэффициентов MF масштабирования, которые предоставлены параллельно и количество которых совпадает с количеством элементов во множестве данных по объекту кодирования (коэффициентов ДКП). Устройство 200 кодирования изображения сдвигает вправо на количество цифр в соответствии с параметрами QP квантования, умноженное значение блока 4×4, которые предоставлены параллельно, при этом их количество совпадает с количеством элементов во множестве данных по объекту кодирования (коэффициентов ДКП).
Соответственно, в устройстве 200 кодирования изображения часть блока 28 упрощенного квантования (коллективно используемый блок 28) может быть использована коллективно, так что конфигурация блока 28 упрощенного квантования может быть упрощена.
Устройство 200 кодирования изображения хранит обратные значения для матриц Q Matrix квантования, служащих в качестве вторых множителей согласно комбинациям матриц Q Matrix квантования и положениям в блоке 4×4, определяет обратные значения для матриц Q Matrix квантования, доступных в соответствии со всеми матрицами Q Matrix квантования исходя из положений (адрес ДКП) в блоке 4×4, и выдает определенные обратные значения для матриц Q Matrix квантования. Среди выданных обратных значений для матриц Q Matrix квантования устройство 200 кодирования изображения выбирает обратные значения для матриц Q Matrix квантования в соответствии с матрицами Q Matrix квантования, которые будут использованы.
Соответственно, устройство 200 кодирования изображения может уменьшить количество комбинаций по сравнению со случаем хранения множителей (MF*16/QMatrix) и может уменьшить емкость памяти, нужную для ОЗУ 102 коэффициента масштабирования и ОЗУ 103 1/матрица.
Устройство 200 кодирования изображения вычисляет хорошо согласующиеся длины Generated_bits (QP) генерируемых кодов исходя из параметров QP квантования, отличающихся от предсказанного параметра QPd квантования, и параметров QP квантования, близких к предсказанному параметру QPd квантования исходя из коэффициента DiffRatio колебаний между скорректированными хорошо согласующимися длинами Generated_bits (QP_precode1+1, -1) генерируемых кодов, которые основаны на параметрах QP квантования, близких к предсказанному параметру QPd квантования, и хорошо согласующейся длиной Generated_bits (QP_precode1) генерируемого кода, который основан на предсказанном параметре QPd квантования, вычисленным блоком 42 вычисления длины кода для энтропийного кодирования.
Соответственно, устройство 200 кодирования изображения может вычислять хорошо согласующиеся длины Generated_bits (QP) генерируемых кодов с высокой точностью также для параметров QP квантования, для которых блок 2 второго предварительного кодирования не осуществляет фактическое кодирование.
Устройство 200 кодирования изображения определяет в качестве основного параметра QPMB квантования параметр QP квантования, соответствующий длине генерируемого кода, которая наиболее близка к целевой длине кода среди хорошо согласующейся длины Generated_bits (QP_precode1) генерируемого кода, основанного на предсказанном параметре QPd квантования, скорректированных длин Generated_bits (QP_precode1+1, -1) генерируемых кодов, которые основаны на параметрах QP квантования, близких к предсказанному параметру QPd квантования, и длин Generated_bits (QP) генерируемых кодов, которые основаны на параметрах QP квантования, отличающихся от предсказанного параметра QPd квантования, и параметров QP квантования, близких к предсказанному параметру QPd квантования.
Соответственно, устройство 200 кодирования изображения может определить основной параметр QPMB квантования на основе хорошо согласующихся длин генерируемых кодов, вычисленных с высокой точностью, и таким образом может выбрать надлежащий основной параметр QPMB квантования.
Устройство 200 кодирования изображения осуществляет основное кодирование входного изображения 91 исходя из определенного основного параметра QPМВ квантования.
Соответственно, устройство 200 кодирования изображения может выполнить основное кодирование исходя из определенного основного параметра QP MB квантования, так что длину генерируемого кода для основного кодирования можно регулировать так, чтобы она была близка к целевой длине кода.
Согласно описанной выше конфигурации, устройство 200 кодирования изображения кодирует входное изображение 91 исходя из предсказанного параметра QPd квантования с использованием обычного процесса, аналогичного при основном кодировании, при кодировании входного изображения 91 более простым образом (упрощенный процесс) на основе предсказанного параметра QPd квантования и параметров QP квантования, близких к предсказанному параметру QPd квантования. Устройство 200 кодирования изображения вычисляет отношение R_reduction длин кодов между хорошо согласующейся длиной генерируемого кода, полученной в ходе обычного процесса, исходя из предсказанного параметра QPd квантования, и длиной генерируемого кода, полученной в ходе упрощенного процесса, исходя из предсказанного параметра QPd квантования. Устройство 200 кодирования изображения использует свойство, заключающееся в том, что отношение длин кода между длиной генерируемого кода в обычном процессе и длиной генерируемого кода в упрощенном процессе, по существу, постоянно для параметров QP квантования, близких к предсказанному параметру QPd квантования. Устройство 200 кодирования изображения вычисляет хорошо согласующуюся длину генерируемого кода на основе параметров QP квантования, близких к предсказанному параметру QPd квантования, и исходя из отношения R_reduction длин кодов и длин генерируемых кодов, которые получены в ходе упрощенного процесса, основанного на параметрах QP квантования, близких к предсказанному параметру QPd квантования.
Соответственно, устройство 200 кодирования изображения может выполнить кодирование, аналогичное основному кодированию, только для предсказанного параметра QPd квантования и может выполнить упрощенное кодирование для параметров QP квантования, близких к предсказанному параметру QPd квантования. Следовательно, в настоящем изобретении может быть реализовано устройство обработки изображения и способ обработки изображения с упрощенной конфигурацией схемы.
3. Другие варианты осуществления изобретения
Кроме того, в описанном выше первом варианте осуществления изобретения было дано описание случая использования в качестве данных по объекту кодирования коэффициентов, прошедших квантование и полученных при выполнении процесса ДКП, как ортогонального преобразования, для данных разности изображений, основанных на внутрикадровом предсказании и дальнейшем выполнении квантования. Настоящее изобретение этим не ограничивается. Например, входное изображение 91 может быть использовано в качестве данных по объекту кодирования. В качестве входного изображения 91 могут быть использованы данные, к которым применили любой один или два способа внутрикадрового предсказания, ортогональное преобразование и квантование и более того могут быть использованы данные, к которым был применен другой процесс. Конечно, в качестве ортогонального преобразования может быть использовано вейвлет-преобразование или аналогичные преобразования.
Также в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда блок 4×4 использовался в качестве кодируемого блока, служащего в качестве объекта кодирования. Настоящее изобретение этим не ограничивается. Например, в качестве кодируемого блока может быть использован другой блок, такой как блок 8×8 или блок 2×2.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда количество ненулевых коэффициентов использовалось в качестве кодируемого значения. Настоящее изобретение этим не ограничивается. Например, в качестве кодируемого значения могут быть использованы различные значения, соответствующие способу кодирования, такие как количество нулевых прогонов.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда nC=nA+nB используется в качестве среднего значения кодируемых значений. Настоящее изобретение этим не ограничивается и nC=nA+nB+1 может быть использовано в качестве среднего значения для кодируемых значений для удобства округления при вычислениях.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда настоящее изобретение применяется для упрощенного кодирования с целью вычисления грубо согласующихся длин генерируемых кодов в блоке 1 первого предварительного кодирования. Настоящее изобретение этим не ограничивается. Например, настоящее изобретение может быть применено для вычисления хорошо согласующихся длин генерируемых кодов в блоке 2 второго предварительного кодирования. Конечно, также приемлемо использование в блоке 3 основного кодирования. Также настоящее изобретение может быть применено для устройств кодирования изображения различных конфигураций, отличающихся от устройства 100 кодирования изображения, содержащего блок 1 первого предварительного кодирования, блок 2 второго предварительного кодирования и блок 3 третьего предварительного кодирования.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда предусмотрены блок 14 квантования и блок 15 вычислений для процесса CAVLC, конфигурации которых показаны на фиг.4 (содержат коллективно используемый блок). Настоящее изобретение этим не ограничивается и могут быть предусмотрены блок 14 квантования и блок 15 вычислений для процесса CAVLC, конфигурации которых отличаются от упомянутых.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда коэффициенты MF масштабирования и обратные элементы для элементов из матриц Q Matrix квантования хранятся отдельно в коллективно используемом блоке 150 коэффициентов. Настоящее изобретение этим не ограничивается и значения, вычисленные умножением коэффициентов MF масштабирования на обратные элементы для элементов из матриц Q Matrix квантования могут храниться в виде множителей. В этом случае все множители, доступные в соответствии с адресами ДКП, являются выходом и блок выбора выбирает множитель в соответствии с параметром QP квантования и матрицей квантования.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда вместо устройств деления предусмотрены вычитающие устройства с десятиступенчатой конфигурацией. Настоящее изобретение этим не ограничивается. Изобретение не ограничивает количество вычитающих устройств и также могут быть использованы устройства деления.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда только половина коэффициентов ДКП, отвечающих малым частотам, делятся на коэффициенты RF изменения масштаба. Настоящее изобретение этим не ограничивается. Например, одна треть или две трети коэффициентов ДКП, отвечающих малым частотам (первая сканируемая часть), могут быть использованы в качестве первой части.
Более того, в описанном выше втором варианте осуществления изобретения было дано описание случая, когда в качестве блока для квантования используется блок 4×4. Настоящее изобретение этим не ограничивается. Например, в качестве блока для квантования могут быть использованы блоки различных размеров, таких как 8×8 и 16×16.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда настоящее изобретение применяется для AVC. Настоящее изобретение этим не ограничивается и настоящее изобретение может быть применено для различных способов кодирования для адаптивного выбора таблиц VLC. Например, в случае применения настоящего изобретения для MPEG-2 в качестве показателя квантования используют шкалу квантования.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда длина генерируемого кода для каждого кадра сдерживается так, чтобы соответствовать целевой длине кода. Настоящее изобретение этим не ограничивается. Например, длина генерируемого кода для каждого слоя может сдерживаться так, чтобы соответствовать целевой длине кода.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда устройство 100 кодирования изображения, служащее в качестве устройства обработки изображения, содержало ПЗУ 207 длины в битах TotalCoefLength, которое служит в качестве блока выбора таблицы кода с переменной длиной кодовых слов и блока кодирования с переменной длиной кодовых слов. Настоящее изобретение этим не ограничивается. Устройство обработки изображения может содержать блок выбора таблицы кода с переменной длиной кодовых слов и блок кодирования с переменной длиной кодовых слов, которые имеют другие конфигурации.
Более того, в описанном выше втором варианте осуществления изобретения было дано описание случая вычисления блоком 2 второго предварительного кодирования длин генерируемых кодов на основе параметров QP квантования, которые меньше и больше предсказанного параметра QP квантования и которые используются в качестве параметров квантования, близких к предсказанному параметру QP квантования. Настоящее изобретение этим не ограничивается. Например, могут быть вычислены длины генерируемых кодов, основанные на вторых параметрах квантования, которые меньше и больше предсказанного параметра квантования.
Более того, в описанном выше втором варианте осуществления изобретения было дано описание случая вычисления хорошо согласующихся длин генерируемых кодов для параметров QP квантования, для которых длины генерируемых кодов не были вычислены на основе коэффициента колебаний длин генерируемых кодов исходя из предсказанного параметра квантования и параметров QP квантования, которые меньше и больше предсказанного параметра QP квантования. Настоящее изобретение этим не ограничивается. Например, блоки 28-1 и 28-n квантования и блоки 29-1 и 29-n вычислений для процесса CAVLC могут иметь конфигурацию, состоящую из четырех или более каскадов, и очень хорошо согласующиеся длины генерируемых кодов для параметров QP квантования, близких к предсказанному параметру QPd квантования, могут быть вычислены исходя из длины генерируемого кода, полученной в ходе упрощенного кодирования и отношения R_reduction длин кодов.
Более того, в описанном выше втором варианте осуществления изобретения было дано описание случая, когда блок 2 второго предварительно кодирования содержит блок 28 упрощенного квантования и блок 29 упрощенного вычисления длины кода, предназначенных для осуществления упрощенного процесса. Настоящее изобретение этим не ограничивается и блок 2 второго предварительно кодирования может содержать, по меньшей мере, один из указанных блоков. Также в настоящем изобретении может быть выполнен любой из следующих процессов: упрощенный процесс с CAVLC и упрощенный процесс с САВАС.
Более того, в описанных выше первом и втором вариантах осуществления изобретения было дано описание случая, когда параметр QP квантования, соответствующий хорошо согласующейся длин генерируемого кода, которая наиболее близка к целевой длине кода, считают основным параметром QPMB квантования. Настоящее изобретение этим не ограничивается. Например, основным параметром QP MB квантования может считаться параметр QP квантования, соответствующий хорошо согласующейся длине генерируемого кода, которая наиболее близка к целевой длине кода из хорошо согласующихся длин генерируемых кодов, меньших длины генерируемых кодов.
Более того, в описанном выше втором варианте осуществления изобретения было дано описание случая, когда устройство 200 кодирования изображения, служащее в качестве устройства обработки изображения, содержало блок 1 первого предварительного кодирования и блок 4 управления длиной кода, который служит в качестве блока определения предсказанного показателя квантования, блок 28 упрощенного квантования и блок 29 вычислений для процесса CAVLC, служащий в качестве блока упрощенного кодирования, блок 41 квантования и блок 42 вычисления длины кода для энтропийного кодирования, который служит в качестве блока кодирования, и блок 4 управления длиной кода, служащий в качестве блока вычисления отношения длин кодов, и блок корректировки. Настоящее изобретение этим не ограничивается и устройство обработки изображения, соответствующее настоящему изобретению, может содержать блок определения предсказанного показателя квантования, блок упрощенного кодирования, блок кодирования, блок вычисления длины кода и блок корректировки, которые имеют другие конфигурации.
Класс H04N7/46 с использованием субдискретизации на входе кодера и восстановления образца интерполяцией на входе кодера или декодера
Класс H03M7/42 с использованием обращений к таблице в процессе кодирования или декодирования, например с использованием постоянного ЗУ