КОДИРОВАНИЕ И ДЕКОДИРОВАНИЕ ИЗОБРАЖЕНИЯ ИЛИ ПОСЛЕДОВАТЕЛЬНОСТИ ИЗОБРАЖЕНИЙ, РАЗБИТЫХ НА ПИКСЕЛЬНЫЕ РАЗДЕЛЫ ЛИНЕЙНОЙ ФОРМЫ
ENCODING AND DECODING IMAGE OR SEQUENCE OF IMAGES SLICED INTO PARTITIONS OF PIXELS OF LINEAR FORM

Уровень техники
Настоящее изобретение относится к области обработки изображений и, в частности, к кодированию и декодированию цифровых изображений и последовательностей цифровых изображений.
Цифровые изображения и последовательности цифровых изображений, как известно, занимают большой объем памяти, что при передаче изображений требует их сжатия, чтобы избежать проблем перегрузки сети связи, используемой для этой передачи, поскольку, как правило, ее пропускная способность является ограниченной.
В частности, в стандарте H.264/MPEG-4 AVC (от английского "Advanced Video Coding"), представленном в документе ISO/IEC 14496-10, описана технология, согласно которой группы пикселей, называемые макроблоками, текущего изображения пространственно предсказывают относительно других макроблоков, принадлежащих к этому же изображению. Это называют внутренним кодированием (или внутрикадровым кодированием). После этого предсказательного кодирования блоки пикселей преобразуют путем преобразования типа дискретного косинусного преобразования, затем квантуют. Затем коэффициенты квантованных блоков пикселей проходят в порядке считывания, позволяющем использовать большое число нулевых коэффициентов при высоких частотах, после чего кодируют путем энтропийного кодирования.
В частности, во время предсказательного кодирования макроблока в соответствии с вышеуказанным стандартом, за исключением макроблока типа 16×16, макроблок разбивают на блоки меньшего размера прямоугольной или квадратной формы. Пространственное предсказание такого макроблока в изображении состоит в предсказании каждого блока меньшего размера, образующего этот макроблок, относительно одного или нескольких блоков другого макроблока этого же изображения. Это предсказание возможно только, если этот другой макроблок является макроблоком, соседним с предсказываемым макроблоком и находящимся относительно него в некоторых заданных направлениях, то есть, как правило, сверху и слева, в так называемом «каузальном» соседнем положении.
Так, например, в случае макроблока типа 16×16 предсказание пикселей, которые находятся внизу справа этого макроблока, обязательно осуществляют относительно опорных пикселей, которые находятся вверху слева макроблока. Такие опорные пиксели пространственно значительно удалены от предсказываемых пикселей.
Таким образом, точность предсказания такого типа не является оптимальной особенно в случае макроблоков с повышенной пространственной активностью, то есть в случае, когда кодируемое изображение содержит много деталей.
Настоящее изобретение призвано устранить недостатки известных технических решений и предложить способы и устройства кодирования и декодирования изображений, в которых расстояние предсказания между предсказываемыми пикселями и опорными пикселями сведено к минимуму.
Объект и сущность изобретения
В этой связи объектом настоящего изобретения является способ кодирования изображения или последовательности изображений, генерирующий поток данных, содержащий данные, представляющие по меньшей мере одну группу пикселей в одном из изображений, характеризующийся тем, что содержит этапы, на которых:
- для кодируемой группы пикселей выбирают исходный раздел заранее определенной линейной формы,
- кодируемую группу пикселей разбивают согласно выбранному исходному разделу,
- выбранный исходный раздел распространяют в кодируемой группе пикселей, пока она не окажется полностью разбитой на множество разделов заданной формы,
- для разбитой группы пикселей выбирают заранее определенный порядок прохождения разделов,
- разделы предсказывают и кодируют один за другим в соответствии с выбранным порядком прохождения.
Благодаря, с одной стороны, такой разбивке макроблока путем распространения раздела особой формы, отличной от обычной квадратной или прямоугольной формы, и, с другой стороны, определенному порядку прохождения разделов макроблока полученное таким образом внутрикадровое кодирование в соответствии с настоящим изобретением является более точным, чем традиционные виды внутрикадрового кодирования, учитывая, что предсказание осуществляют с опорными пикселями, которые являются более близкими.
Кроме того, тот факт, что разделы не являются квадратными или прямоугольными, обеспечивает лучшую адаптацию кодирования к отдельным структурам или деталям изображения.
Наконец, то, что порядок прохождения разделов отличается от традиционного порядка прохождения, позволяет создавать новые разделы разной формы и размера. Преимуществом таких разделов является возможность использования опорных пикселей, получаемых из нескольких уже кодированных, а затем декодированных разделов.
Согласно предпочтительному отличительному признаку предсказание и кодирование текущего раздела в группе пикселей осуществляют по отношению, по меньшей мере, к одному опорному разделу, причем этот опорный раздел является разделом, который был распространен до текущего раздела и который уже был кодирован, а затем декодирован.
Такой подход позволяет удовлетворительным образом уменьшить расстояние предсказания между предсказываемыми пикселями и опорными пикселями.
Согласно другим предпочтительным отличительным признакам:
- выбранный порядок прохождения разделов является тем же порядком, в котором они были распространены: такой вариант выполнения позволяет:
- систематически предсказывать пиксели предсказываемого текущего раздела по отношению к пикселям самого ближайшего опорного раздела;
- для каждого раздела применять частотное преобразование, более локализованное и, следовательно, лучше приспособленное к содержимому раздела;
- выбранный порядок прохождения разделов позволяет предсказывать и кодировать, по меньшей мере, один текущий раздел по отношению к двум опорным разделам, находящимся в непосредственной близости к нему: такой вариант выполнения позволяет повысить точность предсказания;
- выбранный порядок прохождения является дихотомическим порядком: такой вариант выполнения позволяет еще больше повысить точность предсказания.
Согласно еще одному предпочтительному отличительному признаку поток данных содержит информацию, касающуюся выбранной формы раздела и выбранного порядка прохождения.
Таким образом, для текущего декодируемого макроблока декодер может определять форму распространяемого раздела и порядок, в котором он будет декодировать разделы такого макроблока.
Объектом настоящего изобретения является также способ декодирования потока данных, представляющего изображение или последовательность изображений, причем такой поток содержит данные, представляющие по меньшей мере одну группу пикселей в одном из изображений, характеризующийся тем, что содержит этапы, на которых:
- в декодируемом потоке определяют исходный раздел заданной линейной формы,
- декодируемую группу пикселей разбивают согласно определенному исходному разделу,
- определенный исходный раздел распространяют в декодируемой группе пикселей, пока она не будет полностью разбита на множество разделов заданной формы,
- в декодируемом потоке определяют порядок прохождения разделов,
- разделы декодируют один за другим в определенном порядке прохождения.
Согласно другим предпочтительным отличительным признакам:
- декодирование текущего раздела в группе пикселей осуществляют по отношению, по меньшей мере, к одному опорному разделу, при этом опорный раздел является разделом, который был распространен до текущего раздела и который уже декодирован;
- порядок прохождения разделов является тем же порядком, в котором они были распространены;
- порядок прохождения разделов позволяет декодировать, по меньшей мере, один текущий раздел по отношению к двум опорным разделам, находящимся в непосредственной близости к нему;
- порядок прохождения разделов является дихотомическим порядком прохождения. Объектом настоящего изобретения является также несущий сигнал, несущий поток данных, представляющий изображение или последовательность изображений, при этом поток содержит данные, представляющие по меньшей мере одну группу пикселей в одном из изображений, характеризующийся тем, что:
- некоторые из представительных данных относятся к заданной линейной форме исходного раздела, который был выбран в момент предсказания и кодирования группы пикселей,
- а некоторые другие из представительных данных относятся к порядку прохождения разделов, образующих указанную группу пикселей и получаемых в результате распространения выбранного исходного раздела, для предсказания и кодирования разделов.
Объектом настоящего изобретения является также устройство кодирования изображения или последовательности изображений, генерирующее поток данных, содержащий данные, представляющие по меньшей мере одну группу пикселей в одном из изображений, характеризующееся тем, что содержит:
- средство выбора исходного раздела заданной линейной формы для кодируемой группы пикселей,
- средство разбивки кодируемой группы пикселей согласно выбранному исходному разделу,
- средство распространения выбранного исходного раздела в кодируемой группе пикселей, пока она не будет полностью разбита на множество разделов заданной формы,
- средство выбора определенного порядка прохождения разделов для разбитой группы пикселей,
- средство предсказания и кодирования разделов один за другим в соответствии с выбранным порядком прохождения.
Объектом настоящего изобретения является также устройство декодирования потока данных, представляющего изображение или последовательность изображений, при этом поток содержит данные, представляющие, по меньшей мере, одну группу пикселей в одном из изображений, характеризующееся тем, что содержит:
- средство определения исходного раздела заданной линейной формы в декодируемом потоке,
- средство разбивки декодируемой группы пикселей согласно определенному исходному разделу,
- средство распространения определенного исходного раздела в декодируемой группе пикселей, пока она не будет полностью разбита на множество разделов заданной формы,
- средство определения порядка прохождения разделов в декодируемом потоке,
- средство декодирования разделов один за другим в соответствии с определенным порядком прохождения.
Объектом настоящего изобретения является также компьютерная программа, содержащая команды для применения одного из способов в соответствии с настоящим изобретением, когда ее исполняет компьютер.
Краткое описание чертежей
Другие отличительные признаки и преимущества будут более очевидны из нижеследующего описания предпочтительных вариантов выполнения, представленных со ссылками на прилагаемые чертежи, на которых:
Фиг.1 - этапы способа кодирования в соответствии с настоящим изобретением.
Фиг.2 - вариант выполнения устройства кодирования в соответствии с настоящим изобретением.
Фиг.3 - различные линейные формы разделов, которые можно выбирать в устройстве кодирования в соответствии с настоящим изобретением.
Фиг.4 - макроблоки, разбитые на разделы путем распространения различных -исходных разделов, показанных на фиг.3.
Фиг.5 - разбитый на разделы макроблок, показанный на фиг.4А, который был предсказан в соответствии с тремя возможными порядками прохождения.
Фиг.6 - разбитый на разделы макроблок, показанный на фиг.4С, который был предсказан в соответствии с одним из трех порядков прохождения, показанных на фиг.5.
Фиг.7 - структура макроблока, кодированного устройством кодирования в соответствии с настоящим изобретением.
Фиг.8 - фрагмент поля, образующего структуру кодированного макроблока, показанного на фиг.7.
Фиг.9 - устройство декодирования в соответствии с настоящим изобретением.
Фиг.10 - этапы способа декодирования в соответствии с настоящим изобретением.
Подробное описание варианта выполнения
Далее следует описание варианта выполнения изобретения, в котором способ кодирования в соответствии с настоящим изобретением применяют для кодирования последовательности изображений согласно двоичному потоку, близкому к потоку, получаемому путем кодирования согласно стандарту H.264/MPEG-4 AVC. В этом варианте выполнения способ кодирования в соответствии с настоящим изобретением применяют, например, при помощи программного или аппаратного обеспечения путем внесения изменений в кодер, первоначально соответствующий стандарту H.264/MPEG-4 AVC. Способ кодирования в соответствии с настоящим изобретением представлен в виде алгоритма, содержащего этапы С1-С6, показанные на фиг.1.
Следует отметить, что способ декодирования в соответствии с настоящим изобретением применяют симметрично при помощи программных или аппаратных средств путем внесения изменения в декодер, первоначально соответствующий стандарту H.264/MPEG-4 AVC.
Согласно варианту выполнения изобретения способ кодирования в соответствии с настоящим изобретением осуществляют в устройстве кодирования СО, показанном на фиг.2. Способ осуществляют при помощи кодера СО для внутрикадрового кодирования.
На первом этапе С1, показанном на фиг.1, для группы пикселей или макроблока, принадлежащего к изображению IE кодируемой последовательности изображений, выбирают конкретный раздел из заданного набора разделов заданной линейной формы. Для этого макроблок MB, например, размером 8×8 подают на вход модуля SP выбора разделов, показанный на фиг.2.
Модуль SP выбора разделов применяет, например, метод выбора с использованием исчерпывающей конкуренции или метод выбора при помощи априорного алгоритма. Такие методы хорошо известны специалистам (см.: G.J.Sullivan and T.Wiegand, "Rate-distortion optimization for video compression", IEEE Signal Proc. Mag., стр.74-90, 1998).
Поэтому их описание опускается.
Указанные разделы сгруппированы в базе данных BD1 кодера СО. Они характеризуются тем, что имеют линейные формы, что отличает их от квадратных или прямоугольных разделов, обычно используемых в известных технологиях кодирования.
Неограничительные примеры различных разделов макроблока, например, размером 8×8, которые может выбирать модуль SP выбора, показаны на фиг.3.
На фиг.3А показан макроблок MB, разбитый согласно исходному разделу Р1 в виде строки.
На фиг.3В показан макроблок MB, разбитый согласно исходному разделу Р1 в виде столбца.
На фиг.3С показан макроблок MB, разбитый согласно исходному разделу Р1 в виде буквы L.
На фиг.3D показан макроблок MB, разбитый согласно исходному разделу Р1 в виде креста.
На фиг.3Е показан макроблок MB, разбитый согласно исходному разделу Р1 в виде ломаной линии, содержащей вертикальные, горизонтальные и диагональные сегменты.
На фиг.3F показан макроблок MB, разбитый согласно исходному разделу Р1 в виде ломаной линии, два конца которой соединяются, образуя точку. Такая ломаная линия определена, например, градиентом макроблока, находящимся в такой же позиции на предыдущем изображении (солокально).
На следующем этапе С2, показанном на фиг.1, производят разбивку на разделы макроблока MB согласно выбранному исходному разделу Р1. Эту разбивку на разделы производит модуль РМВ разбивки на разделы макроблоков, показанный на фиг.2. Для этого модуль РМВ разбивки на разделы содержит подмодуль PART разбивки, предназначенный для осуществления первой разбивки макроблока MB согласно выбранному исходному разделу Р1, как показано на фиг.3.
Кроме того, как показано на фиг.2, модуль РМВ разбивки на разделы содержит подмодуль PROP распространения, предназначенный для распространения указанного выбранного исходного раздела Р1 в макроблоке MB n раз (n является целым числом), пока этот модуль не будет полностью разбит на число n+1 разделов заданной формы.:
Модуль распространения РМВ применяет алгоритм распространения, который использует, например, математический морфологический оператор, например оператор расширения, хорошо известный специалистам. Такой оператор расширения описан, в частности, в работе "Fundamentals of Digital Image Processing", A.K.Jain, Prentice Hall Editions.
Такой алгоритм позволяет разбивать макроблок на разделы детерминированным образом, независимо от формы исходного раздела.
Согласно варианту изобретения алгоритм распространения может использовать вычислительную функцию минимизации расстояния предсказания между предсказываемым текущим разделом Pj(1≤j≤n+l) и, по меньшей мере, предыдущим разделом Pj-1, после того как последний кодировали и декодировали.
На фиг.4 показаны макроблоки MBpart, полученные после разбивки согласно исходному разделу Р1, показанному на фиг.3.
Как можно отметить, алгоритм распространения в соответствии с настоящим изобретением разработан таким образом, чтобы полученные разделы P1,…,Рn+1:
- имели такую же или по существу такую же форму, что и исходный раздел Р1,
- не перекрывали друг друга в макроблоке MBpart,
- и необязательно содержали одинаковое число пикселей.
На фиг.4А показан разбитый на разделы макроблок MBpart, содержащий восемь разделов P1,…,P8, которые все имеют форму строки и содержат одинаковое число пикселей.
На фиг.4В показан разбитый на разделы макроблок MBpart, содержащий восемь разделов Р1,…,Р8, которые все имеют форму столбца и содержат одинаковое число пикселей.
На фиг.4С показан разбитый на разделы макроблок MBpart, содержащий восемь разделов Р1,…,Р8, которые все имеют форму буквы L, кроме последнего раздела P8, но при этом каждый из них содержит разное число пикселей.
На фиг.4D показан разбитый на разделы макроблок MBpart, содержащий четыре раздела Р1,…,Р4, которые почти все имеют форму креста, но содержат разное число пикселей.
На фиг.4Е показан разбитый на разделы макроблок MBpart, содержащий четыре раздела Р1,…,Р4, которые почти все имеют форму ломаной линии, содержащей вертикальные, горизонтальные и диагональные сегменты, но при этом каждый из них содержит разное число пикселей.
На фиг.4F показан разбитый на разделы макроблок MBpart, содержащий четыре раздела Р1,…,Р4, которые все имеют форму ломаной линии, два конца которой соединены, но при этом каждый из них содержит разное число пикселей.
После этапа С2 разбивки на разделы на этапе С3, показанном на фиг.1, модуль РМВ разбивки на разделы передает разбитый на разделы макроблок MBpart в вычислительный модуль предсказания PRED, показанный на фиг.2.
На этапе С4, показанном на фиг.1, вычислительный модуль предсказания PRED вычисляет различные возможные предсказания принятого разбитого на разделы макроблока MBpart. Учитывая, что кодер СО является кодером внутрикадрового кодирования, вычислительный модуль предсказания PRED вычисляет возможные пространственные предсказания каждого раздела Р1,…,Рn+1 макроблока MBpart по отношению к предыдущему кодированному, а затем декодированному разделу.
Предпочтительно вычислительный модуль предсказания PRED предсказывает разделы макроблока MBpart один за другим, при этом предсказываемый текущий раздел предсказывают относительно раздела, который непосредственно ему предшествует и который был кодирован и затем декодирован, чтобы служить опорным разделом.
Таким образом, расстояние предсказания сводится к минимуму, так как предсказание раздела происходит по отношению к опорным пикселям, находящимся вблизи пикселей указанного предсказываемого раздела.
Как показано на фиг.2, такой опорный раздел кодируют в соответствии со стандартом H.264/MPEG-4AVC, а именно его подвергают известным образом:
- кодированию при помощи дискретного косинусного преобразования и квантования, которое осуществляет модуль MTQ преобразования и квантования,
- затем декодированию при помощи обратного дискретного косинусного преобразования и обратного квантования, которое осуществляет модуль MTQI обратного преобразования и обратного квантования.
В описанном варианте выполнения предусмотрены три типа пространственных предсказаний, которые соответствуют трем разным порядкам 01, 02, 03 прохождения разделов, в которых вычислительный модуль PRED предсказания имеет возможность предсказывать разделы P1,…,Рn+1 разбитого на разделы макроблока MBpart.
На фиг.5 показаны три макроблока MBpred, которые были предсказаны в соответствии с тремя вышеуказанными порядками прохождения при одинаковой форме выбранного исходного раздела Р1.
В примере, показанном на фиг.5, предполагается, что каждый разбитый на разделы макроблок MBpart является макроблоком, показанным на фиг.4А, то есть разбитым на восемь разделов Р1,…,Р8, имеющих форму строк. Разумеется, в соответствии с тремя вышеуказанными порядками 01, 02, 03 прохождения можно произвести предсказание и для разделов, имеющих формы, показанные на фиг.4B-4F. Показанные на фиг.5 разделы Р1,…,Р8 макроблока MBpart предсказывают один за другим в том порядке, в котором они были распространены на фиг.4А.
В частности, вычислительный модуль предсказания PRED, показанный на фиг.2, проходит слева направо первую строку макроблока MBpart, чтобы предсказать первый раздел Р1, называемый исходным разделом. Первая выбранная строка предсказания соответствует первой строке макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р1 с учетом пикселей опорного раздела PR соседнего макроблока (не показан), который только что был кодирован и затем декодирован, как было указано выше. Вычислительный модуль предсказания PRED выдает первый предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR1, показанный на фиг.5А.
После этого вычислительный модуль предсказания PRED проходит слева направо вторую строку макроблока MBpart. Вторая выбранная строка является второй строкой макроблока MBpart. Вычислительный модуль предсказания PRED выбирает эту вторую строку для предсказания второго раздела Р2 макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р2 относительно пикселей раздела PR1, который только что был кодирован и затем декодирован, как было указано выше. Вычислительный модуль предсказания PRED выдает второй предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR2, показанный на фиг.5А.
Вычислительный модуль предсказания PRED производит вышеуказанные операции для разделов Р3, Р4, Р5, Р6, Р7 и затем Р8 макроблока MBpart, показанного на фиг.4А. После этого предсказания, как показано на фиг.5А, получают предсказанный макроблок MBpred, при этом в предсказанном макроблоке MBpred предсказанные разделы PR1, PR2,…,PR8 следуют друг за другом в том порядке, в котором соответствующие разделы Р1, Р2,…,Р8 были распространены.
Теперь рассмотрим фиг.5В, где разделы макроблока MB предсказывают один за другим, но в порядке, отличном от порядка, в котором они были распространены на фиг.4А.
В частности, вычислительный модуль предсказания PRED, показанный на фиг.2, проходит слева направо первую строку макроблока MBpart, показанного на фиг.4А, которая предназначена для предсказания исходного раздела Р1. Первая выбранная строка соответствует второй строке макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает при этом указанный раздел Р1 относительно пикселей опорного раздела PR соседнего макроблока (не показан), который только что был кодирован и затем декодирован, как было указано выше. Хотя опорные пиксели опорного раздела PR и не находятся в непосредственной близости от предсказываемых пикселей, как в случае, показанном на фиг.5А, вместе с тем эти опорные пиксели находятся достаточно близко, чтобы правильно минимизировать расстояние предсказания. Вычислительный модуль предсказания PRED выдает первый предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратной трансформанты и обратного квантования. В результате этих операций получают опорный раздел PR1, показанный на фиг.5В.
После этого вычислительный модуль предсказания PRED проходит слева направо вторую строку макроблока MBpart, которая предназначена для предсказания второго раздела Р2. Вторая выбранная строка является первой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р2 относительно пикселей раздела PR1, который только что был кодирован и затем декодирован, как было указано выше, а также относительно пикселей указанного опорного раздела PR.
Вычислительный модуль предсказания PRED выдает второй предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратной трансформанты и обратного квантования. В результате этих операций получают опорный раздел PR2, показанный на фиг.5В.
Таким образом, предсказание раздела Р2 является намного более точным, чем в примере, показанном на фиг.5А, поскольку раздел Р2 предсказывают относительно двух опорных разделов, находящихся от него в непосредственной близости, а не относительно только одного опорного раздела.
Вычислительный модуль предсказания PRED производит вышеуказанные операции, осуществляя предсказание разделов Р3, Р4, Р5, Р6, Р7 и Р8 соответственно для четвертой, третьей, шестой, пятой, восьмой и седьмой строк макроблока MBpart, показанного на фиг.4В результате этого предсказания, как показано на фиг.5В, получают предсказанный макроблок MBpred, при этом предсказанные разделы PR2, PR1,…,Pi+1, P1,…,PR8 следуют друг за другом в предсказанном макроблоке MBpred в порядке, отличном от порядка распространения разделов Р1-Р8.
Выбор порядка прохождения, описанный в связи с разбивкой на разделы линейного типа, позволяет получить выигрыш примерно в 4% по пропускной способности по сравнению с классическим внутрикадровым кодированием.
Как показано на фиг.5С, разделы макроблока MBpart предсказывают один за другим, но в порядке, отличном от порядка, в котором они были распространены на фиг.4А. Порядок прохождения, описанный со ссылками на фиг.5С, является порядком дихотомического типа.
В частности, вычислительный модуль предсказания PRED, показанный на фиг.2, проходит слева направо первую строку макроблока MBpart, показанного на фиг.4А, которая предназначена для предсказания исходного раздела Р1. Первая выбранная строка соответствует последней строке макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает при этом указанный раздел Р1 относительно пикселей опорного раздела PR соседнего макроблока (не показан), который только что был кодирован и затем декодирован, как было указано выше. Вычислительный модуль предсказания PRED выдает первый предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR1, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо вторую строку макроблока MBpart, которая предназначена для предсказания второго раздела Р2. Вторая выбранная строка является четвертой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р2 относительно пикселей раздела PR1, который только что был кодирован и затем декодирован, как было указано выше, а также относительно пикселей указанного: опорного раздела PR.
Вычислительный модуль предсказания PRED выдает второй предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR2, показанный на фиг.5С.
Хотя предсказание раздела Р2 происходит с использованием опорных пикселей, значительно удаленных от него, оно все же является более точным, чем в примере, показанном на фиг.5А, так как раздел Р2 предсказывают относительно двух опорных разделов, а не относительно только одного опорного раздела.
После этого вычислительный модуль предсказания PRED проходит слева направо третью строку макроблока MBpart, которая предназначена для предсказания третьего раздела Р3. Третья выбранная строка является второй строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р3 относительно пикселей раздела PR2, который только что был кодирован и затем декодирован, как было указано выше, а также относительно пикселей указанного опорного раздела PR.
Вычислительный модуль предсказания PRED выдает третий предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, а затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR3, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо четвертую строку макроблока MBpart, которая предназначена для предсказания четвертого раздела Р4. Четвертая выбранная строка является шестой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р4 относительно пикселей наиболее близких к нему опорных разделов, то есть относительно пикселей раздела PR1 и пикселей раздела PR2.
Вычислительный модуль предсказания PRED выдает четвертый предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, а затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR4, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо пятую строку макроблока MBpart, которая предназначена для предсказания пятого раздела Р5. Пятая выбранная строка является первой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р5 относительно пикселей наиболее близких к нему опорных разделов, то есть относительно пикселей раздела PR и пикселей раздела PR3.
Вычислительный модуль предсказания PRED выдает пятый предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, а затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR5, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо шестую строку макроблока MBpart, которая предназначена для предсказания шестого раздела Р6. Шестая выбранная строка является третьей строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р6:
- относительно пикселей наиболее близких к нему опорных разделов, то есть относительно пикселей разделов PR2 и PR3,
- а также относительно пикселей опорных разделов, более удаленных от него и смещенных относительно него на одинаковое число разделов, то есть относительно пикселей разделов PR и PR4.
Вычислительный модуль предсказания PRED выдает шестой предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, а затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR6, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо седьмую строку макроблока MBpart, которая предназначена для предсказания седьмого раздела Р7. Седьмая выбранная строка является пятой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р7:
- относительно пикселей наиболее близких к нему опорных разделов, то есть относительно пикселей разделов PR2 и PR4,
- а также относительно пикселей опорных разделов, более удаленных от него и смещенных относительно него на одинаковое число разделов, то есть относительно пикселей разделов PR1 и PR5.
Вычислительный модуль предсказания PRED выдает седьмой предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR7, показанный на фиг.5С.
После этого вычислительный модуль предсказания PRED проходит слева направо восьмую строку макроблока MBpart, которая предназначена для предсказания восьмого раздела Р8. Восьмая выбранная строка является седьмой строкой макроблока MBpart. Вычислительный модуль предсказания PRED предсказывает указанный раздел Р8 относительно пикселей наиболее близких к нему опорных разделов, то есть относительно пикселей разделов PR1 и PR4.
Вычислительный модуль предсказания PRED выдает восьмой предсказанный раздел, который сразу же кодируется модулем MTQ преобразования и квантования, затем декодируется модулем MTQI обратного преобразования и обратного квантования. В результате этих операций получают опорный раздел PR8, показанный на фиг.5С.
В соответствии с порядком прохождения, показанным на фиг.5С, несмотря на то, что предсказание некоторых разделов осуществляют с помощью значительно удаленных от них опорных пикселей, точность предсказания макроблока MBpart в целом остается высокой за счет того, что некоторые разделы предсказывают относительно двух опорных разделов и что некоторые другие разделы можно предсказывать относительно четырех опорных разделов.
В результате этого предсказания, показанного на фиг.5С, получают предсказанный макроблок MBpred, при этом предсказанные разделы PR5, PR3,…,PR2,…,PR8, PR1 следуют друг за другом в предсказанном макроблоке MBpred в дихотомическом порядке, отличном от порядка распространения разделов Р1-Р8.
Выбор порядка прохождения, описанный выше в связи с разбивкой на разделы линейного типа, позволяет получить выигрыш примерно в 3% по пропускной способности по сравнению с классическим внутрикадровым кодированием.
Третий порядок прохождения, описанный выше в связи с разбивкой на разделы линейного типа, является наиболее предпочтительным для предсказания макроблока MBpart неоднородной структуры, что соответствует случаю, когда изображение IE содержит многочисленные детали или колебания яркости на фрагментах изображения, похожих на раздел. В частности, было установлено, что при выборе исходного раздела в виде буквы L, показанного на фиг.3С, стоимость кодирования с точки зрения пропускной способности и искажения существенно снижается.
На фиг.6 показан предсказанный макроблок MBpred, который был предсказан по этому третьему порядку прохождения на основе распространения исходного раздела Р1, имеющего форму буквы L.
Естественно для получения первого предсказанного раздела PR1, который сильно удален от опорного раздела PR, стоимость повышается с точки зрения пропускной способности и искажения. Вместе с тем это первое предсказание осуществляют только на одном пикселе, преимущество которого в том, что он может служить для предсказания пикселей других разделов макроблока MBpart, показанного на фиг.4С. В конечном счете предсказание макроблока MBpart в целом отличается более высокой точностью, чем в случае классического поблочного предсказания или в случае других порядков прохождения разделов, которые были описаны выше.
После вычисления возможных предсказаний вычислительным модулем предсказания PRED на этапе С5, показанном на фиг.1, модуль принятия решения DCN, показанный на фиг.2, проходит разбитые на разделы макроблоки изображения IE и выбирает на этом этапе С5 вариант предсказания, используемый для кодирования каждого из этих макроблоков. Среди возможных для макроблока предсказаний модуль принятия решения DCN выбирает оптимальное предсказание по критерию «пропускная способность - искажение», известному специалистам.
Для текущего кодируемого макроблока MB модуль принятия решения DCN рассматривает, например, на принципе конкуренции:
- три порядка прохождения разделов, показанные на фиг.5, при этом текущий макроблок MB был разбит на разделы, например, как показано на фиг.4А,
- и классический вариант предсказания, при этом текущий макроблок MB был разбит на блоки квадратной формы размером 8×8.
Согласно другому варианту модуль принятия решения DCN рассматривает,
например, на принципе конкуренции:
- два порядка прохождения разделов O1, O2, показанные соответственно на фиг.5А и 5В, при этом текущий макроблок MB был разбит на разделы, например, как показано на фиг.4А,
- дихотомический порядок прохождения O3, показанный на фиг.6, при этом текущий макроблок MB был разбит на разделы, например, как показано на фиг.4С,
- и классический вариант предсказания, при этом текущий макроблок MB был разбит на блоки квадратной формы размером 8×8.
На этапе С6 каждый предсказанный макроблок MBpred кодируют, как указано в норме H.264/MPEG-4 AVC. В частности, как показано на фиг.7, где представлен участок Т кодированного макроблока изображения IE, каждый кодируемый макроблок MB содержит поле СН1, указывающее тип кодирования рассматриваемого макроблока MB, в данном представленном варианте выполнения являющийся типом внутрикадрового кодирования, при этом поле СН2 указывает форму выбранного раздела (квадрат, строка, столбец, крест, буква L и т.д.), поле СН3 указывает используемый режим предсказания (классический режим предсказания или описанные выше порядки прохождения O1, O2 или O3), и поле СН4 кодирует значения остатков предсказанного макроблока MBpred.
Как показано на фиг.8, информация, кодируемая в поле СН3, предварительно содержится в базе данных BD2 кодера СО, показанного на фиг.2.
Как показано на фиг.8, такие данные соответствия хранятся в таблице соответствия ТС с четырьмя столбцами. Первый столбец содержит поле «раздел», которое дает список всех разделов макроблока MBpart в том порядке, в котором они были распространены. Столбцы со второго по четвертый содержат, каждый, поле «порядок прохождения» O1, O2, O3, которое присваивает каждому распространенному разделу номер порядка прохождения, соответствующий его предсказанию, как было описано выше.
После структурного кодирования, произведенного модулем принятия решения DCN, коэффициенты остатков, если они присутствуют, соответствующие блокам изображения IE, направляют в модуль MTQ преобразования и квантования для проведения дискретного косинусного преобразования и квантования. Затем участки макроблоков с квантованными коэффициентами направляют в модуль СЕ энтропийного кодирования, чтобы получить вместе с другими изображениями последовательности уже закодированными таким же образом, как и изображение IE, двоичный видеопоток F, кодированный в соответствии с настоящим изобретением.
Кодированный таким образом двоичный поток F передают в сеть связи в направлении удаленного терминала. Этот терминал содержит декодер DEC в соответствии с настоящим изобретением, показанный на фиг.9.
Сначала цифровой поток F попадает в модуль DE энтропийного декодирования, которое происходит в обратном порядке по отношению к порядку работы модуля СЕ энтропийного кодирования, показанного на фиг.2. Затем для каждого макроблока воссоздаваемого изображения коэффициенты, декодированные модулем DE, направляют в модуль QTI обратного квантования и обратного преобразования.
При этом модуль R1 восстановления изображения принимает декодированные данные, соответствующие данным, создаваемым модулем DCN (фиг.2) на этапе С5 кодирования в соответствии с настоящим изобретением, с учетом возможных ошибок передачи. Модуль R1 применяет этапы D1-D4 способа декодирования в соответствии с настоящим изобретением, показанные на фиг.10.
Первый этап D1 является декодированием структур кодированных данных в участке Т текущего макроблока декодируемого изображения IE. Как известно, модуль R1 реконструкции определяет в поле СН1 (фиг.7), что данные участка Т были подвергнуты внутрикадровому кодированию типа Intra.
В ходе этого этапа согласно способу декодирования в соответствии с настоящим изобретением модуль R1 реконструкции определяет:
- форму воссоздаваемого исходного раздела Р1 при помощи поля СН2 (фиг.7),
- оптимальный вариант предсказания, выбранный модулем принятия решения DCN; (фиг.2), при помощи поля СН3.
Если, например, исходный раздел Р1 имеет форму буквы L, как показано на фиг.4С, и если оптимальным вариантом предсказания является порядок прохождения O3, показанный на фиг.5С, модуль реконструкции R1 определяет на основании этого порядок, в котором будут декодированы различные разделы Р1-Р8 текущего макроблока. Такой вывод позволяет сделать таблица ТС, показанная на фиг.8 и хранящаяся в памяти декодера DEC.
Следующим этапом D2, показанным на фиг.10, является разбивка на разделы текущего декодируемого макроблока согласно исходному разделу Р1, определенному на этапе D1. Эту разбивку на разделы осуществляет модуль РМВ разбивки на разделы макроблоков, который полностью аналогичен модулю, показанному на фиг.2.
Для этого, как показано на фиг.10, модуль разбивки на разделы РМВ содержит:
- подмодуль разбивки PART для первой разбивки текущего декодируемого макроблока согласно определенному исходному разделу Р1,
- подмодуль распространения PROP для распространения указанного определенного исходного раздела PI n раз (n является целым числом) в макроблоке MB, пока этот макроблок не будет полностью разбит на n+1 разделов заданной формы.
Модуль распространения PROP применяет алгоритм распространения типа описанного выше алгоритма распространения.
После этапа D2 разбивки на разделы на этапе D3, показанном на фиг.10, модуль разбивки на разделы РМВ передает текущий декодируемый макроблок, разбитый на n+1 разделов, в модуль декодирования разделов DECP, показанный на фиг.9.
На этапе D4, показанном на фиг.10, модуль DECP осуществляет декодирование n+1 разделов в порядке декодирования, определенном на этапе D1.
С этой целью для каждого декодируемого раздела текущего декодируемого макроблока модуль декодирования DECP использует значения предсказания непосредственно предшествующего раздела, которые предоставляет ему вычислительный модуль предсказания PRED, показанный на фиг.9.
Действительно, вычислительный модуль PRED предсказания получает значения разделов, ранее декодированных модулем R1 восстановления, которые хранятся у него в памяти.
Декодирование n+1 разделов макроблока изображения IE производят с применением пространственного внутрикадрового предсказания Intra, указанного в поле СН1, показанном на фиг.7.
После декодирования макроблоков изображения IE модуль RI восстановления выдает на выход декодера DEC изображение ID, соответствующее декодированию изображения IE.