RU2409003C1 - Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding - Google Patents

Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding Download PDF

Info

Publication number
RU2409003C1
RU2409003C1 RU2009117672/09A RU2009117672A RU2409003C1 RU 2409003 C1 RU2409003 C1 RU 2409003C1 RU 2009117672/09 A RU2009117672/09 A RU 2009117672/09A RU 2009117672 A RU2009117672 A RU 2009117672A RU 2409003 C1 RU2409003 C1 RU 2409003C1
Authority
RU
Russia
Prior art keywords
video
coefficients
encoded
tables
information
Prior art date
Application number
RU2009117672/09A
Other languages
Russian (ru)
Other versions
RU2009117672A (en
Inventor
Марта КАРЧЕВИЧ (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/867,999 external-priority patent/US8325819B2/en
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2009117672A publication Critical patent/RU2009117672A/en
Application granted granted Critical
Publication of RU2409003C1 publication Critical patent/RU2409003C1/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

FIELD: information technologies.
SUBSTANCE: information is sent from coder device to coder device, which identifies the coding tables with alternate length to be used for decoding of two or more different types of video units. Information may be sent once per frame (or other coded unit) and may identify the first table to be used for intra-coded units, and the second table to be used for inter-coded units of appropriate frame; decoder selects table on the basis of this information and decodes various types of video units, using selected table for each type of unit.
EFFECT: improved efficiency of coding of transformation ratios, in particular in coding with alternate length of coefficients of SVC circuit expansion level detailing.
25 cl, 8 dwg

Description

[0001] Настоящая заявка испрашивает приоритет следующих предварительных заявок на патент США, все содержание каждой из которых включается здесь по ссылке:[0001] This application claims the priority of the following provisional US patent applications, all of which are incorporated herein by reference:

предварительная заявка на патент США № 60/829,274, поданная 12 октября 2006,provisional application for US patent No. 60 / 829,274, filed October 12, 2006,

предварительная заявка на патент США № 60/883,741, поданная 5 января 2007, иU.S. Patent Application Serial No. 60 / 883,741, filed January 5, 2007, and

предварительная заявка на патент США № 60/829,276, поданная 12 октября 2006.provisional application for US patent No. 60 / 829,276, filed October 12, 2006.

Область техники, к которой относится изобретениеFIELD OF THE INVENTION

[0002] Это раскрытие относится к цифровому кодированию видео и, более конкретно, кодированию с переменной длиной (VLC) коэффициентов преобразования в уровнях расширения схемы масштабируемого кодирования видео (SVC).[0002] This disclosure relates to digital video coding and, more specifically, variable length coding (VLC) of transform coefficients in extension levels of a scalable video coding (SVC) scheme.

Уровень техникиState of the art

[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, устройства беспроводной связи, системы беспроводного вещания, персональные цифровые ассистенты (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые устройства записи, устройства видеоигр, пульты компьютерных игр, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют методики сжатия видеосигнала, такие как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, Усовершенствованное Кодирование Видео (УВК, AVC), чтобы передавать и принимать цифровое видео более эффективно. Методики сжатия видеосигнала выполняют пространственное и временное предсказание, чтобы сократить или удалить избыточность, свойственную видеопоследовательностям.[0003] Digital video capabilities can be incorporated into a wide range of devices, including digital TVs, digital direct broadcast systems, wireless communication devices, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recorders, video game devices, game consoles, cellular or satellite radiotelephones, etc. Digital video devices implement video compression techniques such as MPEG-2, MPEG-4 or H.264 / MPEG-4, part 10, Advanced Video Encoding (AVC) to transmit and receive digital video more efficiently. Video compression techniques perform spatial and temporal prediction to reduce or remove redundancy inherent in video sequences.

[0004] При кодировании видео сжатие видео часто включает в себя пространственное предсказание, оценку движения и компенсацию движения. Интракодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность между видеоблоками в пределах заданного видеокадра. Интеркодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность между видеоблоками последовательных видеокадров видеопоследовательности. Для интеркодирования видеокодер выполняет оценку движения, чтобы отследить движение совпадающих видеоблоков между двумя или более смежными кадрами. Оценка движения генерирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих блоков видео предсказания в одном или более опорных кадрах. Компенсация движения использует векторы движения, чтобы сгенерировать блоки видео предсказания из опорного кадра. После компенсации движения остаточный видеоблок формируется посредством вычитания блока видео предсказания из первоначального видеоблока, который должен быть закодирован.[0004] In video encoding, video compression often includes spatial prediction, motion estimation, and motion compensation. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy between video blocks within a given video frame. Intercoding relies on temporal prediction to reduce or remove temporal redundancy between video blocks of sequential video frames of a video sequence. For intercoding, a video encoder performs motion estimation to track the movement of matching video blocks between two or more adjacent frames. The motion estimation generates motion vectors that indicate the offset of the video blocks relative to the corresponding video prediction blocks in one or more reference frames. Motion compensation uses motion vectors to generate video prediction blocks from a reference frame. After motion compensation, a residual video block is formed by subtracting the video prediction block from the original video block to be encoded.

[0005] Видеокодер обычно применяет процессы преобразования, квантования и кодирования с переменной длиной (КПД, VLC), чтобы дополнительно уменьшить скорость передачи в битах, ассоциированную с передачей остаточного блока. VLC остаточных блоков включает применение кодов переменной длины, чтобы дополнительно сжать остаточные коэффициенты, сформированные операциями квантования и преобразования. Например, таблица VLC может быть использована для согласования различных наборов коэффициентов с кодовым словом переменной длины способом, который способствует эффективности кодирования. Различные таблицы VLC могут использоваться для различного видеоконтента. Видеодекодер выполняет обратные операции VLC, чтобы восстановить коэффициенты, и затем выполняет обратное преобразование этих коэффициентов. Видеодекодер может декодировать видеоинформацию на основании информации движения и остаточной информации, ассоциированной с видеоблоками.[0005] A video encoder typically employs variable length transform, quantization and coding (VLC) processes to further reduce the bit rate associated with transmitting the residual block. VLC residual blocks includes the use of variable-length codes to further compress residual coefficients generated by quantization and transform operations. For example, a VLC table can be used to match different sets of coefficients with a variable-length codeword in a way that promotes coding efficiency. Different VLC tables can be used for different video content. The video decoder performs the inverse VLC operations to recover the coefficients, and then performs the inverse transform of these coefficients. A video decoder may decode video information based on motion information and residual information associated with the video blocks.

[0006] Некоторое видеокодирование использует масштабируемые методики. Например, масштабируемое кодирование видео (SVC) относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. Для SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддержать более высокие пространственный, временной и/или SNR уровни. Базовый уровень может быть передан способом, который более надежен, чем передача уровней расширения. Уровни расширения могут добавить пространственное разрешение к кадрам базового уровня или могут добавить дополнительные кадры, чтобы увеличить полную частоту следования кадров. В одном примере наиболее надежные части модулированного сигнала могут быть использованы для передачи базового уровня, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровней расширения. Уровни расширения могут определять различные типы коэффициентов, называемых существенными коэффициентами и коэффициентами усовершенствования (детализации).[0006] Some video coding uses scalable techniques. For example, scalable video encoding (SVC) refers to video encoding that uses a base layer and one or more scalable extension layers. For SVC, the base layer usually carries video data with a base level of quality. One or more extension layers carry additional video data to support higher spatial, temporal, and / or SNR levels. The base layer may be transmitted in a manner that is more reliable than transmitting extension layers. Extension levels can add spatial resolution to base-level frames, or they can add additional frames to increase the overall frame rate. In one example, the most reliable portions of the modulated signal can be used to transmit the base layer, while the less reliable portions of the modulated signal can be used to transmit extension layers. Extension levels can define different types of coefficients, called essential coefficients and improvement (refinement) coefficients.

Сущность изобретенияSUMMARY OF THE INVENTION

[0007] В целом, это раскрытие описывает способы кодирования уровня расширения в схеме масштабируемого кодирования видео (SVC). Эти способы предусматривают выбор таблиц кодирования с переменной длиной (VLC) в декодере способом, который способствует упрощению вычислений. Эти способы могут использоваться при кодировании коэффициентов преобразования и особенно полезны в VLC коэффициентов детализации уровня расширения в схеме SVC. Коэффициенты детализации относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели ненулевые значения. Кодирование с переменной длиной коэффициентов детализации может быть выполнено отдельно от кодирования с переменной длиной существенных коэффициентов, которые относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели значения нуля.[0007] Generally, this disclosure describes extension level encoding methods in a scalable video encoding (SVC) scheme. These methods include selecting variable length coding tables (VLCs) in a decoder in a manner that facilitates simplification of calculations. These methods can be used in coding transform coefficients and are particularly useful in VLC expansion level detail coefficients in the SVC scheme. Coefficients of detail relate to the coefficients of the level of expansion, for which the corresponding coefficients of the previous level in the SVC scheme had nonzero values. Variable-length coding of detail coefficients can be performed separately from variable-length coding of significant coefficients, which relate to expansion level coefficients for which the corresponding coefficients of the previous level in the SVC scheme had values of zero.

[0008] Согласно способам этого раскрытия информация передается от устройства кодера на устройство декодера, которое идентифицирует, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков. Информация может быть передана однажды за кадр (или другую кодированную единицу, такую как срез (slice) или уровень FGS кадра) и может идентифицировать первую таблицу, которая должна использоваться для интракодированных (внутрикодированных) блоков, и вторую таблицу, которая должна использоваться для интеркодированных блоков соответствующего кадра. Декодер выполняет выбор таблицы VLC на основе этой информации и декодирует видеоблоки, используя выбранные таблицы VLC. Кроме того, в некоторых случаях кодер и декодер имеют соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана от кодера на декодер, так как у кодера и декодера есть соглашение.[0008] According to the methods of this disclosure, information is transmitted from an encoder device to a decoder device that identifies which VLC tables should be used to decode two or more different types of video blocks. Information can be transmitted once per frame (or another coded unit, such as a slice or FGS level of a frame) and can identify the first table that should be used for intra-coded (intra-coded) blocks, and the second table that should be used for inter-coded blocks corresponding frame. The decoder selects the VLC table based on this information and decodes the video blocks using the selected VLC tables. In addition, in some cases, the encoder and decoder have an agreement regarding tables to be used for different types of blocks. In this case, the tables that are used are dependent on the type of block, but no additional information should be transmitted from the encoder to the decoder, since the encoder and decoder have an agreement.

[0009] В одном примере это раскрытие обеспечивает способ кодирования уровня расширения в схеме SVC, причем способ содержит этапы: кодирование коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерирование информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передачу информации, представляющей кодированные коэффициенты, к устройству декодирования и передачу информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0009] In one example, this disclosure provides a method for encoding an extension level in an SVC scheme, the method comprising the steps of: encoding coefficients associated with video blocks of an extension level based on variable length encoding tables, generating information identifying a first variable length encoding table, which should be used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which should be used by devices a decoding ohm to decode a second type of video blocks, transmitting information representing encoded coefficients to a decoding device and transmitting information identifying a first variable length encoding table to be used by a decoding device to decode the first type of video blocks, and a second variable length encoding table to be used by the decoding device to decode the second type of video blocks.

[0010] В другом примере это раскрытие обеспечивает способ кодирования уровня расширения для схемы SVC, причем способ содержит этапы: прием информации, представляющей закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, прием информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбор таблиц для декодирования информации, представляющей кодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирование информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0010] In another example, this disclosure provides a method for encoding an extension level for an SVC scheme, the method comprising the steps of: receiving information representing encoded coefficients associated with the video blocks of the extension level, receiving information identifying the first variable length encoding table to be used for decoding the first type of video blocks, and the second variable length coding table, which should be used to decode the second type of video blocks, select the tab persons for decoding information representing encoded coefficients based on information identifying the first and second variable length coding table to be used, and decoding information representing encoded coefficients based on selected tables.

[0011] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения в схеме SVC, причем устройство содержит: кодер, который кодирует коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной и генерирует информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, и передатчик, который передает информацию, представляющую закодированные коэффициенты, и передает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока.[0011] In another example, this disclosure provides a device that encodes an extension level in an SVC scheme, the device comprising: an encoder that encodes coefficients associated with extension level video blocks based on variable length encoding tables and generates information identifying the first encoding table with a variable length, which must be used by the decoding device to decode the first type of video blocks, and a second coding table with a variable length, which must be used to decode to decode the second type of video blocks, and a transmitter that transmits information representing the encoded coefficients and transmits information identifying the first variable-length coding table to be used by the decoding device to decode the first type of video blocks, and a second coding table with variable length to be used by the decoding device to decode the second type of video block.

[0012] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит: приемник, который принимает информацию, представляющую закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, и принимает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, и декодер, который выбирает таблицы для декодирования этой информации, представляющей кодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирует информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0012] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising: a receiver that receives information representing encoded coefficients associated with the video blocks of the extension level, and receives information identifying a first variable length encoding table, which should be used to decode the first type of video blocks, and the second variable-length coding table, which should be used to decode orogo type of video blocks and a decoder which selects a table to decode the information representing the encoded coefficients, based on the information identifying the first and second encoding table with variable length, to be used, and decodes the information representing the encoded coefficients, based on the selected tables.

[0013] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит: средство для кодирования коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, в котором средство для кодирования генерирует информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, и средство для передачи информации, представляющей закодированные коэффициенты, к устройству декодирования, при этом средство для передачи передает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0013] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising: means for encoding coefficients associated with video blocks of the extension level, based on variable length encoding tables in which the encoding means generates information identifying the first variable length coding table to be used by the decoding device to decode the first type of video blocks, and the second alternating coding table the length to be used by the decoding device to decode the second type of video blocks, and means for transmitting information representing the encoded coefficients to the decoding device, the means for transmitting transmitting information identifying the first variable length encoding table to be used by the decoding device to decode the first type of video blocks, and the second variable length coding table to be used by the deco device keying to decode the second type of video blocks.

[0014] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит средство для приема закодированных коэффициентов, ассоциированных с видеоблоками уровня расширения, причем средство для приема также принимает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, средство для выбора таблиц для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и средство для декодирования информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0014] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising means for receiving encoded coefficients associated with video blocks of an extension level, the reception means also receiving information identifying a first variable length coding table that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used to decode the second of the type of video blocks, means for selecting tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding table to be used, and means for decoding information representing encoded coefficients based on the selected tables.

[0015] Способы, описанные в этом раскрытии, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. При реализации в программном обеспечении программное обеспечение может быть выполнено в одном или более процессорах, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или цифровой процессор сигналов (DSP). Программное обеспечение, которое выполняет эти способы, может быть первоначально сохранено в считываемом компьютером носителе и загружено и выполнено в процессоре.[0015] The methods described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the software may be executed in one or more processors, such as a microprocessor, a specialized integrated circuit (ASIC), a user programmable gate array (FPGA), or a digital signal processor (DSP). Software that performs these methods may be initially stored in a computer-readable medium and downloaded and executed on a processor.

