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

Иллюстрации

Показать все

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

Реферат

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

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

Данное изобретение, таким образом, может быть, главным образом, применено к способу кодирования видеосигналов, применяемого в находящихся в обращении кодерах изображения (MPEG, Н.264 и т.д.) или в появляющихся кодерах изображения (ITU-T/VCEG (Н.265) или ISO/MPEG (HVC)).

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

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

Внутреннее и внешнее предсказание требует наличия определенных блоков, которые ранее были закодированы и декодированы, чтобы использоваться либо декодером, либо кодером для предсказания текущего блока. Пример схемного решения такого кодирования с предсказанием представлен на фиг. 1А, в котором изображение IN нарезано на блоки, текущий блок MBi такого изображения подвержен кодированию с предсказанием по отношению к заданному количеству трех блоков MBr1, MBr2 и MBr3, ранее кодированных и декодированных, как обозначено заштрихованными стрелками. Вышеупомянутые три блока конкретнее содержат блок MBr1, находящийся непосредственно слева от текущего блока MBi, и два блока MBr2 и MBr3, находящиеся соответственно непосредственно выше и выше справа от текущего блока MBi.

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

Эффективный арифметический кодер разумной сложности уже известен, так называемый «САВАС» (Контекстно-зависимый адаптивный бинарный арифметический кодер), используемый в стандарте сжатия AVC (также известный как ISO-MPEG4 part 10 и ITU-TH.264).

Энтропийный кодер осуществляет реализацию различных концепций:

- арифметическое кодирование: кодер, такой как описан вначале в документе J. Rissanenand G.G. Langdon Jr. "Universalmodelingandcoding" IEEETrans. Inform. Theory, vol. IT-27, pp. 12-23, Jan. 1981, использует кодирование символа, вероятность возникновения данного символа;

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

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

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

Во время кодирования данного символа b, который может быть равен 0 или 1, информация о вероятности Pi возникновения данного символа обновляется для текущего блока MBi согласно следующему выражению:

где α является заданной величиной, например, 0,95 и Pi-1 является вероятностью возникновения символа, вычисленной во время последнего возникновения данного символа.

Схематический пример такого энтропийного кодирования представлен на фиг. 1А, где текущий блок MBi изображения 1N подвергается энтропийному кодированию. Когда энтропийное кодирование блока MBi начинается, используются вероятности возникновения символа, которые были получены после кодирования ранее кодированного и декодированного блока, который непосредственно предшествовал текущему блоку MBi согласно вышеописанному порядку построчного прохождения блоков по типу «развертка растра». Такой способ получения информации, основанный на поблочной зависимости, показан на фиг. 1А для определенных блоков только ради ясности понимания стрелками, изображенными тонкими линиями.

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

Документ «AnnexA: CDCMVideoCodecDecoderSpecification", который доступна на сайте http://wftp3.itu.int/av-arch/jctvc-site/2010 04 ADresden/JCTVC-A114-AnnexA.doc (8 февраля 2011), описывает способ кодирования, который смягчает вышеописанный недостаток. Способ кодирования, описанный в вышеупомянутом документе, содержит, как показано на фиг. 1В:

- этап нарезки изображения In на множество блоков,

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

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

Преимущество такого энтропийного кодирования заключается в том, что здесь используется вероятности, появившиеся из ближнего окружения текущего блока, таким образом, предоставляя возможность увеличить качество кодирования. Более того, используемая технология кодирования предоставляет возможность осуществления параллельного кодирования заданного количества парных соседствующих подсовокупностей блоков. В примере, показанном на фиг. 1В, три подсовокупности SE1, SE2, SE3 кодируются параллельно, каждая подсовокупность состоит, в данном примере, из ряда блоков, показанных штриховой линией. Конечно, такое кодирование требует того, чтобы блоки, находящиеся соответственно выше и выше справа от текущего блока были в наличии.

