Основанное на контексте адаптивное неравномерное кодирование для адаптивных преобразований блоков

Иллюстрации

Показать все

Изобретение относится к области кодирования и сжатия видеосигнала. Технический результат заключается в уменьшении числа битов, требуемых для представления квантованных коэффициентов, получаемых после выполнения блочного преобразования крупнее 4 × 4. Способ и система кодирования изображения с помощью основанного на контексте адаптивного неравномерного кодирования, согласно которому коэффициенты преобразования разделяют на блоки, имеющие размер блока 4n×4m (где n, m являются положительными целыми числами, равными 1 или больше 1), каждый блок сканируют зигзагообразно для получения упорядоченного вектора коэффициентов, имеющего длину 16n×m, упорядоченный вектор подвергают субдискретизации перемежаемым образом для получения субдискретизированных последовательностей коэффициентов преобразования до кодирования коэффициентов преобразования с помощью статистического кодера. 6 н. и 14 з.п. ф-лы, 11 ил.

Реферат

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

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

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

Обычный видеокодер делит каждую группу данных исходной видеопоследовательности на смежные прямоугольные участки, называемые «блоками». Эти блоки кодируют во «внутреннем режиме» (I-режиме) и в «межрежиме» («Р-режиме»). Для Р-режима: кодер сначала отыскивает блок, аналогичный кодируемому блоку, в предыдущей переданной «эталонной группе данных», обозначаемой как Fref. Поиски обычно ограничиваются рамками определенного пространственного смещения из кодируемого блока. При установлении наилучшего совпадения, или «предсказания», оно выражается в виде двухмерного (2М) вектора движения (Δx, Δy), где Δх - горизонтальное, и Δу - вертикальное смещение. Векторы движения совместно с эталонной группой используются для создания предсказанного блока Fpred.

Fpred (х, у) = Fref (х + Δx, y + Δy)

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

Для блоков, кодируемых в I-режиме: предсказанный блок формируется с помощью пространственного предсказания из предыдущих кодированных соседних блоков в той же группе данных. И для I-режима, и для Р-режима погрешность предсказания, т.е. разница между кодируемым сейчас блоком и предсказанным блоком, представлена как множество взвешенных базисных функций некоторого дискретного преобразования. Преобразования обычно выполняют на основе блоков 8 х 8 или 4 х 4. Весовые значения - коэффициенты преобразования - затем квантуют. Квантование сопряжено с потерей информации, и поэтому квантованные коэффициенты имеют меньшую точность, чем исходные.

Квантованные коэффициенты преобразования и векторы движения являются примерами «элементов синтаксиса». Это, и плюс управляющая информация, образуют полное кодированное представление видеопоследовательности. До передачи из кодера в декодер все элементы синтаксиса подвергают статистическому кодированию, тем самым еще более уменьшая число битов, нужных для их представления. Статистическое кодирование является выполняемой без потерь операцией, целью которой является сведение к минимуму числа битов, требуемых для представления передаваемых или запоминаемых символов (в нашем случае - элементов синтаксиса) за счет использования свойств их распределения (некоторые символы появляются чаще других).

Одним из способов статистического кодирования, используемых видеокодерами, является использование неравномерных кодов (кодов переменной длины) (КПД). КПД-кодовое слово, являющееся последовательностью битов (нулей и единиц), назначают каждому символу. КПД создают таким образом, что значения длины кодового слова соответствуют частоте появления данного символа, представленного данным кодовым словом, например - чаще появляющиеся символы представлены более короткими КПД-кодовыми словами. Причем КПД надо создать таким, чтобы кодовые слова декодировались особо, т.е. если декодер принимает действительную последовательность битов конечной длины, то при этом должна быть только одна возможная последовательность входных символов, которая, будучи кодированной, даст принятую последовательность битов.