[0016] Соответственно, это раскрытие также рассматривает считываемые компьютером носители, содержащие команды, которые после выполнения в устройстве кодирования видео заставляют устройство кодировать уровень расширения схемы SVC, при этом команды заставляют устройство кодировать коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерировать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблока, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблока, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока.[0016] Accordingly, this disclosure also contemplates computer-readable media containing instructions that, after executing in the video encoding device, cause the device to encode the extension level of the SVC circuit, while the instructions cause the device to encode coefficients associated with the video blocks of the extension level based on coding tables with variable length, generate information identifying the first variable length coding table to be used by the decoder code to decode the first type of video block, and a second variable length coding table to be used by the decoding device to decode the second type of video block, transmit information representing encoded coefficients to the decoding device and transmit information identifying the first variable length coding table, which should be used by the decoding device to decode the first type of video block, and the second variable length coding table, which th decoding device to be used to decode a second type of video block.

[0017] Кроме того, это раскрытие также рассматривает считываемые компьютером носители, содержащие команды, которые после выполнения в устройстве кодирования видео, заставляют это устройство кодировать уровень расширения схемы SVC, в котором после приема информации, представляющей закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, и приема информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, команды заставляют это устройство выбирать таблицы для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0017] In addition, this disclosure also contemplates computer-readable media containing instructions that, after executing in the video encoding device, cause the device to encode the extension level of the SVC circuit, in which, after receiving information representing encoded coefficients associated with the video blocks of the extension level, and receiving information identifying the first variable-length coding table to be used to decode the first type of video blocks, and the second table to variable length coding, which should be used to decode the second type of video blocks, commands cause this device to select tables for decoding information representing encoded coefficients based on information identifying the first and second variable length coding table to be used, and decode the information representing encoded coefficients based on selected tables.

[0018] В некоторых случаях считываемый компьютером носитель может быть частью компьютерного программного продукта, который может быть продан изготовителям и/или использоваться в устройстве кодирования видео. Компьютерный программный продукт может включать в себя считываемый компьютером носитель, и в некоторых случаях может также включать в себя упаковочные материалы.[0018] In some cases, the computer-readable medium may be part of a computer program product that can be sold to manufacturers and / or used in a video encoding device. A computer program product may include computer-readable media, and in some cases may also include packaging materials.

[0019] Это раскрытие может также относиться к схеме, такой как интегральная схема, набор специализированных интегральных схем (ASIC), программируемая пользователем вентильная матрица (FPGA), логика или различные их комбинации, сконфигурированные, чтобы выполнить один или более способов, описанных здесь. Соответственно, это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, причем эта схема конфигурируется, чтобы кодировать коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерировать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования, и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0019] This disclosure may also refer to a circuit, such as an integrated circuit, a set of specialized integrated circuits (ASIC), a user programmable gate array (FPGA), logic, or various combinations thereof, configured to perform one or more of the methods described herein. Accordingly, this disclosure also considers a circuit configured to encode an extension level of an SVC scheme, and this circuit is configured to encode coefficients associated with video blocks of an extension level, based on variable length encoding tables, to generate information identifying a first variable length encoding table, which should be used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which Must be used by a decoding device to decode a second type of video blocks, transmit information representing encoded coefficients to a decoding device, and transmit information identifying a first variable-length encoding table to be used by a decoding device to decode a first type of video blocks, and a second encoding table with a variable length, which must be used by the decoding device to decode the second type of video blocks.

[0020] Это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы масштабируемого кодирования видео (SVC), при этом схема конфигурируется, чтобы принимать информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, принимать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбирать таблицы для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирования информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0020] This disclosure also considers a circuit configured to encode an extension level of a scalable video encoding (SVC) scheme, wherein the circuit is configured to receive information representing encoded coefficients associated with the video blocks of the extension level, to receive information identifying the first variable encoding table the length that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used When decoding the second type of video blocks, select tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding tables to be used and decoding information representing encoded coefficients based on the selected tables.

[0021] Кроме того, это раскрытие рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, причем схема конфигурируется, чтобы принимать информацию, представляющую закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, выбирать различные таблицы кодирования с переменной длиной, которые должны быть использованы для декодирования информации, на основании типов блока, ассоциированных с видеоблоками, в соответствии с соглашением, установленным кодером, декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0021] In addition, this disclosure considers a circuit configured to encode an extension level of an SVC scheme, wherein the scheme is configured to receive information representing encoded coefficients associated with extension level video blocks, select various variable length encoding tables to be used for decoding information, based on block types associated with video blocks, in accordance with an agreement established by an encoder, decode information representing coded coefficients based on selected tables.

[0022] Подробности одного или более аспектов раскрытия формулируются в сопроводительных чертежах и описании, приведенном ниже. Другие признаки, задачи и преимущества методик, описанных в этом раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.[0022] Details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described in this disclosure will be apparent from the description and drawings, and from the claims.

Краткое описание чертежейBrief Description of the Drawings

[0023] Фиг.1 - примерная блок-схема, иллюстрирующая систему кодирования и декодирования видео.[0023] FIG. 1 is an exemplary block diagram illustrating a video encoding and decoding system.

[0024] Фиг.2 - концептуальная диаграмма, иллюстрирующая видеокадры базового уровня и уровня расширения масштабируемого битового потока видео.[0024] FIG. 2 is a conceptual diagram illustrating video frames of a base layer and an extension layer of a scalable video bitstream.

[0025] Фиг.3 - блок-схема, иллюстрирующая пример видеокодера, совместимого с настоящим изобретением.[0025] FIG. 3 is a block diagram illustrating an example of a video encoder compatible with the present invention.

[0026] Фиг.4 - блок-схема, иллюстрирующая пример видеодекодера, совместимого с настоящим изобретением.[0026] FIG. 4 is a block diagram illustrating an example of a video decoder compatible with the present invention.

[0027] Фиг.5 - примерная блок-схема модуля кодирования с кодированием с переменной длиной (VLC).[0027] FIG. 5 is an exemplary block diagram of a variable length coding (VLC) coding unit.

[0028] Фиг.6 - примерная блок-схема модуля декодирования VLC.[0028] FIG. 6 is an exemplary block diagram of a VLC decoding module.

[0029] Фиг.7 - схема последовательности операций, иллюстрирующая методику VLC для кодирования с переменной длиной, совместимую с настоящим изобретением.[0029] FIG. 7 is a flowchart illustrating a VLC technique for variable-length coding compatible with the present invention.

[0030] Фиг.8 - схема последовательности операций, иллюстрирующая методику VLC для декодирования с переменной длиной, совместимую с настоящим изобретением.[0030] FIG. 8 is a flowchart illustrating a VLC technique for variable length decoding compatible with the present invention.

Подробное описаниеDetailed description

[0031] Это раскрытие описывает методики для кодирования уровня расширения в схеме масштабируемого кодирования видео (SVC). Эти методики предусматривают выбор таблиц кодирования с переменной длиной (VLC) в декодере способом, который улучшает простоту вычислений. Эти методики могут использоваться при кодировании коэффициентов преобразования и особенно полезны при кодировании с переменной длиной коэффициентов детализации уровня расширения схемы SVC. Коэффициенты детализации относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имеют ненулевые значения. Кодирование с переменной длиной коэффициентов детализации может быть выполнено отдельно от кодирования с переменной длиной существенных коэффициентов (например, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имеют нулевые значения).[0031] This disclosure describes techniques for coding an extension layer in a scalable video coding (SVC) scheme. These techniques involve the selection of variable length coding tables (VLCs) in a decoder in a manner that improves simplicity of computation. These techniques can be used in coding transform coefficients and are especially useful in variable length coding of detail coefficients of the level of expansion of an SVC circuit. Coefficients of detail relate to the coefficients of the level of expansion, for which the corresponding coefficients of the previous level in the SVC scheme have nonzero values. Variable length coding of detail coefficients can be performed separately from coding with variable length of significant coefficients (for example, for which the corresponding coefficients of the previous level in the SVC scheme have zero values).

[0032] Согласно методикам этого раскрытия информация, идентифицирующая, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков, передается с устройства кодера на устройство декодера. Эта информация может быть передана однажды за кадр (или другую кодированную единицу) и может идентифицировать первую таблицу, которая должна использоваться для интракодированных блоков, и вторую таблицы, которая должна использоваться для интеркодированных блоков соответствующего кадра. Декодер выполняет выбор таблицы на основе этой информации и декодирует видеоблоки, используя выбранные таблицы.[0032] According to the techniques of this disclosure, information identifying which VLC tables should be used to decode two or more different types of video blocks is transmitted from the encoder device to the decoder device. This information can be transmitted once per frame (or other coded unit) and can identify the first table that should be used for intra-coded blocks, and the second table that should be used for intercoded blocks of the corresponding frame. The decoder performs table selection based on this information and decodes the video blocks using the selected tables.

[0033] В устройстве кодера выбор таблицы VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы в устройстве кодера. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в устройстве декодера. Вместо этого информация, идентифицирующая таблицы, которые должны быть выбраны для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с устройства кодера на устройство декодера. Устройство декодера может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы. Альтернативно, в некоторых случаях кодер и декодер могут иметь соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана с кодера на декодер, так как кодер и декодер имеют соглашение.[0033] In the encoder device, the selection of a VLC table for encoding various video blocks can be made based on information collected for previously or currently encoded frames. For example, statistical analysis of previously encoded frames may be performed to facilitate table selection in the encoder device. This computationally intensive analysis, however, can be avoided in the decoder device. Instead, information identifying the tables to be selected for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks, can be transmitted from the encoder device to the decoder device. A decoder device may use this transmitted information to facilitate proper table selections. Alternatively, in some cases, the encoder and decoder may have an agreement regarding tables to be used for various types of blocks. In this case, the tables that are used are dependent on the type of block, but no additional information should be transmitted from the encoder to the decoder, since the encoder and decoder have an agreement.

[0034] Выбранные таблицы в кодере могут очень зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере, является обычно неизвестным на декодере, информация относительно типа видеоблока обеспечивает полезный механизм для выбора таблицы в декодере. В частности, так как уровень квантования может зависеть от типа видеоблока, выбор таблицы VLC в декодере на основании типа видеоблока может быть полезным. Таблицы VLC идентифицируются для декодера для различных типов видеоблока, и декодер может определить тип, ассоциированный с соответствующим видеоблоком, и использовать соответствующую таблицу VLC, чтобы декодировать этот соответствующий видеоблок.[0034] The selected tables in the encoder can be very dependent on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in the encoder is usually unknown at the decoder, information regarding the type of video block provides a useful mechanism for selecting a table in the decoder. In particular, since the quantization level may depend on the type of video block, selecting a VLC table in the decoder based on the type of video block may be useful. VLC tables are identified for the decoder for various types of video block, and the decoder can determine the type associated with the corresponding video block and use the corresponding VLC table to decode this corresponding video block.

[0035] Фиг.1 показывает блок-схему, иллюстрирующую систему 10 кодирования и декодирования видео. Как показано на Фиг.1, система 10 включает в себя устройство 12 источника, которое передает кодированное видео на устройство 16 приема по каналу 15 связи. Устройство 12 источника может включать в себя источник 20 видео, видеокодер 22 и модулятор/передатчик 24. Устройство 16 приема может включать в себя приемник/демодулятор 26, видеодекодер 28 и устройство 30 отображения. Система 10 может быть конфигурирована, чтобы применять методики для кодирования с переменной длиной (VLC) видеоинформации, ассоциированной с уровнем расширения, в схеме масштабируемого кодирования видео (SVC).[0035] FIG. 1 shows a block diagram illustrating a video encoding and decoding system 10. As shown in FIG. 1, system 10 includes a source device 12 that transmits encoded video to a reception device 16 over a communication channel 15. The source device 12 may include a video source 20, a video encoder 22, and a modulator / transmitter 24. A receiving device 16 may include a receiver / demodulator 26, a video decoder 28, and a display device 30. System 10 may be configured to apply techniques for variable length coding (VLC) of video information associated with an extension level in a scalable video coding (SVC) scheme.

[0036] SVC относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. Для SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддержать более высокий пространственный, временной и/или сигнал-к-шуму SNR уровни. Уровни расширения могут быть определены относительно ранее закодированного уровня. Уровни расширения определяют по меньшей мере два различных типа коэффициентов, называемых существенными коэффициентами и коэффициентами детализации (улучшения). Коэффициенты детализации могут определять значения относительно соответствующих значений ранее кодированного уровня. Кадры уровней расширения иногда включают в себя только часть общего количества видеоблоков в базовом уровне или предыдущем уровне расширения, например только те блоки, для которых выполняется расширение.[0036] SVC refers to video encoding that uses a base layer and one or more scalable extension layers. For SVC, the base layer usually carries video data with a base level of quality. One or more extension layers carry additional video data to support higher spatial, temporal and / or signal-to-noise SNR levels. Extension levels can be determined relative to a previously encoded level. Levels of expansion define at least two different types of coefficients called essential coefficients and coefficients of detail (improvement). Coefficients of detail can determine the values relative to the corresponding values of the previously encoded level. Extension level frames sometimes include only part of the total number of video blocks in the base level or previous extension level, for example, only those blocks for which expansion is performed.

[0037] Существенные коэффициенты относятся к коэффициентам, для которых соответствующие коэффициенты в предыдущем уровне имели нулевые значения. Коэффициенты детализации относятся к коэффициентам, для которых соответствующие коэффициенты в предыдущем уровне имели ненулевые значения в предыдущем уровне. Кодирование с переменной длиной уровней расширения обычно использует подход с двумя проходами. Первый проход выполняется для кодирования длинами серий существенных коэффициентов, и другой проход выполняется, чтобы закодировать коэффициенты детализации. Методики этого раскрытия особенно полезны для кодирования с переменной длиной коэффициентов детализации, хотя настоящее раскрытие не обязательно ограничивается в этом отношении.[0037] Material coefficients relate to coefficients for which the corresponding coefficients in the previous level had zero values. Detail factors refer to factors for which the corresponding factors in the previous level had nonzero values in the previous level. Variable-length coding of extension levels usually uses a two-pass approach. A first pass is performed to encode the lengths of a series of significant coefficients, and another pass is performed to encode the detail coefficients. The techniques of this disclosure are particularly useful for variable length coding of detail coefficients, although the present disclosure is not necessarily limited in this regard.

[0038] Согласно методикам этого раскрытия информация передается от устройства 12 источника на устройство 16 приема, которое идентифицирует, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков. Информация может быть передана однажды за кадр (или другую кодированную единицу), и может идентифицировать первую таблицу, которая должна использоваться для интракодированных блоков, и вторую таблицу, которая должна использоваться для интеркодированных блоков соответствующего кадра. Эта информация может содержать один или более битов, которые идентифицируют первую таблицу VLC для интракодированных блоков, и один или более битов, которые идентифицируют вторую таблицу VLC для интеркодированных блоков. Видео декодер 28 устройства 16 приема выполняет выбор таблицы на основании этой информации и декодирует видеоблоки, используя выбранные таблицы. Снова, однако, в некоторых случаях кодер 22 и декодер 28 могут иметь соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана от устройства 12 источника на устройство 16 приема, так как кодер 22 и декодер 28 имеют соглашение.[0038] According to the techniques of this disclosure, information is transmitted from the source device 12 to the receiving device 16, which identifies which VLC tables should be used to decode two or more different types of video blocks. The information may be transmitted once per frame (or other coded unit), and may identify the first table to be used for intra-coded blocks, and the second table to be used for intercoded blocks of the corresponding frame. This information may contain one or more bits that identify the first VLC table for intra-encoded blocks, and one or more bits that identify the second VLC table for intra-encoded blocks. Video decoder 28 of the receiving device 16 performs table selection based on this information and decodes the video blocks using the selected tables. Again, however, in some cases, encoder 22 and decoder 28 may have agreement on tables to be used for various types of blocks. In this case, the tables that are used are dependent on the type of block, but no additional information should be transmitted from the source device 12 to the receiving device 16, since the encoder 22 and decoder 28 have an agreement.

