RU2406254C2 - Video processing with scalability - Google Patents

Video processing with scalability Download PDF

Info

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
Application number
RU2008142739/09A
Other languages
Russian (ru)
Other versions
RU2008142739A (en
Inventor
Пэйсун ЧЭНЬ (US)
Пэйсун ЧЭНЬ
Тао ТЯНЬ (US)
Тао Тянь
Фан ШИ (US)
Фан Ши
Виджаялакшми Р. РАВИИНДРАН (US)
Виджаялакшми Р. РАВИИНДРАН
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US11/562,360 external-priority patent/US20070230564A1/en
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2008142739A publication Critical patent/RU2008142739A/en
Application granted granted Critical
Publication of RU2406254C2 publication Critical patent/RU2406254C2/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

FIELD: information technologies.
SUBSTANCE: video data of improvement level is included into component of network abstraction level (NAL); one or several syntactic elements are included into NAL to indicate, whether NAL component includes video data of improvement level, and one or several syntactic elements to indicate at least one of the following: whether video data of improvement level include video data with intraframe coding in NAL component; whether NAL component includes parametre of sequence, set of image parametres, layer of reference image or section of data of reference image layer; and number of nonzero coefficients with value exceeding one, in units of intraframe coding in video data of improvement level.
EFFECT: realisation of expansion of versions of International Telecommunication Union standard for efficient scalable video coding.
49 cl, 16 dwg, 18 tbl

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 broadcast server 12, a transmitting tower 14, and a plurality of subscriber units 16A, 16B. Broadcast server 12 receives digital multimedia content from one or more sources and encodes this multimedia content, for example, in accordance with any of the above video encoding standards, for example, H.264. The multimedia content encoded by the broadcast server 12 can be arranged as separate bitstreams to support various channels selected by the user associated with the subscriber device 16. The broadcast server 12 can receive digital multimedia content live or in the form of archived multimedia content from various providers content.

Вещательный сервер 12 может включать в себя или быть связан с модулятором/передатчиком, который содержит соответствующие компоненты радиочастотной (RF) модуляции, фильтрации и усиления для возбуждения одной или нескольких антенн, связанных с передающей башней 14, для доставки закодированного мультимедийного контента, полученного от вещательного сервера 12, через беспроводный канал. Согласно некоторым аспектам вещательный сервер 12 может быть сконфигурирован в общем случае для предоставления видеоуслуг в реальном времени в наземных мобильных мультимедийных широковещательных (TM3) системах согласно спецификации FLO. Модулятор/передатчик может передавать мультимедийные данные в соответствии с любым из множества различных способов беспроводной связи, таких как многостанционный доступ с кодовым разделением каналов (CDMA), многостанционный доступ с временным разделением каналов (TDMA), многостанционный доступ с частотным разделением каналов (FDMA), мультиплексирование с ортогональным частотным разделением каналов (OFDM) или любой комбинацией указанных способов.Broadcast server 12 may include or be coupled to a modulator / transmitter that includes appropriate components of radio frequency (RF) modulation, filtering, and amplification to drive one or more antennas associated with transmit tower 14 to deliver encoded multimedia content received from the broadcast server 12, through a wireless channel. According to some aspects, the broadcast server 12 may be generally configured to provide real-time video services in terrestrial mobile multimedia broadcast (TM3) systems according to the FLO specification. The modulator / transmitter can transmit multimedia data in accordance with any of a variety of different wireless communication methods, such as code division multiple access (CDMA), time division multiple access (TDMA), frequency division multiple access (FDMA), orthogonal frequency division multiplexing (OFDM) or any combination of these methods.

Каждое абонентское устройство 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 broadcast server 12 encodes the source video data to create separate base-level bitstreams and enhancement levels for multiple video channels. Transmission on these channels is usually performed simultaneously, so that the subscriber unit 16A, 16B can at any time choose another channel for viewing.

Следовательно, абонентское устройство 16А, 16В под управлением пользователя может выбрать один канал для просмотра спортивных передач, а затем выбрать другой канал для просмотра новостей или некоторой другой запланированной программы, совсем так, как при просмотре телевизора. В общем, каждый канал включает в себя базовый уровень и уровень улучшения, которые передаются с различными значениями частоты PER.Therefore, the user device 16A, 16B under the control of the user can select one channel for watching sports programs, and then select another channel for watching news or some other scheduled program, just like when watching TV. In general, each channel includes a base layer and an enhancement layer that are transmitted with different PER frequencies.

В примере на фиг. 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 subscriber units 16A, 16B are shown. However, the system 10 may include any number of subscriber units 16A, 16B in a given coverage area. It is noteworthy that many subscriber devices 16A, 16B can access the same channels to simultaneously view the same content. In FIG. 1 shows the location of subscriber units 16A and 16B with respect to the transmitting tower 14, in which one subscriber unit 16A is closer to the transmitting tower and the other subscriber unit 16B is further from the transmitting tower. Since the base layer is encoded at a low PER frequency, it must be reliably received and decoded by any subscriber unit 16 in the coverage area used. As shown in FIG. 1, the base level is received by both subscriber units 16A, 16B. However, the subscriber 16B is further from the transmitting tower 14 and does not accept the level of improvement with sufficient reliability.

Более близкое абонентское устройство 16А способно обеспечить видео более высокого качества, поскольку ему доступны данные как базового уровня, так и уровня улучшения, в то время как абонентское устройство 16В способно представлять видео только с минимальным уровнем качества, обеспечиваемым данными базового уровня. Следовательно, видео, получаемое абонентскими устройствами 16, является масштабируемым в том смысле, что к базовому уровню для повышения отношения сигнал-шум декодированных видеоданных можно добавить предварительно декодированный уровень улучшения. Однако масштабируемость возможна только тогда, когда имеются данные уровня улучшения. Как описано ниже, при наличии данных уровня улучшения синтаксические элементы и семантика, связанные с компонентами NAL уровня улучшения, помогают видеодекодеру в абонентском устройстве 16 реализовать масштабируемость видеоданных. В данном описании, и в частности, на чертежах, термин «улучшение» для краткости может быть укорочен до сокращения «расш» (или "ENH").Closer subscriber device 16A is capable of providing higher quality video, since both basic level and enhancement level data are available to it, while subscriber device 16B is capable of presenting video with only the minimum quality level provided by the basic level data. Therefore, the video received by the subscriber units 16 is scalable in the sense that a pre-decoded enhancement level can be added to the base level to increase the signal-to-noise ratio of the decoded video data. However, scalability is only possible when there is improvement level data. As described below, with the enhancement layer data, the syntax elements and semantics associated with the enhancement layer NAL components help the video decoder in the subscriber unit 16 realize scalability of the video data. In this description, and in particular, in the drawings, the term "improvement" for short may be shortened to the abbreviation "exp" (or "ENH").

На фиг. 2 представлена схема, иллюстрирующая видеокадры в базовом уровне 17 и уровне 18 улучшения масштабируемого битового видеопотока. Базовый уровень 17 представляет собой битовый поток, содержащий кодированные видеоданные, которые представляют первый уровень пространственно-временной-SNR масштабируемости. Уровень 18 улучшения представляет собой битовый поток, содержащий кодированные видеоданные, которые представляют второй уровень пространственно-временной-SNR масштабируемости. В общем случае битовый поток уровня улучшения может декодироваться только вместе с базовым уровнем, а не независимо. Уровень 18 улучшения содержит ссылки на декодированные видеоданные в базовом уровне 17. Указанные ссылки можно использовать либо в области преобразования, либо в пиксельной области для создания конечных декодированных видеоданных.In FIG. 2 is a diagram illustrating video frames in the base layer 17 and the scalable bitstream video enhancement layer 18. Base layer 17 is a bitstream containing encoded video data that represents a first level of spatio-temporal-SNR scalability. Improvement layer 18 is a bitstream containing encoded video data that represents a second level of spatio-temporal-SNR scalability. In the general case, the bitstream of the enhancement layer can only be decoded together with the base layer, and not independently. Improvement level 18 contains links to decoded video data in the base layer 17. These links can be used either in the transform domain or in the pixel domain to create final decoded video data.

Базовый уровень 17 и уровень 18 улучшения могут содержать I-кадры (с внутрикадровым кодированием), P-кадры (с предиктивным кодированием) и В-кадры (формируемые методом предсказания вперед/назад). P-кадры в уровне 18 улучшения опираются на ссылки на P-кадры в базовом уровне 17. Путем декодирования кадров в уровне 18 улучшения и базовом уровне 17 видеодекодер имеет возможность повысить качество декодированного видео. Например, базовый уровень 17 может включать в себя видео, закодированное с минимальной частотой 15 кадров в секунду, в то время как уровень 18 улучшения может включать в себя видео, закодированное с более высокой частотой - 30 кадров в секунду. Для поддержки кодирования с разными уровнями качества базовый уровень 17 и уровень 18 улучшения могут кодироваться с большим параметром квантования (QP) и меньшим QP соответственно.Base level 17 and enhancement level 18 may comprise I-frames (with intra-frame coding), P-frames (with predictive coding) and B-frames (generated by the forward / backward prediction method). P-frames in enhancement level 18 rely on references to P-frames in base level 17. By decoding frames in enhancement level 18 and base level 17, a video decoder is able to improve the quality of decoded video. For example, base layer 17 may include video encoded at a minimum frequency of 15 frames per second, while enhancement level 18 may include video encoded at a higher frequency of 30 frames per second. To support encoding with different quality levels, the base level 17 and enhancement level 18 can be encoded with a large quantization parameter (QP) and a lower QP, respectively.

На фиг. 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 broadcast server 12 and a subscriber device 16 in the digital multimedia broadcasting system 10 of FIG. 1. As shown in FIG. 3, the broadcast server 12 includes one or more video sources 20 or an interface for various video sources. Broadcast server 12 also includes video decoder 22, NAL component module 23, and modulator / transmitter 24. Subscriber device 16 includes receiver / demodulator 26, NAL component module 27, video decoder 28, and video display device 30. The receiver / demodulator 26 receives video data from the modulator / transmitter 24 through the communication channel 15. Video decoder 22 includes a base layer encoder module 32 and an enhancement level encoder module 34. Video decoder 28 includes a level combiner (base / enhancement) module 38 and a base / enhancement entropy decoder 40.

Кодер 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 video decoder 28 in decoding the base layer and enhancement layer data without significantly increasing complexity. For example, in a NAL component that includes video data of the enhancement layer, a NAL component that includes video data of the base layer, or both, one or more syntax elements indicating the presence of video data of the enhancement layer in the NAL component may be provided.

Модулятор/передатчик 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 broadcast server 12 and the subscriber device 16 may be equipped with two-way communication, so that the broadcast server 12, the subscriber device 16, or both of them include transmitting and receiving components, and both are capable of encoding and decoding video data. According to other aspects, the broadcast server 12 may be a subscriber device 16 equipped with encoding, decoding, transmission and reception of video data using encoding of the base level and the level of improvement. Thus, scalable video processing for video data transmitted between two or more subscriber devices is also contemplated herein.

Модуль 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 video decoder 28 for use in decoding the video data of the base layer and the enhancement layer. The NAL component module 27 may be a separate unit, as shown in FIG. 3, or be integrated or otherwise integrated with video decoder 28. Entropy decoder 40 of the base level / level of improvement applies entropy decoding to the received video data. If there is improvement level data, then the level combiner (base / enhancement) module 38 combines the coefficients from the base level and the enhancement level using the guidelines provided by the NAL component module 27 to support single-level decoding of the combined information. Video decoder 28 decodes the combined video data to create output video data driving the display device 30. The syntax elements found in each NAL component and the semantics of the syntax elements control the video decoder 28 when combining and decoding the received video data of the base level and the enhancement level.

Различные компоненты в вещательном сервере 12 и абонентском устройстве 16 могут быть реализованы с помощью любой подходящей комбинации аппаратных, программных и программно-аппаратных средств. Например, видеокодер 22 и модуль 23 компонентов NAL, а также модуль 27 компонентов NAL и видеодекодер 28 могут быть реализованы с помощью одного или нескольких микропроцессоров общего назначения, цифровых процессоров сигналов (DSP), аппаратных ядер, прикладных специализированных интегральных схем (ASIC), вентильных матриц, программируемых пользователем (FPGA) или любой их комбинации. Вдобавок, различные компоненты могут быть реализованы в видеокодере-декодере (CODEC). В некоторых случаях ряд аспектов раскрытых здесь способов могут выполняться процессором DSP, который активизирует различные аппаратные компоненты в аппаратном ядре для ускорения процесса кодирования.The various components in the broadcast server 12 and the subscriber unit 16 can be implemented using any suitable combination of hardware, software, and firmware. For example, video encoder 22 and NAL component module 23, as well as NAL component module 27 and video decoder 28 can be implemented using one or more general purpose microprocessors, digital signal processors (DSPs), hardware cores, application specific integrated circuits (ASICs), gateways user programmable matrices (FPGAs) or any combination thereof. In addition, various components can be implemented in a video encoder-decoder (CODEC). In some cases, a number of aspects of the methods disclosed herein may be performed by a DSP processor that activates various hardware components in the hardware core to speed up the encoding process.

Что касается аспектов, функциональные возможности которых реализуются программными средствами, например, функциональные возможности, реализуемые процессором или 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 video decoder 28 for subscriber unit 16. In the example of FIG. 4, as in FIG. 3, video decoder 28 includes a base layer / enhancement entropy decoder module 40 and a layer combiner (base / extension) module 38. In FIG. 4 also shows a base level error recovery module 44 plus an enhancement layer and a dequantization module 46, as well as a dequantization and prediction module 48. In FIG. 4 also shows a post-processing module 50 that receives the output of the video decoder 28 and the display device 30.

Энтропийный декодер 40 базового уровня/уровня улучшения применяет энтропийное декодирование к видеоданным, полученным видеодекодером 28. Модуль 38 объединителя уровней (базового/расширения) объединяет видеоданные базового уровня и уровня улучшения для заданного кадра или макроблока при наличии данных уровня улучшения, то есть когда данные уровня улучшения успешно приняты. Как будет описано ниже, модуль 38 объединителя уровней (базового/расширения) может сначала на основе синтаксических элементов, присутствующих в компоненте NAL, определить, содержит ли компонент NAL данные уровня улучшения. Если содержит, то модуль 38 объединителя объединяет данные базового уровня для соответствующего кадра с данными уровня улучшения, например, путем масштабирования данных базового уровня. Таким образом, модуль 38 объединителя создает одноуровневый битовый поток, который может быть декодирован видеодекодером 28 без обработки множества уровней. Другие синтаксические элементы и связанная с ними семантика в компоненте NAL могут задать способ объединения и декодирования данных базового уровня и уровня улучшения.The entropy base level / enhancement level decoder 40 applies entropy decoding to the video data received by the video decoder 28. The level combiner (base / extension) module 38 combines the base level and enhancement level video data for a given frame or macroblock when there is enhancement level data, that is, when the level data The improvements have been successfully adopted. As will be described below, the level combiner (base / extension) module 38 may first, based on the syntax elements present in the NAL component, determine whether the NAL component contains enhancement level data. If it contains, then combiner module 38 combines the base layer data for the corresponding frame with the enhancement layer data, for example, by scaling the base layer data. Thus, combiner module 38 creates a single-level bitstream that can be decoded by video decoder 28 without processing multiple layers. Other syntax elements and their associated semantics in the NAL component can specify how to combine and decode data at the base level and enhancement level.

Модуль 44 восстановления при ошибках исправляет ошибки в декодированном выходном сигнале модуля 38 объединителя. Модуль 46 деквантизации и модуль 48 обратного преобразования применяют функции деквантизации и обратного преобразования соответственно к выходу модуля 44 восстановления при ошибках, создавая декодированные выходные видеоданные для модуля 55 постобработки. Модуль 50 постобработки может выполнять любую из множества различных функций повышения качества видео, таких как деблокирование, подавление реверберации, сглаживание, повышение четкости или т.п. При наличии данных уровня улучшения для кадра или макроблока видеодекодер 28 имеет возможность создания видео более высокого качества для подачи в модуль 50 постобработки и устройство 30 отображения. Если данные уровня улучшения отсутствуют, то декодированное видео создается с минимальным уровнем качества, обеспечиваемым базовым уровнем.Error recovery module 44 corrects errors in the decoded output of combiner module 38. The de-quantization module 46 and the inverse transform module 48 apply the functions of de-quantization and inverse transform, respectively, to the output of the error recovery module 44, creating decoded video output for the post-processing module 55. The post-processing module 50 may perform any of a variety of different video enhancement functions, such as deblocking, suppressing reverb, smoothing, sharpening, or the like. If there is improvement level data for a frame or macroblock, video decoder 28 has the ability to create higher quality video for submission to post-processing module 50 and display device 30. If there is no improvement level data, then the decoded video is created with the minimum quality level provided by the basic level.

На фиг. 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, video decoder 28 will decode both levels and create video with the quality of the improvement level. As shown in FIG. 5, after decoding of a group of pictures (GOP) has begun (54), the NAL component module 27 determines whether the incoming NAL components include enhancement layer data or only base layer data (58). If the NAL components include only basic layer data, then video decoder 28 applies standard single-level decoding to the basic layer data (60) and continues to the end of the GOP group (62).

Если компоненты 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 video decoder 28 performs base layer I-decoding (64) and enhancement layer I-decoding (ENH) ( 66). In particular, video decoder 28 decodes all I-frames in a base layer and an enhancement layer. Video decoder 28 moves the contents of the memory (68) to control the decoding of I-frames for both the base level and the enhancement level. In essence, the base layer and the enhancement layer provide two I-frames for a single I-frame, that is, the Ie frame of the enhancement layer and the Ib frame of the base layer. For this reason, moving the contents of memory can be used.

Для декодирования 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 decoder 28 decodes the reconstructed frame as a P-frame with zero motion vectors, providing transparent scalability.

По сравнению с одноуровневым декодированием декодирование 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 decoder 28 performs the processing of moving the memory indices depending on whether there is an enhancement level bitstream. If the amount of memory for this is too small, then it is possible to overwrite Ie on Ib, since all motion vectors are zero.

После декодирования 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 combiner module 38 combines the data of the P-frames of the base level and the enhancement level into a single level (70). Then, the de-quantization module 46 and the inverse transform module 48 decode a single P-frame level (72). In addition, the de-quantization module 46 and the inverse transform module 48 decode the B-frames (74).

После декодирования данных 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 video decoder 28. As shown in FIG. 6, the coefficients of the P-frame of the base layer are subjected to de-quantization 80 and inverse transform 82, for example, using inverse transform module 46 and inverse transform and prediction module 48, respectively (Fig. 4), and then are summed by adder 84 with residual data from buffer 86, representing the reference frame, to create a decoded output of the P-frame of the basic level. However, if there is improvement level data, the base level coefficients are scaled (88) to match the quality of the improvement level coefficients.

Затем в сумматоре 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 adder 96 with the residual data from the buffer 98. The output is the combined decoded data of the base level and level of improvement, giving an increased level of quality relative to the base level, but may be required only single-level processing.

В общем, в буферах 86 и 98 базового уровня и уровня улучшения могут запоминаться восстановленные опорные видеоданные, заданные файлами конфигурации в целях компенсации движения. При приеме битовых потоков как базового уровня, так и уровня улучшения простое масштабирование коэффициентов дискретного косинусного преобразования (DCT) базового уровня и суммирование их с коэффициентами DCT уровня улучшения может поддерживать одноуровневое кодирование, при котором для двух уровней данных выполняется только единственная операция деквантизации и обратного DCT.In general, in the buffers 86 and 98 of the base level and the enhancement level, the reconstructed reference video data specified by the configuration files in order to compensate for movement can be stored. When receiving bitstreams of both the base level and the enhancement level, simply scaling the base level discrete cosine transform (DCT) coefficients and summing them with the enhancement level DCT coefficients can support single-level coding, in which only a single dequantization and reverse DCT operation is performed for two data levels .

Согласно некоторым аспектам масштабирование данных базового уровня может сопровождаться простой операцией битового сдвига. Например, если параметр квантования (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:

Figure 00000001
Figure 00000001

где С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 de-quantization module 46 and the inverse transform module 48 are the sum of the scaled base-level coefficients and the enhancement-level coefficients, which is expressed as COEFF = SCALEDBASE_COEFF + ENH_COEFF (104). Thus, combiner 38 combines the enhancement level and the base level data into a single level for the dequantization module 46 and the video decoder 28 inverse transform module 48. If the base level MB combined with the enhancement level does not have nonzero coefficients (branch NO from step 102), then then the coefficients of the improvement level are not cumulative with the coefficients of the base level. Instead, the coefficients for the de-quantization module 46 and the inverse transform module 48 are coefficients of the enhancement level, which can be represented as COEFF = ENH_COEFF (108). The dequantization module 46 and the inverse transform module 48 decode the MB (106) using either the enhancement level coefficients (108) or the combined base level and enhancement level coefficients (104).

На фиг. 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 broadcast server 12 to the subscriber 16. As one example, the NAL component module 23 can set the parameter type of the NAL component, for example, nal_unit_type in the component NAL equal to the selected value (for example, 30) to indicate that the NAL component is a specialized NAL component, which may include video data of the enhancement level. Other syntax elements and associated values, as described herein, may be generated by the NAL component module 23 to facilitate processing and decoding of the enhancement layer video data carried in the various NAL components. One or more syntax elements may be included in the first NAL component, including base layer video data, the second NAL component, including enhancement level video, or both, to indicate the presence of enhancement level video data in the second NAL component.

Синтаксические элементы и семантика более подробно описываются ниже. На фиг. 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 tower 14, interference, or other factors. However, from the point of view of the broadcast server 12, the base layer video data and the enhancement layer video data are sent regardless of the ability of some subscriber units 16 to receive both levels.

Как показано на фиг. 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 video decoder 28, the NAL component module 23 inserts into the first NAL component a value indicating that the NAL component type for the first NAL component is an RBSP payload containing base layer video data (114). In addition, the NAL component module 23 inserts into the second NAL component a value indicating that the type of the extended NAL component for the second NAL component is RBSP containing video data of the enhancement level (116). These values can be associated with specific syntax elements. In this way, the NAL component module 27 in the subscriber unit 16 can distinguish between NAL components containing the base layer video data and the enhancement layer video data and detect when the video decoder 28 should initiate the processing of scalable video data. The base layer bitstream can strictly correspond to the exact H.264 format, while the enhancement layer bitstream can include an extended syntax element of the bitstream, for example, “extended_nal_unit_type” in the header of the NAL component. From the point of view of video decoder 28, the syntax element in the header of the NAL component, for example, “extension flag” indicates the bit stream of the enhancement layer and starts the corresponding processing by the video decoder.

Если данные уровня улучшения включают в себя (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 video decoder 28 indicating that internal (I) processing of the video data of the enhancement layer in the second NAL component is necessary, assuming that the second NAL component is securely received by the subscriber unit 16. In any case, does the layer improving the data with intra-frame encoding or not (118), the NAL component module 23 also inserts the value of the syntax element into the second NAL component to indicate whether to add the base layer video data to video data of the enhancement level in the pixel region or the transform region (122), depending on which region is specified by the enhancement level encoder 34.

Если в уровне улучшения присутствуют остаточные данные (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 video decoder 28 in the subscriber unit 16 when performing scalable video decoding. In particular, the NAL component module 27 detects various syntax elements and issues instructions to the entropy decoder 40 and combiner 38 for efficiently processing the base level and enhancement video data in order to decode them.

Например, наличие данных уровня улучшения в компоненте 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 video decoder 28 should be used in the pixel or transform region can be shown by the syntax element “decoding_mode_flag” in the header of the enhancement layer “enh_slice_header”. An indication of whether there is intra-frame encoded data at the enhancement level may be provided by the syntax element refine_ intra_mb_flag. Indication of blocks with intraframe coding having nonzero coefficients and an internal CBP pattern can be shown with syntax elements, such as “enh_intra16 × 16_macroblock_cbp ()” for MB 16 × 16 with intraframe coding at the macroblock level of the enhancement level (enh_macroblock_layer) and “coded_block_pattern for the mode with intraframe coding of 4x4 blocks in enh_macroblock_layer. The intraframe-encoded CBP template can be specified with the syntax element “enh_coded_block_pattern” in enh_macroblock_layer. The specific names of the syntax elements, although they were given for illustrative purposes, are subject to change. Accordingly, these names should not be construed as limiting the functions and indications associated with the syntactic elements mentioned.

На фиг. 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 decoder 28 to provide efficient and orderly decoding of video data as a basic level, and the level of improvement.

Например, модуль 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 video decoder 28 with appropriate instructions for their use in decoding video data of the base level and enhancement level (154).

В примерах на фигурах 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 video decoder 28 in processing the NAL component. For example, these various indications may include an indication of whether the NAL component contains video data of the enhancement layer with intra-frame encoding, an indication of whether the decoder should use the addition of video data of the enhancement level to the base layer data in the pixel or transform region, and / or an indication of whether the enhancement layer video data includes any residual data related to the basic layer video data. In addition to the above examples, enhancement layer NAL components can 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 a reference image layer.

Другие синтаксические элементы могут идентифицировать блоки в видеоданных уровня улучшения, содержащих ненулевые значения коэффициентов, указывать количество ненулевых коэффициентов в блоках с внутрикадровым кодированием в видеоданных уровня улучшения с величиной, превышающей единицу, и указывать кодированные блочные шаблоны для блоков с межкадровым кодированием в видеоданных уровня улучшения. Опять же, примеры, предложенные на фигурах 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 case 1, when not all the AC coefficients of the base level are zero, CBP for macroblocks of 16 × 16 enhancement levels with intraframe coding are decoded according to the H.264 standard. A syntax element (e.g., BaseLayerAcCoefficientsAllZero) may be provided as a flag that indicates whether all the AC coefficients of the corresponding macroblock in the base layer are zero. In case 2, when all the baseline AC coefficients are zero, a new approach can be provided for transmitting CBP macroblocks 16 × 16 with intra-frame coding. Namely, the enhancement level MB is divided into 4 subsections of MB depending on the prediction modes for 16 × 16 brightness macroblocks with intraframe coding of the base level.

Может быть предусмотрен 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 case 1, when the CBP for the MB of the combined base level (base_coded_block_pattern or base_cbp) is zero, the CBP for the MB of the enhancement level (enh_coded_block_pattern or enh_cbp) is decoded according to the H.264 standard. In case 2, when base_coded_block_pattern is not equal to zero, a new approach can be provided for the expression enh_coded_block_pattern. For a base level 8x8 block with non-zero coefficients, one bit is used to indicate whether the 8x8 block of the combined enhancement level has non-zero coefficients. The status of other 8x8 blocks is represented by variable-length coding (VLC).

В качестве дальнейшего уточнения для макроблоков 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 syntactic element enh_coeff_token 17 represents that there is at least one non-zero coefficient greater than 1. In this case, (enh_coeff_token 17), the standard approach is used to decode the total number of nonzero coefficients and coefficients with a unit at the end.enh_coeff_token (0 (16) is decoded using one of eight VLC tables, based on the context.

В этом описании различные сокращения должны интерпретироваться так, как это определено в пункте 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 values 0, 1, 2, or 3, which correspond to Intra_16 × 16_Vertical, Intra_16 × 16_Horizontal, Intra_16 × 16_DC and Intra_16 × 16_Planar, respectively. This variable is equal to the Intra16x16PredMode variable, as specified in clause 8.3.3 of the H.264 standard. The syntax element BaseLayerMBType is a variable that indicates the type of combined macroblock at the base level. This variable may be equal to the syntax element mb_type specified in clause 7.3.5 of the H.264 standard.

Термин «слой базового уровня» (или 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.

Таблица 1
Необработанная байтовая последовательная нагрузка и хвостовые биты RBSP
Table 1
Raw Byte Serial Load and RBSP Tail Bits
RBSPRBSP ОписаниеDescription RBSP набора параметров последовательностиSequence parameter set RBSP Набор параметров последовательности посылается только на базовом уровнеThe sequence parameter set is sent only at the basic level. RBSP набора параметров изображенияRBSP image parameter set Набор параметров изображения посылается только на базовом уровнеA set of image parameters is sent only at a basic level. Синтаксис RBSP раздела данных слояLayer Data Partition RBSP Syntax Синтаксис RBSP раздела данных слоя уровня улучшения соответствует стандарту H.264Enhancement layer layer data section RBSP syntax conforms to H.264

Как было указано выше, синтаксис 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.

Таблица 2
Синтаксис компонентов NAL для расширений
table 2
NAL Component Syntax for Extensions
nal_unit(NumBytesInNALunit) {nal_unit (NumBytesInNALunit) { СFROM ДескрипторDescriptor forbidden zero bitforbidden zero bit ВсеAll f(1)f (1) nal_ref_idcnal_ref_idc ВсеAll u(2)u (2) nal_unit_type /* equal to 30 */nal_unit_type / * equal to 30 * / ВсеAll u(5)u (5) reserved_zero_lbitreserved_zero_lbit ВсеAll u(1)u (1) extension_flagextension_flag ВсеAll u(1)u (1) если (! extension flag) {if (! extension flag) { enh_profile_idcenh_profile_idc ВсеAll u(3)u (3) reserved_zero_3bitsreserved_zero_3bits ВсеAll u(3)u (3) } в противном случае} otherwise {{ extended_nal_unit_typeextended_nal_unit_type ВсеAll u(6)u (6) NumBytesInRBSP=0NumBytesInRBSP = 0 для (i=1; i<NumBytesInNALunit; i++ ) {for (i = 1; i <NumBytesInNALunit; i ++) { если (i+2<NumBytesInNALunit && next_bits(24)==0x000003) {if (i + 2 <NumBytesInNALunit && next_bits (24) == 0x000003) { rbsp_byte[ NumBytesInRBSP++ ]rbsp_byte [NumBytesInRBSP ++] ВсеAll b(8)b (8) rbsp_byte[ NumBytesInRBSP++ ]rbsp_byte [NumBytesInRBSP ++] ВсеAll b(8)b (8) i+=2i + = 2 emulation_prevention_three_byte /* equal to 0x03 */emulation_prevention_three_byte / * equal to 0x03 * / ВсеAll f(8)f (8) } в противном случае} otherwise rbsp_byte[ NumBytesInRBSP++ ]rbsp_byte [NumBytesInRBSP ++] ВсеAll b(8)b (8) }} }} }}

В вышеприведенной таблице 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 decoder 28. The nal_unit_type value provides a unique dedicated nal_unit_type to support the processing of additional syntax modifications of the enhancement level bitstream in addition to the standard bitstream H.264. As an example, nal_unit_type can be set to 30 to indicate that the NAL component includes enhancement level data and trigger processing of additional syntax elements that may be present in the NAL component, such as, for example, extension_flag and extended_nal_unit_type. For example, the syntax element extended_nal_unit_type is set to some value specifying the type of extension. In particular, extended_nal_unit_type may indicate the type of NAL component of the enhancement level. The extended_nal_unit_type element may indicate the type of RBSP data structure for enhancement level data in the NAL component. For B layers, the syntax of the layer headers may conform to the H.264 standard. Further in this description, the applied semantics will be described in detail.

Синтаксис заголовка слоя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.

Таблица 3А
Синтаксис заголовка слоя
Table 3A
Layer header syntax
enh_slice_header() {enh_slice_header () { СFROM ДескрипторDescriptor first_mb_in_slicefirst_mb_in_slice 22 ue(v)ue (v) enh_slice_typeenh_slice_type 22 ue(v)ue (v) pic_parameter_set_idpic_parameter_set_id 22 ue(v)ue (v) frame_numframe_num 22 u(v)u (v) Если (pic_order_cnt_type==0) {If (pic_order_cnt_type == 0) { pic_order_cnt_lsbpic_order_cnt_lsb 22 u(v)u (v) если (pic_order_present_flag && !field_pic flag)if (pic_order_present_flag &&! field_pic flag) delta_pic_order_cnt_bottomdelta_pic_order_cnt_bottom 22 ue(v)ue (v) }} Если (pic_order_cnt_type==1&& !delta_pic_order_always_zero_flag) {If (pic_order_cnt_type == 1 &&! Delta_pic_order_always_zero_flag) { delta_pic_order_cnt[0]delta_pic_order_cnt [0] 22 se(v)se (v) если (pic_order_present_flag && !field_pic_flag)if (pic_order_present_flag &&! field_pic_flag) delta_pic_order_cnt[1]delta_pic_order_cnt [1] 22 se(v)se (v) }} если (redundant_pic_cnt_present_flag)if (redundant_pic_cnt_present_flag) redundant_pic_cntredundant_pic_cnt 22 ue(v)ue (v) decoding_modedecoding_mode 22 ue(v)ue (v) если (base_layer_slice_type!=I)if (base_layer_slice_type! = I) Refine_intra_MBRefine_intra_MB 22 f(l)f (l) Slice_qp_deltaSlice_qp_delta 22 se(v)se (v) }}

Элемент 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.

Таблица 3В
Синтаксис данных слоя
Table 3B
Layer Data Syntax
enh_slice_data() {enh_slice_data () { СFROM ДескрипторDescriptor CurrMbAddr=first_mb_in_sliceCurrMbAddr = first_mb_in_slice moreDataFlag=1moreDataFlag = 1 do{do { если (moreDataFlag) {if (moreDataFlag) { если (BaseLayerMbType!=SKIP && (refine_intra_mb_flag ||
(BaseLayerSliceType !=I && BaseLayerMbType!=I)) )
if (BaseLayerMbType! = SKIP && (refine_intra_mb_flag ||
(BaseLayerSliceType! = I && BaseLayerMbType! = I)))
enh_macroblock_layer()enh_macroblock_layer () }} CurrMbAddr=NextMbAddress(CurrMbAddr)CurrMbAddr = NextMbAddress (CurrMbAddr) moreDataFlag=more_rbsp_data()moreDataFlag = more_rbsp_data () } while (moreDataFlag )} while (moreDataFlag) }}

Синтаксис уровня макроблоковMacroblock Level Syntax

Примерный синтаксис для макроблоков уровня улучшения может быть обеспечен, как это показано в приведенной ниже таблице 4. Exemplary syntax for macroblocks of the enhancement layer can be provided, as shown in Table 4 below.

Таблица 4
Синтаксис MB уровня улучшения
Table 4
Syntax MB Improvement Level
enh_macroblock_layer() {enh_macroblock_layer () { СFROM Дескрип-торDescriptor tor если (MbPartPredMode(BaseLayerMbType, 0)== Intra_16×16) {if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16) { enh_intral6×16 macroblock_cbp()enh_intral6 × 16 macroblock_cbp () если (mb_intral6×16_luma_flag || mb_intral6×16 chroma_flag) {if (mb_intral6 × 16_luma_flag || mb_intral6 × 16 chroma_flag) { mb_qp_deltamb_qp_delta 22 se(v)se (v) enh_residual()enh_residual () 3|43 | 4 }} }} в противном случае если (MbPartPredMode(BaseLayerMbType, 0)==Intra_4×4) {otherwise, if (MbPartPredMode (BaseLayerMbType, 0) == Intra_4 × 4) { coded_block_patterncoded_block_pattern 22 me(v)me (v) если (CodedBlockPatternLuma>0 || CodedBlockPatternChroma>0) {if (CodedBlockPatternLuma> 0 || CodedBlockPatternChroma> 0) { mb_qp_deltamb_qp_delta enh_residual()enh_residual () }} }} в противном случае {otherwise { enh_coded_block_patternenh_coded_block_pattern 22 me(v)me (v) EnhCodedBlockPatternLuma=enh_coded_block_pattern % 16 EnhCodedBlockPatternChroma=enh_coded_block_pattern/16EnhCodedBlockPatternLuma = enh_coded_block_pattern% 16 EnhCodedBlockPatternChroma = enh_coded_block_pattern / 16 если (EnhCodedBlockParternLuma>0 || EnhCodedBlockPatternChroma>0)
{
if (EnhCodedBlockParternLuma> 0 || EnhCodedBlockPatternChroma> 0)
{
mb_qp_deltamb_qp_delta 22 se(v)se (v) residual()
/* 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.

Таблица 5
Синтаксис CBP макроблоков 16×16 с внутрикадровым кодированием
Table 5
Syntax CBP macroblock 16 × 16 with intraframe coding
enh_intral6×16_macroblock_cbp() {enh_intral6 × 16_macroblock_cbp () { СFROM ДескрипторDescriptor mb_intral6×16_luma_flagmb_intral6 × 16_luma_flag 22 u(1)u (1) eсли (mb_intral6×16_luma_flag) {if (mb_intral6 × 16_luma_flag) { eсли (BaseLayerAcCoefficientsAllZero)if (BaseLayerAcCoefficientsAllZero) для (mbPartIdx=0;mbPartIdx<4;mbPartIdx++) {for (mbPartIdx = 0; mbPartIdx <4; mbPartIdx ++) { mb_intral6×16_luma_part_flag[mbPartIdx]mb_intral6 × 16_luma_part_flag [mbPartIdx] 22 u(1)u (1) если (mb_intral6×16_luma_part flag[mbPartIdx] )if (mb_intral6 × 16_luma_part flag [mbPartIdx]) для (qtrMbPartIdx=0; qtrMbPartIdx<4; qtrMbPartIdx++)for (qtrMbPartIdx = 0; qtrMbPartIdx <4; qtrMbPartIdx ++) qtr_mb_intral_6×16_luma_part_flag
[mbPartldx] [qtrMbPartldxl
qtr_mb_intral_6 × 16_luma_part_flag
[mbPartldx] [qtrMbPartldxl
22 u(1)u (1)
mb_intral6×16_chroma_flagmb_intral6 × 16_chroma_flag 22 u(1)u (1) если (mb_intral6×16_chroma_flag) {if (mb_intral6 × 16_chroma_flag) { Mb_intral6×16_chroma_ac_flagMb_intral6 × 16_chroma_ac_flag 22 u(1)u (1) }}

Синтаксис остаточных данных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.

Таблица 6А
Синтаксис остаточных данных MB с внутрикадровым кодированием
Table 6A
Residual MB Syntax with Intraframe Encoding
enh_residual() {enh_residual () { СFROM ДескрипторDescriptor если (MbPartPredMode(BaseLayerMbType, 0)==Intra_16×16)if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16) enh_residual_block_cavlc(Intra16×16DCLevel, 16)enh_residual_block_cavlc (Intra16 × 16DCLevel, 16) 33 для (mbPartldx=0; mbPartldx<4; mbPartIdx++ )for (mbPartldx = 0; mbPartldx <4; mbPartIdx ++) для (qtrMbPartldx=0; qtrMbPartldx<4; qtrMbPartIdx++)for (qtrMbPartldx = 0; qtrMbPartldx <4; qtrMbPartIdx ++) если (MbPartPredMode(BaseLayerMbType, 0)==Intra_16×16 &&
BaseLayerAcCoefficientsAllZero){
if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16 &&
BaseLayerAcCoefficientsAllZero) {
если (mb_intral6xl6_luma_part_flag[mbPartIdx] &&
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])
enh_residual_block_cavlc(Intra16x16ACLevel[mbPartldx*4+qtrMbPartId
x], 15)
enh_residual_block_cavlc (Intra16x16ACLevel [mbPartldx * 4 + qtrMbPartId
x], 15)
33
в противном случаеotherwise для (i=0;i<15;i++)for (i = 0; i <15; i ++) Intra16×16ACLevel[mbPartldx*4+qtrMbPartldx ][i]=0Intra16 × 16ACLevel [mbPartldx * 4 + qtrMbPartldx] [i] = 0 в противном случае если (EnhCodedBlockPatternLuma & (1 « mbPartldx)) {otherwise if (EnhCodedBlockPatternLuma & (1 "mbPartldx)) { если (MbPartPredMode(BaseLayerMbType, 0)==Intra_16×16 )if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16) enh residual block cavlc(
Intra16×16ACLevel[mbPartldx*4+qtrMbPartldx], 15)
enh residual block cavlc (
Intra16 × 16ACLevel [mbPartldx * 4 + qtrMbPartldx], 15)
33
в противном случаеotherwise enh residual block cavlc(
LumaLevel[ mbPartldx* 4+qtrMbPartldx], 16)
enh residual block cavlc (
LumaLevel [mbPartldx * 4 + qtrMbPartldx], 16)
3|43 | 4
} в противном случае {} otherwise { если (MbPartPredMode(BaseLayerMbType, 0)== Intra_16×16)if (MbPartPredMode (BaseLayerMbType, 0) == Intra_16 × 16) для (i=0;i<15;i++)for (i = 0; i <15; i ++) Intra16×16ACLevel[mbPartldx*4+qtrMbPartldx][i]=0Intra16 × 16ACLevel [mbPartldx * 4 + qtrMbPartldx] [i] = 0 в противном случаеotherwise для (i=0; i<16; i++)for (i = 0; i <16; i ++) LumaLevel[mbPartldx*4+qtrMbPartldx][i]=0LumaLevel [mbPartldx * 4 + qtrMbPartldx] [i] = 0 }} для (iCbCr=0; iCbCr<2; iCbCr++)for (iCbCr = 0; iCbCr <2; iCbCr ++) если (EnhCodedBlockPatternChroma & 3)/* chroma DC residual present
*/
if (EnhCodedBlockPatternChroma & 3) / * chroma DC residual present
* /
residual_block(ChromaDCLevel[iCbCr], 4)residual_block (ChromaDCLevel [iCbCr], 4) 3|43 | 4 в противном случаеotherwise для (i=0; i<4; i++)for (i = 0; i <4; i ++) ChromaDCLevel[iCbCr ][i]=0ChromaDCLevel [iCbCr] [i] = 0 для (iCbCr=0; iCbCr<2; iCbCr++ )for (iCbCr = 0; iCbCr <2; iCbCr ++) для (qtrMbPartldx=0; qtrMbPartldx<4; qtrMbPartIdx++ )for (qtrMbPartldx = 0; qtrMbPartldx <4; qtrMbPartIdx ++) если (EnhCodedBlockPatternChroma & 2)
/* chroma AC residual present */
if (EnhCodedBlockPatternChroma & 2)
/ * chroma AC residual present * /
residual_block(ChromaACLevel[iCbCr][qtrMbPartldx], 15)residual_block (ChromaACLevel [iCbCr] [qtrMbPartldx], 15) 3|43 | 4 в противном случаеotherwise для (i=0; i<15; i++ )for (i = 0; i <15; i ++) ChromaACLevel[iCbCr][qtrMbPartldx][i]=0ChromaACLevel [iCbCr] [qtrMbPartldx] [i] = 0 }}

Другие параметры для остатка уровня улучшения получают из остатка базового уровня для совмещенного макроблока в соответствующем слое базового уровня.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.

Таблица 6В
Синтаксис CAVLC остаточных блоков
Table 6B
CAVLC Syntax Residual Blocks
enh_residual_block_cavlc(coeffLevel, maxNumCoeff) {enh_residual_block_cavlc (coeffLevel, maxNumCoeff) { СFROM ДескрипторDescriptor для (i=0; i<maxNumCoeff; i++)for (i = 0; i <maxNumCoeff; i ++) coeffLevel[i]=0coeffLevel [i] = 0 если ((MbPartPredMode(BaseLayerMbType, 0) == Intra_16×16 &&
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) {
enh_coeff_tokenenh_coeff_token 3|43 | 4 ce(v)ce (v) если (enh_coeff_token==17) {if (enh_coeff_token == 17) { /* Standard compliant syntax as specified in clause 7.3.5.3.1 of H.264 *// * Standard compliant syntax as specified in clause 7.3.5.3.1 of H.264 * / }} в противном случае {otherwise { если (TotalCoeff(enh_coeff_token)>0) {if (TotalCoeff (enh_coeff_token)> 0) { для (i=0; i<TotalCoeff(enh_coeff_token); i++)for (i = 0; i <TotalCoeff (enh_coeff_token); i ++) enh_coeff_sign_flag[i]enh_coeff_sign_flag [i] 3|43 | 4 u(l)u (l) level[i]=1-2 * enh_coeff_sign_flaglevel [i] = 1-2 * enh_coeff_sign_flag если (TotalCoeff(enh_coeff_token)<maxNumCoeff) {if (TotalCoeff (enh_coeff_token) <maxNumCoeff) { total_zerostotal_zeros 3|43 | 4 ce(v)ce (v) zerosLeft=total_zeroszerosLeft = total_zeros } в противном случае} otherwise zerosLeft=0zerosLeft = 0 для (i=0; i<Totalcoeff(enh_coeff token)-1; i++) {for (i = 0; i <Totalcoeff (enh_coeff token) -1; i ++) { если (zerosLeft>0) {if (zerosLeft> 0) { ran_beforeran_before 3|43 | 4 ce(v)ce (v) ran[i]=ran_beforeran [i] = ran_before } в противном случае} otherwise ran[i]=0ran [i] = 0 zerosLeft=zerosLeft-ran[i]zerosLeft = zerosLeft-ran [i] }} ran[ TotalCoeff(enh_coeff_token)-1]=zerosLeftran [TotalCoeff (enh_coeff_token) -1] = zerosLeft coeffNum=-1coeffNum = -1 для (i=TotalCoeff(enh_coeff_token)-1; i>=0; i-) {for (i = TotalCoeff (enh_coeff_token) -1; i> = 0; i-) { coeffNum+=ran[i]+ 1coeffNum + = ran [i] + 1 coeffLevel[coeffNum]=level[i]coeffLevel [coeffNum] = level [i] }} }} } в противном случае {} otherwise { /* Подходящий стандартный синтаксис, заданный в пункте 7.3.5.3.1 стандарта Н.264*// * Suitable standard syntax specified in clause 7.3.5.3.1 of the H.264 standard * / }} }}

Другие параметры для 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:

Таблица 7
Коды типов расширенного компонента NAL
Table 7
Enhanced NAL Component Type Codes
extended_nal_unit_typeextended_nal_unit_type Контент расширенного компонента NAL и структура синтаксиса RBSPExtended NAL Component Content and RBSP Syntax Structure СFROM 00 Не заданоNot set 1one Кодированный слой изображения, slice_layer_without_partitioning_rbsp() без IDRCoded image layer, slice_layer_without_partitioning_rbsp () without IDR 2, 3, 42, 3, 4 22 Кодированный раздел А данных слоя slice_data_partition_a_layer_rbsp()Encoded data section A of the slice_data_partition_a_layer_rbsp () layer 22 33 Кодированный раздел B данных слоя slice_data_partition_b_layer_rbsp()Encoded data section B of the slice_data_partition_b_layer_rbsp () layer 33 4four Кодированный раздел C данных слоя slice_data_partition_c_layer_rbsp()C coded data section of slice_data_partition_c_layer_rbsp () layer 4four 55 Кодированный слой изображения IDR slice_layer_without_partitioning_rbsp()IDR encoded image layer slice_layer_without_partitioning_rbsp () 2, 32, 3 66 Информация о дополнительном улучшении (SEI) sei_rbsp()Additional Enhancement Information (SEI) sei_rbsp () 55 77 Набор параметров последовательности seq_parameter_set_rbsp()Seq_parameter_set_rbsp () sequence parameter set 00 88 Набор параметров изображения pic_parameter_set_rbsp()Pic_parameter_set_rbsp () image parameter set 1one 99 Ограничитель блока доступа access_unit_delimiter_rbsp()Access block delimiter access_unit_delimiter_rbsp () 66 10…2310 ... 23 ЗарезервированоReserved 24…6324 ... 63 Не заданоNot set

Расширенные компоненты 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.

Таблица 8
Связь имен со значениями enh_slice_type
Table 8
Name association with enh_slice_type values
enh_slice_typeenh_slice_type Имя enh_slice_type Name enh_slice_type 00 P(P-слой)P (P-layer) 1one В (В-слой)B (B-layer) 22 I (I-слой)I (I-layer) 33 SP (SP-слой) или не используется SP (SP layer) or not used 4four SI (SI-слой) или не используетсяSI (SI layer) or not used 55 P(P-слой)P (P-layer) 66 В (В-слой)B (B-layer) 77 I (I-слой)I (I-layer) 88 SP (SP-слой) или не используетсяSP (SP layer) or not used 99 SI (SI-слой) или не используетсяSI (SI layer) or not used

Значения 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.

Таблица 9
Спецификация decoding_mode_flag
Table 9
Decoding_mode_flag specification
decoding_mode_flagdecoding_mode_flag ПроцессProcess 00 Добавление в пиксельной областиAdding in the Pixel Area 1one Добавление в области коэффициентовAdding in the area of coefficients

В приведенной выше таблице 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:

Figure 00000002
Figure 00000002

где 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:

Figure 00000003
Figure 00000003

Значение 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 decoder 28. The two-pass decoding process can generally be performed as described above, after which iterative processing is performed as follows. First, the basic layer frame Ib is restored as a normal I-frame. Then, the I-frame of the combined enhancement level is restored as a P-frame. Then, the reference frame for this P-frame will be the reconstructed base-level I-frame. Again, all motion vectors in the reconstructed P-frame of the enhancement level will be zero.

При наличии уровня улучшения каждый макроблок уровня улучшения декодируют как остаточные данные с использованием информации о режиме из совмещенного макроблока в базовом уровне. 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. video decoder 28 performs entropy decoding of macroblocks of the base level. If the current base layer MB is intra-frame encoded MB or skipped (162), then video decoder 28 proceeds to the next base layer MB (164). However, if the MB is not an intra-frame encoded MB or is not skipped, then video decoder 28 performs entropy decoding for the MB combined enhancement level (166), and then combines the two data layers (168), that is, the base level MB after entropy decoding and MB after entropy decoding for a combined level of improvement, to create a single level of data for operations of de-quantization and inverse transformation. The tasks shown in FIG. 12 can be performed on a general purpose microprocessor before transmitting a single combined data layer to the hardware core for de-quantization and inverse transformation. Based on the procedure shown in FIG. 12, the buffer management (dpb) of the decoded image is the same or nearly the same as single-level decoding, and additional memory may not be required.

Декодирование макроблоков с внутрикадровым кодированием для уровня улучшения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 decoder 28 for decoding other macroblocks and unlocking. The TotalCoeff (coeff_token) of each transform block is saved only when decoding the base layer without decoding the enhancement layer. This information is used as a context for entropy decoding of other macroblocks and for controlling release. In video decoding of the enhancement level, the TotalCoeff parameter (enh_coeff_token) is used as a context and for controlling release.

Согласно одному аспекту изобретения аппаратное ядро в декодере 28 конфигурируется для обработки энтропийного декодирования. Согласно этому аспекту процессор DSP может быть сконфигурирован для информирования аппаратного ядра при декодировании Р-кадра с нулевыми векторами движения. В аппаратном ядре декодируется стандартный Р-кадр, и масштабируемое декодирование получается прозрачным. Опять же по сравнению с одноуровневым декодированием декодирование I-кадра уровня улучшения в общем случае эквивалентно времени декодирования стандартного I-кадра и Р-кадра.According to one aspect of the invention, the hardware core in decoder 28 is configured to process entropy decoding. According to this aspect, the DSP may be configured to inform the hardware core when decoding a P frame with zero motion vectors. The standard P-frame is decoded in the hardware core, and scalable decoding is transparent. Again, compared to single-level decoding, the decoding of the I-frame of the enhancement level is generally equivalent to the decoding time of the standard I-frame and P-frame.

Если частота 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:

Если (base_nC<2)If (base_nC <2) Numcoeff_vlc=0;Numcoeff_vlc = 0; В противном случае, если (base_nC<4)Otherwise, if (base_nC <4)

Numcoeff_vlc=1;Numcoeff_vlc = 1; В противном случае, если (base_nC<8)Otherwise, if (base_nC <8) Numcoeff_vlc=2;Numcoeff_vlc = 2; В противном случае Otherwise Numcoeff_vlc=3;Numcoeff_vlc = 3;

В противном случае nC находят, используя подходящий способ из стандарта Н.264, а Numcoeff_vlc получают следующим образом:Otherwise, nC is found using a suitable method from the H.264 standard, and Numcoeff_vlc is obtained as follows:

Если (nC<2)If (nC <2) Numcoeff_vlc=4;Numcoeff_vlc = 4; В противном случае, если (nC<4)Otherwise, if (nC <4) Numcoeff_vlc=5;Numcoeff_vlc = 5; В противном случае, если (nC<8)Otherwise, if (nC <8) Numcoeff_vlc=6;Numcoeff_vlc = 6; В противном случае Otherwise Numcoeff_vlc=7;Numcoeff_vlc = 7;

Таблица 10
Кодовые таблицы для декодирования enh_coeff_token, numcoeff_vlc=0-3
Table 10
Code tables for decoding enh_coeff_token, numcoeff_vlc = 0-3
enh_coeff_tokenenh_coeff_token numcoeff_vlc=0numcoeff_vlc = 0 numcoeff_vlc=1numcoeff_vlc = 1 numcoeff_vlc=2numcoeff_vlc = 2 numcoeff_vlc=3numcoeff_vlc = 3 00 1010 101101 1111011110 1001 11001 1 1one 11eleven 0101 101101 11111111 22 0000 0000 0000 110110 ii 010010 111111 0101 0101 4four 01100110 100one hundred 110110 0000 55 0111 00111 0 11001100 100one hundred 101101 66 0111 1010111 101 1101011010 11101110 11101110 77 0111 10010111 1001 1101 1011101 101 1111 101111 10 1001010010 88 0111 1000 10111 1000 1 1101 10011101 1001 1111 11111111 1111 1000 111000 11 99 0111 1000 010111 1000 01 1101 1000 11101 1000 1 1111 1110 11111 1110 1 1000 1011000 101 1010 0111 1000 0010111 1000 001 1101 1000 011101 1000 01 1111 1110 011111 1110 01 1000 10001000 1000 11eleven 0111 1000 0001 10111 1000 0001 1 1101 1000 0011101 1000 001 1111 1110 0011111 1110 001 1000 1001 001000 1001 00 1212 0111 1000 0001 00111 1000 0001 0 1101 1000 00011101 1000 0001 1111 1110 00011111 1110 0001 1000 1001 011000 1001 01 1313 0111 1000 0000 00111 1000 0000 0 1101 1000 0000
11
1101 1000 0000
eleven
1111 1110 0000 001111 1110 0000 00 1000 1001 1001000 1001 100
14fourteen 0111 1000 0000 100111 1000 0000 10 1101 1000 0000 001101 1000 0000 00 1111 1110 0000 011111 1110 0000 01 1000 1001 1011000 1001 101 15fifteen 0111 1000 0000
110
0111 1000 0000
110
1101 1000 0000 011101 1000 0000 01 1111 1110 0000 101111 1110 0000 10 1000 1001 1101000 1001 110
1616 0111 1000 0000
111
0111 1000 0000
111
1101 1000 0000 101101 1000 0000 10 1111 1110 0000
11
1111 1110 0000
eleven
1000 1001 1111000 1001 111
1717 0111 110111 11 1101 111101 11 1111 1101111 110 1000 01000 0

Таблица 11
Кодовые таблицы для декодирования enh_coeff_token, numcoeff_vlc=4-7
Table 11
Code tables for decoding enh_coeff_token, numcoeff_vlc = 4-7
enh_coeff_tokenenh_coeff_token numcoeff_vlc=4numcoeff_vlc = 4 numcoeff_vlc=5numcoeff_vlc = 5 numcoeff_vlc=6numcoeff_vlc = 6 numcoeff_vlc=7numcoeff_vlc = 7 00 1one 11eleven 1010 10101010 1one 0101 1010 0101 10111011 22 001001 0101 0000 100one hundred 33 00010001 001001 110110 11001100 4four 0000 10000 1 00010001 11101110 00000000 55 0000 000000 00 0000 10000 1 1111 01111 0 00010001 66 0000 01010000 0101 0000 010000 01 1111 101111 10 00100010 77 0000 0100 10000 0100 1 0000 0000000 000 11111101111110 00110011 88 0000 0100 010000 0100 01 0000 0011 10000 0011 1 1111 1110 11111 1110 1 01000100 99 0000 0100 0010000 0100 001 0000 0011 010000 0011 01 1111 1110 011111 1110 01 01010101 1010 0000 0100 00000000 0100 0000 0000 0011 0000000 0011 000 1111 1110 00111111 1110 0011 01100110 11eleven 0000 0100 0001
11
0000 0100 0001
eleven
0000 0011 001 000000 0011 001 00 1111 1110 0000 01111 1110 0000 0 01110111
1212 0000 0100 0001 000000 0100 0001 00 0000 0011 0010 10000 0011 0010 1 1111 1110 0000 11111 1110 0000 1 1101011010 1313 0000 0100 0001 0100000 0100 0001 010 0000 0011 0011 000000 0011 0011 00 1111 1110 0001 01111 1110 0001 0 1101 11101 1 14fourteen 0000 0100 0001
011
0000 0100 0001
011
0000 0011 0011 010000 0011 0011 01 1111 1110 0001 11111 1110 0001 1 1110011100
15fifteen 0000 0100 0001 1000000 0100 0001 100 0000 0011 0011 100000 0011 0011 10 1111 1110 0010 01111 1110 0010 0 1110111101 1616 0000 0100 0001 1010000 0100 0001 101 0000 0011 0011
11
0000 0011 0011
eleven
1111 1110 0010 11111 1110 0010 1 1111011110
1717 0000 0110000 011 0000 00100000 0010 1111 11111111 1111 1111 11111 1

Декодирование макроблоков с межкадровым кодированием для уровня улучшения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), decoder 28 decodes residual information from both the base layer and the enhancement layer. Thus, the decoder 28 can be configured to provide two entropy decoding processes that may be required for each macroblock.

Если и базовый уровень, и уровень улучшения имеют ненулевые коэффициенты для макроблока, то контекстную информацию из соседних макроблоков используют на обоих уровнях для декодирования 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 case 1, when base_coded_block_pattern = 0, enh_coded_block_pattern can be encoded according to the H.264 standard, for example, in the same way as the base level. For case 2, when base_coded_block_pattern is not 0, the following approach can be used to obtain enh_coded_block_pattern. This approach can include three steps:

Шаг 1. На этом шаге для каждого блока 8х8 яркости, где соответствующий бит coded_block_pattern базового уровня равен 1, выбирается один бит. Каждый бит представляет собой бит enh_coded_block_pattern для совмещенного блока 8х8 уровня улучшения. Этот выбранный бит можно рассматривать как бит уточнения. Следует заметить, что блок 8х8 используется как пример для объяснения. Очевидно, что можно использовать другие блоки с другими размерами.Step 1. At this step, for each 8x8 brightness block, where the corresponding base level coded_block_pattern bit is 1, one bit is selected. Each bit is an enh_coded_block_pattern bit for a combined 8x8 block of enhancement level. This selected bit can be considered as a refinement bit. It should be noted that the 8x8 block is used as an example for explanation. Obviously, you can use other blocks with different sizes.

Шаг 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.Step 2. Bearing in mind the number of nonzero 8x8 brightness blocks and the cbp color block at the basic level, there are 9 combinations shown in Table 12 below. Each combination is a context for decoding the rest of the information about enh_coded_block_pattern. In table 12, cbpbC stands for cbp of the base level chroma, and (cbpb, Y (b8) represents the number of non-zero 8x8 base-level brightness blocks. The cbpeC and cbpeY columns show the new cbp format for unencrypted information about enh_coded_block_pattern, excluding contexts 4 and 9. In cbpeY ““ x ”stands for one bit for an 8x8 block of brightness, while in cbpeC“ xx ”stands for 0, 1, or 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, показанной ниже.Step 3. For contexts 4 and 9, enh_chroma_coded_block_pattern (which can be shortened to enh_chroma_cbp) is decoded separately using the code dictionary in table 15, shown below.

Figure 00000004
Figure 00000004

Кодовые словари для различных контекстов показаны в таблицах 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.

Таблица 13
Кодовые слова Хаффмана для контекста 1-3 для enh_coded_block_pattern (enh_cbp)
Table 13
Huffman codewords for context 1-3 for enh_coded_block_pattern (enh_cbp)
контекст 1context 1 контекст 2context 2 контекст 3context 3 символsymbol кодthe code enh_cbpenh_cbp кодthe code enh_cbpenh_cbp кодthe code enh_cbpenh_cbp 00 1010 00 11eleven 00 00 1one 1one 001001 1one 0000 33 1010 00 22 110110 4four 100one hundred 1one 111111 33 33 11101110 22 011011 22 11011101 22 4four 00010001 33 10111011 4four 1100 01100 0 4four 55 01000100 55 01010101 77 1100 11100 1 55 66 00000000 66 1010 01010 0 55 77 11001100 77 1010 11010 1 66 88 01010101 88 0100 00 100 0 88 99 1101 101101 10 1010 0100 100100 10 11eleven 1010 1111 001111 00 1212 0100 1110100 111 1010 11eleven 1101 111101 11 15fifteen 0100 1100100 110 99 1212 1111 011111 01 99 1313 1111 1101111 110 11eleven 14fourteen 1111 1111111 111 1313 15fifteen 1111 1011111 101 14fourteen 1616 1101 0111101 011 1616 1717 1101 0011101 001 2323 18eighteen 1101 01011101 0101 1717 1919 1111 10001111 1000 18eighteen 20twenty 1101 00001101 0000 1919 2121 1111 10011111 1001 20twenty 2222 1101 01001101 0100 2121 2323 1101 00011101 0001 2222

Таблица 14
Кодовые слова Хаффмана для контекста 5-7 для enh_coded_block_pattern (enh_cbp)
Table 14
Huffman codewords for context 5-7 for enh_coded_block_pattern (enh_cbp)
контекст 5context 5 контекст 6context 6 контекст 7context 7 контекст 8context 8 символsymbol кодthe code enh_cbpenh_cbp кодthe code enh_cbpenh_cbp кодthe code enh_cbpenh_cbp кодthe code enh_cbpenh_cbp 00 1one 00 0101 00 1010 00 00 00 1one 00000000 4four 101101 1one 0000 1one 1one 1one 22 00100010 88 001001 22 0101 22 33 0111 00111 0 1one 100one hundred 4four 11eleven 33 4four 0101 00101 0 1010 000000 55 55 0001 00001 0 11eleven 110110 77 66 0101 10101 1 1212 11101110 33 77 0011 10011 1 1313 11111111 66 88 0001 10001 1 14fourteen 99 0110 10110 1 15fifteen 1010 0111 10111 1 22 11eleven 0110001100 33 1212 0100 10100 1 55 1313 0011 00011 0 77 14fourteen 0100 000100 00 66 15fifteen 0100 010100 01 99

Шаг 3. Для контекстов 4-9 enh_cbp цветности можно декодировать отдельно, используя кодовый словарь, показанный ниже в таблице 15. Step 3. For contexts 4-9, enh_cbp colors can be decoded separately using the codebook shown in Table 15 below.

Таблица 15
Кодовое слово для enh_chroma_block_pattern (enh_chroma_cbp)
Table 15
Codeword for enh_chroma_block_pattern (enh_chroma_cbp)
enh_chroma_cbpenh_chroma_cbp кодthe code 00 00 1one 1010 22 11eleven

Процесс получения параметров квантования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

Figure 00000005
Figure 00000005

Значение QPx,C можно определить из таблицы 16, представленной ниже. The value of QP x, C can be determined from table 16 below.

Таблица 16
Описание QPxC как функции qPI
Table 16
Description of QP xC as a function of qP I
qPI qP I <30<30 30thirty 3131 3232 3333 3434 3535 3636 3737 3838 3939 4040 4141 4242 4343 4444 4545 4646 4747 4848 4949 50fifty 5151 QPxC QP xC qPI qP I 2929th 30thirty 3131 3232 3232 3333 3434 3434 3535 3535 3636 3636 3737 3737 3737 3838 3838 3838 3939 3939 3939 3939

Для видеоданных уровня улучшения параметры 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, reference numerals 170, 172 show vertical edges for filtering luminance and chroma, respectively. Reference numerals 174, 176 indicate respectively horizontal edges for filtering luminance and chrominance. Sample values above and to the left of the current macroblock that have already been modified as a result of the release filter in previous macroblocks are used as input to the release filter in the current macroblock and can be further modified during filtering of the current macroblock. Sampled values modified during filtering of vertical edges are used as input for filtering horizontal edges for the same macroblock.

В стандарте Н.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 edge 178 being between p0 and q0. In FIG. 14 pi and qi are set for i = from 0 to 3.

Для декодирования 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.

Таблица 17
Синтаксис SEI RBSP
Table 17
Syntax SEI RBSP
sei_rbsp() {sei_rbsp () { СFROM ДескрипторDescriptor dodo sei message()sei message () 55 while(more_rbsp_data())while (more_rbsp_data ()) rbsp_trailing_bits()rbsp_trailing_bits () 55 }}

Таблица 18
Синтаксис сообщения SEI CSF
Table 18
Message Syntax SEI CSF
sei_message() {sei_message () { СFROM ДескрипторDescriptor 22/* payloadType */22 / * payloadType * / 55 f(8)f (8) payloadType=22payloadType = 22 payloadSize=0payloadSize = 0 while(next_bits(8) = = OxFF ) {while (next_bits (8) = = OxFF) { ff_byte/* equal to OxFF */ ff_byte / * equal to OxFF * / 55 f(8)f (8) payloadSize+=255payloadSize + = 255 }} last_payload_size_bytelast_payload_size_byte 55 u(8)u (8) payloadSize+=last_payload_size_bytepayloadSize + = last_payload_size_byte channel_switch_frame_slice_datachannel_switch_frame_slice_data 55 }}

Синтаксис данных слоя кадра переключения канала может быть идентичен синтаксису 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 apparatus 180 for transmitting scalable digital video data with a variety of different exemplary syntax elements to support fairly simple video scalability. The device 180 includes a module 182 for incorporating base layer video data into a first NAL component, a module 184 for incorporating enhancement layer video data into a second NAL component, and a module 186 for including one or more syntax elements in at least one of the first and second components NAL to indicate the presence of an enhancement level in the second NAL component of video data. In one example, device 180 may form part of a broadcast server 12, as shown in Figures 1 and 3, and may be implemented in hardware, software, or firmware or using any suitable combination thereof. For example, module 182 may include one or more aspects of the base layer encoder 32 and the NAL component module 23 of FIG. 3, which encode the base layer video data and input it into the NAL component. In addition, module 184, for example, may include one or more aspects of the enhancement layer encoder 34 and the NAL component module 23 that encode the enhancement layer video data and insert them into the NAL component. Module 186 may include one or more aspects of a NAL component module 23, which includes one or more syntax elements in at least one of the first and second NAL components to indicate the presence of enhancement level video data in the second NAL component. In one example, one or more syntax elements are provided in a second NAL component in which video data of enhancement level is provided.

На фиг. 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 video decoding apparatus 188 that decodes a scalable video data bitstream for processing a plurality of various exemplary syntax elements supporting fairly simple video scalability. Digital video decoding device 188 may reside in a subscriber device, for example, subscriber device 16 of FIG. 1 or FIG. 3, video decoder 14 of FIG. 1 and may be implemented in hardware, software, or firmware, or using any suitable combination thereof. Apparatus 188 includes a module 190 for receiving base layer video data in a first NAL component, module 192 for receiving extension layer video data in a second NAL component, module 194 for receiving one or more syntax elements in at least one of the first and second components NAL, to indicate the presence of an improvement level in the second NAL component, and a module 196 for decoding digital video in the second NAL based on an indication provided by one or more syntax elements in the second NAL unit. In one aspect, one or more syntax elements are provided in a second NAL component, where enhancement level video data is provided. Module 190, for example, may include a receiver / demodulator 26 of subscriber unit 16 of FIG. 3. In this example, module 192 may also include a receiver / demodulator 26. In some exemplary configurations, module 194 may include a NAL component module, such as the NAL component module 27 of FIG. 3, which processes syntax elements in NAL components. Module 196 may include a video decoder, such as video decoder 28 of FIG. 3.

Описанные здесь способы можно реализовать аппаратными, программными, аппаратно-программными средствами или любой их комбинацией. При реализации программными средствами эти способы могут быть реализованы, по меньшей мере, частично одной или несколькими запомненными или переданными командами, или кодом, на считываемом компьютером носителе. Считываемая компьютером среда может включать в себя компьютерную запоминающую среду, среду передачи либо то и другое, а также может включать в себя любой носитель, поддерживающий пересылку компьютерной программы с одного места на другое. Запоминающая среда может представлять собой любую имеющуюся среду, которая может быть доступна компьютеру.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)

1. Способ передачи масштабируемых цифровых видеоданных, причем способ содержит этапы, на которых:
включают видеоданные уровня улучшения в компонент уровня сетевой абстракции (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.
2. Способ по п.1, дополнительно содержащий этап, на котором включают один или несколько синтаксических элементов в компонент NAL для указания типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) для данных уровня улучшения в компоненте NAL.2. The method according to claim 1, further comprising the step of including one or more syntax elements in the NAL component to indicate the data structure type of the raw byte serial payload (RBSP) for the enhancement level data in the NAL component. 3. Способ по п.1, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этапы, на которых включают видеоданные базового уровня во второй компонент NAL и включают один или несколько синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL, для указания, должен ли декодер использовать добавление пиксельной области или области преобразования видеоданных уровня улучшения к видеоданным базового уровня.3. The method according to claim 1, in which the NAL component is the first NAL component, the method further comprising the steps of including base-level video data in the second NAL component and including one or more syntax elements in at least one of the first and the second NAL component, to indicate whether the decoder should use the addition of a pixel region or a transform region of the enhancement layer video data to the base layer video data. 4. Способ по п.1, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этапы, на которых включают видеоданные базового уровня во второй компонент NAL и включают один или несколько синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL, для указания, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня.4. The method according to claim 1, in which the NAL component is the first NAL component, the method further comprising the steps of including base-level video data in the second NAL component and including one or more syntax elements in at least one of the first and the second NAL component, to indicate whether the video data of the enhancement layer includes any residual data related to the video data of the base layer. 5. Способ по п.1, дополнительно содержащий этап, на котором включают один или несколько синтаксических элементов в компонент NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования.5. The method according to claim 1, further comprising the step of including one or more syntax elements in a NAL component for identifying blocks in the enhancement layer video data containing syntax elements with non-zero transform coefficients. 6. Способ по п.1, дополнительно содержащий этап, на котором включают один или несколько синтаксических элементов в компонент NAL для указания кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.6. The method according to claim 1, further comprising the step of including one or more syntax elements in a NAL component to indicate coded block patterns for inter-frame encoded blocks in the enhancement layer video data. 7. Способ по п.1, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этап, на котором включают видеоданные базового уровня во второй компонент NAL, и в котором видеоданные уровня улучшения кодируются для повышения отношения сигнал-шум видеоданных базового уровня.7. The method according to claim 1, wherein the NAL component is a first NAL component, the method further comprising adding base layer video data to a second NAL component, and wherein the enhancement layer video data is encoded to increase the signal-to-noise ratio of the base layer video data . 8. Способ по п.1, в котором этап, на котором включают один или несколько синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, содержит этап, на котором устанавливают параметр типа компонента NAL в компоненте NAL на выбранное значение для указания, что компонент NAL включает в себя видеоданные уровня улучшения.8. The method according to claim 1, wherein the step of including one or more syntax elements in the NAL component to indicate whether the NAL component includes enhancement level video data comprises the step of setting the type parameter of the NAL component in the NAL to the selected value to indicate that the NAL component includes video data of the enhancement level. 9. Устройство для передачи масштабируемых цифровых видеоданных, причем устройство содержит:
модуль компонентов уровня сетевой абстракции (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.
10. Устройство по п.9, в котором модуль компонентов NAL включает один или несколько синтаксических элементов в компонент NAL для указания типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) данных уровня улучшения в компоненте NAL.10. The device according to claim 9, in which the NAL component module includes one or more syntax elements in the NAL component to indicate the data structure type of the raw byte sequential payload (RBSP) data level enhancement in the NAL component. 11. Устройство по п.9, в котором компонент NAL является первым компонентом NAL, причем модуль компонента NAL включает видеоданные базового уровня во второй компонент NAL, и причем модуль компонента NAL включает один или несколько синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL для указания, должен ли декодер использовать добавление пиксельной области или области преобразования видеоданных уровня улучшения к видеоданным базового уровня.11. The device according to claim 9, in which the NAL component is the first NAL component, wherein the NAL component module includes base layer video data in the second NAL component, and wherein the NAL component module includes one or more syntax elements in at least one of the first and second NAL components to indicate whether the decoder should use the addition of a pixel region or a transform region of the enhancement layer video data to the base layer video data. 12. Устройство по п.9, в котором компонент NAL является первым компонентом NAL, причем модуль компонентов NAL включает видеоданные базового уровня во второй компонент NAL и при этом модуль компонентов NAL включает один или несколько синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL, для указания, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня.12. The device according to claim 9, in which the NAL component is the first NAL component, wherein the NAL component module includes base layer video data in the second NAL component, and wherein the NAL component module includes one or more syntax elements in at least one of the first and second NAL components, to indicate whether the video data of the enhancement layer includes any residual data related to the video data of the base layer. 13. Устройство по п.9, в котором модуль компонентов NAL включает один или несколько синтаксических элементов в компонент NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования.13. The device according to claim 9, in which the NAL component module includes one or more syntax elements in the NAL component to identify blocks in the video level enhancement containing syntax elements with non-zero transform coefficients. 14. Устройство по п.9, в котором модуль компонентов NAL включает один или несколько синтаксических элементов в компонент NAL для указания кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.14. The device according to claim 9, in which the NAL component module includes one or more syntax elements in the NAL component for indicating coded block patterns for inter-frame encoded blocks in the enhancement layer video data. 15. Устройство по п.9, в котором компонент NAL является первым компонентом NAL, причем модуль компонентов NAL включает видеоданные базового уровня во второй компонент NAL, и в котором кодер кодирует видеоданные уровня улучшения для повышения отношения сигнал-шум видеоданных базового уровня.15. The device according to claim 9, in which the NAL component is the first NAL component, wherein the NAL component module includes base layer video data in the second NAL component, and in which the encoder encodes the enhancement layer video data to increase the signal-to-noise ratio of the base layer video data. 16. Устройство по п.9, в котором модуль компонентов NAL устанавливает параметр типа компонента NAL в компоненте NAL на выбранное значение для указания, что компонент NAL включает в себя видеоданные уровня улучшения.16. The device according to claim 9, in which the NAL component module sets the parameter type of the NAL component in the NAL component to the selected value to indicate that the NAL component includes video data of the enhancement level. 17. Процессор для передачи масштабируемых цифровых видеоданных, причем процессор сконфигурирован для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (NAL), включения одного или нескольких синтаксических элементов в компонент NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, и включения одного или нескольких синтаксических элементов в компонент NAL для указания, по меньшей мере, одного из:
включают ли видеоданные уровня улучшения в компоненте 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.
18. Устройство для передачи масштабируемых цифровых видеоданных, причем устройство содержит:
средство для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (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.
19. Устройство по п.18, дополнительно содержащее средство для включения одного или нескольких синтаксических элементов в компонент NAL для указания типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) данных уровня улучшения в компоненте NAL.19. The apparatus of claim 18, further comprising means for including one or more syntax elements in the NAL component for indicating a data structure type of an unprocessed byte sequential payload (RBSP) of enhancement level data in the NAL component. 20. Устройство по п.18, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит средство для включения видеоданных базового уровня во второй компонент NAL и средство для включения одного или нескольких синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL, для указания на то, должен ли декодер использовать добавление пиксельной области или области преобразования видеоданных уровня улучшения к видеоданным базового уровня.20. The device according to p, in which the NAL component is the first NAL component, and the device further comprises means for incorporating basic level video data into the second NAL component and means for including one or more syntax elements in at least one of the first and the second component of the NAL, to indicate whether the decoder should use the addition of the pixel region or the area of the conversion of the video data of the enhancement level to the video data of the base level. 21. Устройство по п.18, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит средство для включения видеоданных базового уровня во второй компонент NAL и средство для включения одного или нескольких синтаксических элементов, по меньшей мере, в один из первого и второго компонентов NAL для указания, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня.21. The device according to p, in which the NAL component is the first NAL component, and the device further comprises means for incorporating basic level video data into the second NAL component and means for including one or more syntax elements in at least one of the first and the second NAL component to indicate whether the video data of the enhancement layer includes any residual data related to the video data of the base layer. 22. Устройство по п.18, дополнительно содержащее средство для включения одного или нескольких синтаксических элементов в компонент NAL для идентификации блоков в видеоданных уровня улучшения, содержащих синтаксические элементы с ненулевыми коэффициентами преобразования.22. The apparatus of claim 18, further comprising means for including one or more syntax elements in a NAL component for identifying blocks in enhancement level video data containing syntax elements with non-zero transform coefficients. 23. Устройство по п.18, дополнительно содержащее средство для включения одного или нескольких синтаксических элементов в компонент NAL для указания кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.23. The apparatus of claim 18, further comprising means for including one or more syntax elements in a NAL component for indicating coded block patterns for inter-frame encoded blocks in the enhancement layer video data. 24. Устройство по п.18, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит средство для включения видеоданных базового уровня во второй компонент NAL, и в котором видеоданные уровня улучшения повышают отношение сигнал-шум видеоданных базового уровня.24. The apparatus of claim 18, wherein the NAL component is a first NAL component, the device further comprising means for incorporating base layer video data into a second NAL component, and wherein the enhancement layer video data increases the signal-to-noise ratio of the base layer video data. 25. Устройство по п.18, в котором средство для включения одного или нескольких синтаксических элементов в компонент NAL для указания, включает ли в себя компонент NAL видеоданные уровня улучшения, содержит средство для установки параметра типа компонента NAL в компоненте NAL на выбранное значение для указания, что компонент NAL включает в себя видеоданные уровня улучшения.25. The device according to p, in which the 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, comprises means for setting the type parameter of the NAL component in the NAL component to the selected value to indicate that the NAL component includes video data level enhancement. 26. Машиночитаемый носитель, на котором сохранен компьютерный программный продукт, причем компьютерный программный продукт содержит исполнимые посредством компьютера коды для побуждения компьютера осуществлять способ передачи масштабируемых цифровых видеоданных, содержащий:
код для включения видеоданных уровня улучшения в компонент уровня сетевой абстракции (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.
27. Способ обработки масштабируемых цифровых видеоданных, причем способ содержит этапы, на которых:
принимают видеоданные уровня улучшения в компоненте уровня сетевой абстракции (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.
28. Способ по п.27, дополнительно содержащий этап, на котором обнаруживают один или несколько синтаксических элементов в компоненте NAL для определения типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) данных уровня улучшения в компоненте NAL.28. The method of claim 27, further comprising detecting one or more syntax elements in the NAL component to determine the data structure type of the raw byte serial payload (RBSP) data of the enhancement layer in the NAL component. 29. Способ по п.27, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этапы, на которых:
принимают видеоданные базового уровня во втором компоненте 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.
30. Способ по п.27, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этапы, на которых:
принимают видеоданные базового уровня во втором компоненте 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.
31. Способ по п.27, дополнительно содержащий этап, на котором обнаруживают один или несколько синтаксических элементов в компоненте NAL для определения кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.31. The method of claim 27, further comprising detecting one or more syntax elements in the NAL component to determine coded block patterns for inter-frame encoded blocks in the enhancement layer video data. 32. Способ по п.27, в котором компонент NAL является первым компонентом NAL, причем способ дополнительно содержит этап, на котором включают видеоданные базового уровня во второй компонент NAL, и в котором видеоданные уровня улучшения кодируются для повышения отношения сигнал-шум видеоданных базового уровня.32. The method according to item 27, in which the NAL component is the first NAL component, and the method further comprises the step of including the base layer video data in the second NAL component, and wherein the enhancement layer video data is encoded to increase the signal-to-noise ratio of the base layer video data . 33. Способ по п.27, в котором этап, на котором принимают один или несколько синтаксических элементов в компоненте NAL для указания, включает ли компонент NAL в себя видеоданные уровня улучшения, содержит этап, на котором принимают параметр типа компонента NAL в компоненте NAL, который установлен равным выбранному значению для указания, что компонент NAL включает в себя видеоданные уровня улучшения.33. The method of claim 27, wherein the step of taking one or more syntax elements in the NAL component to indicate whether the NAL component includes enhancement level video data, comprises the step of taking the type parameter of the NAL component in the NAL component, which is set to the selected value to indicate that the NAL component includes video data of the enhancement level. 34. Устройство для обработки масштабируемых цифровых видеоданных, причем устройство содержит:
модуль компонентов уровня сетевой абстракции (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.
35. Устройство по п.34, в котором модуль компонентов NAL обнаруживает один или несколько синтаксических элементов в компоненте NAL для определения типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) данных уровня улучшения в компоненте NAL.35. The device according to clause 34, in which the NAL component module detects one or more syntax elements in the NAL component to determine the type of data structure of the raw byte serial payload (RBSP) data level enhancement in the NAL component. 36. Устройство по п.34, в котором компонент NAL является первым компонентом NAL, причем модуль компонентов NAL принимает видеоданные базового уровня во втором компоненте NAL, и при этом модуль компонентов NAL обнаруживает один или несколько синтаксических элементов, по меньшей мере, в одном из первого и второго компонентов NAL для определения, включают ли видеоданные уровня улучшения в себя какие-либо остаточные данные, относящиеся к видеоданным базового уровня, а декодер пропускает декодирование видеоданных уровня улучшения, если определено, что видеоданные уровня улучшения не включают в себя никаких остаточных данных, относящихся к видеоданным базового уровня.36. The device according to clause 34, in which the NAL component is the first NAL component, and the NAL component module receives base level video data in the second NAL component, and the NAL component module detects 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 the decoder skips decoding the enhancement layer video data if it is determined that in deodannye enhancement layer does not comprise any residual data pertaining to video data baseline. 37. Устройство по п.34, в котором компонент NAL является первым компонентом NAL, причем модуль компонентов NAL:
принимает видеоданные базового уровня во втором компоненте 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.
38. Устройство по п.34, в котором модуль обработки NAL обнаруживает один или несколько синтаксических элементов в компоненте NAL для определения кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.38. The device according to clause 34, in which the NAL processing module detects one or more syntax elements in the NAL component to determine the encoded block patterns for blocks with inter-frame coding in the video data level enhancement. 39. Устройство по п.34, в котором компонент NAL является первым компонентом NAL, причем модуль компонентов NAL включает видеоданные базового уровня во второй компонент NAL, и в котором видеоданные уровня улучшения кодируются для повышения отношения сигнал-шум видеоданных базового уровня.39. The apparatus of claim 34, wherein the NAL component is a first NAL component, wherein the NAL component module includes base layer video data in a second NAL component, and wherein the enhancement layer video data is encoded to enhance the signal-to-noise ratio of the base layer video data. 40. Устройство по п.34, в котором модуль компонентов NAL принимает параметр типа компонента NAL в компоненте NAL, который установлен равным выбранному значению для указания, что компонент NAL включает в себя видеоданные уровня улучшения.40. The device according to clause 34, in which the NAL component module accepts the parameter type of the NAL component in the NAL component, which is set equal to the selected value to indicate that the NAL component includes video data level enhancement. 41. Процессор для обработки масштабируемых цифровых видеоданных, причем процессор сконфигурирован для:
приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (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.
42. Устройство для обработки масштабируемых цифровых видеоданных, причем устройство содержит:
средство для приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (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.
43. Устройство по п.42, дополнительно содержащее средство для обнаружения одного или нескольких синтаксических элементов в компоненте NAL для определения типа структуры данных необработанной байтовой последовательной полезной нагрузки (RBSP) данных уровня улучшения в компоненте NAL.43. The device according to § 42, further comprising a means for detecting one or more syntax elements in the NAL component to determine the type of data structure of the raw byte sequential payload (RBSP) data of the enhancement level in the NAL component. 44. Устройство по п.42, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит:
средство для приема видеоданных базового уровня во втором компоненте 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.
45. Устройство по п.42, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит:
средство для приема видеоданных базового уровня во втором компоненте 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.
46. Устройство по п.42, дополнительно содержащее средство для обнаружения одного или нескольких синтаксических элементов в компоненте NAL для определения кодированных блочных шаблонов для блоков с межкадровым кодированием в видеоданных уровня улучшения.46. The device according to § 42, further comprising means for detecting one or more syntax elements in the NAL component for determining encoded block patterns for inter-frame encoded blocks in the video data of the enhancement level. 47. Устройство по п.42, в котором компонент NAL является первым компонентом NAL, причем устройство дополнительно содержит средство для включения видеоданных базового уровня во второй компонент NAL, и в котором видеоданные уровня улучшения кодируются для повышения отношения сигнал-шум видеоданных базового уровня.47. The device according to § 42, in which the NAL component is the first NAL component, the device further comprising means for incorporating base layer video data into the second NAL component, and wherein the enhancement layer video data is encoded to enhance the signal-to-noise ratio of the base layer video data. 48. Устройство по п.42, в котором средство для приема одного или нескольких синтаксических элементов в компоненте NAL для указания, включает ли в себя соответствующий компонент NAL видеоданные уровня улучшения, содержит средство для приема параметра типа компонента NAL в компоненте NAL, который установлен равным выбранному значению для указания, что компонент NAL включает в себя видеоданные уровня улучшения.48. The device according to § 42, in which the means for receiving one or more syntax elements in the NAL component for indicating whether the corresponding NAL component includes video data of the enhancement level, comprises means for receiving a parameter type of the NAL component in the NAL component, which is set equal to a selected value to indicate that the NAL component includes enhancement level video data. 49. Машиночитаемый носитель, на котором сохранен компьютерный программный продукт, причем компьютерный программный продукт содержит исполнимые посредством компьютера коды для побуждения компьютера осуществлять способ обработки масштабируемых цифровых видеоданных, содержащий:
код для приема видеоданных уровня улучшения в компоненте уровня сетевой абстракции (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.
RU2008142739/09A 2006-03-29 2007-03-29 Video processing with scalability RU2406254C2 (en)

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 2006-11-21
US11/562,360 US20070230564A1 (en) 2006-03-29 2006-11-21 Video processing with scalability

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 (10)

* Cited by examiner, † Cited by third party
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

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
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 (20)

* Cited by examiner, † Cited by third party
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
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
US20090129474A1 (en) Method and apparatus for weighted prediction for scalable video coding
US10841598B2 (en) Image encoding/decoding method and device

Legal Events

Date Code Title Description
MM4A The patent is invalid due to non-payment of fees

Effective date: 20190330