Для правильного декодирования потока битов: и кодер, и декодер должны использовать один и тот же набор КПД-кодовых слов и использовать одно и то же назначение символов для них. Как упоминалось выше, для доведения до максимума сжатия нужно наиболее часто появляющимся символам назначить самые короткие КПД-кодовые слова. Но частота (вероятность) разных символов зависит от фактической сейчас кодируемой группы данных. Если используются единый набор КПД-кодовых слов и для этих кодовых слов осуществляют неизменное назначение символов, то вероятно, что распределение вероятностей символов в данной группе данных будет отличаться от вероятностей, предполагаемых для КПД, даже если средняя вероятность символов во всей последовательности может и не отличаться. Следовательно, применение единого набора КПД-кодовых слов и единое назначение символов для этих кодовых слов понижают эффективность кодирования.

Для решения этой проблемы используются разные способы адаптации. Ниже излагается один из методов, предполагающий приемлемую сложность вычислений и хороший компромисс сжатия за счет снижения эффективности; этот метод в настоящее время используется в видеокодерах известного уровня техники. Для данного набора символов предусматриваются таблицы, определяющие КПД-кодовые слова и используемые в кодере и декодере. Поэтому таблица, выбранная для кодирования определенного символа, зависит от информации, известной и кодеру, и декодеру, например тип кодируемого блока (блок I- или Р-типа), кодируемая сейчас составляющая (составляющая яркостного сигнала или составляющая сигнала цветности), значение параметра квантования (КП). Рабочие характеристики зависят от следующего: насколько хорошо характеризуют статистику символов параметры, используемые для коммутации между КПД.

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

Коэффициентом сжатия, т.е. отношением числа использованных для представления исходной последовательности битов и числа использованных для представления сжатой последовательности битов, можно управлять путем регулирования значения параметра квантования (ПК), используемого при квантовании коэффициентов преобразования. Коэффициент сжатия также зависит от применяемого способа статистического кодирования.

Коэффициенты в данном блоке упорядочивают (сканируют) зигзаговым сканированием, в результате чего получают одномерный упорядоченный вектор коэффициента. Пример зигзагового сканирования для блока 4 х 4 показан на Фиг. 1.

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

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

Основанное на контексте адаптивное неравномерное кодирование (ОКАНК) является способом кодирования коэффициентов преобразования, используемых в JVT-кодере "Joint Final Committee Draft (JFCD) of Joint Video Specification (ITU-Т Rec. H.| ISO/IEC 14496-10 AVC". Вкратце, кодирование единого блока 4 х 4 с помощью ОКАНК предусматривает пять этапов:

1. Кодирование полного числа ненулевых коэффициентов в блоке, в сочетании с числом «концевых коэффициентов». Число концевых коэффициентов определяется как число коэффициентов с величиной в единицу, которые появляются, когда вектор коэффициента считывается в обратном порядке (т.е. 15, 14, 13, 12, 11, ... на Фиг. 1). КПД для кодирования этой информации основан на предсказанном числе ненулевых коэффициентов в предыдущих кодированных соседних блоках (верхний и левый блоки).

2. Кодирование знака любых концевых коэффициентов.

3. Кодирование уровней (величин) ненулевых коэффициентов, не являющихся концевыми коэффициентами.

4. Кодирование числа ненулевых коэффициентов в векторе коэффициента перед последним ненулевым коэффициентом, т.е. суммы всех «прогонов». КПД, используемый при кодировании этого значения, зависит от общего числа ненулевых коэффициентов в блоке, поскольку имеется некоторая взаимосвязь между этими двумя значениями.

5. Кодирование прогона, который появляется перед каждым ненулевым коэффициентом, начиная с последнего ненулевого значения в векторе коэффициентов.

Используемый для кодирования прогона КПД выбирают исходя из суммы прогонов этапа (4) и суммы к этому времени кодированных прогонов. Например, если блок имеет некоторую «сумму прогонов» 8 и первый кодированный прогон 6, то все остальные прогоны должны быть 0, 1 или 2. Поскольку возможная длина прогона становится все более короткой, поэтому более эффективные КПД-коды выбирают для сведения к минимуму числа битов, нужных для представления прогона.

