Способ и устройство кодирования и декодирования изображений
Иллюстрации
Показать всеИзобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования изображений. Способ кодирования последовательности, содержащей по меньшей мере одно изображение, в котором по меньшей мере для одной группы изображения последовательности выполняется: определение для каждого блока группы по меньшей мере одного характеристического параметра этого блока; формирование по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов определения; кодирование блоков по меньшей мере одного кластера для получения сегментов информации о кодировании кластера, причем сходные характеристические параметры, связанные с каждым из блоков кластера, кодируются для него только один раз; кодирование блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками, для получения сегментов информации о кодировании внешних блоков, причем характеристические параметры, связанные с каждым из внешних блоков, не кодируются; формирование потока данных, содержащего сегменты информации о кодировании кластеров и кодировании внешних блоков, и введение в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп, обеспечивающего идентификацию внутри группы внешнего блока (или блоков). 6 н. и 4 з.п. ф-лы, 8 ил.
Реферат
ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к кодированию и декодированию изображений и особенно потоков видеоданных, состоящих из ряда последовательных изображений. Более конкретно, изобретение относится к сжатию изображений или последовательностей изображений путем представления изображений множеством блоков.
Таким образом, изобретение может быть применено, например, для кодирования видеоинформации, осуществляемой современными видеокодерами (MPEG, H.264, Н.264 SVC, H.264 MVC и т.п.), а также их модификациями, или разрабатываемыми видеокодерами (ITU-T/VCEG (H.265) или ISO/MPEG (HVC)), и в соответствующем декодировании этой информации.
ПРЕДПОСЫЛКИ СОЗДАНИЯ ИЗОБРЕТЕНИЯ
Цифровые изображения и последовательности таких изображений занимают очень много места в памяти, что приводит к необходимости сжатия этой информации при ее передаче для предотвращения перегрузок сети связи, используемой для этой передачи. Такие сети обычно имеют ограниченную скорость передачи цифрового потока.
Известны различные технологии сжатия видеоданных. Например, различные технологии кодирования видеоинформации, в частности, по стандарту H.264 используют предсказание пикселей текущего изображения относительно других пикселей этого же изображения (режим внутрикадрового предсказания) или предыдущего/последующего изображений (режим межкадрового предсказания).
Более конкретно, в соответствии с технологией стандарта H.264 I-изображения кодируются с использованием пространственного (внутрикадрого) предсказания, B- и P-изображения кодируются с использованием временного предсказания относительно других I-, P- или В-изображений (межкадровое предсказание), кодируемых/декодируемых с использованием, например, компенсации движения.
Для этой цели изображения разбиваются на макроблоки, которые, свою очередь, делятся на блоки. Блок состоит из группы пикселей. Затем для каждого блока передается информация кодирования.
Кодирование блока в классическом варианте осуществляется путем предсказания блока и кодирования дополнений, которые должны быть добавлены к предсказанному блоку. Предсказание осуществляется с использованием уже восстановленной информации (уже закодированных/декодированных предыдущих блоков в текущем изображении, предварительно закодированных изображений при кодировании видеоинформации и т.п.).
После такого кодирования с предсказанием блоки пикселей преобразуются с помощью преобразования типа дискретного косинусного преобразования и после этого разбиваются на подгруппы (квантуются). Затем коэффициенты квантованных блоков пикселей сканируются в порядке считывания для обеспечения возможности использования большого числа нулевых коэффициентов на высоких частотах и после этого кодируются с использованием энтропийного кодирования.
В соответствии со стандартом Н.264 для каждого блока кодируется, например, следующая информация:
- тип кодирования (внутрикадровое, межкадровое, по умолчанию или с пропуском, когда в декодер не передается никакой информации);
- тип разбиения;
- информация о предсказании (ориентация, опорное изображение и т.п.);
- информация о движении (при необходимости;
- закодированные коэффициенты, соответствующие остатку преобразования после квантования и энтропийного кодирования;
- прочее.
Декодирование осуществляется изображение за изображением, и для каждого изображения - макроблок за макроблоком. Для каждого макроблока считываются соответствующие элементы потока. Осуществляется обратное квантование и обратное преобразование коэффициентов блоков каждого макроблока. Затем вычисляется предсказание макроблока и макроблок восстанавливается путем сложения предсказания и декодированного дополнения к предсказанию.
Эти технологии сжатия видеоинформации эффективны, однако они не оптимальны для сжатия изображений, содержащих участки, имеющие одинаковые характеристики, например участки однородной текстуры.
В частности, в стандарте H.264/MPEG-4 AVC пространственное предсказание блока изображения относительно другого блока этого же изображения возможно только в том случае, когда этот другой блок является "соседом" предсказываемого блока и расположен в определенном направлении относительно него, а именно в общем случае выше и слева. Аналогичным образом, предсказание векторов движения блока изображения представляет собой причинное предсказание относительно векторов движения соседних блоков.
Поэтому такой тип предсказания не обеспечивает возможности использовать сходство текстур блоков несвязанных областей с одинаковой текстурой или блоков, которые имеют такую же текстуру и расположены достаточно далеко. Иначе говоря, такая технология не обеспечивает одновременного указания блоков, имеющих общие характеристики, в одном массиве информации. Кроме того, перемещение областей с однородной текстурой от одного изображения на другое также не используется оптимальным образом: действительно, временное предсказание в соответствии со стандартом Н.264 /MPEG-4 AVC дает возможность использовать движение блока от одного изображения на другое, однако не группы таких блоков в зоне с одинаковым движением.
Для разрешения этой проблемы были предложены некоторые способы зонального кодирования для сегментирования изображений видеопоследовательности, чтобы выделить на этих изображениях перед их кодированием области одинакового движения и одинаковой текстуры. Эти области определяют объекты на этих изображениях, на которых может задаваться, например, кодирование с высоким разрешением или, наоборот, кодирование с низким разрешением.
Однако эти способы зонального кодирования требуют передачи в декодирующее устройство, которое принимает видеопоследовательность, карту сегментирования, вычисленную для каждого изображения в кодирующем устройстве, которое передает эту видеопоследовательность. Эта карта сегментирования занимает очень много места в памяти, поскольку границы этой карты в общем случае не соответствуют границам блоков пикселей сегментированных изображений. Кроме того, сегментирование видеопоследовательности на области произвольной формы не является четко определенным: границы карты сегментирования в общем случае не совпадают с границами реальных объектов, которые карта пытается разбить на изображениях видеопоследовательности. По этой причине только представление и передача таких карт сегментирования были стандартизованы (MPEG-4, часть 2), но не их получение.
В международной заявке PCT/FR2009/050278, поданной 20 февраля 2009 г.от имени заявителя по настоящей заявке, предлагается способ сжатия видеоинформации, использующий "кластеры блоков", в котором обеспечивается возможность устранения некоторых из вышеуказанных недостатков. Более конкретно, в соответствии с этим способом определенные макроблоки последовательности изображений группируются в кластеры, если они характеризуются одинаковыми параметрами, например, имеют одинаковые параметры движения. Затем эти одинаковые параметры движения кодируются только один раз для всех макроблоков кластера, и при декодировании всем макроблокам, принадлежащим кластеру, присваивается информация о движении из декодированного кластера. Этот способ обеспечивает улучшение сжатия за счет того, что исключается кодирование избыточной информации.
Однако в этом способе может оказаться, что передача кластеров в потоке видеоданных будет повышать загрузку канала передачи данных.
Действительно, кластеры могут содержать любые макроблоки изображения или группы изображений.
Кроме того, поскольку некоторые блоки или субблоки макроблока могут быть исключены из кластера, то необходимо для каждого макроблока сообщать о таком исключении блоков или субблоков.
Поэтому имеется потребность в новом способе кодирования/декодирования, обеспечивающего устранение по меньшей мере некоторых недостатков известных технических решений и возможность оптимизации передачи потока данных и соответственно повышения скорости передачи.
КРАТКОЕ ОПИСАНИЕ ИЗОБРЕТЕНИЯ
В изобретении предлагается новый подход, который не имеет всех вышеуказанных недостатков известных технических решений, в форме способа кодирования последовательности, содержащей по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера.
В соответствии с изобретением в таком способе по меньшей мере для одной группы изображения последовательности выполняется:
- стадия определения для каждого блока группы по меньшей мере одного характеристического параметра этого блока;
- стадия формирования по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов стадии определения;
- стадия кодирования блоков кластера (или кластеров) для получения для каждого кластера сегментов информации о кодировании кластера, причем сходные характеристические параметры, связанные с каждым из блоков кластера, кодируются для кластера только один раз;
- стадия кодирования блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками, для получения для каждого внешнего блока сегментов информации о кодировании внешних блоков, причем характеристический параметр (или параметры), связанный с каждым из внешних блоков, не кодируется. Вышеуказанный способ включает также:
- стадию формирования потока данных, который представляет собой указанную последовательность и содержит сегменты информации о кодировании кластеров, а также сегменты информации о кодировании внешних блоков, и стадию введения в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп, обеспечивающего возможность идентификации внутри группы внешнего блока (или блоков).
Таким образом, в основе изобретения лежит новый подход, обладающий признаками изобретения, к кодированию изображений и предлагается способ, в соответствии с которым данные, характерные для различных блоков, такие как данные о текстуре, цвете или предсказании движения, объединяются у блоков, имеющих сходную текстуру, сходный цвет или сходный вектор движения. Иначе говоря, если разница между двумя характеристическими параметрами одного типа, например между двумя векторами движения, не превышает заданного порогового значения, то эти два характеристических параметра считаются сходными.
В соответствии с изобретением данные, специфичные для блоков группы, принадлежащих к зонам, имеющим сходные характеристики, такие как текстура, цвет или одинаковое движение, объединяются очень гибко по сравнению с известными способами.
Объединение блоков группы, имеющих сходные характеристики, такие как однородная текстура, внутри одного кластера обеспечивает возможность включения в кластер блоков этой группы, которые удалены друг от друга, то есть не являются соседями (не находятся в "непосредственном" контакте).
Изобретение также оптимизирует количество передаваемой информации и соответственно скорость передачи данных.
В изобретении отпадает необходимость передачи карт сегментирования в декодер, принимающий закодированное изображение (или изображения).
В изобретении также минимизируются затраты на обработку и передачу кластеров по сравнению со способом, описанном в уже упоминавшейся международной заявке PCT/FR2009/050278.
В частности, формирование кластеров из блоков пикселей, объединенных для формирования групп стандартных размеров, упорядочивает интервалы формирования кластеров, когда один или несколько кластеров могут быть сформированы внутри одной и той же группы. Например, в соответствии с одним из предпочтительных вариантов осуществления изобретения группа стандартного размера представляет собой квадратную группу, содержащую восемь блоков пикселей в столбце и восемь блоков пикселей в ряду. Таким образом, можно считать, что кластер всегда будет формироваться внутри группы блоков, содержащих 8×8 пикселей.
Эти группы могут формироваться пространственно внутри изображения или во времени в последовательности изображений.
Кроме того, в соответствии с изобретением в поток данных вводится сегмент информации о разбиении, в результате чего обеспечивается возможность идентификации внутри группы внешнего блока (или блоков), не принадлежащего к одному из кластеров.
Этот сегмент информации о разбиении обеспечивает возможность установления "границы" в группе блоков между блоками, назначенными кластеру, и внешними блоками, которые не имеют каких-либо сходных характеристических параметров с блоками кластера. Кроме того, если группа содержит несколько кластеров, то "граница" проводится так, чтобы она очерчивала контуры кластеров, например, в форме ломаной линии, дающей возможность отделения внешних блоков от блоков, принадлежащих кластеру.
Более того, возможно, что один блок принадлежит двум различающимся кластерам, один из которых, например, сформирован для характеристического параметра типа вектора движения, и другой кластер сформирован для характеристического параметра типа дополнения к предсказанию.
Таким образом, можно передавать только один сегмент информации о разбиении для группы, чтобы передавать блоки, являющиеся внешними по отношению к кластерам внутри группы, в то время как в известном способе, описанном в уже упоминавшейся международной заявке PCT/FR2009/050278, для каждого макроблока необходимо передавать информацию о том, исключены или нет некоторые блоки или субблоки.
Наконец, сходный характеристический параметр, подтверждающий формирование кластера, не кодируется для внешних блоков, что представляет достаточно весомое снижение затрат на обработку и передачу данных.
В соответствии с одним из вариантов осуществления изобретения внешние блоки группы формируют по меньшей мере один ряд и/или по меньшей мере один столбец группы.
В этом случае исключаются все блоки одного и того же ряда или одного и того же столбца.
Таким образом, предлагаемый в изобретении способ кодирования дает возможность сократить затраты на передачу и/или кодирование, и/или обеспечивает возможность повышения скорости обработки, поскольку внутри группы, если один блок является внешним, то ряд и/или столбец, в котором находится внешний блок, также является внешним.
В соответствии с одним из вариантов осуществления изобретения сегмент информации о разбиении группы указывает:
- вертикальное разбиение группы, определяемое смещением вертикальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра);
- или горизонтальное разбиение группы, определяемое смещением горизонтальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра);
- или диагональное разбиение группы, определяемое смещением вертикальной и/или горизонтальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра), и углом наклона относительно вертикальной или горизонтальной оси группы.
Таким образом, способ кодирования в соответствии с настоящим изобретением обеспечивает возможность определения "границы" внутри группы, отделяющей внешние блоки от блоков группы, принадлежащих по меньшей мере одному кластеру. Эта граница может быть вертикальной (тогда внешние блоки группы формируют по меньшей мере один столбец), горизонтальной (тогда внешние блоки группы формируют по меньшей мере один ряд) или диагональной внутри группы в зависимости от характера смещения, которое указывается в информации о разбиении.
Например, в одном из вариантов с "диагональной границей" блоки со сходным характеристическим параметром принадлежат одному и тому же кластеру, граница которого представляет собой ломаную линию или "лестницу" внутри группы. Сегмент информации о разбиении, соответствующий этой ломаной линии, будет кодироваться в форме диагональной прямой линии, проходящей через блоки, формирующие "ступеньки лестницы".
При декодировании для группы, содержащей только один кластер, декодер будет иметь возможность, например, декодировать сегмент информации о разбиении, представляющем диагональную границу, и будет считать, что блок, пересекаемый диагональной прямой линией, принадлежит кластеру, если большая часть пикселей этого блока расположена на стороне кластера относительно диагональной прямой линии, или же этот блок является внешним блоком, если большая часть пикселей этого блока расположена на другой стороне от кластера относительно диагональной прямой линии.
В соответствии с другим примером "диагональной границы" первый и последний блок диагонали могут быть внешними блоками, не принадлежащими никакому кластеру. Этот вариант повышает выигрыш при передаче информации путем формирования по меньшей мере одного столбца и/или ряда внешних блоков в группе. Правило разбиения этого типа будет известно декодеру.
В соответствии с одним из признаков изобретения характеристический параметр принадлежит к группе, содержащей:
- величину типа кодирования с предсказанием, например внутрикадровое предсказание, межкадровое предсказание или предсказание по умолчанию или с пропуском;
- величину вектора движения;
- нулевую величину дополнения предсказания, то есть "идеальное" предсказание;
- величину типа преобразования (преобразование, выполненное на блоках 4×4 пикселей, 8×8 пикселей, 16×16 пикселей и т.п., ориентированное преобразование и т.п.);
- величину коэффициента компенсации освещенности (коэффициенты, применяемые к предсказанию, получаемому в результате компенсации движения типа a*P+b, где a - весовой коэффициент, b - коэффициент смещения, и P - величина предсказания);
- величину весового коэффициента различных предсказаний.
- прочее.
В этом случае возможно очень гибкое объединение и снижение затрат на передачу информацию по сравнению с известными способами.
Величина характеристического параметра, связанного с блоком кластера, может, например, соответствовать величине вектора движения между блоком кластера текущего изображения и блоком опорного изображения.
Более того, в зависимости от ситуации, когда кластер это допускает, в способе кодирования определяется несколько сходных характеристических параметров для подгруппы блоков, составляющих кластер. В этом случае для кластера кодируются эти несколько характеристических параметров.
Например, если два блока одной и той же группы имеют сходную величину направления предсказания и сходную величину вектора движения, то кластер, формируемый этими двумя блоками, содержит два сходных характеристических параметра. В соответствии с другим примером в кластер объединяются блоки, имеющие одинаковые параметры движения, а именно вектор или векторы движения, коэффициенты изображения, используемые для компенсации движения в списке изображений, направление предсказания вектора движения, дополнение предсказания вектора движения. В конкретном случае, в котором режим предсказания назначает два вектора движения, блоки кластеров могут также иметь общие весовые коэффициенты этих векторов.
Можно отметить, что величина характеристического параметра, связанного с кластером, может соответствовать величине характеристического параметра, связанного с блоком кластера.
В другом примере величина характеристического параметра, связанного с кластером, может соответствовать срединной величине сходных характеристических параметров, связанных с каждым блоком кластера, или с округленной величиной характеристического параметра блока кластера. Например, если несколько блоков группы имеют сходные векторы движения с расстоянием между ними, не превышающим заданного порогового значения (например, 0,0005), то эти блоки могут быть объединены в одном кластере, и величина характеристического параметра, связанного с кластером, может соответствовать среднему значению величин векторов движения каждого блока кластера.
В изобретении также предлагается способ декодирования потока данных, представляющего собой поток данных, содержащий по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера.
В соответствии с изобретением в таком способе декодирования по меньшей мере для одной группы блоков, закодированных в потоке данных, выполняется:
- стадия извлечения по меньшей мере одного сегмента информации о разбиении группы, имеющегося в потоке данных, в результате чего обеспечивается возможность идентификации внутри этой группы таких блоков, которые являются внешними блоками и не принадлежат ни к одному кластеру группы, причем кластер формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- стадия декодирования блоков по меньшей мере одного кластера группы на основе сегментов информации о кодировании кластеров, имеющихся в потоке данных, включающая:
- стадию декодирования блока кластера, на которой осуществляется декодирование характеристического параметра или параметров, закодированных только один раз для этого кластера;
- стадию декодирования других блоков кластера с учетом уже декодированного характеристического параметра (или параметров);
- стадию декодирования внешних блоков на основе сегментов информации кодирования внешних блоков, имеющихся в потоке данных, с учетом по меньшей мере одного характеристического параметра уже декодированных соседних блоков.
Таким образом, в предлагаемом в изобретении способе декодирования обеспечивается возможность получения и считывания информации кодирования и разбиения для декодирования разных групп и восстановления последовательности изображений.
Как уже указывалось в отношении кодирования, информация о разбиении, связанная с группой, обеспечивает возможность определения "границы" между блоками кластера или кластеров и внешними блоками внутри одной и той же группы.
Кроме того, в соответствии с изобретением характеристический параметр, связанный с каждым внешним блоком, определяется в зависимости от характеристических параметров уже декодированных соседних блоков. Иначе говоря, этот параметр будет получен (унаследован) от уже декодированных соседних блоков. Поэтому необходимо понимать, что этот механизм наследования формирует новые кластеры, "границы" которых выходят за пределы группы в последовательности изображений, без необходимости передачи дополнительной информации.
Предложенный в настоящем изобретении способ декодирования специально разработан для декодирования потока данных, закодированных с использованием вышеописанного способа кодирования. Безусловно, он может содержать различные признаки этого способа кодирования.
В соответствии с одним из вариантов в способе декодирования для группы обрабатываемых блоков обеспечивается:
- когда сегмент информации о разбиении указывает вертикальное разбиение, характеристический параметр, связанный с внешним блоком, принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно слева от внешнего блока;
- когда сегмент информации о разбиении указывает горизонтальное разбиение, характеристический параметр, связанный с внешним блоком, принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно над внешним блоком;
- когда сегмент информации о разбиении указывает диагональное разбиение, характеристический параметр, связанный с внешним блоком, равен комбинации величин характеристических параметров, связанных с соседними блоками, расположенными слева и/или сверху и/или сверху слева от внешнего блока в соответствии с положением линии диагонального разбиения в группе обрабатываемых блоков.
Таким образом, в зависимости от характера "границы", вертикальной, горизонтальной или диагональной, "внешний" блок внутри группы получает (наследует) характеристический параметр от уже закодированного соседнего блока, расположенного непосредственно слева, сверху или сверху слева от этого внешнего блока.
В изобретении также предлагается поток данных, представляющий собой последовательность, содержащую по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера. В соответствии с изобретением поток данных содержит:
- сегмент информации о разбиении по меньшей мере одной группы изображения последовательности, обеспечивающий возможность идентификации внутри этой группы таких блоков, которые являются внешними блоками, не принадлежащими ни к одному кластеру группы, причем кластер формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- сегменты информации о кодировании кластеров, полученные по меньшей мере для одной группы в процессе кодирования блоков по меньшей мере одного кластера, причем по меньшей мере один сходный характеристический параметр, связанный с каждым из блоков кластера, кодируется для кластера только один раз; и
- сегменты информации о кодировании внешних блоков, полученные по меньшей мере для одной группы в процессе кодирования внешних блоков группы, причем по меньшей мере один сходный характеристический параметр, связанный с каждым из внешних блоков, не кодируется.
Такой поток данных может быть сформирован с использованием вышеописанного способа кодирования. Такой поток данных конечно может иметь различные признаки, присущие предлагаемому в изобретении способу кодирования.
В изобретении также предлагается устройство кодирования последовательности, содержащей по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера.
В соответствии с изобретением такое устройство кодирования содержит следующие средства, включаемые по меньшей мере для одной группы изображения последовательности:
- средство определения для каждого блока группы по меньшей мере одного характеристического параметра этого блока;
- средство формирования по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов, полученных средством определения;
- средство кодирования блоков кластера (или кластеров) для получения для каждого кластера сегментов информации о кодировании кластера, причем сходные характеристические параметры, связанные с каждым из блоков кластера, кодируются для кластера только один раз;
- средство кодирования блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками, для получения для каждого внешнего блока сегментов информации о кодировании внешних блоков, причем сходный характеристический параметр (или параметры), связанный с каждым из внешних блоков, не кодируется;
и устройство содержит также:
- средство формирования потока данных, который представляет собой указанную последовательность и содержит сегменты информации о кодировании кластеров, а также сегменты информации о кодировании внешних блоков, и
- средство введения в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп, обеспечивающего возможность идентификации внутри группы внешнего блока (или блоков).
Такое устройство кодирования особенно подходит для осуществления вышеописанного способа кодирования. Это может быть, например, кодер типа MPEG или Н.264 или кодер по одному из будущих стандартов кодирования.
В изобретении также предлагается устройство декодирования потока данных, представляющего собой последовательность, содержащую по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера.
В соответствии с изобретением такое устройство декодирования содержит следующие средства, включаемые по меньшей мере для одной группы закодированных блоков потока данных:
- средство извлечения по меньшей мере одного сегмента информации о разбиении группы, имеющегося в потоке данных, в результате чего обеспечивается возможность идентификации внутри этой группы таких блоков, которые являются внешними блоками, не принадлежащими ни к одному кластеру группы, причем кластер формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- средство декодирования блоков по меньшей мере одного кластера группы на основе сегментов информации о кодировании кластеров, имеющихся в потоке данных, включающее:
- средство декодирования блока кластера, осуществляющее декодирование характеристического параметра (или параметров), закодированного только один раз для этого кластера;
- средство декодирования других блоков кластера с учетом уже декодированного характеристического параметра (или параметров);
- средство декодирования внешних блоков на основе сегментов информации кодирования внешних блоков, имеющихся в потоке данных, с учетом по меньшей мере одного характеристического параметра уже декодированных соседних блоков.
Такое декодирующее устройство особенно подходит для осуществления вышеописанного способа декодирования. Это может быть, например, декодер типа MPEG или Н.264 или декодер по одному из будущих стандартов сжатия.
В изобретении также предлагается по меньшей мере одна компьютерная программа, которая содержит команды для осуществления вышеописанного способа кодирования и/или декодирования, когда эта программа или эти программы выполняются процессором.
Можно отметить, что предлагаемый в изобретении способ кодирования, так же как и способ декодирования, может быть осуществлен в разных вариантах, в частности с использованием аппаратных средств или программных средств.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Другие характеристики и достоинства изобретения станут более понятными из нижеприведенного описания конкретного варианта его осуществления, который является всего лишь его иллюстративным, неограничивающим примером, и из прилагаемых чертежей, на которых показано:
- фигуры 1А и 1В - виды групп блоков, закодированных в соответствии с одним из вариантов осуществления изобретения, с использованием вертикального и диагонального разбиений соответственно;
- фигура 2 - блок-схема основных стадий способа кодирования в соответствии с одним из вариантов осуществления изобретения;
- фигура 3 - блок-схема основных стадий способа декодирования в соответствии с одним из вариантов осуществления изобретения;
- фигура 4 - структура потока данных, формируемого в соответствии с одним из вариантов осуществления изобретения;
- фигура 5 - иллюстрация декодирования группы блоков с использованием горизонтального разбиения;
- фигуры 6, 7 - блок-схемы устройств кодирования и декодирования соответственно, в соответствии одним из вариантов осуществления изобретения.
ОПИСАНИЕ ВАРИАНТА ОСУЩЕСТВЛЕНИЯ ИЗОБРЕТЕНИЯ
Принцип изобретения
Принцип изобретения заключается в формировании одного или нескольких кластеров блоков внутри по меньшей мере одной группы блоков стандартного размера.
Такие кластеры формируются путем группирования блоков, имеющих сходный характеристический параметр, внутри одной и той же группы. Таким образом, блоки группы, характеристические параметры которых не сходны с характеристическим параметром другого блока, "исключаются". Такие блоки группы, которые не принадлежат к какому-либо кластеру, называются внешними блоками.
Таким образом, термин "группа", как он используется в настоящем описании, относится к набору блоков заданного размера, имеющих квадратную или прямоугольную форму, таких как блоки 4×4, 8×8 или 8×4 пикселей и т.п. Кластер соответствует подгруппе блоков такой группы и содержит блоки, имеющие по меньшей мере один сходный или близкий характеристический параметр. Группа может содержать один или несколько кластеров или вообще может не содержать ни одного кластера. Один блок может входить в несколько кластеров. Например, пусть первый блок группы имеет характеристический параметр типа вектора движения, равный mv1, и характеристический параметр типа дополнения к предсказанию, равный нулю, второй блок этой же группы имеет характеристический параметр типа вектора движения, примерно равный mv1, и третий блок этой же группы имеет характеристический параметр типа дополнения к предсказанию, равный нулю. В этом случае первый и второй блоки формируют первый кластер, связанный с характеристическим параметром типа вектора движения, равного mv1, а первый и третий блоки формируют второй кластер, связанный с характеристическим параметром типа дополнения к предсказанию, равного нулю.
Предлагаемый в изобретении способ также обеспечивает возможность формирования потока данных, который, среди прочего, содержит по меньшей мере один компонент информации о разбиении, определяющий "границу", разделяющую блоки группы, принадлежащие кластерам, от блоков, являющихся внешними для этой группы. Характеристический параметр, связанный с блоками одного кластера, кодируется лишь один раз для кластера, а характеристический параметр, связанный с каждым из внешних блоков, не кодируется, что дает возможность уменьшить объем передаваемой информации.
Наконец, на декодирующей стороне эта информация о разбиении используется для идентификации внешних блоков группы. Декодирование внешнего блока, идентифицированного таким образом, осуществляется с использованием характеристического параметра одного из уже декодированных соседних блоков.
Описание вариантов осуществления предложенного способа кодирования
Ниже описывается логика предложенного в изобретении способа кодирования.
Более конкретно, на фигурах 1А и 1В иллюстрируются группы блоков, которые должны кодироваться в соответствии с одним из вариантов осуществления изобретения.
Этот вариант связан в такой ситуацией, в которой группы формируются равномерно в каждом изображении последовательности и имеют блоки стандартного размера 4×4 или 8×8 пикселей.
По меньшей мере в одной группе блоков (указаны номерами 1, 2 или 3), для каждого из шестнадцати блоков этой группы определяется величина по меньшей мере одного характеристического параметра этого блока (например, величина направления предсказания и/или величина вектора движения, связанная с этим блоком).
Затем в зависимости от этих параметров блоки объединяются внутри одной и той же группы для формирования кластеров. Можно напомнить, что кластер формируется из блоков группы, имеющих сходные характеристические параметры.
Например, на фигуре 1А показаны две группы, обозначенные номерами 1 и 2.
Группа 1 фигуры 1А, расположенная слева на фигуре 1А, хорошо иллюстрирует понятие кластера. После выполнения стадии определения характеристических параметров, связанных с каждым блоком, блоки первой группы 1 группируются в три кластера: 11 (соответствует первьм двум столбцам первой группы 1), 12 (соответствует двум последним рядам и двум последним столбцам первой группы 1) и 18 (соответствует двум первым рядам и двум последним столбцам первой группы 1, а именно блокам 13-16). Например, каждый из блоков первого кластера 11 связан с вектором движения, равным примерно mv6, каждый из блоков второго кластера 12 связан с вектором движения, равным примерно mv4, и каждый из блоков третьего кластера 18 связан с вектором движения, равным примерно mv3.
В соответствии с изобретением блоки каждого кластера кодируются, в результате чего формируется информация о кодировании кластеров для каждого кластера. При этом вектор движения для каждого кластера кодируется лишь один раз. Этот характеристический параметр может быть закодирован вместе с блоками в информации по кодированию кластеров или же за пределами этой информации.
Например, вектор mv6 движения кодируется только один раз для восьми блоков, формирующих первый клас