[0039] В примере на Фиг.1 канал 15 связи может содержать любой беспроводной или проводной носитель связи, такой как радиочастотного (РЧ) спектра или одну или более физических линий передачи, или любую комбинацию беспроводного или проводного носителей. Канал 15 связи может быть частью основанной на пакетной передаче сети, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Канал 15 связи обычно представляет собой любой подходящий коммуникационный носитель или «коллекцию» различных коммуникационных носителей для передачи видеоданных от устройства 12 источника на устройство 16 приема. Канал 15 связи может включать в себя различные базовые станции или другие компоненты, чтобы облегчить передачу от устройства 12 источника к устройству 16 приема.[0039] In the example of FIG. 1, the communication channel 15 may comprise any wireless or wired communication medium, such as a radio frequency (RF) spectrum or one or more physical transmission lines, or any combination of wireless or wired media. Communication channel 15 may be part of a packet-based network, such as a local area network, wide area network, or wide area network, such as the Internet. Communication channel 15 is typically any suitable communication medium or “collection” of various communication media for transmitting video data from source device 12 to reception device 16. Communication channel 15 may include various base stations or other components to facilitate transmission from source device 12 to reception device 16.

[0040] Устройство 12 источника и устройство 16 приема могут содержать любое из широкого разнообразия устройств беспроводной связи, таких как беспроводные цифровые телевизоры, телефонные трубки устройства беспроводной связи, персональные цифровые ассистенты (PDA), беспроводной портативный или настольный компьютеры, беспроводные цифровые камеры, беспроводные цифровые устройства записи, беспроводные устройства видео игр, беспроводные консоли компьютерных игр, сотовые или спутниковые радиотелефоны и т.п.[0040] The source device 12 and the receiving device 16 may comprise any of a wide variety of wireless communication devices, such as wireless digital televisions, handsets of wireless communication devices, personal digital assistants (PDAs), wireless laptop or desktop computers, wireless digital cameras, wireless digital recorders, wireless video game devices, wireless computer game consoles, cellular or satellite radiotelephones, and the like.

[0041] Устройство 12 источника генерирует кодированные видеоданные для передачи на устройство 16 приема. В некоторых случаях, однако, устройства 12, 16 могут работать по существу симметричным способом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддержать одностороннюю или двухстороннюю передачу видео между видео устройствами 12, 16, например, для потоковой передачи видео, радиовещания видео или видео телефонии.[0041] The source device 12 generates encoded video data for transmission to the receiving device 16. In some cases, however, devices 12, 16 may operate in a substantially symmetrical manner. For example, each of the devices 12, 16 may include video encoding and decoding components. Therefore, system 10 can support one-way or two-way video transmission between video devices 12, 16, for example, for streaming video, broadcasting video, or video telephony.

[0042] Источник 20 видео из устройства 12 источника может включать в себя устройство захвата видео, такое как видео камера, видео архив, содержащий ранее захваченное видео или видео передачу от поставщика видео контента. В качестве другой альтернативы источник 20 видео может генерировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию видео в реальном масштабе времени и генерируемого компьютером видео. В некоторых случаях, если источник 20 видео является видео камерой, устройство 12 источника и устройство 16 приема могут сформировать так называемые телефоны с камерами или видеотелефоны. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано видеокодером 22 для передачи от устройства 12 источника видео на видеодекодер 28 устройства 16 приема видео через модулятор/передатчик 22, канал 15 связи и приемник/демодулятор 26. Процессы кодирования и декодирования видео могут реализовать способы кодирования длинами серий, описанные здесь, чтобы улучшить эти процессы. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка, дисплей на жидких кристаллах (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.[0042] The video source 20 from the source device 12 may include a video capture device, such as a video camera, a video archive containing previously captured video or video transmission from a video content provider. As another alternative, video source 20 may generate computer-based data as a source video or a combination of real-time video and computer-generated video. In some cases, if the video source 20 is a video camera, the source device 12 and the receiving device 16 may form so-called camera telephones or video telephones. In each case, captured, pre-captured or computer-generated video can be encoded by video encoder 22 for transmission from the video source device 12 to video decoder 28 of video receiving device 16 through modulator / transmitter 22, communication channel 15 and receiver / demodulator 26. Video encoding and decoding processes can implement the coding methods of the lengths of the series described here to improve these processes. The display device 30 displays the decoded video data to the user and may comprise any of a variety of display devices, such as a cathode ray tube, liquid crystal display (LCD), plasma display, organic light emitting diode (OLED) display, or other type of display device.

[0043] Видеокодер 22 и видеодекодер 28 могут быть конфигурированы, чтобы поддерживать SVC для пространственной, временной и/или отношения сигнал-шум (SNR) масштабируемости. В некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть конфигурированы, чтобы поддержать кодирование с мелкой степенью детализации SNR масштабируемости (FGS), для SVC. Кодер 22 и декодер 28 могут поддерживать различные степени масштабируемости посредством поддержки кодирования, передачи и декодирования базового уровня и одного или более масштабируемых уровней расширения. Снова для масштабируемого кодирования видео базовый уровень несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные данные, чтобы поддерживать более высокий пространственный, временной и/или SNR уровни. Базовый уровень может быть передан способом, который более надежен, чем передача уровней расширения. Например, самые надежные части модулированного сигнала могут быть использованы для передачи базового уровня, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровней расширения.[0043] Video encoder 22 and video decoder 28 may be configured to support SVC for spatial, temporal, and / or signal to noise ratio (SNR) scalability. In some aspects, video encoder 22 and video decoder 28 may be configured to support fine granularity SNR scalability (FGS) encoding for SVC. Encoder 22 and decoder 28 can support varying degrees of scalability by supporting encoding, transmitting, and decoding of the base layer and one or more scalable extension layers. Again, for scalable video encoding, the base layer carries video data with a basic level of quality. One or more extension layers carry additional data to support higher spatial, temporal, and / or SNR levels. The base layer may be transmitted in a manner that is more reliable than transmitting extension layers. For example, the most reliable parts of the modulated signal can be used to transmit the base level, while the less reliable parts of the modulated signal can be used to transmit the extension levels.

[0044] Чтобы поддержать SVC, видеокодер 22 может включать в себя кодер 32 базового уровня и один или более кодеров 34 уровня расширения, чтобы выполнить кодирование базового уровня и одного или более уровней расширения соответственно. Методики этого раскрытия, которые используют выбор таблицы VLC, применимы к кодированию видеоблоков уровней расширения в SVC.[0044] In order to support SVC, video encoder 22 may include a base layer encoder 32 and one or more extension layer encoders 34 to perform encoding of the base layer and one or more extension layers, respectively. The techniques of this disclosure, which use VLC table selection, are applicable to coding video blocks of extension layers in SVC.

[0045] Видеодекодер 28 может включать в себя объединенный декодер базового уровня/уровня расширения, который декодирует блоки видео и базового уровня и уровня расширения. Видеодекодер 28 может декодировать видеоблоки, ассоциированные и с базовым и с расширением уровнями, и комбинировать декодированное видео, чтобы восстановить кадры видео последовательности. Устройство 30 отображения принимает декодированную видео последовательность и представляет видео последовательность пользователю.[0045] Video decoder 28 may include a combined base level / extension level decoder that decodes blocks of video and base level and extension level. Video decoder 28 can decode the video blocks associated with both the base and extension layers, and combine the decoded video to restore frames of the video sequence. The display device 30 receives the decoded video sequence and presents the video sequence to the user.

[0046] Видеокодер 22 и видеодекодер 28 могут работать согласно стандарту сжатия видео, такому как MPEG-2, MPEG-4, Н.263 ITU-T или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное Кодирование Видео (AVC). Хотя и не показано на Фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть, каждый, интегрированы с аудио кодером и декодером и могут включать в себя соответствующие модули MUX-DEMUX или другое аппаратное обеспечение и программное обеспечение для обработки кодирования и аудио и видео в общем потоке данных или отдельных потоках данных. Если применимо, модули MUX-DEMUX может соответствовать протоколу мультиплексора Н.223 ITU или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).[0046] Video encoder 22 and video decoder 28 may operate according to a video compression standard such as MPEG-2, MPEG-4, ITU-T or ITU-T H.264 / MPEG-4 MPEG-2, Part 10, Advanced Video Encoding ( AVC). Although not shown in FIG. 1, in some aspects, video encoder 22 and video decoder 28 may each be integrated with an audio encoder and decoder and may include respective MUX-DEMUX modules or other hardware and software for encoding and audio processing and video in a shared data stream or individual data streams. If applicable, the MUX-DEMUX modules may conform to the H.223 ITU multiplexer protocol or other protocols such as user datagram protocol (UDP).

[0047] Стандарт H.264/MPEG-4 (AVC) был сформулирован Группой Экспертов Кодирования Видео (VCEG) ITU-T вместе с Группой Экспертов по Движущимся Изображениям ISO/IEC (MPEG) в качестве продукта коллективного партнерства, известного как Объединенная Видео Группа (JVT). В некоторых аспектах методики, описанные в этом раскрытии, могут быть применены к устройствам, которые обычно соответствуют стандарту H.264. Стандарт H.264 описывается в Рекомендации H.264 ITU-T, Усовершенствованное Кодирование Видео для универсальных аудиовизуальных служб, посредством Исследовательской Группы ITU-T, датированной мартом 2005, который может быть назван здесь как стандарт H.264 или спецификация H.264 или стандарт или спецификация H.264/AVC.[0047] The H.264 / MPEG-4 (AVC) standard was formulated by the ITU-T Video Coding Experts Group (VCEG) together with the ISO / IEC Moving Images Experts Group (MPEG) as a collaborative partnership product known as the Combined Video Group (JVT). In some aspects, the techniques described in this disclosure may be applied to devices that typically comply with the H.264 standard. The H.264 standard is described in ITU-T Recommendation H.264, Advanced Video Coding for Universal Audiovisual Services, through the ITU-T Study Group dated March 2005, which may be referred to here as the H.264 standard or the H.264 specification or standard or H.264 / AVC specification.

[0048] Объединенная Видео Группа (JVT) продолжает работать по расширению SVC на H.264/MPEG-4 AVC. Спецификация развивающегося расширения SVC находится в форме Объединенного Проекта (JD). Объединенная Масштабируемая Видео Модель (JSVM), созданная JVT, реализует инструментальные средства для использования в масштабируемом видео, которое может использоваться в системе 10 для различных задач кодирования, описанных в этом раскрытии. Подробная информация относительно кодирования масштабируемости SNR с мелкой степенью детализации (FGS) может быть найдена в документах Объединенного Проекта и, в частности, в Объединенном Проекте 6 (SVC JD6), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 6: Scalable Video Coding," JVT-S 201, April 2006, Geneva, и в Joint Draft 9 (SVC JD9), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 9 of SVC Amendment," JVT-V 201, January 2007, Marrakech, Morocco.[0048] The Combined Video Group (JVT) continues to work to expand the SVC on the H.264 / MPEG-4 AVC. The specification for the evolving SVC extension is in the form of a Joint Project (JD). The Joint Scalable Video Model (JSVM) created by JVT implements tools for use in scalable video, which can be used in system 10 for various coding tasks described in this disclosure. Detailed information on fine granularity SNR scalability coding (FGS) can be found in the Joint Project documents and, in particular, in Joint Project 6 (SVC JD6), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 6: Scalable Video Coding," JVT-S 201, April 2006, Geneva, and Joint Draft 9 (SVC JD9), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 9 of SVC Amendment, "JVT-V 201, January 2007, Marrakech, Morocco.

[0049] В некоторых аспектах для вещания видео методики, описанные в этом раскрытии, могут быть применены к Улучшенному кодированию видео H.264 для того, чтобы предоставить службы видео реального времени в системах наземного мобильного мультимедийного мультивещания (TM3), используя Спецификацию Эфирного Интерфейса Только Прямой Линии Связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast," опубликованная как Technical Standard TIA-1099 ("Спецификация FLO"). То есть канал 15 связи может содержать беспроводный информационный канал, используемый для беспроводного вещания видеоинформации согласно Спецификации FLO, или подобное. Спецификация FLO включает в себя примеры, определяющие синтаксис и семантику битового потока и процессы декодирования, подходящие для эфирного интерфейса FLO. Альтернативно, видео может быть передано согласно другим стандартам, таким как DVB-H (вещание цифрового видео на портативные устройства), ISDB-T (наземное цифровое вещание интегрированных служб) или DMB (вещание цифровой аудиовизуальной информации). Следовательно, устройство 12 источника может быть мобильным беспроводным терминалом, сервером потоковой передачи видео или сервером вещания видео. Однако методики, описанные в этом раскрытии, не ограничиваются конкретным типом системы вещания, мультивещания или точка-точка. В случае вещания устройство 12 источника может вещать несколько каналов видеоинформации к множеству устройств приема, каждое из которых может быть аналогичным устройству 16 приема на Фиг.1.[0049] In some aspects for video broadcasting, the techniques described in this disclosure can be applied to Enhanced H.264 video encoding in order to provide real-time video services in terrestrial mobile multimedia broadcasting (TM3) systems using the Air Interface Specification Only Direct Link (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast," published as Technical Standard TIA-1099 ("FLO Specification"). That is, the communication channel 15 may comprise a wireless information channel used to wirelessly broadcast video information according to the FLO Specification, or the like. The FLO specification includes examples defining the syntax and semantics of the bitstream and decoding processes suitable for the FLO air interface. Alternatively, the video can be transmitted according to other standards, such as DVB-H (broadcast digital video to portable devices), ISDB-T (terrestrial digital broadcast integrated services) or DMB (broadcast digital audio-visual information). Therefore, the source device 12 may be a mobile wireless terminal, a video streaming server, or a video broadcast server. However, the techniques described in this disclosure are not limited to a particular type of broadcasting, multicasting, or point-to-point system. In the case of broadcasting, source device 12 may broadcast several video information channels to a plurality of reception devices, each of which may be similar to reception device 16 in FIG.