Обычный работающий поблочно видеокодер показан на Фиг. 2. Согласно Фиг. 1 видеосервер 100 содержит блок 10 входных каскадов, принимающий видеосигналы 110 от видеоисточника, и мультиплексный видеокодер 40. Каждая группа данных несжатых видеосигналов, поступающих из видеоисточника на вход 110, принимается и обрабатывается в порядке «макроблок за макроблоком» согласно порядку «развертка-сканирование». Блок 10 входных каскадов содержит блок 12 управления кодированием для коммутации между I-режимом и Р-режимом и для согласования синхронизации с мультиплексным кодером 40 с помощью управляющих сигналов 120; модуль 16 дискретного косинусного преобразования (ДКП); и квантователь 14 для обеспечения квантованных коэффициентов ДКП. Квантованные коэффициенты 122 ДКП направляются в мультиплексный кодер 40. Блок 10 входных каскадов также содержит обращенный квантователь 18 и блок 20 обращенного преобразования для выполнения обратного поблочного дискретного косинусного преобразования (ОПДКП); и модуль 22 предсказания и оценки компенсации движения для уменьшения временной избыточности в видеопоследовательностях и для обеспечения группы данных (кадра) погрешности предсказания в целях предсказания погрешности и компенсации. Модуль 22 оценки движения также обеспечивает вектор 124 движения для каждого макроблока мультиплексному кодеру 40. Мультиплексный кодер 40 обычно содержит модуль сканирования 42 для выполнения зигзагового сканирования в целях формирования упорядоченного вектора для каждого блока данных изображения; модуль статистического кодирования для обозначения ненулевых квантованных ДКП-коэффициентов параметрами прогона и уровня. Значения прогона и уровня также отображаются в последовательность буферов, каждой из которых назначается т.н. «контекст» с помощью модуля 46 назначения контекста. Контексты, вместе с вектором движения, форматируют в поток 140 битов. Контекстный декодер известен из уровня техники. Модуль 16 преобразования может быть также модулем быстрого преобразования Фурье (БПФ) или модулем дискретного преобразования Фурье (ДПФ); и ДКП может быть аппроксимацией ДКП.

Обычный декодер показан на Фиг. 3. Клиент 200 имеет мультиплексный видеодекодер 60, который принимает кодированный поток 140 битов видеосигнала от кодера 40. Декодер 60 также декодирует группу данных I-режима на основе «макроблок за макроблоком». Исходя из КПД-кодовых слов в потоке 140 битов модуль 62 выделения коэффициента в декодере 60 восстанавливает значения прогона и уровня и затем восстанавливает совокупность квантованных ДКП-коэффициентов 162 для каждого блока данного макроблока. Кодированную информацию вектора движения, относящуюся к данному макроблоку, выделяют из кодированного потока 140 битов видеосигнала. Выделенный вектор 166 движения, вместе с восстановленными квантованными ДКП-коэффициентами 162, направляют в блок 80 выходных каскадов. Обращенный квантователь 84 подвергает обращенному квантованию квантованные ДКП-коэффициенты 162, представляющие информацию погрешности предсказания для каждого блока, и направляет результаты в обращенный преобразователь 86. С помощью управляющей информации, предоставляемой блоком 82 управления кодированием, совокупность восстановленных значений погрешности предсказания для каждого блока данного макроблока получают в целях обеспечения видеосигналов 180.

