усовершенствованное межуровневое предсказание для расширенной пространственной масштабируемости при кодировании видеосигнала
Классы МПК: | H04N7/26 с использованием уменьшения ширины полосы частот H04N7/50 включающие преобразование и прогнозное кодирование |
Автор(ы): | ВАНГ Ксианглин (US), РИДЖ Джастин (US) |
Патентообладатель(и): | Нокиа Корпорейшн (FI) |
Приоритеты: |
подача заявки:
2008-01-05 публикация патента:
10.08.2011 |
Изобретение относится к области кодирования видеосигнала, в частности к масштабируемому видеокодированию, которое поддерживает расширенную пространственную масштабируемость. Техническим результатом является снижение сложности вычислений и повышение эффективности кодирования/декодирования при масштабируемом видеокодировании. Предложены усовершенствованные система и способ для реализации усовершенствованного межуровневого предсказания для расширенного пространственного масштабирования при видеокодировании, а также усовершенствованного межуровневого предсказания векторов движения в случае расширенной пространственной масштабируемости. В различных вариантах осуществления изобретения для предсказания режима макроблока при определении необходимости слияния двух блоков используют фактический индекс опорного кадра и векторы движения из базового уровня. Помимо этого для представления каждого блока 4×4 в виртуальном макроблоке базового уровня может использоваться множество репрезентативных пикселей в блоке 4×4. Информация о разбиении и векторах движения для соответствующего блока в виртуальном макроблоке базового уровня может определяться из всей информации о разбиении и векторах движения этих блоков 4×4. 8 н. и 16 з.п. ф-лы, 12 ил.
Формула изобретения
1. Способ кодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра в масштабируемом битовом потоке, включающий:
получение индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
кодирование блока улучшающего уровня с использованием индикатора режима кодирования.
2. Способ по п.1, в котором блоки опорного уровня, имеющие одинаковую информацию о векторах движения, объединяют для получения размера разбиения.
3. Способ по п.1, в котором меру разности определяют как сумму абсолютных разностей компонент векторов движения, а значение порога равно единице.
4. Способ по п.1, в котором для выбора информации о разбиениях и векторах движения для каждого соответствующего блока опорного уровня используют множество репрезентативных пикселей.
5. Способ по п.1, в котором, если множество опорных блоков имеют разные индексы опорного кадра, выбирают информацию о векторе движения из опорного блока с наименьшим индексом опорного кадра.
6. Машиночитаемый носитель, включающий компьютерный код для выполнения процессов по любому из пп.1-5.
7. Устройство для кодирования блока улучшающего уровня, включающее:
процессор; и
блок памяти, подключенный к процессору, при этом устройство конфигурировано для:
получения индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
кодирования блока улучшающего уровня с использованием индикатора режима кодирования.
8. Устройство по п.7, в котором блоки опорного уровня, имеющие одинаковую информацию о векторах движения, объединяются для получения размера разбиения.
9. Устройство по п.7, в котором мера разности определяется суммой абсолютных разностей компонент векторов движения, а значение порога равно единице.
10. Устройство по п.7, в котором для выбора информации о разбиениях и векторах движения для каждого соответствующего блока опорного уровня используется множество репрезентативных пикселей.
11. Устройство по п.7, в котором, если множество опорных блоков имеют разные индексы опорного кадра, выбирается информация о векторе движения из опорного блока с наименьшим индексом опорного кадра.
12. Устройство для кодирования блока улучшающего уровня, включающее:
средства для получения индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
средства для кодирования блока улучшающего уровня с использованием индикатора режима кодирования.
13. Способ декодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра в масштабируемом битовом потоке, включающий:
получение индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
декодирование блока улучшающего уровня с использованием индикатора режима кодирования.
14. Способ по п.13, в котором блоки опорного уровня, имеющие одинаковую информацию о векторах движения, объединяют для получения размера разбиения.
15. Способ по п.13, в котором меру разности определяют как сумму абсолютных разностей компонент векторов движения, а значение порога равно единице.
16. Способ по п.13, в котором для выбора информации о разбиениях и векторах движения для соответствующего блока опорного уровня используют множество репрезентативных пикселей.
17. Способ по п.13, в котором, если множество опорных блоков имеют разные индексы опорного кадра, выбирают информацию о векторе движения из блока с наименьшим индексом опорного кадра.
18. Машиночитаемый носитель, включающий компьютерный код для выполнения процессов по любому из пп.13-17.
19. Устройство для декодирования блока улучшающего уровня, включающее:
процессор; и
блок памяти, подключенный к процессору, при этом устройство конфигурировано для:
получения индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
декодирования блока улучшающего уровня с использованием индикатора режима кодирования.
20. Устройство по п.19, в котором блоки опорного уровня, имеющие одинаковую информацию о векторах движения, объединяются для получения размера разбиения.
21. Устройство по п.19, в котором мера разности определяется суммой абсолютных разностей компонент векторов движения, а значение порога равно единице.
22. Устройство по п.19, в котором для выбора информации о разбиениях и векторах движения для соответствующего блока опорного уровня используется множество репрезентативных пикселей.
23. Устройство по п.19, в котором, если множество опорных блоков имеют разные индексы опорного кадра, выбирается информация о векторе движения из блока с наименьшим индексом опорного кадра.
24. Устройство для декодирования блока улучшающего уровня, включающее:
средства для получения индикатора режима кодирования, указывающего разбиение блока улучшающего уровня, по меньшей мере частично на основе множества значений индексов опорного кадра, соответствующих множеству блоков опорного уровня, при этом блоки опорного уровня, которые имеют одинаковый индекс опорного кадра и имеют информацию о векторах движения с мерой разности, меньшей чем заранее заданный порог, объединяют для получения размера разбиения; и
средства для декодирования блока улучшающего уровня с использованием индикатора режима кодирования.
Описание изобретения к патенту
ОБЛАСТЬ ТЕХНИКИ
[0001] Настоящее изобретение в общем относится к области кодирования видеосигнала. Более конкретно, настоящее изобретение относится к масштабируемому видеокодированию, которое поддерживает расширенную пространственную масштабируемость.
УРОВЕНЬ ТЕХНИКИ
[0002] В данном разделе представлены предпосылки или контекст изобретения, изложенного в формуле. Приведенное здесь описание может включать принципы, которым можно следовать, но они не обязательно были известны ранее. Поэтому все, что описано в данном разделе, если не будет сказано иначе, не является описанием известного уровня техники.
[0003] Для разных технологий заданы различные стандарты. Стандарты кодирования видео включают ITU-T H.261, ISO/IEC MPEG-1 Visual, ITU-T H.262 или ISO/IEC MPEG-2 Visual, ITU-T H.263, ISO/IEC MPEG-4 Visual и ITU-T H.264 (также известный как Усовершенствованное Кодирование Видеосигнала ISO/IEC MPEG-4 (AVC - Advanced Video Coding) или, сокращенно, H.264/AVC). Помимо этого в настоящее время ведутся работы по разработке новых стандартов кодирования видео. Одним таким разрабатываемым стандартом является стандарт кодирования масштабируемого видео (SVC - scalable video coding), который станет масштабируемым расширением для стандарта H.264/AVC. Последним проектом стандарта SVC является Приложение F (теперь Приложение G) стандарта H-264/Advanced Video Coding (AVC). В частности, Приложение F включает особенности, известные как расширенная пространственная масштабируемость (ESS - extended spatial scalability), которая предусмотрена для кодирования и декодирования сигналов в ситуациях, когда синхронизация краев макроблока (MB) базового уровня и макроблока улучшающего уровня не поддерживается. Ситуация, когда пространственное масштабирование осуществляется с коэффициентом 1 или 2, и край макроблока синхронизирован относительно разных уровней, рассматривается как особый случай пространственной масштабируемости.
[0004] Например, при использовании диадического масштабирования разрешения (т.е. масштабирования разрешения в 2 раза) может поддерживаться синхронизация краев макроблоков. Это показано на фиг.1, где дискретизация кадра с половинным разрешением слева (кадр 1000 базового уровня) повышается для получения версии кадра с полным разрешением справа (кадр 1100 улучшающего уровня). Рассмотрим макроблок МВ0 кадра 1000 базового уровня: граница этого макроблока после повышения дискретизации изображена как внешняя граница кадра 1100 улучшающего уровня. В данном случае необходимо заметить, что макроблок с повышенной дискретизацией содержит в улучшающем уровне ровно четыре макроблока с полным разрешением - MB1, MB 2, МВ3 и MB4. Края четырех макроблоков MB1, MB2, MB3 и MB4 улучшающего уровня точно соответствуют границе макроблока MB 0 с повышенной дискретизацией. Существенно, что идентифицированный макроблок базового уровня является макроблоком базового уровня, охватывающим каждый из макроблоков MB1, MB2 , МВ3 and МВ4 улучшающего уровня. Другими словами, для формирования предсказания для MB1, MB 2, MB3 и MB4 других макроблоков базового уровня не требуется.
[0005] В случае не-диадической масштабируемости, ситуация значительно отличается. Это показано на фиг.2 для коэффициента масштабирования 1,5. В данном случае дискретизация макроблоков MB10 и MB20 базового уровня в кадре 100 базового уровня повышается с 16×16 до 24×24 в кадре 110 улучшающего уровня с более высоким разрешением. Однако при рассмотрении макроблока MB30 улучшающего уровня становится ясно, что этот макроблок охвачен двумя разными макроблоками MB10 и MB20 с повышенной дискретизацией. Таким образом, для формирования предсказания для макроблока MB 30 улучшающего уровня требуется два макроблока базового уровня - MB10 и MB20. Фактически, в зависимости от используемого коэффициента масштабирования, один макроблок улучшающего уровня могут охватывать вплоть до четырех макроблоков базового уровня.
[0006] В текущем рабочем проекте в Приложении F стандарта H.264/AVC предусмотрена возможность кодирования макроблока улучшающего уровня относительно связанного с ним кадра базового уровня, даже если для формирования предсказания могут потребоваться несколько макроблоков базового уровня. Так как эффективность кодирования тесно связана с точностью предсказания, для увеличения эффективности кодирования желательным является формирование точного предсказания макроблока улучшающего уровня.
[0007] В соответствии с текущим рабочим проектом Приложения F стандарта H.264/AVC, из соответствующих макроблоков базового уровня может быть предсказано множество аспектов текущего макроблока улучающего уровня. Например, макроблоки с внутренним кодированием (также упоминаются как интра-макроблоки) базового уровня полностью декодируются и реконструируются таким образом, что их дискретизация может быть повышена, и они могут использоваться для прямого предсказания значений яркости и цветности пикселя в соответствующем улучшающем уровне. Помимо этого макроблоки с взаимным кодированием (также упоминаются как интер-макроблоки) базового уровня не реконструируются полностью. Вместо этого декодируется только остаток предсказания каждого интер-макроблока базового уровня, и он может использоваться для предсказания остатка предсказания улучшающего уровня, но в интер-макроблоке базового уровня не осуществляется компенсации движения. Это называется «остаточным предсказанием». Кроме того, для интер-макроблоков дискретизация векторов движения повышается, и они используются для предсказания векторов движения улучшающего уровня.
[0008] В дополнение к вышесказанному, согласно Приложению F стандарта H.264/AVC для каждого макроблока улучшающего уровня задан флаг base_mode_flag. Когда этот флаг равен 1, то тип, режим и векторы движения макроблока улучшающего уровня должны быть полностью предсказаны (или логически выведены) из соответствующих макроблоков базового уровня. Так как способ получения типа, режима макроблока и векторов движения макроблока улучшающего уровня из макроблоков базового уровня известен и кодеру, и декодеру, то в данном случае не нужно дальнейшее кодирование типа и режима макроблока, а также информации о его векторах движения, в поток двоичных данных. Если флаг base__mode_flag равен 0, то информация о типе и режиме макроблока улучшающего уровня логически не выводится.
[0009] Как говорилось выше, в некоторых случаях информация о типе и режиме макроблока улучшающего уровня может быть полностью предсказана из макроблока(-ов) базового уровня. В соответствии с текущим рабочим проектом Приложения F стандарта H.264/AVC, когда края макроблоков улучшающего уровня не синхронизированы с краями макроблоков базового уровня, для каждого макроблока улучшающего уровня на основании макроблоков базового уровня, охватывающих макроблок улучшающего уровня, выводится виртуальный макроблок базового уровня. Тип, режим и векторы движения виртуального макроблока базового уровня определяются при помощи макроблока(-ов) базового уровня. После этого виртуальный макроблок базового уровня рассматривается как единственный макроблок базового уровня, точно охватывающий данный макроблок улучшающего уровня. Если для текущего макроблока улучшающего уровня флаг base_mode_flag равен 1, то его тип, режим и векторы движения устанавливаются такими же, как и у виртуального макроблока базового уровня.
[0010] Способ определения типа, режима и векторов движения виртуального макроблока базового уровня, описанный в текущем рабочем проекте в Приложении F стандарта H.264/AVC, является восходящим процессом. Сначала для каждого блока 4×4 в виртуальном макроблоке базового уровня в качестве репрезентативной точки блока используется один пиксель, расположенный во втором ряду и втором столбце блока, как показано на фиг.3. На фиг.3 макроблок отмечен номером 300. Блоки 4×4 внутри макроблока отмечены номером 310, а репрезентативный пиксель в каждом блоке 4×4 - номером 320. Использование одного пикселя в каждом блоке 4×4 виртуального макроблока базового уровня имеет преимущество простоты, когда текущий блок 4×4 виртуального макроблока базового уровня охвачен только одним блоком 4×4 из базового уровня. Но когда он охвачен множеством блоков 4×4 из базового уровня, такой метод может быть неточным.
[0011] На фиг.4(a) и 4(b) показана связь между виртуальным макроблоком 300 базового уровня и соответствующим макроблоком(-ами) базового уровня. Область базового уровня, которая после повышения дискретизации будет точно охватывать текущий макроблок улучшающего уровня, показана на фиг.4(b) под номером 410. Она также является областью, соответствующей виртуальному макроблоку 300 базового уровня. Репрезентативный пиксель в блоке 4×4 виртуального макроблока 300 базового уровня помечен как pe. Соответствующий ему пиксель базового уровня помечен как pb. В соответствии с текущим рабочим проектом Приложения F стандарта H.264/AVC, информация о разбиениях макроблока для блока 4×4 базового уровня, отмеченного на фиг.4(b) номером 420, в котором находится pb, используется как информация о разбиениях для блока 4×4 улучшающего уровня, в котором находится ре. Другими словами, информация о разбиениях для блока 4×4 базового уровня, охватывающего пиксель pe, используется как информация о разбиениях для блока 4×4, в котором находится пиксель ре . В данном случае каждый блок 4×4 в виртуальном макроблоке 300 базового уровня может иметь информацию о разбиениях. Векторы движения, связанные с информацией о разбиении, также используются как параметры предсказания для векторов движения улучшающего уровня.
[0012] В каждом из четырех блоков 8×8 в виртуальном макроблоке базового уровня процесс слияния инициируется на уровне блока 4×4. Как показано на фиг.5, если все блоки 1, 2, 3 и 4 получили свое разбиение из одного и того же единственного разбиения базового уровня, то режим блока 8×8 устанавливается как 8×8. В противном случае, если блок 1 и блок 2 получили свое разбиение из одного разбиения базового уровня, а блок 3 и блок 4 получили свое разбиение из другого разбиения базового уровня, то режим блока 8х8 определяется как 8×4. Подобным же образом, если блок 1 и блок 3 имеют одинаковое разбиение, и блок 2 и блок 4 также имеют одинаковое разбиение из базового уровня, то режим блока 8х8 определяется как 4×8. В противном случае режим блока 8×8 определяется как 4×4. Данная процедура повторяется отдельно для каждого из остальных трех блоков 8×8.
[0013] Если все четыре блока 8х8 имеют режим 8×8, то процедура слияния блоков также выполняется на уровне блока 8×8, как показано на фиг.6. На фиг.6 все блоки 1, 2, 3 и 4 представляют блок 8×8. Если все блоки 1, 2, 3 и 4 получили свое разбиение из одного и того же единственного разбиения базового уровня, то режим виртуального макроблока базового уровня определяется как 16×16. Если блок 1 и блок 2 имеют одинаковое разбиение, и блок 3 и блок 4 также имеют одинаковое разбиение из базового уровня, то режим виртуального макроблока базового уровня определяется как 16×8. Если блок 1 и блок 3 имеют одинаковое разбиение, и блок 2 и блок 4 также имеют одинаковое разбиение, то режим виртуального макроблока базового уровня устанавливается как 8×16. В противном случае режим виртуального макроблока базового уровня устанавливается как 8×8.
[0014] В соответствии с текущим рабочим проектом Приложения F стандарта H.264/AVC, предсказание режима макроблока может основываться исключительно на информации о разбиении, взятой из базового уровня. В данном варианте слияние блоков может производиться только тогда, когда блоки совместно используют одну и ту же информацию о разбиении из базового уровня. Однако в случае расширенной пространственной масштабируемости достаточно распространена ситуация, когда разные разбиения базового уровня имеют одинаковые индексы опорного кадра и векторы движения. Например, два соседних макроблока из базового уровня могут иметь одинаковые индексы опорного кадра и векторы движения. Помимо этого, в случае расширенной пространственной масштабируемости очень часто бывает, что макроблоки улучшающего уровня охватываются множеством макроблоков базового уровня. Поэтому при определении необходимости слияния двух блоков использование только лишь информации о разбиениях обычно приводит к нежелательному созданию маленьких разбиений внутри макроблока. Такие маленькие разбиения увеличивают сложность вычислений в процедурах интерполяции отсчетов при компенсации движения.
[0015] Ввиду вышесказанного было бы желательно предложить систему усовершенствованного межуровневого предсказания режима макроблока, а также векторов движения в случае расширенного пространственного масштабирования.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
[0016] Различные варианты осуществления настоящего изобретения представляют систему и способ для усовершенствования межуровневого предсказания режима макроблока для вышеописанного случая расширенной пространственной масштабируемости. Различные варианты изобретения представляют систему и способ для усовершенствования межуровневого предсказания векторов движения в случае расширенной пространственной масштабируемости. Традиционные системы предсказания режима макроблока основаны только на информации о разбиениях из базового уровня; слияние же блоков может быть произведено только тогда, когда блоки совместно используют одну и ту же информацию о разбиениях из базового уровня. В вариантах реализации настоящего изобретения процедура слияния основывается на опорном индексе кадра и информации о векторах движения. Когда блоки совместно используют одинаковые индексы опорных кадров и информацию о векторах движения из базового уровня, при необходимости может быть произведено слияние этих блоков. Поэтому даже если два блока имеют разные разбиения базового уровня, можно осуществить их слияние. Данные система и способ могут предотвратить необязательное создание малых разбиений блоков, что, в свою очередь, снизит сложность вычислений в процессе интерполяции компенсации движения.
[0017] Различные варианты осуществления изобретения представляют способ, компьютерный программный продукт и устройство для кодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра в масштабируемом видеопотоке. Индикатор режима кодирования, указывающий разбиение блока улучшающего уровня, основан по меньшей мере частично на множестве индексов опорных кадров, соответствующих множеству полученных блоков опорного уровня, при этом блоки опорного уровня, имеющие одинаковые индексы опорного кадра, сливаются для получения размера разбиения. Блок улучшающего уровня кодируется с использованием индикатора режима кодирования. Варианты осуществления изобретения также представляют способ, компьютерный программный продукт и устройство для декодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра в масштабируемом видеопотоке. Индикатор режима кодирования, указывающий разбиение блока улучшающего уровня, основан по меньшей мере частично на множестве индексов опорных кадров, соответствующих множеству полученных блоков опорного уровня, при этом блоки опорного уровня, имеющие одинаковые индексы опорного кадра, сливаются для получения размера разбиения. Блок улучшающего уровня декодируется с использованием индикатора режима кодирования.
[0018] Другие варианты изобретения предоставляют способ, компьютерный программный продукт и устройство для кодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра масштабируемого потока двоичных данных, при этом информация о разбиениях и векторах движения выводится для блока улучшающего уровня на основании информации о разбиениях и векторах движения из по меньшей мере одного из множества опорных блоков. Блок улучшающего уровня кодируется с использованием информации о разбиениях и векторах движения. Другие варианты изобретения предоставляют способ, компьютерный программный продукт и устройство для декодирования блока улучшающего уровня, представляющего по меньшей мере часть видеокадра масштабируемого потока двоичных данных, при этом информация о разбиениях и векторах движения выводится для блока улучшающего уровня на основании информации о разбиениях и векторах движения из по меньшей мере одного из множества опорных блоков. Блок улучшающего уровня декодируется с использованием информации о разбиениях и векторах движения.
[0019] В других вариантах осуществления настоящего изобретения условия для слияния блоков могут быть ослаблены. В данном варианте, если блоки используют одинаковый индекс опорного кадра и подобные векторы движения, соседние блоки могут быть соединены вместе. Векторы движения для объединенного блока большего размера выводятся из векторов движения соединяемых блоков (предварительное слияние).
[0020] Помимо этого, каждый блок 4×4 в виртуальном макроблоке базового уровня обычно представлялся отдельным пикселем, расположенным во втором ряду и втором столбце блока, и информация о разбиениях для текущего блока определялась путем отображения репрезентативного пикселя на базовый уровень и последующего определения местоположения на базовом уровне блока 4×4. В отличие от этого в различных вариантах осуществления настоящего изобретения для представления блока может быть использовано множество репрезентативных пикселей в блоке 4×4. Когда для текущего блока в виртуальном макроблоке базового уровня доступно множество блоков 4×4 на базовом уровне, информация о разбиениях и векторах движения для текущего блока в виртуальном макроблоке базового уровня может быть получена из всей информации о разбиениях и векторах движения этих блоков 4×4. При использовании более чем одного репрезентативного пикселя в блоке 4×4 для получения информации о разбиениях и векторах движения из базового уровня, имеется возможность достижения более точного предсказания векторов движения на улучшающем уровне. Такое усовершенствованное предсказание векторов движения может, таким образом, увеличить эффективность кодирования.
[0021] Различные варианты настоящего изобретения могут быть реализованы непосредственно в виде программного обеспечения при помощи любого распространенного языка программирования, например C/C++ или языка ассемблер. Варианты настоящего изобретения также могут быть реализованы в виде аппаратного обеспечения и могут использоваться в потребительских устройствах.
[0022] Эти и другие преимущества и особенности изобретения, а также организация и принцип работы, станут понятны из нижеследующего подробного описания с приложенными чертежами, где на нескольких чертежах одинаковые элементы имеют одинаковые номера.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
[0023] На фиг.1 показано позиционирование границ макроблока при диадическом масштабировании разрешения.
[0024] На фиг.2 показано позиционирование границ макроблока при не-диадическом масштабировании разрешения.
[0025] На фиг.3 показан виртуальный макроблок базового уровня с репрезентативным пикселем в каждом из шестнадцати блоков 4×4.
[0026] На фиг.4(a) показан виртуальный макроблок базового уровня, на фиг.4(b) изображена связь между виртуальным макроблоком базового уровня фиг.4(а) и множеством макроблоков базового уровня.
[0027] На фиг.5 показано, как блоки могут сливаться на уровне блоков 4×4 в виртуальном макроблоке базового уровня в соответствии с Приложением F стандарта H.264/AVC.
[0028] На фиг.6 показано, как блоки могут сливаться на уровне блоков 8×8 в виртуальном макроблоке базового уровня в соответствии с Приложением F стандарта H.264/AVC.
[0029] На фиг.7 изображен блок 4х4, охватываемый несколькими блоками 4×4 базового уровня, где отдельный репрезентативный пиксель используется в соответствии с Приложением F стандарта H.264/AVC.
[0030] На фиг.8 показано использование множества репрезентативных пикселей в блоке 4×4 в соответствии с вариантом осуществления настоящего изобретения.
[0031] На фиг.9 показана обобщенная система мультимедийной связи для использования вместе с различными вариантами настоящего изобретения.
[0032] На фиг.10 приведен вид в перспективе устройства связи, которое может использоваться для осуществления настоящего изобретения.
[0033] На фиг.11 схематически изображены телефонные схемы устройства связи, показанного на фиг.10.
ПОДРОБНОЕ ОПИСАНИЕ РАЗЛИЧНЫХ ВАРИАНТОВ
ИЗОБРЕТЕНИЯ
[0034] Различные варианты осуществления настоящего изобретения представляют систему и способ для усовершенствования межуровневого предсказания режима макроблока для вышеописанного случая расширенной пространственной масштабируемости. Различные варианты изобретения представляют систему и способ для усовершенствования межуровневого предсказания векторов движения в случае расширенной пространственной масштабируемости. Традиционные системы предсказания режима макроблока основаны только на информации о разбиениях из базового уровня; слияние же блоков может быть произведено только тогда, когда блоки имеют одну и ту же информацию о разбиениях из базового уровня. В вариантах реализации настоящего изобретения процедура слияния основывается на опорном индексе кадра и информации о векторах движения. Когда блоки совместно используют одинаковые индексы опорных кадров и информацию о векторах движения из базового уровня, при необходимости может быть произведено слияние этих блоков. Поэтому даже если два блока имеют разные разбиения базового уровня, можно осуществить их слияние.
[0035] В других вариантах осуществления настоящего изобретения условия для слияния блоков могут быть упрощены. В данном варианте, если блоки используют одинаковый индекс опорного кадра и подобные векторы движения, соседние блоки могут быть соединены вместе. Векторы движения для объединенного блока большего размера выводятся из векторов движения объединяемых блоков (предварительное слияние).
[0036] Помимо этого, каждый блок 4×4 в виртуальном макроблоке базового уровня обычно представлялся отдельным пикселем, расположенным во втором ряду и втором столбце блока, и информация о разбиениях для текущего блока определялась путем отображения репрезентативного пикселя на базовый уровень и последующего определения местоположения блока 4×4 на базовом уровне. В отличие от этого в различных вариантах осуществления настоящего изобретения для представления блока может быть использовано множество репрезентативных пикселей в блоке 4×4. Когда для текущего блока в виртуальном макроблоке базового уровня доступно множество блоков 4×4 на базовом уровне, информация о разбиениях и векторах движения для текущего блока в виртуальном макроблоке базового уровня может быть получена из всей информации о разбиениях и векторах движения этих блоков 4×4. При использовании более одного репрезентативного пикселя в блоке 4×4 для получения информации о разбиениях и векторах движения из базового уровня, имеется возможность достижения более точного предсказания векторов движения на улучшающем уровне.
[0037] В соответствии с различными вариантами осуществления настоящего изобретения, способ определения типа, режима и векторов движения виртуального макроблока базового уровня является восходящим процессом. Однако для достижения описанных выше усовершенствований предусмотрен ряд изменений.
[0038] Под слиянием блоков следует понимать то, что два блока объединяются, если они имеют один и тот же индекс опорного кадра и одинаковые или похожие векторы движения из базового уровня. Как показано на фиг.4(b), для примера можно предположить, что макроблок базового уровня MB1 и макроблок базового уровня MB2 имеют режим интер 16×16 и, помимо этого, имеют одинаковые векторы движения и индекс опорного кадра. В соответствии с зависимостью, изображенной на фиг.4(a) и 4(b), блоки 4×4 M и P в виртуальном макроблоке базового уровня получают информацию о разбиениях из макроблока базового уровня MB1, тогда как блоки 4×4 N и Q получают информацию о разбиениях из макроблока базового уровня MB2. В соответствии с одним вариантом осуществления настоящего изобретения, слияние блоков M, N: P и Q возможно, так как все они имеют одинаковые индексы опорного кадра и информацию о векторе движения из базового уровня. После слияния режим блока 8×8 остается 8×8. Однако в соответствии со способом, описанном в Приложении F стандарта H.264/AVC, такое слияние не будет разрешено, так как это блоки из разных макроблоков базового уровня и поэтому принадлежат к разным разбиениям. После слияния с использованием традиционных правил режим блока 8×8 становится 4×8, даже если подразбиение не требуется. Кроме этого, вследствие такого нежелательного подразбиения, дальнейшее слияние блоков может быть невозможно. Например, если на фиг.4 допустить, что макроблоки базового уровня MB3 и MB4 также имеют режим интер 16×х16 и имеют такие же индексы опорного кадра и векторы движения, как MB1 и MB2 , то тогда в соответствии с вариантами настоящего изобретения блоки в виртуальном макроблоке 300 базового уровня будут, вероятно, объединены, и взаимный режим 16×16 будет приписан виртуальному базовому уровню. Тем не менее, следуя способу, описанному в Приложении F стандарта H.264/AVC, режим виртуального макроблока 300 базового уровня должен быть 8×8 с несколькими блоками 8×8, имеющими подразбиения.
[0039] Хотя использование нежелательно малых разбиений может не повлиять на эффективность кодирования, оно может повлиять на сложность вычислений. В процессе компенсации движения интерполяция отсчетов обычно производится на основе разбиений или подразбиений. Интерполяция при большем разбиении обычно менее сложна, чем интерполяция при множестве меньших разбиений, имеющих такой же общий размер, как и большее разбиение. В первую очередь это происходит из-за того, что при выполнении интерполяции большего разбиения с целью снижения сложности вычислений может многократно использоваться большее количество промежуточных данных.
[0040] В другом варианте осуществления настоящего изобретения условия для слияния блоков могут быть в некоторой степени упрощены. Если блоки используют одинаковый индекс опорного кадра и подобные векторы движения, соседние блоки могут быть соединены вместе. Подобие векторов движения может быть измерено при помощи заранее заданного порога Tmv. Предположим, что имеется два вектора движения (Ax1, Ay1 ), (Ax2, Ayz), соответственно разница между двумя векторами движения может быть выражена как D((Ax1 , Ay1), (Ax2, Ay2)). В этом случае D является определенной мерой искажения. Например, мера искажения может определяться как сумма квадратов разностей двух векторов. Также мера искажения может определяться как сумма абсолютных разностей двух векторов. Если D((Ax1, Ay1 ), (Ax2, Ay2)) не превышает порог T mv, то два вектора движения рассматриваются как подобные.
[0041] Порог Tmv может быть задан числом, например, Tmv=0, 1 или 2 и т.д. Также Tmv может быть задан процентным числом, например 1% от (Ax1 , Ay1) или (Ax2, Ау2) и т.д. Также допустимы и другие формы задания Tmv. Когда Tmv равен 0, то требуется, чтобы векторы (Ax1 , Ay1) и (Ax2, Ay2) были абсолютно одинаковы, как в ранее описанном варианте осуществления изобретения.
[0042] Векторы движения для объединенного блока большего размера выводятся из векторов движения блоков перед слиянием. Способ их определения может основываться на различных критериях. Например, полученный вектор движения может являться средним или средневзвешенным значением векторов движения блоков перед слиянием. Также он может являться медианой этих векторов.
[0043] Далее будет описано получение информации о разбиениях и векторах движения для блока 4×4. Как говорилось ранее, в случае расширенной пространственной масштабируемости блок 4×4 макроблока улучшающего уровня (также как и виртуального макроблока базового уровня) может охватывать вплоть до четырех блоков 4×4 базового уровня. Если в качестве репрезентативного пикселя блока используется отдельный пиксель в блоке 4×4, то выбирается один из блоков 4×4 базового уровня, и информация о разбиениях и векторах движения выбранного блока используется для предсказания текущего блока 4×4. Такой способ может быть неточным, что продемонстрировано на фиг.7. На фиг.7 границы блоков 4×4 базового уровня с повышенной дискретизацией отмечены номером 700. Можно видеть, что блок 4×4 710 в виртуальном макроблоке базового уровня охвачен четырьмя блоками 4×4 720, 722, 724 и 726 из базового уровня. При использовании репрезентативного пикселя (отмечен номером 730 на фиг.7) выбирается один из четырех блоков 4х4 базового уровня (720 на фиг.7), и его информация о разбиениях и векторах движения используется для предсказания для первого блока 4×4 710, даже если остальные три блока 4×4 имеют иную информацию о разбиениях и векторах движения.
[0044] В варианте осуществления настоящего изобретения вместо использования для представления блока 4×4 одного пикселя, при получении информации о разбиениях и векторах движения из базового уровня для текущего блока 4×4 может использоваться множество пикселей. Например, как показано на фиг.8, в качестве репрезентативных пикселей для блока 4×4 840 могут использоваться четыре отсчета 800, 810, 820 и 830. Для каждого репрезентативного отсчета может быть найдено положение соответствующего блока 4×4 базового уровня; блоки 4×4 базового уровня отмечены на фиг.8 номерами 840, 850, 860 и 870. В целом может иметься вплоть до четырех блоков 4×4 из базового уровня. Информация о разбиениях и векторах движения для текущего блока 4×4 может затем быть получена из такой информации для четырех блоков 4×4 из базового уровня.
[0045] Для получения информации о разбиениях и векторах движения из множества блоков 4×4 из базового уровня, в одном варианте изобретения применяют следующие правила. Во-первых, когда блоки 4×4 из базового уровня имеют разные индексы опорных кадров, должен быть выбран блок с меньшим значением индекса опорного кадра. Во-вторых, если меньшее значение индекса опорного кадра имеют более одного блока 4×4 из базового уровня, то рассчитывать и использовать в качестве предсказанного значения векторов движения текущего блока 4×4 необходимо среднее или средневзвешенное значение векторов движения блоков 4×4. В-третьих, когда используется операция вычисления средневзвешенного значения, коэффициент взвешивания для каждого вектора движения из базового уровня может определяться исходя из ряда факторов. Эти факторы могут включать, но не ограничиваются этим, размер площади, представляемой вектором движения внутри блока 4×4, его дельта-вектор движения (т.е. дифференциальный вектор движения между вектором движения и соседними с ним векторами движения), размер разбиения, соответствующего вектору движения, тип и режим макроблока, соответствующего вектору движения, и т.д.
[0046] На фиг.9 показана обобщенная система мультимедийной связи для использования вместе с настоящим изобретением. Как показано на фиг.4, источник 100 данных выдает исходный сигнал в аналоговом, несжатом цифровом или сжатом цифровом формате, или же в любой комбинации этих форматов. Кодер 110 кодирует исходный сигнал в кодированный мультимедийный битовый поток. Кодер 110 может иметь возможность кодирования более одного типа мультимедиа, например аудио и видео, или же для кодирования разных типов мультимедиа-данных в исходном сигнале может потребоваться более одного кодера 110. Кодер 110 также может получать искусственно созданные входные данные, такие как графику или текст, или иметь возможность формирования кодированных битовых потоков искусственных мультимедиа-данных. Далее для упрощения описания будет рассматриваться обработка только одного кодированного мультимедийного битового потока одного типа мультимедиа. Однако необходимо заметить, что обычно вещательные службы, работающие в режиме реального времени, содержат несколько потоков (обычно по меньшей мере один аудио, видео и текстовый субтитровый поток). Также необходимо заметить, что система может содержать много кодеров, но далее для упрощения описания без потери общности будет рассматриваться только один кодер 110.
[0047] Кодированный мультимедийный битовый поток передается в запоминающее устройство 120. Запоминающее устройство 120 может относиться к любому типу массовой памяти для хранения кодированного мультимедийного битового потока. Формат кодированного мультимедийного битового потока в запоминающем устройстве 120 может быть элементарным независимым битовым потоком, или же один или более кодированных мультимедийных битовых потоков могут быть инкапсулированы в файл-контейнер. Некоторые системы работают в режиме реального времени, т.е. пропускают этап сохранения и передают кодированный мультимедийный битовый поток от кодера 110 непосредственно отправителю 130. Затем кодированный мультимедийный битовый поток передается отправителю 130, также называемому сервером. Формат, используемый при передаче, может быть элементарным независимым битовым потоком, или же один или более кодированных мультимедийных битовых потоков могут быть инкапсулированы в файл-контейнер. Кодер 110, запоминающее устройство 120 и отправитель 130 могут размещаться в одном физическом устройстве или могут быть включены в отдельные устройства. Кодер 110 и отправитель 130 могут работать с контентом в режиме реального времени, в этом случае кодированный мультимедийный битовый поток не хранится постоянно, а буферизуется небольшими интервалами времени в кодере 110 контента и/или в отправителе 130 для сглаживания изменений в задержке обработки, задержке передачи и битрейте кодированного мультимедиа.
[0048] Отправитель 130 отправляет кодированный мультимедийный битовый поток при помощи стека протоколов связи. Стек может включать транспортный протокол реального времени (RTP - Real-Time Transport Protocol), протокол пользовательских дейтаграмм (UDP - User Datagram Protocol) и Интернет-протокол (IP - Internet Protocol), но не ограничивается ими. Когда стек протоколов связи является пакетно-ориентированным, отправитель 130 инкапсулирует кодированный мультимедийный битовый поток в пакеты. Например, когда используется RTP, отправитель 130 инкапсулирует кодированный мультимедийный битовый поток в пакеты RTP в соответствии с форматом полезной нагрузки RTP. Обычно каждый тип мультимедиа имеет специальный формат полезной нагрузки RTP. Снова необходимо заметить, что система может содержать более одного отправителя 130, но ради простоты в дальнейшем описании будет рассматриваться только один отправитель 130.
[0049] Отправитель 130 может быть соединен или не соединен со шлюзом 140 через сеть связи. Шлюз 140 может выполнять различные функции, такие как преобразование потока пакетов, соответствующего одному стеку протоколов связи, в другой стек протоколов связи, объединение и разделение потоков данных и управление потоком данных в соответствии с возможностями нисходящей линии связи и/или приемника, например, управление скоростью передачи перенаправленного потока в соответствии с доминирующими условиями сети нисходящей связи. Примеры шлюзов 140 включают устройства управления многоточечными конференциями (MCU - multipoint conference control unit), шлюзы между видеотелефонией с канальной и пакетной коммутацией, серверы связи «нажми и говори по сотовой сети» (РоС - Push-to-talk over Cellular), инкапсуляторы IP в системах цифрового телевидения для портативных устройств (DVB-H - digital video broadcasting-handheld) или приставки, которые пересылают вещательные передачи локально в домашнюю беспроводную сеть. Когда используется RTP, шлюз 140 называется микшером RTP и работает как конечная точка соединения RTP.
[0050] Система включает один или более приемников 150, обычно имеющих возможности приема, демодуляции и декапсуляции сигнала, переданного в кодированном мультимедийном битовом потоке. Кодированный мультимедийный битовый поток обычно далее обрабатывается декодером 160, на выходе которого выдается один или более несжатых мультимедийных потоков. Необходимо заметить, что декодируемый битовый поток может быть принят от удаленного устройства, расположенного практически в любой сети. Также битовый поток может быть принят от локального аппаратного или программного обеспечения. Наконец, рендерер 170 может воспроизводить несжатые мультимедийные потоки при помощи, например, динамика или экрана. Приемник 150, декодер 160 и рендерер 170 могут размещаться в одном физическом устройстве или могут быть включены в отдельные устройства.
[0051] На фиг.10 и 11 показан пример устройства 12 связи, в котором может быть реализовано настоящее изобретение. Однако необходимо понимать, что настоящее изобретение не должно ограничиваться определенным типом устройства 12 связи или другого электронного устройства. Устройство 12 связи на фиг.10 и 11 содержит корпус 30, экран 32 в виде жидкокристаллического дисплея, клавиатуру 34, микрофон 36, наушники 38, батарею 40, инфракрасный порт 42, антенну 44, смарт-карту 46 в форме UICC в соответствии с вариантом осуществления изобретения, устройство 48 считывания карт, схему 52 радиоинтерфейса, схему кодека 54, контроллер 56, память 58 и батарею 60. Типы отдельных схем и элементов хорошо известны в технике, например, в линейке мобильных телефонов Nokia.
[0052] Устройства связи могут осуществлять связь при помощи различных технологий передачи, включая, но не ограничиваясь этим, Многостанционный доступ с кодовым разделением каналов (CDMA - Code Division Multiple Access), Глобальную систему мобильной связи (GSM - Global System for Mobile Communications), Универсальную систему мобильных телекоммуникаций (UMTS - Universal Mobile Telecommunications System), Многостанционный доступ с разделением по времени (TDMA - Time Division Multiple Access), Многостанционный доступ с разделением по частотам (FDMA - Frequency Division Multiple Access), Протокол управления передачей/Интернет-протокол (TCP/IP - Transmission Control Protocol/Internet Protocol), Службу передачи коротких сообщений (SMS - Short Messaging Service), Службу передачи мультимедиа-сообщений (MMS - Multimedia Messaging Service), e-mail, Службу мгновенного обмена сообщениями (IMS -Instant Messaging Service), Bluetooth, IEEE 802.11 и т.д. Устройство связи может осуществлять связь через различные среды, включая, но не ограничиваясь этим, радио, инфракрасное, лазерное, кабельное соединение и т.п.
[0053] Настоящее изобретение в основном контексте описано в виде этапов, которые могут быть реализованы в одном варианте его осуществления в виде компьютерной программы, содержащей выполняемые компьютером инструкции, такие как программный код, выполняемый компьютерами в сетевых средах. Машиночитаемый носитель программы может являться съемным или стационарным запоминающим устройством, включая, но не ограничиваясь этим; постоянную память (ROM - Read Only Memory), оперативную память (RAM - Random Access Memory), компакт-диски (CD - compact disc), универсальные цифровые диски (DVD - digital versatile disc) и т.д. Как правило, программа включает подпрограммы, программы, объекты, компоненты, структуры данных и т.д., которые выполняют отдельные задачи или реализуют отдельные абстрактные типы данных. Выполняемые компьютером инструкции, связанные структуры данных и программные модули представляют собой примеры программного кода для выполнения шагов в соответствии с описанными здесь способами. Отдельная последовательность таких выполняемых инструкций или связанных структур данных представляет примеры соответствующих действий для реализации функций, описанных в этих шагах.
[0054] Программные и сетевые варианты реализации настоящего изобретения могут быть выполнены при помощи стандартной технологии программирования с логикой, основанной на правилах, и другой логикой для выполнения различных шагов поиска в базе данных, шагов корреляции, шагов сравнения и шагов принятия решения. Также необходимо заметить, что слова «компонент» и «модуль», используемые здесь и в формуле, охватывают варианты реализации, осуществленные при помощи одной или более строк программного кода, и/или аппаратные варианты реализации и/или оборудование для приема вводимых вручную данных.
[0055] Предшествующее описание вариантов реализации настоящего изобретения было представлено в целях иллюстрации и описания. Оно не является исчерпывающим и не предназначено для четкого ограничения настоящего изобретения описанными вариантами, и поэтому в свете вышеизложенных идей, или исходя из практического использования настоящего изобретения, могут быть выполнены различные модификации и изменения. Варианты реализации были выбраны и описаны для того, чтобы объяснить принципы и варианты практического применения настоящего изобретения и обеспечить специалистам возможность использовать его в различных вариантах и с различными модификациями, подходящими для предполагаемого частного случая использования. Особенности описанных в данном документе вариантов осуществления изобретения могут сочетаться во всех возможных комбинациях способов, устройств, компьютерных программных продуктов и систем.
Класс H04N7/26 с использованием уменьшения ширины полосы частот
Класс H04N7/50 включающие преобразование и прогнозное кодирование