системы кодирования
Классы МПК: | H04N7/26 с использованием уменьшения ширины полосы частот |
Автор(ы): | ЧЖУ Линхуа (CN), ЛО Цзянькон (US), ИНЬ Пэн (US), ЯН Цзихэн (CN) |
Патентообладатель(и): | ТОМСОН ЛАЙСЕНСИНГ (FR) |
Приоритеты: |
подача заявки:
2008-04-07 публикация патента:
10.12.2013 |
Изобретение относится к области кодирования и декодирования видео данных масштабируемым способом. Техническим результатом является облегчение кодирования/декодирования каждого из уровней видео данных в терминале. Технический результат достигается тем, что предложена структура дополнительного набора параметров последовательности ("SPS"), который имеет свой собственный тип модуля уровня сетевой абстракции ("NAL") и разрешает передачу параметров, зависящих от уровня, для небазисных уровней в SVC-среде. Структура дополнительного SPS может использоваться для просмотра информации в среде многовидового видео кодирования (MVC). В общем аспекте предоставляется структура, которая включает в себя информацию из модуля SPS NAL, причем информация описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений и информацию из модуля дополнительного SPS NAL, который имеет другую структуру, чем модуль SPS NAL, причем информация из модуля дополнительного SPS NAL описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. 5 н. - 30 з.п. ф-лы, 19 ил.
Формула изобретения
1. Способ декодирования данных, причем способ содержит этапы, на которых:
осуществляют доступ к информации из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"), причем эта информация описывает параметр для использования в декодировании кодирования первого уровня изображения в последовательности изображений; осуществляют доступ к дополнительной информации из модуля NAL дополнительного SPS, который имеет код типа модуля NAL, отличный от такового модуля NAL SPS, и который имеет структуру синтаксиса, отличную от таковой модуля NAL SPS, и причем эта дополнительная информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня упомянутого изображения в последовательности изображений; и декодируют кодирование первого уровня, и кодирование второго уровня, на основании, соответственно, упомянутой информации, к которой осуществляется доступ, из модуля NAL SPS, и дополнительной информации, к которой осуществляется доступ, из модуля NAL дополнительного SPS.
2. Способ по п.1, в котором: модуль NAL SPS соответствует стандарту H.264/MPEG-4 AVC, и модуль NAL дополнительного SPS соответствует расширению масштабируемого кодирования видеосигнала ("SVC") стандарта H.264/MPEG-4 AVC.
3. Способ по п.2, в котором модули NAL дополнительного SPS имеют тип выделенного модуля NAL, и стандарт, таким образом, допускает совместимость между AVC-декодерами и SVC-декодерами, разрешая AVC-декодерам игнорировать модули NAL, которые имеют тип модуля NAL дополнительного SPS, и требуют от SVC-декодеров функционировать согласно модулям NAL, которые имеют тип модуля NAL дополнительного SPS.
4. Способ по п.1, в котором синтаксис для модуля NAL дополнительного SPS предусматривается для параметров, зависящих от уровня.
5. Способ по п.1, в котором модуль NAL дополнительного SPS включает в себя информацию, зависящую от уровня, для по меньшей мере одного уровня.
6. Способ по п.1, в котором параметр для использования в декодировании кодирования второго уровня содержит параметр информации по использованию видео ("VUI").
7. Способ по п.1, в котором параметр для использования в декодировании кодирования второго уровня содержит параметр гипотетического опорного декодера ("HRD").
8. Способ по п.1, в котором: модуль NAL SPS соответствует модулю NAL SPS в стандарте H.264/MPEG-4 AVC, и модуль NAL дополнительного SPS соответствует модулю NAL поднабора SPS в расширении SVC стандарта H.264/MPEG-4 AVC.
9. Способ по п.1, в котором модуль NAL дополнительного SPS соответствует стандарту, в котором декодеру требуется функционировать согласно информации, принятой в модуле NAL дополнительного SPS.
10. Способ по п.1, в котором кодирование первого уровня имеет уровень, отличный от такового кодирования второго уровня, для одного или более из пространственного уровня, уровня качества или временного уровня.
11. Способ по п.1, в котором доступ к информации из модуля NAL SPS, и к информации из модуля NAL дополнительного SPS осуществляют из битового потока, принимаемого по каналу передачи.
12. Способ по п.1, в котором осуществление доступа к информации из модуля NAL SPS, осуществление доступа к информации из модуля NAL дополнительного SPS и формирование декодирования осуществляют в декодере.
13. Способ по п.1, в котором осуществление доступа к информации из модуля NAL SPS, осуществление доступа к информации из модуля NAL дополнительного SPS и декодирование осуществляют в кодере.
14. Способ по п.1, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4 AVC.
15. Способ по п.1, в котором: параметр для использования в декодировании кодирования второго уровня изображения содержит параметр информации по использованию видео ("VUI") масштабируемого кодирования видеосигнала ("SVC"); и отличная структура синтаксиса отражена в дополнительной информации, включающей в себя временные индикаторы, индикаторы зависимости и качества, которые указывают, что параметр VUI SVC применяется для кодирования второго уровня изображения.
16. Способ по п.15, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4 AVC.
17. Способ по п.15, в котором модуль NAL SPS имеет доступный код типа модуля NAL.
18. Способ по п.1, в котором параметр, описанный информацией из модуля NAL SPS, также требуется для того, чтобы декодировать кодирование второго уровня.
19. Устройство декодирования данных, причем устройство содержит читаемый процессором носитель, который включает в себя команды, хранимые на читаемом процессором носителе для осуществления, по меньшей мере, следующего:
осуществление доступа к информации из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"), причем информация описывает параметр для использования в декодировании кодирования первого уровня изображения в последовательности изображений; осуществление доступа к дополнительной информации из модуля NAL дополнительного SPS, который имеет код типа модуля NAL, отличный от такового модуля NAL SPS и который имеет структуру синтаксиса, отличную от таковой модуля NAL SPS, и причем дополнительная информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня изображения в последовательности изображений; и декодирование кодирования первого уровня, и кодирования второго уровня, на основании, соответственно, информации, к которой осуществляется доступ из модуля NAL SPS, и дополнительной информации, к которой осуществляется доступ, из модуля NAL дополнительного SPS.
20. Устройство по п.19, в котором: параметр для использования в декодировании кодирования второго уровня изображения содержит параметр информации по использованию видео ("VUI") масштабируемого кодирования видеосигнала ("SVC"); и отличная структура синтаксиса отражена в дополнительной информации, включающей в себя временные индикаторы, индикаторы зависимости и качества которые указывают, что параметр VUI SVC применяется для кодирования второго уровня изображения.
21. Устройство по п.20, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4AVC.
22. Устройство по п.20, в котором модуль NAL SPS имеет доступный код типа модуля NAL.
23. Устройство декодирования данных, причем устройство содержит:
средство осуществления (1) доступа к информации из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"), причем информация описывает параметр для использования в декодировании кодирования первого уровня изображения в последовательности изображений, и (2) дополнительной информации из модуля NAL дополнительного SPS, который имеет код типа модуля NAL, отличный от такового модуля NAL SPS, и который имеет структуру синтаксиса, отличную от таковой модуля NAL SPS, и причем дополнительная информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня изображения в последовательности изображений; и средство декодирования кодирования первого уровня, и кодирования второго уровня, на основании, соответственно, информации, к которой осуществляется доступ из модуля NAL SPS, и дополнительной информации, к которой осуществляется доступ, из модуля NAL дополнительного SPS.
24. Устройство по п.23, в котором: параметр для использования в декодировании кодирования второго уровня изображения содержит параметр информации по использованию видео ("VUI") масштабируемого кодирования видеосигнала ("SVC"); и отличная структура синтаксиса отражена в дополнительной информации, включающей в себя временные индикаторы, индикаторы зависимости и качества которые указывают, что параметр VUI SVC применяется для кодирования второго уровня изображения.
25. Устройство по п.24, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4AVC.
26. Устройство по п.24, в котором модуль NAL SPS имеет доступный код типа модуля NAL.
27. Устройство декодирования данных, причем устройство содержит процессор, сконфигурированный для осуществления следующего:
осуществление доступа к информации из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"), причем информация описывает параметр для использования в декодировании кодирования первого уровня изображения в последовательности изображений;
осуществление доступа к дополнительной информации из модуля NAL дополнительного SPS, который имеет код типа модуля NAL, отличный от такового модуля NAL SPS, и который имеет структуру синтаксиса, отличную от таковой модуля NAL SPS, и причем дополнительная информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня изображения в последовательности изображений; и декодирование кодирования первого уровня, и кодирования второго уровня, на основании, соответственно, информации, к которой осуществляется доступ, из модуля NAL SPS, и дополнительной информации, к которой осуществляется доступ, из модуля NAL дополнительного SPS.
28. Устройство по п.27, дополнительно содержащее память для хранения видеоданных.
29. Устройство по п.27, в котором: параметр для использования в декодировании кодирования второго уровня изображения содержит параметр информации по использованию видео ("VUI") масштабируемого кодирования видеосигнала ("SVC"); и отличная структура синтаксиса отражена в дополнительной информации, включающей в себя временные индикаторы, индикаторы зависимости и качества которые указывают, что параметр VUI SVC применяется для кодирования второго уровня изображения.
30. Устройство по п.29, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4AVC.
31. Устройство по п.29, в котором модуль NAL SPS имеет доступный код типа модуля NAL.
32. Устройство декодирования данных, причем устройство содержит:
модуль анализа, сконфигурированный (1) для осуществления доступа к информации из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"), причем информация описывает параметр для использования в декодировании кодирования первого уровня изображения в последовательности изображений, и (2) для осуществления доступа к дополнительной информации из модуля NAL дополнительного SPS, который имеет код типа модуля NAL, отличный от такового модуля NAL SPS и который имеет структуру синтаксиса, отличную от таковой модуля NAL SPS, и причем дополнительная информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня изображения в последовательности изображений; и декодер, сконфигурированный (1) для декодирования кодирования первого уровня, используя информацию, к которой осуществляется доступ, из модуля NAL SPS, (2) для декодирования кодирования второго уровня, используя дополнительную информацию, к которой осуществляется доступ, из модуля NAL дополнительного SPS, и (3) для формирования реконструкции изображения в последовательности изображений на основе одного или более декодирования кодирования первого уровня и декодирования кодирования второго уровня.
33. Устройство по п.32, в котором: параметр для использования в декодировании кодирования второго уровня изображения содержит параметр информации по использованию видео ("VUI") масштабируемого кодирования видеосигнала ("SVC"); и отличная структура синтаксиса отражена в дополнительной информации, включающей в себя временные индикаторы, индикаторы зависимости и качества которые указывают, что параметр VUI SVC применяется для кодирования второго уровня изображения.
34. Устройство по п.33, в котором модуль NAL SPS, по существу, соответствует модулю NAL SPS в стандарте H.264/MPEG-4AVC.
35. Устройство по п.33, в котором модуль NAL SPS имеет доступный код типа модуля NAL.
Описание изобретения к патенту
ПЕРЕКРЕСТНАЯ ССЫЛКА НА РОДСТВЕННЫЕ ЗАЯВКИ
Настоящая заявка испрашивает приоритет и настоящим полностью включает посредством ссылки для всех целей каждую из (1) предварительной патентной заявки США № 60/923,993, озаглавленной "Supplemental Sequence Parameter Set for Scalable Video Coding or Multi-view Video Coding" ("Дополнительный набор параметров последовательности для масштабируемого видео кодирования или многовидового видео кодирования") и поданной 18 апреля 2007 г. (номер поверенного PU070101) и (2) патентной заявки США № 11/824,006, озаглавленной "Supplemental Sequence Parameter Set for Scalable Video Coding or Multi-view Video Coding" ("Дополнительный набор параметров последовательности для масштабируемого видео кодирования или многовидового видео кодирования") и поданной 28 июня 2007 г. (номер поверенного РА070032).
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕ
По меньшей мере, один вариант осуществления относится к кодированию и декодированию видео данных масштабируемым способом.
УРОВЕНЬ ТЕХНИКИ
Кодирование видео данных согласно нескольким уровням может быть полезно, когда терминалы, для которых предназначены данные, имеют различную производительность, и, следовательно, не декодируют полный поток данных, но лишь часть полного потока данных. Когда видео данные декодируются согласно нескольким уровням масштабируемым способом, принимающий терминал может извлекать из принятого битового потока часть данных согласно профилю терминала. Полный поток данных может также передавать служебную информацию для каждого поддерживаемого уровня, чтобы облегчить декодирование каждого из уровней в терминале.
СУЩНОСТЬ ИЗОБРЕТЕНИЯ
Согласно общему аспекту, к информации осуществляется доступ из модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS"). Информация описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. К информации также осуществляется доступ из модуля NAL дополнительного SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Декодирование последовательности изображений сформировано на основе кодирования первого уровня, кодирования второго уровня, информации, к которой осуществляется доступ из модуля NAL SPS, и информации, к которой осуществляется доступ из модуля NAL дополнительного SPS.
Согласно другому общему аспекту используется структура синтаксиса, которая предусматривает декодирование последовательности изображений в многочисленных уровнях. Структура синтаксиса включает в себя синтаксис для модуля NAL SPS, включающий в себя информацию, описывающую параметр для использования в декодировании кодирования первого уровня последовательности изображений. Структура синтаксиса также включает в себя синтаксис для модуля NAL дополнительного SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Модуль NAL дополнительного SPS включает в себя информацию, описывающую параметр для использования в декодировании кодирования второго уровня последовательности изображений. Декодирование последовательности изображений может быть сформировано на основе кодирования первого уровня, кодирования второго уровня, информации, к которой осуществляется доступ из модуля NAL SPS, и информации из модуля NAL дополнительного SPS.
Согласно другому общему аспекту, сигнал форматируется, чтобы включать в себя информацию из модуля NAL SPS. Информация описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. Сигнал дополнительно форматируется, чтобы включать в себя информацию из модуля NAL дополнительного SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Информация из модуля NAL дополнительного SPS описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений.
Согласно другому общему аспекту формируется модуль NAL SPS, который включает в себя информацию, описывающую параметр для использования в декодировании кодирования первого уровня последовательности изображений. Формируется модуль NAL дополнительного SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Модуль NAL дополнительного SPS включает в себя информацию, которая описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Предоставляется набор данных, который включает в себя кодирование первого уровня последовательности изображений, кодирования второго уровня последовательности изображений, модуль NAL SPS и модуль NAL дополнительного SPS.
Согласно другому общему аспекту используется структура синтаксиса, которая предусматривает кодирование последовательности изображений в многочисленных уровнях. Структура синтаксиса включает в себя синтаксис для модуля NAL SPS. Модуль NAL SPS включает в себя информацию, которая описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. Структура синтаксиса включает в себя синтаксис для модуля NAL дополнительного SPS. Модуль NAL дополнительного SPS имеет структуру, отличную от таковой модуля NAL SPS. Модуль NAL дополнительного SPS включает в себя информацию, которая описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Может быть предоставлен набор данных, который включает в себя кодирование первого уровня последовательности изображений, кодирование второго уровня последовательности изображений, модуль NAL SPS и модуль NAL дополнительного SPS.
Согласно другому общему аспекту к информации первого зависимого уровня доступ осуществляется в первом наборе нормативных параметров. Информация первого зависимого уровня, к которой осуществляется доступ, существует для использования в декодировании кодирования первого уровня последовательности изображений. К информации второго зависимого уровня доступ осуществляется во втором наборе нормативных параметров. Второй набор нормативных параметров имеет структуру, отличную от таковой первого набора нормативных параметров. Информация второго зависимого уровня, к которой осуществляется доступ, существует для использования в декодировании кодирования второго уровня последовательности изображений. Последовательность изображений декодируется на основе одной или более информации первого зависимого уровня, к которой осуществляется доступ, или информации второго зависимого уровня, к которой осуществляется доступ.
Согласно другому общему аспекту сформирован первый набор нормативных параметров, который включает в себя информацию первого зависимого уровня. Информация первого зависимого уровня существует для использования в декодировании кодирования первого уровня последовательности изображений. Формируется второй набор нормативных параметров, который имеет структуру, отличную от таковой первого набора нормативных параметров. Второй набор нормативных параметров включает в себя информацию второго зависимого уровня для использования в декодировании кодирования второго уровня последовательности изображений. Предоставляется набор данных, который включает в себя первый набор нормативных параметров и второй набор нормативных параметров.
Подробности одного или более вариантов осуществления изложены в сопроводительных чертежах и описании ниже. Даже если описано одним конкретным образом, должно быть ясно, что варианты осуществления могут быть сконфигурированы или осуществлены различными способами. Например, вариант реализации может быть осуществлен как способ или реализован как устройство, такое, как, например, устройство, сконфигурированное для осуществления набора этапов или устройство, хранящее команды для осуществления набора этапов, или реализованное в сигнале. Другие аспекты или признаки станут очевидными из последующего подробного описания, рассмотренного в связи с сопроводительными чертежами и формулой изобретения.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙ
Фиг.1 является блок-схемой для реализации кодера.
Фиг.1a является блок-схемой для другого варианта реализации кодера.
Фиг.2 является блок-схемой для реализации декодера.
Фиг.2a является блок-схемой для другого варианта реализации декодера.
Фиг.3 является структурой варианта осуществления модуля уровня сетевой абстракции ("NAL") набора параметров последовательности ("SPS") единственного уровня.
Фиг.4 является схематичным представлением примера частей потока данных, который иллюстрирует использование модуля NAL SPS.
Фиг.5 является структурой варианта осуществления модуля NAL дополнительного SPS ("SUP SPS").
Фиг.6 является реализацией организационной иерархии среди модуля SPS и многочисленных модулей SUP SPS.
Фиг.7 является структурой другого варианта осуществления модуля NAL SUP SPS.
Фиг.8 является функциональным представлением варианта осуществления масштабируемого видео кодера, который формирует модули SUP SPS.
Фиг.9 является иерархическим представлением варианта осуществления формирования потока данных, который содержит модули SUP SPS.
Фиг.10 является схематичным представлением примера потока данных, сформированного вариантом реализованного на фиг.9.
Фиг.11 является блок-схемой реализации кодера.
Фиг.12 является блок-схемой другого варианта реализации кодера.
Фиг.13 является блок-схемой последовательности этапов способа варианта реализации процесса кодирования, используемого кодерами фиг.11 или 12.
Фиг.14 является схематичным представлением примера потока данных, сформированного процессом на фиг.13.
Фиг.15 является блок-схемой реализации декодера.
Фиг.16 является блок-схемой другого варианта реализации декодера.
Фиг.17 является блок-схемой последовательности этапов способа варианта реализации процесса декодирования фиг.15 или 16.
ПОДРОБНОЕ ОПИСАНИЕ
В настоящее время существует несколько стандартов видео кодирования, которые могут кодировать видео данные согласно различным уровням и/или профилям. Среди них можно процитировать H.264/MPEG-4 AVC ("стандарт AVC"), также упоминаемый как стандарт расширенного кодирования видео сигнала (AVC), Экспертной группа-4 по вопросам движущегося изображения (MPEG-4), часть 10, Международная организация по стандартизации /Международная электротехническая комиссия (ISO/IEC)/ Рекомендация Н.264, Международный союз телекоммуникаций, сектор телекоммуникаций (ITU-T). Кроме того, существуют расширения для стандарта AVC. Первым подобным расширением является расширение масштабируемого кодирования видео сигнала ("SVC") (Приложение G), упоминаемое как H.264/MPEG-4 AVC, расширение масштабируемого кодирования видео сигнала ("расширение SVC"). Вторым подобным расширением является расширение многовидового кодирования видео сигнала ("MVC") (Приложение Н), упоминаемое как H.264/MPEG-4 AVC, расширение MVC ("расширение MVC").
По меньшей мере, один вариант реализации, описанный в этом изобретении, может использоваться с AVC-стандартом, а также расширениями SVC и MVC. Реализация предусматривает модуль уровня сетевой абстракции ("NAL") дополнительного ("SUP") набора параметров последовательности ("SPS"), который имеет тип модуля NAL, отличный от такового модулей NAL SPS. Модуль SPS типично включает в себя, но не обязательно, информацию для, по меньшей мере, единственного уровня. Кроме того, модуль NAL SPS SUP включает в себя информацию, зависящую от уровня для, по меньшей мере, одного дополнительного уровня. Таким образом, осуществляя доступ к модулям SPS и SPS SUP, декодер имеет доступной некоторую (и типично всю) зависимую от уровня информацию, необходимую для декодирования битового потока.
Используя этот вариант осуществления в AVC-системе, модули NAL SPS SUP не требуется передавать, и может быть передан модуль NAL SPS единственного уровня (как описано ниже). Используя этот вариант осуществления в SVC (или MVC) системе, модуль(и) NAL SPS SUP может (могут) передаваться для желаемых дополнительных уровней (или представлений) в дополнение к модулю NAL SPS. Используя этот вариант осуществления в системе, включающей в себя как AVC-совместимые декодеры и SVC-совместимые (или MVC-совместимые) декодеры, AVC-совместимые декодеры могут игнорировать модули NAL SPS SUP, обнаруживая тип модуля NAL. В каждом случае достигается эффективность и совместимость.
Вышеуказанный вариант осуществления также обеспечивает преимущества для систем (стандартов или иного), которые налагают требование, что определенные уровни совместно используют информацию заголовка, такую как, например, SPS или конкретную информацию, типично передаваемую в SPS. Например, если базовому уровню и его составным временным уровням необходимо совместно использовать SPS, тогда зависимая от уровня информация не может быть передана с совместно используемым SPS. Тем не менее, SUP SPS предусматривает механизм для передачи информации, зависящей от уровня.
SUP SPS различных вариантов осуществления также предусматривает эффективное преимущество в том, что SUP SPS не нужно включать в себя и, следовательно, повторять все параметры в SPS. SUP SPS типично фокусируется на параметрах, зависящих от уровня. Тем не менее, различные варианты осуществления включают в себя структуру SUP SPS, которая включает в себя параметры, не зависящие от уровня, или даже повторяет всю структуру SPS.
Различные варианты осуществления относятся к расширению SVC. Расширение SVC предлагает передачу видео данных согласно нескольким пространственным уровням, временным уровням и уровням качества. Для одного пространственного уровня можно кодировать согласно нескольким временным уровням и для каждого временного уровня - согласно нескольким уровням качества. Следовательно, когда заданы m пространственных уровней, n временных уровней и O уровней качества, видео данные могут кодироваться согласно m*n*O различных комбинаций. Эти комбинации также упоминаются как уровни, или как точки взаимодействия ("IOP"). Согласно возможностям декодера (также упоминаемого как приемник или клиент), различные уровни могут передаваться до определенного уровня, соответствующего максимуму возможностей клиента.
Как используется в данном документе, зависимая от уровня информация относится к информации, которая относится конкретно к единственному уровню. То есть, по определению, информация является зависящей от определенного уровня. Подобную информацию не требуется обязательно изменять от уровня к уровню, но типично она предоставляется отдельно для каждого уровня.
Как используется в материалах настоящей заявки, синтаксис высокого уровня относится к синтаксису, представленному в битовом потоке, который постоянно хранится иерархически выше уровня макроблоков. Например, синтаксис высокого уровня, как используется в материалах настоящей заявки, может относиться, без ограничения указанным, к синтаксису в заголовке битовых потоков, дополнительному уровню информации расширения (SEI), уровню изображения набора параметров (PPS), уровню набора параметров последовательности (SPS) и уровню заголовка модуля сетевого уровня абстракции (NAL).
На фиг.1 примерный SVC-кодер обозначен ссылочной позицией 100 ссылки. SVC-кодер 100 может также использоваться для AVC-кодирования, то есть для единственного уровня (например, базовый уровень). Дополнительно, SVC-кодер 100 может использоваться для MVC-кодирования, как должно быть понятно специалисту в данной области техники. Например, различные компоненты SVC-кодера 100 или варианты этих компонентов могут использоваться в кодировании многочисленных представлений.
Первый вывод модуля 142 временной декомпозиции соединен, в сигнальной связи, с первым вводом внутреннего прогнозирования для модуля 146 внутренних блоков. Второй вывод модуля 142 временной декомпозиции соединен, в сигнальной связи, с первым вводом модуля 144 кодирования движения. Вывод внутреннего прогнозирования для модуля 146 внутренних блоков соединен, в сигнальной связи, с вводом кодера 149 преобразования/энтропии (масштабируемый по отношению "сигнал-шум" (SNR)). Первый вывод кодера 149 преобразования/энтропии соединен, в сигнальной связи, с первым вводом мультиплексора 170.
Первый вывод модуля 132 временной декомпозиции соединен, в сигнальной связи, с первым вводом внутреннего прогнозирования для модуля 136 внутренних блоков. Второй вывод модуля 132 временной декомпозиции соединен, в сигнальной связи, с первым вводом модуля 134 кодирования движения. Вывод внутреннего прогнозирования для модуля 136 внутренних блоков соединен, в сигнальной связи, с вводом кодера 139 преобразования/энтропии (масштабируемый по отношению "сигнал-шум" (SNR). Первый вывод кодера 139 преобразования/энтропии соединен, в сигнальной связи, с первым вводом мультиплексора 170.
Второй вывод кодера 149 преобразования/энтропии соединен, в сигнальной связи, с вводом модуля 138 двухмерной пространственной интерполяции. Вывод модуля 138 двухмерной пространственной интерполяции соединен, в сигнальной связи, вторым вводом внутреннего прогнозирования для модуля 136 внутренних блоков. Второй вывод модуля 144 кодирования движения соединен, в сигнальной связи, с вводом модуля 134 кодирования движения.
Первый вывод модуля 122 временной декомпозиции соединен, в сигнальной связи, с первым вводом внутреннего прогнозирующего устройства 126. Второй вывод модуля 122 временной декомпозиции соединен, в сигнальной связи, с первым вводом модуля 124 кодирования движения. Вывод внутреннего прогнозирующего устройства 126 соединен, в сигнальной связи, с вводом кодера 129 преобразования/энтропии (масштабируемый по отношению "сигнал-шум" (SNR)). Вывод кодера 129 преобразования/энтропии соединен, в сигнальной связи, с первым вводом мультиплексора 170.
Второй вывод кодера 139 преобразования/энтропии соединен, в сигнальной связи, с вводом модуля 128 двухмерной пространственной интерполяции. Вывод модуля 128 двухмерной пространственной интерполяции соединен, в сигнальной связи, со вторым вводом модуля 126 внутреннего прогнозирующего устройства. Второй вывод модуля 134 кодирования движения соединен, в сигнальной связи, с вводом модуля 124 кодирования движения.
Первый вывод модуля 124 кодирования движения, первый вывод модуля 134 кодирования движения и первый вывод модуля 144 кодирования движения, каждый соединен, в сигнальной связи, со вторым вводом мультиплексора 170.
Первый вывод модуля 104 двумерной пространственной децимации соединен, в сигнальной связи, с вводом модуля 132 временной декомпозиции. Второй вывод модуля 104 двухмерной пространственной децимации соединен, в сигнальной связи, с вводом модуля 142 временной декомпозиции.
Ввод модуля 122 временной декомпозиции и ввод модуля 104 двухмерной пространственной децимации доступны как вводы кодера 110 для приема входящего видео 102.
Вывод мультиплексора 170 доступен как вывод кодера 100 для предоставления битового потока 180.
Модуль 122 временной декомпозиции, модуль 132 временной декомпозиции, модуль 142 временной декомпозиции, модуль 124 кодирования движения, модуль 134 кодирования движения, модуль 144 кодирования движения, внутреннее прогнозирующее устройство 126, внутреннее прогнозирующее устройство 136, внутреннее прогнозирующее устройство 146, кодер 129 преобразования/энтропии, кодер 139 преобразования/энтропии, кодер 149 преобразования/энтропии, модуль 128 двумерной пространственной интерполяции, модуль 138 двумерной пространственной интерполяции включены в часть 187 основного кодера для кодера 100.
Фиг.1 включает в себя три основных кодера 187. В показанном варианте осуществления самый нижний основной кодер 187 может кодировать основной уровень, а средний или верхний основные кодеры 187 кодируют более высокие уровни.
На фиг.2 примерный SVC-кодер обозначен в общем ссылочной позицией 200 ссылки. SVC-декодер 200 может также использоваться для AVC-декодирования, то есть для единственного представления. Дополнительно, SVC-декодер 200 может использоваться для MVC-декодирования, как должно быть понятно специалисту в данной области техники. Например, различные компоненты SVC-декодера 200 или варианты этих компонентов могут использоваться в декодировании многочисленных представлений.
Следует заметить, что кодер 100 и декодер 200, а также другие кодеры и декодеры, рассмотренные в этом изобретении, могут конфигурироваться для осуществления различных раскрытых способов согласно изобретению. В дополнение к осуществлению операций кодирования кодеры, описанные в этом изобретении, могут осуществлять различные операции декодирования в процессе реконструкции для того, чтобы отображать ожидаемые действия декодера. Например, кодер может декодировать модули SUP SPS для декодирования кодированных видео данных для создания реконструкции кодированных видео данных для использования в прогнозировании дополнительных видео данных. Следовательно, кодер может выполнять, по существу, все операции, которые выполняются декодером.
Ввод демультиплексора 202 доступен как ввод для декодера 200 масштабируемого видео для приема масштабируемого битового потока. Второй вывод демультиплексора 202 соединен, в сигнальной связи, с вводом декодера 204 пространственного обратного преобразования SNR с масштабируемой энтропией. Первый вывод декодера 204 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с первым вводом модуля 206 прогнозирования. Вывод модуля 206 прогнозирования соединен, в сигнальной связи, с первым вводом объединителя 230.
Второй вывод декодера 204 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с первым вводом декодера 210 вектора движения (MV). Выход запоминающего устройства 210 опорного изображения соединяется сигнальной связью с первым входом компенсатора 232 движения. Вывод компенсатора 232 движения соединяется, в сигнальной связи, со вторым вводом объединителя 230.
Второй вывод демультиплексора 202 соединен, в сигнальной связи, с вводом декодера 212 пространственного обратного преобразования SNR с масштабируемой энтропией. Первый вывод декодера 212 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с первым вводом модуля 214 прогнозирования. Первый вывод модуля 214 прогнозирования соединен, в сигнальной связи, с вводом модуля 216 интерполяции. Вывод модуля 216 интерполяции соединен, в сигнальной связи, со вторым вводом модуля 206 прогнозирования. Второй вывод модуля 214 прогнозирования соединен, в сигнальной связи, с первым вводом объединителя 240.
Второй вывод декодера 212 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с первым вводом MV-декодера 220. Первый вывод MV-декодера 220 соединен, в сигнальной связи, с первым вводом MV-декодера 210. Второй вывод MV-декодера 220 соединяется, в сигнальной связи, с вводом компенсатора 242 движения. Вывод компенсатора 242 движения соединяется, в сигнальной связи, со вторым вводом объединителя 240.
Второй вывод демультиплексора 202 соединен, в сигнальной связи, с вводом декодера 222 пространственного обратного преобразования SNR с масштабируемой энтропией. Первый вывод декодера 222 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с вводом модуля 224 прогнозирования. Первый вывод модуля 224 прогнозирования соединен, в сигнальной связи, с вводом модуля 226 интерполяции. Вывод модуля 226 интерполяции соединен, в сигнальной связи, со вторым вводом модуля 214 прогнозирования.
Второй вывод модуля 224 прогнозирования соединен, в сигнальной связи, с первым вводом объединителя 250. Второй вывод декодера 222 пространственного обратного преобразования SNR с масштабируемой энтропией соединен, в сигнальной связи, с вводом MV-декодера 230. Первый вывод MV-декодера 230 соединен, в сигнальной связи, со вторым вводом MV-декодера 220. Второй вывод MV-декодера 230 соединяется, в сигнальной связи, с вводом компенсатора 252 движения. Вывод компенсатора 252 движения соединяется, в сигнальной связи, со вторым вводом объединителя 250.
Вывод объединителя 250 доступен как вывод декодера 200 для вывода сигнала 0 уровня. Вывод объединителя 240 доступен как вывод декодера 200 для вывода сигнала 1 уровня. Вывод объединителя 230 доступен как вывод декодера 200 для вывода сигнала 2 уровня.
На фиг.1a примерный AVC-кодер обозначен в общем ссылочной позицией 2100. AVC-кодер 2100 может использоваться, например, для кодирования единственного уровня (например, основной уровень).
Видео кодер 2100 включает в себя буфер 2110 расположения кадров, имеющий вывод в сигнальной связи с неинверсным вводом объединителя 2185. Вывод объединителя 2185 соединен, в сигнальной связи, с первым вводом преобразователя и квантователя 2125. Вывод преобразователя и квантователя 2125 соединен, в сигнальной связи, с первым вводом энтропийного кодера 2145 и первым вводом обратного преобразователя и обратного квантователя 2150. Вывод энтропийного кодера 2145 соединен, в сигнальной связи, с первым неинверсным вводом объединителя 2190. Вывод объединителя 2190 соединен, в сигнальной связи, с первым вводом буфера 2135 вывода.
Первый вывод контроллера 2105 кодера соединен, в сигнальной связи, со вторым вводом буфера 2110 расположения кадров, вторым вводом обратного преобразователя и обратного квантователя 2150, вводом модуля 2115 решения типа изображения, вводом модуля 2120 решения типа макроблоков (МВ-тип), вторым вводом модуля 2160 внутреннего прогнозирования, вторым вводом фильтра 2165 деблокирования, первым вводом компенсатора 2170 движения, первым вводом блока 2175 оценки движения и вторым вводом буфера 2180 опорного изображения.
Второй вывод контроллера 2105 кодера соединен, в сигнальной связи, с первым вводом устройства 2130 ввода дополнительной информации расширения ("SEI"), вторым вводом преобразователя и квантователя 2125, вторым вводом энтропийного кодера 2145, вторым вводом буфера 2135 вывода и вводом устройства 2140 ввода набора последовательности параметров (SPS) и набора параметров изображения (PPS).
Первый вывод модуля 2115 решения типа изображения соединен, в сигнальной связи, с третьим вводом буфера 2110 расположения кадров. Второй вывод модуля 2115 решения о типе изображения соединен, в сигнальной связи, со вторым вводом модуля 2120 решения о типе макроблоков.
Вывод устройства 2140 ввода набора последовательности параметров ("SPS") и набора параметров изображения ("PPS") соединен, в сигнальной связи, с третьим неинверсным вводом объединителя 2190. Вывод устройства 2130 ввода SEI соединен, в сигнальной связи, со вторым неинверсным вводом объединителя 2190.
Вывод обратного квантователя и обратного преобразователя 2150 соединен, в сигнальной связи, с первым неинверсным вводом объединителя 2127. Вывод объединителя 2127 соединен, в сигнальной связи, с первым вводом модуля 2160 внутреннего прогнозирования и первым вводом фильтра 2165 деблокирования. Вывод фильтра 2165 деблокирования соединен, в сигнальной связи, с первым вводом буфера 2180 опорного изображения. Вывод буфера 2180 опорного изображения соединен, в сигнальной связи, со вторым вводом блока 2175 оценки движения и первым вводом компенсатора 2170 движения. Первый вывод блока 2175 оценки движения соединен сигнальной связью со вторым вводом компенсатора 2170 движения. Второй вывод блока 2175 оценки движения соединения, в сигнальной связи, с третьим вводом энтропийного кодера 2145.
Вывод компенсатора 2170 движения соединен, в сигнальной связи, с первым вводом переключателя 2197. Вывод модуля 2160 внутреннего прогнозирования соединен, в сигнальной связи, со вторым вводом переключателя 2197. Вывод модуля 2120 решения о типе макроблока соединен, в сигнальной связи, с третьим вводом переключателя 2197, чтобы предоставлять управляющий ввод для переключателя 2197. Вывод переключателя 2197 соединен, в сигнальной связи, со вторым неинверсным вводом объединителя 2127 и с инверсным вводом объединителя 2185.
Вводы буфера 2110 расположения кадров и контроллер 2105 кодера доступны как ввод кодера 2100 для приема входящего изображения 2101. Более того, ввод устройства 2130 ввода доступен как ввод кодера 2100 для приема метаданных. Вывод буфера 2135 вывода доступен как вывод кодера 2100 для вывода битового потока.
На фиг.2a ссылочной позицией 2200 обозначен видео декодер, обеспечивающий выполнение видео декодирования согласно стандарту MPEG-4 AVC.
Видео декодер 2200 включает в себя буфер 2210 ввода, который имеет вывод, соединенный сигнальной связью с первым вводом энтропийного декодера 2245. Первый вывод энтропийного декодера 2245 соединен, в сигнальной связи, с первым вводом обратного преобразователя и обратным квантователем 2250. Вывод обратного преобразователя и обратного квантователя 2250 соединен, в сигнальной связи, со вторым неинверсным вводом объединителя 2225. Вывод объединителя 2225 соединен, в сигнальной связи, со вторым вводом фильтра 2265 разблокирования и первым вводом модуля 2260 внутреннего прогнозирования. Второй вывод фильтра 2265 разблокирования соединен, в сигнальной связи, с первым вводом буфера 2280 опорного изображения. Вывод буфера 2280 опорного изображения соединен, в сигнальной связи, со вторым вводом компенсатора 2270 движения.
Второй вывод энтропийного декодера 2245 соединен, в сигнальной связи, с третьим вводом компенсатора 2270 движения и первым вводом фильтра 2265 разблокирования. Третий вывод энтропийного декодера 2245 соединен, в сигнальной связи, с вводом контроллера 2205 декодера. Первый вывод контроллера 2205 декодера соединен, в сигнальной связи, со вторым вводом энтропийного декодера 2245. Первый вывод контроллера 2205 декодера соединен, в сигнальной связи, со вторым вводом обратного преобразователя и обратным квантователя 2250. Третий вывод контроллера 2205 декодера соединен, в сигнальной связи, с третьим вводом фильтра 2265 разблокирования. Четвертый вывод контроллера 2205 декодера соединен, в сигнальной связи, со вторым вводом модуля 2260 внутреннего прогнозирования, с первым вводом компенсатора 2270 движения и со вторым вводом буфера 2280 опорного изображения.
Вывод компенсатора 2270 движения соединен, в сигнальной связи, с первым вводом переключателя 2297. Вывод модуля 2260 внутреннего прогнозирования соединен, в сигнальной связи, со вторым вводом переключателя 2297. Вывод переключателя 2297 соединен, в сигнальной связи, с первым неинверсным вводом объединителя 2225.
Ввод буфера 2210 ввода доступен как ввод декодера 2200 для приема входящего битового потока. Первый вывод фильтра 2265 разблокирования доступен как вывод декодера 2200 для вывода выходящего изображения.
На фиг.3, показана структура для SPS 300 единственного уровня. SPS является структурой синтаксиса, которая в целом содержит элементы синтаксиса, которые используются для нулевой или более полных кодированных видео последовательностей. В расширении SVC, значения некоторых элементов синтаксиса, передаваемых в SPS, являются зависимыми от уровня. Эти элементы синтаксиса, зависящие от уровня, включают в себя, но не ограничены информацией синхронизации, параметрами HRD (представляющий "гипотетический опорный декодер") и информацию ограничения битового потока. "Параметры HRD могут включать в себя, например, индикаторы размера буфера, максимальную битовую скорость и первоначальную задержку. Параметры HRD могут разрешить принимающей системе, например, проверять целостность принятого битового потока и/или определять, может ли принимающая система (например, декодер) декодировать битовый поток. Следовательно, система может предусматривать передачу вышеупомянутых элементов синтаксиса для каждого уровня.
SPS 300 единственного уровня включает в себя SPS-ID 310, который предоставляет идентификатор для SPS. SPS 300 единственного уровня также включает в себя параметры 320 VUI (обозначающие информацию по использованию видео) для единственного уровня. Параметры VUI включают в себя параметры 330 HRD для единственного уровня, такого как, например, основного уровня. SPS 300 единственного уровня может также включать в себя дополнительные параметры 340, хотя вариантам осуществления не нужно включать в себя дополнительные параметры 340.
На фиг.4 схематичное представление потока 400 данных показывает типичное использование SPS 300 единственного уровня. В стандарте AVC, например, типичный поток данных может включать в себя среди других компонентов модуль SPS, многочисленные модули PPS (последовательность параметров изображения), предоставляющие параметры для конкретного изображения, и многочисленные модули для кодированных данных изображения. Подобная общая структура используется на фиг.4, которая включает в себя SPS 300, PPS-1 410, один или более модулей 420, которые включают в себя кодированные данные изображения-1, PPS-2 430 и один или более модулей 440, включающие в себя кодированные данные изображения-2. PPS-1 включает в себя параметры для кодированных данных 420 изображения-1, и PPS-2 430 включает в себя параметры для кодированных данных 440 изображения-2.
Кодированные данные 420 изображения-1 и кодированные данные 440 изображения-2, каждые, ассоциируются с конкретным SPS (SPS 300 в варианте осуществления фиг.4). Это достигается с помощью использования указателей, как поясняется теперь. Кодированные данные 420 изображения-1 включают в себя PPS-ID (не показано), который идентифицирует PPS-1 410, как показано с помощью стрелки 450. PPS-ID может храниться в, например, заголовке битовых потоков. Кодированные данные 440 изображения-2 включают в себя PPS-ID (не показан), который идентифицирует PPS-2 430, как показано с помощью стрелки 460. PPS-1 410 и PPS-2 430, каждый включает в себя SPS-ID (не показан), который идентифицирует SPS 300, как показано стрелками 470 и 480, соответственно.
На фиг.5 показана структура для SUP SPS 500. SUP SPS 500 включает в себя SPS ID 510, VUI 520, который включает в себя параметры 530 HRD для единственного дополнительного уровня, упоминаемого как "(D2, Т2, Q2)", и необязательные дополнительные параметры 540. "D2, Т2, Q2" относится ко второму уровню, который имеет пространственный (D) уровень 2, временный (Т) уровень 2 и уровень 2 качества (Q).
Следует заметить, что различные схемы нумерации могут использоваться для ссылки на уровни. В одной схеме нумерации базовые уровни имеют D, Т, Q из 0, x, 0, означая пространственный уровень ноль, любой временной уровень и уровень качества ноль. В этой схеме нумерации уровни улучшения имеют D, T, Q, в которых D или Q больше чем нуль.
Использование SUP SPS 500 позволяет, например, системе использовать структуру SPS, которая включает в себя только параметры для единственного уровня, или не включает в себя какую-либо информацию, зависящую от уровня. Подобная система может создавать отдельный SUP SPS для каждого дополнительного уровня помимо базового уровня. Дополнительные уровни могут идентифицировать SPS, с которым они ассоциированы с помощью использования SPS ID 510. Очевидно, несколько уровней могут совместно использовать единственный SPS, используя общий SPS ID в их соответствующих модулях SUP SPS.
На фиг.6 показана организационная иерархия 600 для модуля 605 SPS и многочисленных модулей 610 и 620 SUP SPS. Модули 610 SUP SPS показаны как модули SUP SPS единственного уровня, но другие варианты осуществления могут использовать один или более модулей SUP SPS многочисленных уровней в дополнение к или вместо модулей SUP SPS единственного уровня. Иерархия 600 иллюстрирует, что в типичном сценарии многочисленные модули SUP SPS могут ассоциироваться с единственным модулем SPS. Варианты осуществления могут, естественно, включать в себя многочисленные модули SPS, и каждый из модулей SPS может иметь ассоциированные модули SUP SPS.
На фиг.7 показана структура для другого SUP SPS 700. SUP SPS 700 включает в себя параметры для многочисленных уровней, при этом SUP SPS 500 включает в себя параметры для единственного уровня. SUP SPS 700 включает в себя SPS ID 710, VUI 720 и необязательные дополнительные параметры 740. VUI 720 включает в себя параметры 730 HRD для первого дополнительного уровня (D2, Т2, Q2) и для других дополнительных уровней до уровня (Dn, Tn, Qn).
Согласно фиг.6, иерархия 600 может быть модифицирована для использования многоуровневого SUP SPS. Например, комбинация SUP SPS 610 и 620 может быть заменена на SUP SPS 700, если как SUP SPS 610, так и 620 включают в себя тот же самый SPS ID.
Кроме того, может использоваться SUP SPS 700, например, с SPS, который включает в себя параметры для единственного уровня, или который включает в себя параметры для многочисленных уровней или который не включает в себя параметры зависящего уровня для любых уровней. SUP SPS 700 позволяет системе предоставлять параметры для многочисленных уровней с небольшими потерями.
Другие варианты осуществления могут быть основаны, например, на SPS, который включает в себя все необходимые параметры для всех возможных уровней. То есть, SPS подобного варианта осуществления включает в себя все соответствующие пространственные (D1), временные (T1) уровни и уровни качества (Q1 ), которые доступны для передачи, передаются ли все уровни или нет. Тем не менее, даже с подобной системой SUP SPS могут использоваться для предоставления возможности изменять параметры для одного или более уровней без повторной передачи полной SPS.
В таблице 1 представлен синтаксис для конкретного варианта осуществления SUP SPS единственного уровня. Синтаксис включает в себя sequence_parameter_set_id для идентификации ассоциированного SPS и идентификаторы temporal_level, dependency_id и quality_level для идентификации масштабируемого уровня. Параметры VUI включены с помощью использования svc_vui_parameters() (см. таблицу 2) (параметры VUI SVC), которые включают в себя параметры HRD с помощью использования hrd_parameters(). Синтаксис ниже позволяет каждому уровню определять свои собственные параметры, зависящие от уровня, такие как, например, параметры HRD.
Таблица 1 | ||
sup seq parameter_set_svc () { | C | Дескриптор |
sequence_parameter_set_id | 0 | ue(v) |
temporal_level | 0 | u(3) |
dependency_id | 0 | u(3) |
quality_level | 0 | u(2) |
vui_parameters_present_svc_flag | 0 | u(1) |
if( vui_parameters_present_svc_flag) | ||
svc_vui_parameters ( ) | ||
} |
Семантика для синтаксиса sup_seq_parameter_set_svc() является следующей:
- sequence_parameter_set_id идентифицирует набор параметров последовательности, которую текущий SUP SPS преобразует для текущего уровня;
- temporal_level, dependency_id и quality_level определяют временной уровень, идентификатор зависимости и уровень качества для текущего уровня. Dependency_id в целом указывает пространственный уровень. Тем не менее, dependency_id также используется для обозначения иерархии крупномодульной масштабируемости ("CGS"), которая включает в себя как пространственную масштабируемость, так и масштабируемость по SNR, причем масштабируемость по SNR является масштабируемостью традиционного качества. Соответственно, quality_level и dependency_id оба могут использоваться для отличия уровней качества;
- vui_parameters_present_svc_flag, равный 1, определяет, что структура синтаксиса svc_vui_parameters(), как задано ниже, присутствует. vui_parameters_present_svc_flag, равный 0, определяет, что структура синтаксиса svc_vui_parameters() не присутствует.
Таблица 2 указывает синтаксис для svc_vui_parameters(). Параметры VUI, следовательно, отделены для каждого уровня и вводятся в отдельные модули SUP SPS. Тем не менее, другие варианты осуществления группируют параметры VUI для многочисленных уровней в единственной SUP SPS.
Таблица 2 | ||
svc_vui_parameters() { | С | Дескриптор |
Timing_info_present_flag | 0 | u(l) |
if( timing_info_present_flag) { | ||
num_units_in_tick | 0 | u(32) |
time_scale | 0 | u(32) |
fixed_frame_rate_flag | 0 | u(l) |
} | ||
nal_hrd_parameters_present_flag | 0 | u(l) |
if( nal_hrd_parameters_present_flag) | ||
hrd_parameters() | ||
vcl_hrd_parameters_present_flag | 0 | u(l) |
if( vcl_hrd_parameters_present_flag) | ||
hrd_parameters() | ||
if(nal_hrd_parameters_present_flag | | | ||
low_delay_hrd_flag | 0 | u(l) |
pic_struct_present_flag | 0 | u(l) |
bitstream_restriction_flag | 0 | u(l) |
if( bitstream_restnction_flag ) { | ||
motion_vectors_over_pic_boundaries_flag | 0 | u(l) |
max_bytes_per_pic_denom | 0 | ue (v) |
max_bits_per_mb_denom | 0 | ue (v) |
log2_max_mv_length_horizontal | 0 | ue (v) |
log2_max_mv_length_vertical | 0 | ue (v) |
num_reorder_frames | 0 | ue (v) |
max_dec_frame_buffering | 0 | ue (v) |
} | ||
} |
Поля синтаксиса svc_vui_parameters() таблицы 2 заданы в версии расширения SVC, которое существовало в апреле 2007 года по JVT-U201, приложение Е E.1. В частности, hrd_parameters() существует, как задано для AVC-стандарта. Следует заметить, что svc_vui_parameters() включает в себя различную информацию, зависящую от уровня, включая параметры, связанные с HRD. Параметры, относящиеся к HRD, включают в себя num_units_in_tick, time_scale, fixed_frame_rate_flag, nal_hrd_parameters_present_flag, vcl_hrd_parameters_present_flag, hrd_parameters(), low_delay_hrd_flag, и pic_struct_present_flag. Кроме того, элементы синтаксиса в bitsream_restriction_flag цикла "если" являются зависящими от уровня, даже если не относятся к HRD.
Как упомянуто выше, SUP SPS задан как новый тип модуля NAL. Таблица 3 перечисляет некоторые из кодов модуля NAL, как задано стандартом JVT-U201, но модифицирована для назначения типа 24 для SUP SPS. Многоточие между типами 1 и 16 модуля NAL и между 18 и 24 обозначает, что эти типы неизменяемые. Многоточие между типами 25 и 31 модуля NAL обозначает, что эти типы являются все неопределенными. Реализация таблицы 3 ниже изменяет тип 24 стандарта от "не определено" до "sup_seq_parameter_set_svc()". "Не определено" в целом зарезервировано для пользовательских приложений. "Зарезервировано", с другой стороны, в целом резервируется для будущих модификаций стандарта. Соответственно, другой вариант осуществления изменяет один из "зарезервированных" типов (например, тип 16, 17 или 18) до "sup_seq_parameter_set_svc()". Изменение "неопределенного" типа приводит к варианту осуществлению для указанного пользователя, в то время как изменение "резервируемого" типа приводит к варианту осуществления, который изменяет стандарт для всех пользователей.
Таблица 3 | ||
nal_unit_type | Содержание модуля NAL и структура | С |
0 | Неопределено | |
1 | Кодируемый квант изображения, не являющегося IDR | 2, 3, 4 |
16-18 | Зарезервировано | |
24 | sup_seq_parameter_set_svc() | |
25 31 | Неопределено |
Фиг.8 показывает функциональное представление варианта осуществления масштабируемого видео кодера 800, который формирует модули SUP SPS. Видео принимается на вводе масштабируемого видео кодера 1. Видео кодируется согласно различным пространственным уровням. Пространственные уровни в основном относятся к различным уровням разрешения того же самого видео. Например, вводом масштабируемого видео кодера может быть последовательность CIF (352 на 288) или последовательность QCIF (176 на 144), которые представляют собой каждый один пространственный уровень.
Каждый из пространственных уровней отсылается в кодер. Пространственный уровень 1 отсылается в кодер 2'', пространственный уровень 2 отсылается в кодер 2', и пространственный уровень m отсылается в кодер 2.
Пространственные уровни кодируются с помощью 3 битов, используя dependency_id. Следовательно, максимальное число пространственных уровней в этом варианте осуществления равно 8.
Кодеры 2, 2' и 2'' кодируют один или более уровней, которые имеют обозначенный пространственный уровень. Кодеры 2, 2' и 2'' могут быть предназначены, чтобы иметь конкретные уровни качества и временные уровни, или уровни качества и временные уровни могут быть конфигурируемыми. Как можно видеть из фиг.8, кодеры 2, 2' и 2'' расположены иерархически. То есть, кодер 2'' передает в кодер 2', который, в свою очередь, передает в кодер 2. Иерархическое расположение указывает типичный сценарий, в котором более высокие уровни используют нижний уровень(и) как опору.
После кодирования заголовки подготавливаются для каждого из уровней. В показанном варианте осуществления для каждого пространственного уровня создается сообщение SPS, сообщение PPS и многочисленные сообщения SUP_SPS. Сообщения SUP SPS (или модули) могут создаваться, например, для уровней, соответствующих разным уровням, различающихся по качеству и времени.
Для пространственного уровня 1 создаются SPS и PPS 5'' и также создается набор , , .
Для пространственного уровня 2 создаются SPS и PPS 5' и также создается набор , , .
Для пространственного уровня m создаются SPS и PPS 5, и также создается набор , , .
Битовые потоки 7, 7' и 7'', кодированные кодерами 2, 2' и 2'', типично следуют множеству SPS, PPS и SUP_SPS (также упоминаются как заголовки, модули или сообщения) в глобальном битовом потоке.
Битовый поток 8'' включает в себя SPS и PPS 5 , , 6'', и кодированный видео битовый поток 7'', который формирует все кодированные данные, ассоциированные с пространственным уровнем 1.
Битовый поток 8' включает в себя SPS и PPS 5', , , 6', и кодированный видео битовый поток 7', который формирует все кодированные данные, ассоциированные с пространственным уровнем 2.
Битовый поток 8 включает в себя SPS и PPS 5', , , 6, и кодированный видео битовый поток 7, который формирует все кодированные данные, ассоциированные с пространственным уровнем m.
Различные заголовки SUP_SPS согласуются с заголовками, описанными в таблицах 1-3.
Кодер 800, изображенный на фиг.8, формирует один SPS для каждого пространственного уровня. Тем не менее, другие варианты реализации могут формировать многочисленные SPS для каждого пространственного уровня или может формировать SPS, который обслуживает многочисленные пространственные уровни.
Битовые потоки 8, 8' и 8'' комбинируются в мультиплексоре 9, который создает битовый поток SVC, как показано на фиг.8.
На Фиг.9 иерархическое представление 900 иллюстрирует формирование потока данных, который содержит модули SUP SPS. Представление 900 может использоваться для иллюстрации возможных битовых потоков, формируемых масштабируемым видео кодером 800 фиг.8. Представление 900 предоставляет битовый поток SVC в интерфейс 17 передачи.
Битовый поток SVC может быть сформирован, например, согласно варианту осуществления фиг.8, и содержит один SPS для каждого из пространственных уровней. Когда m пространственных уровней кодируется, битовый поток SVC содержит SPS1, SPS2 и SPSm, представленные 10, 10' и 10'' на фиг.9.
В битовом потоке SVC каждый SPS кодирует общую информацию относительно пространственного уровня. За SPS следует заголовок 11, 11', 11'', 13, 13', 13'', 15, 15' и 15'' типа SUP_SPS. За SUP_SPS следуют соответствующие кодируемые видео данные 12, 12', 12'', 14, 14', 14'', 16, 16' и 16'', каждые из которых соответствуют одному временному уровню (n) и одному уровню (O) качества.
Следовательно, когда один уровень не передается, соответствующий SUP_SPS также не передается. Это происходит из-за того, что существует типично один заголовок SUP_SPS, соответствующий каждому уровню.
Типичные варианты осуществления используют схему нумерации для уровней, в которых базовый уровень имеет D и Q нуля. Если подобная схема нумерации используется для представления 900, тогда представление 900 явно не показывает базовый уровень. Это не препятствует использованию базового уровня. Тем не менее, дополнительно, представление 900 может быть дополнено, чтобы явно показывать битовый поток для базового уровня, а также, например, отдельный SPS для базового уровня. Дополнительно, представление 900 может использовать альтернативную схему нумерации для базовых уровней, в которой один или более битовых потоков (1,1,1) по (m, n, O) относятся к базовому уровню.
На фиг.10 показано схематичное предоставление потока 1000 данных, сформированного вариантом осуществления фиг.8 и 9. Фиг.10 иллюстрирует передачу следующих уровней:
1. Уровень (1, 1, 1): пространственный уровень 1, временный уровень 1, уровень 1 качества; который включает в себя передачу блоков 10, 11 и 12;
2. Уровень (1, 2, 1): пространственный уровень 1, временный уровень 2, уровень 1 качества; который включает в себя передачу блоков 11' и 12';
3. Уровень (2, 1, I): пространственный уровень 2, временный уровень 1, уровень 1 качества; который включает в себя дополнительную передачу блоков 10', 13' и 14;
4. Уровень (3, 1, 1): пространственный уровень 3, временный уровень 1, уровень 1 качества; который включает в себя дополнительную передачу блоков 10'', 15 и 16;
5. Уровень (3, 2, 1): пространственный уровень 3, временный уровень 2, уровень 1 качества; который включает в себя дополнительную передачу блоков 15' и 16';
6. Уровень (3, 3, 1): пространственный уровень 3, временный уровень 3, уровень 1 качества; который включает в себя дополнительную передачу блоков 15'' и 16''.
Схематическое предоставление потока 1000 данных иллюстрирует, что SPS 10 отсылается только один раз и используется как уровнем (1, 1, 1), так и уровнем (1, 2, 1), и что SPS 10'' отсылается только один раз, используется каждый уровень (3, 1, 1), уровень (3, 2, 1) и уровень (3, 3, 1). Дополнительно поток 1000 данных иллюстрирует, что параметры для всех уровней не передаются, но скорее только параметры, соответствующие переданным уровням. Например, параметры для уровня (2, 2, 1), соответствующие , не передаются, так как этот уровень не передается. Это обеспечивает эффективность данного варианта осуществления.
Согласно фиг.11, кодер 1100 включает в себя модуль 1110 формирования SPS, видео кодер 1120 и модуль 1130 форматирования. Видео кодер 1120 принимает входное видео, кодирует входное видео и выдает кодированное входное видео на модуль 1130 форматирования. Кодированное входное видео может включать в себя, например, многочисленные уровни, такие как, например, кодированный базовый уровень и кодированный уровень улучшения. Модуль 1110 формирования SPS формирует информацию заголовка, такую как, например, модули SPS и модули SUP SPS, и предоставляет информацию заголовка модулю 1130 форматирования. Модуль 1110 формирования SPS также взаимодействует с видео кодером 1120 для предоставления параметров, используемых видео кодером 1120 в кодировании входного видео.
Модуль 1110 формирования SPS может конфигурироваться, например, для формирования модуля NAL SPS. Модуль NAL SPS может включать в себя информацию, которая описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. Модуль 1110 формирования SPS также может конфигурироваться, например, для формирования модуля NAL SUP SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Модуль NAL SUP SPS может включать в себя информацию, которая описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Кодирование первого уровня и кодирование второго уровня может создаваться видео кодером 1120.
Модуль 1130 форматирования мультиплексирует кодированное видео от видео кодера 1120, и информацию заголовка от модуля 1110 формирования SPS для создания выходного кодированного битового потока. Кодированный битовый поток может быть набором данных, который включает в себя кодирование первого уровня последовательности изображений, кодирование второго уровня последовательности изображений, модуль NAL SPS и модуль NAL SUP SPS.
Компоненты 1110, 1120 и 1130 кодера 1100 могут принимать многие формы. Один или более компонентов 1110, 1120 и 1130 может включать в себя аппаратное обеспечение, программное обеспечение, встроенное программное обеспечение, или комбинацию и может действовать из множества платформ, таких как, например, выделенный кодер общего процессора, сконфигурированного с помощью программного обеспечения, чтобы функционировать как кодер.
Фиг.8 и 11 можно сравнить. Модуль 1110 формирования SPS может формировать SPS и различные , показанные на фиг.8. Видео кодер 1120 может формировать битовые потоки 7, 7', и 7'' (которые являются кодированием входного видео), показанные на фиг.8. Видео кодер 1120 может соответствовать, например, одному или более кодерам 2, 2' или 2''. Модуль 1130 форматирования может формировать иерархически расположенные данные, обозначенные как 8, 8', 8'', а также выполнять операцию мультиплексора 9 для формирования битового потока SVC по фиг.8.
Фиг.1 и 11 также можно сравнить. Видео кодер 1120 может соответствовать, например, блокам 104 и 187 фиг.1. Модуль 1130 форматирования может соответствовать, например, мультиплексору 170. Модуль 1110 формирования SPS неявно показан на фиг.1, хотя функциональные возможности модуля 1110 формирования SPS могут осуществляться, например, с помощью мультиплексора 170.
Другие варианты осуществления кодера 1100 не включают в себя видео кодер 1120, так как, например, данные являются предварительно кодированными. Кодер 1100 также может обеспечивать дополнительные выводы и дополнительные связи между компонентами. Кодер 1100 также может быть модифицирован для предоставления дополнительных компонентов, которые могут располагаться, например, между существующими компонентами.
На фиг.12 показан кодер 1200, который функционирует так же, как кодер 1100. Кодер 1200 включает в себя память 1210 во взаимодействии с процессором 1220. Память 1210 может использоваться, например, для хранения входного видео, для хранения параметров кодирования или декодирования, для хранения промежуточных или окончательных результатов во время процесса кодирования или для хранения команд для осуществления способа кодирования. Подобное запоминающее устройство может быть временным или постоянным.
Процессор 1220 принимает входное видео и кодирует входное видео. Процессор 1220 также формирует информацию заголовка и форматирует кодированный битовый поток, который включает в себя информацию заголовка и кодированный входной видеосигнал. Как в кодере 1100, информация заголовка, предоставляемая процессором 1220, может включать в себя отдельные структуры для передачи информации заголовка для многочисленных уровней. Процессор 1220 может действовать согласно командам, сохраняемым или постоянно размещенным, например, в процессоре 1220 или памяти 1210 или их части.
На фиг.13 показан процесс 1300 для кодирования входного видео сигнала. Процесс 1300 может осуществляться, например, с помощью кодера 1100 или 1200.
Процесс 1300 включает в себя формирование модуля (1310) NAL SPS. Модуль NAL SPS включает в себя информацию, которая описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. Модуль NAL SPS может быть определен с помощью стандарта кодирования или иным образом. Если модуль NAL SPS определен стандартом кодирования, то стандарт кодирования может потребовать от декодера функционировать согласно принятым модулям NAL SPS. Подобное требование в целом относится к утверждению, что модуль NAL SPS является "нормативным". SPS, например, являются нормативными для стандарта AVC, при этом сообщения SEI (дополнительная информация расширения), например, являются ненормативными. Соответственно, совместимые с AVC декодеры могут игнорировать принятые сообщения SEI, но должны функционировать согласно принятому SPS.
Модуль NAL SPS включает в себя информацию, описывающую один или более параметров для декодирования первого уровня. Параметром может быть, например, информация, которая является зависящей от уровня, или не зависящей от уровня. Примеры параметров, которые типично являются зависящими от уровня, включают в себя параметр VUI или параметр HRD.
Этап 1310 может быть осуществлен, например, модулем 1110 формирования SPS, процессором 1220 или устройство 2140 ввода SPS и PPS. Этап 1310 также может соответствовать формированию SPS в любых блоках 5, 5', 5'' на фиг.8.
Соответственно, средство осуществления этапа 1310, то есть формирования модуля NAL SPS, может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль для формирования SPS 5, 5' или 5'', полную систему кодера на фиг.1, 8, 11 или 12, модуль 1110 формирования SPS, процессор 1220 или устройство 2140 ввода SPS и PPS или их эквиваленты, включающие в себя известные и будущие кодеры.
Процесс 1300 включает в себя формирование модуля NAL дополнительного ("SUP") SPS, который имеет структуру, отличную от таковой модуля (1320) NAL SPS. Модуль NAL SUP SPS включает в себя информацию, которая описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Модуль NAL SUP SPS может быть определен с помощью стандарта кодирования или иным образом. Если модуль NAL SUP SPS определен стандартом кодирования, то стандарт кодирования может потребовать от декодера функционировать согласно принятым модулям NAL SUP SPS. Как рассмотрено выше в отношении этапа 1310, подобное требование, в общем, относится к утверждению, что модуль NAL SUP SPS является "нормативным".
Различные варианты осуществления включают в себя нормативные сообщения SUP SPS. Например, сообщения SUP SPS могут быть нормативными для декодеров, которые декодируют более чем один уровень (например, совместимые с SVC декодеры). Подобные многоуровневые декодеры (например, совместимые с SVC декодеры) требуют функционирования согласно информации, передаваемой в сообщениях SUP SPS. Тем не менее, декодеры единственного уровня (например, совместимые с AVC декодеры) могут игнорировать сообщения SUP SPS. В качестве другого примера, сообщения SUP SPS могут быть нормативными для всех декодеров, включая декодеры единственного уровня и многочисленных уровней. Неудивительно, что многие варианты реализации включают в себя нормативные сообщения SUP SPS, при условии, что сообщения SUP SPS основаны по большей части на сообщениях SPS, и что сообщения SPS являются нормативными в стандарте AVC и расширениях SVC и MVC. To есть, сообщения SUP SPS передают аналогичные данные, как сообщения SPS, служат аналогичной цели, как сообщения SPS, и могут рассматриваться как тип сообщения SPS. Должно быть ясно, что варианты осуществления, которые имеют нормативные сообщения SUP SPS, могут предоставлять преимущества совместимости, например, разрешая декодерам AVC и SVC принимать общий поток данных.
Модуль NAL SUP SPS (также упоминаемый как сообщение SUP SPS) включает в себя один или более параметров для декодирования второго уровня. Параметром может быть, например, информация, которая является зависящей от уровня или не зависящей от уровня. Определенные примеры включают в себя параметр VUI или параметр HRD. SUP SPS может также использоваться для декодирования первого уровня в дополнение к использованию для декодирования второго уровня.
Этап 1320 может быть осуществлен, например, модулем 1110 формирования SPS, процессором 1220 или модулем, аналогичным устройству 2140 ввода SPS и PPS. Этап 1320 также может соответствовать формированию SUP_SPS в любых блоках 6, 6', 6'' на фиг.8.
Соответственно, средство осуществления этапа 1320, то есть формирования модуля NAL SUP SPS, может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль для формирования SUP_SPS 6, 6' или 6'', полную систему кодера на фиг.1, 8, 11 или 12, модуль 1110 формирования SPS, процессор 1220 или модуль, аналогичный устройству 2140 ввода SPS и PPS, или их эквиваленты, включающие в себя известные и разрабатываемые в будущем кодеры.
Процесс 1300 включает в себя кодирование первого уровня, такого как, например, базового уровня, для последовательности изображений, и кодирование второго уровня для последовательности изображений (1330). Это кодирование последовательности изображений создает кодирование первого уровня и кодирование второго уровня. Кодирование первого уровня может форматироваться в последовательности модулей, упоминаемых как модули кодирования первого уровня, и кодирование второго уровня может форматироваться в последовательности модулей, упоминаемых как модули кодирования второго уровня. Этап 1330 может осуществляться, например, с помощью видео кодера 1120, процессора 1220, кодеров 2, 2' или 2'' фиг.8, или варианта осуществления 1.
Соответственно, средство осуществления этапа 1330 может включать в себя различные компоненты. Например, подобное средство может включать в себя кодер 2, 2', или 2'', полную систему кодера фиг.1, 8, 11 или 12, видео кодер 1120, процессор 1220, один или более основных кодеров 187 (возможно, включающие в себя модуль 104 децимации), или их эквиваленты, включающие в себя известные и будущие кодеры.
Процесс 1300 включает в себя предоставление набора данных (1340). Набор данных включает в себя кодирование первого уровня последовательности изображений, кодирование второго уровня последовательности изображений, модуль NAL SPS и модуль NAL SUP SPS. Набором данных может быть, например, битовый поток, кодированный согласно известному стандарту, который должен храниться в памяти или передаваться в один или более декодеров. Этап 1340 может осуществляться, например, с помощью модуля 1130 форматирования, процессора 1220, или мультиплексора 170 на фиг.1. Этап 1340 может также осуществляться на фиг.8 с помощью формирования любого из битовых потоков 8, 8' и 8'', а также формирования мультиплексируемого битового потока SVC.
Соответственно, средство осуществления этапа 1340, то есть предоставления набора данных, может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль для формирования битового потока 8, 8' или 8'', мультиплексор 9, полную систему кодера на фиг.1, 8, 11 или 12, модуль 1130 формирования SPS, процессор 1220 или мультиплексор 170 или их эквиваленты, включающие в себя известные и будущие кодеры.
Процесс 1300 может быть модифицирован различными способами. Например, этап 1330 может быть удален из процесса 1300 в вариантах осуществления, в которых, например, данные являются предварительно кодированными. Кроме того, в дополнение к удалению этапа 1330, этап 1340 может удаляться для обеспечения процесса, направленного на формирование модулей описания для многочисленных уровней.
На фиг.14 показан поток 1400 данных, который может быть сформирован, например, процессом 1300. Поток 1400 данных включает в себя часть 1410 для модуля NAL SPS, часть 1420 для модуля NAL SUP SPS, часть 1430 для кодированных данных первого уровня, и часть 1440 для кодированных данных второго уровня. Кодированные данные 1430 первого уровня являются кодированием первого уровня, которое может форматироваться как модули кодирования первого уровня. Кодированные данные 1440 второго уровня являются кодированием второго уровня, которое может форматироваться как модули кодирования второго уровня. Поток 1400 данных может включать в себя дополнительные части, которые могут прилагаться после части 1440 или распределяться между частями 1410-1440. Дополнительно другие варианты реализации могут модифицировать одну или более частей 1410-1440.
Поток 1400 данных может сравниваться с фиг.9 и 10. Модуль 1410 NAL SPS может быть, например, любым из SPS1 10, SPS2 10' или SPSm 10''. Модуль 1420 NAL SUP SPS может быть, например, любым из заголовков 11, 11', 11'', 13, 13', 13'', 15, 15' или 15'' SUP SPS. Кодированные данные 1430 первого уровня и кодированные данные 1440 второго уровня могут быть любыми из битовых потоков для отдельных уровней, показанных как битовый поток уровня (1, 1, 1) с 12 по 16'' (m, n, 0), и включающий в себя битовые потоки 12, 12', 12'', 14, 14', 14'', 16, 16' и 16''. Кодированные данные 1430 первого уровня могут являться битовым потоком с более высоким набором уровней, чем кодированные данные 1440 второго уровня. Например, кодированные данные 1430 первого уровня могут быть битовым потоком уровня (2, 2, 1) 14', и кодированные данные 1440 второго уровня могут быть битовым потоком уровня (1, 1, 1) 12.
Вариант осуществления потока 1400 данных может также соответствовать потоку 1000 данных. Модуль 1410 NAL SPS может соответствовать модулю 10 SPS потока 1000 данных. Модуль 1420 NAL SUP SPS может соответствовать модулю 11 SUP_SPS потока 1000 данных. Кодированные данные 1430 первого уровня могут соответствовать битовому потоку уровня (1, 1, 1) 12 потока 1000 данных. Кодированные данные 1440 второго уровня могут соответствовать битовому потоку уровня (1, 2, 1) 12' потока 1000 данных. Модуль 11' SUP_SPS потока 1000 данных может быть распределен между кодированными данными 1430 первого уровня и кодированными данными 1440 второго уровня. Оставшиеся блоки (10'-16''), показанные в потоке 1000 данных, могут прилагаться к потоку 1400 данных в том же самом порядке, показанном в потоке 1000 данных.
Фиг.9 и 10 могут предполагать, что модули SPS не включают в себя какие-либо параметры определенного уровня. Различные варианты осуществления действуют таким способом, и типично требуют SUP_SPS для каждого уровня. Тем не менее, другие варианты осуществления разрешают SPS включать в себя параметры определенного уровня для одного или более уровней, таким образом позволяя передавать один или более уровней, не требуя SUP SPS.
Фиг.9 и 10 предполагают, что каждый пространственный уровень имеет свой собственный SPS. Другие варианты осуществления изменяют этот признак. Например, другие варианты осуществления предоставляют отдельный SPS для каждого временного уровня или для каждого уровня качества. К тому же другие варианты осуществления предоставляют отдельный SPS для каждого уровня и другие варианты осуществления предоставляют единственный SPS, который служит всем уровням.
Согласно фиг.15, декодер 1500 включает в себя модуль 1510 анализа, который принимает кодированный битовый поток, такой как, например, кодированный битовый поток, предоставляемый кодером 1100, кодером 1200, процессом 1300 или потоком 1400 данных. Модуль 1510 анализа соединен с декодером 1520.
Модуль 1510 анализа конфигурирован для осуществления доступа к информации из модуля NAL SPS. Информация из модуля NAL SPS описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений. Модуль 1510 анализа дополнительно конфигурирован для осуществления доступа к информации из модуля NAL SUP SPS, который имеет структуру, отличную от таковой модуля NAL SPS. Информация из модуля NAL SUP SPS описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений. Как описано выше в связи с фиг.13, параметры могут быть зависимыми или не зависимыми от уровня.
Модуль 1510 анализа предоставляет проанализированные данные заголовка в качестве выхода. Данные заголовка включают в себя информацию, доступ к которой осуществляется из модуля NAL SPS и также включает в себя информацию, доступ к которой осуществляется из модуля NAL SUP SPS. Модуль 1510 анализа также предоставляет как выход проанализированные кодированные данные видео сигнала заголовка. Кодированные данные видео сигнала включают в себя кодирование первого уровня и кодирование второго уровня. Как данные заголовка, так и кодированные данные видео сигнала предоставляются для декодера 1520.
Декодер 1520 декодирует кодирование первого уровня, используя информацию, к которой осуществляется доступ из модуля NAL SPS. Декодер 1520 также декодирует кодирование второго уровня, используя информацию, к которой осуществляется доступ из модуля NAL SUP SPS. Декодер 1520 дополнительно генерирует восстановление последовательности изображений на основе декодированного первого уровня и/или декодированного второго уровня. Декодер 1520 предоставляет восстановленный видео сигнал как вывод. Восстановленный видео сигнал может быть, например, восстановлением кодирования первого уровня или восстановлением кодирования второго уровня.
Сравнивая фиг.15, 2 и 2a, модуль 1510 анализа может соответствовать, например, демультиплексору 202 и/или одному или более энтропийных декодеров 204, 212, 222 или 2245 в некоторых вариантах осуществления. Декодер 1520 может соответствовать, например, оставшимся блокам на фиг.2.
Декодер 1500 также может предоставлять дополнительные выводы и предоставлять дополнительное взаимодействие между компонентами. Декодер 1500 также может быть модифицирован для предоставления дополнительных компонентов, которые могут быть, например, расположены между существующими компонентами.
Компоненты 1510 и 1520 декодера 1500 могут принимать многие формы. Один или более компонентов 1510 и 1520 могут включать в себя аппаратное обеспечение, программное обеспечение, встроенное программное обеспечение, или комбинацию и могут действовать из множества платформ, таких как, например, выделенный декодер или общий процессор, сконфигурированный с помощью программного обеспечения, чтобы функционировать как декодер.
На фиг.16 показан декодер 1600, который функционирует тем же способом, как декодер 1500. Декодер 1600 включает в себя память 1610 во взаимосвязи с процессором 1620. Память 1610 может использоваться, например, для хранения входящего кодированного битового потока, для хранения параметров декодирования или кодирования, для хранения промежуточных или окончательных результатов во время процесса декодирования или для хранения команд для осуществления способа декодирования. Подобное запоминающее устройство может быть временным или постоянным.
Процессор 1620 принимает кодированный битовый поток и декодирует кодированный битовый поток в восстановленный видео сигнал. Кодированный битовый поток включает в себя, например, (1) кодирование первого уровня последовательности изображений, (2) кодирование второго уровня последовательности изображений, (3) модуль NAL SPS, который имеет информацию, которая описывает параметр для использования в декодировании кодирования первого уровня, и (4) модуль NAL SUP SPS, который имеет структуру, отличную от таковой модуля NAL SPS, и который имеет информацию, которая описывает параметр для использования в декодировании кодирования второго уровня.
Процессор 1620 создает восстановленный видео сигнал на основе, по меньшей мере, кодирования первого уровня, кодирования второго уровня, информации из модуля NAL SPS и информации из модуля NAL SUP SPS. Восстановленный видео сигнал может быть, например, восстановлением кодирования первого уровня или восстановлением кодирования второго уровня. Процессор 1620 может действовать согласно командам, сохраняемым или иным образом помещенным, например, в процессоре 1620 или памяти 1610 или их части.
На фиг.17 показан процесс 1700 для декодирования кодированного битового потока. Процесс 1700 может осуществляться, например, с помощью либо декодера 1500, либо 1600.
Процесс 1700 включает в себя осуществление доступа к информации из модуля (1710) NAL SPS. Информация, к которой осуществляется доступ, описывает параметр для использования в декодировании кодирования первого уровня последовательности изображений.
Модуль NAL SPS может быть таким, как описано выше со ссылкой на фиг.13. Дополнительно, информация, к которой осуществляется доступ, может быть, например, параметром HRD. Этап 1710 может быть осуществлен, например, с помощью модуля 1510 анализа, процессора 1620, энтропийного декодера 204, 212, 222 или 2245 или управления 2205 декодера. Этап 1710 также может осуществляться в процессе восстановления в кодере с помощью одного или более компонентов кодера.
Соответственно, средство осуществления этапа 1710, то есть осуществления доступа к информации из модуля NAL SPS, может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль 1510 анализа, процессор 1620, декодер единственного уровня, полную систему декодера по фиг.2, 15 или 16, или один или более компонентов декодера, или один или более компонентов кодеров 800, 1100 или 1200, или их эквиваленты, включая известные и будущие декодеры и кодеры.
Процесс 1700 включает в себя осуществление доступа к информации из модуля NAL SUP SPS, который имеет структуру, отличную от таковой модуля (1720) NAL SPS. Информация, к которой осуществляется доступ из модуля NAL SUP SPS, описывает параметр для использования в декодировании кодирования второго уровня последовательности изображений.
Модуль NAL SUP SPS может быть таким, как описано выше со ссылкой на фиг.13. Дополнительно, информация, к которой осуществляется доступ, может быть, например, параметром HRD. Этап 1720 может быть осуществлен, например, с помощью модуля 1510 анализа, процессора 1620, энтропийного декодера 204, 212, 222 или 2245 или управления 2205 декодера. Этап 1720 также может осуществляться в процессе восстановления в кодере с помощью одного или более компонентов кодера.
Соответственно, средство осуществления этапа 1720, то есть осуществления доступа к информации из модуля NAL SUP SPS, может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль 1510 анализа, процессор 1620, демультиплексор 202, энтропийный декодер 204, 212 или 222, декодер единственного уровня, или полную систему 200, 1500 или 1600 декодеров, или один или более компонентов декодера, или один или более компонентов кодеров 800, 1100 или 1200, или их эквиваленты, включающие в себя известные и будущие декодеры и кодеры.
Процесс 1700 включает в себя осуществление доступа к кодированию первого уровня и кодированию второго уровня для последовательности изображений (1730). Кодирование первого уровня может форматироваться в модули кодирования первого уровня, и кодирование второго уровня может форматироваться в модули кодирования второго уровня. Этап 1730 может быть осуществлен, например, с помощью модуля 1510 анализа, декодера 1520, процессора 1620, энтропийного декодера 204, 212, 222 или 2245 или различных других блоков, нисходящих по отношению к энтропийным декодерам. Этап 1730 также может осуществляться в процессе восстановления в кодере с помощью одного или более компонентов кодера.
Соответственно, средство осуществления этапа 1730 может включать в себя различные компоненты. Например, подобное средство может включать в себя модуль 1510, декодер 1520, процессор 1620, демультиплексор 202, энтропийный декодер 204, 212 или 222, декодер единственного уровня, приемник битового потока, принимающее устройство, или полную систему 200, 1500 или 1600 декодеров, или один или более компонентов декодера, или один или более компонентов кодеров 800, 1100 или 1200, или их эквиваленты, включающие в себя известные и будущие декодеры и кодеры.
Процесс 1700 включает в себя формирование декодирования последовательности изображений (1740). Декодирование последовательности изображений могут быть основано на кодировании первого уровня, кодировании второго уровня, информации, к которой осуществляется доступ из модуля NAL SPS, и информации, к которой осуществляется доступ из модуля NAL SUP SPS. Этап 1740 может осуществляться, например, с помощью декодера 1520, процессор 1620, или различные блоки, нисходящие от демультиплексора 202 и входящего буфера 2210. Этап 1740 также может осуществляться в процессе восстановления в кодере с помощью одного или более компонентов кодера.
Соответственно, средство осуществления этапа 1740 может включать в себя различные компоненты. Например, подобное средство может включать в себя декодер 1530, процессор 1620, декодер единственного уровня, полную систему 200, 1500 или 1600 декодеров, или один или более компонентов декодера, кодер, осуществляющий восстановление, или один или более компонентов кодеров 800, 1100 или 1200, или их эквиваленты, включая известные и будущие декодеры и кодеры.
Другой вариант реализации осуществляет способ кодирования, который включает в себя осуществление доступа к информации, зависящей от уровня, в первом наборе нормативных параметров. Информация, зависящая от первого уровня, к которой осуществляется доступ, существует для использования в декодировании кодирования первого уровня последовательности изображений. Первый набор нормативных параметров может быть, например, SPS, который включает в себя параметры, относящиеся к HRD, или другую информацию, зависящую от уровня. Тем не менее, первому набору нормативных параметров не обязательно должен быть SPS и относиться к стандарту Н.264.
В дополнение к первому набору нормативных параметров, являющихся нормативными, что требует от декодера функционировать с первым набором параметров, если подобный набор параметров принят, первый набор параметров также нужно принять в варианте осуществления. То есть, вариант осуществления может дополнительно требовать, чтобы первый набор параметров был предоставлен для декодера.
Способ кодирования этого варианта осуществления дополнительно включает в себя осуществление доступа к информации, зависящей от второго уровня, во втором наборе нормативных параметров. Второй набор нормативных параметров имеет структуру, отличную от таковой первого набора нормативных параметров. Кроме того, информация, зависящая от второго уровня, к которой осуществляется доступ, существует для использования в декодировании кодирования второго уровня последовательности изображений. Второй набор нормативных параметров может быть, например, дополнительным SPS. Дополнительный SPS имеет структуру, которая отлична от, например, SPS. Дополнительный SPS также включает в себя параметры HRD или другую информацию, зависящую от уровня, для второго уровня (отличного от первого уровня).
Способ кодирования этого варианта осуществления дополнительно включает в себя декодирование последовательности изображений на основе одной или более информации, к которой осуществляется доступ, зависящей от первого уровня, или к информации, к которой осуществляется доступ, зависящей от второго уровня. Это может включать в себя, например, декодирование базового уровня или уровня улучшения.
Соответствующие устройства также предоставляются в других вариантах осуществления для реализации способа кодирования этого варианта осуществления. Подобные устройства включают в себя, например, программируемые кодеры, программируемые процессоры, варианты осуществления аппаратного обеспечения или читаемые процессором носители, который имеют команды для осуществления способа кодирования. Системы 1100 и 1200, например, могут осуществлять способ кодирования этого варианта осуществления.
Также предоставляются соответствующие сигналы и носители, хранящие подобные сигналы или данные подобных сигналов. Подобные сигналы создаются, например, кодером, который осуществляет способ кодирования этого варианта осуществления.
Другой вариант реализации осуществляет способ декодирования, аналогичный вышеуказанному способу кодирования. Способ декодирования включает в себя формирование первого набора нормативных параметров, который включает в себя информацию, зависящую от первого уровня. Информация первого зависимого уровня существует для использования в декодировании кодирования первого уровня последовательности изображений. Способ декодирования включает в себя формирование второго набора нормативных параметров, который имеет структуру, отличную от таковой первого набора нормативных параметров. Второй набор нормативных параметров включает в себя информацию второго зависимого уровня для использования в декодировании кодирования второго уровня последовательности изображений. Способ декодирования дополнительно включает в себя предоставление набора данных, включающего в себя первый набор нормативных параметров и второй набор нормативных параметров.
Соответствующие устройства также предоставляются в других вариантах осуществления для реализации вышеуказанного способа декодирования этого варианта осуществления. Подобные устройства включают в себя, например, программируемые декодеры, программируемые процессоры, варианты осуществления аппаратного обеспечения или читаемые процессором носители, которые имеют команды для осуществления способа декодирования. Системы 1500 и 1600, например, могут осуществлять способ декодирования этого варианта осуществления.
Следует заметить, что термин "дополнительный", как используется выше, например, в отношении к "дополнительного SPS", является описательным термином. Как таковой, "дополнительный SPS" не препятствует модулям, которые не включают в себя термин "дополнительный" в названии модуля. Соответственно, и в качестве примера, современный проект расширения SVC определяет структуру синтаксиса "поднабор SPS", и структура синтаксиса "поднабор SPS" полностью охватывается описательным термином "дополнительный". Так что "поднабор SPS" текущего расширения SVC является одним вариантом осуществления SUP SPS, как описано в этом изобретении.
Варианты осуществления могут использовать другие типы сообщений в дополнение или как замещение для модулей NAL SPS и/или модулей NAL SUP SPS. Например, по меньшей мере, один вариант реализации формирует, передает, осуществляет доступ и анализирует другие наборы параметров, которые имеют информацию, зависящую от уровня.
Дополнительно, хотя SPS и дополнительный SPS рассмотрены в основном в контексте стандартов Н.264, другие стандарты также могут включать в себя SPS, дополнительный SPS или изменения SPS или дополнительный SPS. Соответственно, другие стандарты (существующие или разрабатываемые в будущем) могут включать в себя структуры, относящиеся к SPS или дополнительному SPS, и подобные структуры могут быть идентичны или быть изменениями SPS и дополнительного SPS, описанных в данном документе. Подобные другие стандарты могут, например, быть связаны с текущими стандартами Н.264 (например, поправка к существующему стандарту Н.264) или быть полностью новыми стандартами. Альтернативно, другие стандарты (существующие или будущие) могут включать в себя структуры, относящиеся к SPS или дополнительного SPS, но подобные структуры могут быть идентичными или быть изменениями SPS или дополнительного SPS, описанными в данном документе.
Следует заметить, что набор параметров является набором данных, которые включают в себя параметры. Например, SPS, PPS или дополнительный SPS.
В различных вариантах осуществления упоминаются данные, к которым нужно "осуществить доступ". "Осуществление доступа" к данным может включать в себя, например, прием, хранение, передачу или обработку данных.
Представлены и описаны различные варианты осуществления. Эти варианты осуществления могут использоваться для решения множества проблем. Одна подобная проблема возникает, когда многочисленным точкам взаимодействия (IOP) (также упоминаемым как уровни) необходимо иметь различные значения для параметров, которые типично передаются в SPS. Не существует адекватного способа для передачи элементов синтаксиса, зависимых от уровня, в SPS для различных уровней, которые имеют тот же самый идентификатор SPS. Проблематично отсылать отдельные данные SPS для каждого подобного уровня. Например, во многих существующих системах базовый уровень и его составляющие временные уровни совместно используют тот же самый идентификатор SPS.
Несколько вариантов осуществления предоставляют другой тип модуля NAL для дополнительных данных SPS. Таким образом, могут отсылаться многочисленные модули NAL, и каждый модуль NAL может включать в себя информацию дополнительного SPS для другого уровня SVC, но каждый модуль NAL может идентифицироваться с помощью того же самого типа модуля NAL. Информация дополнительного SPS может в одном варианте осуществления предоставляться в типе модуля NAL "дополнительного SPS" текущего расширения SVC.
Должно быть ясно, что варианты осуществления, описанные в этом изобретении, не ограничены расширением SVC или каким-либо другим стандартом. Идеи и признаки раскрытых вариантов осуществления могут использоваться с другими стандартами, которые существуют в настоящее время или будут разрабатываться в будущем, или могут использоваться в системах, которые не придерживаются какого-либо стандарта. В качестве одного примера, идеи и признаки, раскрытые в данном документе, могут использоваться для вариантов осуществления, которые работают в среде расширения MVC. Например, схемам MVC может быть необходима другая информация SPS или уровням SVC, поддерживаемым в пределах расширения MVC, может быть необходима другая информация SPS. Дополнительно, признаки и аспекты описанных вариантов осуществления могут также быть адаптированы для еще других вариантов осуществления. Соответственно, хотя варианты осуществления, описанные в данном документе, могут быть описаны в контексте SPS для уровней SVC, подобные описания необходимо никоим образом не принимать как ограничивающие признаки и идеи для подобных вариантов осуществления или контекстов.
Варианты осуществления, описанные в данном документе, могут быть реализованы, например, в способе или процессе, устройстве или программе. Даже при рассмотрении в контексте единственной формы варианта осуществления (например, рассматриваемые только как способ), вариант осуществления рассмотренных признаков может быть также реализован в других формах (например, устройство или программа). Устройство может быть реализовано в, например, соответствующем аппаратном обеспечении, программном обеспечении или встроенном программном обеспечении. Способы могут быть реализованы, например, в устройстве таком как, например, процессор, который относится к обрабатывающим устройствам, включая в себя, например, компьютер, микропроцессор, интегральную схему или программируемое логическое устройство. Процессоры также включают в себя устройства связи, такие как, например, компьютеры, сотовые телефоны, портативные/персональные цифровые ассистенты ("PDA"), или другие устройства, которые облегчают обмен информацией между конечными пользователями.
Варианты осуществления различных процессов и признаки, описанные в данном документе, могут быть реализованы в многочисленном различном оборудовании или приложениях, особенно, например, оборудовании или приложениях, ассоциированных с кодированием и декодированием данных. Примеры оборудования включают в себя видео кодеры, видео декодеры, видео кодеки, веб-сервера, декодеры телевизионных каналов, портативные компьютеры, персональные компьютеры, сотовые телефоны, PDA или другие устройства связи. Как должно быть ясно, оборудование может быть мобильным и даже установлено в мобильном транспортном средстве.
Дополнительно, способы могут быть реализованы с помощью команд, осуществляемых процессором, и подобные команды могут храниться на машиночитаемом носителе таком как, например, интегральная схема, носитель программного обеспечения или другое запоминающее устройство такое как, например, жесткий диск, компакт-диск, оперативное запоминающее устройство ("RAM") или постоянное запоминающее устройство ("ROM"). Команды могут формировать прикладную программу, материально воплощенную на читаемом процессором носителе. Команды могут быть, например, в аппаратном обеспечении, встроенном программном обеспечении, программном обеспечении или в комбинации. Команды могут быть найдены, например, в операционной системе, отдельном приложении или в их сочетании. Процессор может характеризоваться, следовательно, например, как устройство, сконфигурированное для осуществления процесса, так и устройство, которое включает в себя машиночитаемый носитель, которые имеет команды для осуществления процесса.
Как является очевидным для специалиста в данной области техники, варианты осуществления могут создавать множество сигналов, форматируемых для передачи информации, которая может, например, храниться или передаваться. Информация может включать в себя, например, команды для осуществления способа, или данных, создаваемых одним из описанных вариантов осуществления. Например, сигнал может форматироваться для переноса в виде данных правил для написания или чтения синтаксиса описанного варианта осуществления, или для передачи в виде данных действительных значений синтаксиса, записанных посредством описанного варианта осуществления. Подобный сигнал может, например, форматироваться, как электромагнитная волна (например, с использованием радиочастотной части спектра) или как сигнал базовой полосы. Форматирование может включать в себя, например, кодирование потока данных и модулирование несущей с кодированным потоком данных. Информация, которую передает сигнал, может быть, например, аналоговой или цифровой информацией. Как известно, сигнал может передаваться по множеству различных проводных или беспроводных каналов связи.
Описано множество вариантов осуществления. Тем не менее, понятно, что могут быть выполнены различные модификации. Например, элементы различных вариантов осуществления могут комбинироваться, дополняться, модифицироваться или удаляться для создания других вариантов осуществления. Дополнительно, специалисту в данной области техники должно быть понятно, что другие структуры и процессы могут использоваться вместо раскрытых вариантов осуществления, и результирующие реализации будут выполнять, по меньшей мере, главным образом, ту же самую функцию(и), по меньшей мере, тем же самым способом(ами) для достижения, по меньшей мере, главным образом, того же самого результата(тов), что и раскрытые варианты реализации. Соответственно, эти и другие варианты реализации рассматриваются этой заявкой и находятся в пределах объема последующей формулы изобретения.
Класс H04N7/26 с использованием уменьшения ширины полосы частот