[0050] Видеокодер 22 и видеодекодер 28, каждый, может быть реализован как один или более микропроцессоров, цифровые процессоры сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратное обеспечение или любые их комбинации. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеры, любой из которых может быть интегрирован как часть объединенного кодера/декодера (кодека) в соответствующем мобильном устройстве, устройстве абонента, устройстве вещания, сервере или подобном. Кроме того, устройство 12 источника и устройство 16 приема, каждое, может включать в себя соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрования и усилители для передачи и приема кодированного видео, как приемлемо, включая радиочастотные (РЧ) беспроводные компоненты и антенны, достаточные для поддержания беспроводной связи. Для простоты иллюстрации, однако, такие компоненты объединены как являющиеся модулятором/передатчиком 24 устройства 12 источника и приемником/демодулятором 26 устройства 16 приема на Фиг.1.[0050] Video encoder 22 and video decoder 28, each, may be implemented as one or more microprocessors, digital signal processors (DSP), custom integrated circuits (ASIC), field programmable gate arrays (FPGAs), discrete logic, software, hardware , firmware or any combination thereof. Each of video encoder 22 and video decoder 28 may be included in one or more encoders or decoders, any of which may be integrated as part of a combined encoder / decoder (codec) in a corresponding mobile device, subscriber device, broadcast device, server, or the like. In addition, the source device 12 and the receiving device 16, each, may include appropriate modulation, demodulation, frequency conversion, filtering, and amplifiers components for transmitting and receiving encoded video, as appropriate, including radio frequency (RF) wireless components and antennas, sufficient to maintain wireless connectivity. For ease of illustration, however, such components are combined as being the modulator / transmitter 24 of the source device 12 and the receiver / demodulator 26 of the receiving device 16 in FIG. 1.

[0051] Видеопоследовательность включает в себя последовательность видеокадров. Видеокодер 22 выполняет операции над блоками пикселей (или блоками преобразованных коэффициентов) в индивидуальных видеокадрах, чтобы закодировать видеоданные. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру согласно заданному стандарту кодирования. В некоторых случаях каждый видеокадр является кодированной единицей, в то время как в других случаях каждый видеокадр может быть разбит, и включает в себя последовательность «срезов», которые формируют кодированные единицы. Каждый срез может включать в себя последовательность макроблоков, которые могут быть организованы в субблоки. В качестве примера, стандарт H.264 ITU-T поддерживает интрапредсказание при различных размерах блока, например 16 на 16, 8 на 8 или 4 на 4 для компонентов яркости и 8x8 для компонентов сигнала цветности, а также интерпредсказание в различных размерах блока, например 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для компонентов яркости и соответствующих масштабированных размеров для компонентов сигнала цветности. Согласно этому раскрытию информация выбора таблицы VLC для интракодированных блоков и интеркодированных блоков может быть передана от устройства 12 источника на устройство 16 приема однажды на кодированный модуль, например один раз за кадр, один раз за срез или один раз за уровень FGS кадра. Эта информация может затем использоваться для выбора таблицы VLC для кодирования коэффициентов преобразования видеоблоков, ассоциированных с этим соответствующим кодированным модулем.[0051] The video sequence includes a sequence of video frames. Video encoder 22 performs operations on blocks of pixels (or blocks of converted coefficients) in individual video frames to encode video data. Video blocks may have fixed or variable sizes and may vary in size according to a given coding standard. In some cases, each video frame is a coded unit, while in other cases each video frame can be split, and includes a sequence of “slices” that form coded units. Each slice may include a sequence of macroblocks that can be organized into subunits. As an example, the H.264 ITU-T standard supports intra prediction at various block sizes, for example 16 by 16, 8 by 8 or 4 by 4 for luminance components and 8x8 for chrominance components, as well as inter prediction in various block sizes, for example 16 16, 16 by 8, 8 by 16, 8 by 8, 8 by 4, 4 by 8 and 4 by 4 for luminance components and corresponding scaled sizes for chroma components. According to this disclosure, VLC table selection information for intra-encoded blocks and intercoded blocks can be transmitted from source device 12 to reception device 16 once to an encoded module, for example, once per frame, once per slice, or once per FGS level of a frame. This information can then be used to select a VLC table for encoding the transform coefficients of the video blocks associated with this corresponding coded module.

[0052] Форма и содержимое информации, переданной для идентификации различных таблиц VLC, могут изменяться. Например, информация может быть сформулирована как два различных однобитовых или многобитовых кода, которые идентифицируют - какая таблица VLC должна быть использована для декодирования первого типа видеоблока и какая таблица VLC должна быть использована для декодирования второго типа видеоблока. Для каждого кадра, который должен быть декодирован, один однобитовый или многобитовый код может быть послан для интраблоков и другой однобитовый или многобитовый код может быть послан для интерблоков. Декодер 28 выбирает различные таблицы VLC для декодирования интра- и интеркодированных блоков на основании таблиц, идентифицированных в этих кодах.[0052] The form and contents of information transmitted to identify various VLC tables may vary. For example, information can be formulated as two different single-bit or multi-bit codes that identify which VLC table should be used to decode the first type of video block and which VLC table should be used to decode the second type of video block. For each frame to be decoded, one single-bit or multi-bit code can be sent for interblocks and another single-bit or multi-bit code can be sent for interblocks. Decoder 28 selects various VLC tables to decode intra- and intercoded blocks based on the tables identified in these codes.

[0053] Меньшие видеоблоки могут обеспечить лучшее разрешение и могут использоваться для местоположений видеокадра, которые включают в себя более высокие уровни деталей. Обычно макроблоки (МБ) и различные субблоки могут быть рассмотрены в качестве видеоблоков. Кроме того, срез может рассматриваться как последовательность видеоблоков, таких как МБ и/или субблоки. Как отмечено, каждый срез может быть независимо декодируемой единицей видеокадра. После предсказания преобразование может быть выполнено в отношении остаточного блока 8×8 или остаточного блока 4×4 и дополнительное преобразование может быть применено к DC коэффициентам блоков 4×4 для компонентов сигнала цветности или компонента яркости, если используется интра_16×16 режим предсказания.[0053] Smaller video blocks can provide better resolution and can be used for video frame locations that include higher levels of detail. Typically, macroblocks (MBs) and various subblocks can be considered as video blocks. In addition, the slice can be considered as a sequence of video blocks, such as MB and / or sub-blocks. As noted, each slice may be an independently decoded video frame unit. After the prediction, the conversion can be performed on the 8 × 8 residual block or the 4 × 4 residual block, and an additional conversion can be applied to the 4 × 4 block DC coefficients for the color signal or luminance component components if the intra_16 × 16 prediction mode is used.

[0054] После интра- или интероснованного прогнозирующего кодирования дополнительные способы кодирования могут быть применены к переданному битовому потоку. Эти дополнительные способы кодирования могут включать в себя способы преобразования (такие, как 4×4 или 8×8 целочисленное преобразование, используемое в H.264/AVC, или дискретное косинусное преобразования DCT) и кодирование с переменной длиной. Блоки коэффициентов преобразования могут называться как видеоблоки. Другими словами, термин "видеоблок" относится к блоку видеоданных независимо от области информации. Таким образом, видеоблоки могут быть в пиксельной области или области преобразованных коэффициентов. Применение кодирования VLC описано в целом в этом раскрытии относительно блоков коэффициентов преобразования.[0054] After intra- or inter-based predictive coding, additional coding methods may be applied to the transmitted bitstream. These additional encoding methods may include transform methods (such as 4 × 4 or 8 × 8 integer transform used in H.264 / AVC, or discrete cosine DCT transform) and variable length encoding. Blocks of conversion coefficients may be referred to as video blocks. In other words, the term “video block” refers to a block of video data regardless of the area of information. Thus, the video blocks may be in a pixel region or a region of transformed coefficients. The use of VLC coding is described generally in this disclosure with respect to transform coefficient blocks.

[0055] Это раскрытие обеспечивает способы для кодирования с переменной длиной коэффициентов детализации. Снова коэффициенты детализации относятся к коэффициентам, которые имели ненулевые значения в предыдущем уровне, тогда как существенные коэффициенты относятся к коэффициентам, которые имели нулевые значения в предыдущем уровне. Согласно этому раскрытию информация может быть передана от устройства 12 источника на устройство 16 приема, чтобы выбрать таблицу VLC в декодере для двух или более различных типов видеоблоков. Одна из множества различных таблиц VLC может быть выбрана для каждого типа видеоблока на основании информации, посланной от устройства 12 источника на устройство 16 приема. Устройство приема затем выбирает между двумя идентифицированными таблицами VLC на основании типа декодируемого видеоблока.[0055] This disclosure provides methods for variable length coding of detail coefficients. Again, detail coefficients refer to coefficients that have non-zero values in the previous level, while significant coefficients refer to coefficients that have zero values in the previous level. According to this disclosure, information can be transmitted from source device 12 to reception device 16 to select a VLC table in a decoder for two or more different types of video blocks. One of many different VLC tables may be selected for each type of video block based on information sent from source device 12 to reception device 16. The receiving device then selects between the two identified VLC tables based on the type of decoded video block.

[0056] Каждая таблица VLC может включать в себя ряд кодовых символов, имеющих различные длины. Кодовым символам могут быть назначены соответствующие характеристики в пределах видеоблока, например конкретная длина серии из нулей коэффициентов детализации. В некоторых случаях таблицы являются статическими, но в других случаях эти таблицы могут быть сгенерированы или обновлены на основании статистики кодирования так, чтобы кодовые слова переменной длины преобразовывались в наборы коэффициентов способом, который повышает эффективность кодирования. Конечно, если таблицы обновляются в кодере, обновления таблицы также должны быть обновлены в декодере.[0056] Each VLC table may include a number of code symbols having different lengths. The code symbols can be assigned corresponding characteristics within the video block, for example, a specific length of a series of zeros of detail coefficients. In some cases, tables are static, but in other cases, these tables can be generated or updated based on coding statistics so that variable-length codewords are converted into sets of coefficients in a way that improves coding efficiency. Of course, if tables are updated at the encoder, table updates must also be updated at the decoder.

[0057] Кодер 22 и декодер 28 могут выполнять взаимно обратные способы, которые кодируют уровень расширения в схеме SVC. В кодере 22 выбор таблицы для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для в настоящее время или ранее кодированных кадров. Если выбор основан на ранее кодированных кадрах, кодирование с одним проходом может использоваться, но если кодирование основано на в настоящее время кодируемых кадрах, это может потребовать кодирование с двумя проходами. В некоторых случаях может быть выполнен статистический анализ ранее закодированных кадров, чтобы облегчить выбор таблицы в кодере 22. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере 28. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например, интракодированный блок и интеркодированные блоки могут быть переданы от устройства 12 источника на устройство 16 приема. Декодер 28 затем может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы.[0057] Encoder 22 and decoder 28 may perform mutually inverse methods that encode the extension level in the SVC scheme. At encoder 22, a table selection for encoding various video blocks can be made based on information collected for currently or previously encoded frames. If the selection is based on previously encoded frames, single-pass encoding may be used, but if the encoding is based on currently encoded frames, this may require two-pass encoding. In some cases, statistical analysis of previously encoded frames may be performed to facilitate the selection of a table in encoder 22. This computationally intensive analysis, however, can be avoided in decoder 28. Instead, information identifying the tables for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks may be transmitted from the source device 12 to the receiving device 16. Decoder 28 can then use this transmitted information to facilitate proper table selections.

[0058] Выбранные таблицы в кодере (например, которые могут быть выбраны на основании статистики) могут сильно зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере 22, является обычно неизвестным декодеру 28, информация относительно типа видеоблока обеспечивает полезную альтернативу для применения в декодере 28. Поэтому таблицы идентифицированы для декодера 28 для различных типов видеоблока, и декодер 28 может определить тип, ассоциированный с соответствующим видеоблоком, и использовать соответствующую таблицу VLC, чтобы декодировать этот соответствующий видеоблок. Как используется здесь, термин «кодирование» обычно относится к по меньшей мере части процессов кодирования или декодирования. Видеокодер 22 кодирует данные, в то время как видеодекодер 28 декодирует данные.[0058] The selected tables in the encoder (for example, which can be selected based on statistics) can greatly depend on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in encoder 22 is generally unknown to decoder 28, information regarding the type of video block provides a useful alternative for use in decoder 28. Therefore, tables are identified for decoder 28 for various types of video block, and decoder 28 can determine the type associated with the corresponding video block, and use the corresponding VLC table to decode this corresponding video block. As used herein, the term “coding” generally refers to at least a portion of the encoding or decoding processes. Video encoder 22 encodes the data, while video decoder 28 decodes the data.

[0059] Сами таблицы VLC могут назначить кодовые слова различным наборам коэффициентов преобразования. Наборы коэффициентов с нулевыми значениями могут быть представлены длинами серий из нулей, и более общим длинам серий могут быть назначены более короткие коды VLC. Менее общим длинам серий могут быть назначены более длинные коды VLC. Следовательно, выбор кодов из таблиц VLC может улучшить эффективность кодирования. Назначение кодов в таблицах VLC может быть также основано на статистике во время процесса формирования таблицы, хотя статические таблицы VLC также могут использоваться.[0059] The VLC tables themselves can assign codewords to various sets of transform coefficients. Sets of coefficients with null values may be represented by series lengths of zeros, and shorter VLC codes may be assigned to more general series lengths. Shorter series lengths can be assigned longer VLC codes. Therefore, selecting codes from VLC tables can improve coding efficiency. The assignment of codes in VLC tables can also be based on statistics during the table generation process, although static VLC tables can also be used.

[0001] Фиг.2 - диаграмма, иллюстрирующая видеокадры в базовом уровне 17 и уровне 18 расширения масштабируемого битового потока видео. Как отмечено выше, способы настоящего раскрытия применимы к кодированию данных уровней расширения. Базовый уровень 17 может содержать битовый поток, содержащий кодированные видеоданные, которые представляют первый уровень пространственной, временной или SNR масштабируемости. Уровень 18 расширения может содержать битовый поток, содержащий кодированные видеоданные, которые представляют второй уровень пространственной, временной и/или SNR масштабируемости. Хотя показан один уровень расширения, в некоторых случаях могут использоваться несколько уровней расширения. Битовый поток уровня расширения может быть декодируемым только вместе с базовым уровнем (или предыдущим уровнем расширения, если существует множество уровней расширения). Уровень 18 расширения содержит ссылки на декодированные видеоданные в базовом уровне 17. Такие ссылки могут использоваться или в области преобразования, или в пиксельной области, чтобы сгенерировать окончательные декодированные видеоданные.[0001] FIG. 2 is a diagram illustrating video frames in a base layer 17 and an extension level 18 of a scalable video bitstream. As noted above, the methods of the present disclosure are applicable to encoding these extension levels. Base layer 17 may comprise a bitstream containing encoded video data that represents a first level of spatial, temporal, or SNR scalability. Extension level 18 may comprise a bitstream containing encoded video data that represents a second level of spatial, temporal and / or SNR scalability. Although one extension level is shown, in some cases several extension levels may be used. The bitstream of the extension layer can only be decoded together with the base layer (or the previous extension layer if there are many extension layers). Extension layer 18 contains links to decoded video data in the base layer 17. Such links can be used either in the transform domain or in the pixel region to generate final decoded video data.

