ОБЛАСТЬ ТЕХНИКИ
Изобретение относится к кодированию и декодированию изображений и особенно потоков видеоданных, состоящих из ряда последовательных изображений. Более конкретно, изобретение относится к сжатию изображений или последовательностей изображений путем представления изображений множеством блоков.
Таким образом, изобретение может быть применено, например, для кодирования видеоинформации, осуществляемой современными видеокодерами (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 движения кодируется только один раз для восьми блоков, формирующих первый кластер 11, вектор mv4 движения кодируется только один раз для четырех блоков, формирующих второй кластер 12, и вектор mv3 движения кодируется только один раз для четырех блоков, формирующих третий кластер 18. Величина характеристического параметра первой группы 11 соответствует, например, вектору движения блока 100. Иначе говоря, характеристический параметр (вектор mv6 движения) кодируется для блока 100, который является первым блоком кластера 11 в заданном порядке сканирования группы, и не кодируется больше для других блоков кластера. В другом варианте, если векторы движения некоторых блоков группы достаточно близки, что позволяет группировать их в кластеры, то величина характеристического параметра, связанного с кластером, может быть равна среднему значению векторов движения блоков, составляющих кластер.
Необходимо отметить, что группа 1 не содержит каких-либо внешних блоков. В этом случае нет необходимости в передаче информации о разбиении.
Группа 2 фигуры 1А иллюстрирует ситуацию, в которой группа содержит по меньшей мере один кластер и внешние блоки. Более конкретно, после выполнения стадии определения характеристических параметров, связанных с каждым блоком, некоторые блоки второй группы 2, расположенной справа на фигуре 1А, группируются в кластере 17, сформированном тремя последними столбцами группы 2. Другие блоки группы 2, формирующие первый столбец группы, соответствуют внешним блокам, которые не имеют каких-либо характеристических параметров, сходных с характеристическими параметрами блоков кластера 17.
Как показано на фигуре 1А, вторая группа 2 имеет "границу", соответствующую вертикальному разбиению этой группы. Это разбиение используется для идентификации внешних блоков 101, 102, 103 и 104 второй группы 2, расположенных слева от линии 1000 границы.
В соответствии с изобретением эти блоки 101-104 указываются как внешние блоки в информации о разбиении группы 2, и их характеристический параметр (например, вектор движения) не кодируется. Поскольку этот столбец внешних блоков "не кодируется", то обеспечивается возможность улучшения эффективности кодирования.
Блоки второй группы 2, расположенные справа от линии 1000 границы, будут получать после декодирования характеристический параметр (например, вектор mv2 движения), связанный с кластером 17. Внешние блоки 101-104, расположенные слева от линии 1000 границы, получают после декодирования характеристический параметр, связанный с уже закодированными/декодированными блоками, расположенными рядом с ними (соседние блоки). Например, как указывается далее в отношении декодирования, блокам 101-104 будет назначен характеристический параметр соседнего блока, расположенного слева, например блоку 101 будет назначен вектор движения блока 15, блоку 102 будет назначен вектор движения блока 16 и т.д.
В зависимости от используемой схемы кодирования дополнение к предсказанию будет или не будет вычисляться для каждого из этих внешних блоков и затем, в зависимости от ситуации, передаваться в потоке данных.
Для извещения декодера об этом разбиении группы в поток данных, представляющий собой последовательность изображений, вводится и кодируется сегмент информации о разбиении. Например, можно закодировать смещение вертикальной линии относительно начала группы блоков для указания расстояния от линии разбиения в начале группы. Например, на фигуре 1А смещение вертикальной линии равно одному блоку относительно начала второй группы 2, а именно относительно первого блока 101 второй группы 2.
При декодировании декодер может декодировать информацию о разбиении, представляющую границу, и получить из нее величину "незакодированного" характеристического параметра, как это описывается ниже.
Таким образом, в потоке данных передается информация о кластерах группы. Если группа содержит один кластер, то все блоки кластера получают после декодирования величины параметров, указанных для кластера.
Таким образом, информация о группах передается на двух уровнях. Первый уровень фиксирован и соответствует разбиению изображения на группы стандартного размера, внутри которых могут формироваться кластеры. Второй уровень обеспечивает возможность разбиения группы на кластеры для учета при этом разбиении характеристик изображения и для кодирования, причем только один раз для одного кластера, характеристического параметра, сходного для различных блоков, формирующих кластер.
Эта передача информации о группе на двух уровнях требует меньше затрати в то же время она остается адаптивной.
Пример второй группы 2 фигуры 1А иллюстрирует вертикальное разбиение кластера.
Естественно, могут быть предусмотрены и другие варианты разбиения, в частности, горизонтальное или диагональное разбиение.
На фигуре 1В иллюстрируется другой пример группы, указанной номером 3. Группа 3 на фигуре 1 В разбита по диагонали. Прямая линия 1050 границы для разбиения группы 3, или, более точно, ломаная линия 1060, показанные на фигуре 1В, отграничивают кластер, указанный номером 6, относительно подгруппы внешних кластеров, обозначенной номером 5.
В соответствии с рассматриваемым вариантом учитываются блоки, имеющие сходный характеристический параметр и принадлежащие к одному и тому же кластеру 6, граница которого обозначена ломаной линией 1060 или "ступенчатой" линией внутри группы. Информация о разбиении, соответствующая этой ломаной линии 1060, будет кодироваться в форме прямой диагональной линии, проходящей через блоки, формирующие "ступеньки". Таким образом, блоки 1010, 1020, 1030, 1040, принадлежащие кластеру 6, характеризуются тем, что большая часть их пикселей расположена на стороне кластера, справа от прямой диагональной линии 1050.
При декодировании декодер может декодировать, например, для группы 3, содержащей кластер 6, информацию о разбиении, представляющую границу по диагонали, и будет учитывать, что блок, пересекаемый прямой диагональной линией 1050, принадлежит кластеру 6, если большая часть пикселей этого блока расположена на стороне кластера 6 относительно прямой диагональной линии 1050, или является внешним блоком, если большая часть пикселей этого блока расположена на другой стороне от кластера 6 относительно прямой диагональной линии 1050.
В соответствии с другим вариантом может быть рассмотрено правило, в соответствии с которым кластеры блоков формируются таким образом, чтобы блоки, являющиеся внешними по отношению к такому блоку, формировали по меньшей мере один столбец и/или по меньшей мере один ряд внешних блоков. Таким образом, блоки 1010 и 1040 не принадлежат кластеру 6, а принадлежат столбцу или ряду внешних блоков. При этом блоки 1020 и 1030 присоединены к кластеру 6. Правило разбиения этого типа будет известно декодеру.
В этом конкретном случае, а именно в случае диагонального разбиения можно, например, закодировать сегмент информации о разбиении, представляющий смещение вертикальной линии и угол поворота относительно горизонтали.
В соответствии с другим конкретным вариантом, который не является оптимальным с точки зрения изобретения, по меньшей мере одна группа изображения, которое должно быть закодировано, может быть закодирована с использованием известной технологии. В этом случае по меньшей мере одна группа изображения, которое должно быть закодировано, может быть такой, что кодируется характеристический параметр, связанный с блоком, не принадлежащим ни к одному из кластеров этой группы.
На фигуре 2 показаны более подробно различные стадии, выполняемые при кодировании последовательности изображений в соответствии с одним из вариантов осуществления изобретения.
Более конкретно, на стадии 20 принимается текущее изображение 20, предварительно разбитое на группы стандартных размеров, например группы, состоящие из 4×4 блоков по 8×8 пикселей, как показано на фигурах 1А и 1В.
В способе кодирования по настоящему изобретению осуществляются нижеуказанные стадии по меньшей мере для одной группы текущего изображения (стадия 20), например для второй группы 2, показанной на фигуре 1А.
Прежде всего, для каждого блока этой группы 2 определяется характеристический параметр этого блока (стадия 21). Это может быть, например, вектор движения, связанный с этим блоком.
Затем в группе 2 формируются кластеры (стадия 22) из блоков, имеющих сходный характеристический параметр. Например, блоки, имеющие вектор движения, равный примерно mv2, группируются, и из них формируется один кластер 17, показанный на фигуре 1А. Другие блоки группы 2, которые не имеют какой-либо сходный характеристический параметр, являются внешними блоками.
В варианте, показанном на фигуре 1А, например, внешние блоки 101-104 группы 2, которые не принадлежат кластеру 17, кодируются (стадия 23) для получения информации о кодировании внешних блоков. Можно отметить, что в соответствии с изобретением характеристический параметр (например, вектор движения), связанный с каждым из этих четырех блоков, не кодируется.
Затем осуществляется кодирование блоков кластера 17 (стадия 24) для получения информации о кодировании кластеров. Необходимо отметить, что в соответствии с изобретением, поскольку двенадцать блоков кластера 17 имеют вектор движения, величина которого равна примерно mv2, то этот характеристический параметр кодируется только один раз для всего кластера 17.
Порядок кодирования кластером или внешних блоков группы может изменяться в соответствии с порядком сканирования (просмотра) блоков в группе. Таким образом, если первые просматриваемые блоки являются внешними блоками, то кодируются эти внешние блоки, а затем кодируется кластер, когда обнаруживается блок, принадлежащий кластеру. Если сначала обнаруживается блок, принадлежащий кластеру, то сначала кодируются блоки кластера, а затем процесс переходит к следующему незакодированному блоку в порядке сканирования блоков. Если этот блок принадлежит новому кластеру, то кодируются все блоки, принадлежащие этому новому кластеру. Если этот блок является внешним блоком, то он кодируется "в индивидуальном порядке", и так далее, пока не будут просмотрены все блоки в группе.
Затем формируется поток данных (стадия 25), содержащий по меньшей мере одну структуру данных, представляющую вторую группу 2. Эта структура данных содержит сегменты информации о кодировании кластеров, соответствующие кодированию кластера 17, и сегменты информации для кодирования блоков, являющихся внешними по отношению к этому кластеру, которые соответствуют кодированию блоков 101 -104 на предыдущих стадиях 23 и 24.
На последней стадии 26 в поток данных или в структуру данных, связанную с группой 2, вводится сегмент информации о разбиении, соответствующий вертикальной граничной линии 1000, которая обеспечивает идентификацию внешних блоков 101-104 внутри группы 2.
На фиг.4 приведен пример потока 4000 данных, полученного в результате осуществления способа кодирования в соответствии с одним из вариантов осуществления изобретения.
В этом примере каждая группа блоков пикселей изображения, входящего в последовательность изображений, кодируется в этом потоке 4000 в форме структуры 40 данных. Эта структура 40 данных, представляющая группу блоков пикселей (например, группу 2 фигуры 1А), содержит сегмент 41 информации о разбиении, содержащий поле 42, указывающее характер разбиения (вертикальное, горизонтальное, диагональное), поле 43, указывающее смещение, обеспечивающее возможность определить граничную линию в группе, и поле 44, указывающее наклон граничной линии. Кроме того, эта структура данных содержит также информацию 60 о кодировании внешних блоков (например, блоков 101-104 группы 2 фигуры 1А), а также информацию 70 о кодировании кластеров, относящуюся к блокам, входящим в один или несколько кластеров группы (например, кластер 17 группы 2 фигуры 1А). Можно напомнить, что эти блоки 70 информации о кодировании кластеров содержат по меньшей мере один сходный характеристический параметр, связанный с кластером, который кодируется только один раз для всего кластера.
В конкретном случае, когда кластер связан с несколькими характеристическими параметрами, сегмент информации о разбиении, вводимый в поток данных, также содержит количество характеристических параметров, закодированных для кластера. Например, сегмент информации о разбиении группы блоков указывает кластер, сформированный на основе двух сходных характеристических параметров: вектора движения и коэффициентов изображений, используемых для компенсации движения.
Можно напомнить, что разбиение для группы кодируется только один раз, в форме сегмента информации о разбиении.
Кроме того, в этом конкретном случае сегменты информации о кодировании блоков, являющихся внешними по отношению к кластеру, показывают, что некоторые блоки являются внешними, поскольку они не имеют такого же вектора движения, в то время как другие блоки являются внешними, поскольку они не имеют таких коэффициентов изображений, используемых для компенсации движения.
Кроме того, в этом конкретном случае, когда кластер связан с несколькими четко различимыми характеристическими параметрами, в соответствии с изобретением с каждым характеристическим параметром может связываться сегмент данных о приоритете, которые указывают декодеру порядок декодирования данных, связанных с кластерами.
Описание вариантов осуществления способа декодирования
На фигуре 3 представлены основные стадии способа декодирования в соответствии с одним из вариантов осуществления изобретения.
Прежде всего, декодер принимает поток F данных (стадия 30), представляющий собой последовательность изображений, например поток 4000, описанный со ссылками на фигуру 4.
Способ предусматривает осуществление нижеуказанных стадий по меньшей мере для одной структуры данных, представляющей собой группу блоков пикселей.
На стадии 31 осуществляется извлечение сегмента информации о разбиении группы блоков пикселей, закодированных в структуре данных. Эта стадия извлечения используется для идентификации присутствия внутри группы одного или нескольких кластеров и внешних блоков, которые не относятся ни к одному кластеру закодированной группы. Для упрощения ниже будет рассмотрен случай закодированной группы, содержащей только один кластер. Безусловно, специалисты в данной области техники легко распространят этот случай на группу, содержащую несколько кластеров.
Таким образом, декодер может восстановить граничную линию группы, разделяющую кластеры и внешние блоки, путем считывания информации о разбиении. Как уже указывалось со ссылками на фигуру 4, этот сегмент 41 информации о разбиении может содержать, например, данные о характере, смещении и наклоне граничной линии.
Затем декодер осуществляет декодирование блоков кластера группы (стадия 32). Эта стадия состоит из двух подэтапов 320 и 321:
- на первом подэтапе 320 для блока кластера (например, первого блока в соответствии с заданным порядком сканирования при декодировании) обеспечивается декодирование характеристического параметра кластера; можно напомнить, что этот характеристический параметр для всего кластера кодировался только один раз;
- на втором подэтапе 321 обеспечивается декодирование других блоков кластера, с учетом уже декодированного характеристического параметра, иначе говоря, другим блокам кластера назначается одна и та же величина характеристического параметра. Наконец, на стадии 33 декодер осуществляет декодирование блоков, являющихся внешними относительно кластера, с учетом по меньшей мере одного характеристического параметра уже декодированных соседних блоков.
В частности, при этом декодировании учитывается граничная линия, которая может быть вертикальной, горизонтальной или диагональной. Таким образом, в соответствии с одним из вариантов осуществления изобретения:
- когда информация о разбиении указывает на вертикальное разбиение, характеристический параметр, связанный с внешним блоком, принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно слева от внешнего блока;
- когда информация о разбиении указывает на горизонтальное разбиение, характеристический параметр, связанный с внешним блоком, принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно над внешним блоком;
- когда информация о разбиении указывает на диагональное разбиение, характеристический параметр, связанный с внешним блоком, принимается равным комбинации величин характеристических параметров, связанных с соседними блоками, расположенными слева и/или над внешним блоком и/или сверху слева от внешнего блока.
На фигуре 5 представлен другой пример декодирования внешних блоков группы блоков, разбитых горизонтально (показано горизонтальной линией 5000). На фигуре 5 представлены две группы 51 и 50, причем группа 51 уже декодирована. Горизонтальная граничная линия 5000 указывает горизонтальное разбиение группы 50 блоков. Эта граница отделяет кластер 500, характеристическим параметром которого является вектор mv7 движения, от внешних блоков 501-504.
В соответствии с одним из вариантов осуществления изобретения декодер присваивает внешнему блоку 501 вектор mv8 движения, связанный с соседним блоком 505 группы 51, расположенным над блоком 501 группы 50. Аналогичным образом, декодер присваивает блокам 502, 503, 504 векторы mv9, mv10, mv11 движения блоков 506, 507, 508, соответственно расположенных над этими блоками.
В зависимости от использованной схемы кодирования декодер осуществляет компенсацию движения с использованием вектора движения, присвоенного внешнему блоку, и добавляет к величинам, предсказанным для внешнего блока, возможные дополнения предсказания, полученные в потоке данных.
В соответствии с одним из альтернативных вариантов внешнему блоку 502 присваивается линейная комбинация (например, среднее значение) векторов движения блоков 505, 506 и 507, расположенных соответственно сверху слева, сверху и сверху справа от внешнего блока 502.
Таким образом, можно формировать новые кластеры для расширения кластеров уже декодированных групп. Например, блоки 505 и 501 формируют новый кластер с вектором mv8 движения в качестве его характеристического параметра.
В конкретном случае, когда кластер связан с несколькими характеристическими параметрами, на вышеописанной стадии извлечения обеспечивается также возможность идентификации различных характеристических параметров, связанных с этим кластером. Затем в способе декодирования осуществляется итерация стадий декодирования блоков кластера и декодирования блоков, являющихся внешними по отношению к кластеру для каждого из идентифицированных характеристических параметров.
Далее, в другом случае, когда сегмент информации о разбиении представляет диагональное разбиение, декодер может декодировать, например, для группы, содержащей один кластер, сегмент информации о разбиении, представляющий диагональную граничную линию, и может назначать блок, пересекаемый этой диагональю, кластеру, если большая часть пикселей этого кластера расположена рядом с кластером относительно диагональной граничной линии.
Структура кодирующего и декодирующего устройств
На фигурах 6 и 7 представлена упрощенная структура кодирующего и декодирующего устройств соответственно в соответствии с вышеописанными вариантами осуществления изобретения.
Как показано на фигуре 6, в состав кодирующего устройства этого типа входит запоминающее устройство 61, содержащее буферную память, блок 62 обработки информации с микропроцессором µP, выполняющим компьютерную программу 63, обеспечивающую осуществление предлагаемого в изобретении способа кодирования.
При инициализации процесса команды компьютерной программы 63 загружаются, например, в ОЗУ и затем могут выполняться микропроцессором блока 62 обработки информации. Блок 62 обработки информации вводит последовательность, содержащую по меньшей мере одно изображение. Микропроцессор блока 62 обработки информации осуществляет стадии вышеописанного способа кодирования путем выполнения команд компьютерной программы 63 для кодирования последовательности изображений. Для этого кодирующее устройство содержит, в дополнение к буферной памяти 61, средство для определения для каждого из блоков по меньшей мере одной группы изображения по меньшей мере одного характеристического параметра блока, средство для формирования по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, средство для кодирования блоков кластера или кластеров, средство для кодирования блоков внешней группы, которые не принадлежат ни к одному кластеру, средство для формирования потока данных, представляющего последовательность изображений, и средство для введения в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп. Управление указанными средствами осуществляет микропроцессор блока 62 обработки информации. Таким образом, блок 62 обработки передает по меньшей мере в одно декодирующее устройство поток данных, представляющий собой последовательность изображений, который содержит информацию о разбиении, кодировании кластеров и кодировании внешних блоков.
Как показано на фигуре 7, в состав декодирующего устройства этого типа входит запоминающее устройство 71, содержащее буферную память, блок 72 обработки информации, снабженный, например, микропроцессором µР, выполняющим компьютерную программу 73, обеспечивающую осуществление предлагаемого в изобретении способа декодирования.
При инициализации процесса команды компьютерной программы 73 загружаются, например, в ОЗУ и затем могут выполняться микропроцессором блока 72 обработки информации. Блок 72 обработки информации вводит поток данных, представляющий собой последовательность изображений, который содержит информацию о разбиении, кодировании кластеров и кодировании внешних блоков. Микропроцессор блока 72 обработки информации осуществляет стадии вышеописанного способа декодирования путем выполнения команд компьютерной программы 73 для декодирования закодированных блоков. Для этого декодирующее устройство содержит, в дополнение к буферной памяти 71, средство для извлечения по меньшей мере одного сегмента информации о разбиении группы, средство для декодирования блоков одного кластера группы на основе информации о кодировании кластеров, имеющейся в потоке данных, и средство для декодирования внешних блоков по информации о кодировании внешних блоков, имеющейся в потоке данных. Управление указанными средствами осуществляет микропроцессор блока 72 обработки информации.
Изобретение относится к вычислительной технике. Технический результат заключается в повышении эффективности кодирования изображений. Способ кодирования последовательности, содержащей по меньшей мере одно изображение, в котором по меньшей мере для одной группы изображения последовательности выполняется: определение для каждого блока группы по меньшей мере одного характеристического параметра этого блока; формирование по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов определения; кодирование блоков по меньшей мере одного кластера для получения сегментов информации о кодировании кластера, причем сходные характеристические параметры, связанные с каждым из блоков кластера, кодируются для него только один раз; кодирование блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками, для получения сегментов информации о кодировании внешних блоков, причем характеристические параметры, связанные с каждым из внешних блоков, не кодируются; формирование потока данных, содержащего сегменты информации о кодировании кластеров и кодировании внешних блоков, и введение в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп, обеспечивающего идентификацию внутри группы внешнего блока (или блоков). 6 н. и 4 з.п. ф-лы, 8 ил.
1. Способ кодирования последовательности, содержащей по меньшей мере одно изображение, причем изображение (20) формируется блоками пикселей, объединенными в группы (1) стандартного размера,
отличающийся тем, что в нем по меньшей мере для одной группы (1) изображения последовательности выполняется:
- стадия (21) определения для каждого блока группы по меньшей мере одного характеристического параметра этого блока;
- стадия (22) формирования по меньшей мере одного кластера (11), содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов стадии определения;
- стадия (24) кодирования блоков по меньшей мере одного кластера для получения для каждого кластера сегментов (70) информации о кодировании кластера, причем сходные характеристические параметры, связанные с каждым из блоков кластера (11), кодируются для него только один раз;
- стадия (23) кодирования блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками (101), для получения для каждого внешнего блока сегментов (60) информации о кодировании внешних блоков, причем характеристические параметры, связанные с каждым из внешних блоков, не кодируются; и что в способе также выполняется:
- стадия формирования (25) потока (4000) данных, который представляет собой указанную последовательность и содержит сегменты информации о кодировании кластеров, а также сегменты информации о кодировании внешних блоков, и
- стадия (26) введения в поток (4000) данных по меньшей мере одного сегмента (41) информации о разбиении группы или групп, обеспечивающего идентификацию внутри группы внешнего блока (или блоков).
2. Способ кодирования по п. 1, отличающийся тем, что внешние блоки (101) группы (1) формируют по меньшей мере один ряд и/или по меньшей мере один столбец этой группы.
3. Способ кодирования по п. 1, отличающийся тем, что сегмент (41) о разбиении группы (1) указывает:
- вертикальное разбиение (1000) группы, определяемое смещением вертикальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра);
- или горизонтальное разбиение (5000) группы, определяемое смещением горизонтальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра);
- или диагональное разбиение (1050) группы, определяемое смещением вертикальной и/или горизонтальной линии, в пикселях или блоках относительно первого пикселя или блока группы в соответствии с заданным порядком сканирования (просмотра), и углом наклона относительно вертикальной или горизонтальной оси группы.
4. Способ кодирования по п. 1, отличающийся тем, что характеристический параметр относится к группе, содержащей:
- величину типа кодирования с предсказанием;
- величину вектора движения;
- нулевую величину дополнения предсказания;
- величину типа преобразования;
- величину коэффициента компенсации освещенности;
- величину весового коэффициента различных предсказаний.
5. Способ декодирования потока (4000) данных, представляющего собой последовательность, содержащую по меньшей мере одно изображение, причем изображение (20) формируется блоками пикселей, объединенными в группы (1) стандартного размера,
отличающийся тем, что в нем по меньшей мере для одной группы (1) блоков, закодированных в потоке (F, 4000) данных, выполняется:
- стадия (31) извлечения по меньшей мере одного сегмента (41) информации о разбиении группы (1), имеющегося в потоке (4000) данных, в результате чего обеспечивается возможность идентификации внутри этой группы таких блоков, являющихся внешними блоками, которые не принадлежат ни к одному кластеру группы, причем кластер (11) формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- стадия (32) декодирования блоков по меньшей мере одного кластера (11) группы на основе сегментов (70) информации о кодировании кластеров, имеющихся в потоке (4000) данных, включающая:
- стадию (320) декодирования блока кластера (11), на которой осуществляется декодирование характеристического параметра (или параметров), закодированных только один раз для этого кластера;
- стадию (321) декодирования других блоков кластера (11) с учетом уже декодированного характеристического параметра (или параметров);
- стадию (33) декодирования внешних блоков на основе сегментов (101) информации о кодировании внешних блоков, имеющихся в потоке (4000) данных, с учетом по меньшей мере одного характеристического параметра уже декодированных соседних блоков.
6. Способ декодирования по п. 5, отличающийся тем, что:
- когда сегмент (41) информации о разбиении указывает вертикальное разбиение (1001), характеристический параметр, связанный с внешним блоком (101), принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно слева от внешнего блока;
- когда сегмент (41) информации о разбиении указывает горизонтальное разбиение (5000), характеристический параметр, связанный с внешним блоком (101), принимает величину характеристического параметра, связанного с соседним блоком, расположенным непосредственно над внешним блоком;
- когда сегмент информации о разбиении указывает диагональное разбиение (1050), характеристический параметр, связанный с внешним блоком (101), равен комбинации величин характеристических параметров, связанных с соседними блоками, расположенными слева и/или сверху и/или сверху слева от внешнего блока в соответствии с положением в группе линии диагонального разбиения, определяемой сегментом информации о разбиении.
-
7. Поток (4000) данных, представляющий собой последовательность, содержащий по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера,
отличающийся тем, что он содержит:
- сегмент (41) информации о разбиении по меньшей мере одной группы изображения последовательности, обеспечивающий возможность идентификации внутри этой группы таких блоков, являющихся внешними блоками, которые не принадлежат ни к одному кластеру группы, причем кластер формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- сегменты (70) информации о кодировании кластеров, полученные по меньшей мере для одной группы в процессе кодирования блоков по меньшей мере одного кластера, причем по меньшей мере один сходный характеристический параметр, связанный с каждым из блоков кластера, кодируется для кластера только один раз; и
- сегменты (60) информации о кодировании внешнего блока (или блоков), полученные по меньшей мере для одной группы в процессе кодирования внешних блоков группы, причем по меньшей мере один сходный характеристический параметр, связанный с каждым из внешних блоков, не кодируется.
8. Устройство кодирования последовательности, содержащей по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера,
отличающееся тем, что оно содержит следующие средства, включаемые по меньшей мере для одной группы изображения последовательности:
- средство определения для каждого блока группы по меньшей мере одного характеристического параметра этого блока;
- средство формирования по меньшей мере одного кластера, содержащего блоки, имеющие по меньшей мере один сходный характеристический параметр, в зависимости от результатов, полученных средством определения;
- средство кодирования блоков по меньшей мере одного кластера для получения для каждого кластера сегментов информации о кодировании кластера, причем сходный характеристический параметр (или параметры), связанный с каждым из блоков кластера, кодируется для кластера только один раз;
- средство кодирования блоков группы, которые не принадлежат ни к одному кластеру и являются внешними блоками, для получения для каждого внешнего блока сегментов информации о кодировании внешних блоков, причем характеристический параметр (или параметры), связанный с каждым из внешних блоков, не кодируется;
и тем, что устройство содержит также:
- средство формирования потока данных, который представляет собой указанную последовательность и содержит сегменты информации о кодировании кластеров, а также сегменты информации о кодировании внешних блоков, и
- средство введения в поток данных по меньшей мере одного сегмента информации о разбиении группы или групп, обеспечивающих идентификацию внутри группы внешнего блока (или блоков).
9. Устройство для декодирования потока данных, представляющего собой последовательность, содержащую по меньшей мере одно изображение, формируемое блоками пикселей, объединенными в группы стандартного размера,
отличающееся тем, что оно содержит следующие средства, включаемые по меньшей мере для одной группы закодированных блоков в потоке данных:
- средство извлечения по меньшей мере одного сегмента информации о разбиении группы, имеющегося в потоке данных, в результате чего обеспечивается возможность идентификации внутри этой группы таких блоков, которые являются внешними блоками и не принадлежат ни к одному кластеру группы, причем кластер формируется блоками группы, имеющими по меньшей мере один сходный характеристический параметр;
- средство декодирования блоков по меньшей мере одного кластера группы на основе сегментов информации кодирования кластеров, имеющихся в потоке данных, содержащее:
- средство декодирования блока кластера, осуществляющее декодирование характеристического параметра или параметров, закодированных только один раз для этого кластера;
- средство декодирования других блоков кластера с учетом уже декодированного характеристического параметра (или параметров);
- средство декодирования внешних блоков на основе сегментов информации о кодирования внешних блоков, имеющихся в потоке (4000) данных, с учетом по меньшей мере одного характеристического параметра уже декодированных соседних блоков.
10. Машиночитаемый носитель с компьютерной программой, которая содержит команды и обеспечивает осуществление способа декодирования по любому из пп. 5-6, когда эта программа выполняется процессором.
Узел торцевого трения к испытательному стенду | 1980 |
|
SU894403A1 |
Способ приготовления мыла | 1923 |
|
SU2004A1 |
US 6363115 B1, 26.03.2002 | |||
Пресс для выдавливания из деревянных дисков заготовок для ниточных катушек | 1923 |
|
SU2007A1 |
СПОСОБ КОДИРОВАНИЯ ВИДЕОСИГНАЛА ОТ НЕСАНКЦИОНИРОВАННОГО ДОСТУПА | 1990 |
|
RU2103837C1 |
Авторы
Даты
2015-01-10—Публикация
2010-06-17—Подача