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

Иллюстрации

Показать все

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

Реферат

1. Область изобретения

Область изобретения относится к кодированию и декодированию последовательностей изображений.

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

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

Современные видеокодеры, осуществляющие стандарты видеосжатия, полученные из организации MPEG (MPEG 1, MPEG 2, MPEG 4, …) или от ITU-Т Международного союза электросвязи (Н.261, …, H.264/AVC), используются для кодирования последовательности изображений и передачи кодированной последовательности, сжатой из последовательности исходного изображения.

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

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

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

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

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

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

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

Классически, в стандартах видеосжатия, прогноз компенсацией движения промежуточного блока достигается посредством компенсации движения типа преобразования. Таким образом, если v обозначает рассматриваемый вектор движения и R - рассматриваемое опорное изображение, прогноз Р в каждой точке или пикселе х блока определяется как: P(x)=R(x+v).

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

Для прогноза предлагаются и другие разновидности компенсации движения.

Например, П.Ишвар и П.Мулин в работе "On Spatial Adaptation of Motion Field Smoothness in Video Coding" ("Пространственная адаптации однородности движения поля при видеокодировании"), предложили основанный на блоке способ компенсации движения, известный как ОВМС (компенсация перекрытием движения блока), который состоит в рассмотрении нескольких значений векторов для установления движения для прогнозирования значения пикселя х блока, подлежащего кодированию:

P ( x ) = ∑ i w i ( x ) R ( x + ν i )

где векторы νi соответствуют векторам движения i,

величины wi(x) соответствуют взвешиваемым значениям между различными прогнозами, полученными различными векторами движения;

взвешенные значения wi(x)в, основном, зависят от положения точки х, рассмотренной в блоке. Как правило, используемые веса wi(x) являются одними и теми же для всех блоков.

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

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

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

3. Краткое описание изобретения

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

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

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

- выполнение, по меньшей мере, одного подразбиения блока в подблоки;

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

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

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

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

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

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

В частности, предложенная методика применима для кодирования последовательности изображений, используя прямые и/или обратные проекции.

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

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

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

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

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

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

Например, порции информации для восстановления векторов управления содержат два флажка соединения, включающие:

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

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

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

Например, если данный блок и блок, расположенный над ним, имеют общий гребень, как в текущем изображении, так и в опорном изображении, после компенсации движения, второй флажок равен 1 (flag_tc=1). Предполагается, что два блока соединяются вместе.

Если данный блок и блок, расположенный с его левой стороны, имеют общий гребень, как в текущем изображении, так и в опорном изображении, после компенсации движения, второй флажок равен 1 (flag_lc=1).

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

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

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

- средство для определения множества векторов управления для блока;

- средство для разбиения блока на подблоки;

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

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

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

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

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

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

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

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

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

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

Сигнал также может передавать информацию о порядке подразбиения блоков.

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

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

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

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

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

- по меньшей мере, одно разбиение блока на подблоки;

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

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

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

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

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

Флажки, например, "flag_tc" (первый флажок) и "flag_lc" (второй флажок) передаются в сигнале.

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

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

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

- предопределенное число подблоков для блока;

- информацию о сходстве указанных векторов управления;

- размер указанного блока;

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

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

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

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

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

Указанные средства прогнозирования для указанного блока включают:

- средство для определения множества векторов управления для блока из информации о восстановлении;

- средство для разбиения блока на подблоки;

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

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

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

4. Описание чертежей

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

- фигуры 1А и 1В представляют основные стадии прогноза компенсацией движения и способа кодирования согласно одному примеру воплощения изобретения;

- фигура 2 предлагает алгоритм определения векторов управления для блока;

- фигуры 3A-3G иллюстрируют определение векторов для блока, принимая во внимание его соседей;

- фигура 4 представляет пример разбиения блока на подблоки;

- фигура 5 иллюстрирует определение величины прогноза для пикселя;

- фигура 6 представляет основные стадии способа декодирования согласно одному примеру воплощения изобретения;