[0002] Базовый уровень 17 и уровень 18 расширения может содержать интра- (I), интер- (P) и бинаправленный (B) кадры. Интракадры могут включать в себя все интракодированные видеоблоки. I и P кадры могут включать в себя по меньшей мере некоторые интеркодированные видеоблоки, но могут также включать в себя некоторые интракодированные блоки. Различные кадры уровня 18 расширения не должны включать в себя все видеоблоки в базовом уровне 17. Кадры P в уровне 18 расширения полагаются на ссылки на кадры P в базовом уровне 17. Посредством декодирования кадров в уровне 18 расширения и базовом уровне 17 видеодекодер в состоянии повысить качество видео декодированного видео. Например, базовый уровень 17 может включать в себя видео, закодированное при минимальной частоте кадров, например 15 кадров в секунду, тогда как уровень 18 расширения может включать в себя видео, закодированное с более высокой частотой кадров, например 30 кадров в секунду. Чтобы поддерживать кодирование с различными уровнями качества, базовый уровень 17 и уровень 18 расширения могут быть закодированы с более высоким параметром квантования (QP) и более низким QP соответственно. Кроме того, базовый уровень 17 может быть передан способом, который более надежен, чем передача уровня 18 расширения. Как пример, самые надежные части модулированного сигнала могут быть использованы для передачи базового уровня 17, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровня 18 расширения. Иллюстрация на Фиг.2 является просто примерной, поскольку уровни базовый и расширения могут быть определены многими различными способами.[0002] The base level 17 and extension level 18 may comprise intra (I), inter (P) and bi-directional (B) frames. Intra-frames may include all of the intra-encoded video blocks. I and P frames may include at least some intercoded video blocks, but may also include some intra-coded blocks. The different frames of extension level 18 do not have to include all the video blocks in base level 17. The frames P in extension level 18 rely on links to frames P in base level 17. By decoding frames in extension level 18 and base level 17, the video decoder is able to improve quality video decoded video. For example, the base layer 17 may include video encoded at a minimum frame rate, for example 15 frames per second, while the extension level 18 may include video encoded with a higher frame rate, for example 30 frames per second. In order to support coding with different quality levels, the base layer 17 and the extension layer 18 can be encoded with a higher quantization parameter (QP) and lower QP, respectively. In addition, the base layer 17 may be transmitted in a manner that is more reliable than the transmission of the extension layer 18. As an example, the most reliable parts of the modulated signal can be used to transmit the base level 17, while the less reliable parts of the modulated signal can be used to transmit the extension level 18. The illustration in FIG. 2 is merely exemplary, since the base and extension levels can be defined in many different ways.

[0060] Фиг.3 - блок-схема, иллюстрирующая пример кодера 50 видео, который включает в себя модуль 46 VLC для кодирования данных совместимым образом с настоящим изобретением. Видеокодер 50 на Фиг.3 может соответствовать кодеру 34 уровня расширения устройства 12 источника на Фиг.1. То есть компоненты кодирования базового уровня не иллюстрируются на Фиг.3 для простоты. Поэтому видеокодер 50 может быть рассмотрен как кодер уровня расширения. Альтернативно, иллюстрированные компоненты видеокодера 50 могут быть также реализованы в комбинации с модулями или блоками кодирования базового уровня, например, в конструкции пирамидального кодера, который поддерживает масштабируемое видеокодирование базового уровня и уровня расширения.[0060] FIG. 3 is a block diagram illustrating an example of a video encoder 50 that includes a VLC module 46 for encoding data in a compatible manner with the present invention. The video encoder 50 of FIG. 3 may correspond to an extension level encoder 34 of the source device 12 of FIG. 1. That is, the base layer encoding components are not illustrated in FIG. 3 for simplicity. Therefore, video encoder 50 can be considered as an extension level encoder. Alternatively, the illustrated components of video encoder 50 may also be implemented in combination with base layer coding modules or units, for example, in a pyramidal encoder design that supports scalable video coding of a base level and extension level.

[0061] Видеокодер 50 может выполнять интра- и интеркодирование блоков в видеокадрах. Интракодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность в видео в пределах заданного видеокадра. Интеркодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность в видео в пределах смежных кадров видеопоследовательности. Для интеркодирования видеокодер 50 выполняет оценку движения, чтобы отследить движение соответствующих видеоблоков между двумя или более смежными кадрами.[0061] Video encoder 50 may perform intra and inter-coding of blocks in video frames. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in a video within a given video frame. Intercoding relies on temporal prediction to reduce or remove temporal redundancy in a video within adjacent frames of a video sequence. For inter-coding, video encoder 50 performs a motion estimation to track the movement of respective video blocks between two or more adjacent frames.

[0062] Как показано на Фиг.3, видеокодер 50 принимает текущий видеоблок 31 (например, блок видео уровня расширения) в пределах видеокадра, который должен быть закодирован. В примере на Фиг.3 видеокодер 50 включает в себя модуль 33 оценки движения, память 35 опорного кадра, модуль 37 компенсации движения, модуль 39 преобразования блоков, модуль 41 квантования, модуль 42 обратного квантования, модуль 44 обратного квантования и модуль 46 VLC. Фильтр деблокирования (не показан) может быть также включен, чтобы фильтровать границы блоков, чтобы удалить артефакты блочности. Видеокодер 50 также включает в себя сумматор 48 и сумматор 51. Фиг.3 иллюстрирует временные компоненты предсказания видеокодера 50 для интеркодирования видеоблоков. Хотя не показано на Фиг.3 для простоты иллюстрации, видеокодер 50 также может включать в себя компоненты пространственного предсказания для интракодирования некоторых видеоблоков. Компоненты пространственного предсказания, однако, обычно используются только для кодирования базового уровня.[0062] As shown in FIG. 3, the video encoder 50 receives the current video block 31 (for example, an extension level video block) within the video frame to be encoded. In the example of FIG. 3, video encoder 50 includes a motion estimation module 33, a reference frame memory 35, a motion compensation module 37, a block transform module 39, a quantization module 41, a quantization module 42, a quantization module 44, and a VLC module 46. A deblocking filter (not shown) can also be included to filter block boundaries to remove blocking artifacts. Video encoder 50 also includes an adder 48 and an adder 51. FIG. 3 illustrates temporal prediction components of a video encoder 50 for inter-coding video blocks. Although not shown in FIG. 3, for ease of illustration, video encoder 50 may also include spatial prediction components for intra-coding some video blocks. Spatial prediction components, however, are typically used only for base layer coding.

[0063] Модуль 33 оценки движения сравнивает видеоблок 31 с блоками в одном или более смежных (соседних) видеокадрах, чтобы сгенерировать один или более векторов движения. Смежный кадр или кадры могут быть извлечены из памяти 35 опорного кадра, которая может быть любым типом памяти или запоминающим устройством, чтобы хранить видеоблоки, восстановленные из ранее кодированных блоков. Оценка движения может быть выполнена для блоков переменных размеров, например 16×16, 16×8, 8×16, 8×8 или блоков меньшего размера. Модуль 33 оценки движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку 31, например, на основании модели искажения скорости передачи, и определяет смещение между блоками. На этой основе модуль 33 оценки движения формирует вектор движения (MV) (или множество MV в случае двунаправленного предсказания), который указывает величину и траекторию смещения между текущим видеоблоком 31 и прогнозирующим блоком, используемым для кодирования текущего видеоблока 31.[0063] Motion estimation module 33 compares video block 31 with blocks in one or more adjacent (adjacent) video frames to generate one or more motion vectors. An adjacent frame or frames may be retrieved from the reference frame memory 35, which may be any type of memory or memory device, to store video blocks reconstructed from previously encoded blocks. Motion estimation can be performed for blocks of variable sizes, for example 16 × 16, 16 × 8, 8 × 16, 8 × 8 or smaller blocks. Motion estimation module 33 identifies a block in an adjacent frame that most closely matches the current video block 31, for example, based on a transmission rate distortion model, and determines the offset between the blocks. On this basis, motion estimation module 33 generates a motion vector (MV) (or a plurality of MVs in the case of bidirectional prediction), which indicates the magnitude and trajectory of the offset between the current video block 31 and the prediction block used to encode the current video block 31.

[0064] Векторы движения могут иметь точность в половину или четверть пикселя или даже более высокую точность, позволяя видеокодеру 50 отследить движение с более высокой точностью, чем местоположения с целочисленными пикселями, и получить блок с лучшим прогнозом. Когда используются векторы движения с дробными значениями пикселя, операции интерполяции выполняются в модуле 37 компенсации движения. Модуль 33 оценки движения может идентифицировать лучший вектор движения для видеоблока, используя модель искажения скорости передачи. Используя результирующий вектор движения, модуль 37 компенсации движения формирует блок видео предсказания посредством компенсации движения.[0064] Motion vectors can have an accuracy of half or a quarter pixel or even higher accuracy, allowing video encoder 50 to track the movement with higher accuracy than locations with integer pixels and obtain a block with a better prediction. When motion vectors with fractional pixel values are used, interpolation operations are performed in the motion compensation unit 37. Motion estimation module 33 can identify the best motion vector for a video block using a transmission rate distortion model. Using the resulting motion vector, the motion compensation module 37 generates a video prediction block by motion compensation.

[0065] Видеокодер 50 формирует остаточный видеоблок посредством вычитания блока видео предсказания, сформированного модулем 37 компенсации движения, из первоначального, текущего видеоблока 31 в сумматоре 48. Модуль 39 преобразования блоков применяет преобразование, такое как дискретное косинусное преобразование (DCT), к остаточному блоку, формируя коэффициенты остаточных блоков преобразования. Модуль 41 квантования квантует коэффициенты остаточных блоков преобразования, чтобы дополнительно уменьшить скорость передачи в битах. Сумматор 49A принимает информацию о коэффициентах базового уровня, например, от кодера базового уровня (не показан) и располагается между модулем 39 преобразования блоков и модулем 41 квантования, чтобы предоставить эту информацию о коэффициентах базового уровня для кодирования уровня расширения. В частности, сумматор 49A вычитает информацию о коэффициентах базового уровня из выходного сигнала модуля 39 преобразования блоков. Аналогично сумматор 49B, который расположен между модулем 44 обратного преобразования и модулем 42 обратного квантования, также принимает информацию о коэффициентах базового уровня от кодера базового уровня (не показан). Сумматор 49B суммирует информацию о коэффициентах базового уровня с выходным сигналом модуля 42 обратного квантования.[0065] Video encoder 50 generates a residual video block by subtracting the video prediction block generated by the motion compensation unit 37 from the original, current video block 31 in the adder 48. The block transform module 39 applies a transform, such as a discrete cosine transform (DCT), to the residual block, forming the coefficients of the residual transformation blocks. The quantization module 41 quantizes the coefficients of the residual transform blocks to further reduce the bit rate. Adder 49A receives base layer coefficient information, for example, from a base layer encoder (not shown) and is located between block transform unit 39 and quantization unit 41 to provide this base layer coefficient information for encoding the extension layer. In particular, the adder 49A subtracts information about the coefficients of the base level from the output signal of the module 39 conversion blocks. Similarly, adder 49B, which is located between the inverse transform unit 44 and the inverse quantization unit 42, also receives base layer coefficient information from a base layer encoder (not shown). The adder 49B summarizes the information about the coefficients of the base level with the output signal of the module 42 inverse quantization.

[0066] Модуль 46 VLC кодирует квантованные коэффициенты преобразования согласно методологии кодирования с переменной длиной, чтобы еще больше уменьшить скорость передачи в битах переданной информации. В частности, модуль 46 VLC применяет способы этого раскрытия, чтобы закодировать коэффициенты детализации уровня расширения. Модуль 46 VLC может также сгенерировать дополнительную информацию, чтобы идентифицировать, какие таблицы декодер должен использовать для различных типов видеоблоков. Эта дополнительная информация может быть включена в кодированный битовый поток так, чтобы декодер мог определить надлежащие таблицы для различных типов видеоблоков и затем выбрать такие таблицы на основании типа декодируемого видеоблока.[0066] VLC module 46 encodes the quantized transform coefficients according to a variable length coding methodology to further reduce the bit rate of the transmitted information. In particular, VLC module 46 employs the techniques of this disclosure to encode detail level coefficients of an extension. VLC module 46 may also generate additional information to identify which tables the decoder should use for various types of video blocks. This additional information may be included in the encoded bitstream so that the decoder can determine the appropriate tables for the various types of video blocks and then select such tables based on the type of video block being decoded.

[0067] Выбор таблицы модулем 46 VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы модулем 46 VLC. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированный блоки, может быть закодирована в битовый поток. Устройство декодера может использовать эту переданную информацию, чтобы облегчить выборы надлежащих таблиц. Альтернативно, в некоторых случаях устройство кодирования и устройство декодирования могут иметь соглашение - какие таблицы использовать для различных типов видеоблока.[0067] Table selection by VLC module 46 for encoding various video blocks can be made based on information collected for previously or currently encoded frames. For example, statistical analysis of previously encoded frames may be performed to facilitate table selection by VLC module 46. This computationally intensive analysis, however, can be avoided in the decoder. Instead, information identifying tables for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks, can be encoded into a bitstream. A decoder device may use this transmitted information to facilitate the selection of proper tables. Alternatively, in some cases, the encoding device and the decoding device may have an agreement - which tables to use for different types of video blocks.

[0068] После кодирования с переменной длиной закодированное видео может быть передано на другое устройство. Кроме того, модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование соответственно, чтобы восстановить остаточный блок. Сумматор 51 суммирует этот восстановленный остаточный блок с блоком предсказания с компенсированным движением, сформированным модулем 37 компенсации движения, чтобы сформировать восстановленный видеоблок для сохранения в памяти 35 опорных кадров. Восстановленный видеоблок используется модулем 33 оценки движения и модулем 37 компенсации движения, чтобы закодировать блок в последующем видеокадре.[0068] After variable length encoding, the encoded video can be transferred to another device. In addition, the inverse quantization unit 42 and the inverse transform unit 44 apply inverse quantization and inverse transform, respectively, to restore the residual block. An adder 51 summarizes this reconstructed residual block with a motion compensated prediction block generated by the motion compensation unit 37 to form a reconstructed video block for storing 35 reference frames in memory. The reconstructed video block is used by the motion estimation module 33 and the motion compensation module 37 to encode the block in a subsequent video frame.

[0069] Фиг.4 - блок-схема, иллюстрирующая пример декодера 60 видео, который может соответствовать декодеру 28 видео на Фиг.1, который выполняет декодирование базового уровня и уровня расширения. Видеодекодер 60 включает в себя модуль 52A VLC для информации уровня расширения, который выполняет соответствующую функцию модуля 46 VLC на Фиг.3. То есть, как и модуль 46 VLC, модуль 52A VLC кодирует коэффициенты детализации уровня расширения. Как отмечено, в кодере выбор таблицы VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров, например, используя статистический анализ ранее закодированных или в настоящее время кодируемых кадров, чтобы облегчить выбор таблицы в кодере. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере 40. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с кодера на декодер 60. Декодер 60 может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблиц.[0069] FIG. 4 is a block diagram illustrating an example of a video decoder 60, which may correspond to the video decoder 28 in FIG. 1, which performs decoding of a base layer and an extension layer. Video decoder 60 includes a VLC module 52A for extension level information that performs the corresponding function of the VLC module 46 in FIG. 3. That is, like the VLC module 46, the VLC module 52A encodes the detail level coefficients of the extension. As noted, in the encoder, the selection of a VLC table for encoding various video blocks can be made based on information collected for previously or currently encoded frames, for example, using statistical analysis of previously encoded or currently encoded frames to facilitate table selection in the encoder. This computationally intensive analysis, however, can be avoided in decoder 40. Instead, information identifying tables for the first and second types of video blocks, for example, an intra-encoded block and intercoded blocks, can be transmitted from the encoder to decoder 60. Decoder 60 can use this transmitted information to facilitate proper table selections.