В настоящее время видео- и неподвижные изображения обычно кодируют поблочным преобразованием в частотную область. Этот способ кодирования используется в стандарте H.26L (или в будущем Н.264), разработанном в Joint Video Team (JVT). В этом способе изображение сначала подразделяют на блоки размером 4 х 4 минимальных элементов изображения (пикселов), и эти блоки преобразуют в матрицу 4 х 4 коэффициентов преобразования. Эти коэффициенты затем располагают с помощью сканирования по зигзаговой траектории, и при этом низкочастотные коэффициенты в сканировании помещаются первыми, чтобы сформировать упорядоченную последовательность коэффициентов преобразования - одномерный вектор. Матрица 4 х 4 коэффициентов преобразования согласно Фиг.1 даст одномерную совокупность или последовательность 1, 2, 5, 9, 6, 3, 4, 7, 10, 13, 14, 11, 8, 12, 15, 16. Эта методика рациональна, поскольку следующий этап заключается в кодировании квантованных значений ДКП-коэффициентов кодированием по длине прогона, в результате чего наиболее вероятные прогоны будут представлены короткими кодами (кодирование по способу Хаффмена или арифметическое кодирование). Расположенные таким образом, многие коэффициенты в конце сканирования обычно заканчиваются нулевыми коэффициентами. Таким образом, коэффициенты кодируются с высокой эффективностью. Неравномерное кодирование означает, что не все символы имеют одинаковую длину (в битах). Кодирование по способу Хаффмена является примером неравномерного кодирования. Арифметическое кодирование несколько отличается тем, что предполагает ряд символов. Так, обычно невозможно описать длину ОДНОГО символа как требующего Х битов. Определенный ряд символов скорее требует Y битов. По этой причине термин «статистическое кодирование», вероятно, будет более общим термином, чем «неравномерное кодирование».

Описываемый выше способ кодирования используется для получения блочного преобразования элементов изображения 4 × 4. Но ОКАНК может включать в себя коэффициенты преобразования в блоки, более крупные чем 4 x 4. Например, JVT-кодер имеет характеристику, называемую «адаптивными блочными преобразованиями» («АБП»), согласно которой выполняют преобразования блоков 4 x 8, 8 x 4 и 8 x 8. То есть способ кодирования, рассчитанный на блоки 4 x 4, здесь уже не является применимым. Эта проблема решается разбиением более крупного блока на подблоки размером 4 x 4.

Имеется решение, согласно которому АБП-блок коэффициентов разделяют на блоки 4 x 4 в пространственной области. Например, блок 8 x 8, показанный на Фиг. 4, имеет один из порядков сканирования, используемых для этого блока в JVT-кодере. Тот же блок, разделенный на четыре блока 4 x 4, показан на Фиг. 5а-5с. Затем каждый блок 4 x 4 подвергают зигзаговому сканированию при помощи сканирования 4 x 4, с получением множества векторов с длиной 16. Эти векторы с длиной 16 затем обрабатываются стандартным алгоритмом ОКАНК 4 x 4. Если сканирование 4 x 4, показанное на Фиг. 1, используют для блоков 4 x 4, показанных на Фиг. 5а-5с, то получаемые при этом векторы представлены на Фиг. 6а и 6с.

Этот известный ОКАНК-алгоритм делает определенные допущения в отношении содержания вектора коэффициентов. Если эти допущения нарушаются, то таблицы кодирования (т.е. таблицы, определяющие конкретное кодовое слово для использования в описании каждого символа), используемые в ОКАНС, «рассогласуются». Это означает, что длина кодовых слов в таблице более не отражает точно вероятность данного символа, и поэтому ОКАНК является менее эффективным.

В результате этой известной методики каждый из блоков 4 x 4, созданный после разделения АБП-блока, имеет коэффициенты, соответствующие разным частотам в АБП-преобразовании. Например, блок 4 x 4 согласно Фиг. 5а содержит низкочастотную информацию (и горизонтально, и вертикально), и поэтому - большинство коэффициентов высокой амплитуды. Аналогично, блок 4 x 4 согласно Фиг. 5d содержит высокочастотную информацию и низкоамплитудные коэффициенты. ОКАНК-алгоритм предполагает, что более высокие значения обычно встречаются в начале вектора, и, что более важно, предполагается, что более длинные прогоны нулей будут обычно происходить к концу вектора. Статистически маловероятно, что блок 4 x 4 согласно Фиг. 5d будет содержать много значений в блоке 4 x 4 Фиг. 5а; и «дальние» значения, вероятно, будут содержать длинные относящиеся к ним прогоны нулей. Хотя блок 4 x 4 согласно Фиг. 5d может содержать один или два ненулевых коэффициента, местоположения этих коэффициентов не согласуются с теми, которые ожидает ОКАНК, и последующее кодирование этого блока требует непропорционально большое число битов.