Недостатком данного параллельного кодирования является то, что предоставляется доступ к вероятности возникновения символа, вычисленной для блока, находящегося непосредственно выше текущего блока, что вызывает необходимость хранения количества вероятностей, ассоциированных с рядом блоков. Если рассматривается второй ряд блоков SE2, на примере фиг. 1В, первый блок данного ряда подвергается энтропийному кодированию с использованием вероятностей возникновения символа, вычисленных для первого блока предыдущего первого ряда SE1. По завершении кодирования первого блока второго ряда, состояние величины V1 вероятности возникновения символа хранится в буферном запоминающем устройстве МТ. Второй блок второго ряда SE2 в дальнейшем подвергается энтропийному кодированию с использованием вероятностей возникновения символа, вычисленных на тот же и в тот же момент времени для второго блока первого ряда SE1 и первый блок второго ряда SE2. По завершении кодирования второго блока второго ряда, состояние значения V2 вероятности возникновения хранится в буферном запоминающем устройстве МТ. Данная процедура осуществляется до последнего блока второго ряда SE2. Так как количество вероятностей очень велико (существует столько много вероятностей, сколько существует комбинаций синтаксических элементов с ассоциированными контекстами), то хранение таких вероятностей более чем полного ряда очень расточительно, с точки зрения использования ресурсов памяти.

Раскрытие изобретения

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

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

- выполняют нарезку изображения на множество блоков,

- группируют блоки в заданное количество подсовокупностей блоков,

- выполняют параллельное кодирование каждой упомянутой подсовокупности блоков, при этом

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

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

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

При этом способ согласно изобретению, характеризуется тем, что:

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

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

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

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

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

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

В конкретном варианте осуществления, кодированный и декодированный блок, принадлежащий той же подсовокупности, что и текущий блок для кодирования, исключая первый блок подсовокупности, является ближайшим смежным к текущему блоку для кодирования.

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

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

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

Соотносительно, изобретение дополнительно относится к устройству кодирования по меньшей мере одного изображение, содержащему:

- средство для нарезки изображения на множество блоков,

- средство для группирования блоков в заданное количество подсовокупностей блоков,

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

• субсредство кодирования с предсказанием текущего блока по отношению по меньшей мере к одному ранее кодированному и декодированному блоку,

• субсредство энтропийного кодирования текущего блока на основании по меньшей мере одной вероятности возникновения символа.

При этом указанное устройство кодирования, характеризуется тем, что:

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

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

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

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

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

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

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

При этом указанный способ декодирования, характеризуется тем, что:

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

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

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

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

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

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

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

• субсредство для энтропийного декодирования текущего блока на основании по меньшей мере одной вероятности возникновения символа,

• субсредство для декодирования с предсказанием текущего блока по отношению по меньшей мере к одному ранее декодированному блоку.

При этом указанное устройство декодирования характеризуется тем, что:

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

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

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

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

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

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

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

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

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

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

Другие характеристики и преимущества станут очевидны при прочтении двух предпочтительных вариантов осуществления, описанных со ссылкой на прилагаемые чертежи, а именно:

фиг. 1А представляет диаграмму кодирования изображения предшествующего уровня техники согласно первому примеру;

фиг. 1В представляет диаграмму кодирования изображения предшествующего уровня техники согласно второму примеру;

фиг. 2А показывает основные этапы способа кодирования согласно изобретению;

фиг. 2В подробно представляет способ параллельного кодирования, осуществленный в способе кодирования, показанном на фиг. 2А;

фиг. 3А представляет вариант осуществления устройства кодирования согласно изобретению;

фиг. 3В представляет кодирующую ячейку для устройства кодирования, показанного на фиг. 3А;

фиг. 4А представляет диаграмму кодирования/декодирования изображения согласно первому предпочтительному варианту осуществления;

фиг. 4В представляет диаграмму кодирования/декодирования изображения согласно второму предпочтительному варианту осуществления;

фиг. 5А показывает основные этапы способа декодирования согласно изобретению;

фиг. 5В подробно представляет способ параллельного декодирования, осуществленный в способе декодирования, показанного на фиг. 5А;

фиг. 6А представляет вариант осуществления устройства декодирования согласно изобретению;

фиг. 6В представляет декодирующую ячейку для устройства декодирования, показанного на фиг. 6А.

Осуществление изобретения

Осуществление участка кодирования

