предсказание вектора движения текущего раздела изображения, указывающего на опорную зону, которая перекрывает несколько разделов опорного изображения, кодирование и декодирование с использованием такого предсказания
Классы МПК: | G06T9/00 Кодирование изображения, например из побитового к непобитовому изображению |
Автор(ы): | ЖЮНГ Жоэль (FR), ЛАРОШ Гийом (FR), ТЬЕС Жан-Марк (FR) |
Патентообладатель(и): | ФРАНС ТЕЛЕКОМ (FR) |
Приоритеты: |
подача заявки:
2010-06-25 публикация патента:
27.06.2014 |
Изобретение относится к средствам кодирования и декодирования изображений. Техническим результатом является повышение точности предсказания вектора движения раздела изображения. В способе вектор движения опорного раздела имеет такую же форму, что и текущий раздел, и принадлежит опорному изображению, отличному от текущего изображения и предварительно разбитому в результате кодирования с последующим декодированием на множество разделов. Когда опорный раздел перекрывает совокупность из опорных разделов из указанного множества разделов опорного изображения, определяют указанный вектор движения текущего раздела изображения на основании функции опорного вектора движения, принадлежащего совокупности из опорных векторов движения, связанных с k перекрываемыми опорными разделами. 7 н. и 8 з.п. ф-лы, 6 ил.
Формула изобретения
1. Способ предсказания вектора движения текущего раздела изображения относительно вектора движения опорного раздела, имеющего такую же форму, что и текущий раздел, и принадлежащего опорному изображению, отличному от текущего изображения и предварительно разбитому в результате кодирования с последующим декодированием на множество n разделов (r'1, r'2, , r'n), содержащий этап, на котором в случае, когда указанный опорный раздел перекрывает совокупность из k опорных разделов из указанного множества n разделов (r'1, r'2, , r'n) опорного изображения, где k n, определяют указанный вектор движения текущего раздела изображения на основании функции по меньшей мере одного опорного вектора движения, принадлежащего совокупности из k опорных векторов движения (mvr'1, mvr'2, , mvr'k), соответственно связанных с k перекрываемыми опорными разделами.
2. Способ предсказания по п.1, в котором этап определения вектора движения текущего раздела содержит этапы, на которых:
вычисляют число общих пикселей между опорным разделом и соответственно k перекрываемыми опорными разделами,
сравнивают вычисленное число общих пикселей между k перекрываемыми опорными разделами на основании заданного критерия сравнения.
3. Способ предсказания по п.2, в котором критерий сравнения основан на выборе из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, опорного вектора движения, связанного с опорным разделом, в котором вычисленное число общих пикселей является наибольшим.
4. Способ предсказания по п.2, в котором критерий сравнения основан на взвешивании, при помощи вычисленного числа общих пикселей, среднего значения из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами.
5. Способ предсказания по п.2, в котором критерий сравнения основан на выборе из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, опорного вектора движения, связанного с перекрываемым опорным разделом, имеющим больше пикселей внутри опорного раздела, чем вне опорного раздела.
6. Способ предсказания по п.1, в котором определение вектора движения текущего раздела содержит этапы, на которых:
вычисляют для каждого из k перекрываемых опорных разделов коэффициент, являющийся функцией пространственного градиента указанного опорного раздела,
выбирают коэффициент, имеющий наибольшее вычисленное значение,
выбирают опорный вектор движения, соответствующий перекрываемому опорному разделу с выбранным коэффициентом.
7. Способ предсказания по п.1, в котором этап определения вектора движения текущего раздела содержит этапы, на которых:
вычисляют для каждого из k перекрываемых опорных разделов коэффициент, являющийся функцией пространственного градиента указанного опорного раздела,
вычисляют среднее значения из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, при этом указанное среднее значение взвешивают при помощи указанных k вычисленных коэффициентов.
8. Способ предсказания по п.1, в котором этап определения вектора движения текущего раздела содержит этапы, на которых:
выбирают отдельную точку опорного раздела,
выбирают опорный вектор движения, связанный с перекрываемым опорным разделом, содержащим выбранную отдельную точку.
9. Способ предсказания по п.1, в котором этап определения вектора движения текущего раздела содержит этапы, на которых:
идентифицируют в опорном разделе характеристику, связанную с содержимым изображения,
выбирают опорный вектор движения, связанный с перекрываемым опорным разделом, содержащим указанную характеристику.
10. Способ кодирования изображения или последовательности изображений, характеризующийся тем, что генерируют поток (F) данных, содержащий данные, характеризующие по меньшей мере один раздел изображения, при этом способ содержит этап предсказания вектора движения указанного раздела изображения,
причем указанное предсказание осуществляют согласно способу предсказания по любому из пп.1-9.
11. Способ декодирования потока (F) данных, характеризующего изображение или последовательность изображений, при этом указанный поток содержит данные, характеризующие по меньшей мере один раздел изображения, при этом указанный способ содержит этап предсказания вектора движения указанного раздела изображения,
причем указанное предсказание осуществляют согласно способу предсказания по любому из пп.1-9.
12. Устройство (PREDCO) предсказания вектора движения текущего раздела изображения относительно вектора движения опорного раздела, имеющего такую же форму, что и указанный текущий раздел, и принадлежащего опорному изображению, отличному от текущего изображения и предварительно разбитому в результате кодирования с последующим декодированием на множество n разделов (r'1, r'2, , r'n),
при этом в случае, когда опорный раздел перекрывает совокупность из k опорных разделов из указанного множества n разделов (r'1, r'2, , r'n) опорного изображения, где k n, устройство предсказания содержит вычислительный модуль (CAL), выполненный с возможностью определения указанного вектора движения текущего раздела изображения на основании функции по меньшей мере одного опорного вектора движения, принадлежащего совокупности из k опорных векторов движения (mvr'1, mvr'2, , mvr'k), соответственно связанных с k перекрываемыми опорными разделами.
13. Устройство (CO) кодирования изображения или последовательности изображений, характеризующееся тем, что выполнено с возможностью генерирования потока (F) данных, содержащего данные, характеризующие по меньшей мере один раздел изображения, при этом указанное устройство содержит средства предсказания вектора движения указанного раздела изображения,
причем указанные средства предсказания содержатся в устройстве (PREDCO) предсказания, соответствующем устройству по п.12.
14. Устройство (DO) декодирования потока (F) данных, характеризующееся тем, что указанный поток данных характеризует изображение или последовательность изображений, при этом указанный поток (F) данных содержит данные, характеризующие по меньшей мере один раздел изображения, при этом указанное устройство содержит средства предсказания вектора движения указанного раздела изображения,
причем указанные средства предсказания содержатся в устройстве (PREDDO) предсказания, соответствующем устройству по п.12.
15. Компьютерная программа, содержащая команды для выполнения одного из способов по любому из пп.1-11 при ее исполнении компьютером.
Описание изобретения к патенту
Уровень техники
Настоящее изобретение в целом относится к области обработки изображений и, в частности, к кодированию и декодированию посредством сопоставления цифровых изображений и последовательностей цифровых изображений.
Для передачи изображений существуют несколько способов кодирования и декодирования. В частности, различают большие типы кодирования, такие как кодирование, называемое "intra", когда изображение кодируют автономно, то есть без ссылки на другие изображения, или же кодирование, называемое "inter", которое состоит в кодировании текущего изображения относительно прошлых изображений таким образом, чтобы выражать и передавать только различия между этими изображениями.
Как правило, способы кодирования вышеуказанного типа включают в себя этап предсказательного кодирования, в ходе которого участки изображений, называемые блоками или макроблоками, текущего изображения предсказывают относительно других опорных блоков или макроблоков, то есть ранее закодированных, а затем декодированных блоков или макроблоков.
Например, в случае применения стандарта H264/MPEG-4 AVC (от английского "Advanced Video Coding") предсказательное кодирование макроблока состоит в разбивке макроблоков на множество разделов, которые, как правило, имеют форму блоков меньшего размера.
В частности, в случае inter-кодирования согласно вышеуказанному стандарту предназначенный для кодирования текущий макроблок можно разбить на разделы по вариантам 16×16, 8×16, 16×8 и 8×8. Если выбирают вариант 8×8, каждый блок 8×8 опять разбивают на разделы по вариантам 8×8, 4×8, 8×4 и 4×4. Каждый текущий блок сравнивают с одним или несколькими блоками соответственно одного или нескольких опорных изображений. Таким образом, получают вектор движения, который описывает движение между текущим блоком и опорным блоком, занимающим то же положение, что и текущий макроблок в предыдущем изображении. При этом вычисляют предсказанное значение этого вектора движения, чтобы закодировать остаток между вышеуказанным вектором движения и вычисленным предсказанным вектором движения.
Такое предсказание вектора движения подходит не ко всем типам разбивки на разделы и, в частности, к случаю, когда опорный макроблок перекрывает несколько опорных разделов опорного изображения. Такая ситуация показана на фиг.1А, которая иллюстрирует случай временного предсказания для кодируемого текущего макроблока, обозначенного MBCN, изображения N, предназначенного для кодирования согласно вышеуказанному стандарту. В представленном примере такой макроблок MBCN имеет квадратную форму и соответствует типу 4×4. Макроблок MBC N окружен другими макроблоками BR1, BR2, BR3, BR4, которые находятся в непосредственной близости от него и имеют такую же форму и размер, что и макроблок MBCN.
В представленном примере вектор движения текущего макроблока MBCN, обозначенный MV, указывает на опорный макроблок MBCN-1 опорного изображения, обозначенного N-1, которое является, например, предыдущим изображением. Опорный MBC N-1 имеет такое же положение, что и текущий макроблок MBC N в предыдущем изображении N-1. Особенностью опорного макроблока MBCN-1 является то, что он перекрывает уже закодированные и затем декодированные опорные разделы, обозначенные BR 1, BR 2, BR 3 и BR 4 на фиг.1A.
В соответствии со стандартом H264/AVC вышеуказанный вектор движения MV предсказывают только пространственно. В частности, производят вычисление опорного вектора движения, который равен среднему из векторов движения MV1, MV3, MV4, соответственно связанных с опорными макроблоками BR1, BR3, BR4. В некоторых ситуациях вектор движения MV2, связанный с опорным макроблоком BR2, можно использовать вместо одного из векторов MV1, MV3, MV4.
Кроме того, недавно появились новые типы разбивки на разделы предназначенного для кодирования текущего макроблока, которые не были предусмотрены стандартом H264/AVC. Так, как показано на фиг.1B, кодируемый текущий MBC N можно разбить на несколько разделов Р1-Рр, имеющих линейную форму, Г-образную форму или совершенно произвольную форму.
Стандарт H264/AVC не предусматривает предсказания для различных типов разбивки на разделы, показанных на фиг.1B, и для частного случая, когда разбитый таким образом опорный макроблок перекрывает несколько разделов опорного изображения. Такая ситуация представлена на фиг.1С, которая иллюстрирует случай временного предсказания для кодируемого текущего макроблока, обозначенного MBCN, изображения N, предназначенного для кодирования согласно вышеуказанному стандарту. В представленном примере такой макроблок MBCN разбивают на несколько меньших разделов P1, Р2, P3, которые имеют любую геометрическую форму.
В представленном примере вектор движения первого раздела Р1 текущего макроблока MBCN, обозначенный MVp1, указывает на раздел Р 1 опорного макроблока MBCN-1 в предыдущем изображении N-1. Особенностью опорного макроблока MBCN-1 является то, что он перекрывает уже закодированные и затем декодированные опорные разделы, обозначенные BR 1, BR 2, BR 3 и BR 4 на фиг.1С.
В соответствии со стандартом H264/AVC, чтобы предсказать вышеуказанный вектор движения MVp1, производят вычисление опорного вектора движения, который, как правило, равен среднему пространственному из векторов движения MV1, MV3, MV4, соответственно связанных с опорными макроблоками BR1, BR3, BR4.
Такое пространственное предсказание вектора движения может оказаться неточным, поскольку в изображении N-1 существуют различия формы и размера между опорным разделом Р 1 и опорными макроблоками BR 1, BR 2, BR 3 и BR 4.
Кроме того, известны другие методы вычисления предсказанного вектора движения с целью inter-кодирования текущего макроблока.
Один из них описан в публикации IEEE Transactions on Circuits and System for Video Technology, том 18, 1247-1257 (Сентябрь 2008), G.Laroche, J.Jung и В.Pesquet-Popescu, и касается случаев, когда, как и в стандарте H264/AVC, макроблоки разбивают на множество разделов, которые, как правило, имеют форму блоков меньшего размера. Согласно этому методу, предсказывают вектор движения макроблока текущего изображения относительно опорного вектора, который выбирают как вектор, указывающий на пиксель, находящийся вверху в крайней левой части макроблока, имеющего такое же положение, что и текущий макроблок в предыдущем изображении.
Если попытаться применить этот последний метод для предсказания вектора MV на фиг.1А или для предсказания вектора MVp1 на фиг.1С, то каждый из векторов MV и MVp1 будет получен на основании опорного вектора MV2, связанного с опорным макроблоком BR'2, при этом самый крайний слева пиксель опорного макроблока MBCN-1 находится в опорном макроблоке BR 2, с которым связан вектор движения MV2.
Предсказание вектора движения с применением этого метода тоже не отличается точностью по тем же причинам, которые были указаны выше.
Задача и раскрытие изобретения
Одной из задач настоящего изобретения является устранение вышеуказанных недостатков предшествующего уровня техники.
В этой связи первым объектом настоящего изобретения является способ предсказания вектора движения текущего раздела изображения относительно вектора движения опорного раздела, имеющего такую же форму, что и текущий раздел, и принадлежащего к опорному изображению, отличному от текущего изображения и предварительно разбитому после кодирования с последующим декодированием на множество n разделов.
Согласно изобретению, в случае, когда опорный раздел перекрывает совокупность из k опорных разделов из множества n разделов опорного изображения, где k n, вектор движения текущего раздела изображения определяют на основании функции по меньшей мере одного опорного вектора движения, принадлежащего k совокупности из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами.
Такой отличительный признак позволяет значительно повысить точность предсказания, учитывая:
- особую разбивку на разделы текущего макроблока или опорного макроблока,
- только перекрываемые зоны опорных разделов.
Кроме того, предсказание в соответствии с настоящим изобретением можно применить для любого метода вычисления предсказываемого вектора движения текущего раздела, например, для метода согласно стандарта H264/AVC или для метода, описанного в вышеуказанной ссылке IEEE.
В варианте выполнения определение вектора движения текущего раздела содержит следующие этапы:
- вычисление числа общих пикселей между опорным разделом и соответственно k перекрываемыми опорными разделами,
- сравнение вычисленного числа общих пикселей между k перекрываемыми опорными разделами на основании заранее определенного критерия сравнения.
Такой отличительный признак позволяет достаточно точно выбирать опорный вектор движения на основании определенной характеристики, которая в данном случае основана на количестве общих пикселей между опорным разделом и перекрываемыми опорными разделами.
Согласно первому варианту, критерий сравнения состоит в выборе из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, опорного вектора движения, связанного с опорным разделом, в котором вычисленное число общих пикселей является самым большим.
Согласно второму варианту, критерий сравнения состоит во взвешивании, при помощи вычисленного числа общих пикселей, среднего значения из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами.
Согласно третьему варианту, критерий сравнения состоит в выборе из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, опорного вектора движения, который связан с перекрываемым опорным разделом, имеющим больше пикселей внутри опорного раздела, чем снаружи этого опорного раздела.
В другом варианте выполнения определение вектора движения текущего раздела содержит следующие этапы:
- вычисление для каждого из k перекрываемых опорных разделов коэффициента, являющегося функцией пространственного градиента опорного раздела,
- выбор коэффициента, имеющего наибольшее вычисленное значение,
- выбор опорного вектора движения, который соответствует перекрываемому опорному разделу с выбранным коэффициентом.
Такой отличительный признак позволяет достаточно точно выбрать опорный вектор движения на основании некоторой характеристики, которая в данном случае основана на вычислении коэффициента, выражающего степень надежности в выборе опорного вектора движения, который предполагается более точным в зоне изображения, содержащего прерывистости, чем в зоне цельного изображения.
Согласно варианту выполнения, вектор движения текущего раздела определяют в результате этапа вычисления среднего значения из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами, при этом такое среднее значение взвешивают при помощи k вычисленных коэффициентов.
В еще одном варианте выполнения определение вектора движения текущего раздела содержит следующие этапы:
- выбор отдельной точки опорного раздела,
- выбор опорного вектора движения, связанного с перекрываемым опорным разделом, содержащего выбранную отдельную точку.
Такой отличительный признак позволяет достаточно точно выбрать опорный вектор движения на основании некоторой характеристики, которая в данном случае основана на оценке расположения опорного раздела относительно k перекрываемых опорных разделов.
Согласно еще одному варианту выполнения, определение вектора движения текущего раздела содержит следующие этапы:
- идентификация в опорном разделе характеристики, связанной с содержимым изображения,
- выбор опорного вектора движения, связанного с перекрываемым опорным разделом, содержащим указанную характеристику.
Такой отличительный признак позволяет достаточно точно выбрать опорный вектор движения на основании некоторой характеристики, которая в данном случае основана на идентификации рисунка, цвета, контура и т.д. в опорном разделе.
Вторым объектом изобретения является способ кодирования изображения или последовательности изображений, в котором генерируют поток данных, содержащий данные, характеризующие, по меньшей мере, один раздел изображения, при этом способ содержит этап предсказания вектора движения для раздела изображения.
Согласно изобретению, этап предсказания такого способа кодирования осуществляют согласно вышеуказанному способу предсказания.
Третьим объектом изобретения является способ декодирования потока данных, характеризующего изображение или последовательность изображений, при этом поток содержит данные, характеризующие, по меньшей мере, один раздел изображения, при этом способ содержит этап предсказания вектора движения для раздела изображения.
Согласно изобретению, этап предсказания такого способа декодирования осуществляют согласно вышеуказанному способу предсказания.
Соответственно, четвертым объектом настоящего изобретения является устройство предсказания вектора движения для текущего раздела изображения относительно вектора движения для опорного раздела, имеющего такую же форму, что и указанный текущий раздел, и принадлежащего к опорному изображению, отличного от текущего изображения и предварительно разбитого после кодирования и последующего декодирования на множество n разделов.
Согласно изобретению, в случае, когда опорный раздел перекрывает совокупность из k опорных разделов из множества n разделов опорного изображения, где k n, такое устройство предсказания содержит вычислительный модуль, выполненный с возможностью определения вектора движения текущего раздела изображения на основании функции по меньшей мере одного опорного вектора движения, принадлежащего к совокупности из k опорных векторов движения, соответственно связанных с k перекрываемыми опорными разделами.
Соответственно, пятым объектом изобретения является устройство кодирования изображения или последовательности изображений, которое генерирует поток данных, содержащий данные, характеризующие, по меньшей мере, один раздел изображения, при этом такое устройство содержит средства предсказания вектора движения раздела изображения.
Согласно изобретению, устройство предсказания такого устройства кодирования соответствует вышеуказанному устройству предсказания.
Соответственно, шестым объектом изобретения является устройство декодирования потока данных, характеризующего изображение или последовательность изображений, при этом поток данных содержит данные, характеризующие, по меньшей мере, один раздел изображения, при этом такое устройство содержит средства предсказания вектора движения для раздела изображения.
Согласно изобретению, устройство предсказания такого устройства декодирования соответствует вышеуказанному устройству предсказания.
Объектом изобретения является также компьютерная программа, содержащая команды для применения одного из способов в соответствии с настоящим изобретением, когда ее исполняет компьютер.
Способ кодирования, способ декодирования, устройство предсказания, устройство кодирования и устройство декодирования имеют, по меньшей мере, те же преимущества, что и преимущества, обеспечиваемые способом предсказания в соответствии с настоящим изобретением.
Краткое описание чертежей
Другие отличительные признаки и преимущества изобретения будут более очевидны из нижеследующего описания предпочтительного варианта выполнения со ссылками на прилагаемые чертежи, на которых:
фиг.1А - пример известного временного предсказания, в котором применяют временные взаимосвязи между предназначенным для кодирования текущим макроблоком изображения N и опорным макроблоком предыдущего изображения N-1, при этом опорный макроблок имеет квадратную форму и перекрывает несколько соседних опорных макроблоков;
фиг.1B - макроблок, разбитый на разделы разных типов согласно известным решениям;
фиг.1С - пример известного временного предсказания, в котором применяют временные взаимосвязи между предназначенным для кодирования текущим макроблоком изображения N и опорным макроблоком предыдущего изображения N-1, при этом опорный макроблок разбит на несколько разделов произвольной формы и перекрывает несколько соседних опорных макроблоков;
фиг.2 - этапы способа кодирования в соответствии с настоящим изобретением;
фиг.3 - вариант выполнения устройства кодирования в соответствии с настоящим изобретением;
фиг.4 - пример временного предсказания в соответствии с настоящим изобретением, в котором применяют временные взаимосвязи между предназначенным для кодирования текущим макроблоком изображения и опорными макроблоками предыдущего изображения;
фиг.5 - устройство декодирования в соответствии с настоящим изобретением;
фиг.6 - этапы способа декодирования в соответствии с настоящим изобретением.
Осуществление изобретения
Далее следует описание варианта выполнения изобретения, в котором применяют способ кодирования в соответствии с настоящим изобретением для inter-кодирования последовательности изображений в виде двоичного потока, близкого к потоку, получаемому согласно стандарту H264/MPEG-4 AVC. В этом варианте выполнения способ кодирования в соответствии с настоящим изобретением осуществляют при помощи программного или аппаратного обеспечения посредством внесения изменений в кодер, первоначально соответствующий стандарту H264/MPEG-4 AVC. Способ кодирования в соответствии с настоящим изобретением представлен в виде алгоритма, содержащего этапы С0-С7, показанные на фиг.2.
Способ кодирования в соответствии с настоящим изобретением осуществляют при помощи устройства кодирования CO, показанного на фиг.3.
Первый этап C0, показанный на фиг.2, представляет собой выбор, - для макроблока, принадлежащего к изображению предназначенной для кодирования последовательности изображений, обозначенной IN на фиг.3, - конкретной разбивки на разделы, соответствующие этому макроблоку.
Следует отметить, что этап С0 может быть факультативными, при этом предсказание вектора движения текущего макроблока можно осуществлять, рассматривая последний в его совокупности, то есть как единственный и единый раздел.
В ходе этапа С0 макроблок MBN, например, имеющий размер 4×4 и принадлежащий к изображению IN , направляют на вход модуля SP выбора разбивки на разделы, показанного на фиг.3.
В этом модуле SP разбивки применяют, например, метод выбора посредством избыточного сопоставления или метод выбора при помощи априорного алгоритма. Такие методы хорошо известны специалистам (см.: G.F.Sullivan and T.Wiegand, "Rate-distorsion optimization for video compression", IEEE Signal Proc. Mag., стр.74-90, 1998). Поэтому их описание опускается.
Различные типы возможных алгоритмов разбивки на разделы сгруппированы в базе данных BD кодера CO. Они позволяют произвести разбивку текущего макроблока на множество разделов либо прямоугольной или квадратной формы, либо других геометрических форм, например, таких как по существу линейные формы, либо совершенно произвольной формы.
В представленном примере модуль выбора SP выбирает разбивку на разделы произвольной формы.
Следующий этап С1, показанный на фиг.2, представляет собой разбивку макроблока MBN на число p предназначенных для предсказания разделов.
Например, макроблок MBn разбивают на три раздела P1, Р2 и P3 произвольной формы. Такую разбивку осуществляет модуль РМВСО разбивки макроблоков, показанный на фиг.3, который использует классический алгоритм разбивки на разделы.
На фиг.4 показан макроблок MBN, полученный после такой разбивки.
После этапа С1 разбивки на разделы во время этапа С2, показанного на фиг.2, модуль разбивки РМВСО передает только что разбитый на разделы макроблок MBN в модуль PREDCO предсказания, показанный на фиг.3.
Классически такой модуль PREDCO предсказания предназначен для предсказания разбитого на разделы текущего макроблока MBN относительно уже закодированного и затем декодированного макроблока, обозначенного MBrN-1 на фиг.4, который имеет такое же положение, что и текущий макроблок MBN в предыдущем изображении IN-1, которое было предварительно разбито после кодирования и последующего декодирования на множество n разделов r 1, r 2, , r n.
Согласно изобретению, опорный макроблок MBrN-1 перекрывает совокупность из k опорных разделов r 1, r 2, , r k, при k n. В представленном примере опорный макроблок MBrN-1 частично перекрывает четыре опорных раздела r 1, r 2, r 3 и r 4. Разумеется, что в других возможных вариантах выполнения опорный макроблок MBrN-1 может полностью перекрывать один или несколько опорных разделов r 1, r 2, r 3 и r 4.
Как показано на фиг.3, такой опорный макроблок MBrN-1 кодируют согласно стандарту H264/MPEG-4 AVC, то есть, как известно, его подвергают:
- кодированию посредством дискретно-косинусного преобразования и квантования, которое осуществляет модуль TQCO преобразования и квантования,
- затем декодированию посредством обратного дискретно-косинусного преобразования и квантования, которое осуществляет модуль TQICO обратного преобразования и квантования.
Как показано на той же фиг.3, согласно изобретению, модуль PREDCO предсказания содержит:
- модуль РМВ разбивки на разделы, предназначенный для разбивки опорного макроблока MBrN-1 на множество опорных разделов,
- вычислительный модуль CAL, предназначенный для вычисления каждого вектора движения MVp1, MVp2, , MVpp, которые соответственно связаны с разделами Р1, Р2, , Рр текущего макроблока MBrN-1, на основании функции, по меньшей мере, одного опорного вектора движения, принадлежащего к совокупности k опорных векторов движения MVr 1, MVr 2, , MVr k, которые соответственно связаны с k перекрываемыми опорными разделами r 1, r 2, , r k.
Во время этапа С3, показанного на фиг.2, модуль РМВ разбивки на разделы, показанный на фиг.3, производит разбивку опорного макроблока MBrN-1 на р опорных разделов. В примере, представленном на фиг.4, опорный макроблок MBr N-1 разбивают идентично текущему макроблоку MBN , то есть на три раздела Pr 1, Pr 2 и Pr 3, которые имеют разные форму и размер.
Во время этапа С4, показанного на фиг.2, вычислительный модуль CAL, показанный на фиг.3, вычисляет для каждого текущего раздела P1, Р2 и P3 связанный с ним предсказанный вектор движения MVp1, MVp2 и MVp3 при помощи описанных ниже различных методов в соответствии с настоящим изобретением.
Согласно первому методу, модуль CAL определяет предсказанный вектор движения MVpl текущего раздела Р1 в зависимости от опорных векторов движения MVr 1, MVr 2, MVr 3 и MVr 4, соответственно связанных с четырьмя перекрываемыми опорными разделами r 1, r 2, r 3 и r 4, показанными на фиг.4. Такое определение состоит, например, в вычислении среднего значения опорных векторов движения MVr 1, MVr 2, MVr 3 и MVr 4 согласно следующему уравнению:
MVp1=Moy(MVr 1, MVr 2, MVr 3, MVr 4)
Согласно второму методу, представленному со ссылкой на фиг.4, модуль CAL определяет предсказанный вектор движения MVp1 как равный опорному вектору движения, связанному с перекрываемым опорным разделом, имеющим наибольшее число пикселей, общих с опорным разделом Pr 1 опорного макроблока MBrN-1.
В примере, представленном на фиг.4, MVp1=MVr 2.
Согласно первой версии этого второго метода, модуль CAL определяет предсказанный вектор движения MVp1 как равный опорному вектору движения, связанному с перекрываемым опорным разделом, имеющим наибольший процент пикселей, общих с опорным разделом Рr 1 опорного макроблока MBrN-1.
В примере, представленном на фиг.4, MVp1=MVr 2.
Согласно второму варианту этого второго метода, модуль CAL определяет среднее значение опорных векторов движения MVr 1, MVr 2, MVr 3 и MVr 4, которое взвешивают по числу общих пикселей между опорным разделом Pr 1 макроблока MBrN-1 и каждым из перекрываемых опорных разделов r 1, r 2, r 3 и r 4. Такое определение состоит в вычислении предсказанного вектора движения MVp1 согласно следующему уравнению:
где:
- K=4,
- T представляет собой число пикселей, образующих опорный макроблок MBrN-1
- является числом пикселей, общих между опорным разделом Pr 1 макроблока MBrN-1 и каждым из перекрываемых опорных разделов r 1, r 2, r 3 и r 4,
В примере, представленном на фиг.4, MVp1=MVr 2.
Альтернативно вышеуказанное среднее значение можно взвешивать по числу общих пикселей минус число не общих пикселей.
Другая альтернатива состоит во взвешивании среднего значения по проценту пикселей, общих между разделом Pr 1 опорного макроблока MBrN-1 и каждым из опорных разделов r 1, r 2, r 3 и r 4.
Еще одной альтернативой является определение предсказанного вектора движения MVp1 как равного опорному вектору движения, связанному с перекрываемым опорным разделом, который имеет больше пикселей внутри Pr 1, чем снаружи Pr 1.
Согласно третьему методу, представленному со ссылкой на фиг.4, вычислительный модуль CAL:
- определяет, - для каждого из k перекрываемых опорных разделов r 1, r 2, r 3 и r 4, - коэффициент Ck (при k=4), который является функцией пространственного градиента g указанного опорного раздела Pr 1,
- выбирает коэффициент Cj (при 1 j k), вычисленное значение которого является самым большим, согласно следующему уравнению:
, где
Этот третий метод предусматривает первую альтернативу, согласно которой вычислительный модуль CAL определяет предсказанный вектор движения MVp1 как равный опорному вектору движения, связанному с перекрываемым опорным разделом, соответствующим вычисленному коэффициенту Cj.
Этот третий метод предусматривает вторую альтернативу, согласно которой вычислительный модуль CAL определяет предсказанный вектор движения MVp1 как равный среднему значению опорных векторов движения MVr 1, MVr 2, MVr 3 и MVr 4, которое взвешивают при помощи вычисленных коэффициентов C1, C2, C3, С4.
Согласно четвертому методу, представленному со ссылкой на фиг.4, вычислительный модуль CAL в первую очередь идентифицирует отдельную точку опорного раздела Pr 1, например, его центр, обозначенный CTr 1. Центр CTr 1 вычисляют при помощи алгоритма, который минимизирует сумму расстояний относительно всех точек опорного раздела Pr 1.
После этого вычислительный модуль CAL определяет предсказанный вектор движения MVpl как равный опорному вектору движения, связанному с перекрываемым опорным разделом, который содержит выбранную отдельную точку, то есть центр CTr 1. В представленном примере центр CTr 1 содержится в опорном разделе r 2, и, следовательно, MVp1=MVr 2.
Согласно пятому методу, представленному со ссылкой на фиг.4, вычислительный модуль CAL в первую очередь идентифицирует в опорном разделе Pr 1 отдельную характеристику, связанную с содержимым изображения. В представленном примере такая характеристика показана крестиком, вставленным в изображение IN-1 и обозначенным CIr 1.
Затем вычислительный модуль CAL определяет предсказанный вектор движения MVp1 как равный опорному вектору движения, связанному с перекрываемым опорным разделом, который содержит выбранную характеристику, то есть крестик CIr 1. В представленном примере крестик CIr l содержится в опорном разделе r 1, и, следовательно, MVp1=MVr 1.
В качестве альтернативы этому пятому методу характеристика, связанная с содержимым изображения, может быть отдельным цветом, отдельным рисунком, контуром, который пересекает опорный раздел Pr 1, или любой другой особенностью изображения, нарушающей его однородность.
По завершении указанного этапа С4 вычисления по тому или иному из вышеуказанных методов в соответствии с настоящим изобретением вычислительный модуль предсказания PREDCO выдает первый предсказанный вектор MVp1, который при его выборе кодером CO в качестве оптимального вектора движения сразу же кодируется модулем TQCO преобразования и квантования, затем декодируется модулем TQICO обратного преобразования и квантования, которые представлены на фиг.3.
Затем вышеуказанный этап С4 повторяют, чтобы предсказать другие векторы движения MVp2 и MVp3, которые соответственно связаны с разделами Р2 и P3 текущего макроблока MBN.
После различных возможных предсказаний, вычисленных вычислительным модулем предсказания PREDCO, на этапе С5, показанном на фиг.2, модуль DCNCO принятия решения, показанный на фиг.3, просматривает разбитые на разделы макроблоки изображения IN и выбирает на этом этапе С5 вариант предсказания для кодирования каждого из этих макроблоков. Среди возможных предсказаний для макроблока модуль принятия решения DCNCO выбирает оптимальное предсказание согласно критерию степени искажения, хорошо известному специалистам.
Как показано на фиг.2, каждый предсказанный макроблок кодируют на этапе С6, как указано в стандарте H264/MPEG-4 AVC.
Как показано на фиг.3, после осуществления структурного кодирования модулем DCNCO принятия решения коэффициенты остатков, если они существуют, соответствующие блокам изображения IN, направляют в модуль TQCO преобразования и квантования, где их подвергают дискретно-косинусному преобразованию и затем квантованию. После этого участки макроблоков с квантованными коэффициентами передают в модуль CE энтропийного кодирования для выработки, - вместе с другими изображениями видеопоследовательности, уже закодированными так же, как и изображение IN, - двоичного потока видео F, закодированного в соответствии с изобретением.
Закодированный двоичный поток F передают через сеть связи на удаленный терминал. Он содержит декодер DO в соответствии с настоящим изобретением, показанный на фиг.5.
Сначала двоичный поток F направляют в модуль DE энтропийного декодирования, которое является обратным кодированию, осуществляемому модулем СЕ энтропийного кодирования, показанным на фиг.3. Затем для каждого макроблока воссоздаваемого изображения коэффициенты, декодированные модулем DE, направляют в модуль QTIDO обратного квантования и преобразования.
Модуль RI воспроизведения изображения получает декодированные данные, соответствующие данным, производимым модулем DCNCO (фиг.3) на этапе С5 кодирования в соответствии с настоящим изобретением, с учетом ошибок передачи. Модуль RI осуществляет этапы D0-D6 способа декодирования в соответствии с настоящим изобретением, показанные на фиг.6. Такой способ декодирования в соответствии с настоящим изобретением можно также осуществлять при помощи программного или аппаратного обеспечения с внесением изменений в декодер, первоначально соответствующий стандарту H264/MPEG-4 AVC.
Первый этап DO представляет собой декодирование структуры закодированных данных в первом участке текущего макроблока декодируемого изображения IN . Как известно, модуль RI воспроизведения определяет на основании данных указанного участка макроблока:
- тип кодирования указанных данных, Intra или Inter: в соответствии с настоящим изобретением - Inter-кодирование,
- тип разбивки на разделы воспроизводимого макроблока, Inter 4×4, 8×8, линейный и т.д.: в описанном варианте выполнения - Inter 4×4,
- индекс оптимального предиктора, выбранного модулем DCNCO принятия решения на вышеуказанном этапе С5.
Следующий этап D1, показанный на фиг.6, представляет собой разбивку предназначенного для декодирования текущего макроблока в соответствии с разбивкой на разделы, определенной на этапе D0. Для этого, как показано на фиг.5, модуль PMBDO разбивки макроблоков на разделы, который является абсолютно аналогичным модулю, показанному на фиг.3, разбивает макроблок на множество р разделов, то есть на три раздела произвольной формы в представленном примере.
Во время этапа D2, показанного на фиг.6, модуль PMBDO разбивки на разделы передает предназначенный для декодирования текущий макроблок, который только что был разбит на р=3 разделов, в модуль PREDDO предсказания, показанный на фиг.5, который является абсолютно аналогичным модулю PREDCO предсказания кодера СО, показанного на фиг.3, и поэтому его дальнейшее подробное описание опускается.
Во время этапов D3 и D4, показанных на фиг.6, модуль PREDDO предсказания, показанный на фиг.5, исполняет такой же алгоритм, что и модуль PREDCO вышеуказанного кодера CO, чтобы получить текущий макроблок, соответствующие векторы движения которого были предсказаны согласно тому или иному из описанных выше методов.
На этапе D5 модуль DCNDO принятия решения выбирает оптимальное предсказание согласно критерию степени искажения, хорошо известному специалистам.
После этого на этапе D6 каждый предсказанный макроблок декодируют так же, как это предусмотрено стандартом H264/MPEG-4 AVC.
После декодирования всех макроблоков изображения IN , как показано на фиг.5, модуль RI воспроизведения изображения выдает на выходе декодера DO изображение IDN, соответствующее декодированию изображения IN.
Учитывая, что алгоритм предсказания, исполняемый декодером DO, по всем показателям является аналогичным алгоритму, осуществляемому кодером CO, стоимость информации, зависящая от используемых предикторов, существенно снижается.
Разумеется, описанные варианты выполнения представлены исключительно в качестве примера и не являются ограничительными, и специалист может вносить в них различные изменения, не выходя при этом за рамки изобретения.
Класс G06T9/00 Кодирование изображения, например из побитового к непобитовому изображению