ОКАНК-способ также предполагает, что соседние блоки имеют аналогичное число ненулевых коэффициентов. Для блоков с коэффициентами, соответствующими разным частотам функций преобразования, число ненулевых коэффициентов значительно изменяется. Это может привести с неверному выбору КПД-таблицы, используемой для кодирования данного числа ненулевых коэффициентов данного блока, т.к. этот выбор основан на числе ненулевых коэффициентов его соседей.

Таким образом, эта известная методика разделения блока не является оптимальным решением с точки зрения эффективности кодирования и точности квантования.

Целесообразно и желательно обеспечить более эффективные способ и систему для кодирования видеосигналов и изображения, которые можно будет применить для АБП-блоков, имеющих общий размер (4n) x (4m), где n и m - положительные целые числа, равные 1 или имеющих значение выше 1.

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

Основная задача данного изобретения заключается в уменьшении числа битов, требуемых для представления квантованных коэффициентов, получаемых после выполнения блочного преобразования крупнее 4 x 4. Точнее, задача заключается в уменьшении числа битов, нужных для представления коэффициентов, получаемых при преобразовании 4 x 8, 8 x 4 или 8 x 8. Помимо этого, для упрощения JVT-кодера и также для сведения к минимуму памяти, нужной для кода, выполняющего JVT, желательно, чтобы ОКАНК-способ, разработанный для блока 4 x 4, использовался для кодирования блоков 4 x 8, 8 x 4 или 8 x 8 без изменения или с минимальными модификациями.

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

Так, согласно первому аспекту настоящего изобретения способ кодирования изображения отличается тем, что

формируют по меньшей мере блок коэффициентов преобразования из данных изображения;

сканируют блок коэффициентов преобразования для обеспечения последовательности коэффициентов преобразования;

выполняют субдискретизацию коэффициентов преобразования в упомянутой последовательности перемежаемым образом для обеспечения множества субдискретизированных последовательностей коэффициентов преобразования;

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

Упомянутый этап выполнения субдискретизации выполняют предпочтительно до или после упомянутого кодирования.

Последовательность коэффициентов преобразования предпочтительно имеет длину 16 n x m, где n и m являются положительными целыми числами, равными 1 или имеющими значения выше 1; и каждая из упомянутых субдискретизированных последовательностей коэффициентов преобразования имеет длину 16.

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

формируют по меньшей мере блок коэффициентов преобразования из данных изображения, и

сканируют блок коэффициентов преобразования для обеспечения последовательности коэффициентов преобразования.

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

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

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

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

средство для формирования по меньшей мере блока коэффициентов преобразования из данных изображения;

средство для сканирования блока коэффициентов преобразования для формирования упорядоченной последовательности коэффициентов преобразования из этого блока;

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

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

средство для обеспечения потока битов на основе упомянутых сигналов.

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

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

средство для формирования по меньшей мере блока коэффициентов преобразования из упомянутых сигналов;

средство для сканирования блока коэффициентов преобразования для формирования упорядоченной последовательности коэффициентов преобразования из этого блока;

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

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

средство для обеспечения потока битов на основе дополнительных сигналов.

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

Фиг. 1 - пример зигзагового сканирования для блока 4 х 4.

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

Фиг. 3 - блок-схема, показывающая типичного видеоклиента, соответствующего кодеру согласно Фиг. 2.

Фиг. 4 - пример зигзагового сканирования для блока 8 х 8.

Фиг. 5а - подблок 4 х 4 из блока 8 х 8, показываемого на Фиг. 4.