- фигуры 7 и 8 представляют структуру кодирующего устройства и декодирующего устройства согласно одному конкретному примеру воплощения изобретения.

5. Описание одного примера воплощения изобретения

5.1 Общие принципы

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

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

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

В частности, можно вспомнить, что движущееся изображение определяется, по меньшей мере, следующими порциями информациями:

- блок опорных пикселей, содержащий информацию об опорной текстуре;

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

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

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

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

5.2 Компенсация движения

Ниже со ссылкой на фигуру 1А, мы описываем основные стадии, реализованные для прогноза компенсации движения, реализованной в видеокодере, например, типа Н.264.

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

Как показано на фигуре 1А, прогноз компенсацией движения (11), по меньшей мере, одного блока текущей последовательности изображений реализует следующие стадии, по меньшей мере, для указанного блока 6 с первого изображения;

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

- по меньшей мере, одно разбиение 112 блока bC в подблоки bSC1, bSC2 и т.д.;

- определение 113 множества векторов управления vbSC1, vbSC2 и т.д. для подблоков на основе векторов управления vbC для блоков;

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

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

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

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

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

А) Определение векторов управления

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

Затем определяется множество векторов управления vbC (111) для блока bC. В этом примере воплощения определяются четыре вектора управления для данного блока, каждый из которых связан с вершиной или углом блока.

В частности, отметим следующее:

- νbr вектор управления связан с углом, расположенным внизу справа от блока bC;

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

- νtr вектор управления связан с углом, расположенным в главном правом углу блока bC;

- νtl вектор управления связан с углом, расположенным в верхнем левом углу блока bC.

Эти векторы управления инициализируются с нулевым значением.

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

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

Значение 1 затем присваивается первому флажку flag_tc.

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

Значение 1 затем присваивается второму флажку flag_lc.

Эти флажки используются, для представления движения блока bC и его соседа (сверху или слева) между текущим изображением и опорным изображением. Они могут использоваться для определения векторов управления. Эти флажки могут использоваться для восстановления векторов управления, если они получены декодером.

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

После анализа текущих и опорных изображений мы определяем векторы управления νbr, νbl и νtr, νtl для блока bC, как показано на фигуре 2.

Например, вектор управления νbr, связанный с углом, расположенным внизу справа блока bC, выделяется как 21 вектор движения v, предопределенный для этого блока.

Затем осуществляется проверка (22), чтобы проверить, равен ли flag_lc единице, означающей, что блок bC и блок, расположенный с его левой стороны, соединены горизонтально.

Также осуществляется операция (231, 232), чтобы проверить, равен ли flag_tc единице, означающей, что блок bC и расположенный над ним блок соединены вертикально.

Если flag_lc равен 1, то вектор управления νbl принимает значение вектора управления νbr блока, расположенного влево от блока bCblbr (left_block)). Эти обозначения были выбраны, чтобы облегчить специалистам чтение и понимание уравнения в рассматриваемой области.

Кроме того, в режиме вертикального соединения (флажок flag_tc равен 1), вектор управления νtr принимает значение вектора управления νbr блока, расположенного выше блока bCtrbr(top_block)), и вектор управления νtl принимает среднее значение вектора управления νbl блока, расположенного выше блока bC, и вектора управления νtr блока, расположенного влево от блока bCtl=moy[νtr(left_block), νbl(top_block)]).

В вертикальном режиме без соединения (flag_tc равен 0) вектор управления νtl принимает значение вектора управления νtr блоков, расположенных влево от блока bCtltr(left_block)), и вектор управления νtr получается из трех других векторов управления блока bCtrtlbrbl).

Если на стадии 22, отмечается, что flag_lc не равен 1, это означает, что блок bC и блок, расположенный с его правой стороны, находятся режиме разрыва соединения, и мы получаем:

- в режиме соединения по вертикали (флажок flag_tc равен 1):

о вектор управления νtr принимает значение вектора управления νbr блока, расположенного над блоком bCtrbr(top_block));

о вектор управления νtl принимает значение вектора управления νbl блока, расположенного над блоком bCtlbl(top_block));