Далее приводится описание варианта осуществления изобретения, в котором способ кодирования согласно данному изобретению используется для кодирования последовательности изображений как кодирование бинарного потока, схожего с полученным кодированием, согласно стандарту Н.264/МРЕG-4 AVC. В данном варианте осуществления, способ кодирования согласно данному изобретению является примером, реализованным в программном обеспечении или в аппаратном оборудовании, посредством модификаций исходного кодера в соответствии со стандартом H.264/MPEG-4 AVC. Способ кодирования согласно изобретения представлен в форме алгоритма, содержащего этапы с C1 по С5, показанного на фиг. 2А.

Согласно варианту осуществления изобретения, способ кодирования согласно изобретению реализован в кодирующем устройстве СО, представленным на фиг. 3А.

Со ссылкой на фиг. 2А, на первом этапе С1 кодирования осуществляется нарезка изображения IE последовательности изображений, подлежащих кодированию на множество блоков или макроблоков MB, как представлено на фиг. 4А или фиг. 4В. В представленных примерах, упомянутые блоки MB имеют квадратную форму и все имеют одинаковый размер. Как функция размера изображения, которое не обязательно является кратной размеру блоков, последние блоки слева и последние блоки в нижней области могут иметь не квадратную форму. В альтернативном варианте осуществления, блоки могут быть, например, прямоугольными и/или быть не выровненными друг с другом.

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

Такая нарезка осуществляется модулем РСО разбиения, показанным на фиг. 3А, который использует, например, хорошо известный алгоритм разбиения.

Со ссылкой на фиг. 2А, на втором этапе С2 кодирования осуществляется группирование вышеупомянутых блоков в заранее заданное количество Р консекутивных подсовокупностей SE1, SE2, …, SEk, …, SEP блоков, предназначенных для параллельного кодирования. В примерах, показанных на фиг. 4А и фиг. 4В, заранее заданное количество Р равно 4 и данные четыре подсовокупности SE1, SE2, SE3, SE4, обозначенные штриховой линией, соответственно состоят из первых четырех рядов блоков изображения IE.

Такое группирование осуществляется вычислительным модулем GRCO, представленным на фиг. 3А, при помощи хорошо известного алгоритма per se.

Со ссылкой на фиг. 2А, третий этап С3 кодирования состоит из параллельного кодирования каждой из упомянутых подсовокупностей SE1, SE2, SE3 и SE4 блоков, блоки подсовокупности считаются закодированными согласно заданному последовательному упорядочиванию прохождения PS. В данных примерах, представленных на фиг. 4А и фиг. 4В, блоки текущей подсовокупности SEk (1≤k≤4) кодируются один после другого, слева направо, как показано стрелкой PS.

Такое параллельное кодирование осуществляется кодирующими ячейками UCk (1≤k≤R) в количестве R, где R=4, как показано на фиг. 3А, и позволяет существенно ускорить реализацию способа кодирования. До некоторой степени известный, кодер СО содержит буферное запоминающее устройство МТ, которое выполнено с возможностью содержать вероятности возникновения символа, как постоянно обновляемые, совместно с кодированием текущих блоков.

Как показано очень подробно на фиг. 3В, каждая из кодирующих ячеек USk содержит:

• субъячейку для кодирования с предсказанием текущего блока по меньшей мере одного ранее кодированного и декодированного блока, обозначена как SUCPk;

• субъячейку для энтропийного кодирования упомянутого текущего блока с использованием по меньшей мере одной вероятности возникновения символа, вычисленной для ранее кодированного и декодированного блока, обозначена как SUCEk.

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

Субъячейка SUCPk энтропийного кодирования является САВАС формой энтропийного кодирования, но модифицированной согласно настоящему изобретению, как будет далее описано.

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

В примерах, показанных на фиг. 4А и фиг. 4В, первая ячейка UC1 кодирует блоки первого ряда SE1 слева на право. Когда подходит очередь последнего блока первого ряда SE1, то процесс переходит к первому блоку (N+1)st ряда, здесь - пятый ряд, т.д. Вторая ячейка UC2 кодирует блоки второго ряда SE2 слева направо. Когда подходит очередь последнего блока второго ряда SE2, то процесс переходит к первому блоку (N+2)nd ряда, здесь - шестой ряд, т.д. Данное прохождение повторяется до тех пор, пока ячейка UC4 заканчивает кодирование блоков четвертого ряда SE4 слева направо. Когда подходит очередь последнего блока первого ряда, то процесс переходит к первому блоку (N+4)th ряда, здесь - восьмой ряд, и так далее и тому подобное до тех пор, пока последний блок изображения IE будет закодирован.

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