[0070] Видеодекодер 60 может также включать в себя другой модуль 52B VLC для информации базового уровня. Модуль 55 интрапредсказания может необязательно выполнять любое пространственное декодирование блоков видео базового уровня, и выходной сигнал модуля 55 интрапредсказания может быть направлен сумматору 53. Тракт уровня расширения может включать в себя модуль 58A обратного квантования, и тракт базового уровня может включать в себя модуль 56B обратного квантования. Информация в трактах базового уровня и уровня расширения может быть объединена сумматором 57.[0070] Video decoder 60 may also include another VLC module 52B for base layer information. The intra prediction unit 55 may optionally perform any spatial decoding of the base layer video blocks, and the output of the intra prediction unit 55 may be directed to the adder 53. The extension layer path may include a quantization unit 58A, and the base layer path may include a quantization unit 56B . Information in the paths of the base level and extension level can be combined by an adder 57.

[0071] Видеодекодер 60 может выполнять интра- и интердекодирование блоков в видеокадрах. В примере на Фиг.4 видеодекодер 60 включает в себя модули 52A и 52B VLC (упомянуты выше), модуль 54 компенсации движения, модули 56A и 56B обратного квантования, модуль 58 обратного преобразования и память 62 опорных кадров. Видеодекодер 60 также включает в себя сумматор 64. Необязательно видеодекодер 60 также может включать в себя фильтр деблокирования (не показан), который фильтрует выходной сигнал сумматора 64. Снова сумматор 57 объединяет информацию в трактах базового уровня и уровня расширения и модуле 55 интрапредсказания и сумматор 53 облегчает любое пространственное декодирование блоков видео базового уровня.[0071] Video decoder 60 may perform intra- and interdecoding of blocks in video frames. In the example of FIG. 4, video decoder 60 includes VLC modules 52A and 52B (mentioned above), motion compensation module 54, inverse quantization units 56A and 56B, inverse transform unit 58, and reference frame memory 62. Video decoder 60 also includes an adder 64. Optionally, video decoder 60 may also include a deblocking filter (not shown) that filters the output of adder 64. Again adder 57 combines the information in the base layer and extension layer paths and intra prediction unit 55 and adder 53 facilitates any spatial decoding of basic level video blocks.

[0072] В соответствии с настоящим изобретением модуль 52A VLC принимает информацию уровня расширения закодированного битового потока видео и применяет способы VLC, описанные в этом раскрытии. В частности, для коэффициентов детализации видео битовый поток может быть кодирован, чтобы идентифицировать соответствующие таблицы VLC для двух или более различных типов видеоблоков. Модуль 52A VLC определяет тип видеоблока для каждого кодируемого видеоблока и выбирает соответствующую таблицу VLC декодирования для соответствующего видеоблока на основании информации, переданной в битовом потоке, которая идентифицирует такую таблицу VLC декодирования для этого типа видеоблока. Процесс декодирования может сформировать квантованные остаточные коэффициенты, макроблоки и режим кодирования субблоков и информацию движения, которая может включать в себя векторы движения и разделения на блоки.[0072] In accordance with the present invention, the VLC module 52A receives the extension level information of the encoded video bitstream and applies the VLC methods described in this disclosure. In particular, for video detail coefficients, a bitstream can be encoded to identify the corresponding VLC tables for two or more different types of video blocks. VLC module 52A determines the type of video block for each encoded video block and selects the corresponding VLC decoding table for the corresponding video block based on information transmitted in the bitstream that identifies such a VLC decoding table for this type of video block. The decoding process may generate quantized residual coefficients, macroblocks, and a coding mode of subunits and motion information, which may include motion and blocking vectors.

[0073] После декодирования, выполненного модулем 52A VLC, модуль 54 компенсации движения принимает векторы движения и один или более восстановленных опорных кадров из памяти 62 опорных кадров. Модуль 56A обратного квантования выполняет обратное квантование, то есть деквантует квантованные коэффициенты блоков. После комбинирования информации уровней расширения и базового посредством сумматора 57 модуль 58 обратного преобразования применяет обратное преобразование, например обратное DCT, к этим коэффициентам, чтобы сформировать остаточные блоки. Модуль 54 компенсации движения формирует блоки с компенсированным движением, которые суммируются сумматором 64 с остаточными блоками, чтобы сформировать декодированные блоки. Если желательно, фильтр деблокирования также может быть применен, чтобы фильтровать декодированные блоки, чтобы удалить артефакты блочности. Фильтрованные блоки затем помещаются в память 62 опорных кадров, которая выдает опорные блоки из компенсации движения и также формирует декодированное видео для возбуждения устройства отображения (такого, как устройство 30 на Фиг.1).[0073] After decoding performed by the VLC module 52A, the motion compensation module 54 receives the motion vectors and one or more reconstructed reference frames from the reference frame memory 62. The inverse quantization unit 56A performs inverse quantization, that is, it quantizes the quantized block coefficients. After combining the extension level information and the base information by the adder 57, the inverse transform unit 58 applies an inverse transform, such as an inverse DCT, to these coefficients to form residual blocks. Motion compensation module 54 generates motion-compensated blocks that are summed by adder 64 with residual blocks to form decoded blocks. If desired, a deblocking filter can also be applied to filter decoded blocks to remove blocking artifacts. The filtered blocks are then placed in a reference frame memory 62, which outputs the reference blocks from motion compensation and also generates decoded video to drive a display device (such as device 30 in FIG. 1).

[0074] Фиг.5 - блок-схема, иллюстрирующая примерный модуль 46 VLC, который может соответствовать тому, что показан на Фиг.3. Модуль 46 VLC включает в себя модуль 72 кодирования, модуль 74 выбора таблицы и VLC таблицы 78. VLC таблицы 78 обычно относятся к таблицам, которые могут быть сохранены в любом местоположении, например локально или вне кристалла в местоположении отдельной памяти. VLC таблицы 78 могут быть обновлены периодически, как желательно.[0074] FIG. 5 is a block diagram illustrating an example VLC module 46, which may correspond to that shown in FIG. 3. VLC module 46 includes a coding module 72, a table selection module 74, and a VLC of a table 78. VLC of a table 78 generally refers to tables that can be stored at any location, for example locally or off-chip, in a separate memory location. VLC tables 78 may be updated periodically, as desired.

[0075] Модуль 72 кодирования кодирует коэффициенты детализации и существенные коэффициенты в отдельных проходах кодирования. Выбор таблицы модулем 46 VLC для кодирования коэффициентов, ассоциированных с различными видеоблоками, может быть выполнен на основании информации, собранной для ранее кодированного или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы модулем 46 VLC. Для коэффициентов детализации (и, возможно, других коэффициентов) модуль 46 VLC генерирует информацию (которая затем включается в кодированный битовый поток), которая идентифицирует различные VLC таблицы, чтобы использовать в декодере для различных типов видеоблоков. Устройство декодера может использовать эту информацию, чтобы облегчить надлежащие выборы таблицы. Информация, которая идентифицирует различные VLC таблицы, чтобы использовать в декодере для различных типов видеоблоков, может принимать различные формы, но в одном случае содержит два бита информации. Первый бит идентифицирует таблицу из двух возможных таблиц для интракодированных блоков, и второй бит идентифицирует таблицу из двух возможных таблиц для интеркодированных блоков. Конечно, может быть необходимо больше информации, если есть больше чем две таблицы для выбора из них для каждого типа блока.[0075] The coding unit 72 encodes detail coefficients and significant coefficients in separate coding passes. Table selection by VLC module 46 for encoding coefficients associated with various video blocks can be made based on information collected for previously encoded or currently encoded frames. For example, statistical analysis of previously encoded frames may be performed to facilitate table selection by VLC module 46. For detail coefficients (and possibly other coefficients), the VLC module 46 generates information (which is then included in the encoded bitstream) that identifies the various VLC tables to use in the decoder for various types of video blocks. A decoder device may use this information to facilitate proper table selections. The information that identifies the various VLC tables to use in the decoder for various types of video blocks can take various forms, but in one case contains two bits of information. The first bit identifies a table of two possible tables for intra-coded blocks, and the second bit identifies a table of two possible tables for inter-coded blocks. Of course, more information may be needed if there are more than two tables to select from for each block type.

[0076] Коэффициенты детализации могут иметь значения, ограниченные -1, 0 и 1, которые могут быть закодированы двумя битами информации. Первый бит (coeff_ref_flag) может указывать, равен ли коэффициент 0 (coeff_ref_flag =0) или нет (coeff_ref_flag=1), и второй бит может указывать, является ли знак (обозначенный как sn) коэффициента детализации таким же (coeff_ref_dir_fiag=0) или отличным (coeff_ref_dir_flag=1) от знака (обозначенного как sn-1) соответствующего коэффициента предыдущего уровня. Предыдущий уровень обозначается как sn-1. Если знак текущего коэффициента такой же, как знак из предыдущего уровня, то coeff_ref_dir_fiag=0, и если знак текущего коэффициента является отличным от такового предыдущего уровня, то coeff_ref_dir_flag=1. Два бита детализации могут быть объединены в алфавит из трех символов детализации следующим образом в Таблице 1: [0076] The detail coefficients can have values limited to -1, 0, and 1, which can be encoded with two bits of information. The first bit (coeff_ref_flag) may indicate whether the coefficient is 0 (coeff_ref_flag = 0) or not (coeff_ref_flag = 1), and the second bit may indicate whether the sign (denoted by s n ) of the detail coefficient is the same (coeff_ref_dir_fiag = 0) or different (coeff_ref_dir_flag = 1) from the sign (denoted as s n-1 ) of the corresponding coefficient of the previous level. The previous level is denoted as s n-1 . If the sign of the current coefficient is the same as the sign from the previous level, then coeff_ref_dir_fiag = 0, and if the sign of the current coefficient is different from that of the previous level, then coeff_ref_dir_flag = 1. Two drill bits can be combined into an alphabet of three drill symbols as follows in Table 1:

ТАБЛИЦА 1TABLE 1 coeff_ref_flagcoeff_ref_flag coeff_ref_dir_fiagcoeff_ref_dir_fiag ref_symbolref_symbol 00 -- 00 1one 00 1one 1one 1one 22

Альтернативно, другая схема также может быть использована для кодирования коэффициентов детализации, не отступая от методик этого раскрытия.Alternatively, another scheme may also be used to code the detail coefficients without departing from the techniques of this disclosure.

[0077] VLC таблицы 78 могут содержать кодовые слова переменной длины, которые преобразуются в различные наборы коэффициентов, которые могут быть определены символами, флажками или другими типами битов. VLC таблицы 78 могут быть обновлены, как желательно. Любое число таблиц может быть включено в таблицы VLC 88. В некоторых случаях две таблицы используются, хотя может быть включено больше. В любом случае модуль 72 кодирования может обращаться к различным таблицам VLC для различных типов видеоблоков и может передавать информацию относительно этих таблиц для различных типов видеоблоков как часть закодированного битового потока. Таким образом, устройство декодера не должно выполнять в вычислительном отношении интенсивный статистический анализ, чтобы определить, какие таблицы использовать, и вместо этого может просто идентифицировать таблицы из информации в кодированном битовом потоке. Таблицы, используемые при кодировании различных типов видеоблоков, могут быть определены однажды за кадр, однажды за срез, однажды за уровень FGS кадра или один раз за другой тип закодированной единицы.[0077] VLC tables 78 may contain variable-length codewords that are converted to different sets of coefficients that can be defined by characters, flags, or other types of bits. VLC tables 78 may be updated as desired. Any number of tables can be included in VLC 88 tables. In some cases, two tables are used, although more can be included. In any case, coding module 72 may access various VLC tables for various types of video blocks and may transmit information regarding these tables for various types of video blocks as part of the encoded bitstream. Thus, the decoder device does not have to perform computationally intensive statistical analysis to determine which tables to use, and instead can simply identify the tables from the information in the encoded bitstream. Tables used in coding various types of video blocks can be defined once per frame, once per slice, once per FGS level of a frame or once per other type of encoded unit.

[0078] Фиг.6 - блок-схема, иллюстрирующая примерный модуль 52A VLC, который может соответствовать модулю 52A VLC, показанному на Фиг.4. Модуль 52A VLC выполняет обратные декодирующие функции относительно кодирования, которое выполняется модулем 46 VLC. Таким образом, тогда как модуль 46 VLC принимает квантованные остаточные коэффициенты и генерирует битовый поток, модуль 52A VLC принимает битовый поток и генерирует квантованные остаточные коэффициенты. Однако в отличие от модуля 46 VLC модуль VLC декодирования не должен выполнять в вычислительном отношении интенсивный статистический анализ, чтобы определить, какие таблицы использовать, и вместо этого может просто идентифицировать таблицы из информации в кодированном битовом потоке и выбрать таблицу для заданного видеоблока на основании типа блока этого видеоблока.[0078] FIG. 6 is a block diagram illustrating an example VLC module 52A, which may correspond to the VLC module 52A shown in FIG. 4. The VLC module 52A performs inverse decoding functions with respect to the coding that is performed by the VLC module 46. Thus, while the VLC module 46 receives the quantized residual coefficients and generates a bitstream, the VLC module 52A receives the bitstream and generates the quantized residual coefficients. However, unlike VLC module 46, the VLC decoding module does not have to perform computationally intensive statistical analysis to determine which tables to use, and instead can simply identify the tables from the information in the encoded bitstream and select a table for a given video block based on the block type this video block.

[0079] Модуль 52A VLC включает в себя модуль 82 декодирования, модуль 86 выбора таблицы и одну или более VLC таблиц 88. Как в модуле 46, VLC таблицы 88 модуля 52 обычно относятся к таблицам, которые могут быть сохранены в любом местоположении, например локально или вне кристалла в местоположении отдельной памяти. VLC таблицы 88 могут быть обновлены периодически, как желательно. Любое число таблиц может быть включено в VLC таблицы 88. В некоторых случаях используются две таблицы, хотя может быть включено и больше.[0079] VLC module 52A includes decoding module 82, table selection module 86, and one or more VLC tables 88. As in module 46, VLC tables 88 of module 52 typically refer to tables that can be stored at any location, such as locally or off-chip at the location of a separate memory. VLC tables 88 may be updated periodically, as desired. Any number of tables can be included in VLC tables 88. In some cases, two tables are used, although more can be included.

[0080] Модуль 82 декодирования VLC может выполнить отдельные проходы декодирования для существенных коэффициентов и коэффициентов детализации. Способы этого раскрытия могут быть применимыми к коэффициентам кодирования или детализации только или могут использоваться и для коэффициентов детализации, и для существенных коэффициентов.[0080] VLC decoding module 82 may perform separate decoding passes for significant coefficients and detail coefficients. The methods of this disclosure may be applicable to coding or granularity coefficients only, or may be used for both granularity coefficients and significant coefficients.