Фиг. 5b - еще один подблок из блока 8 х 8, показываемого на Фиг. 4.

Фиг. 5с - еще один подблок 4 х 4 из блока 8 х 8, показываемого на Фиг. 4.

Фиг. 5d - четвертый подблок 4 х 4 из блока 8 х 8, показываемого на Фиг. 4.

Фиг. 6а - одномерная совокупность, представляющая вектор согласно блоку 4 х 4 Фиг. 5а, обрабатываемый алгоритмом ОКАНК 4 х 4.

Фиг. 6b - одномерная совокупность, представляющая вектор согласно блоку 4 х 4 Фиг. 5b, обрабатываемый алгоритмом ОКАНК 4 х 4.

Фиг.6с - одномерная совокупность коэффициентов, представляющая вектор согласно блоку 4 х 4 Фиг.5с, обрабатываемый алгоритмом ОКАНК 4 х 4.

Фиг. 6d - одномерная совокупность, представляющая вектор согласно блоку 4 х 4 Фиг. 5d, обрабатываемый алгоритмом ОКАНК 4 х 4.

Фиг. 7 - одномерный вектор, представляющий упорядоченную последовательность коэффициентов блока 8 х 8.

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

Фиг. 8b - одномерная совокупность коэффициентов, представляющая второй сегментированный вектор из первоначального вектора согласно настоящему изобретению.

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

Фиг. 8d - одномерная совокупность коэффициентов, представляющая четвертый сегментированный вектор из первоначального вектора согласно настоящему изобретению.

Фиг. 9 - блок-схема приводимого в качестве примера видеосервера согласно настоящему изобретению.

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

Фиг. 11а - блок 4 х 4, субдискретизированный из блока 8 х 8 коэффициентов преобразования.

Фиг. 11b - еще один блок 4 х 4, субдискретизированный из блока 8 х 8 коэффициентов преобразования.

Фиг. 11с - еще один блок 4 х 4, субдискретизированный из блока 8 х 8 коэффициентов преобразования.

Фиг. 11d - четвертый блок 4 х 4, субдискретизированный из блока 8 х 8 коэффициентов преобразования.

Предпочтительный вариант осуществления изобретения

Способ сегментации блока согласно настоящему изобретению разделяет АБП-блок (блок 8 х 8, блок 4 х 8 или 8 х 4) коэффициентов преобразования на блоки 4 х 4, которые кодируют с помощью стандартного ОКАНК-алгоритма 4 х 4. Разделение коэффициентов среди блоков 4 х 4 основано на энергии коэффициентов, чтобы обеспечить аналогичность статистического распределения каждого блока 4 х 4. Энергия коэффициента зависит от частоты функции преобразования, которой она соответствует, и она может, например, быть указана ее положением в зигзаговом сканирования АБП-блока. В результате этого разделения не все коэффициенты, выбранные для данного блока 4 х 4, прилегают друг к другу пространственно в АБП-блоке.

Способ согласно настоящему изобретению выполняют на блоках коэффициентов, получаемых с помощью преобразования 4 х 8, 8 х 4 или 8 х 8, последовательно сканированных зигзагом (или по-другому) для получения упорядоченного вектора коэффициентов.

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

После зигзагового сканирования для получения упорядоченного, имеющего длину N, вектора коэффициентов (N равно 64 для блока 8 х 8, или 32 для блока 4 х 8 или 8 х 4): алгоритм согласно настоящему изобретению сегментирует этот вектор на N/16 меньших векторов, каждый из которых имеет длину 16. Каждый из этих векторов сформирован взятием каждого (N/16)-го коэффициента из вектора коэффициентов длиной N в процессе субдискретизации. Например, если упорядоченный вектор содержит коэффициенты с0, с1, с2, ... с63, то тогда первый сегментированный вектор длиной 16 содержит с0, с4, с12, с13, ..., с60. Второй сегментированный вектор длины 16 содержит с1, с5, с9, с13, ..., с61, и т.д. для третьего и четвертого векторов. Например, если упорядоченный вектор представлен одномерной совокупностью из 64 коэффициентов согласно Фиг. 7, то тогда первый, второй, третий и четвертый сегментированные векторы с длиной 16 показаны, соответственно, на Фиг. 8а-8d.