Со ссылкой на фиг. 2А, на четвертом этапе С4 кодирования осуществляется создание N суббитовых потоков Fk (1≤k≤N), представляющих собой обработанные блоки, сжатые каждой из вышеупомянутый кодирующих ячеек, так же, как декодированная версия обработанных блоков каждой подсовокупности SEk. Декодированные обработанные блоки рассмотренной подсовокупности, обозначенные как SED1, SED2, … SEDk, … SEDP могут быть повторно использованы некоторыми из кодирующих ячеек UC1, UC2, … UCk, … UCP, показанные на фиг. 3А, в соответствии с механизмом синхронизации, который будет подробно описан ниже.

Со ссылкой на фиг. 2А, пятый этап С5 кодирования состоит из создания основного потока F на основе вышеупомянутых вложенных субпотоков Fk. Согласно одному варианту осуществления, вложенные субпотоки Fk просто размещены друг около друга с элементом дополнительной информации, предназначенным для указания декодеру местоположения каждого вложенного субпотока Fk в основном потоке F. Последний передается коммуникационной сетью (не показано) в удаленный терминал. Последний содержит декодер DO, показанный на фиг. 6А.

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

Такая конфигурация основного потока F реализуется в модуле CF создания потока, как показано на фиг. 3А.

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

В ходе выполнения этапа С31, кодирующая ячейка UCk выбирает в качестве текущего блока первый блок для кодирования текущего ряда SEk, показанного на фиг. 4А и фиг. 4В.

В ходе выполнения этапа С32, кодирующая ячейка UCk проверяет факт того, что текущий блок является первым блоком (находящийся вверху и слева) изображения IE, которое было нарезано на блоки на вышеупомянутом этапе С1.

Если дело обстоит именно так, то в ходе выполнения этапа С33, вероятности кодирования инициализируются до значений Pinit, ранее заданных в кодере СО, показанном на фиг. 3А.

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

В ходе выполнения этапа С34, осуществляется кодирование первого текущего блока МВ1 первого ряда SE1, показанного на фиг. 4А или фиг. 4В. Такой этап С34 содержит множество подэтапов, начиная от С341 до С348, как далее будет описано.

В ходе выполнения первого подэтапа С341, осуществляется кодирование с предсказанием текущего блока МВ1 известными технологиями внутреннего и/или внешнего предсказания, в течение которого блок МВ1 предсказан относительно по меньшей мере одного ранее кодированного и декодированного блока.

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

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

Упомянутый ранее этап кодирования с предсказанием делает возможным создание предсказанного блока МВр1, который является аппроксимацией текущего блока МВ1. Информация, относящаяся к данному кодированию с предсказанием, будет впоследствии записана в поток F, переданный в декодер DO. Такая информация содержит главным образом вид предсказания (внутреннее или внешнее) и при необходимости, вид внутреннего предсказания, тип разбиения блока или макроблока, если последний был разделен, индекс опорного изображения и вектор перемещения, используемый при кодировании с внешним предсказанием. Данная информация сжимается кодером СО.

В ходе выполнения подэтапа С342, осуществляется изъятие предсказанного блока MBp1 из текущего блока МВ1 и создается остаточный блок MBr1.

В ходе выполнения подэтапа С343, осуществляется трансформация остаточного блока MBr1 в соответствии с принятой практикой прямого преобразования, такого как, например, дискретно-косинусное преобразование Фурье четной функции DCT, в преобразованный блок MBt1.

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

В ходе выполнения подэтапа С345, осуществляется энтропийное кодирование блока квантованных коэффициентов MBq1. В предпочтительном варианте осуществления, это предусматривает САВАС энтропийное кодирование.

В ходе выполнения подэтапа С346, осуществляется деквантизация блока MBq1 в соответствии с обычной практикой деквантизации, которая представляет собой обратное действие к осуществленному на этапе С344 квантованию. Получается блок деквантованны