[0081] Кодированный битовый поток, принятый модулем 82 декодирования, включает в себя информацию, представляющую закодированные коэффициенты, например кодовые слова, и информацию, которая идентифицирует таблицы, которые должны использоваться при декодировании различных типов видеоблоков. Модуль 86 выбора таблицы определяет, какие таблицы должны использоваться для различных типов видеоблоков для каждого кодированного модуля, например для каждого кадра. Модуль 82 декодирования затем декодирует принятую информацию на основании соответствующих таблиц 88 VLC, как определено модулем 86 выбора таблицы, для генерирования квантованных остаточных коэффициентов, которые были закодированы в битовом потоке.[0081] The encoded bit stream received by the decoding unit 82 includes information representing encoded coefficients, for example codewords, and information that identifies tables to be used in decoding various types of video blocks. Table selection module 86 determines which tables should be used for different types of video blocks for each coded module, for example, for each frame. Decoding module 82 then decodes the received information based on the corresponding VLC tables 88, as determined by table selection module 86, to generate quantized residual coefficients that have been encoded in the bitstream.

[0082] Фиг.7 - схема последовательности операций, иллюстрирующая методику кодирования для кодирования с переменной длиной коэффициентов (например, обычно коэффициентов детализации) уровня расширения, совместимого с настоящим изобретением. Как показано на Фиг.7, модуль 76 выбора таблицы выбирает подходящие таблицы, которые должны использоваться для кодирования (91). Выбранные таблицы могут повысить эффективность кодирования и могут быть выбраны на основании статистического анализа ранее кодированных или в настоящее время кодируемых видеокадров. В частности, модуль 76 выбора таблицы может выбрать различные таблицы VLC, которые должны использоваться при кодировании видеоблоков, на основании уровней квантования, ассоциированных с такими блоками, и соответствующих статистических данных, которые указывают, какие таблицы использовались как аналогичные уровни квантования.[0082] FIG. 7 is a flowchart illustrating a coding technique for variable-length coding of coefficients (eg, typically coefficients of detail) of an extension level compatible with the present invention. As shown in FIG. 7, the table selection module 76 selects suitable tables to be used for coding (91). Selected tables can improve coding efficiency and can be selected based on a statistical analysis of previously encoded or currently encoded video frames. In particular, table selection module 76 may select various VLC tables to be used in coding video blocks based on the quantization levels associated with such blocks and corresponding statistics that indicate which tables were used as similar quantization levels.

[0083] Модуль 72 кодирования кодирует коэффициенты посредством выполнения поисков в VLC таблицах 78 (92), которые были выбраны модулем 76 выбора таблицы. Наборам коэффициентов (таким, как наборы с длиной серии из нулей или наборы кодированных шаблонов блоков) могут быть назначены коды переменной длины в таблицах VLC. Таким образом, более вероятные наборы коэффициентов могут быть закодированы кодовыми словами с более короткими длинами и менее вероятные наборы коэффициентов могут быть закодированы кодовыми словами с более короткими длинами, чтобы повысить эффективность кодирования.[0083] The coding unit 72 encodes the coefficients by performing searches in the VLC tables 78 (92) that were selected by the table selection unit 76. Coefficient sets (such as sets with a series length of zeros or sets of coded block patterns) can be assigned variable-length codes in VLC tables. Thus, more likely coefficient sets can be encoded with shorter length codewords and less likely coefficient sets can be encoded with shorter length codewords to improve coding efficiency.

[0084] Различные таблицы VLC могут быть выбраны для различных типов видеоблоков, например интракодированные блоки и интеркодированные блоки, так как эти различные типы видеоблоков обычно кодируются при различных уровнях квантования. Модуль 46 VLC генерирует информацию, идентифицирующую таблицы, которые должны использоваться для декодирования различных типов видеоблоков (93). Выходной битовый поток модуля 46 VLC может включать в себя и информацию, представляющую кодированные коэффициенты, и информацию, идентифицирующую таблицы, которые должны использоваться при декодировании различных типов видеоблоков.[0084] Different VLC tables can be selected for different types of video blocks, for example, intra-coded blocks and intercoded blocks, since these different types of video blocks are usually encoded at different quantization levels. VLC module 46 generates information identifying tables that should be used to decode various types of video blocks (93). The output bitstream of VLC module 46 may include information representing encoded coefficients and information identifying tables to be used in decoding various types of video blocks.

[0085] Выходной битовый поток может быть отправлен передатчику (такому, как модулятор/передатчик 24 на Фиг.1) для передачи на устройство 16 приема по каналу 15 связи. Эта передача битового потока включает в себя передачу информации, представляющей закодированные коэффициенты (94), которая может содержать кодовые слова, выбранные из таблиц 78 VLC. Кроме того, передача битового потока включает в себя передачу информации, идентифицирующей таблицы, которые должны использоваться при декодировании различных типов видеоблоков (95). Процесс согласно Фиг.7 может быть повторен для каждой кодированной единицы (96), например для каждого среза или каждого кадра, который должен быть закодирован.[0085] An output bitstream may be sent to a transmitter (such as a modulator / transmitter 24 in FIG. 1) for transmission to a reception device 16 via a communication channel 15. This bitstream transmission includes transmitting information representing encoded coefficients (94), which may contain codewords selected from VLC tables 78. In addition, transmitting a bitstream includes transmitting information identifying tables to be used in decoding various types of video blocks (95). The process of FIG. 7 may be repeated for each coded unit (96), for example, for each slice or each frame to be encoded.

[0086] Фиг.8 - схема последовательности операций, иллюстрирующая методику декодирования для коэффициентов кодирования с переменной длиной (обычно коэффициентов детализации) уровня расширения, совместимую с настоящим изобретением. Как показано на Фиг.8, модуль 82 декодирования VLC принимает информацию, представляющую закодированные коэффициенты (101), и принимает информацию, идентифицирующую различные таблицы, которые должны использоваться для декодирования различных типов видеоблоков (102). Приемник, такой приемник/демодулятор 26 (Фиг.1), может облегчить прием этой информации из канала 15 связи.[0086] FIG. 8 is a flowchart illustrating a decoding technique for variable-length coding coefficients (typically detail coefficients) of an enhancement layer compatible with the present invention. As shown in FIG. 8, the VLC decoding module 82 receives information representing encoded coefficients (101) and receives information identifying various tables to be used to decode various types of video blocks (102). A receiver, such a receiver / demodulator 26 (FIG. 1), can facilitate the reception of this information from the communication channel 15.

[0087] Модуль 86 выбора таблиц выбирает таблицы для различных типов видеоблока на основании принятой информации, идентифицирующей различные таблицы, которые должны использоваться (103). Различные типы видеоблоков могут содержать интракодированные блоки и интеркодированные блоки. Соответственно, интракодированным блокам и интеркодированным блокам можно назначить различные таблицы VLC для каждой кодированной единицы, например каждого кадра или каждого среза. Модуль 82 декодирования декодирует информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц (104). Например, модуль 82 декодирования может обратиться к выбранным таблицам 88 VLC и выполнить табличные поиски для декодирования информации, чтобы сгенерировать коэффициенты. Процесс согласно Фиг.8 повторяется для каждой кодированной единицы (105). Альтернативно, если соглашение между кодером и декодером было предварительно установлено относительно таблиц для использования для различных типов блока, этап 102 может быть удален и выбор таблицы на этапе 103 может быть основан только на типе блока, который должен быть декодирован.[0087] The table selection module 86 selects tables for various types of video block based on received information identifying the various tables to be used (103). Various types of video blocks may contain intra-coded blocks and inter-coded blocks. Accordingly, intra-coded blocks and intercoded blocks can be assigned different VLC tables for each coded unit, for example, each frame or each slice. Decoding unit 82 decodes information representing encoded coefficients based on selected tables (104). For example, decoding module 82 may refer to selected VLC tables 88 and perform tabular searches to decode information to generate coefficients. The process of FIG. 8 is repeated for each coded unit (105). Alternatively, if the agreement between the encoder and the decoder has been previously established regarding tables for use for different types of blocks, step 102 can be deleted and the selection of the table in step 103 can only be based on the type of block to be decoded.

[0088] Как описано здесь, в кодере выбор таблицы для кодирования коэффициентов детализации, ассоциированных с различными типами видеоблоков, может быть выполнен на основании информации, собранной для ранее кодированного или в настоящее время кодируемых кадров. Статистический анализ ранее закодированных кадров может быть выполнен, например, чтобы облегчить выбор таблицы в кодере. Например, коэффициенты детализации могут быть кодированы, используя доступные таблицы, и таблица, которая обеспечивает наименьшее количество битов для кодирования информации, может быть выбрана. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с кодера на декодер. Декодер может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы на основании типа блока.[0088] As described here, in the encoder, the selection of a table for encoding the detail coefficients associated with various types of video blocks can be made based on information collected for previously encoded or currently encoded frames. Statistical analysis of previously encoded frames can be performed, for example, to facilitate the selection of tables in the encoder. For example, detail coefficients can be encoded using the available tables, and a table that provides the least number of bits for encoding information can be selected. This computationally intensive analysis, however, can be avoided in the decoder. Instead, information identifying tables for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks, can be transmitted from the encoder to the decoder. The decoder may use this transmitted information to facilitate proper table selections based on the type of block.

[0089] Выбранные таблицы могут зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере, является обычно неизвестным декодеру, информация относительно типа видеоблока обеспечивает полезный инструмент выбора для применения в декодере. Поэтому таблицы идентифицируются для декодера для различных типов видеоблока, и декодер может определить тип, ассоциированный с соответствующим видеоблоком, и выбрать соответствующую таблицу VLC для декодирования этого соответствующего видеоблока. Таблицы для различных типов видеоблоков могут измениться на основании кадр-за-кадром (или на основе срез-за-срезом).[0089] The selected tables may depend on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in the encoder is generally unknown to the decoder, information regarding the type of video block provides a useful selection tool for use in the decoder. Therefore, tables are identified for the decoder for various types of video block, and the decoder can determine the type associated with the corresponding video block and select the corresponding VLC table to decode this corresponding video block. Tables for different types of video blocks can be changed frame-by-frame (or slice-by-slice).

[0090] Способы, описанные здесь, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Любые признаки, описанные как модули или компоненты, могут быть реализованы вместе в интегрированном логическом устройстве или отдельно как дискретные, но взаимодействующие логические устройства. Если реализованы в программном обеспечении, способы могут быть реализованы, по меньшей мере частично, считываемыми компьютером носителем, содержащим команды, которые, когда исполняются, выполняют один или более способов, описанных выше. Считываемый компьютером носитель для хранения данных может быть частью компьютерного программного продукта, который может включать в себя упаковочные материалы. Считываемый компьютером носитель может содержать оперативную память (ОЗУ), такую как синхронное динамическое ОЗУ (SDRAM), ПЗУ (ROM), энергонезависимое ОЗУ (NVRAM), электрически стираемое ППЗУ (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Способы дополнительно или альтернативно могут быть реализованы, по меньшей мере частично, считываемым компьютером коммуникационным носителем, который несет или сообщает код в форме команд или структур данных, и к этому можно обратиться, считать и/или выполнять компьютером.[0090] The methods described herein may be implemented in hardware, software, firmware or any combination thereof. Any features described as modules or components can be implemented together in an integrated logic device or separately as discrete but interacting logic devices. If implemented in software, the methods may be implemented, at least in part, by a computer-readable medium containing instructions that, when executed, execute one or more of the methods described above. Computer-readable storage media may be part of a computer program product, which may include packaging materials. Computer-readable media may include random access memory (RAM), such as synchronous dynamic RAM (SDRAM), ROM (ROM), non-volatile RAM (NVRAM), electrically erasable ROM (EEPROM), flash memory, magnetic or optical storage media, etc. .P. The methods can additionally or alternatively be implemented, at least in part, by a computer-readable communication medium that carries or reports code in the form of instructions or data structures, and this can be accessed, read and / or executed by a computer.

[0091] Код может быть выполнен одним или более процессорами, такими как один или более цифровые процессоры сигналов (DSP), микропроцессоры общего применения, специализированные интегральные схемы (ASIC), программируемые пользователем логические матрицы (FPGA) или другая эквивалентная интегральная или дискретная логическая схема. Соответственно, термин "процессор", как используется здесь, может относиться к любой предшествующей структуре или любой другой структуре, подходящей для реализации методик, описанных здесь. Кроме того, в некоторых аспектах функциональные возможности, описанные здесь, могут быть предоставлены в выделенных программных модулях или модулях аппаратного обеспечения, сконфигурированных для кодирования и декодирования, или встроены в комбинированный видеокодер-декодер (кодек).[0091] The code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, specialized integrated circuits (ASICs), user-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits . Accordingly, the term “processor,” as used herein, may refer to any previous structure or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided in dedicated software or hardware modules configured for encoding and decoding, or integrated in a combined video encoder / decoder (codec).

[0092] Это раскрытие может также относиться к схеме, такой как интегральная схема, набор микросхем ASIC, FPGA, логические схемы или различные их комбинации, сконфигурированные для выполнения одной или более методик, описанных здесь. Соответственно, это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, где схема конфигурируется для кодирования коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерирования информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0092] This disclosure may also refer to a circuit, such as an integrated circuit, ASIC, FPGA, logic circuits, or various combinations thereof, configured to perform one or more of the techniques described herein. Accordingly, this disclosure also contemplates a circuit configured to encode an extension level of an SVC scheme, where the circuit is configured to encode coefficients associated with video blocks of an extension level based on variable length encoding tables, generating information identifying a first variable length encoding table which should used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which should use the decoding device to decode the second type of video blocks, transmit information representing the encoded coefficients to the decoding device and transmit information identifying the first variable length encoding table to be used by the decoding device to decode the first type of video blocks, and the second variable encoding table the length to be used by the decoding device to decode the second type of video blocks.

[0093] Это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы масштабируемого кодирования видео (SVC), в котором схема конфигурируется, чтобы принять информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, принять информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбирать таблицы для декодирования информации, представляющие закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0093] This disclosure also considers a circuit configured to encode an extension level of a scalable video encoding (SVC) scheme, in which the circuit is configured to receive information representing encoded coefficients associated with the video blocks of the extension level, to receive information identifying the first variable encoding table the length that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used to decode the second type of video blocks, select tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding table to be used, and decode information representing encoded coefficients based on the selected tables.

[0094] Кроме того, это раскрытие рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, при этом схема конфигурируется, чтобы принять информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, выбирать различные таблицы кодирования с переменной длиной, которые должны быть использованы для декодирования информации на основании типов блока, ассоциированных с видеоблоками, в соответствии с соглашением, установленным с кодером, декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0094] In addition, this disclosure considers a circuit configured to encode an extension level of an SVC scheme, wherein the scheme is configured to receive information representing encoded coefficients associated with extension level video blocks, select various variable length encoding tables to be used. for decoding information based on block types associated with video blocks, in accordance with an agreement established with an encoder, decode information representing encoded coefficients based on the selected tables.