После получения субдискретизированных векторов длины 16 указанным выше образом их кодируют с помощью стандартного ОКАНК-алгоритма 4 х 4. Согласно описанию ОКАНК-алгоритма кодирование ненулевых коэффициентов основано на числе ненулевых коэффициентов верхнего и левого соседних блоков 4 х 4 (см. Фиг. 8а-8d). Поэтому каждому из векторов, созданных разбиением АБП-блока, назначают пространственные местоположения одного из блоков 4 х 4, созданных пространственным делением АБП-блока. Например, если способ согласно настоящему изобретению работает с блоком 8 х 4, то первому вектору придают верхний блок 4 х 4, второму вектору - нижний блок.

Согласно способу настоящего изобретения: если выбирают каждый четвертый коэффициент согласно Фиг. 8а-8d, то один коэффициент из числа первых («наиболее значимых») четырех коэффициентов № 0-4 назначают каждому блоку 4 х 4. Один коэффициент из следующей группы четырех (№ 4-7) назначают каждому блоку 4 х 4. Тот же порядок повторяется для остальных групп из четырех коэффициентов. Это обстоятельство имеет эффект «уравновешивания» количества энергии в каждом из получаемых блоков 4 х 4. Согласно нашим экспериментам для этого алгоритма требуется в среднем на 3-5% меньше битов для представления данной видеопоследовательности по сравнению с техническими решениями, известными из уровня техники.

Для облегчения видеокодирования с помощью способа сегментации вектора согласно настоящему изобретению можно использовать видеосервер 102 согласно Фиг. 9 и видеоклиента 202 согласно Фиг. 10. Основное различие между кодером 202 согласно настоящему изобретению и обычным кодером 40 (Фиг. 2) заключается в том, что мультиплексный кодер 242 содержит блок 48 чередующей (перемежаемой) сегментации для сегментации АБП-блока (блок 4n х 4m, где n, m являются положительными числами, равными 1 или больше 1) на n x m блоков чередуемым образом - согласно Фиг. 8а и 8d. Согласно настоящему изобретению: после того, как блок 42 сканирования даст упорядоченный вектор коэффициентов длиной N (N=16n x m), затем в блоке 48 чередующей сегментации используется компьютерная программа, имеющая алгоритм для сегментирования этого упорядоченного вектора в меньшие n x m векторы, каждый из которых имеет длину 16. Каждый из этих векторов формируется взятием каждого (n x m)-го коэффициента из упорядоченного вектора коэффициентов длиной N. Таким образом, поток 142 битов характеризует контексты n x m сегментированных векторов.

Аналогично, декодер 262 клиента 202 имеет блок 66 сборки векторов, имеющий компьютерную программу с алгоритмом для перегруппирования коэффициентов в сегментированных векторах n x m в упорядоченный вектор длиной N.

Нужно отметить, что алгоритм, описываемый со ссылкой на Фиг. 8а-10, является определенным осуществлением более общей концепции. Можно назначить номер для каждой позиции в векторе длиной N, представляющий «расстояние» от элемента (составляющей) постоянного тока (или первого) в векторе. Это значение должно отражать относительную значимость коэффициентов в этой позиции. Например, на Фиг. 1 выбор кодирования сначала позиции 1 или 2 почти произвольный, и поэтому им можно назначить одинаковое значение «расстояния» или «стоимости».

Тогда обеспечение всех блоков аналогичными характеристиками (т.е. обеспечение их соответствия ОКАНК-кодеру) становится проблемой минимизации. Для каждого возможного порядка назначения можно вычислить итоговую «стоимость» коэффициентов в каждом блоке 4 х 4 и взять дисперсию в блоках 4 х 4. Порядок назначения, который сводит к минимуму дисперсию, даст блоки с наиболее аналогичными статистическими свойствами.

