RU2406254C2 - Video processing with scalability - Google Patents
Video processing with scalability Download PDFInfo
- Publication number
- RU2406254C2 RU2406254C2 RU2008142739/09A RU2008142739A RU2406254C2 RU 2406254 C2 RU2406254 C2 RU 2406254C2 RU 2008142739/09 A RU2008142739/09 A RU 2008142739/09A RU 2008142739 A RU2008142739 A RU 2008142739A RU 2406254 C2 RU2406254 C2 RU 2406254C2
- Authority
- RU
- Russia
- Prior art keywords
- video data
- nal
- component
- nal component
- enhancement
- Prior art date
Links
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
Description
Испрашивание приоритета согласно Своду законов США 35 U.S.C. §119Priority claim under US Code 35 U.S.C. §119
Настоящая заявка испрашивает приоритет предварительной заявки США №60/787310, поданной 29 марта 2006 года, предварительной заявки США №60/789320, поданной 29 марта 2006 года, и предварительной заявки США №60/833445, поданной 25 июля 2006 года, содержание каждой из которых целиком включено по ссылке.This application claims the priority of provisional application US No. 60/787310, filed March 29, 2006, provisional US application No. 60/789320, filed March 29, 2006, and provisional US application No. 60/833445, filed July 25, 2006, the contents of each of which is fully incorporated by reference.
ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION
Настоящее изобретение относится к обработке цифровых видеоданных и, в частности, к способам обработки масштабируемых видеоданных.The present invention relates to the processing of digital video data and, in particular, to methods for processing scalable video data.
УРОВЕНЬ ТЕХНИКИBACKGROUND
Возможности цифрового видео могут быть включены в состав широкого диапазона устройств, в том числе в цифровые телевизоры, системы прямой цифровой трансляции, устройства беспроводной связи, персональные цифровые помощники (PDA), портативные компьютеры, настольные компьютеры, видеоигровые приставки, цифровые камеры, цифровые записывающие устройства, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства могут обеспечить значительные преимущества по сравнению со стандартными системами аналогового видео при обработке и передаче видеопоследовательностей.Digital video capabilities can be incorporated into a wide range of devices, including digital televisions, digital broadcast systems, wireless devices, personal digital assistants (PDAs), laptop computers, desktop computers, video game consoles, digital cameras, and digital recording devices , cellular or satellite radiotelephones, etc. Digital video devices can provide significant advantages over standard analog video systems for processing and transmitting video sequences.
Для кодирования цифровых видеопоследовательностей установлены различные стандарты кодирования видеоданных. Например, Экспертная группа по кинематографии (MPEG) разработала несколько стандартов, в том числе MPEG-1, MPEG-2 и MPEG-4. Другие примеры включают в себя стандарт Международного союза электросвязи (ITU)-T H.263 и стандарт ITU-T H.264, а также их аналог ISO/IEC MPEG-4, часть 10, то есть усовершенствованное кодирование видео (AVC). Эти стандарты кодирования видеоданных поддерживают повышенную эффективность передачи видеопоследовательностей путем кодирования данных в сжатом виде.For coding digital video sequences, various coding standards for video data are set. For example, the Cinematography Expert Group (MPEG) has developed several standards, including MPEG-1, MPEG-2, and MPEG-4. Other examples include the International Telecommunication Union (ITU) -T H.263 standard and the ITU-T H.264 standard, as well as their analogue ISO / IEC MPEG-4, Part 10, i.e. Advanced Video Coding (AVC). These video encoding standards support enhanced transmission of video sequences by encoding data in a compressed form.
РАСКРЫТИЕ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION
В общем, здесь описываются способы обработки видеоданных, которые предполагают использование синтаксических элементов и семантики для поддержки достаточно простых расширений при обработке мультимедиа с видеомасштабируемостью. Синтаксические элементы и семантику можно применить к трансляции мультимедиа и определению формата битового потока и процессу кодирования, который поддерживает достаточно простую видеомасштабируемость.In general, video processing methods are described here that involve the use of syntax elements and semantics to support fairly simple extensions for multimedia processing with video scalability. Syntax elements and semantics can be applied to multimedia broadcasting and determining the bitstream format and encoding process, which supports fairly simple video scalability.
Синтаксический элемент и семантику можно применить к компонентам уровня сетевой абстракции (NAL). Согласно некоторым аспектам эти способы могут быть применены для реализации расширений с достаточно простой видеомасштабируемостью для устройств, которые в остальном соответствуют стандарту ITU-T H.264. Согласно некоторым аспектам компоненты NAL могут в общем случае соответствовать стандарту H.264. В частности, стандарту H.264 могут соответствовать компоненты NAL, несущие видеоданные базового уровня, в то время как компоненты NAL, несущие видеоданные уровня улучшения, могут включать в себя один или несколько добавленных или модифицированных синтаксических элементов.The syntax element and semantics can be applied to the components of the network abstraction layer (NAL). According to some aspects, these methods can be applied to implement extensions with fairly simple video scalability for devices that are otherwise compliant with the ITU-T H.264 standard. In some aspects, NAL components can generally conform to the H.264 standard. In particular, NAL components carrying base layer video data may conform to the H.264 standard, while NAL components carrying enhancement layer video data may include one or more added or modified syntax elements.
Согласно одному аспекту изобретение обеспечивает способ для передачи масштабируемых цифровых видеоданных, причем способ содержит включение видеоданных уровня улучшения в блок уровня сетевой абстракции (NAL) и включение одного или нескольких синтаксических элементов в компонент NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения.According to one aspect, the invention provides a method for transmitting scalable digital video data, the method comprising including enhancement level video data in a network abstraction layer (NAL) block and including one or more syntax elements in a NAL component to indicate whether the NAL component includes video level data improvements.
Согласно другому аспекту изобретение обеспечивает устройство для передачи масштабируемых цифровых видеоданных, причем устройство содержит модуль компонентов уровня сетевой абстракции (NAL), который включает кодированные видеоданные уровня улучшения в компонент NAL и включает один или нескольких синтаксических элементов в компонент NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения.According to another aspect, the invention provides an apparatus for transmitting scalable digital video data, the apparatus comprising a Network Abstraction Layer (NAL) component module that includes encoded video enhancement layer components in a NAL component and includes one or more syntax elements in a NAL component to indicate whether includes NAL component video data enhancement level.
Согласно еще одному аспекту изобретение обеспечивает процессор для передачи масштабируемых цифровых видеоданных, причем процессор сконфигурирован для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (NAL) и включения одного или нескольких синтаксических элементов в компонент NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения.According to yet another aspect, the invention provides a processor for transmitting scalable digital video data, the processor being configured to include enhancement layer video data in a network abstraction layer (NAL) component and include one or more syntax elements in a NAL component to indicate whether the NAL component includes improvement level video data.
Согласно дополнительному аспекту изобретение обеспечивает способ для обработки масштабируемых цифровых видеоданных, причем способ содержит прием видеоданных уровня улучшения в компоненте уровня сетевой абстракции (NAL), прием одного или нескольких синтаксических элементов в компоненте NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения, и декодирование цифровых видеоданных в компоненте NAL на основе этого указания.According to a further aspect, the invention provides a method for processing scalable digital video data, the method comprising receiving video data of an enhancement level in a network abstraction layer (NAL) component, receiving one or more syntax elements in a NAL component to indicate whether the NAL component includes video level data enhancements and decoding of digital video in the NAL component based on this indication.
Согласно еще одному аспекту изобретение обеспечивает устройство для обработки масштабируемых цифровых видеоданных, причем устройство содержит модуль компонентов уровня сетевой абстракции (NAL), который принимает видеоданные уровня улучшения в компоненте NAL и принимает один или несколько синтаксических элементов в компоненте NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения, и декодер, который декодирует цифровые видеоданные в компоненте NAL на основе этого указания.According to yet another aspect, the invention provides an apparatus for processing scalable digital video data, the apparatus comprising a network abstraction layer (NAL) component module that receives enhancement level video data in a NAL component and receives one or more syntax elements in a NAL component to indicate whether includes a NAL component video data of the enhancement level, and a decoder that decodes the digital video data in the NAL component based on this indication.
Согласно дополнительному аспекту изобретение обеспечивает процессор для обработки масштабируемых цифровых видеоданных, причем процессор сконфигурирован для приема видеоданных уровня улучшения в компоненте сетевой абстракции (NAL), приема одного или несколько синтаксических элементов в компоненте NAL для указания на то, включает ли в себя компонент NAL видеоданные уровня улучшения, и декодирования цифровых видеоданных в компоненте NAL на основе этого указания.According to a further aspect, the invention provides a processor for processing scalable digital video data, the processor being configured to receive enhancement level video data in a Network Abstraction (NAL) component, receive one or more syntax elements in a NAL component to indicate whether the NAL component includes layer video data enhancements, and decoding of digital video in the NAL component based on this indication.
Описанные в этом изобретении способы могут быть реализованы в устройстве цифрового видеокодирования и/или видеодекодирования аппаратными средствами, программными средствами, программно-аппаратными средствами или любой их комбинацией. При реализации программными средствами программное обеспечение может выполняться в компьютере. Программное обеспечение может изначально храниться в виде команд, программного кода или т.п. Соответственно, изобретение также предполагает использование компьютерного программного продукта для кодирования цифрового видео, содержащего считываемый компьютером носитель, причем считываемый компьютером носитель содержит коды, побуждающие компьютер выполнять способы и функции согласно настоящему изобретению.The methods described in this invention can be implemented in a digital video coding and / or video decoding device with hardware, software, firmware, or any combination thereof. When implemented by software, the software may run on a computer. The software may be initially stored as instructions, program code, or the like. Accordingly, the invention also contemplates the use of a computer program product for encoding a digital video containing computer-readable media, the computer-readable media containing codes causing the computer to perform the methods and functions of the present invention.
Дополнительные подробности различных аспектов изобретения изложены в сопроводительных чертежах и описании, приведенных ниже. Другие признаки, цели и преимущества изобретения станут очевидными из описания и чертежей, а также из формулы изобретения.Further details of various aspects of the invention are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the invention will become apparent from the description and drawings, as well as from the claims.
КРАТКОЕ ОПИСАНИЕ ЧЕРТЕЖЕЙBRIEF DESCRIPTION OF THE DRAWINGS
Фиг. 1 - блок-схема, иллюстрирующая систему цифрового мультимедийного вещания, поддерживающую видеомасштабируемость.FIG. 1 is a block diagram illustrating a digital multimedia broadcasting system supporting video scalability.
Фиг. 2 - схема, иллюстрирующая видеокадры на базовом уровне и уровне улучшения масштабируемого битового видеопотока.FIG. 2 is a diagram illustrating video frames at a basic level and an enhancement level of a scalable video bitstream.
Фиг. 3 - блок-схема, иллюстрирующая примерные компоненты вещательного сервера и абонентского устройства в цифровой мультимедийной вещательной системе по фиг. 1.FIG. 3 is a block diagram illustrating exemplary components of a broadcast server and subscriber unit in the digital multimedia broadcast system of FIG. one.
Фиг. 4 - блок-схема, иллюстрирующая примерные компоненты видеодекодера для абонентского устройства.FIG. 4 is a block diagram illustrating exemplary components of a video decoder for a subscriber unit.
Фиг. 5 - блок-схема, иллюстрирующая процесс декодирования видеоданных базового уровня и уровня улучшения в масштабируемом битовом видеопотоке.FIG. 5 is a flowchart illustrating a process for decoding video data of a base layer and an enhancement layer in a scalable video bitstream.
Фиг. 6 - блок-схема, иллюстрирующая объединение коэффициентов базового уровня и уровня улучшения в видеодекодере при одноуровневом декодировании.FIG. 6 is a block diagram illustrating the combination of base-level and enhancement coefficients in a video decoder for single-level decoding.
Фиг. 7 - блок-схема, иллюстрирующая объединение коэффициентов базового уровня и уровня улучшения в видеодекодере.FIG. 7 is a block diagram illustrating a combination of base layer coefficients and enhancement layer in a video decoder.
Фиг. 8 - блок-схема, иллюстрирующая процесс кодирования масштабируемого битового видеопотока для объединения множества различных примерных синтаксических элементов для поддержки достаточно простой видеомасштабируемости.FIG. 8 is a flowchart illustrating a process for encoding a scalable video bitstream to combine many different exemplary syntax elements to support fairly simple video scalability.
Фиг. 9 - блок-схема, иллюстрирующая процесс декодирования масштабируемого битового видеопотока для обработки множества различных примерных синтаксических элементов для поддержки достаточно простой видеомасштабируемости.FIG. 9 is a flowchart illustrating a process for decoding a scalable video bitstream to process many different exemplary syntax elements to support fairly simple video scalability.
Фигуры 10 и 11 - схемы, иллюстрирующие разбиение макроблоков (MB) и четвертных блоков для режимов пространственного предсказания яркости.Figures 10 and 11 are diagrams illustrating a partition of macroblocks (MB) and quarter blocks for spatial brightness prediction modes.
Фиг. 12 - блок-схема, иллюстрирующая процесс декодирования макроблоков (MB) базового уровня и уровня улучшения для создания единого уровня MB.FIG. 12 is a flowchart illustrating a macroblock (MB) decoding process of a base layer and an enhancement layer to create a single MB layer.
Фиг. 13 - схема, иллюстрирующая процесс фильтрации для деблокирования яркости и цветности.FIG. 13 is a diagram illustrating a filtering process for releasing luminance and chrominance.
Фиг. 14 - схема, иллюстрирующая правила для описания отсчетов через горизонтальную или вертикальную границу для блоков 4х4.FIG. 14 is a diagram illustrating rules for describing samples across a horizontal or vertical boundary for 4x4 blocks.
Фиг. 15 - блок-схема, иллюстрирующая устройство для передачи масштабируемых цифровых видеоданных.FIG. 15 is a block diagram illustrating an apparatus for transmitting scalable digital video data.
Фиг. 16 - блок-схема, иллюстрирующая устройство для декодирования масштабируемых цифровых видеоданных.FIG. 16 is a block diagram illustrating an apparatus for decoding scalable digital video data.
ОСУЩЕСТВЛЕНИЕ ИЗОБРЕТЕНИЯDETAILED DESCRIPTION OF THE INVENTION
Масштабируемое видеокодирование можно использовать для обеспечения масштабируемости отношения сигнал-шум (SNR) в приложениях для сжатия видеоданных. Также возможна временная и пространственная масштабируемость. При масштабируемости SNR, например, кодированные видеоданные включают в себя базовый уровень и уровень улучшения. Базовый уровень несет минимальное количество данных, необходимых для видеодекодирования, и обеспечивает базовый уровень качества. Уровень улучшения несет дополнительные данные, которые повышают качество декодированных видеоданных.Scalable video coding can be used to provide scalable signal-to-noise ratio (SNR) in video compression applications. Temporal and spatial scalability is also possible. With SNR scalability, for example, encoded video data includes a base layer and an enhancement layer. The basic level carries the minimum amount of data required for video decoding, and provides a basic level of quality. The enhancement layer carries additional data that improves the quality of the decoded video data.
В общем случае базовый уровень можно рассматривать как битовый поток, содержащий кодированные видеоданные, которые представляют первый уровень пространственно-временной-SNR масштабируемости, определенной данной спецификацией. Битовый поток уровня улучшения можно декодировать только вместе с базовым уровнем, то есть он содержит ссылки на декодированные видеоданные базового уровня, которые используют для создания конечных декодированных видеоданных.In general, a baseline can be thought of as a bitstream containing encoded video data that represents the first level of spatio-temporal-SNR scalability defined by this specification. The enhancement layer bitstream can only be decoded together with the base layer, that is, it contains links to decoded base layer video data that is used to create the final decoded video data.
Путем использования иерархической модуляции на физическом уровне базовый уровень и уровень улучшения можно передавать на одной и той же несущей или поднесущих, но с разными характеристиками передачи, что приводит к разной частоте пакетных ошибок (PER). Базовый уровень имеет более низкую PER для более надежного приема по всей зоне покрытия. Декодер может декодировать только базовый уровень или базовый уровень плюс уровень улучшения, если уровень улучшения надежно принимается и/или в зависимости от других критериев.By using hierarchical modulation at the physical layer, the base layer and enhancement layer can be transmitted on the same carrier or subcarriers, but with different transmission characteristics, which leads to different packet error rates (PER). The baseline has a lower PER for more reliable reception over the entire coverage area. The decoder can decode only the base level or the base level plus the enhancement level if the enhancement level is reliably received and / or depending on other criteria.
В общем, в этом изобретении описываются способы видеообработки, которые предполагают использование синтаксических элементов и семантики для поддержания достаточно простых расширений для обработки мультимедиа с видеомасштабируемостью. Эти способы особенно подходят к мультимедийному вещанию и определяют формат битового потока и процесс кодирования, которые поддерживают достаточно простую видеомасштабируемость. Согласно ряду аспектов эти способы можно применять к реализации расширений для достаточно простой видеомасштабируемости для устройств, которые во всем остальном соответствуют стандарту H.264. Например, расширения могут представлять потенциальные модификации для будущих версий или расширений стандарта H.264 или других стандартов.In general, this invention describes video processing methods that involve the use of syntax elements and semantics to support fairly simple extensions for processing multimedia with video scalability. These methods are particularly suitable for multimedia broadcasting and determine the format of the bitstream and the encoding process, which support a fairly simple video scalability. In a number of aspects, these methods can be applied to implement extensions for fairly simple video scalability for devices that otherwise comply with the H.264 standard. For example, extensions may represent potential modifications to future versions or extensions of the H.264 standard or other standards.
Стандарт H.264 был разработан Экспертной группой по видеокодированию ITU-T и Экспертной группой по кинематографии (MPEG) ISO/IEC как продукт партнерства, известного как Объединенная группа по разработке видео (JVT). Стандарт H.264 описан в ITU-T Recommendation H.264, Advanced video coding для generic audiovisual services, by the ITU-T Study Group и датирован мартом 2005 года, причем здесь этот стандарт называется стандарт H.264 или спецификация H.264, либо стандарт или спецификация H.264/AVC.The H.264 standard was developed by the ITU-T Video Coding Expert Group and the ISO / IEC Cinematography Expert Group (MPEG) as a partnership product known as the Joint Video Development Group (JVT). The H.264 standard is described in ITU-T Recommendation H.264, Advanced video coding for generic audiovisual services, by the ITU-T Study Group and dated March 2005, where this standard is called the H.264 standard or the H.264 specification. either a standard or an H.264 / AVC specification.
Описанные в этом изобретении способы предполагают использование синтаксических элементов и семантики уровня улучшения, предназначенных для реализации эффективной обработки видеоданных базового уровня и уровня улучшения видеодекодером. Здесь будут описаны различные синтаксические элементы и семантика, которые можно использовать вместе или отдельно на селективной основе. Достаточно простая видеомасштабируемость обеспечивает два уровня пространственно-временной-SNR масштабируемости путем разбиения битового потока на синтаксические объекты двух типов, обозначенных как базовый уровень и уровень улучшения.The methods described in this invention involve the use of syntactic elements and semantics of the enhancement level, designed to implement effective processing of basic level video data and the enhancement level by a video decoder. Various syntactic elements and semantics that can be used together or separately on a selective basis will be described here. Rather simple video scalability provides two levels of spatio-temporal-SNR scalability by dividing the bitstream into two types of syntax objects, designated as the base level and the enhancement level.
Кодированные видеоданные и масштабируемые расширения переносятся в компонентах уровня сетевой абстракции (NAL). Каждый компонент NAL является компонентом сетевой передачи, который может принимать форму пакета, содержащего целое число байт. Компоненты NAL переносят либо данные базового уровня, либо данные уровня улучшения. Согласно некоторым аспектам изобретения некоторые из компонентов NAL могут фактически соответствовать стандарту H.264/AVC. Однако к компонентам NAL других типов могут быть применены различные принципы настоящего изобретения. В общем случае первый байт компонента NAL включает в себя заголовок, указывающий тип данных в компоненте NAL. Остальная часть компонента NAL несет данные полезной нагрузки, соответствующие типу, который указан в заголовке. Заголовок nal_unit_type имеет пятибитовое значение, которое указывает один из тридцати двух различных типов компонента NAL, причем девять значений зарезервированы для использования в будущем. Четыре из девяти зарезервированных типов компонента NAL зарезервированы для расширения масштабируемости. Специализированный заголовок nal_unit_type можно использовать для указания о том, что компонент NAL является специализированным компонентом NAL, который может включать в себя видеоданные уровня улучшения для использования в приложениях с масштабируемостью.Encoded video data and scalable extensions are carried in the Network Abstraction Layer (NAL) components. Each NAL component is a network transmission component, which can take the form of a packet containing an integer number of bytes. NAL components carry either baseline data or enhancement layer data. According to some aspects of the invention, some of the NAL components may actually comply with the H.264 / AVC standard. However, various principles of the present invention can be applied to other types of NAL components. In general, the first byte of the NAL component includes a header indicating the data type in the NAL component. The rest of the NAL component carries payload data corresponding to the type indicated in the header. The nal_unit_type header has a five-bit value that indicates one of thirty-two different types of NAL components, with nine values reserved for future use. Four of the nine reserved NAL component types are reserved for scalability. The specialized nal_unit_type header can be used to indicate that the NAL component is a specialized NAL component, which may include enhancement level video data for use in scalable applications.
Синтаксис и семантика битового потока базового уровня в компоненте NAL в общем случае может соответствовать применяемому стандарту, например, стандарту H.264, возможно с некоторыми ограничениями. Как примеры ограничений, наборы параметров изображений могут иметь флаг MbaffFRameFlag, равный 0, наборы параметров последовательности могут иметь флаг frame_mbs_only_flag, равный 1, а запоминаемый флаг В изображений может быть равен 0. Синтаксис и семантика битового потока уровня улучшения для компонентов NAL определяется в этом изобретении для эффективной поддержки достаточно простых расширений для видеомасштабируемости. Например, семантика компонентов уровня сетевой абстракции (NAL), несущих данные уровня улучшения, может быть модифицирована по отношению к стандарту H.264 для ввода новых типов компонента NAL, которые задают тип структуры данных необработанной битовой последовательной полезной нагрузки (RBSP), в компоненте NAL уровня улучшения.The syntax and semantics of the base layer bitstream in the NAL component can generally conform to the applicable standard, for example, the H.264 standard, possibly with some limitations. As examples of restrictions, image parameter sets may have MbaffFRameFlag flag equal to 0, sequence parameter sets may have frame_mbs_only_flag flag equal to 1, and image flag B may be 0. The syntax and semantics of the enhancement level bitstream for NAL components are defined in this invention For effective support, simple enough extensions for video scalability are enough. For example, the semantics of network abstraction layer (NAL) components that carry enhancement layer data can be modified with respect to the H.264 standard to introduce new types of NAL components that specify the data structure type of the raw bit serial payload (RBSP) in the NAL component level of improvement.
Компоненты NAL уровня улучшения могут нести синтаксические элементы с множеством различных указаний уровня улучшения, помогающих видеодекодеру при обработке компонента NAL. Различные указания могут включать в себя указание о том, включает ли компонент NAL видеоданные уровня улучшения с внутрикадровым кодированием на уровне улучшения, указание о том, должен ли декодер использовать добавление видеоданных уровня улучшения к данным базового уровня в пиксельной области или в области преобразования, и/или указание о том, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня.Enhancement level NAL components can carry syntax elements with many different enhancement level indications to assist the video decoder in processing the NAL component. Various indications may include an indication of whether the NAL component includes enhancement layer video data with intra-frame coding at the enhancement layer, an indication of whether the decoder should use the addition of enhancement layer video data to the base layer data in the pixel domain or in the transform domain, and / or an indication of whether the video data of the enhancement layer includes any residual data related to the video data of the base layer.
Компоненты NAL уровня улучшения также могут нести синтаксические элементы, указывающие, включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения. Другие синтаксические элементы могут идентифицировать блоки в видеоданных уровня улучшения, содержащие ненулевые значения коэффициентов преобразования, указывать количество ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения и указывать кодированные блочные шаблоны для блоков с внутрикадровым кодированием в видеоданных уровня улучшения. Вышеописанная информация может быть полезной при поддержании эффективного и упорядоченного декодирования.Enhancement level NAL components may also carry syntax elements indicating whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of the reference image layer. Other syntax elements may identify blocks in the video of the enhancement layer containing non-zero values of the transform coefficients, indicate the number of non-zero coefficients with a magnitude greater than one in the blocks with intraframe coding in the video data of the enhancement level, and indicate coded block patterns for blocks with intraframe coding in the video data of the enhancement level . The above information may be useful in maintaining efficient and orderly decoding.
Описанные в этом изобретении способы можно использовать в сочетании с любым из множества различных стандартов видеокодирования с предсказанием, таких как стандарты MPEG-1, MPEG-2 или MPEG-4, стандарты ITU H.263 или H.264, либо стандарт ISO/IEC MPEG-4, часть 10, то есть усовершенствованное кодирование видео (AVC), который по существу идентичен стандарту H.264. Далее в иллюстративных целях описывается применение указанных способов для поддержки достаточно простых расширений для видеомасштабирования, связанного со стандартом H.264. Соответственно, данное изобретение, в частности, предполагает адаптацию, расширение или модификацию стандарта H.264, как было здесь описано, для обеспечения достаточно простой видеомасштабируемости, но может также быть применено и к другим стандартам.The methods described in this invention can be used in conjunction with any of a variety of different predictive video coding standards, such as MPEG-1, MPEG-2 or MPEG-4, ITU H.263 or H.264, or MPEG ISO / IEC -4, part 10, that is, advanced video coding (AVC), which is essentially identical to the H.264 standard. For illustrative purposes, the following describes the use of these methods to support fairly simple extensions for video scaling associated with the H.264 standard. Accordingly, this invention, in particular, involves the adaptation, expansion or modification of the H.264 standard, as described here, to provide sufficiently simple video scalability, but can also be applied to other standards.
Согласно некоторым аспектам данное изобретение предполагает возможность его применения к видеокодированию в усовершенствованном стандарте H.264 для предоставления видеоуслуг в реальном времени в наземных мобильных мультимедийных широковещательных (TM3) системах с использованием спецификации радиоинтерфейса FLO (связь только в прямом направлении), “Forward Link Only Air Interface Specification для Terrestrial Mobile Multimedia Multicast”, публикуемой как технический стандарт TIA-1099 («FLO specification»). Спецификация FLO включает в себя примеры, определяющие синтаксис и семантику битовых потоков, а также процессы декодирования, подходящие для предоставления услуг через радиоинтерфейс FLO.According to some aspects, the present invention contemplates its applicability to video coding in the enhanced H.264 standard for providing real-time video services in terrestrial mobile multimedia broadcast (TM3) systems using the FLO radio interface specification (forward only communication), “Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast ”, published as TIA-1099 (“ FLO specification ”). The FLO specification includes examples defining the syntax and semantics of bitstreams, as well as decoding processes suitable for providing services over the FLO radio interface.
Как упоминалось выше, масштабируемое видеокодирование предусматривает два уровня: базовый уровень и уровень улучшения. Согласно некоторым аспектам может быть обеспечено множество уровней улучшения, обеспечивающих поступательно нарастающие уровни качества, то есть масштабируемость отношения сигнал-шум. Однако в данном описании в иллюстративных целях описывается единственный уровень улучшения. На основе использования иерархической модуляции на физическом уровне базовый уровень и один или несколько уровней улучшения могут передаваться на одной и той же несущей или поднесущих, но с разными характеристиками передачи, что приводит к разной частоте пакетных ошибок (PER). Базовый уровень имеет более низкую частоту PER. Затем декодер может декодировать только базовый уровень или базовый уровень плюс уровень улучшения, в зависимости от их наличия и/или других критериев.As mentioned above, scalable video coding has two levels: a basic level and an improvement level. According to some aspects, a plurality of improvement levels can be provided that provide progressively increasing quality levels, i.e., scalability of the signal-to-noise ratio. However, a single level of improvement is described herein for illustrative purposes. Based on the use of hierarchical modulation at the physical layer, the base layer and one or more enhancement layers can be transmitted on the same carrier or subcarriers, but with different transmission characteristics, which leads to different packet error rates (PER). The base layer has a lower PER frequency. Then, the decoder can decode only the base level or the base level plus the enhancement level, depending on their availability and / or other criteria.
Если декодирование выполняется в клиентском устройстве, таком как мобильный телефон или другое небольшое портативное устройство, могут иметь место ограничения из-за сложности вычислений и требований к памяти. Соответственно, может быть разработано масштабируемое кодирование таким образом, что декодирование базового уровня плюс уровня улучшения незначительно увеличивает сложность вычислений и требования к памяти по сравнению с одноуровневым кодированием. Эффективное декодирование данных базового уровня и уровня улучшения может поддерживаться подходящими синтаксическими элементами и связанной с ними семантикой.If decoding is performed on a client device, such as a mobile phone or other small portable device, restrictions may occur due to computational complexity and memory requirements. Accordingly, scalable coding can be designed such that decoding of the base layer plus the enhancement layer does not significantly increase the computational complexity and memory requirements compared to single-level coding. Effective decoding of basic and enhancement data can be supported by appropriate syntax elements and associated semantics.
Как пример возможной аппаратной реализации, абонентское устройство может содержать аппаратное ядро с тремя модулями: модуль оценки движения для обработки компенсации движения, модуль преобразования для обработки операций деквантизации и обратного преобразования и модуль деблокирования для обработки деблокирования декодированных видеоданных. Каждый модуль может быть сконфигурирован для одновременной обработки одного макроблока (MB). Однако доступ к подсекциям каждого модуля может оказаться затруднительным.As an example of a possible hardware implementation, a subscriber device may comprise a hardware core with three modules: a motion estimation module for processing motion compensation, a transform module for processing dequantization and inverse transform operations, and a release module for processing the release of decoded video data. Each module can be configured to simultaneously process one macroblock (MB). However, access to the subsections of each module can be difficult.
Например, обратное преобразование яркости между MB может осуществляться на основе блоков 4×4, и в модуле преобразования возможно придется выполнить последовательно 16 преобразований для всех блоков 4×4. Кроме того, для ускорения процесса декодирования можно использовать конвейерный режим работы трех модулей. Следовательно, прерывания с целью обеспечения процессов для масштабируемого декодирования может замедлить ход выполнения декодирования.For example, the inverse luminance conversion between MBs may be based on 4 × 4 blocks, and in the conversion module it may be necessary to perform 16 transformations in series for all 4 × 4 blocks. In addition, to speed up the decoding process, you can use the pipelined mode of operation of the three modules. Therefore, interrupts to enable processes for scalable decoding can slow down the progress of decoding.
В схеме масштабируемого кодирования согласно одному аспекту настоящего изобретения в декодере данные с базового уровня и уровня улучшения можно объединить на одном уровне, например, в микропроцессоре общего назначения. В этом случае входящие данные, поступающие от микропроцессора, выглядят как единый уровень данных и могут обрабатываться аппаратным ядром как один уровень. Таким образом, согласно некоторым аспектам изобретения масштабируемое декодирование является прозрачным для аппаратного ядра. Возможно, что не понадобится переупорядочивать модули аппаратного ядра. Декодирование данных базового уровня и уровня улучшения как данных одного уровня согласно некоторым аспектам может незначительно увеличить сложность декодирования и ненамного повысить (либо вообще не повысить) требования к памяти.In a scalable coding scheme according to one aspect of the present invention, in a decoder, data from a base layer and an enhancement layer can be combined at the same level, for example, in a general purpose microprocessor. In this case, the incoming data coming from the microprocessor looks like a single level of data and can be processed by the hardware core as one level. Thus, according to some aspects of the invention, scalable decoding is transparent to the hardware core. It may not be necessary to reorder the hardware kernel modules. Decoding the data of the basic level and the level of improvement as data of one level according to some aspects may slightly increase the complexity of decoding and slightly increase (or not increase at all) the memory requirements.
При потере уровня улучшения из-за высокой частоты PER или по какой-либо другой причине остаются только данные базового уровня. Следовательно, можно будет выполнить стандартное одноуровневое декодирование для данных базового уровня, либо могут потребоваться небольшие изменения стандартного, немасштабируемого декодирования, либо изменения вообще не потребуются. Однако, если имеется как базовый уровень, так и уровень улучшения данных, декодер может декодировать оба уровня и создать видео с качеством уровня улучшения, увеличив отношение сигнал-шум результирующих видеоданных для их представления на устройстве отображения.If the improvement level is lost due to the high PER frequency or for some other reason, only the basic level data remains. Therefore, it will be possible to perform standard single-level decoding for data of the basic level, either small changes to standard, non-scalable decoding may be required, or changes will not be required at all. However, if there is both a basic level and a data enhancement level, the decoder can decode both levels and create video with the quality of the enhancement level, increasing the signal-to-noise ratio of the resulting video data for presentation on the display device.
В этом изобретении процедура декодирования описана для случая, когда получены и имеются как базовый уровень, так и уровень улучшения. Однако специалистам в данной области техники должно быть ясно, что описанная здесь процедура декодирования применима также к одноуровневому декодированию только базового уровня. Также для масштабируемого декодирования и стандартного, одноуровневого (базового) декодирования можно совместно использовать одно и то же аппаратное ядро. Кроме того, для управления планированием в аппаратном ядре может потребоваться незначительная модификация (или вообще не потребоваться) для обработки как декодирования только базового уровня, так и декодирования базового уровня плюс уровня улучшения.In this invention, a decoding procedure is described for the case where both the base layer and the enhancement layer are received and are available. However, it should be apparent to those skilled in the art that the decoding procedure described herein is also applicable to single-level decoding of only the base layer. Also, for scalable decoding and standard, single-level (base) decoding, the same hardware core can be shared. In addition, minor scheduling (or not at all) may be required to control scheduling in the hardware core to process both decoding of the base layer only and decoding of the base layer plus the enhancement layer.
Некоторые из задач, относящихся к масштабируемому декодированию, могут быть выполнены в микропроцессоре общего назначения. Их выполнение может включать в себя двухуровневое энтропийное декодирование, объединение коэффициентов двух уровней и подачу управляющей информации в цифровой процессор сигналов (DSP). Управляющая информация, подаваемая в DSP, может включать в себя значения параметра квантования (QP) и несколько ненулевых коэффициентов в каждом блоке 4х4. Значения QP могут посылаться в DSP для деквантизации и могут также использоваться совместно с информацией о ненулевых коэффициентах в аппаратном ядре для деблокирования. Процессор DSP может обращаться к блокам в аппаратном ядре для завершения других операций. Однако описанные здесь способы нет необходимости ограничивать какой-либо конкретной аппаратной реализацией или архитектурой.Some of the tasks related to scalable decoding can be performed on a general purpose microprocessor. Their implementation may include two-level entropy decoding, combining the coefficients of two levels and supplying control information to a digital signal processor (DSP). The control information supplied to the DSP may include quantization parameter (QP) values and several non-zero coefficients in each 4x4 block. QP values can be sent to the DSP for dequantization and can also be used in conjunction with information about nonzero coefficients in the hardware core for release. The DSP can access blocks in the hardware core to complete other operations. However, the methods described herein need not be limited to any particular hardware implementation or architecture.
В этом описании двунаправленные предиктивные B-кадры, формируемые способом предсказания вперед/назад, могут кодироваться стандартным образом в предположении, что В-кадры могут переноситься на обоих уровнях. В данном описании основное внимание обращено на обработку I- и P-кадров и/или слоев, которые могут появляться на базовом уровне, уровне улучшения или на обоих уровнях. В общем случае здесь описывается процесс одноуровневого декодирования, который объединяет операции для битовых потоков базового уровня и уровня улучшения с целью минимизации сложности декодирования и энергопотребления.In this description, bidirectional predictive B-frames generated by the forward / backward prediction method can be encoded in a standard way under the assumption that B-frames can be carried at both levels. In this description, the main attention is paid to the processing of I- and P-frames and / or layers, which can appear at a basic level, level of improvement, or at both levels. In the general case, a single-level decoding process is described which combines operations for bit streams of the base layer and the enhancement layer in order to minimize decoding complexity and power consumption.
Как пример, для объединения базового уровня и уровня улучшения коэффициенты базового уровня могут быть приведены к масштабу SNR уровня улучшения. Например, коэффициенты базового уровня можно просто умножить на масштабный коэффициент. Если разница в параметре квантования (QP) между базовым уровнем и уровнем улучшения кратна, например, 6, то коэффициенты базового уровня можно привести к масштабу уровня улучшения с помощью простой операции битового сдвига. Результатом будет масштабированная версия данных базового уровня, которые могут быть объединены с данными уровня улучшения, чтобы разрешить одноуровневое декодирование как базового уровня, так и уровня улучшения на объединенной основе, как если бы они находились на уровне общего битового потока.As an example, to combine the base level and the improvement level, the coefficients of the base level can be reduced to the SNR scale of the improvement level. For example, baseline coefficients can simply be multiplied by a scale factor. If the difference in the quantization parameter (QP) between the base level and the enhancement level is a multiple of, for example, 6, then the base level coefficients can be scaled to the enhancement level using a simple bit shift operation. The result will be a scaled version of the baseline data that can be combined with the enhancement layer data to enable single-level decoding of both the base layer and the enhancement layer on a combined basis, as if they were at the common bitstream level.
Используя декодирование одного уровня, а не двух различных уровней на независимой основе, можно упростить необходимые для обработки компоненты декодера, смягчить ограничения на планирование и уменьшить энергопотребление. Для обеспечения упрощенной масштабируемости компоненты NAL битового потока уровня улучшения включают в себя различные синтаксические элементы и семантику, предназначенные для облегчения декодирования, так чтобы видеодекодер мог реагировать на наличие как данных базового слоя, так и данных слоя расширения в различных компонентах NAL. Примеры синтаксических элементов, семантики и функций обработки описываются ниже со ссылками на чертежи.Using the decoding of one level, rather than two different levels on an independent basis, it is possible to simplify the components of the decoder necessary for processing, to alleviate planning restrictions and reduce power consumption. To provide simplified scalability, the NAL components of the enhancement level bitstream include various syntax elements and semantics designed to facilitate decoding so that the video decoder can respond to the presence of both base layer data and extension layer data in various NAL components. Examples of syntax elements, semantics, and processing functions are described below with reference to the drawings.
На фиг. 1 представлена блок-схема, иллюстрирующая цифровую мультимедийную вещательную систему 10, поддерживающую видеомасштабируемость. В примере на фиг. 1 система 10 включает в себя вещательный сервер 12, передающую башню 14 и множество абонентских устройств 16А, 16В. Вещательный сервер 12 получает цифровой мультимедийный контент от одного или нескольких источников и кодирует этот мультимедийный контент, например, в соответствии с любым из вышеописанных стандартов видеокодирования, например, H.264. Мультимедийный контент, закодированный вещательным сервером 12, может быть скомпонован в виде отдельных битовых потоков для поддержки различных каналов, выбираемых пользователем, связанным с абонентским устройством 16. Вещательный сервер 12 может получать цифровой мультимедийный контент в прямом эфире или в виде архивированного мультимедийного контента от различных поставщиков контента.In FIG. 1 is a block diagram illustrating a digital multimedia broadcasting system 10 supporting video scalability. In the example of FIG. 1, system 10 includes a
Вещательный сервер 12 может включать в себя или быть связан с модулятором/передатчиком, который содержит соответствующие компоненты радиочастотной (RF) модуляции, фильтрации и усиления для возбуждения одной или нескольких антенн, связанных с передающей башней 14, для доставки закодированного мультимедийного контента, полученного от вещательного сервера 12, через беспроводный канал. Согласно некоторым аспектам вещательный сервер 12 может быть сконфигурирован в общем случае для предоставления видеоуслуг в реальном времени в наземных мобильных мультимедийных широковещательных (TM3) системах согласно спецификации FLO. Модулятор/передатчик может передавать мультимедийные данные в соответствии с любым из множества различных способов беспроводной связи, таких как многостанционный доступ с кодовым разделением каналов (CDMA), многостанционный доступ с временным разделением каналов (TDMA), многостанционный доступ с частотным разделением каналов (FDMA), мультиплексирование с ортогональным частотным разделением каналов (OFDM) или любой комбинацией указанных способов.
Каждое абонентское устройство 16 может находиться в любом устройстве, способном декодировать и представлять цифровые мультимедийные данные: система непосредственного цифрового вещания, устройство беспроводной связи, такое как сотовый или спутниковый радиотелефон, персональный цифровой помощник (PDA), компьютер типа «лэптоп», настольный компьютер, видеоигровая приставка или т.п. Абонентские устройства 16 могут поддерживать проводной и/или беспроводный прием мультимедийных данных. Вдобавок, некоторые абонентские устройства 16 могут быть оборудованы средствами для кодирования и передачи мультимедийных данных, а также поддержки приложений для передачи речи и данных, включая видеотелефонную связь, потоковое видео и т.п.Each subscriber device 16 may be in any device capable of decoding and presenting digital multimedia data: a direct digital broadcasting system, a wireless communication device such as a cellular or satellite radiotelephone, personal digital assistant (PDA), a laptop computer, a desktop computer, video game console or the like Subscriber devices 16 may support wired and / or wireless reception of multimedia data. In addition, some subscriber units 16 may be equipped with means for encoding and transmitting multimedia data, as well as supporting voice and data applications, including video telephony, video streaming, and the like.
Для поддержки масштабируемого видео вещательный сервер 12 кодирует исходные видеоданные для создания отдельных битовых потоков базового уровня и уровня улучшения для множества каналов видеоданных. Передача по этим каналам обычно выполняется одновременно, так что абонентское устройство 16А, 16В может в любой момент времени выбрать для просмотра другой канал.To support scalable video, the
Следовательно, абонентское устройство 16А, 16В под управлением пользователя может выбрать один канал для просмотра спортивных передач, а затем выбрать другой канал для просмотра новостей или некоторой другой запланированной программы, совсем так, как при просмотре телевизора. В общем, каждый канал включает в себя базовый уровень и уровень улучшения, которые передаются с различными значениями частоты PER.Therefore, the
В примере на фиг. 1 показаны два абонентских устройства 16А, 16В. Однако система 10 может включать в себя любое количество абонентских устройств 16А, 16В в заданной зоне покрытия. Примечательно, что множество абонентских устройств 16А, 16В могут обращаться к одним и тем же каналам для одновременного просмотра одного и того же контента. На фиг. 1 показано расположение абонентских устройств 16А и 16В относительно передающей башни 14, при котором одно абонентское устройство 16А находится ближе к передающей башне, а другое абонентское устройств 16В дальше от передающей башни. Поскольку базовый уровень кодируется при низкой частоте PER, он должен надежно приниматься и декодироваться любым абонентским устройством 16 в используемой зоне покрытия. Как показано на фиг. 1, базовый уровень принимается обоими абонентскими устройствами 16А, 16В. Однако абонент 16В находится дальше от передающей башни 14 и не принимает с достаточной надежностью уровень улучшения.In the example of FIG. 1, two
Более близкое абонентское устройство 16А способно обеспечить видео более высокого качества, поскольку ему доступны данные как базового уровня, так и уровня улучшения, в то время как абонентское устройство 16В способно представлять видео только с минимальным уровнем качества, обеспечиваемым данными базового уровня. Следовательно, видео, получаемое абонентскими устройствами 16, является масштабируемым в том смысле, что к базовому уровню для повышения отношения сигнал-шум декодированных видеоданных можно добавить предварительно декодированный уровень улучшения. Однако масштабируемость возможна только тогда, когда имеются данные уровня улучшения. Как описано ниже, при наличии данных уровня улучшения синтаксические элементы и семантика, связанные с компонентами NAL уровня улучшения, помогают видеодекодеру в абонентском устройстве 16 реализовать масштабируемость видеоданных. В данном описании, и в частности, на чертежах, термин «улучшение» для краткости может быть укорочен до сокращения «расш» (или "ENH").
На фиг. 2 представлена схема, иллюстрирующая видеокадры в базовом уровне 17 и уровне 18 улучшения масштабируемого битового видеопотока. Базовый уровень 17 представляет собой битовый поток, содержащий кодированные видеоданные, которые представляют первый уровень пространственно-временной-SNR масштабируемости. Уровень 18 улучшения представляет собой битовый поток, содержащий кодированные видеоданные, которые представляют второй уровень пространственно-временной-SNR масштабируемости. В общем случае битовый поток уровня улучшения может декодироваться только вместе с базовым уровнем, а не независимо. Уровень 18 улучшения содержит ссылки на декодированные видеоданные в базовом уровне 17. Указанные ссылки можно использовать либо в области преобразования, либо в пиксельной области для создания конечных декодированных видеоданных.In FIG. 2 is a diagram illustrating video frames in the
Базовый уровень 17 и уровень 18 улучшения могут содержать I-кадры (с внутрикадровым кодированием), P-кадры (с предиктивным кодированием) и В-кадры (формируемые методом предсказания вперед/назад). P-кадры в уровне 18 улучшения опираются на ссылки на P-кадры в базовом уровне 17. Путем декодирования кадров в уровне 18 улучшения и базовом уровне 17 видеодекодер имеет возможность повысить качество декодированного видео. Например, базовый уровень 17 может включать в себя видео, закодированное с минимальной частотой 15 кадров в секунду, в то время как уровень 18 улучшения может включать в себя видео, закодированное с более высокой частотой - 30 кадров в секунду. Для поддержки кодирования с разными уровнями качества базовый уровень 17 и уровень 18 улучшения могут кодироваться с большим параметром квантования (QP) и меньшим QP соответственно.
На фиг. 3 представлена блок-схема, иллюстрирующая примерные компоненты вещательного сервера 12 и абонентского устройства 16 в системе 10 цифрового мультимедийного вещания по фиг. 1. Как показано на фиг. 3, вещательный сервер 12 включает в себя один или несколько источников 20 видео или интерфейс для различных источников видео. Вещательный сервер 12 также включает в себя видеодекодер 22, модуль 23 компонентов NAL и модулятор/передатчик 24. Абонентское устройство 16 включает в себя приемник/демодулятор 26, модуль 27 компонентов NAL, видеодекодер 28 и устройство 30 отображения видео. Приемник/демодулятор 26 принимает видеоданные от модулятора/передатчика 24 через канал 15 связи. Видеодекодер 22 включает в себя модуль 32 кодера базового уровня и модуль 34 кодера уровня улучшения. Видеодекодер 28 включает в себя модуль 38 объединителя уровней (базового/расширения) и энтропийный декодер 40 базового уровня/уровня улучшения.In FIG. 3 is a block diagram illustrating exemplary components of a
Кодер 32 базового уровня и кодер 34 уровня улучшения принимают общие видеоданные. Кодер 32 базового уровня кодирует видеоданные с первым уровнем качества. Кодер 34 уровня улучшения кодирует уточнения, которые, будучи добавленными к базовому уровню, улучшают видео до второго, более высокого уровня качества. Модуль 23 компонентов NAL обрабатывает кодированный битовый поток из видеокодера 22 и создает компоненты NAL, содержащие кодированные видеоданные из базового уровня и уровня улучшения. Модуль 23 компонентов NAL может представлять собой отдельный блок, как показано на фиг. 3, или быть встроенным или иным образом интегрированным с видеокодером 22. Некоторые компоненты NAL несут данные базового уровня, в то время как другие компоненты NAL несут данные уровня улучшения. Согласно настоящему изобретению по меньшей мере некоторые из компонентов NAL включают в себя синтаксические элементы и семантику, помогающие видеодекодеру 28 при декодировании данных базового уровня и уровня улучшения без существенного увеличения сложности. Например, в компоненте NAL, который включает в себя видеоданные уровня улучшения, компоненте NAL, который включает в себя видеоданные базового уровня, или и то и другое могут быть предусмотрены один или несколько синтаксических элементов, указывающих на наличие видеоданных уровня улучшения в компоненте NAL.The base layer encoder 32 and the enhancement layer encoder 34 receive common video data. A base layer encoder 32 encodes video data with a first quality level. Enhancement level encoder 34 encodes refinements that, when added to the base level, enhance the video to a second, higher quality level. The NAL component module 23 processes the encoded bitstream from video encoder 22 and creates NAL components containing encoded video data from a base layer and an enhancement layer. The NAL component module 23 may be a separate unit, as shown in FIG. 3, or be integrated or otherwise integrated with the video encoder 22. Some NAL components carry basic layer data, while other NAL components carry enhancement layer data. According to the present invention, at least some of the NAL components include syntax elements and semantics that assist
Модулятор/передатчик 24 включает в себя подходящие компоненты для модуляции/демодуляции, усиления, фильтрации и преобразования частоты для поддержки модуляции и беспроводной передачи компонентов NAL, созданных модулем 23 компонентов NAL. Приемник/демодулятор 26 включает в себя подходящие компоненты модуляции/демодуляции, усиления, фильтрации и преобразования частоты для поддержки беспроводного приема компонентов NAL, переданных вещательным сервером. Согласно некоторым аспектам вещательный сервер 12 и абонентское устройство 16 могут быть оборудованы средствами двусторонней связи, так что вещательный сервер 12, абонентское устройство 16 или они оба включают в себя передающие и приемные компоненты, и оба способны кодировать и декодировать видеоданные. Согласно другим аспектам вещательный сервер 12 может являться абонентским устройством 16, оборудованным средствами кодирования, декодирования, передачи и приема видеоданных с использованием кодирования базового уровня и уровня улучшения. Таким образом, здесь также предполагается обработка масштабируемого видео для видеоданных, передаваемых между двумя или более абонентскими устройствами.Modulator / transmitter 24 includes suitable components for modulation / demodulation, amplification, filtering, and frequency conversion to support modulation and wireless transmission of NAL components created by NAL component module 23. The receiver / demodulator 26 includes suitable modulation / demodulation, amplification, filtering and frequency conversion components to support the wireless reception of NAL components transmitted by the broadcast server. According to some aspects, the
Модуль 27 компонентов NAL выделяет синтаксические элементы из принятых компонентов NAL и подает соответствующую информацию в видеодекодер 28 для ее использования при декодировании видеоданных базового уровня и уровня улучшения. Модуль 27 компонентов NAL может представлять собой отдельный блок, как показано на фиг. 3, или быть встроенным или иным образом интегрированным с видеодекодером 28. Энтропийный декодер 40 базового уровня/уровня улучшения применяет энтропийное декодирование к полученным видеоданным. Если имеются данные уровня улучшения, то модуль 38 объединителя уровней (базового/расширения) объединяет коэффициенты от базового уровня и уровня улучшения, используя указания, предоставленные модулем 27 компонентов NAL, для поддержки одноуровневого декодирования объединенной информации. Видеодекодер 28 декодирует объединенные видеоданные для создания выходных видеоданных, приводящих в действие устройство 30 отображения. Синтаксические элементы, находящиеся в каждом компоненте NAL, и семантика синтаксических элементов управляют видеодекодером 28 при комбинировании и декодировании полученных видеоданных базового уровня и уровня улучшения.The NAL component module 27 extracts the syntax elements from the received NAL components and supplies the corresponding information to the
Различные компоненты в вещательном сервере 12 и абонентском устройстве 16 могут быть реализованы с помощью любой подходящей комбинации аппаратных, программных и программно-аппаратных средств. Например, видеокодер 22 и модуль 23 компонентов NAL, а также модуль 27 компонентов NAL и видеодекодер 28 могут быть реализованы с помощью одного или нескольких микропроцессоров общего назначения, цифровых процессоров сигналов (DSP), аппаратных ядер, прикладных специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA) или любой их комбинации. Вдобавок, различные компоненты могут быть реализованы в видеокодере-декодере (CODEC). В некоторых случаях ряд аспектов раскрытых здесь способов могут выполняться процессором DSP, который активизирует различные аппаратные компоненты в аппаратном ядре для ускорения процесса кодирования.The various components in the
Что касается аспектов, функциональные возможности которых реализуются программными средствами, например, функциональные возможности, реализуемые процессором или DSP, то изобретение также предполагает возможность использования считываемого компьютером носителя, содержащего коды, в рамках компьютерного программного продукта. При исполнении на машине коды побуждают машину выполнять один или несколько аспектов описанных здесь способов. Считываемый машиной носитель может содержать память с произвольной выборкой (RAM), например, синхронную динамическую память с произвольной выборкой (SDRAM), память только для считывания (ROM), энергонезависимую память с произвольной выборкой (NVRAM), электрически стираемую программируемую память только для считывания (EEPROM), флэш-память и т.п.With regard to aspects whose functionality is implemented by software, for example, functionality implemented by a processor or DSP, the invention also contemplates the possibility of using computer-readable media containing codes as part of a computer program product. When executed on a machine, codes cause the machine to perform one or more aspects of the methods described herein. Machine-readable media can contain random-access memory (RAM), for example, random-access dynamic synchronous memory (SDRAM), read-only memory (ROM), non-volatile random-access memory (NVRAM), electrically erasable programmable read-only memory ( EEPROM), flash memory, etc.
На фиг. 4 представлена блок-схема, иллюстрирующая примерные компоненты видеодекодера 28 для абонентского устройства 16. В примере на фиг. 4, как и на фиг. 3, видеодекодер 28 включает в себя модуль 40 энтропийного декодера базового уровня/уровня улучшения и модуль 38 объединителя уровней (базового/расширения). На фиг. 4 также показаны модуль 44 восстановления при ошибках базового уровня плюс уровня улучшения и модуль 46 деквантизации, а также модуль 48 деквантизации и предсказания. На фиг. 4 также показан модуль 50 постобработки, который принимает выходной сигнал видеодекодера 28, и устройство 30 отображения.In FIG. 4 is a block diagram illustrating exemplary components of
Энтропийный декодер 40 базового уровня/уровня улучшения применяет энтропийное декодирование к видеоданным, полученным видеодекодером 28. Модуль 38 объединителя уровней (базового/расширения) объединяет видеоданные базового уровня и уровня улучшения для заданного кадра или макроблока при наличии данных уровня улучшения, то есть когда данные уровня улучшения успешно приняты. Как будет описано ниже, модуль 38 объединителя уровней (базового/расширения) может сначала на основе синтаксических элементов, присутствующих в компоненте NAL, определить, содержит ли компонент NAL данные уровня улучшения. Если содержит, то модуль 38 объединителя объединяет данные базового уровня для соответствующего кадра с данными уровня улучшения, например, путем масштабирования данных базового уровня. Таким образом, модуль 38 объединителя создает одноуровневый битовый поток, который может быть декодирован видеодекодером 28 без обработки множества уровней. Другие синтаксические элементы и связанная с ними семантика в компоненте NAL могут задать способ объединения и декодирования данных базового уровня и уровня улучшения.The entropy base level /
Модуль 44 восстановления при ошибках исправляет ошибки в декодированном выходном сигнале модуля 38 объединителя. Модуль 46 деквантизации и модуль 48 обратного преобразования применяют функции деквантизации и обратного преобразования соответственно к выходу модуля 44 восстановления при ошибках, создавая декодированные выходные видеоданные для модуля 55 постобработки. Модуль 50 постобработки может выполнять любую из множества различных функций повышения качества видео, таких как деблокирование, подавление реверберации, сглаживание, повышение четкости или т.п. При наличии данных уровня улучшения для кадра или макроблока видеодекодер 28 имеет возможность создания видео более высокого качества для подачи в модуль 50 постобработки и устройство 30 отображения. Если данные уровня улучшения отсутствуют, то декодированное видео создается с минимальным уровнем качества, обеспечиваемым базовым уровнем.Error recovery module 44 corrects errors in the decoded output of
На фиг. 5 представлена блок-схема, иллюстрирующая процесс декодирования видеоданных базового уровня и уровня улучшения в масштабируемом битовом видеопотоке. В общем случае при потере уровня улучшения из-за высокой частоты пакетных ошибок или из-за отсутствия приема, доступными остаются только данные базового уровня. Следовательно, будет выполняться стандартное одноуровневое декодирование. Однако при наличии данных обоих уровней: базового и улучшения, видеодекодер 28 будет декодировать оба уровня и создавать видео с качеством уровня улучшения. Как показано на фиг. 5, после начала декодирования группы изображений (GOP) (54) модуль 27 компонентов NAL определяет, включают ли входящие компоненты NAL в себя данные уровня улучшения или только данные базового уровня (58). Если компоненты NAL включают в себя только данные базового уровня, то видеодекодер 28 применяет стандартное одноуровневое декодирование к данным базового уровня (60) и продолжает его до конца группы GOP (62).In FIG. 5 is a flowchart illustrating a process for decoding video data of a base layer and an enhancement layer in a scalable video bitstream. In the general case, if the improvement level is lost due to the high frequency of packet errors or due to lack of reception, only the basic level data remains available. Therefore, standard single-level decoding will be performed. However, if there is data of both levels: basic and improvement,
Если компоненты NAL включают в себя не только данные базового уровня (58), то есть некоторые из компонентов NAL включают в себя данные уровня улучшения, то видеодекодер 28 выполняет I-декодирование базового уровня (64) и I-декодирование уровня улучшения (ENH) (66). В частности, видеодекодер 28 декодирует все I-кадры в базовом уровне и уровне улучшения. Видеодекодер 28 выполняет перемещение содержимого памяти (68) для управления декодированием I-кадров как для базового уровня, так и для уровня улучшения. В сущности, базовый уровень и уровень улучшения обеспечивают два I-кадра для единого I-кадра, то есть Ie -кадр уровня улучшения и Ib -кадр базового уровня. По этой причине и может быть использовано перемещение содержимого памяти.If the NAL components include not only base layer data (58), that is, some of the NAL components include enhancement layer data, then
Для декодирования I-кадра при наличии данных из обоих уровней может быть реализовано декодирование в два прохода, которое в общем случае выполняется следующим образом. Сначала восстанавливается кадр Ib базового уровня как обычный I-кадр. Затем восстанавливается I-кадр уровня улучшения как P-кадр. Опорным кадром для восстановленного P-кадра уровня улучшения является восстановленный I-кадр базового уровня. В результирующем P-кадре все векторы движения равны нулю. Соответственно, декодер 28 декодирует восстановленный кадр как P-кадр с нулевыми векторами движения, обеспечивая прозрачную масштабируемость.To decode the I-frame in the presence of data from both levels, two-pass decoding can be implemented, which is generally performed as follows. First, the basic layer frame Ib is restored as a normal I-frame. The I-frame of the enhancement layer is then restored as a P-frame. The reference frame for the reconstructed P-frame of the enhancement layer is the reconstructed I-frame of the base layer. In the resulting P-frame, all motion vectors are equal to zero. Accordingly, the
По сравнению с одноуровневым декодированием декодирование Ie-кадра уровня улучшения в общем случае эквивалентно времени декодирования стандартного I-кадра и P-кадра. Если частота I-кадров не превышает один кадр в секунду, то значительного усложнения не потребуется. Если эта частота больше, чем один I-кадр в секунду, например, из-за изменения сцены или по какой-то другой причине, то конфигурируется алгоритм кодирования, обеспечивающий кодирование вышеозначенных I-кадров только на базовом уровне. Если возможно одновременное существование в декодере как кадров Ib, так и Ie, то Ie можно сохранить в буфере кадров с отличием от Ib. В этом случае, когда в качестве P-кадра восстанавливается кадр Iе, индексы памяти могут быть перемещены, и память, занятая Ib, может быть освобождена. Затем декодер 28 выполняет обработку перемещения индексов памяти в зависимости от того, имеется ли битовый поток уровня улучшения. Если объем памяти для этого слишком мал, то возможна перезапись Ie на Ib, поскольку все векторы движения являются нулевыми.Compared to single-level decoding, the decoding of an enhancement level Ie frame is generally equivalent to the decoding time of a standard I frame and a P frame. If the frequency of I-frames does not exceed one frame per second, then significant complication is not required. If this frequency is more than one I-frame per second, for example, due to a scene change or for some other reason, then a coding algorithm is configured to encode the above-mentioned I-frames only at a basic level. If simultaneous existence of both Ib and Ie frames in the decoder is possible, then Ie can be stored in the frame buffer with a difference from Ib. In this case, when frame Ie is restored as the P-frame, the memory indices can be moved and the memory occupied by Ib can be freed. Then, the
После декодирования I-кадров (64, 66) и перемещения содержимого памяти (68) модуль 38 объединителя объединяет данные Р-кадров базового уровня и уровня улучшения в единый уровень (70). Затем модуль 46 деквантизации и модуль 48 обратного преобразования декодируют единый уровень Р-кадров (72). Вдобавок, модуль 46 деквантизации и модуль 48 обратного преобразования декодируют B-кадры (74).After decoding the I-frames (64, 66) and moving the contents of the memory (68), the
После декодирования данных P-кадров (72) и данных B-кадров (74) процесс завершается (62), если обработана вся группа GOP (76). Если группа GOP декодирована еще не донца, то тогда выполнение процесса продолжается посредством выполнения еще одной итерации объединения данных P-кадра базового уровня и уровня улучшения (70), декодирования результирующих одноуровневых данных P-кадров (72) и декодирования B-кадров (74). Этот процесс продолжается, пока не будет достигнут конец группы GOP (76), что является моментом окончания процесса.After decoding the P-frame data (72) and the B-frame data (74), the process ends (62) if the entire GOP group (76) has been processed. If the GOP group has not yet been decoded, then the process continues by performing another iteration of combining the data of the base-level P-frame and the enhancement level (70), decoding the resulting single-level P-frame data (72), and decoding the B-frames (74) . This process continues until the end of the GOP group (76) is reached, which is the moment the process ends.
На фиг. 6 представлена блок-схема, иллюстрирующая объединение коэффициентов базового уровня и уровня улучшения в видеодекодере 28. Как показано на фиг. 6, коэффициенты P-кадра базового уровня подвергаются деквантизации 80 и обратному преобразованию 82, например, с помощью модуля 46 обратного преобразования и модуля 48 обратного преобразования и предсказания соответственно (фиг. 4), а затем суммируются сумматором 84 с остаточными данными из буфера 86, представляющими опорный кадр, для создания декодированного выхода P-кадра базового уровня. Однако при наличии данных уровня улучшения коэффициенты базового уровня подвергаются масштабированию (88) для согласования с качеством коэффициентов уровня улучшения.In FIG. 6 is a block diagram illustrating the combination of base level coefficients and enhancement level in
Затем в сумматоре 90 суммируются масштабируемые коэффициенты базового уровня и коэффициенты уровня улучшения для данного кадра для создания комбинированных данных базового уровня/уровня улучшения. Эти комбинированные данные подвергаются деквантизации 92 и обратному преобразованию 94, а затем суммируются сумматором 96 с остаточными данными из буфера 98. Выход представляет собой комбинированные декодированные данные базового уровня и уровня улучшения, дающие повышенный уровень качества по отношению к базовому уровню, но при этом может потребоваться только одноуровневая обработка.Then, adder 90 sums the scalable base level coefficients and enhancement level coefficients for a given frame to create combined base level / enhancement level data. This combined data is de-quantized 92 and inversely converted 94, and then summed by the
В общем, в буферах 86 и 98 базового уровня и уровня улучшения могут запоминаться восстановленные опорные видеоданные, заданные файлами конфигурации в целях компенсации движения. При приеме битовых потоков как базового уровня, так и уровня улучшения простое масштабирование коэффициентов дискретного косинусного преобразования (DCT) базового уровня и суммирование их с коэффициентами DCT уровня улучшения может поддерживать одноуровневое кодирование, при котором для двух уровней данных выполняется только единственная операция деквантизации и обратного DCT.In general, in the
Согласно некоторым аспектам масштабирование данных базового уровня может сопровождаться простой операцией битового сдвига. Например, если параметр квантования (QP) базового уровня на шесть уровней больше параметра QP уровня улучшения, то есть если QPb-QPe=6, то комбинированные данные базового уровня и уровня улучшения могут быть выражены следующим образом:In some aspects, scaling of the base layer data may be accompanied by a simple bit shift operation. For example, if the quantization parameter (QP) of the base level is six levels higher than the parameter QP of the enhancement level, that is, if QP b -QP e = 6, then the combined data of the base level and enhancement level can be expressed as follows:
где Сenh' представляет комбинированный коэффициент после масштабирования коэффициента Cbase базового уровня и добавления его к исходному коэффициенту Сenh уровня улучшения, а Qe -1 представляет операцию деквантизации, применяемую к уровню улучшения.where C enh 'represents the combined coefficient after scaling the C base coefficient of the base level and adding it to the original coefficient C enh of the enhancement level, and Q e -1 represents the dequantization operation applied to the enhancement level.
На фиг. 7 представлена блок-схема, иллюстрирующая объединение коэффициентов базового уровня и уровня улучшения в видеодекодере. Как показано на фиг. 7, модуль 27 компонентов NAL определяет, когда абонентское устройство 16 принимает видеоданные обоих уровней: базового уровня и уровня улучшения (100), например, путем обращения к элементам синтаксиса компонента NAL, указывающих тип расширения компонента NAL. Если приняты видеоданные базового уровня и уровня улучшения, то модуль 27 компонентов NAL также проверяет один или несколько дополнительных синтаксических элементов в заданном компоненте NAL, чтобы определить, имеет ли каждый базовый макроблок (MB) ненулевые коэффициенты (102). Если это так (ветвь ДА от этапа 102), то объединитель 28 преобразует коэффициенты уровня улучшения в сумму существующих коэффициентов уровня улучшения для соответствующего совмещенного MB плюс коэффициенты базового уровня с увеличенным масштабом для совмещенного MB (104).In FIG. 7 is a flowchart illustrating a combination of base layer coefficients and enhancement layer in a video decoder. As shown in FIG. 7, the NAL component module 27 determines when the subscriber unit 16 receives the video data of both levels: the base level and the enhancement level (100), for example, by accessing the syntax elements of the NAL component indicating the extension type of the NAL component. If base level and enhancement level video data is received, then the NAL component module 27 also checks one or more additional syntax elements in the given NAL component to determine whether each base macroblock (MB) has non-zero coefficients (102). If so (YES branch from step 102), then combiner 28 converts the improvement level coefficients into the sum of the existing improvement level coefficients for the corresponding combined MB plus zoomed-in base level coefficients for the combined MB (104).
В этом случае коэффициенты для модуля 46 деквантизации и модуля 48 обратного преобразования являются суммой масштабированных коэффициентов базового уровня и коэффициентов уровня улучшения, которая выражается как COEFF=SCALEDBASE_COEFF+ENH_COEFF (104). Таким образом, объединитель 38 объединяет данные уровня улучшения и базового уровня в единый уровень для модуля 46 деквантизации и модуля 48 обратного преобразования видеодекодера 28. Если MB базового уровня, совмещенный с уровнем улучшения, не имеет ненулевых коэффициентов (ветвь НЕТ из этапа 102), то тогда коэффициенты уровня улучшения не суммируются с коэффициентами базового уровня. Вместо этого коэффициенты для модуля 46 деквантизации и модуля 48 обратного преобразования являются коэффициентами уровня улучшения, что можно представить как COEFF=ENH_COEFF (108). Модуль 46 деквантизации и модуль 48 обратного преобразования декодируют MB (106), используя либо коэффициенты уровня улучшения (108), либо комбинированные коэффициенты базового уровня и уровня улучшения (104).In this case, the coefficients for the
На фиг. 8 представлена блок-схема, иллюстрирующая процесс кодирования битового потока масштабируемых видеоданных для включения в него множества приведенных в качестве примера синтаксических элементов для поддержки достаточно простой видеомасштабируемости. Эти различные синтаксические элементы могут быть вставлены в компоненты NAL, несущие видеоданные уровня улучшения, для идентификации типа данных, переносимых в компоненте NAL, и обмена информацией, помогающей при декодировании видеоданных уровня улучшения. В общем случае синтаксические элементы с соответствующей семантикой могут быть созданы модулем 23 компонентов NAL и вставлены в компоненты NAL перед передачей от вещательного сервера 12 абоненту 16. Как один из примеров, модуль 23 компонентов NAL может установить параметр типа компонента NAL, например, nal_unit_type в компоненте NAL, равным выбранному значению (например, 30), чтобы указать, что компонент NAL является специализированным компонентом NAL, который может включать в себя видеоданные уровня улучшения. Другие синтаксические элементы и связанные с ними значения, как здесь описано, могут быть сформированы модулем 23 компонентов NAL для облегчения обработки и декодирования видеоданных уровня улучшения, переносимых в различных компонентах NAL. Один или несколько синтаксических элементов могут быть включены в первый компонент NAL, включающий видеоданные базового уровня, второй компонент NAL, включающий видеоданные уровня улучшения, или в оба, чтобы указать на наличие видеоданных уровня улучшения во втором компоненте NAL.In FIG. 8 is a flowchart illustrating a process for encoding a scalable video data bitstream to include a plurality of exemplary syntax elements to support fairly simple video scalability. These various syntax elements can be inserted into NAL components carrying video data of the enhancement layer to identify the type of data carried in the NAL component and exchange information to assist in decoding video data of the enhancement layer. In general, syntax elements with appropriate semantics can be created by the NAL component module 23 and inserted into the NAL components before being transmitted from the
Синтаксические элементы и семантика более подробно описываются ниже. На фиг. 8 показан процесс применительно к передаче видеоданных как базового уровня, так и уровня улучшения. В большинстве случаев будут передаваться оба вида видеоданных: базового уровня и уровня улучшения. Однако некоторые абонентские устройства 16 будут принимать только компоненты NAL, несущие видеоданные базового уровня, из-за расстояния до передающей башни 14, помех или других факторов. Однако с точки зрения вещательного сервера 12 видеоданные базового уровня и видеоданные уровня улучшения посылаются независимо от возможности некоторых абонентских устройств 16 принимать оба уровня.Syntax elements and semantics are described in more detail below. In FIG. Figure 8 shows the process in relation to the transmission of video data as a basic level, and the level of improvement. In most cases, both types of video data will be transmitted: the base level and the level of improvement. However, some subscriber units 16 will only receive NAL components that carry basic level video data due to distance to the transmitting
Как показано на фиг. 8, кодированные видеоданные базового уровня и кодированные видеоданные уровня улучшения от кодера 32 базового уровня и кодера 34 уровня улучшения соответственно, принимаются модулем 23 компонентов NAL и вставляются в соответствующие компоненты NAL как полезная нагрузка. В частности, модуль 23 компонентов NAL вставляет кодированные видеоданные базового уровня в первый компонент NAL (110) и вставляет кодированные видеоданные уровня улучшения во второй компонент NAL (112). Поддерживая видеодекодер 28, модуль 23 компонентов NAL вставляет в первый компонент NAL значение, указывающее, что тип компонента NAL для первого компонента NAL представляет собой полезную нагрузку RBSP, содержащую видеоданные базового уровня (114). Вдобавок, модуль 23 компонентов NAL вставляет во второй компонент NAL значение, указывающее, что типом расширенного компонента NAL для второго компонента NAL является RBSP, содержащая видеоданные уровня улучшения (116). Эти значения могут быть связаны с конкретными синтаксическими элементами. Таким путем модуль 27 компонентов NAL в абонентском устройстве 16 может различить компоненты NAL, содержащие видеоданные базового уровня, и видеоданные уровня улучшения, и обнаружить, когда видеодекодеру 28 следует инициировать обработку масштабируемых видеоданных. Битовый поток базового уровня может строго соответствовать точному формату H.264, в то время как битовый поток уровня улучшения может включать в себя расширенный синтаксический элемент битового потока, например, “extended_nal_unit_type” в заголовке компонента NAL. С точки зрения видеодекодера 28 синтаксический элемент в заголовке компонента NAL, например, “extension flag” указывает битовый поток уровня улучшения и запускает соответствующую обработку видеодекодером.As shown in FIG. 8, encoded base layer video data and encoded enhancement layer video data from the base layer encoder 32 and enhancement layer encoder 34, respectively, are received by the NAL component module 23 and inserted into the respective NAL components as a payload. In particular, the NAL component module 23 inserts the base layer encoded video data into the first NAL (110) component and inserts the enhancement layer encoded video data into the second NAL component (112). Supporting
Если данные уровня улучшения включают в себя (I) данные с внутрикадровым кодированием (118), то модуль 23 компонентов NAL вставляет значение синтаксического элемента во второй компонент NAL, чтобы указать наличие внутренних данных (120) в данных уровня улучшения. Таким путем модуль 27 компонентов NAL может послать в видеодекодер 28 информацию, указывающую, что необходима внутренняя (I) обработка видеоданных уровня улучшения во втором компоненте NAL, в предположении, что второй компонент NAL надежно принят абонентским устройством 16. В любом случае, включает ли уровень улучшения в себя данные с внутрикадровым кодированием или нет (118), модуль 23 компонентов NAL также вставляет значение синтаксического элемента во второй компонент NAL, чтобы указать, следует ли выполнить добавление видеоданных базового уровня к видеоданным уровня улучшения в пиксельной области или области преобразования (122), в зависимости от того, какая область задана кодером 34 уровня улучшения.If the enhancement layer data includes (I) intra-frame encoded data (118), then the NAL component module 23 inserts a syntax element value into the second NAL component to indicate the presence of internal data (120) in the enhancement layer data. In this way, the NAL component module 27 may send information to the
Если в уровне улучшения присутствуют остаточные данные (124), то модуль 23 компонентов NAL вставляет значение во второй компонент NAL, чтобы указать на присутствие остаточной информации в уровне улучшения (126). В любом случае, присутствуют ли остаточные данные или нет, модуль 23 компонентов NAL также вставляет значение во второй компонент NAL, чтобы указать объем набора параметров, переносимых во втором компоненте NAL (128). Как далее показано на фиг. 8, модуль 23 компонентов NAL также вставляет значение во второй компонент NAL, то есть компонент NAL, несущий видеоданные уровня улучшения, чтобы идентифицировать блоки с внутрикадровым кодированием, например, макроблоки (MB), имеющие ненулевые коэффициенты, превышающие единицу (130).If residual data (124) is present in the enhancement layer, then the NAL component module 23 inserts a value into the second NAL component to indicate the presence of residual information in the enhancement layer (126). In any case, whether residual data is present or not, the NAL component module 23 also inserts a value into the second NAL component to indicate the size of the set of parameters carried in the second NAL component (128). As further shown in FIG. 8, the NAL component module 23 also inserts a value into the second NAL component, that is, the NAL component carrying enhancement level video data to identify blocks with intraframe coding, for example, macroblocks (MB) having non-zero coefficients greater than one (130).
Вдобавок модуль 23 компонентов NAL вставляет значение во второй компонент NAL, чтобы указать кодированные блочные шаблоны (CBP) для блоков с внутрикадровым кодированием в видеоданных уровня улучшения, переносимых вторым компонентом NAL (132). Идентификация блоков с внутрикадровым кодированием с ненулевыми коэффициентами, превышающими единицу, и идентификация шаблонов CBP для блочных шаблонов с межкадровым кодированием помогает видеодекодеру 28 в абонентском устройстве 16 при выполнении масштабируемого видеодекодирования. В частности, модуль 27 компонентов NAL обнаруживает различные синтаксические элементы и подает команды в энтропийный декодер 40 и объединитель 38 для эффективной обработки видеоданных базового уровня и уровня улучшения в целях их декодирования.In addition, the NAL component module 23 inserts a value into the second NAL component to indicate coded block patterns (CBP) for blocks with intraframe coding in the enhancement layer video data carried by the second NAL component (132). The identification of blocks with intraframe coding with nonzero coefficients greater than one and the identification of CBP patterns for block patterns with interframe coding helps the
Например, наличие данных уровня улучшения в компоненте NAL может быть указано синтаксическим элементом “nal_unit_type”, который указывает специализированный компонент NAL, для которого задан конкретный процесс декодирования. Значение nal_unit_type в незаданном диапазоне стандарта H.264, например, значение 30, можно использовать для указания на то, что компонент NAL является специализированным компонентом NAL. Синтаксический элемент “extension_flag” в заголовке компонента NAL указывает, что специализированный компонент NAL включает в себя расширенную RBSP компонента NAL. Следовательно, nal_unit_type и extension_flag вместе могут указывать, включает ли компонент NAL в себя данные уровня улучшения. Синтаксический элемент “extended_nal_unit_type” указывает конкретный тип данных уровня улучшения, содержащихся в компоненте NAL.For example, the presence of enhancement level data in a NAL component may be indicated by the nal_unit_type syntax element, which indicates the specialized NAL component for which a specific decoding process is specified. A nal_unit_type value in an undefined range of the H.264 standard, for example, a value of 30, can be used to indicate that the NAL component is a specialized NAL component. The syntax element “extension_flag” in the header of the NAL component indicates that the specialized NAL component includes the enhanced RBSP of the NAL component. Therefore, nal_unit_type and extension_flag together can indicate whether the NAL component includes enhancement level data. The syntax element “extended_nal_unit_type” indicates the particular type of enhancement layer data contained in the NAL component.
Указание о том, следует ли видеодекодеру 28 использовать добавление в пиксельной области или области преобразования, может быть показано синтаксическим элементом “decoding_mode_flag” в заголовке слоя улучшения “enh_slice_header”. Указание о том, имеются ли данные с внутрикадровым кодированием в уровне улучшения, может быть обеспечено синтаксическим элементом “refine_ intra_mb_flag”. Указание о блоках с внутрикадровым кодированием, имеющих ненулевые коэффициенты, и внутреннем шаблоне CBP может быть показано синтаксическими элементами, такими как “enh_intra16×16_macroblock_cbp()” для MB 16×16 с внутрикадровым кодированием в уровне макроблоков уровня улучшения (enh_macroblock_layer) и “coded_block_pattern” для режима с внутрикадровым кодированием блоков 4×4 в enh_macroblock_layer. Шаблон CBP с внутрикадровым кодированием может быть указан синтаксическим элементом “enh_coded_block_pattern” в enh_macroblock_layer. Конкретные наименования синтаксических элементов, хотя они были приведены в иллюстративных целях, могут подвергаться изменениям. Соответственно эти наименования не следует рассматривать как ограничение функций и указаний, связанных с упомянутыми синтаксическими элементами.An indication of whether
На фиг. 9 представлена блок-схема, иллюстрирующая процесс декодирования масштабируемого битового видеопотока для обработки множества различных приведенных в качестве примера синтаксических элементов для поддержки достаточно простой видеомасштабируемости. Процесс декодирования, показанный на фиг. 9, в общем случае является обратным по отношению к процессу кодирования, показанному на фиг. 8, в том смысле, что он выдвигает на первый план обработку различных синтаксических элементов в полученном компоненте NAL уровня улучшения. Как показано на фиг. 9, после приема компонента NAL приемником/демодулятором 26 (134) модуль 27 компонентов NAL определяет, включает ли компонент NAL в себя значение синтаксического элемента, указывающее, что компонент NAL содержит видеоданные уровня улучшения (136). Если нет, то декодер 28 использует только обработку видеоданных базового уровня (138). Однако в том случае, если тип компонента NAL указывает на данные уровня улучшения, то модуль 27 компонентов NAL анализирует данный компонент NAL, чтобы обнаружить другие синтаксические элементы, связанные с видеоданными уровня улучшения. Дополнительные синтаксические элементы помогают декодеру 28 обеспечить эффективное и упорядоченное декодирование видеоданных как базового уровня, так и уровня улучшения.In FIG. 9 is a flowchart illustrating a process for decoding a scalable video bitstream to process a plurality of different exemplary syntax elements to support fairly simple video scalability. The decoding process shown in FIG. 9 is generally the reverse of the coding process shown in FIG. 8, in the sense that it highlights the processing of various syntax elements in the resulting enhancement level NAL component. As shown in FIG. 9, after receiving the NAL component by the receiver / demodulator 26 (134), the NAL component module 27 determines whether the NAL component includes a syntax element value indicating that the NAL component contains video data of the enhancement level (136). If not, then decoder 28 uses only basic level video processing (138). However, if the type of the NAL component indicates the data of the enhancement layer, then the NAL component module 27 analyzes the given NAL component to find other syntax elements related to the video data of the enhancement layer. Additional syntax elements help the
Например, модуль 27 компонентов NAL определяет, включают ли видеоданные уровня улучшения в компоненте NAL в себя данные с внутрикадровым кодированием (142), например, путем обнаружения подходящего значения синтаксического элемента. Вдобавок, модуль 27 компонентов NAL выполняет синтаксический анализ компонента NAL с целью обнаружения синтаксических элементов, указывающих, в какой области (пиксельной или преобразования) следует выполнить суммирование данных базового уровня и уровня улучшения (144), указано ли присутствие остаточных данных в уровне улучшения (146) и указан ли набор параметров и объем этого набора параметров (148). Модуль 27 компонентов NAL также обнаруживает синтаксические элементы, идентифицирующие блоки с внутрикадровым кодированием с ненулевыми коэффициентами, большими единицы, (150) в уровне улучшения, и синтаксические элементы, указывающие шаблоны CBP для блоков с межкадровым кодированием в видеоданных уровня улучшения (152). На основе определений, обеспеченных указанными синтаксическими элементами, модуль 27 компонентов NAL предоставляет видеодекодеру 28 соответствующие указания для их использования при декодировании видеоданных базового уровня и уровня улучшения (154).For example, the NAL component module 27 determines whether the video data of the enhancement level in the NAL component includes intra-frame encoded data (142), for example, by detecting a suitable syntax element value. In addition, the NAL component module 27 parses the NAL component to detect syntax elements indicating in which area (pixel or transform) the base level and enhancement level should be summed (144), whether the presence of residual data in the enhancement level is indicated (146 ) and whether the parameter set and the volume of this parameter set are indicated (148). The NAL component module 27 also detects syntax elements identifying blocks with intraframe coding with nonzero coefficients greater than unity (150) in the enhancement level, and syntax elements indicating CBP patterns for blocks with interframe coding in the video data of enhancement level (152). Based on the definitions provided by the specified syntax elements, the NAL component module 27 provides the
В примерах на фигурах 8 и 9 компоненты NAL уровня улучшения могут нести синтаксические элементы с множеством различных указаний уровня улучшения, помогающих видеодекодеру 28 при обработке компонента NAL. Например, эти разнообразные указания могут включать в себя указание о том, содержит ли компонент NAL видеоданные уровня улучшения с внутрикадровым кодированием, указание о том, следует ли декодеру использовать добавление видеоданных уровня улучшения к данным базового уровня в пиксельной области или области преобразования, и/или указание о том, включают ли в себя видеоданные уровня улучшения какие-либо остаточные данные, относящиеся к видеоданным базового уровня. Как дополнение к вышеприведенным примерам, компоненты NAL уровня улучшения также могут нести синтаксические элементы, указывающие, включает ли в себя компонент NAL параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения.In the examples of FIGS. 8 and 9, enhancement level NAL components can carry syntax elements with many different enhancement level indications to assist
Другие синтаксические элементы могут идентифицировать блоки в видеоданных уровня улучшения, содержащих ненулевые значения коэффициентов, указывать количество ненулевых коэффициентов в блоках с внутрикадровым кодированием в видеоданных уровня улучшения с величиной, превышающей единицу, и указывать кодированные блочные шаблоны для блоков с межкадровым кодированием в видеоданных уровня улучшения. Опять же, примеры, предложенные на фигурах 8 и 9, не следует рассматривать как ограничение. В компонентах NAL уровня улучшения может быть обеспечено много дополнительных синтаксических элементов и семантик, некоторые из которых обсуждаются ниже.Other syntax elements may identify blocks in video data of the enhancement layer containing non-zero coefficient values, indicate the number of non-zero coefficients in blocks with intraframe coding in video data of the enhancement level with a value greater than one, and indicate coded block patterns for blocks with interframe coding in video data of the enhancement level. Again, the examples proposed in figures 8 and 9 should not be construed as limiting. The NAL components of the enhancement layer can provide many additional syntax elements and semantics, some of which are discussed below.
Далее более подробно описываются примеры синтаксиса уровня улучшения с обсуждением применяемой семантики. Согласно некоторым аспектам, как обсуждалось выше, компоненты NAL могут быть использованы при кодировании и/или декодировании мультимедийных данных, включая в себя видеоданные базового уровня и видеоданные уровня улучшения. В указанных случаях общий синтаксис и структура компонентов NAL уровня улучшения могут быть такими же, как в стандарте H.264. Однако специалистам в данной области техники должно быть ясно, что можно использовать и другие блоки. В альтернативном варианте можно ввести новые значения типа компонента NAL (nal_unit_type), которые задают тип структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP), содержащейся в компоненте NAL уровня улучшения.The following describes in more detail examples of the syntax of the improvement level with a discussion of the applied semantics. According to some aspects, as discussed above, NAL components can be used in encoding and / or decoding multimedia data, including base layer video data and enhancement layer video data. In these cases, the general syntax and structure of the enhancement layer NAL components may be the same as in the H.264 standard. However, it will be apparent to those skilled in the art that other blocks may be used. Alternatively, you can enter new values for the NAL component type (nal_unit_type), which specify the data structure type of the raw byte serial payload (RBSP) contained in the enhancement level NAL component.
В общем, синтаксис уровня улучшения, описанный в этом изобретении, можно охарактеризовать семантикой с низкими непроизводительными издержками и невысокой сложностью, например, одноуровневым декодированием. Синтаксис макроблоков уровня улучшения можно охарактеризовать высокой эффективностью сжатия, причем этот синтаксис может задать синтаксические элементы для блочных шаблонов (CBP) 16×16 уровня улучшения с внутрикадровым кодированием, шаблоны CBP для макроблоков с межкадровым кодированием уровня улучшения и новое энтропийное декодирование, использующее кодирующие таблицы контекстно-адаптивного кодирования кодами переменной длины (CAVLC) для макроблоков MB уровня улучшения с внутрикадровым кодированием.In general, the enhancement level syntax described in this invention can be characterized by semantics with low overhead and low complexity, such as single-level decoding. The syntax of macroblocks of the enhancement level can be characterized by high compression efficiency, and this syntax can define syntax elements for block patterns (CBP) of 16 × 16 enhancement levels with intraframe coding, CBP patterns for macroblocks with interframe encoding of the enhancement level and a new entropy decoding using contextual coding tables -adaptive coding with variable length codes (CAVLC) for macroblocks MB level enhancement with intraframe coding.
При низких непроизводительных издержках синтаксис слоев и макроблоков (MB) задает связь слоя уровня улучшения с совмещенным слоем базового уровня. Режимы предсказания для макроблоков и векторы движения в синтаксисе базового уровня могут выражаться в синтаксисе базового уровня. Режимы MB для уровня улучшения можно получить из режимов MB для совмещенного базового уровня. Кодированный блочный шаблон (CBP) MB уровня улучшения можно декодировать двумя разными способами в зависимости от шаблона CBP для MB совмещенного базового уровня.At low overhead, the syntax of the layers and macroblocks (MB) defines the relationship between the layer of the enhancement layer and the combined layer of the base layer. Prediction modes for macroblocks and motion vectors in the base layer syntax can be expressed in the base layer syntax. MB modes for enhancement level can be obtained from MB modes for a combined base level. The Enhanced Encoder Block Level Pattern (CBP) MB can be decoded in two different ways, depending on the CBP pattern for the MB combined base layer.
При низкой сложности одноуровневое декодирование можно выполнить путем простого объединения операций для битовых потоков базового уровня и уровня улучшения, чтобы упростить декодер и снизить энергопотребление. В этом случае коэффициенты базового уровня могут быть преобразованы к масштабу уровня улучшения, например, путем умножения на масштабный коэффициент, которое можно выполнить путем разрядного сдвига на основе разности параметров квантования (QP) между базовым уровнем и уровнем улучшения.With low complexity, single-level decoding can be performed by simply combining operations for base-level bitstreams and an enhancement level to simplify the decoder and reduce power consumption. In this case, the coefficients of the base level can be converted to the scale of the level of improvement, for example, by multiplying by the scale factor, which can be performed by bit shift based on the difference of the quantization parameters (QP) between the base level and the level of improvement.
Также для низкой сложности может быть предусмотрен синтаксический элемент refine_intra_mb_flag, указывающий наличие MB с внутрикадровым кодированием в слое P уровня улучшения. По умолчанию может быть установлено значение refine_ intra_mb_flag==0, разрешающее одноуровневое декодирование. В этом случае нет уточнений для макроблоков MB с внутрикадровым кодированием на уровне улучшения. Это не будет неблагоприятным образом влиять на визуальное качество, даже если макроблоки MB с внутрикадровым кодированием кодируются с качеством базового уровня. В частности, MB с внутрикадровым кодированием обычно соответствуют вновь появившейся визуальной информации, а человеческий глаз не чувствителен к ней в начале. Однако для расширения еще может быть предусмотрено значение refine_intra_mb_flag=1.Also, for low complexity, a refine_intra_mb_flag syntax element indicating the presence of MB with intra-frame coding in layer P of the enhancement layer may be provided. By default, refine_ intra_mb_flag == 0 can be set to enable single-level decoding. In this case, there is no refinement for macroblock MB with intra-frame coding at the enhancement level. This will not adversely affect visual quality, even if MB macroblocks with intraframe coding are encoded with basic layer quality. In particular, MBs with intraframe coding usually correspond to newly appeared visual information, and the human eye is not sensitive to it at the beginning. However, the refine_intra_mb_flag = 1 value may still be provided for the extension.
При высокой эффективности сжатия шаблон CBP для MB 16×16 с внутрикадровым кодированием уровня улучшения может быть обеспечен таким образом, что часть коэффициентов с внутрикадровым кодированием для макроблоков 16×16 уровня улучшения определяется на основе режимов предсказания яркости базового уровня для макроблоков 16×16 с внутрикадровым кодированием. CBP MB 16×16 с внутрикадровым кодированием уровня улучшения декодируются двумя различными способами в зависимости от CBP макроблока совмещенного базового уровня. В случае 1, когда не все коэффициенты АС базового уровня являются нулевыми, CBP для макроблоков 16×16 уровня улучшения с внутрикадровым кодированием декодируются согласно стандарту H.264. Может быть предусмотрен синтаксический элемент (например, BaseLayerAcCoefficientsAllZero) в качестве флага, который указывает, все ли коэффициенты АС соответствующего макроблока в слое базового уровня равны нулю. В случае 2, когда все коэффициенты AC базового уровня нулевые, для передачи CBP макроблоков 16×16 с внутрикадровым кодированием может быть обеспечен новый подход. А именно, MB уровня улучшения разбивается на 4 подраздела MB в зависимости от режимов предсказания для макроблоков яркости 16×16 с внутрикадровым кодированием базового уровня.With high compression efficiency, a CBP pattern for 16 × 16 MB with intra-frame enhancement level coding can be provided so that a portion of the intra-frame coded coefficients for the 16 × 16 enhancement level macroblocks is determined based on base level brightness prediction modes for 16 × 16 macroblock with intra-frame encoding. The 16 × 16 MB CBP with intra-frame coding of the enhancement layer is decoded in two different ways depending on the CBP of the macroblock of the combined base layer. In
Может быть предусмотрен CBP для МВ уровня улучшения с внутрикадровым кодированием для задания того, какой из шести блоков 8х8 яркости и цветности содержит ненулевые коэффициенты. CBP для MB уровня улучшения декодируются двумя способами в зависимости от CBP для MB совмещенного базового уровня. В случае 1, когда CBP для MB совмещенного базового уровня (base_coded_block_pattern или base_cbp) равен нулю, CBP для MB уровня улучшения (enh_coded_block_pattern или enh_cbp) декодируется согласно стандарту H.264. В случае 2, когда base_coded_block_pattern не равен нулю, можно обеспечить новый подход для выражения enh_coded_block_pattern. Для блока 8х8 базового уровня с ненулевыми коэффициентами один бит используют для указания о том, имеет ли блок 8х8 совмещенного уровня улучшения ненулевые коэффициенты. Состояние других блоков 8х8 представляют с помощью кодирования с переменной длиной слова (VLC).CBP can be provided for the MV level of enhancement with intra-frame coding to specify which of the six 8x8 luma and chroma blocks contains non-zero coefficients. CBPs for MB enhancement layer are decoded in two ways depending on CBP for MB combined base layer. In
В качестве дальнейшего уточнения для макроблоков MB уровня улучшения с внутрикадровым кодированием может быть предусмотрено новое энтропийное декодирование (таблицы CAVLC), для представления количества ненулевых коэффициентов в MB уровня улучшения с внутрикадровым кодированием. Синтаксический элемент enh_coeff_token 0(16 может представлять количество ненулевых коэффициентов от 0 до 16, при условии, что нет коэффициентов, превышающих 1. Синтаксический элемент enh_coeff_token 17 представляет, что есть, по меньшей мере, один ненулевой коэффициент, превышающий по величине 1. В этом случае, (enh_coeff_token 17) для декодирования всего количества ненулевых коэффициентов и коэффициентов с единицей на конце используется стандартный подход. enh_coeff_token (0(16) декодируют, используя одну из восьми таблиц VLC, исходя из контекста.As a further refinement, new entropy decoding (CAVLC tables) may be provided for macroblocks of the MB level of enhancement with intraframe coding to represent the number of non-zero coefficients in the MB of the enhancement level with intraframe coding. The syntax element enh_coeff_token 0 (16 may represent the number of non-zero coefficients from 0 to 16, provided that there are no coefficients greater than 1. The
В этом описании различные сокращения должны интерпретироваться так, как это определено в пункте 4 стандарта H.264. Правила можно интерпретировать, как это задано в пункте 5 стандарта H.264, а форматы исходных, кодированных, декодированных и выходных данных, процессы сканирования и соседние взаимосвязи можно интерпретировать, как это задано в пункте 6 стандарта H.264.In this description, various abbreviations shall be interpreted as defined in clause 4 of the H.264 standard. Rules can be interpreted as specified in clause 5 of the H.264 standard, and formats of source, encoded, decoded and output data, scanning processes and neighboring relationships can be interpreted as specified in clause 6 of the H.264 standard.
Вдобавок, исходя из целей данного описания, можно применять следующие определения. Термин «базовый уровень» в общем случае относится к битовому потоку, содержащему кодированные видеоданные, которые представляют первый уровень пространственно-временной-SNR масштабируемости, определенной этим описанием. Битовый поток базового уровня можно декодировать любым подходящим декодером с расширенным профилем стандарта H.264. Синтаксический элемент BaseLayerAcCoefficientsAllZero является переменной, которая, будучи не равной 0, указывает, что все коэффициенты AC совмещенного макроблока в базовом уровне являются нулевыми.In addition, based on the purposes of this description, the following definitions can be applied. The term “baseline” generally refers to a bitstream containing encoded video data that represents the first level of spatio-temporal-SNR scalability defined by this description. The basic layer bitstream can be decoded by any suitable decoder with an extended H.264 profile. The syntax element BaseLayerAcCoefficientsAllZero is a variable, which, being not equal to 0, indicates that all AC coefficients of the combined macroblock in the base level are zero.
Синтаксический элемент BaseLayerIntra16x16PredMode имеет значения 0, 1, 2 или 3, которые соответствуют Intra_16×16_Vertical, Intra_16×16_Horizontal, Intra_16×16_DC и Intra_16×16_Planar соответственно. Эта переменная равна переменной Intra16x16PredMode, как это задано в пункте 8.3.3 стандарта H.264. Синтаксический элемент BaseLayerMBType является переменной, которая указывает тип совмещенного макроблока в базовом уровне. Эта переменная может быть равна синтаксическому элементу mb_type, заданному в пункте 7.3.5 стандарта H.264.The syntax element BaseLayerIntra16x16PredMode has
Термин «слой базового уровня» (или base_layer_slice) относится к слою, который кодируется согласно пункту 7.3.3 стандарта H.264 и который имеет соответствующий слой уровня улучшения, заданный в этом описании с тем же порядковым номером изображения, как это определено в пункте 8.2.1 стандарта H.264. Элемент BaseLayerSliceType (или base_layer_slice_type) является переменной, которая указывает тип совмещенного слоя в базовом уровне. Эта переменная равна синтаксическому элементу slice_type, как задано в пункте 7.3.3 стандарта H.264.The term “base layer” (or base_layer_slice) refers to a layer that is encoded according to clause 7.3.3 of the H.264 standard and which has a corresponding enhancement layer layer specified in this description with the same image serial number as defined in clause 8.2 .1 H.264 standard. The BaseLayerSliceType (or base_layer_slice_type) element is a variable that indicates the type of the co-layer in the base layer. This variable is equal to the syntax element slice_type, as specified in clause 7.3.3 of the H.264 standard.
Термин «уровень улучшения» в общем случае относится к битовому потоку, содержащему кодированные видеоданные, которые представляют второй уровень пространственно-временной-SNR масштабируемости. Битовый поток уровня улучшения можно декодировать только вместе с базовым уровнем, то есть он содержит ссылки на декодированные видеоданные базового уровня, которые используются для создания конечных декодированных видеоданных.The term “enhancement level” generally refers to a bitstream containing encoded video data that represents a second level of spatio-temporal-SNR scalability. The enhancement layer bitstream can only be decoded together with the base layer, that is, it contains links to decoded base layer video data that are used to create the final decoded video data.
Четвертной макроблок относится к одной четверти отсчетов макроблока, которые являются результатом разбиения макроблока на разделы. Это определение аналогично определению субмакроблока в стандарте H.264 за исключением того, что четвертные макроблоки могут принимать неквадратную (например, прямоугольную) форму. Термин «раздел четвертного макроблока» относится к блоку отсчетов яркости и двум соответствующим блокам отсчетов цветности, являющихся результатом разбиения четвертного макроблока для межкадрового предсказания или внутрикадрового уточнения. Это определение может быть идентично определению раздела субмакроблока в стандарте H.264 за исключением того, что в данном описании введен термин «внутрикадровый».A quarter macroblock refers to one quarter of the macroblock samples that are the result of partitioning the macroblock. This definition is similar to the definition of a sub-macroblock in the H.264 standard, except that quarter macroblocks can take a non-square (e.g., rectangular) shape. The term “quarter macroblock section” refers to a block of luminance samples and two corresponding blocks of chroma samples resulting from a split of a quarter macroblock for inter-frame prediction or intra-frame refinement. This definition can be identical to the definition of a sub-macroblock section in the H.264 standard, except that the term “intraframe” is introduced in this description.
Термин «раздел макроблока» относится к блоку отсчетов яркости и двум соответствующим блокам отсчетов цветности, являющихся результатом разбиения макроблока для межкадрового предсказания или внутрикадрового уточнения. Это определение идентично определению в стандарте H.264 за исключением того, что в данном описании введен термин «внутрикадровый». Кроме того, формы разделов макроблоков, определенных в этом описании, могут отличаться от определенных в стандарте H.264.The term “macroblock section” refers to a block of luma samples and two corresponding blocks of chroma samples resulting from a macroblock partition for inter-frame prediction or intra-frame refinement. This definition is identical to the definition in the H.264 standard except that the term "intraframe" is introduced in this description. In addition, the shapes of the macroblock partitions defined in this description may differ from those defined in the H.264 standard.
Синтаксис уровня улучшенияEnhancement level syntax
Синтаксис RBSPRBSP Syntax
Ниже в таблице 1 представлены примеры типов RBSP для достаточно простой видеомасштабируемости. Table 1 below provides examples of RBSP types for fairly simple video scalability.
Необработанная байтовая последовательная нагрузка и хвостовые биты RBSPTable 1
Raw Byte Serial Load and RBSP Tail Bits
Как было указано выше, синтаксис RBSP уровня улучшения может быть такой же, как в указанном стандарте за исключением того, что набор параметров последовательности и набор параметров изображения могут посылаться на базовом уровне. Например, синтаксис RBSP набора параметров последовательности, синтаксис RBSP набора параметров изображения и RBSP раздела данных слоя, закодированный в уровне улучшения, могут иметь синтаксис, заданный в пункте 7 стандарта ITU-T H.264.As indicated above, the syntax of the RBSP enhancement layer may be the same as in the specified standard except that the sequence parameter set and the image parameter set can be sent at a basic level. For example, the RBSP syntax of the sequence parameter set, the RBSP syntax of the image parameter set, and the RBSP of the layer data section encoded in the enhancement layer may have the syntax specified in clause 7 of ITU-T H.264.
В различных таблицах в данном описании все синтаксические элементы могут иметь подходящий синтаксис и семантику, указанные в стандарте ITU-T H.264, в пределах указанных синтаксических элементов, описанных в стандарте H.264, если не задано иное. В общем случае синтаксические элементы и семантика, не описанные в стандарте H.264, описаны в данном изобретении.In the various tables in this specification, all syntax elements may have the appropriate syntax and semantics specified in the ITU-T H.264 standard, within the specified syntax elements described in the H.264 standard, unless otherwise specified. In general, syntax elements and semantics not described in the H.264 standard are described in this invention.
В различных таблицах в данном описании в столбце с отметкой «С» перечислены категории синтаксических элементов, которые могут быть представлены в компоненте NAL, которые могут соответствовать категориям в стандарте H.264. Вдобавок, могут присутствовать синтаксические элементы с синтаксической категорией «Все», как определено синтаксисом и семантикой структуры данных RBSP.In the various tables in this description, a column marked “C” lists the categories of syntax elements that can be represented in the NAL component that can correspond to the categories in the H.264 standard. In addition, syntax elements with the syntax category “All” may be present, as defined by the syntax and semantics of the RBSP data structure.
Наличие или отсутствие любых синтаксических элементов конкретной перечисленной категории определяется исходя из синтаксиса и семантики соответствующей структуры данных RBSP. Столбец дескриптора задает дескриптор, например, f(n), u(n), b(n), ue(v), se(v), me(v), ce(v), которые могут в общем случае соответствовать дескрипторам, заданным в стандарте H.264, если в данном описании не задано иное.The presence or absence of any syntactic elements of a specific listed category is determined based on the syntax and semantics of the corresponding RBSP data structure. The descriptor column defines the descriptor, for example, f (n), u (n), b (n), ue (v), se (v), me (v), ce (v), which can generally correspond to descriptors, defined in the H.264 standard, unless otherwise specified in this description.
Расширенный синтаксис компонентов NALAdvanced NAL Component Syntax
Синтаксис для компонентов NAL применительно к расширениям для видеомасштабируемости согласно одному аспекту этого изобретения может быть, в общем, задан, как это показано ниже в таблице 2. The syntax for NAL components in relation to extensions for video scalability according to one aspect of this invention can be generally defined, as shown in Table 2 below.
Синтаксис компонентов NAL для расширенийtable 2
NAL Component Syntax for Extensions
В вышеприведенной таблице 2 значение nal_unit_type устанавливается равным 30, чтобы указать конкретное расширение для обработки уровня улучшения. Когда nal_unit_type установлен равным выбранному значению, например, 30, компонент NAL указывает, что он несет данные уровня улучшения, запускающие обработку уровня улучшения декодером 28. Значение nal_unit_type обеспечивает уникальный выделенный nal_unit_type для поддержки обработки дополнительных модификаций синтаксиса битового потока уровня улучшения вдобавок к битовому потоку стандарта H.264. В качестве примера nal_unit_type может быть присвоено значение 30, чтобы показать, что компонент NAL включает в себя данные уровня улучшения и запустить обработку дополнительных синтаксических элементов, которые могут присутствовать в компоненте NAL, таких как, например, extension_flag и extended_nal_unit_type. Например, синтаксический элемент extended_nal_unit_type устанавливают равным некоторому значению, задающему тип расширения. В частности, extended_nal_unit_type может указать тип компонента NAL уровня улучшения. Элемент extended_nal_unit_type может указать тип структуры данных RBSP для данных уровня улучшения в компоненте NAL. Для В-слоев синтаксис заголовков слоев может соответствовать стандарту H.264. Далее в этом описании будет подробно описана применяемая семантика.In table 2 above, nal_unit_type is set to 30 to indicate a specific extension for processing the enhancement level. When nal_unit_type is set to the selected value, for example, 30, the NAL component indicates that it carries enhancement level data that starts processing the enhancement level by
Синтаксис заголовка слояLayer header syntax
Для I-слоев и P-слоев на уровне улучшения синтаксис заголовка слоя может быть определен, как это показано ниже в таблице 3А. Другие параметры для слоя уровня улучшения, включая информацию опорного кадра, можно получить из совмещенного слоя базового уровня. For I-layers and P-layers at the enhancement level, the syntax of the layer header can be defined, as shown in Table 3A below. Other parameters for the enhancement layer layer, including reference frame information, can be obtained from the superimposed layer of the base layer.
Синтаксис заголовка слояTable 3A
Layer header syntax
Элемент base_layer_slice может относиться к слою, закодированному, например, согласно пункту 7.3.3 стандарта H.264, который имеет соответствующий слой уровня улучшения, закодированный согласно таблице 2 с тем же порядковым номером, как определено, например, в пункте 8.2.1 стандарта Н.264. Элемент base_layer_slice_type относится к типу слоя базового уровня, например, как это задано в пункте 7.3 стандарта Н.264. Другие параметры для слоя уровня улучшения, включая информацию опорного кадра, получают из слоя совмещенного базового слоя.The base_layer_slice element may refer to a layer encoded, for example, according to clause 7.3.3 of the H.264 standard, which has a corresponding layer of the enhancement level encoded according to table 2 with the same serial number as defined, for example, in clause 8.2.1 of standard H .264. The base_layer_slice_type element refers to the type of the base layer layer, for example, as specified in clause 7.3 of the H.264 standard. Other parameters for the enhancement layer, including reference frame information, are obtained from the combined base layer.
В синтаксисе заголовка слоя параметр refine_intra_MB указывает, включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием. Если refine_intra_MB равен 0, то внутрикадровое кодирование существует только на базовом уровне. Соответственно, внутрикадровое декодирование уровня улучшения может быть опущено. Если refine_intra_MB равен 1, то видеоданные с внутрикадровым кодированием присутствуют как на базовом уровне, так и на уровне улучшения. В этом случае могут обрабатываться данные с внутрикадровым кодированием уровня улучшения для повышения качества данных с внутрикадровым кодированием базового уровня.In the layer header syntax, the refine_intra_MB parameter indicates whether the enhancement level video data in the NAL component includes intra-frame encoded video data. If refine_intra_MB is 0, then intraframe coding exists only at the basic level. Accordingly, intra-frame decoding of the enhancement layer may be omitted. If refine_intra_MB is 1, then video data with intraframe coding is present both at the base level and at the enhancement level. In this case, data with intra-frame encoding of the enhancement layer can be processed to improve the quality of data with intra-frame encoding of the base layer.
Синтаксис данных слояLayer Data Syntax
Примерный синтаксис данных слоя может быть обеспечен, как это задано в приведенной ниже таблице 3В. An exemplary syntax for the layer data may be provided as specified in Table 3B below.
Синтаксис данных слояTable 3B
Layer Data Syntax
(BaseLayerSliceType !=I && BaseLayerMbType!=I)) )if (BaseLayerMbType! = SKIP && (refine_intra_mb_flag ||
(BaseLayerSliceType! = I && BaseLayerMbType! = I)))
Синтаксис уровня макроблоковMacroblock Level Syntax
Примерный синтаксис для макроблоков уровня улучшения может быть обеспечен, как это показано в приведенной ниже таблице 4. Exemplary syntax for macroblocks of the enhancement layer can be provided, as shown in Table 4 below.
Синтаксис MB уровня улучшенияTable 4
Syntax MB Improvement Level
{if (EnhCodedBlockParternLuma> 0 || EnhCodedBlockPatternChroma> 0)
{
/* Standard compliant syntax as specified in clause 7.3.5.3 [1] */residual ()
/ * Standard compliant syntax as specified in clause 7.3.5.3 [1] * /
Другие параметры для уровня макроблоков расширения получают из уровня макроблоков базового уровня для соответствующего макроблока в соответствующем параметре base_layer_slice.Other parameters for the macroblock extension level are obtained from the macroblock level of the base level for the corresponding macroblock in the corresponding base_layer_slice parameter.
В приведенной выше таблице 4 синтаксический элемент enh_coded_block_pattern в общем случае указывает, включают ли видеоданные уровня улучшения в MB уровня улучшения в себя остаточные данные, относящиеся к данным базового уровня. Другие параметры для уровня макроблоков расширения получают из уровня макроблоков базового уровня для соответствующего макроблока в соответствующем параметре base_layer_slice.In Table 4 above, the syntax element enh_coded_block_pattern generally indicates whether the enhancement layer video data in the enhancement layer MB includes residual data related to the base layer data. Other parameters for the macroblock extension level are obtained from the macroblock level of the base level for the corresponding macroblock in the corresponding base_layer_slice parameter.
Синтаксис кодированного блочного шаблона (CBP) для макроблоков с внутрикадровым кодированиемCoded Block Pattern (CBP) Syntax for Intraframe Encoding Macroblocks
Для макроблоков 4х4 с внутрикадровым кодированием синтаксис CBP может быть таким же, как в стандарте Н.264, например, как в пункте 7 стандарта Н.264. Для макроблоков 16х16 с внутрикадровым кодированием может быть обеспечен новый синтаксис для кодирования информации о CBP, как это показано в таблице 5, приведенной ниже. For 4x4 macroblocks with intraframe coding, the CBP syntax may be the same as in the H.264 standard, for example, as in clause 7 of the H.264 standard. For intra-frame 16x16 macroblocks, a new syntax can be provided for encoding CBP information, as shown in Table 5 below.
Синтаксис CBP макроблоков 16×16 с внутрикадровым кодированиемTable 5
Syntax CBP macroblock 16 × 16 with intraframe coding
[mbPartldx] [qtrMbPartldxlqtr_mb_intral_6 × 16_luma_part_flag
[mbPartldx] [qtrMbPartldxl
Синтаксис остаточных данныхResidual Data Syntax
Синтаксис для остаточных MB с внутрикадровым кодированием в уровне улучшения, то есть синтаксис остаточных данных уровня улучшения, может быть таким, как показано ниже в таблице 6А. Для остаточных MB с внутрикадровым кодированием синтаксис может соответствовать стандарту Н.264. The syntax for the residual MBs with intraframe coding in the enhancement layer, that is, the syntax of the residual enhancement layer data, may be as shown in Table 6A below. For residual MBs with intraframe coding, the syntax may conform to the H.264 standard.
Синтаксис остаточных данных MB с внутрикадровым кодированиемTable 6A
Residual MB Syntax with Intraframe Encoding
BaseLayerAcCoefficientsAllZero){if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16 &&
BaseLayerAcCoefficientsAllZero) {
qtr_mb_intra16×16_luma_part_flag[mbPartIdx][qtrMbPartIdx] )if (mb_intral6xl6_luma_part_flag [mbPartIdx] &&
qtr_mb_intra16 × 16_luma_part_flag [mbPartIdx] [qtrMbPartIdx])
x], 15)enh_residual_block_cavlc (Intra16x16ACLevel [mbPartldx * 4 + qtrMbPartId
x], 15)
Intra16×16ACLevel[mbPartldx*4+qtrMbPartldx], 15)enh residual block cavlc (
Intra16 × 16ACLevel [mbPartldx * 4 + qtrMbPartldx], 15)
LumaLevel[ mbPartldx* 4+qtrMbPartldx], 16)enh residual block cavlc (
LumaLevel [mbPartldx * 4 + qtrMbPartldx], 16)
*/if (EnhCodedBlockPatternChroma & 3) / * chroma DC residual present
* /
/* chroma AC residual present */if (EnhCodedBlockPatternChroma & 2)
/ * chroma AC residual present * /
Другие параметры для остатка уровня улучшения получают из остатка базового уровня для совмещенного макроблока в соответствующем слое базового уровня.Other parameters for the remainder of the enhancement layer are obtained from the remainder of the baseline for the combined macroblock in the corresponding layer of the baseline.
Синтаксис CAVLC остаточных блоковCAVLC Syntax Residual Blocks
Синтаксис для контекстно-адаптивного кодирования кодами переменной длины (CAVLC) остаточных блоков может быть таким, как он задан в таблице 6B, приведенной ниже.The syntax for context adaptive variable-length coding (CAVLC) coding of residual blocks may be as defined in Table 6B below.
Синтаксис CAVLC остаточных блоковTable 6B
CAVLC Syntax Residual Blocks
mb_intra16×16_luma_flag) || (MbPartPredMode(BaseLayerMbType, 0)==
Intra_4×4 && CodedBlockPatternLuma) {if ((MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16 &&
mb_intra16 × 16_luma_flag) || (MbPartPredMode (BaseLayerMbType, 0) ==
Intra_4 × 4 && CodedBlockPatternLuma) {
Другие параметры для CAVLC остаточных блоков уровня улучшения можно получить из CAVLC остаточных блоков базового уровня для совмещенного макроблока в соответствующем слое базового уровня.Other parameters for the CAVLC residual blocks of the enhancement layer can be obtained from the CAVLC residual blocks of the base layer for the combined macroblock in the corresponding layer of the base layer.
Семантика уровня улучшенияImprovement Level Semantics
Далее описывается семантика уровня улучшения. Семантика компонентов NAL уровня улучшения по существу может быть такой же, как синтаксис компонентов NAL, заданный стандартом Н.264 для синтаксических элементов, определенных в стандарте Н.264. Новые синтаксические элементы, не описанные в стандарте Н.264, имеют используемую семантику, описанную в этом изобретении. Семантика RBSP уровня улучшения и хвостовых бит RBSP может быть такой же, как в стандарте Н.264.The following describes the semantics of the improvement level. The semantics of the enhancement layer NAL components may essentially be the same as the syntax of the NAL components defined by the H.264 standard for the syntax elements defined in the H.264 standard. New syntax elements not described in the H.264 standard have the semantics used described in this invention. The semantics of the RBSP enhancement layer and RBSP tail bits may be the same as in the H.264 standard.
Семантика расширенных компонентов NALSemantics of Advanced NAL Components
Обратимся к приведенной выше таблице 2, где параметр Forbidden_zero_bit задан как в пункте 7 спецификации стандарта Н.264. Значение nal_ref_idc, не равное 0, определяет, что контент расширенного компонента NAL содержит набор параметров последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения. Значение nal_ref_idc, равное 0, для расширенного компонента NAL, содержащего слой или раздел данных слоя, указывает, что слой или раздел данных слоя является частью не опорного изображения. Значение nal_ref_idc не будет равно 0 для набора параметров последовательности или компонентов NAL набора параметров изображения.We turn to the table 2 above, where the Forbidden_zero_bit parameter is specified as in clause 7 of the specification of the H.264 standard. A value of nal_ref_idc, not equal to 0, determines that the content of the extended NAL component contains a set of sequence parameters, a set of image parameters, a reference image layer, or a data section of the reference image layer. A nal_ref_idc value of 0 for an extended NAL component containing a layer or layer data section indicates that the layer or layer data section is part of a non-reference image. The nal_ref_idc value will not be 0 for the sequence parameter set or NAL components of the image parameter set.
Когда nal_ref_idc равен 0 для одного слоя или расширенного компонента NAL раздела данных слоя для конкретного изображения, он будет равен 0 для всех слоев и расширенных компонентов NAL разделов данных слоев данного изображения. Значение nal_ref_idc не будет равно 0 для расширенных компонентов NAL c мгновенным обновлением декодирования (IDR), то есть компонентов NAL с extended_nal_unit_type, равным 5, как указано в таблице 7, приведенной ниже. Вдобавок, nal_ref_idc будет равен 0 для всех расширенных компонентов NAL, имеющих extended_nal_unit_type, равный 6, 9, 10, 11 или 12, как указано в приведенной ниже таблице 7.When nal_ref_idc is 0 for one layer or an extended NAL component of a layer data section of a particular image, it will be 0 for all layers and extended NAL components of a layer data section of a given image. The nal_ref_idc value will not be 0 for extended NAL components with instant decoding update (IDR), that is, NAL components with extended_nal_unit_type equal to 5, as shown in table 7 below. In addition, nal_ref_idc will be 0 for all extended NAL components having extended_nal_unit_type equal to 6, 9, 10, 11, or 12, as shown in Table 7 below.
Значение nal_unit_type равно 30 в диапазоне «не задано» стандарта Н.264, чтобы указать специализированный компонент NAL, процесс декодирования для которого задан в данном описании. Значение nal_unit_type не равно 30, как это определено в пункте 7 стандарта Н.264.The nal_unit_type value is 30 in the “not defined” range of the H.264 standard to indicate the specialized NAL component for which the decoding process is specified in this description. The nal_unit_type value is not 30, as defined in clause 7 of the H.264 standard.
Значение extension_flag представляет собой одноразрядный флаг. Когда значение extension_flag равно 0, оно определяет, что следующие 6 бит зарезервированы. Когда extension_flag равнее 1, это определяет, что данный компонент NAL содержит RBSP расширенного компонента NAL.The extension_flag value is a one-bit flag. When the extension_flag value is 0, it determines that the next 6 bits are reserved. When extension_flag is equal to 1, this determines that this NAL component contains the RBSP of the extended NAL component.
Зарезервированное значение или reserved_zero_1bit является однобитовым флагом, используемым для будущих расширений к приложению, соответствующему nal_unit_type, равным 30. Значение enh_profile_idc указывает профиль, которому соответствует битовый поток. Значение reserved_zero_3bits является 3-битовым полем, зарезервированным для будущего использования. Значение extended_nal_unit_type задано ниже в таблице 7: The reserved value or reserved_zero_1bit is a one-bit flag used for future extensions to the application matching nal_unit_type of 30. The value enh_profile_idc indicates the profile to which the bitstream corresponds. The value reserved_zero_3bits is a 3-bit field reserved for future use. The value of extended_nal_unit_type is set below in table 7:
Коды типов расширенного компонента NALTable 7
Enhanced NAL Component Type Codes
Расширенные компоненты NAL, которые используют extended_nal_unit_type, равный 0 или в диапазоне от 24 до 63 включительно, не влияют на процесс декодирования, описанный в этом изобретении. Типы расширенного компонента NAL cо значениями 0 и от 24 до 63 можно использовать, как это определено данным приложением. Процесс декодирования для этих значений (0 и с 24 по 63) nal_unit_type не задан. В данном примере декодеры могут игнорировать, то есть устранять из битового потока и отбрасывать содержимое всех расширенных компонентов NAL, которые используют зарезервированные значения extended_nal_unit_type. Это потенциальное требование позволяет в будущем определить совместимые расширения. Значения rbsp_byte и emulation_prevention_three_byte задаются как в пункте 7 спецификации стандарта Н.264.Extended NAL components that use extended_nal_unit_type equal to 0 or in the range 24 to 63 inclusive do not affect the decoding process described in this invention. Types of the advanced NAL component with values of 0 and from 24 to 63 can be used as defined by this application. The decoding process for these values (0 and 24 through 63) nal_unit_type is not specified. In this example, decoders can ignore, that is, remove from the bitstream and discard the contents of all extended NAL components that use the reserved extended_nal_unit_type values. This potential requirement allows future definitions of compatible extensions. The rbsp_byte and emulation_prevention_three_byte values are specified in clause 7 of the H.264 standard specification.
Семантика RBSPThe semantics of RBSP
Семантика RBSP уровня улучшения определяется как в пункте 7 спецификации стандарта Н.264.The semantics of the RBSP enhancement level are defined as in clause 7 of the H.264 standard specification.
Семантика заголовка слояLayer header semantics
Для семантики заголовка слоя синтаксический элемент first_mb_in_slice задает адрес первого макроблока в слое. Когда произвольный порядок слоев не разрешен, значение first_mb_in_slice будет не меньше значения first_mb_in_slice для любого другого слоя текущего изображения, который предшествует текущему слою в порядке декодирования. Адрес первого макроблока слоя можно получить следующим образом. Значение first_mb_in_slice является адресом первого макроблока в слое, а first_mb_in_slice находится в диапазоне от 0 до PicSizeInMbs - 1 включительно, где PicSizeInMbs является количеством мегабайт в изображении.For layer header semantics, the syntax element first_mb_in_slice sets the address of the first macroblock in the layer. When random layer order is not allowed, the value of first_mb_in_slice will be no less than the value of first_mb_in_slice for any other layer of the current image that precedes the current layer in decoding order. The address of the first macroblock of the layer can be obtained as follows. The value of first_mb_in_slice is the address of the first macroblock in the layer, and first_mb_in_slice is in the range from 0 to PicSizeInMbs - 1 inclusive, where PicSizeInMbs is the number of megabytes in the image.
Элемент enh_slice_type задает тип кодирования слоя согласно приведенной ниже таблице 8.The enh_slice_type element sets the encoding type of the layer according to table 8 below.
Связь имен со значениями enh_slice_typeTable 8
Name association with enh_slice_type values
Значения enh_slice_type в диапазоне от 5 до 9, вдобавок к типу кодирования текущего слоя, определяют, что все другие слои текущего кодированного изображения имеют значение enh_slice_type, равное текущему значению enh_slice_type или равное текущему значению slice_type-5. Согласно альтернативным аспектам значения enh_slice_type, равные 3, 4, 8 и 9, могут быть не используемыми. Когда extended_nal_unit_type равно 5, согласно изображению мгновенного обновления декодирования (IDR), slice_type может быть равен 2, 4, 7 или 9.Enh_slice_type values in the range of 5 to 9, in addition to the encoding type of the current layer, determine that all other layers of the current encoded image have an enh_slice_type value equal to the current enh_slice_type value or equal to the current slice_type-5 value. In alternative aspects, enh_slice_type values of 3, 4, 8, and 9 may not be used. When extended_nal_unit_type is 5, according to the instant decoding update (IDR) image, slice_type may be 2, 4, 7, or 9.
Синтаксический элемент pic_parameter_set_id задается как pic_parameter_set_id для соответствующего base_layer_slice. Элемент frame_num в компоненте NAL уровня улучшения будет таким же, как совмещенный слой базового уровня.The syntax element pic_parameter_set_id is set to pic_parameter_set_id for the corresponding base_layer_slice. The frame_num element in the NAL component of the enhancement layer will be the same as the aligned layer of the base layer.
Аналогично, элемент pic_order_cnt_lsb в компоненте NAL уровня улучшения будет таким же, как pic_order_cnt_lsb для совмещенного слоя базового уровня (base_layer_slice). Семантика для delta_pic_order_cnt_bottom, delta_pic_order_cnt[o], delta_pic_order_cnt[1] и семантика redundant_pic_cnt задаются как в пункте 7.3.3 стандарта Н.264. Элемент decoding_mode_flag задает процесс декодирования для слоя улучшения, как показано ниже в таблице 9. Similarly, the pic_order_cnt_lsb element in the NAL component of the enhancement layer will be the same as pic_order_cnt_lsb for the combined base layer (base_layer_slice). The semantics for delta_pic_order_cnt_bottom, delta_pic_order_cnt [o], delta_pic_order_cnt [1] and the semantics of redundant_pic_cnt are defined as in clause 7.3.3 of the H.264 standard. The decoding_mode_flag element defines the decoding process for the enhancement layer, as shown in Table 9 below.
Спецификация decoding_mode_flagTable 9
Decoding_mode_flag
В приведенной выше таблице 9 добавление в пиксельной области, указанное значением decoding_mode_flag, равным 0, в компоненте NAL означает, что слой уровня улучшения должен быть добавлен к слою базового уровня в пиксельной области для поддержки одноуровневого декодирования. Добавление в области коэффициентов, указанное значением decoding_mode_flag, равным 1, в компоненте NAL означает, что слой уровня улучшения может быть добавлен к слою базового уровня в области коэффициентов для поддержки одноуровневого декодирования. Таким образом, decoding_mode_flag обеспечивает синтаксический элемент, который указывает, следует ли декодеру использовать добавление видеоданных уровня улучшения к данным базового уровня в пиксельной области или в области преобразования.In Table 9 above, the addition in the pixel region indicated by the decoding_mode_flag value of 0 in the NAL component means that the enhancement layer should be added to the base layer in the pixel region to support single-level decoding. Adding in the coefficient area indicated by decoding_mode_flag equal to 1 in the NAL component means that the enhancement layer can be added to the base layer in the coefficient field to support single-level decoding. Thus, decoding_mode_flag provides a syntax element that indicates whether the decoder should use the addition of enhancement layer video data to the base layer data in the pixel region or in the transform domain.
Добавление в пиксельной области приводит к добавлению слоя уровня улучшения к слою базового уровня в пиксельной области следующим образом:Adding in the pixel region adds the enhancement layer to the base layer in the pixel region as follows:
где Y обозначает яркость, Cb обозначает цветность синего, а Cr обозначает цветность красного и где Clip1Y - математическая функция, имеющая следующий вид:where Y is the brightness, Cb is the color of blue, and Cr is the color of red, and where Clip1Y is a mathematical function that has the following form:
Clip1Y(x)=Clip3(0, (1<<BitDepthY)-1, x),Clip1 Y (x) = Clip3 (0, (1 << BitDepth Y ) -1, x),
а Clip1С представляет собой следующую математическую функцию:and Clip1C represents the following mathematical function:
Clip1С(x)=Clip3(0, (1<<BitDepthС)-1, x),Clip1 C (x) = Clip3 (0, (1 << BitDepth C ) -1, x),
и где Clip3 описывается в этом документе. Математические функции Clip1y, Clip1c и Clip3 определены в стандарте Н.264.and where Clip3 is described in this document. The mathematical functions of Clip1y, Clip1c, and Clip3 are defined in the H.264 standard.
Добавление в области коэффициентов приводит к добавлению слоя уровня улучшения к слою базового уровня в области коэффициентов следующим образом:Adding in the area of coefficients leads to adding a layer of the level of improvement to the layer of the base level in the field of coefficients as follows:
LumaLevel[i][j]=k LumaLevel[i][j]base+LumaLevel[i][j]enhLumaLevel [i] [j] = k LumaLevel [i] [j] base + LumaLevel [i] [j] enh
ChromaLevel[i][j]=k ChromaLevel[i][j]base+ChromaLevel[i][j]enhChromaLevel [i] [j] = k ChromaLevel [i] [j] base + ChromaLevel [i] [j] enh
Где k - масштабный коэффициент, используемый для приведения коэффициентов базового уровня к масштабу QP уровня улучшения.Where k is the scale factor used to bring the base-level coefficients to the QP scale of the enhancement level.
Синтаксический элемент refine_intra_MB в компоненте NAL уровня улучшения определяет, следует ли уточнять макроблоки MB с внутрикадровым кодированием на уровне улучшения в слоях, не являющихся I-слоями. Если refine_intra_MB равен 0, то MB с внутрикадровым кодированием не уточняются на уровне улучшения, и эти MB на уровне расширения будут пропущены. Если refine_intra_MB равен 1, то MB с внутрикадровым кодированием на уровне улучшения уточняются.The refine_intra_MB syntax element in the enhancement layer NAL component determines whether to refine the macroblock MBs with intraframe coding at the enhancement layer in layers other than I-layers. If refine_intra_MB is 0, then the intra-frame encoded MBs are not refined at the enhancement level, and these MBs at the extension level will be skipped. If refine_intra_MB is 1, then MBs with intra-frame coding at the enhancement level are refined.
Элемент slice_qp_delta задает начальное значение параметра QPY квантования яркости, подлежащего использованию для всех макроблоков в слое, пока оно не будет изменено на значение mb_qp_delta на уровне макроблока. Начальный параметр квантования QPY для слоя вычисляется как:The slice_qp_delta element sets the initial value of the brightness quantization parameter QP Y to be used for all macroblocks in the layer until it is changed to mb_qp_delta at the macroblock level. The initial quantization parameter QP Y for the layer is calculated as:
Значение slice_qp_delta может быть ограничено, так что QPY окажется в диапазоне от 0 до 51 включительно. Значение pic_init_qp_minus26 указывает начальное значение QP.The value of slice_qp_delta can be limited, so that QPY will be in the range from 0 to 51 inclusive. The pic_init_qp_minus26 value indicates the initial QP value.
Семантика данных слояLayer data semantics
Семантика данных слоя уровня улучшения может быть задана как в пункте 7.4.4 стандарта Н.264.The semantics of the data of the enhancement level layer can be specified as in clause 7.4.4 of the H.264 standard.
Семантика уровня макроблоковMacroblock Level Semantics
Применительно к семантике уровня макроблоков элемент enh_coded_block_pattern задает, какой из шести блоков 8х8 (яркости и цветности) может содержать ненулевые уровни коэффициента преобразования. Семантика элемента mb_qp_delta может быть задана как в пункте 7.4.5 стандарта Н.264. Семантика для синтаксического элемента coded_block_pattern может быть задана как в пункте 7.4.5 стандарта Н.264.For macroblock level semantics, the enh_coded_block_pattern element determines which of the six 8x8 blocks (luminance and color) can contain non-zero levels of transform coefficient. The semantics of the mb_qp_delta element can be specified as in clause 7.4.5 of the H.264 standard. The semantics for the coded_block_pattern syntax element can be specified as in clause 7.4.5 of the H.264 standard.
Семантика кодированного блочного шаблона (CBP) макроблока 16х16 с внутрикадровым кодированиемSemantics of the coded block template (CBP) of a 16x16 macroblock with intraframe coding
Для I-слоев и P-слоев, когда refine_ intra_mb_flag равен 1, семантику CBP 16×16 с внутрикадровым кодированием определяет следующее описание. Макроблоки, которые имеют режим предсказания для макроблока совмещенного базового уровня с внутрикадровым кодированием (Intra_16×16), могут быть разбиты на 4 четвертных макроблока в зависимости от значений их коэффициентов АС и режима предсказания Intra_16×16 макроблока совмещенного базового уровня (BaseLayerIntra16×16PredMode). Если все коэффициенты АС базового уровня равны нулю, и, по меньшей мере, один коэффициент АС уровня улучшения не равен нулю, то макроблок уровня улучшения делят на 4 раздела макроблока в зависимости от BaseLayerIntra16×16PredMode.For I-layers and P-layers, when refine_ intra_mb_flag is 1, the semantics of 16 × 16 CBP with intraframe coding are determined by the following description. Macroblocks that have a prediction mode for a macroblock of a combined base level with intra-frame coding (Intra_16 × 16) can be divided into 4 quarter macroblocks depending on the values of their AC coefficients and the prediction mode of the Intra_16 × 16 macroblock of a combined base level (BaseLayerIntra16 × 16PredMode). If all base level AC coefficients are equal to zero, and at least one enhancement level AC coefficient is not equal to zero, then the macroblock of the enhancement level is divided into 4 sections of the macroblock depending on BaseLayerIntra16 × 16PredMode.
Такое разбиение макроблока приводит к созданию разделов, называемых четвертными макроблоками. Каждый четвертной макроблок можно дополнительно разбить на 4×4 раздела четвертного макроблока. На фигурах 10 и 11 представлены схемы, иллюстрирующие разбиение макроблоков и четвертных макроблоков. На фиг. 10 показаны разделы макроблока уровня улучшения на основе режимов предсказания для блоков 16×16 базового уровня с внутрикадровым кодированием и их индексы, соответствующие пространственным положениям. На фиг. 11 показаны разделы четвертного макроблока уровня улучшения на основе разделов макроблока, показанных на фиг. 10, и их индексы, соответствующие пространственным положениям.This macroblock partitioning creates partitions called quarter macroblocks. Each quarter macroblock can be further divided into 4x4 sections of a quarter macroblock. Figures 10 and 11 are diagrams illustrating a partition of macroblocks and quarter macroblocks. In FIG. 10 shows sections of a macroblock of an enhancement layer based on prediction modes for 16 × 16 base layer blocks with intraframe coding and their indices corresponding to spatial positions. In FIG. 11 shows sections of a quarter macroblock of an enhancement level based on the sections of the macroblock shown in FIG. 10, and their indices corresponding to spatial positions.
На фиг. 10 показан режим Intra_16×16_Vertical с четырьмя разделами MB, каждый из 4*16 выборок яркости и соответствующих выборок цветности, режим Intra_16×16_Horizontal с 4 разделами макроблока, каждый из 16*4 выборок яркости и соответствующих выборок цветности и режим Intra_16×16_DC или Intra_16×16_Planar с 4 разделами макроблока, каждый из 8*8 выборок яркости и соответствующих выборок цветности.In FIG. 10 shows an Intra_16 × 16_Vertical mode with four MB partitions, each of 4 * 16 brightness samples and corresponding chroma samples, Intra_16 × 16_Horizontal mode with 4 macroblock sections, each of 16 * 4 brightness samples and corresponding chroma samples, and Intra_16 × 16_DC or Intra_16 mode × 16_Planar with 4 sections of the macroblock, each of 8 * 8 brightness samples and corresponding color samples.
На фиг. 11 показано 4 четвертных вертикальных раздела макроблока, каждый из 4*4 выборок яркости и соответствующих выборок цветности, 4 четвертных горизонтальных раздела макроблока, каждой из 4*4 выборок яркости и соответствующих выборок цветности, и 4 четвертных DC или Планарных раздела макроблока, каждый из 4*4 выборок яркости и соответствующих выборок цветности.In FIG. 11 shows 4 quarter vertical sections of a macroblock, each of 4 * 4 brightness samples and corresponding chroma samples, 4 quarter horizontal sections of a macroblock, each of 4 * 4 brightness samples and corresponding chroma samples, and 4 quarter DC or Planar macroblock sections, each of 4 * 4 brightness samples and corresponding chroma samples.
Каждый раздел макроблока обозначен как mbPartIdx. Каждый раздел четвертного макроблока обозначен как qtrMbPartIdx. Как mbPartIdx, так и qtrMbPartIdx могут иметь значения, равные 0, 1, 2 или 3. Разделы макроблока и четвертного макроблока сканируются для уточнения внутрикадрового кодирования, как показано на фигурах 10 и 11. Прямоугольники соответствуют разделам. Число в каждом прямоугольнике задает индекс сканирования раздела макроблока или сканирования раздела четвертного макроблока.Each section of the macroblock is designated as mbPartIdx. Each quarter macroblock section is designated as qtrMbPartIdx. Both mbPartIdx and qtrMbPartIdx can have values of 0, 1, 2, or 3. Sections of the macroblock and quarter macroblock are scanned to refine intraframe coding, as shown in Figures 10 and 11. The rectangles correspond to the sections. The number in each rectangle specifies the index scan of the macroblock section or the scan section of the quarter macroblock.
Элемент mb_intra16×16_luma_flag, равный 1, определяет, что по меньшей мере один коэффициент в Intra16×16АСLevel не равен нулю. Параметр intra16×16_luma_flag, равный 0, определяет, что все коэффициенты в Intra16×16АСLevel равны нулю.The mb_intra16 × 16_luma_flag element, equal to 1, determines that at least one coefficient in Intra16 × 16ACLevel is not equal to zero. The intra16 × 16_luma_flag parameter, equal to 0, determines that all coefficients in Intra16 × 16ACLevel are equal to zero.
Элемент mb_intra16×16_luma_part_flag[mbPartIdx], равный 1, определяет, что имеется, по меньшей мере, один ненулевой коэффициент в Intra16×16АСLevel в разделе макроблока mbPartIdx. Элемент mb_intra16x16_luma_part_flag[mbPartIdx], равный 0, определяет, что все коэффициенты в Intra16×16АСLevel в разделе макроблока mbPartIdx равны нулю.The mb_intra16 × 16_luma_part_flag [mbPartIdx] element, equal to 1, determines that there is at least one nonzero coefficient in the Intra16 × 16ACLevel in the macroblock section of mbPartIdx. The mb_intra16x16_luma_part_flag [mbPartIdx] element, equal to 0, determines that all coefficients in the Intra16 × 16ACLevel in the macroblock section of mbPartIdx are equal to zero.
Элемент qtr_mb_intra16×16_luma_part_flag[mbPartIdx][qtrMbPartIdx], равный 1, определяет, что имеется, по меньшей мере, один ненулевой коэффициент в Intra16×16АСLevel в разделе четвертного макроблока qtrMbPartIdx.The qtr_mb_intra16 × 16_luma_part_flag [mbPartIdx] [qtrMbPartIdx] element equal to 1 determines that there is at least one nonzero coefficient in the Intra16 × 16ACLevel in the quarter macroblock section qtrMbPartIdx.
Элемент qtr_mb_intra16×16_luma_part_flag[mbPartIdx][qtrMbPartIdx], равный 0, определяет, что все коэффициенты в Intra16×16АСLevel в разделе четвертного макроблока qtrMbPartIdx равны нулю. Элемент mb_intra16×16_chroma_flag, равный 1, определяет, что, по меньшей мере, один коэффициент цветности не равен нулю.The qtr_mb_intra16 × 16_luma_part_flag [mbPartIdx] [qtrMbPartIdx] element, equal to 0, determines that all coefficients in Intra16 × 16ACLevel in the quarter macroblock section qtrMbPartIdx are equal to zero. The mb_intra16 × 16_chroma_flag element, equal to 1, determines that at least one color coefficient is not equal to zero.
Элемент mb_intra16×16_chroma_flag, равный 0, определяет, что все коэффициенты цветности равны нулю. Элемент mb_intra16x16_chroma_АС_flag, равный 1, определяет, что, по меньшей мере, один коэффициент цветности в mb_ChromaАСLevel не равен нулю. Элемент mb_intra16x16_chroma_АС_flag, равный 0, определяет, что все коэффициенты в mb_ChromaАСLevel равны нулю.The mb_intra16 × 16_chroma_flag element, equal to 0, determines that all chroma coefficients are equal to zero. The mb_intra16x16_chroma_AC_flag element, equal to 1, determines that at least one color coefficient in mb_ChromaACLevel is not equal to zero. The mb_intra16x16_chroma_AC_flag element, equal to 0, determines that all coefficients in mb_ChromaACLevel are equal to zero.
Семантика остаточных данныхResidual Data Semantics
Семантика остаточных данных, за исключением семантики CAVLC остаточных блоков, описанной в этом изобретении, может быть такой же, как определено в пункте 7.4.5.3 стандарта H.264.The semantics of the residual data, with the exception of the CAVLC semantics of the residual blocks described in this invention, may be the same as defined in clause 7.4.5.3 of the H.264 standard.
Семантика CAVLC остаточных блоковSemantics of CAVLC Residual Blocks
Семантика CAVLC может быть обеспечена следующим образом. В частности, enh_coeff_token задает общее количество ненулевых уровней коэффициента преобразования при сканирования уровня коэффициента преобразования. Функция TotalCoeff(enh_coeff_token) возвращает количество ненулевых уровней коэффициента преобразования, полученное из enh_coeff_token, следующим образом:CAVLC semantics can be provided as follows. In particular, enh_coeff_token sets the total number of nonzero transform coefficient levels when scanning the transform coefficient level. The TotalCoeff (enh_coeff_token) function returns the number of non-zero levels of the conversion coefficient obtained from enh_coeff_token, as follows:
1. Когда enh_coeff_token равен 17, TotalCoeff(enh_coeff_token) задается как в пункте 7.4.5.3.1 стандарта Н.264.1. When enh_coeff_token is 17, TotalCoeff (enh_coeff_token) is specified as in clause 7.4.5.3.1 of the H.264 standard.
2. Когда enh_coeff_token не равен 17, TotalCoeff(enh_coeff_token) равен enh_coeff_token.2. When enh_coeff_token is not equal to 17, TotalCoeff (enh_coeff_token) is equal to enh_coeff_token.
Значение enh_coeff_sign_flag задает знак ненулевого уровня коэффициента преобразования. Семантика total_zeros задается как в пункте 7.4.5.3.1 стандарта Н.264. Семантика run_be для e задается как в пункте 7.4.5.3.1 стандарта Н.264.The value enh_coeff_sign_flag sets the sign of the nonzero level of the transform coefficient. The semantics of total_zeros is defined as in clause 7.4.5.3.1 of the H.264 standard. The semantics of run_be for e are defined as in clause 7.4.5.3.1 of the H.264 standard.
Процессы декодирования для расширенийDecoding Processes for Extensions
Декодирование I-слояI-layer decoding
Ниже более подробно описываются процессы декодирования для расширений масштабируемости. Для декодирования I-кадра при наличии данных как от базового уровня, так и от уровня улучшения, в декодере 28 можно реализовать декодирование в два прохода. Процесс декодирования в два прохода в общем случае может выполняться, как было описано выше, после чего выполняется итеративная обработка следующим образом. Сначала восстанавливается кадр Ib базового уровня как обычный I-кадр. Затем восстанавливается I-кадр совмещенного уровня улучшения в качестве P-кадра. Тогда опорным кадром для этого Р-кадра будет восстановленный I-кадр базового уровня. Опять же, все векторы движения в восстановленном Р-кадре уровня улучшения будут равны нулю.The decoding processes for scalability extensions are described in more detail below. To decode the I-frame in the presence of data from both the base level and the enhancement level, two-pass decoding can be implemented in
При наличии уровня улучшения каждый макроблок уровня улучшения декодируют как остаточные данные с использованием информации о режиме из совмещенного макроблока в базовом уровне. I-слой базового уровня (Ib) можно декодировать как в пункте 8 стандарта Н.264. После того как выполнено декодирование как макроблока уровня улучшения, так и совмещенного макроблока базового уровня, можно использовать добавление в пиксельной области, как это определено в пункте 2.1.2.3 стандарта Н.264, для создания конечного восстановленного блока.If there is an enhancement level, each macroblock of the enhancement level is decoded as residual data using mode information from the combined macroblock at the base level. The base layer I-layer (Ib) can be decoded as in clause 8 of the H.264 standard. After the decoding of both the macroblock of the enhancement level and the combined macroblock of the basic level is performed, you can use the addition in the pixel region, as defined in clause 2.1.2.3 of the H.264 standard, to create the final restored block.
Декодирование P-слояP-layer decoding
В процессе декодирования Р-слоев базовый уровень и уровень улучшения совместно используют один и тот же режим и информацию о движении, которая передается в базовом уровне. Информация для макроблоков с внутрикадровым кодированием существует на обоих уровнях. Другими словами, биты, принадлежащие макроблокам с внутрикадровым кодированием, существуют только на базовом уровне, но не существуют на уровне улучшения, в то время как коэффициенты макроблоков MB с внутрикадровым кодированием распределены по обоим уровням.In the process of decoding P-layers, the base layer and the enhancement layer share the same mode and motion information that is transmitted in the base layer. Information for macroblocks with intraframe coding exists at both levels. In other words, the bits belonging to the macroblocks with intraframe coding exist only at the basic level, but do not exist at the improvement level, while the coefficients of the macroblock MBs with intraframe coding are distributed at both levels.
Макроблоки уровня улучшения, которые имеют пропущенные макроблоки на совмещенном базовом уровне, также пропускаются.Improvement level macroblocks that have skipped macroblocks at the combined base level are also skipped.
Если refine_intra_mb_flag равен 1, то информация, принадлежащая макроблокам с внутрикадровым кодированием, существует на обоих уровнях, и decoding_mode_flag должен быть равен 0. В противном случае, когда refine_intra_mb_flag равен 0, то информация, принадлежащая макроблокам с внутрикадровым кодированием, существует только в базовом уровне, а макроблоки уровня улучшения, имеющие макроблоки с внутрикадровым кодированием совмещенного базового уровня, пропускаются.If refine_intra_mb_flag is equal to 1, then the information belonging to macroblocks with intraframe coding exists at both levels, and decoding_mode_flag should be equal to 0. Otherwise, when refine_intra_mb_flag is equal to 0, then the information belonging to macroblocks with intraframe coding exists only at the basic level, and macroblocks of the enhancement layer having macroblocks with intra-frame coding of the combined base layer are skipped.
Согласно одному аспекту схемы кодирования Р-слоев двухуровневые данные о коэффициентах макроблоков MB с внутрикадровым кодированием могут быть объединены в микропроцессоре общего назначения сразу после энтропийного декодирования и перед деквантизацией, поскольку модуль деквантизации находится в аппаратном ядре, и он участвует в конвейерной обработке с другими модулями. Следовательно, общее количество макроблоков MB, подлежащих обработке процессором DSP и аппаратным ядром, может быть точно таким же, как в случае одноуровневого декодирования, и аппаратное ядро будет выполнять только одноуровневое декодирование. В этом случае, возможно, не понадобится изменять график работы аппаратного ядра.According to one aspect of the P-layer coding scheme, two-level data on the coefficients of MB macroblocks with intra-frame coding can be combined in a general-purpose microprocessor immediately after entropy decoding and before de-quantization, since the de-quantization module is located in the hardware core and is involved in pipelining with other modules. Therefore, the total number of macroblocks MB to be processed by the DSP processor and the hardware core can be exactly the same as in the case of single-level decoding, and the hardware core will only perform single-level decoding. In this case, you may not need to change the schedule of the hardware kernel.
На фиг. 12 представлена блок-схема, иллюстрирующая процесс декодирования Р-слоя. Как показано на фиг. 12. видеодекодер 28 выполняет энтропийное декодирование макроблоков базового уровня. Если текущий MB базового уровня является MB с внутрикадровым кодированием или пропускается (162), то видеодекодер 28 переходит к следующему MB базового уровня (164). Однако, если MB не является MB с внутрикадровым кодированием или не пропускается, то видеодекодер 28 выполняет энтропийное декодирование для MB совмещенного уровня улучшения (166), а затем объединяет два уровня данных (168), то есть MB базового уровня после энтропийного декодирования и MB после энтропийного декодирования для совмещенного уровня улучшения, для создания единого уровня данных для операций деквантизации и обратного преобразования. Задачи, показанные на фиг. 12, могут выполняться в микропроцессоре общего назначения перед передачей единого объединенного уровня данных в аппаратное ядро для деквантизации и обратного преобразования. На основе процедуры, показанной на фиг. 12, управление буфером (dpb) декодированного изображения совпадает или почти совпадает с одноуровневым декодированием, и дополнительная память может не потребоваться.In FIG. 12 is a flowchart illustrating a decoding process of a P layer. As shown in FIG. 12.
Декодирование макроблоков с внутрикадровым кодированием для уровня улучшенияDecoding of macroblocks with intraframe coding for enhancement level
При декодировании макроблоков с внутрикадровым кодированием для уровня улучшения во время энтропийного декодирования коэффициентов преобразования для кодирования CAVLC может потребоваться контекстная информация, которая обрабатывается по-разному при декодировании базового уровня и декодировании уровня улучшения. Эта контекстная информация включает в себя количество ненулевых уровней коэффициента преобразования (заданное параметром TotalCoeff(coeff_token)) в блоке уровней коэффициента преобразования, находящихся слева от текущего блока (blkA) и блоке уровней коэффициентов преобразования, находящихся над текущим блоком (blkB).When decoding macroblocks with intraframe coding for an enhancement level during entropy decoding of transform coefficients, CAVLC coding may require contextual information that is processed differently when decoding the base layer and decoding the enhancement level. This contextual information includes the number of non-zero levels of the transform coefficient (specified by the TotalCoeff parameter (coeff_token)) in the block of transform coefficient levels located to the left of the current block (blkA) and the block of transform coefficient levels located above the current block (blkB).
При энтропийном декодировании макроблоков с внутрикадровым кодированием для уровня улучшения с совмещенным макроблокам базового уровня с ненулевыми коэффициентами контекстом для декодирования coeff_token является количество ненулевых коэффициентов в блоках совмещенного базового уровня. При энтропийном декодировании макроблоков с внутрикадровым кодированием для уровня улучшения с совмещенным макроблоком базового уровня, где все коэффициенты нулевые, контекстом для декодирования coeff_token является контекст уровня улучшения, а nA и nB представляют собой количество ненулевых уровней коэффициента преобразования, заданного параметром TotalCoeff(coeff_token) в блоке blkA уровня улучшения, находящимся слева от текущего блока, и блоке blkB базового уровня, находящемся над текущим блоком соответственно. После энтропийного декодирования информация сохраняется декодером 28 для декодирования других макроблоков и деблокирования. TotalCoeff(coeff_token) каждого блока преобразования сохраняется только при декодировании базового уровня без декодирования уровня улучшения. Эту информацию используют в качестве контекста для энтропийного декодирования других макроблоков и для управления деблокированием. При видеодекодировании уровня улучшения параметр TotalCoeff(enh_coeff_token) используют в качестве контекста и для управления деблокированием.In entropy decoding of macroblocks with intraframe coding for the enhancement level with combined macroblocks of the base level with non-zero coefficients, the context for decoding coeff_token is the number of non-zero coefficients in the blocks of the combined base level. In the entropy decoding of macroblocks with intraframe coding for the enhancement level with the combined macroblock of the base level, where all coefficients are zero, the context for decoding coeff_token is the context of the enhancement level, and nA and nB are the number of nonzero transform coefficient levels specified by the TotalCoeff (coeff_token) parameter in the block blkA of the enhancement level, located to the left of the current block, and the blkB block of the base level, located above the current block, respectively. After entropy decoding, information is stored by
Согласно одному аспекту изобретения аппаратное ядро в декодере 28 конфигурируется для обработки энтропийного декодирования. Согласно этому аспекту процессор DSP может быть сконфигурирован для информирования аппаратного ядра при декодировании Р-кадра с нулевыми векторами движения. В аппаратном ядре декодируется стандартный Р-кадр, и масштабируемое декодирование получается прозрачным. Опять же по сравнению с одноуровневым декодированием декодирование I-кадра уровня улучшения в общем случае эквивалентно времени декодирования стандартного I-кадра и Р-кадра.According to one aspect of the invention, the hardware core in
Если частота I-кадров не превышает один кадр в секунду, то усложнение оказывается незначительным. Если эта частота превышает один I-кадр в секунду (из-за изменения сцены или по какой-то иной причине), то алгоритм кодирования может обеспечить кодирование таких I-кадров только на базовом уровне.If the frequency of I-frames does not exceed one frame per second, then the complication is negligible. If this frequency exceeds one I-frame per second (due to a scene change or for some other reason), then the encoding algorithm can provide encoding of such I-frames only at a basic level.
Процесс получения enh_coeff_tokenThe process of getting enh_coeff_token
Далее описывается процесс получения enh_coeff_token. Синтаксический элемент enh_coeff_token можно декодировать с использованием одного из восьми кодов VLC, заданных ниже в таблицах 10 и 11. Элемент enh_coeff_sign_flag задает знак ненулевого уровня коэффициента преобразования. VLC в таблицах 10 и 11 основаны на статистической информации по 27 декодированным последовательностям MPEG2. Каждый VLC задает значение TotalCoeff(enh_coeff_token) для данного кодового слова enh_coeff_token. Выбор VLC зависит от переменной numcoeff_vlc, которую получают следующим образом. Если совмещенный блок базового уровня имеет ненулевые коэффициенты, то применяется следующая процедура:The following describes the process for obtaining enh_coeff_token. The syntax element enh_coeff_token can be decoded using one of the eight VLC codes defined in Tables 10 and 11 below. The enh_coeff_sign_flag element specifies the sign of the non-zero level of the transform coefficient. The VLCs in Tables 10 and 11 are based on statistical information from 27 decoded MPEG2 sequences. Each VLC sets a TotalCoeff value (enh_coeff_token) for a given codeword enh_coeff_token. The choice of VLC depends on the variable numcoeff_vlc, which is obtained as follows. If the combined block of the basic level has non-zero coefficients, then the following procedure is applied:
В противном случае nC находят, используя подходящий способ из стандарта Н.264, а Numcoeff_vlc получают следующим образом:Otherwise, nC is found using a suitable method from the H.264 standard, and Numcoeff_vlc is obtained as follows:
Кодовые таблицы для декодирования enh_coeff_token, numcoeff_vlc=0-3Table 10
Code tables for decoding enh_coeff_token, numcoeff_vlc = 0-3
111101 1000 0000
eleven
1100111 1000 0000
110
1110111 1000 0000
111
111111 1110 0000
eleven
Кодовые таблицы для декодирования enh_coeff_token, numcoeff_vlc=4-7Table 11
Code tables for decoding enh_coeff_token, numcoeff_vlc = 4-7
110000 0100 0001
eleven
0110000 0100 0001
011
110000 0011 0011
eleven
Декодирование макроблоков с межкадровым кодированием для уровня улучшенияInter-frame coding macroblock decoding for enhancement level
Далее описывается декодирование макроблоков с межкадровым кодированием для уровня улучшения. Для макроблоков с межкадровым кодированием (за исключением пропущенных макроблоков) декодер 28 декодирует остаточную информацию как из базового уровня, так и уровня улучшения. Таким образом, декодер 28 может быть сконфигурирован так, чтобы обеспечить два процесса энтропийного декодирования, которые могут потребоваться для каждого макроблока.The following describes the decoding of inter-frame coded macroblocks for the enhancement layer. For inter-frame coded macroblocks (excluding missing macroblocks),
Если и базовый уровень, и уровень улучшения имеют ненулевые коэффициенты для макроблока, то контекстную информацию из соседних макроблоков используют на обоих уровнях для декодирования coeff_token. Каждый уровень использует свою контекстную информацию.If both the base level and the improvement level have non-zero coefficients for the macroblock, then context information from neighboring macroblocks is used at both levels to decode coeff_token. Each level uses its contextual information.
После энтропийного декодирования информация сохраняется в качестве контекстной информации для энтропийного декодирования других блоков и деблокирования. Для декодирования базового уровня сохраняется декодированный параметр TotalCoeff(coeff_token). Для декодирования уровня улучшения отдельно сохраняют декодированный параметр TotalCoeff(coeff_token) базового уровня и декодированный параметр TotalCoeff(enh_coeff_token) уровня улучшения. Параметр TotalCoeff(coeff_token) используют в качестве контекста для декодирования coeff_token макроблока базового уровня, включающего макроблоки с внутрикадровым кодированием, которые существуют только в базовом уровне. Сумму TotalCoeff(coeff_token)+TotalCoeff(enh_coeff_token) используют в качестве контекста для декодирования макроблоков с межкадровым кодированием в уровне улучшения.After entropy decoding, information is stored as context information for entropy decoding of other blocks and release. For base level decoding, the decoded TotalCoeff parameter (coeff_token) is stored. For decoding the enhancement level, the base layer decoded TotalCoeff parameter (coeff_token) and the enhancement level decoded TotalCoeff parameter (enh_coeff_token) are separately stored separately. The TotalCoeff parameter (coeff_token) is used as the context for decoding the coeff_token of the macroblock of the base layer, including macroblocks with intraframe coding that exist only in the base layer. The sum TotalCoeff (coeff_token) + TotalCoeff (enh_coeff_token) is used as a context for decoding macroblocks with inter-frame coding in the enhancement level.
Декодирование макроблоков с внутрикадровым кодированием для уровня улучшенияDecoding of macroblocks with intraframe coding for enhancement level
Для макроблоков (MB) с межкадровым кодированием, за исключением пропущенных MB, если это имело место, остаточную информацию можно закодировать как на базовом уровне, так и на уровне улучшения. Таким образом, для каждого MB используют два процесса энтропийного декодирования, например, как это показано на фиг. 5. Если предположить, что оба уровня имеют ненулевые коэффициенты для MB, то для декодирования coeff_token контекстную информацию для соседних MB обеспечивают на обоих уровнях. Каждый уровень имеет свою собственную контекстную информацию.For inter-frame coding macroblocks (MBs), with the exception of missing MBs, if any, residual information can be encoded at both the base level and the enhancement level. Thus, for each MB, two entropy decoding processes are used, for example, as shown in FIG. 5. If we assume that both levels have non-zero coefficients for MB, then for decoding coeff_token, context information for neighboring MBs is provided at both levels. Each level has its own contextual information.
После энтропийного декодирования некоторую информацию сохраняют для энтропийного декодирования других MB и деблокирования. Если выполняется видеодекодирование базового уровня, то сохраняется декодированный TotalCoeff(coeff_token) базового уровня. Если выполняется видеодекодирование уровня улучшения, то отдельно сохраняют декодированный TotalCoeff(coeff_token) базового уровня и декодированный TotalCoeff(enh_coeff_token) уровня улучшения.After entropy decoding, some information is stored for entropy decoding of other MBs and release. If base level video decoding is performed, then the decoded base level TotalCoeff (coeff_token) is stored. If video decoding of the enhancement level is performed, then the decoded base level TotalCoeff (coeff_token) and the enhancement level decoded TotalCoeff (enh_coeff_token) are separately stored.
Параметр TotalCoeff(coeff_token) используют в качестве контекста для декодирования coeff_token MB базового уровня, включая MB с внутрикадровым кодированием, которые существуют только в базовом уровне. Для декодирования MB с межкадровым кодированием в уровне улучшения в качестве контекста используют сумму TotalCoeff(coeff_token) базового уровня и TotalCoeff(enh_coeff_token) уровня улучшения. Вдобавок, эту сумму можно также использовать в качестве параметра для деблокирования видеоданных уровня улучшения.The TotalCoeff parameter (coeff_token) is used as a context for decoding the coeff_token MB of the base layer, including intra-frame encoded MBs that exist only in the base layer. For decoding MB with interframe coding in the enhancement layer, the sum of the base level TotalCoeff (coeff_token) and enhancement level TotalCoeff (enh_coeff_token) are used as context. In addition, this amount can also be used as a parameter to release video data of the enhancement level.
Поскольку деквантизация предполагает интенсивные вычисления, коэффициенты из двух уровней можно перед деквантизацией объединить в микропроцессоре общего назначения, так что аппаратное ядро будет выполнять деквантизацию один раз для каждого MB c одним QP. Оба уровня можно объединить в микропроцессоре, например, как это описано в следующем разделе.Since dequantization involves intensive calculations, coefficients from two levels can be combined before dequantization in a general-purpose microprocessor, so that the hardware core will dequantize once for each MB with one QP. Both levels can be combined in a microprocessor, for example, as described in the next section.
Декодирование кодированного блочного шаблона (CBP)Decoded Coded Block Pattern (CBP)
CBP макроблока уровня улучшения, enh_coded_block_pattern, указывает кодированные блочные шаблоны в видеоданных уровня улучшения. В некоторых случаях enh_coded_block_pattern может быть укорочен до enh_cbp, например, как в таблицах 12-15, приведенных ниже. При декодировании CBP с большой эффективностью сжатия CBP макроблока уровня улучшения, enh_coded_block_pattern, можно закодировать двумя различными способами в зависимости от base_coded_block_pattern шаблона cbp MB совмещенного базового уровня.The enhancement level macroblock CBP, enh_coded_block_pattern, indicates coded block patterns in enhancement level video data. In some cases, enh_coded_block_pattern may be shortened to enh_cbp, for example, as in tables 12-15 below. When decoding CBP with high CBP compression efficiency, the macroblock enhancement level, enh_coded_block_pattern, can be encoded in two different ways depending on the base_coded_block_pattern cbp MB pattern of the combined base level.
Для случая 1, когда base_coded_block_pattern=0, enh_coded_block_pattern можно закодировать согласно стандарту Н.264, например, таким же образом, как базовый уровень. Для случая 2, когда base_coded_block_pattern не равен 0, для получения enh_coded_block_pattern можно использовать следующий подход. Этот подход может включать в себя три этапа:For
Шаг 1. На этом шаге для каждого блока 8х8 яркости, где соответствующий бит coded_block_pattern базового уровня равен 1, выбирается один бит. Каждый бит представляет собой бит enh_coded_block_pattern для совмещенного блока 8х8 уровня улучшения. Этот выбранный бит можно рассматривать как бит уточнения. Следует заметить, что блок 8х8 используется как пример для объяснения. Очевидно, что можно использовать другие блоки с другими размерами.
Шаг 2. Имея в виду количество ненулевых блоков 8х8 яркости и cbp блока цветности на базовом уровне, имеется 9 комбинаций, показанных ниже в таблице 12. Каждая комбинация является контекстом для декодирования остальной информации о enh_coded_block_pattern. В таблица 12 cbpbC обозначает cbp цветности базового уровня, а (cbpb,Y(b8) представляет количество ненулевых блоков 8х8 яркости базового уровня. Столбцы cbpeC и cbpeY показывают новый формат cbp для некодированной информации о enh_coded_block_pattern, исключая контексты 4 и 9. В cbpeY “x” обозначает один бит для блока 8х8 яркости, в то время как в cbpeC “xx” обозначает 0, 1 или 2.
Кодовые таблицы для декодирования enh_coded_block_pattern на основе различных контекстов заданы ниже в таблицах 13 и 14.Code tables for decoding enh_coded_block_pattern based on various contexts are defined below in tables 13 and 14.
Шаг 3. Для контекстов 4 и 9 enh_chroma_coded_block_pattern (который может быть укорочен до enh_chroma_cbp) декодируется отдельно с использованием кодового словаря в таблице 15, показанной ниже.
Кодовые словари для различных контекстов показаны в таблицах 13 и 14. Эти кодовые словари основаны на статистической информации по 27 декодированным последовательностям MPEG2.Code dictionaries for different contexts are shown in tables 13 and 14. These code dictionaries are based on statistical information on 27 decoded MPEG2 sequences.
Кодовые слова Хаффмана для контекста 1-3 для enh_coded_block_pattern (enh_cbp)Table 13
Huffman codewords for context 1-3 for enh_coded_block_pattern (enh_cbp)
Кодовые слова Хаффмана для контекста 5-7 для enh_coded_block_pattern (enh_cbp)Table 14
Huffman codewords for context 5-7 for enh_coded_block_pattern (enh_cbp)
Шаг 3. Для контекстов 4-9 enh_cbp цветности можно декодировать отдельно, используя кодовый словарь, показанный ниже в таблице 15.
Кодовое слово для enh_chroma_block_pattern (enh_chroma_cbp)Table 15
Codeword for enh_chroma_block_pattern (enh_chroma_cbp)
Процесс получения параметров квантованияThe process of obtaining quantization parameters
Далее описывается процесс получения параметров квантования (QPS). Синтаксический элемент mb_qp_delta для каждого макроблока передает QP макроблока. Номинальный QP базового уровня (QPb) представляет также QP, используемый для квантования на базовом уровне, заданном с использованием mb_qp_delta в макроблоках в base_layer_slice. Номинальный QP уровня улучшения (QPe) также является QP, который используют для квантования на уровне улучшения, заданном с использованием mb_qp_delta в enh_macroblock_layer. При получении QP для сохранения бит вместо посылки mb_qp_delta для каждого макроблока уровня улучшения можно поддерживать постоянной разность QP между базовым уровнем и уровнем улучшения. Таким путем разность mb_qp_delta для QP между двумя уровнями посылается только на кадровой основе.The following describes the process of obtaining quantization parameters (QP S ). The syntax element mb_qp_delta for each macroblock transmits the QP of the macroblock. Base Level Nominal QP (QPb) also represents the QP used to quantize at the base level specified using mb_qp_delta in the macroblocks in base_layer_slice. The nominal enhancement level QP (QPe) is also the QP that is used to quantize the enhancement level specified using mb_qp_delta in enh_macroblock_layer. When receiving a QP to save a bit instead of sending mb_qp_delta for each macroblock of the enhancement layer, the QP difference between the base layer and the enhancement layer can be kept constant. In this way, the difference mb_qp_delta for QP between the two layers is sent only on a frame basis.
На основе QPb и QPe разность QP, обозначенная как delta_layer_qp, определяется как:Based on QP b and QP e, the difference QP, designated as delta_layer_qp, is defined as:
delta_layer_qp=QPb-QPe delta_layer_qp = QP b -QP e
QPe.Y для QP квантования, используемый для уровня улучшения, получают на основе двух факторов: (а) существование ненулевых уровней коэффициента на базовом уровне и (b) delta_layer_qp. Для поддержки единой операции деквантизации для коэффициентов уровня улучшения параметр delta_layer_qp может быть ограничен, так что delta_layer_qp%6=0. При этих двух заданных величинах QP получают следующим образом:The QP eY for QP quantization used for the enhancement level is obtained based on two factors: (a) the existence of nonzero coefficient levels at the base level and (b) delta_layer_qp. To support a single dequantization operation for improvement level coefficients, the delta_layer_qp parameter can be limited, so delta_layer_qp% 6 = 0. With these two given values, QP is obtained as follows:
1. Если совмещенный MB базового уровня не имеет ненулевые коэффициенты, то будет использован номинальный QPe, поскольку необходимо будет декодировать только коэффициенты уровня улучшения.1. If the combined base-level MB does not have non-zero coefficients, then the nominal QPe will be used, since only the improvement level coefficients will need to be decoded.
QPe.Y=QPe Q Pe.Y = QP e
2. Если delta_layer_qp%6=0, то QPe еще используют для уровня улучшения независимо от того, имеются или нет ненулевые коэффициенты. Это основывается на том обстоятельстве, что размер этапа квантования удваивается с каждым приращением QP, равным 6.2. If delta_layer_qp% 6 = 0, then QPe is still used for the improvement level, regardless of whether or not there are non-zero coefficients. This is based on the fact that the size of the quantization step doubles with each QP increment of 6.
Следующая операция описывает процесс деквантизации (обозначенный как Q-1) для объединения коэффициентов базового уровня и уровня улучшения, определенных как Cb и Ce соответственно.The following operation describes the process of de-quantization (denoted as Q-1) to combine the coefficients of the base level and the level of improvement, defined as Cb and Ce, respectively.
Fe=Q-1((Cb(QPb)<<(delta_layer_qp/6))+Ce(QPe))F e = Q -1 ((Cb (QP b ) << (delta_layer_qp / 6)) + C e (QP e ))
где Fe обозначает коэффициенты уровня улучшения после деквантизации, а Q-1 указывает функцию деквантизации.where F e denotes the coefficients of the level of improvement after dequantization, and Q -1 indicates the function of dequantization.
Если находящийся рядом блок базового уровня имеет ненулевой коэффициент и delta_layer_qp%6 ≠ 0, то при деквантизации коэффициентов базового уровня и уровня улучшения используют QPb и QPe соответственно. Коэффициенты уровня улучшения получают следующим образом:If a nearby base level block has a nonzero coefficient and delta_layer_qp% 6 ≠ 0, then when decanting the coefficients of the basic level and the improvement level, QP b and QP e are used, respectively. The coefficients of the improvement level are obtained as follows:
Fe=Q-1(Cb(QPb))+Q-1(Ce(QPe))Fe = Q -1 (C b (QP b )) + Q -1 (C e (QP e ))
Получение параметров QP цветности (QPbase,C и QPenh,C) основано на параметрах QP яркости (QPb,Y и QPe,Y). Сначала вычисляют qPI следующим образом:Obtaining the QP color parameters (QP base, C and QP enh, C ) is based on the QP brightness parameters (QP b, Y and QP e, Y ). First calculate qP I as follows:
qPI=Clip3(0, 51, QPxY+chroma_qp_index_offset)qP I = Clip3 (0, 51, QP xY + chroma_qp_index_offset)
где x обозначает “b” для базового уровня или “e” для уровня улучшения, chroma_qp_index_offset определен в наборе параметров изображения, а Clip3 представляет собой следующую математическую функциюwhere x stands for “b” for the base level or “e” for the enhancement level, chroma_qp_index_offset is defined in the image parameter set, and Clip3 is the following mathematical function
Значение QPx,C можно определить из таблицы 16, представленной ниже. The value of QP x, C can be determined from table 16 below.
Описание QPxC как функции qPI Table 16
Description of QP xC as a function of qP I
Для видеоданных уровня улучшения параметры QP для MB, полученные в ходе деквантизации, используются при деблокировании.For video data of the enhancement level, the QP parameters for MB obtained during dequantization are used for release.
ДеблокированиеRelease
При деблокировании для всех краев блока 4х4 кадра, кроме краев на границе кадра и любых краев, для которых работа фильтра деблокирования запрещена параметром disable_deblocking_filter_idc, может быть использован фильтр деблокирования. Указанный процесс фильтрации выполняется на базе макроблоков (MB) после завершения процесса построения кадра со всеми макроблоками в кадре, обрабатываемом в порядке возрастания адресов макроблоков.When releasing for all edges of a 4x4 block of a frame, except for the edges at the frame boundary and any edges for which the release filter is disabled by the disable_deblocking_filter_idc parameter, a release filter can be used. The specified filtering process is performed on the basis of macroblocks (MB) after completing the process of constructing a frame with all macroblocks in the frame, processed in ascending order of macroblock addresses.
На фиг. 13 представлена схема, иллюстрирующая работу фильтра деблокирования яркости и цветности. Работа фильтра деблокирования инициируется отдельно для компонент яркости и цветности. Для каждого макроблока сначала фильтруются вертикальные края слева направо, а затем фильтруются горизонтальные края сверху вниз. Для макроблока 16х16 фильтр деблокирования яркости действует по четырем краям с 16 отсчетами, а фильтр деблокирования для каждой компоненты цветности действует по двум краям с 8 отсчетами, в горизонтальном направлении и в вертикальном направлении, например, как показано на фиг. 13. Границы яркости в макроблоке, подлежащем фильтрации, показаны на фиг. 13 сплошными линиями. Границы цветности в макроблоке, подлежащем фильтрации, показаны на фиг. 13 пунктирными линиями.In FIG. 13 is a diagram illustrating the operation of a luminance and chroma deblocking filter. The release filter is triggered separately for the luminance and chrominance components. For each macroblock, the vertical edges are first filtered from left to right, and then the horizontal edges are filtered from top to bottom. For a 16x16 macroblock, a luminance release filter operates at four edges with 16 samples, and a deblocking filter for each color component operates at two edges with 8 samples, in the horizontal direction and in the vertical direction, for example, as shown in FIG. 13. The brightness boundaries in the macroblock to be filtered are shown in FIG. 13 solid lines. The color boundaries in the macroblock to be filtered are shown in FIG. 13 dashed lines.
На фиг. 13 ссылочные позиции 170, 172 показывают вертикальные края для фильтрации яркости и цветности соответственно. Ссылочные позиции 174, 176 указывают соответственно горизонтальные края для фильтрации яркости и цветности. Выборочные значения выше и слева от текущего макроблока, которые уже были модифицированы в результате работы фильтра деблокирования в предыдущих макроблоках, используются в качестве входных данных для фильтра деблокирования в текущем макроблоке и могут быть дополнительно модифицированы во время фильтрации текущего макроблока. Выборочные значения, модифицированные во время фильтрации вертикальных краев, используют в качестве входных данных для фильтрации горизонтальных краев для того же макроблока.In FIG. 13,
В стандарте Н.264 режимы MB, количество ненулевых уровней коэффициента преобразования и информацию о движении используют для принятия решения об интенсивности фильтрации границы. Параметры QP макроблоков используют для получения порогового значения, которое указывает, отфильтрованы ли входные отсчеты. При деблокировании базового уровня эти фрагменты информации используют напрямую. Для видеоуровня улучшения создается соответствующая информация. В этом примере процесс фильтрации применяется к набору из восьми отсчетов через горизонтальный или вертикальный край блока 4х4, обозначенный как pi и qi, где i равно 0, 1, 2 или 3, как показано на фиг. 14, причем край 178 находится между p0 и q0. На фиг. 14 pi и qi задается для i=от 0 до 3.In the H.264 standard, the MB modes, the number of non-zero levels of the transform coefficient and the motion information are used to decide on the border filtering intensity. The macroblock QP parameters are used to obtain a threshold value that indicates whether input samples are filtered. When releasing a basic level, these pieces of information are used directly. Information is generated for the video enhancement layer. In this example, the filtering process is applied to a set of eight samples across the horizontal or vertical edge of a 4x4 block, denoted as pi and qi, where i is 0, 1, 2, or 3, as shown in FIG. 14, with
Для декодирования I-кадра уровня улучшения может потребоваться декодированный I-кадр базового уровня и добавление межуровневого предсказанного остатка. Для восстановленного I-кадра базового уровня перед использованием предсказания I-кадра уровня улучшения используют фильтр деблокирования. Применение стандартного способа для деблокирования I-кадра с целью деблокирования I-кадра уровня улучшения может оказаться нежелательным. Как альтернативный вариант, могут быть использованы следующие критерии для получения нужной интенсивности фильтрации границы (bS). Переменную bS можно получить следующим образом. Значение bS устанавливают равным 2, если выполняется любое из следующих условий:To decode the I-frame of the enhancement layer, a decoded base layer I-frame and the addition of an inter-layer predicted remainder may be required. For the reconstructed base layer I-frame, a deblocking filter is used before predicting the enhancement level I-frame. Applying the standard method for releasing an I-frame to release an I-frame of an enhancement layer may not be desirable. As an alternative, the following criteria can be used to obtain the desired border filtering intensity (bS). The variable bS can be obtained as follows. BS is set to 2 if any of the following conditions is true:
а. Блок яркости 4х4, содержащий отсчет p0, содержит ненулевые уровни коэффициента преобразования и находится в макроблоке, закодированном с использованием режима предсказания для макроблока 4х4 с внутрикадровым кодированием; илиbut. A 4x4 luminance block containing the p0 sample contains nonzero transform coefficient levels and is located in a macroblock encoded using the prediction mode for a 4x4 macroblock with intraframe coding; or
b. Блок яркости 4х4, содержащий отсчет q0, содержит ненулевые уровни коэффициента преобразования и находится в макроблоке, закодированном с использованием режима предсказания для макроблока 4х4 с внутрикадровым кодированием.b. A 4x4 luminance block containing a q0 sample contains non-zero transform coefficient levels and is located in a macroblock encoded using the prediction mode for a 4x4 macroblock with intraframe coding.
Если ни одно из вышеуказанных условий не выполнено, то тогда значение bS устанавливают равным 1.If none of the above conditions is met, then the value of bS is set equal to 1.
Для P-кадров остаточная информация макроблоков с внутрикадровым кодированием, кроме пропущенных макроблоков, может быть закодирована как на базовом уровне, так и на уровне улучшения. Из-за единого декодирования коэффициенты от этих двух уровней объединяются. Поскольку для принятия решения об интенсивности фильтрации границы при деблокировании используют количество ненулевых уровней коэффициента преобразования, важно определить, каким образом вычислять количество ненулевых уровней коэффициентов преобразования каждого блока 4х4 на уровне улучшения, используемом при деблокировании. Необоснованное увеличение или уменьшение этого количества может либо привести к излишнему сглаживанию изображения, либо вызвать явление «блочности» изображения. Переменную bS получают следующим образом:For P-frames, the residual information of macroblocks with intraframe coding, in addition to missing macroblocks, can be encoded both at the basic level and at the enhancement level. Due to a single decoding, the coefficients from these two levels are combined. Since the number of nonzero levels of the transform coefficient is used to decide on the intensity of the border filtering during release, it is important to determine how to calculate the number of nonzero levels of transform coefficients for each 4x4 block at the improvement level used in the release. Unreasonable increase or decrease in this amount can either lead to excessive smoothing of the image, or cause the phenomenon of "blockiness" of the image. The bS variable is obtained as follows:
1. Если край блока также является краем макроблока, и оба отсчета p0 и q0 находятся в кадровых макроблоках и любой из отсчетов p0 или q0 находится в макроблоке, закодированном с использованием режима предсказания для макроблока с внутрикадровым кодированием, то тогда значение bS равно 4.1. If the edge of the block is also the edge of the macroblock, and both samples p 0 and q 0 are in the frame macroblocks and any of the samples p 0 or q 0 is in the macroblock encoded using the prediction mode for the macroblock with intraframe coding, then the value of bS equal to 4.
2. В противном случае, если любой из отсчетов p0 или q0 находятся в макроблоке, закодированном с использованием режима предсказания для макроблока с внутрикадровым кодированием, то тогда значение для bS равно 3.2. Otherwise, if any of the samples p 0 or q 0 is in the macroblock encoded using the prediction mode for the macroblock with intraframe coding, then the value for bS is 3.
3. В противном случае, если на базовом уровне блок яркости 4х4, содержащий отсчет p0, или блок яркости 4х4, содержащий отсчет q0, содержит ненулевые уровни коэффициента преобразования, или на уровне улучшения блок яркости 4х4, содержащий отсчет p0, или блок яркости 4х4, содержащий отсчет q0, содержит ненулевые уровни коэффициента преобразования, то тогда значение для bS равно CP2.3. Otherwise, if at the basic level, a 4x4 luminance block containing a p 0 sample or a 4x4 luminance block containing a q 0 sample contains nonzero conversion coefficient levels, or at an improvement level, a 4x4 luminance block containing a p 0 sample or block 4x4 brightness, containing the q 0 sample, contains non-zero levels of the conversion coefficient, then the value for bS is CP2.
4. В противном случае для bS выводится значение 1, или в альтернативном варианте используется стандартный подход.4. Otherwise, a value of 1 is displayed for bS, or the standard approach is used alternatively.
Кадры переключения каналовChannel Switch Frames
Кадр переключения каналов может быть инкапсулирован в один или несколько компонентов NAL с информацией для дополнительного улучшения (SEI), и его можно назвать кадром переключения каналов (CSF) c SEI. В одном примере кадр CSF с SEI имеет payloadTypefield, равный 22. Синтаксис RBSP для сообщения SEI задается как в пункте 7.3.2.3 стандарта Н.264. Синтаксис SEI RBSP и сообщения CSF с SEI может быть обеспечен так, как это показано ниже в таблицах 17 и 18. The channel switching frame may be encapsulated in one or more NAL components with information for further improvement (SEI), and it may be called a channel switching frame (CSF) with SEI. In one example, the CSF frame with SEI has a payloadTypefield of 22. The RBSP syntax for the SEI message is specified as in clause 7.3.2.3 of the H.264 standard. The syntax of the RBI SEI and CSF messages with the SEI may be provided as shown in Tables 17 and 18 below.
Синтаксис SEI RBSPTable 17
Syntax SEI RBSP
Синтаксис сообщения SEI CSFTable 18
Message Syntax SEI CSF
Синтаксис данных слоя кадра переключения канала может быть идентичен синтаксису I-слоя или Р-слоя базового уровня, который задан в пункте 7 стандарта Н.264. Кадр переключения каналов (CSF) может быть инкапсулирован в независимый пакет протокола передачи, позволяя обеспечить видимость в точках произвольного доступа в кодированном битовом потоке. Для передачи кадра переключения каналов нет ограничений на уровень. Этот кадр может содержаться либо в базовом уровне, либо в уровне улучшения.The syntax of the data of the layer of the channel switching frame may be identical to the syntax of the I-layer or P-layer of the basic level, which is specified in clause 7 of the H.264 standard. A Channel Switching Frame (CSF) may be encapsulated in an independent transmission protocol packet, allowing visibility at random access points in an encoded bitstream. There are no level restrictions for transmitting a channel switching frame. This frame may be contained either at the base level or at the enhancement level.
При декодировании кадра переключения каналов, если инициируется запрос на изменение канала, то будет декодирован кадр переключения каналов в запрошенном канале. Если кадр переключения каналов содержится в сообщении SEI CSF, то для декодирования SEI CSF будет использован процесс декодирования, использованный для I-слоя базового уровня. Р-слой, совпадающий с SEI CSF, декодироваться не будет, а B-изображение с порядком вывода перед кадром переключения каналов отбрасывается. Процесс декодирования будущих изображений (с точки зрения порядка вывода) не изменяется.When decoding a channel switching frame, if a channel change request is triggered, the channel switching frame in the requested channel will be decoded. If the channel switching frame is contained in the SEI CSF message, then the decoding process used for the base layer I layer will be used to decode the CSI SEI. The P-layer matching the CSI SEI will not be decoded, and the B-image with the output order before the channel switching frame is discarded. The decoding process of future images (in terms of output order) does not change.
На фиг. 15 представлена блок-схема, иллюстрирующая устройство 180 для передачи масштабируемых цифровых видеоданных с множеством различных приведенных в качестве примера синтаксических элементов для поддержки достаточно простой видеомасштабируемости. Устройство 180 включает в себя модуль 182 для включения видеоданных базового уровня в первый компонент NAL, модуль 184 для включения видеоданных уровня улучшения во второй компонент NAL и модуль 186 для включения одного или нескольких синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL, чтобы указать на наличие во втором компоненте NAL видеоданных уровня улучшения. В одном примере устройство 180 может составлять часть вещательного сервера 12, как показано на фигурах 1 и 3, и может быть реализовано аппаратными, программными или программно-аппаратными средствами или с помощью любой подходящей их комбинации. Например, модуль 182 может включать в себя один или несколько аспектов кодера 32 базового уровня и модуля 23 компонентов NAL по фиг.3, которые кодируют видеоданные базового уровня, и ввести их в компонент NAL. Вдобавок, модуль 184, например, может включать в себя один или несколько аспектов кодера 34 уровня улучшения и модуля 23 компонентов NAL, которые кодируют видеоданные уровня улучшения, и ввести их в компонент NAL. Модуль 186 может включать в себя один или несколько аспектов модуля 23 компонентов NAL, который включает один или несколько синтаксических элементов по меньшей мере в один из первого и второго компонентов NAL, чтобы указать на наличие видеоданных уровня улучшения во втором компоненте NAL. В одном примере один или несколько синтаксических элементов предусмотрены во втором компоненте NAL, в котором предусмотрены видеоданные уровня улучшения.In FIG. 15 is a block diagram illustrating an
На фиг. 16 представлена блок-схема, иллюстрирующая устройство 188 цифрового видеодекодирования, которое декодирует битовый поток масштабируемых видеоданных, для обработки множества различных приведенных в качестве примера синтаксических элементов, поддерживающих достаточно простую видеомасштабируемость. Устройство 188 цифрового видеодекодирования может находиться в абонентском устройстве, например, абонентском устройстве 16 по фиг. 1 или фиг. 3, видеодекодере 14 по фиг. 1 и может быть реализовано аппаратными, программными или программно-аппаратными средствами либо с помощью любой подходящей их комбинации. Устройство 188 включает в себя модуль 190 для приема видеоданных базового уровня в первом компоненте NAL, модуль 192 для приема видеоданных уровня расширения во втором компоненте NAL, модуль 194 для приема одного или нескольких синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL, для указания на наличие во втором компоненте NAL видеоданных уровня улучшения, и модуль 196 для декодирования цифровых видеоданных во втором компоненте NAL на основе указания, обеспеченного одним или несколькими синтаксическими элементами во втором компоненте NAL. Согласно одному аспекту один или несколько синтаксических элементов предусмотрены во втором компоненте NAL, где предусмотрены видеоданные уровня улучшения. Модуль 190, например, может включать в себя приемник/демодулятор 26 абонентского устройства 16 по фиг. 3. В этом примере модуль 192 может также включать в себя приемник/демодулятор 26. В некоторых примерных конфигурациях модуль 194 может включать в себя модуль компонентов NAL, такой как модуль 27 компонентов NAL по фиг. 3, который обрабатывает синтаксические элементы в компонентах NAL. Модуль 196 может включать в себя видеодекодер, такой как видеодекодер 28 по фиг. 3.In FIG. 16 is a flowchart illustrating a digital
Описанные здесь способы можно реализовать аппаратными, программными, аппаратно-программными средствами или любой их комбинацией. При реализации программными средствами эти способы могут быть реализованы, по меньшей мере, частично одной или несколькими запомненными или переданными командами, или кодом, на считываемом компьютером носителе. Считываемая компьютером среда может включать в себя компьютерную запоминающую среду, среду передачи либо то и другое, а также может включать в себя любой носитель, поддерживающий пересылку компьютерной программы с одного места на другое. Запоминающая среда может представлять собой любую имеющуюся среду, которая может быть доступна компьютеру.The methods described herein can be implemented in hardware, software, hardware-software, or any combination thereof. When implemented by software, these methods can be implemented at least partially by one or more stored or transmitted commands, or code, on a computer-readable medium. A computer-readable medium may include a computer storage medium, a transmission medium, or both, and may also include any medium supporting transfer of a computer program from one place to another. The storage medium may be any available medium that can be accessed by a computer.
Например, но не как ограничение, такая считываемая компьютером среда может содержать память с произвольной выборкой (RAM), такую как синхронная динамическая память с произвольной выборкой (SDRAM), память только для считывания (ROM), энергонезависимую память с произвольной выборкой (NVRAM), ROM, электрически стираемую программируемую память только для считывания (EEPROM), EEPROM, флэш-память, ПЗУ на компакт-диске (CD-ROM) или другое запоминающее устройство на оптических дисках, запоминающее устройство на магнитных дисках или другие магнитные запоминающие устройства, либо любой другой носитель, который можно использовать для переноса или запоминания требуемого программного кода в виде команд или структур данных и который может быть доступен компьютеру.For example, but not as a limitation, such a computer-readable medium may comprise random-access memory (RAM), such as synchronous random-access memory (SDRAM), read-only memory (ROM), non-volatile random-access memory (NVRAM), ROM, Read-Only Electrically Erasable Programmable Memory (EEPROM), EEPROM, Flash Memory, CD-ROM, or Other Optical Disk Storage, Magnetic Disk Storage or Other Magnetic Storage Devices -keeping, or any other medium which can be used to carry or store desired program code in the form of instructions or data structures and that can be accessed by a computer.
Также к считываемому компьютером носителю правильно будет отнести любое соединение. Например, если программное обеспечение передается от Web-узла, сервера или другого удаленного источника с использованием коаксиального кабеля, оптоволоконного кабеля, скрученной пары, цифровой абонентской линии (DSL) или беспроводных технологий, таких как инфракрасная, радио- и микроволновая связь, то тогда коаксиальный кабель, оптоволоконный кабель, скрученная пара, линия DSL или беспроводные технологии, такие как инфракрасная, радио- и микроволновая связь, входят в определение носителя. Используемый здесь термин «диск» включает в себя компакт-диск (CD), лазерный диск, оптический диск, цифровой универсальный диск (DVD), гибкий диск или лазерный диск, работающий в синей области спектра, где диски (disk) обычно воспроизводят данные с использованием магнитных свойств, в то время как диски (disc) воспроизводят данные с использованием оптических явлений, например, с помощью лазеров. В объем термина «считываемая компьютером среда» следует также включить комбинации из вышеописанного.Also, any connection will correctly be assigned to computer-readable media. For example, if the software is transferred from a Web site, server, or other remote source using a coaxial cable, fiber optic cable, twisted pair, digital subscriber line (DSL), or wireless technologies such as infrared, radio, and microwave, then coaxial cable, fiber optic cable, twisted pair, DSL line or wireless technologies such as infrared, radio and microwave, are included in the definition of media. As used herein, the term “disc” includes a compact disc (CD), a laser disc, an optical disc, a digital versatile disc (DVD), a floppy disk or a laser disc operating in the blue region of the spectrum where discs typically reproduce data from using magnetic properties, while discs reproduce data using optical phenomena, such as using lasers. Combinations of the above should also be included within the scope of the term “computer-readable medium”.
Код, связанный со считываемым компьютером носителем компьютерного программного продукта, может быть выполнен компьютером, например, одним или несколькими процессорами, к примеру, одним или несколькими цифровыми процессорами сигналов (DSP), микропроцессорами общего назначения, прикладными специализированными интегральными схемами (ASIC), логическими матрицами, программируемыми пользователем, или другими эквивалентными интегральными или дискретными логическими схемами. Согласно некоторым аспектам описанные здесь функциональные возможности можно обеспечить в специализированных программных модулях или аппаратных модулях, сконфигурированных для кодирования и декодирования, или включенных в объединенный видеокодер-декодер (CODEC).The code associated with a computer-readable medium of a computer program product can be executed by a computer, for example, one or more processors, for example, one or more digital signal processors (DSP), general-purpose microprocessors, application-specific specialized integrated circuits (ASICs), logic arrays programmed by the user, or other equivalent integrated or discrete logic circuits. According to some aspects, the functionality described herein may be provided in specialized software modules or hardware modules configured for encoding and decoding, or included in an integrated video encoder-decoder (CODEC).
Здесь были описаны различные аспекты изобретения. Эти и другие аспекты находятся в рамках объема нижеследующей формулы изобретения.Various aspects of the invention have been described herein. These and other aspects are within the scope of the following claims.
Claims (49)
включают видеоданные уровня улучшения в компонент уровня сетевой абстракции (NAL);
включают один или несколько синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и один или несколько синтаксических элементов для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках внутрикадрового кодирования в видеоданных уровня улучшения.1. A method for transmitting scalable digital video data, the method comprising the steps of:
include enhancement layer video data in a network abstraction layer (NAL) component;
include one or more syntax elements in the NAL component to indicate whether the NAL component includes enhancement level video data and one or more syntax elements to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in the blocks of intraframe coding in the video data of the enhancement level.
модуль компонентов уровня сетевой абстракции (NAL), который включает видеоданные уровня улучшения в компонент NAL и включает один или несколько синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения;
причем модуль компонентов NAL включает один или несколько синтаксических элементов в компонент NAL для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.9. A device for transmitting scalable digital video data, the device comprising:
a network abstraction layer (NAL) component module that includes enhancement layer video data in a NAL component and includes one or more syntax elements in a NAL component to indicate whether the NAL component includes enhancement layer video data;
moreover, the NAL component module includes one or more syntax elements in the NAL component to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.17. A processor for transmitting scalable digital video data, wherein the processor is configured to include enhancement layer video data in a network abstraction layer (NAL) component, include one or more syntax elements in a NAL component to indicate whether the NAL component includes enhancement layer video data, and enable one or more syntax elements in a NAL component to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
средство для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (NAL); и
средство для включения одного или нескольких синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и один или несколько синтаксических элементов для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.18. A device for transmitting scalable digital video data, the device comprising:
means for incorporating video data of the enhancement layer into a component of a network abstraction layer (NAL); and
means for including one or more syntax elements in the NAL component to indicate whether the NAL component includes video data of the enhancement level, and one or more syntax elements to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
код для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (NAL); и
код для включения одного или нескольких синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и одного или нескольких синтаксических элементов для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.26. A computer-readable medium on which a computer program product is stored, the computer program product comprising computer-executable codes for causing a computer to implement a method for transmitting scalable digital video data, comprising:
code to include video data of the enhancement layer in a component of the network abstraction layer (NAL); and
code to include one or more syntax elements in the NAL component to indicate whether the NAL component includes video data of the enhancement level, and one or more syntax elements to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
принимают видеоданные уровня улучшения в компоненте уровня сетевой абстракции (NAL);
принимают один или несколько синтаксических элементов в компоненте NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения;
декодируют цифровые видеоданные в компоненте NAL на основе упомянутого указания; и
обнаруживают один или несколько синтаксических элементов в компоненте NAL для определения, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием, и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.27. A method for processing scalable digital video data, the method comprising the steps of:
receiving enhancement layer video data in a network abstraction layer (NAL) component;
receiving one or more syntax elements in the NAL component to indicate whether the NAL component includes enhancement layer video data;
decode the digital video data in the NAL component based on the indication; and
detect one or more syntax elements in the NAL component to determine at least one of:
whether the enhancement level video data in the NAL component includes intra-frame encoded video data, and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
принимают видеоданные базового уровня во втором компоненте NAL;
обнаруживают один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня; и
пропускают декодирование видеоданных уровня улучшения, если определено, что видеоданные уровня улучшения не включают в себя никаких остаточных данных, относящихся к видеоданным базового уровня.29. The method of claim 27, wherein the NAL component is a first NAL component, the method further comprising the steps of:
receiving base layer video data in a second NAL component;
detecting one or more syntax elements in at least one of the first and second NAL components to determine if the enhancement layer video data includes any residual data related to the base layer video data; and
skip decoding of the enhancement layer video data if it is determined that the enhancement layer video data does not include any residual data related to the base layer video data.
принимают видеоданные базового уровня во втором компоненте NAL;
обнаруживают один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL, для определения, включает ли первый компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения;
обнаруживают один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования; и
обнаруживают один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, следует ли использовать для декодирования цифровых видеоданных добавление пиксельной области или области преобразования видеоданных уровня улучшения к видеоданным базового уровня.30. The method according to item 27, in which the NAL component is the first NAL component, and the method further comprises the steps of:
receiving base layer video data in a second NAL component;
detecting one or more syntax elements in at least one of the first and second NAL components to determine whether the first NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of the reference image layer;
detecting one or more syntax elements in at least one of the first and second NAL components to identify blocks in enhancement level video data containing syntax elements with non-zero transform coefficients; and
detecting one or more syntax elements in at least one of the first and second NAL components to determine whether to add a pixel region or a video transform region of the enhancement layer to the base layer video for decoding digital video data.
модуль компонентов уровня сетевой абстракции (NAL), который принимает видеоданные уровня улучшения в компонент NAL и принимает один или несколько синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения; и
декодер, который декодирует цифровые видеоданные в компоненте NAL на основе упомянутого указания;
причем модуль компонентов NAL обнаруживает один или несколько синтаксических элементов в компоненте NAL для определения, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием, и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.34. A device for processing scalable digital video data, the device comprising:
a network abstraction layer (NAL) component module that receives the enhancement layer video data into the NAL component and receives one or more syntax elements into the NAL component to indicate whether the NAL component includes the enhancement layer video data; and
a decoder that decodes digital video data in the NAL component based on the indication;
moreover, the NAL component module detects one or more syntax elements in the NAL component to determine at least one of:
whether the enhancement level video data in the NAL component includes intra-frame encoded video data, and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
принимает видеоданные базового уровня во втором компоненте NAL;
обнаруживает один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, включает ли первый компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения;
обнаруживает один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования; и
обнаруживает один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, следует ли использовать добавление пиксельной области или области преобразования видеоданных уровня улучшения к видеоданным базового уровня для декодирования цифровых видеоданных.37. The device according to clause 34, in which the NAL component is the first NAL component, and the NAL component module:
receives base layer video data in a second NAL component;
detects one or more syntax elements in at least one of the first and second NAL components to determine whether the first NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of the reference image layer;
detects one or more syntax elements in at least one of the first and second NAL components for identifying blocks in the video data of the enhancement level containing syntax elements with non-zero transform coefficients; and
detects one or more syntax elements in at least one of the first and second NAL components to determine whether to use the addition of a pixel region or a transform region of the enhancement layer video data to the base layer video to decode digital video data.
приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (NAL);
приема одного или нескольких синтаксических элементов в компоненте NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и одного или нескольких синтаксических элементов для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения; и
декодирования цифровых видеоданных в компоненте NAL на основе упомянутого указания.41. A processor for processing scalable digital video data, the processor being configured to:
receiving video data of the enhancement layer in a component of a network abstraction layer (NAL);
receiving one or more syntax elements in the NAL component to indicate whether the NAL component includes video data of the enhancement level and one or more syntax elements to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in the video data of the enhancement level; and
decoding digital video data in a NAL component based on the indication.
средство для приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (NAL);
средство для приема одного или нескольких синтаксических элементов в компоненте NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения;
средство для декодирования цифровых видеоданных в компоненте NAL на основе упомянутого указания; и
средство для обнаружения одного или нескольких синтаксических элементов в компоненте NAL для определения, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием, и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения.42. A device for processing scalable digital video data, the device comprising:
means for receiving video data of the enhancement layer in a network abstraction layer (NAL) component;
means for receiving one or more syntax elements in the NAL component to indicate whether the NAL component includes video data of the enhancement level;
means for decoding digital video data in a NAL component based on the indication; and
means for detecting one or more syntax elements in the NAL component to determine at least one of:
whether the enhancement level video data in the NAL component includes intra-frame encoded video data, and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in video data of the enhancement level.
средство для приема видеоданных базового уровня во втором компоненте NAL;
средство для обнаружения одного или нескольких синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня; и
средство для пропуска декодирования видеоданных уровня улучшения, если определено, что видеоданные уровня улучшения не включают в себя никаких остаточных данных, относящихся к видеоданным базового уровня.44. The device according to § 42, in which the NAL component is the first NAL component, and the device further comprises:
means for receiving base level video data in a second NAL component;
means for detecting one or more syntax elements in at least one of the first and second NAL components to determine whether the enhancement layer video data includes any residual data related to the base layer video data; and
means for skipping decoding of the video data of the enhancement layer, if it is determined that the video data of the enhancement layer does not include any residual data related to the base layer video data.
средство для приема видеоданных базового уровня во втором компоненте NAL;
средство для обнаружения одного или нескольких синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, включает ли первый компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения;
средство для обнаружения одного или нескольких синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования; и
средство для обнаружения одного или нескольких синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, следует ли использовать добавление видеоданных уровня улучшения к видеоданным базового уровня в пиксельной области или в области преобразования для декодирования цифровых видеоданных.45. The device according to § 42, in which the NAL component is the first NAL component, and the device further comprises:
means for receiving base level video data in a second NAL component;
means for detecting one or more syntax elements in at least one of the first and second NAL components to determine whether the first NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of the reference image layer;
means for detecting one or more syntax elements in at least one of the first and second NAL components for identifying blocks in enhancement level video data containing syntax elements with non-zero transform coefficients; and
means for detecting one or more syntax elements in at least one of the first and second NAL components to determine whether to add the enhancement layer video data to the base layer video data in the pixel region or in the transform domain to decode the digital video data.
код для приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (NAL); и
код для приема одного или нескольких синтаксических элементов в компоненте NAL
для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и одного или нескольких синтаксических элементов для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте NAL в себя видеоданные с внутрикадровым кодированием;
включает ли компонент NAL в себя параметр последовательности, набор параметров изображения, слой опорного изображения или раздел данных слоя опорного изображения; и
количества ненулевых коэффициентов с величиной, превышающей единицу, в блоках с внутрикадровым кодированием в видеоданных уровня улучшения; и
код для декодирования цифровых видеоданных в компоненте NAL на основе упомянутого указания. 49. A computer-readable medium on which a computer program product is stored, the computer program product comprising computer-executable codes for causing a computer to implement a method for processing scalable digital video data, comprising:
code for receiving video data of the enhancement level in a component of the network abstraction layer (NAL); and
code for receiving one or more syntax elements in a NAL component
to indicate whether the NAL component includes video data of the enhancement level, and one or more syntax elements to indicate at least one of:
whether the video data enhancement level in the NAL component includes video data with intraframe coding;
whether the NAL component includes a sequence parameter, a set of image parameters, a reference image layer, or a data section of a reference image layer; and
the number of non-zero coefficients with a value greater than one in blocks with intraframe coding in the video data of the enhancement level; and
code for decoding digital video data in a NAL component based on the indication.
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US78731006P | 2006-03-29 | 2006-03-29 | |
US60/787,310 | 2006-03-29 | ||
US78932006P | 2006-04-04 | 2006-04-04 | |
US60/789,320 | 2006-04-04 | ||
US60/833,445 | 2006-07-25 | ||
US11/562,360 US20070230564A1 (en) | 2006-03-29 | 2006-11-21 | Video processing with scalability |
US11/562,360 | 2006-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2008142739A RU2008142739A (en) | 2010-08-20 |
RU2406254C2 true RU2406254C2 (en) | 2010-12-10 |
Family
ID=46305104
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2008142739/09A RU2406254C2 (en) | 2006-03-29 | 2007-03-29 | Video processing with scalability |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2406254C2 (en) |
Cited By (11)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2547239C2 (en) * | 2010-12-22 | 2015-04-10 | Квэлкомм Инкорпорейтед | Mode-dependent scanning of video data block coefficients |
RU2562762C2 (en) * | 2010-12-21 | 2015-09-10 | Нтт Докомо, Инк. | Enhanced intra-prediction coding using planar representations |
RU2566972C2 (en) * | 2011-03-10 | 2015-10-27 | Квэлкомм Инкорпорейтед | Methods of video coding for coding of dependable images after arbitrary access |
RU2580066C2 (en) * | 2011-06-03 | 2016-04-10 | Квэлкомм Инкорпорейтед | Memory efficient context modelling |
RU2601196C2 (en) * | 2012-07-06 | 2016-10-27 | Нтт Докомо, Инк. | Video predictive coding device, video predictive coding method, video predictive coding program, video predictive decoding device, video predictive decoding method and video predictive decoding program |
RU2612577C2 (en) * | 2012-07-02 | 2017-03-09 | Нокиа Текнолоджиз Ой | Method and apparatus for encoding video |
RU2613737C2 (en) * | 2012-09-24 | 2017-03-21 | Квэлкомм Инкорпорейтед | Bitstream compliance testing |
RU2679990C2 (en) * | 2014-03-24 | 2019-02-14 | Сони Корпорейшн | Image coding apparatus and method and image decoding apparatus and method |
US10499068B2 (en) | 2014-12-31 | 2019-12-03 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
US11736705B2 (en) | 2020-05-22 | 2023-08-22 | Ge Video Compression, Llc | Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts |
RU2822990C1 (en) * | 2019-09-24 | 2024-07-16 | Хуавэй Текнолоджиз Ко., Лтд. | Ols for spatial and snr scalability |
-
2007
- 2007-03-29 RU RU2008142739/09A patent/RU2406254C2/en not_active IP Right Cessation
Non-Patent Citations (1)
Title |
---|
RALF SCHAFER et al, MCTF and scalability extension of H.264/AVC and its application to video transmission, storage, and surveillance, Visual Communications and Image Processing 2005, Proceedings of the SPIE, Volume 5960, c.c.343-354. Advanced video coding for generic audiovisual services, ITU-T STANDARD PRE-PUBLISHED (P), INTERNATIONAL TELECOMMUNICATION UNION, GENEVA, no.H264 3/5, 1 March 2005. SCHWARZ H. et al, Combined Scalability Support for the Scalable Extension of H. 264/AVC, MULTIMEDIA AND EXPO, 2005. ICME 2005. IEEE INTERNATIONAL CONFERENCE ON AMSTERDAM, 06 JULY 2005, PISCATAWAY, IEEE, c.c.446-449. GHANDI M.M., GHANBARI M, Layered H.264 video transmission with hierarchical QAM, 1 May 2005, c.c.1-17. YE-KUI WANG et al, Scalability information SEI for SVC, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-0012, 15th Meeting: Busan, 16-22 April, 2005. SHIJUN SUN et al, Extended Spatial Scalability with picture-level adaptation, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T * |
Cited By (21)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2562762C2 (en) * | 2010-12-21 | 2015-09-10 | Нтт Докомо, Инк. | Enhanced intra-prediction coding using planar representations |
RU2600536C2 (en) * | 2010-12-21 | 2016-10-20 | Нтт Докомо, Инк. | Improved coding with intra-frame prediction using planar representations |
RU2643504C1 (en) * | 2010-12-21 | 2018-02-01 | Нтт Докомо, Инк. | Advanced intraframe prediction coding using planar representations |
RU2547239C2 (en) * | 2010-12-22 | 2015-04-10 | Квэлкомм Инкорпорейтед | Mode-dependent scanning of video data block coefficients |
RU2566972C2 (en) * | 2011-03-10 | 2015-10-27 | Квэлкомм Инкорпорейтед | Methods of video coding for coding of dependable images after arbitrary access |
RU2580066C2 (en) * | 2011-06-03 | 2016-04-10 | Квэлкомм Инкорпорейтед | Memory efficient context modelling |
RU2612577C2 (en) * | 2012-07-02 | 2017-03-09 | Нокиа Текнолоджиз Ой | Method and apparatus for encoding video |
RU2601196C2 (en) * | 2012-07-06 | 2016-10-27 | Нтт Докомо, Инк. | Video predictive coding device, video predictive coding method, video predictive coding program, video predictive decoding device, video predictive decoding method and video predictive decoding program |
RU2674928C1 (en) * | 2012-07-06 | 2018-12-13 | Нтт Докомо, Инк. | Prediction video encoding apparatus, prediction video encoding method, prediction video encoding program, prediction video decoding apparatus, prediction video decoding method and prediction video decoding program |
US10021394B2 (en) | 2012-09-24 | 2018-07-10 | Qualcomm Incorporated | Hypothetical reference decoder parameters in video coding |
RU2649297C2 (en) * | 2012-09-24 | 2018-03-30 | Квэлкомм Инкорпорейтед | Hypothetical reference decoder parameters in video coding |
RU2613737C2 (en) * | 2012-09-24 | 2017-03-21 | Квэлкомм Инкорпорейтед | Bitstream compliance testing |
RU2679990C2 (en) * | 2014-03-24 | 2019-02-14 | Сони Корпорейшн | Image coding apparatus and method and image decoding apparatus and method |
US10499068B2 (en) | 2014-12-31 | 2019-12-03 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
RU2746934C2 (en) * | 2014-12-31 | 2021-04-22 | Нокиа Текнолоджиз Ой | Interlevel prediction for scalable encoding and decoding of video information |
RU2746934C9 (en) * | 2014-12-31 | 2021-06-29 | Нокиа Текнолоджиз Ой | Interlevel prediction for scalable encoding and decoding of video information |
US11330279B2 (en) | 2014-12-31 | 2022-05-10 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
US11962793B2 (en) | 2014-12-31 | 2024-04-16 | Nokia Technologies Oy | Apparatus, a method and a computer program for video coding and decoding |
RU2822990C1 (en) * | 2019-09-24 | 2024-07-16 | Хуавэй Текнолоджиз Ко., Лтд. | Ols for spatial and snr scalability |
US11736705B2 (en) | 2020-05-22 | 2023-08-22 | Ge Video Compression, Llc | Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts |
US11863770B2 (en) | 2020-05-22 | 2024-01-02 | Ge Video Compression, Llc | Video encoder, video decoder, methods for encoding and decoding and video data stream for realizing advanced video coding concepts |
Also Published As
Publication number | Publication date |
---|---|
RU2008142739A (en) | 2010-08-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CA2644605C (en) | Video processing with scalability | |
RU2406254C2 (en) | Video processing with scalability | |
US20210195249A1 (en) | Methods, devices and systems for parallel video encoding and decoding | |
CN101822057B (en) | Adaptive coding of video block header information | |
JP5795416B2 (en) | A scalable video coding technique for scalable bit depth | |
JP5307017B2 (en) | Variable length coding table selection based on video block for refinement coefficient coding | |
US9510016B2 (en) | Methods and apparatus for video coding and decoding with reduced bit-depth update mode and reduced chroma sampling update mode | |
EP2735149B1 (en) | Adaptation parameter sets for video coding | |
JP5231391B2 (en) | Method and system for encoding and decoding information related to video compression | |
KR101365596B1 (en) | Video encoding apparatus and method and video decoding apparatus and method | |
JP4981927B2 (en) | CAVLC extensions for SVCCGS enhancement layer coding | |
RU2497303C2 (en) | Video coding using conversion more than 4×4 and 8×8 | |
US10841598B2 (en) | Image encoding/decoding method and device | |
US20090129474A1 (en) | Method and apparatus for weighted prediction for scalable video coding |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20190330 |