о вектор управления νbl получен из других трех векторов управления блока bCbltlbrtr);

- в не соединенном вертикальном режиме (flag_tc равен 0):

о векторы управления νtl, νtr и νbl все принимают значение вектора управления νbr блока bCbltlbrtr=ν).

В частности, если блок не имеет никаких соседей с левой стороны, то векторы управления, связанные с его верхним левым и нижним левым углами, определяются из векторов управления, определенных для его верхнего правого и нижнего правого углов (νblbr и νtltr). Таким же образом, если блок не имеет никаких соседей над ним, то векторы управления, связанные с его верхними левыми углами и верхними правыми углами, определяются на основе векторов управления, определенных для его нижних левых и нижних правых углов (νtlbl и νtrbr). Если у блока нет ни соседа слева, ни соседа над ним, то векторы управления, связанные с его верхними левыми углами, верхними правыми и нижними правыми углами находятся на основе вектора управления, определенного для его нижнего правого угла (νbltltrbr). Согласно представленному примеру воплощения, флажки flag_lc и flag_tc передаются на декодер в виде информации для восстановления векторов управления для блока bC.

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

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

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

Кроме того, согласно представленному примеру воплощения, только один вектор движения может быть кодирован, а именно вектор v (ν=νbr). Другие векторы движения (νtrtlbl) могут быть определены посредством флажков flag_lc и flag_tc.

На фигурах 3A-3F показано определение векторов управления для блока bC текущего изображения IC, для прогноза компенсации обратного движения назад, согласно которой векторы управления указывают путь от текущего изображения IC до опорного изображения IR.

Более конкретно, фигура 3А иллюстрирует определение векторов управления для блока bC, если блок, расположенный слева и над блоком bC, является постоянным, т.е. когда нижний левый угол блока, расположенного над блоком bC, и верхний правый угол блока, расположенного влево от блока bC, соединяются вместе и флажки flag_lc и flag_tc равны 1.

На фигуре 3В показан случай, когда блоки, расположенные слева и над блоком bC, являются постоянными, flag_lc равен 1 и flag_tc равен 0.

На фигуре 3С показан случай, когда блоки, расположенные слева и над блоком bC, являются постоянными, flag_lc равен 0 и flag_tc равен 1.

На фигуре 3D показан случай, когда блоки, расположенные слева и над блоком bC, являются постоянными, и флажки flag_lc и flag_tc равны 0.

На фигуре 3Е показан случай, когда блоки, расположенные слева и над блоком bC, не являются постоянными, т.е. что нижний левый угол блока, расположенного над блоком bC, и верхний правый угол блока, расположенного влево от блока bC, отличаются друг от друга, flag_lc равен 1 и flag_tc равен 0.

На фигуре 3F показан случай, когда блоки, расположенные слева и над блоком bC, не являются постоянными, flag_lc равен 0 и flag_tc равен 1.

На фигуре 3G показан случай, когда блоки, расположенные слева и над блоком bC, не являются постоянными, и flag_lc и flag_tc равны 1.

В) Разбиение блока на подблоки

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

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

Таким образом, как показано на фигуре 4, блок bC, например, подразделяется на четыре подблока bSC1, bSC2, bSC3 и bSC4. Векторы управления, присоединенные к блоку bC, являются интерполированными и служат для определения новых векторов управления для подблоков. Например, используются следующие обозначения:

- νml вектор управления, связанный с углом, расположенным внизу слева подблока bSC1, также соответствуя углу, расположенному вверху слева подблока bSC3;

- νtm вектор управления, связанный с углом, расположенным над подблоком bSC1, также соответствуя углу, расположенному вверху слева подблока bSC2;

- νmr вектор управления, связанный с углом, расположенным внизу справа подблока bSC2, также соответствуя углу, расположенному сверху справа подблока bSC4,

- νbm вектор управления, связанный с углом, расположенным вверху справа подблока bSC3, также соответствуя углу, расположенному внизу слева подблока bSC4, и

- νmm вектор управления, связанный с углом, ра