Математически: если Р является множеством шаблонов назначения, тогда нужно вычислить значение р так, чтобы

где и di,j - «стоимость» i-го коэффициента в j-м сегментированном векторе. Как упомянуто выше, описываемый здесь шаблон назначения является примером сведения к минимуму «дисперсии стоимости» между сегментированными блоками. Нужно отметить, что если шаблоны назначения выбираются адаптивно, то информацию о шаблоне назначения, используемом в кодере, нужно передать в декодер. Либо шаблон назначения можно определить из других параметров, применяемых при кодировании изображения. При этом существенно, чтобы и кодер, и декодер использовали один и тот же шаблон назначения, поскольку в ином случае кодированное изображение нельзя будет надлежащим образом декодировать.

Нужно отметить, что коэффициент постоянного тока можно кодировать иным образом и отдельно. Но для обеспечения неизменности имеющегося ОКАНК 4 х 4 коэффициент постоянного тока не обрабатывается иначе, чем 3 самых низкочастотных значения переменного тока. Обработка коэффициента постоянного тока в большинстве случаев выгодна, когда в блоке присутствует очень небольшое число коэффициентов (например, для блока 8 х 8: три блока из числа четырех блоков 4 х 4 пустые). В этом случае может быть желательным исключение составляющей постоянного тока из предсказания числа ненулевых значений. Но при этом, как правило, выгода может и не быть значительной.

Метрику «расстояние/стоимость», присущую позиции коэффициента в сканировании, можно использовать для определения блока 4 х 4, которому назначается коэффициент. Например, для этого определения можно использовать схему стоимости (0 0 0 0 1 1 1 1 2 2 2 2 3 3 3 3...). Либо можно использовать такое декартово расстояние, как «0111.42...». Эффект алгоритма назначения заключается в создании блоков с равной или приблизительно равной совокупной стоимостью. Как таковую дисперсию общей стоимости для каждого блока используют для измерения подобия. Блок, выбранный для следующего коэффициента в сканировании, является блоком с низшей аккумулированной стоимостью коэффициентов, назначенных ему до этого времени.

Также возможно, до зигзагового сканирования, использовать заданную процедуру субдискретизации для выполнения субдискретизации блока 8 х 8 согласно Фиг. 4 в четыре «перемеженных» подблока согласно Фиг. 11а-11d. Затем эти подблоки подвергают зигзаговому сканированию, чтобы получить четыре упорядоченных вектора длиной 16. При этом получаемый результат эквивалентен результату, показываемому на Фиг. 8а-8d. Соответственно, можно обеспечить способ кодирования изображения, согласно которому:

1) формируют по меньшей мере блок коэффициентов преобразования для данных изображения;

2) выполняют субдискретизацию коэффициентов преобразования в блоке согласно заданному порядку для обеспечения множества субдискретизированных блоков коэффициентов преобразования;

3) сканируют субдискретизированные блоки коэффициентов преобразования для обеспечения множества субдискретизированных последовательностей коэффициентов преобразования; и

4) кодируют субдискретизированные последовательности коэффициентов преобразования с помощью статистического кодера.

Излагаемый здесь способ согласно настоящему изобретению разделяет коэффициенты, соответствующие разным частотам АБП-преобразования среди блоков 4 х 4, более равномерно. Поэтому создаваемые блоки 4 х 4 имеют свойства, статистически аналогичные тем, которые ожидаются в ОКАНК-кодере, в результате чего повышается эффективность кодирования.

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

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

формируют по меньшей мере блок коэффициентов преобразования из данных изображения;

сканируют блок коэффициентов преобразования для обеспечения последовательности коэффициентов преобразования;

выполняют субдискретизацию коэффициентов преобразования в упомянутой последовательности перемежаемым образом для обеспечения множества субдискретизи