[0095] Были описаны различные варианты осуществления изобретения. Эти и другие варианты осуществления находятся в объеме нижеследующей формулы изобретения.[0095] Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.

Claims (25)

1. Способ кодирования уровня расширения схемы масштабируемого кодирования видео (SVC), причем способ содержит кодирование коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной кода для каждой из множества кодированных единиц; для каждой из упомянутых кодированных единиц генерирование информации, идентифицирующей первую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, причем генерирование упомянутой информации включает в себя выполнение статистического анализа информации, собранной для ранее кодированных единиц или текущих кодированных единиц, ассоциированных с уровнем расширения; передачу информации, представляющей закодированные коэффициенты, к устройству декодирования; и для каждой из упомянутых кодированных единиц передачу упомянутой информации, идентифицирующей первую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, причем передача упомянутой идентифицирующей информации выполняется однократно для каждой из кодированных единиц.1. A method of encoding an extension level of a scalable video coding (SVC) scheme, the method comprising encoding coefficients associated with video blocks of an extension level, based on variable length codebook tables for each of a plurality of encoded units; for each of the aforementioned coded units, generating information identifying a first variable-length coding table to be used by a decoding device to decode a first type of video blocks, and a second variable-length coding table to be used by a decoding device to decode a second type of video blocks and wherein the generation of said information includes performing a statistical analysis of the information collected for previously encoded x units or current coded units associated with the extension level; transmitting information representing the encoded coefficients to a decoding device; and for each of said coded units, transmitting said information identifying a first variable length code coding table to be used by a decoding device to decode the first type of video blocks, and a second variable code length encoding table to be used by a decoding device to decode a second type of video blocks, wherein the transmission of said identifying information is performed once for each of the encoded units. 2. Способ по п.1, в котором коэффициенты содержат коэффициенты детализации, для которых соответствующие коэффициенты одного или более предыдущих уровней в схеме SVC имели ненулевые значения.2. The method according to claim 1, wherein the coefficients comprise detail coefficients for which the corresponding coefficients of one or more previous levels in the SVC scheme have non-zero values. 3. Способ по п.1, в котором кодированные единицы являются кадрами, при этом кодирование коэффициентов содержит выбор первой и второй таблицы кодирования с переменной длиной кода на основании информации, собранной для ранее кодированных кадров.3. The method according to claim 1, in which the encoded units are frames, wherein the encoding of the coefficients comprises selecting a first and second encoding table with a variable code length based on information collected for previously encoded frames. 4. Способ по п.3, в котором выбор первой и второй таблиц кодирования содержит выбор первой и второй таблиц кодирования из двух или более возможных таблиц.4. The method according to claim 3, in which the selection of the first and second encoding tables comprises the selection of the first and second encoding tables from two or more possible tables. 5. Способ по п.1, в котором первый тип видеоблоков содержит интракодированный видеоблок и второй тип видеоблоков содержит интеркодированный видеоблок.5. The method according to claim 1, in which the first type of video blocks contains an intra-encoded video block and the second type of video blocks contains an intercoded video block. 6. Способ по п.1, в котором видеоблоки скомпонованы в кадрах и кодированные единицы являются кадрами, при этом способ дополнительно содержит для каждого из кадров передачу информации, идентифицирующей первую и вторую таблицы кодирования с переменной длиной кода, которые должны использоваться.6. The method according to claim 1, in which the video blocks are arranged in frames and the encoded units are frames, the method further comprising transmitting information for each of the frames identifying the first and second coding tables with a variable code length to be used. 7. Способ по п.1, в котором информация, представляющая закодированные коэффициенты, содержит кодовые слова, выбранные из одной или более таблиц кодирования с переменной длиной кода.7. The method according to claim 1, wherein the information representing the encoded coefficients comprises codewords selected from one or more coding tables with a variable code length. 8. Способ декодирования уровня расширения схемы масштабируемого кодирования видео (SVC), причем способ содержит этапы: прием информации, представляющей закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения для каждой из множества кодированных единиц; для каждой из упомянутых кодированных единиц прием информации, идентифицирующей первую таблицу кодирования с переменной длиной кода, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна быть использована для декодирования второго типа видеоблоков; для каждой из упомянутых кодированных единиц выбор таблиц для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной кода, которая должна использоваться; и декодирование информации, представляющей закодированные коэффициенты, на основании выбранных таблиц, причем упомянутая идентифицирующая информация принимается однократно для каждой из кодированных единиц.8. A method for decoding an extension level of a scalable video coding (SVC) scheme, the method comprising the steps of: receiving information representing encoded coefficients associated with video blocks of an extension level for each of a plurality of encoded units; for each of the aforementioned coded units, receiving information identifying a first coding table with a variable code length that should be used to decode the first type of video blocks, and a second coding table with a variable code length that should be used to decode the second type of video blocks; for each of said coded units, selecting tables for decoding information representing encoded coefficients based on information identifying the first and second coding table with a variable code length to be used; and decoding information representing the encoded coefficients based on the selected tables, said identification information being received once for each of the encoded units. 9. Способ по п.8, в котором коэффициенты содержат коэффициенты детализации, для которых соответствующие коэффициенты одного или более предыдущих уровней в схеме SVC имеют ненулевые значения.9. The method of claim 8, wherein the coefficients comprise detail coefficients for which the corresponding coefficients of one or more previous levels in the SVC scheme are non-zero. 10. Способ по п.8, в котором выбор первой и второй таблиц кодирования содержит выбор первой и второй таблиц кодирования из двух или более возможных таблиц.10. The method of claim 8, in which the selection of the first and second encoding tables comprises the selection of the first and second encoding tables from two or more possible tables. 11. Способ по п.8, в котором первый тип видеоблоков содержит интракодированный видеоблок и второй тип видеоблоков содержат интеркодированный видеоблок.11. The method according to claim 8, in which the first type of video blocks contains an intra-encoded video block and the second type of video blocks contain an intercoded video block. 12. Способ по п.8, в котором кодированные единицы являются кадрами, при этом способ дополнительно содержит прием информации, идентифицирующей первую и вторую таблицы кодирования с переменной длиной кода, которые должны использоваться один раз за кадр.12. The method according to claim 8, in which the encoded units are frames, the method further comprising receiving information identifying the first and second coding tables with a variable code length that should be used once per frame. 13. Способ по п.8, в котором информация, представляющая закодированные коэффициенты, содержит кодовые слова, выбранные кодером из одной или более таблиц кодирования с переменной длиной кода.13. The method of claim 8, wherein the information representing the encoded coefficients comprises codewords selected by the encoder from one or more coding tables with a variable code length. 14. Устройство, которое кодирует уровень расширения схемы масштабируемого кодирования видео (SVC), причем устройство содержит кодер, который кодирует коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной кода для каждой из множества кодированных единиц, и для каждой из кодированных единиц генерирует информацию, идентифицирующую первую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, причем генерирование упомянутой информации включает в себя выполнение статистического анализа информации, собранной для ранее кодированных единиц или текущих кодированных единиц, ассоциированных с уровнем расширения; и передатчик, который передает информацию, представляющую закодированные коэффициенты для каждой из множества кодированных единиц, и для каждой из кодированных единиц передает упомянутую информацию, идентифицирующую первую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать упомянутый первый тип упомянутых видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна использоваться устройством декодирования, чтобы декодировать упомянутый второй тип упомянутых видеоблоков, причем упомянутая идентифицирующая информация передается однократно для каждой из кодированных единиц.14. A device that encodes an extension level of a scalable video coding (SVC) scheme, the device comprising an encoder that encodes coefficients associated with video blocks of the extension level, based on variable length codepage tables for each of the plurality of encoded units, and for each of encoded units generates information identifying a first variable-length codebook to be used by a decoding device to decode a first type of video component Cove, and a second encoding table with variable length, to be used decoding device to decode the second type of video block, and generating said information includes performing a statistical analysis of the information gathered for previously coded units or current coded units associated with an enhancement layer; and a transmitter that transmits information representing encoded coefficients for each of the plurality of coded units, and for each of the coded units, transmits said information identifying a first variable-length codebook to be used by a decoding device to decode said first type of said video blocks, and a second coding table with a variable code length, which must be used by the decoding device to decode the one mentioned in the second type of said video blocks, said identification information being transmitted once for each of the encoded units. 15. Устройство по п.14, в котором коэффициенты содержат коэффициенты детализации, для которых соответствующие коэффициенты одного или более предыдущих уровней в схеме SVC имели ненулевые значения.15. The device according to 14, in which the coefficients contain coefficients of detail for which the corresponding coefficients of one or more previous levels in the SVC scheme had non-zero values. 16. Устройство по п.14, в котором кодированные единицы являются кадрами, и в котором кодер выбирает первую и вторую таблицы кодирования с переменной длиной кода на основании информации, собранной для ранее кодированных кадров.16. The device according to 14, in which the encoded units are frames, and in which the encoder selects the first and second encoding tables with a variable code length based on information collected for previously encoded frames. 17. Устройство по п.14, в котором первый тип видеоблоков содержит интракодированный видеоблок, и второй тип видеоблоков содержат интеркодированный видео блок.17. The device according to 14, in which the first type of video blocks contains an intra-encoded video block, and the second type of video blocks contain an intercoded video block. 18. Устройство по п.14, в котором видеоблоки скомпонованы в кадрах и кодированные единицы являются кадрами, и передатчик передает информацию, идентифицирующую первую и вторую таблицы кодирования с переменной длиной кода, которые должны использоваться один раз для каждого из кадров.18. The device according to 14, in which the video blocks are arranged in frames and the encoded units are frames, and the transmitter transmits information identifying the first and second coding tables with a variable code length, which must be used once for each of the frames. 19. Устройство по п.14, в котором информация, представляющая закодированные коэффициенты, содержит кодовые слова, выбранные из одной или более таблиц кодирования с переменной длиной кода.19. The device according to 14, in which the information representing the encoded coefficients, contains code words selected from one or more coding tables with a variable code length. 20. Устройство по п.14, в котором устройство представляет собой по меньшей мере одно из: интегральной схемы и устройства беспроводной связи.20. The device according to 14, in which the device is at least one of: an integrated circuit and a wireless communication device. 21. Устройство, которое декодирует уровень расширения схемы масштабируемого кодирования видео (SVC), причем устройство содержит приемник, который принимает информацию, представляющую закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, для каждой из множества кодированных единиц; и для каждой из упомянутых кодированных единиц принимает информацию, идентифицирующую первую таблицу кодирования с переменной длиной кода, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной кода, которая должна быть использована для декодирования второго типа видеоблоков; и декодер, который для каждой из упомянутых кодированных единиц выбирает таблицы для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицы кодирования с переменной длиной кода, которая должна использоваться, и декодирует информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц, причем упомянутая идентифицирующая информация принимается однократно для каждой из кодированных единиц.21. A device that decodes an extension level of a scalable video coding (SVC) scheme, the device comprising a receiver that receives information representing encoded coefficients associated with the video blocks of the extension level for each of a plurality of encoded units; and for each of said coded units, receives information identifying a first variable-length coding table that should be used to decode the first type of video blocks, and a second variable-length coding table that should be used to decode the second type of video blocks; and a decoder which, for each of said coded units, selects tables for decoding information representing the encoded coefficients based on information identifying the first and second codebooks with a variable code length to be used, and decodes information representing coded coefficients based on the selected tables, and said identifying information is received once for each of the encoded units. 22. Устройство по п.21, в котором коэффициенты содержат коэффициенты детализации, для которых соответствующие коэффициенты одного или более предыдущих уровней в схеме SVC имеют ненулевые значения.22. The device according to item 21, in which the coefficients contain the coefficients of detail for which the corresponding coefficients of one or more previous levels in the SVC scheme have non-zero values. 23. Устройство по п.21, в котором первый тип видеоблоков содержит интракодированный видеоблок, и второй тип видеоблоков содержит интеркодированный видеоблок.23. The device according to item 21, in which the first type of video blocks contains an intra-encoded video block, and the second type of video blocks contains an intercoded video block. 24. Устройство по п.21, в котором видеоблоки скомпонованы в кадрах, и кодированные единицы содержат кадры, и приемник принимает информацию, идентифицирующую первую и вторую таблицы кодирования с переменной длиной кода, которые должны использоваться один раз для каждого из кадров.24. The device according to item 21, in which the video blocks are arranged in frames, and the encoded units contain frames, and the receiver receives information identifying the first and second coding tables with a variable code length, which should be used once for each of the frames. 25. Устройство по п.21, в котором устройство представляет собой по меньшей мере одно из: интегральной схемы и устройства беспроводной связи. 25. The device according to item 21, in which the device is at least one of: an integrated circuit and a wireless communication device.
RU2009117672/09A 2006-10-12 2007-10-09 Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding RU2409003C1 (en)

Applications Claiming Priority (7)

Application Number Priority Date Filing Date Title
US82927606P 2006-10-12 2006-10-12
US82927406P 2006-10-12 2006-10-12
US60/829,274 2006-10-12
US60/829,276 2006-10-12
US60/883,741 2007-01-05
US11/867,999 US8325819B2 (en) 2006-10-12 2007-10-05 Variable length coding table selection based on video block type for refinement coefficient coding
US11/867,999 2007-10-05

Publications (2)

Publication Number Publication Date
RU2009117672A RU2009117672A (en) 2010-11-20
RU2409003C1 true RU2409003C1 (en) 2011-01-10

Family

ID=44054759

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2009117672/09A RU2409003C1 (en) 2006-10-12 2007-10-09 Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding

Country Status (1)

Country Link
RU (1) RU2409003C1 (en)

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
RIDGE J. et al. CE8: VLCs for SVC. JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, JVT-Q040-L, 17th Meeting. Nice, 14-21 October 2005. MARPE D. et al. Improved CABAC for progressive refinement slices. JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, JVT-T077, 20th Meeting. Klagenfurt, 15-21 July 2006. *
YE Y. et al. Improvements to FGS layer Variable Length Coder. Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG. JVT-S066, 19th Meeting. Geneva, 31 March - 7 April. YEN-KUANG CHEN et al. Implementation of Real-Time MPEG-4 FGS Encoder. Advances in Multimedia Information Processing - PCM 2002, Springer Berlin/Heidelberg, 2002, c.453-466. RIDGE J. and KARCZEWICZ M. Variable length codes for SVC, JVT-P056. 16th Meeting. Poznan, 24 July 2005 - 29 July 2005. *

Also Published As

Publication number Publication date
RU2009117672A (en) 2010-11-20

Similar Documents

Publication Publication Date Title
RU2419244C2 (en) Selection of code table of variable length based on statistics of type of units for coding of specification coefficients
US8325819B2 (en) Variable length coding table selection based on video block type for refinement coefficient coding
RU2411688C1 (en) Combined coding of lengths of series of refinement ratios and significant ratios at levels of expansion of scalable video coding
RU2409004C1 (en) Methods for coding of variable length for structures of coded units
RU2452128C2 (en) Adaptive coding of video block header information
US9319700B2 (en) Refinement coefficient coding based on history of corresponding transform coefficient values
RU2409003C1 (en) Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding
RU2420910C2 (en) Refinement coefficient coding based on history corresponding transform coefficient values

Legal Events

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

Effective date: 20181010