Nothing Special   »   [go: up one dir, main page]

RU2463728C2 - Enhancing layer improved coding for scalable video coding - Google Patents

Enhancing layer improved coding for scalable video coding Download PDF

Info

Publication number
RU2463728C2
RU2463728C2 RU2010119448/07A RU2010119448A RU2463728C2 RU 2463728 C2 RU2463728 C2 RU 2463728C2 RU 2010119448/07 A RU2010119448/07 A RU 2010119448/07A RU 2010119448 A RU2010119448 A RU 2010119448A RU 2463728 C2 RU2463728 C2 RU 2463728C2
Authority
RU
Russia
Prior art keywords
video block
coefficient
coefficients
zero
encoding
Prior art date
Application number
RU2010119448/07A
Other languages
Russian (ru)
Other versions
RU2010119448A (en
Inventor
Марта КАРЧЕВИЧ (US)
Марта КАРЧЕВИЧ
Рахул ПАНЧАЛ (US)
Рахул ПАНЧАЛ
Янь Е (US)
Янь Е
Original Assignee
Квэлкомм Инкорпорейтед
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Квэлкомм Инкорпорейтед filed Critical Квэлкомм Инкорпорейтед
Publication of RU2010119448A publication Critical patent/RU2010119448A/en
Application granted granted Critical
Publication of RU2463728C2 publication Critical patent/RU2463728C2/en

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/34Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/30Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
    • H04N19/36Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

FIELD: information technology.
SUBSTANCE: each nonzero coefficient of the enhancing layer coefficient vector is encoded without knowing any other subsequent coefficients. Encoding the enhancing layer in a single pass can avoid the need to perform a first pass for analysing the coefficient vector and a second pass for encoding the coefficient vector based on the analysis.
EFFECT: providing statistical encoding of the bit stream of an enhancing layer in one encoding pass, thereby simplifying encoding, reducing encoding delay and memory requirements.
66 cl, 15 dwg

Description

Эта заявка притязает на приоритет по предварительной заявке на патент США №60/979919, поданной 15 октября 2007 года, и предварительной заявке на патент США №60/940214, поданной 16 октября 2007 года. Содержание каждой из этих заявок заключено в настоящий документ по ссылке.This application claims priority by provisional patent application US No. 60/979919, filed October 15, 2007, and provisional patent application US No. 60/940214, filed October 16, 2007. The contents of each of these applications are hereby incorporated by reference.

ОБЛАСТЬ ТЕХНИКИ, К КОТОРОЙ ОТНОСИТСЯ ИЗОБРЕТЕНИЕFIELD OF THE INVENTION

Это раскрытие относится к цифровому кодированию видео и, в частности, к масштабируемому кодированию видеоданных.This disclosure relates to digital video encoding and, in particular, to scalable video encoding.

УРОВЕНЬ ТЕХНИКИBACKGROUND

Способности работы с цифровым видео могут быть заключены в широкий диапазон устройств, включающий в себя цифровые телевизоры, системы прямого цифрового вещания, устройства беспроводной связи, системы беспроводного вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, игровые приставки, сотовые или спутниковые радиотелефоны и т.п. Устройства для работы с цифровым видео осуществляют методики сжатия видео, такие как стандарты Группы экспертов по движущемуся изображению (MPEG)-2, MPEG-4, или стандарт сектора стандартизации Международного союза по телекоммуникациям (ITU-T) H.264/MPEG-4, часть 10, усовершенствованное кодирование видео (AVC) (в дальнейшем "стандарт MPEG-4/H.264, часть 10, AVC") для более эффективной передачи и приема цифрового видео. Методики сжатия видео выполняют пространственное и временное предсказание для уменьшения или удаления избыточности, присущей видеопоследовательностям.Digital video capabilities can be enclosed in a wide range of devices, including digital TVs, direct digital broadcasting systems, wireless devices, wireless broadcasting systems, personal digital assistants (PDAs), laptops or desktop computers, digital cameras, digital recording devices , video game devices, game consoles, cellular or satellite radiotelephones, etc. Devices for working with digital video implement video compression techniques, such as the standards of the Moving Picture Expert Group (MPEG) -2, MPEG-4, or the standard of the standardization sector of the International Telecommunication Union (ITU-T) H.264 / MPEG-4, Part 10, Advanced Video Encoding (AVC) (hereinafter “MPEG-4 / H.264 Standard, Part 10, AVC”) for more efficient transmission and reception of digital video. Video compression techniques perform spatial and temporal prediction to reduce or remove the redundancy inherent in video sequences.

При кодировании видео сжатие видео обычно включает в себя пространственное предсказание и/или оценку движения и компенсацию движения для формирования видеоблока предсказания. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности среди видеоблоков в пределах заданного элемента кодирования, например кадра или мозаичного фрагмента. Другими словами, видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных в пределах того же самого элемента кодирования. Напротив, внешнее кодирование полагается на временное предсказание для уменьшения или удаления временной избыточности среди видеоблоков последовательных видеокадров видеопоследовательности. Таким образом, для внешнего кодирования видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения совпадающих видеоблоков из двух или более смежных элементов кодирования.In video encoding, video compression typically includes spatial prediction and / or motion estimation and motion compensation to form a video prediction block. Internal coding relies on spatial prediction to reduce or remove spatial redundancy among video blocks within a given coding element, such as a frame or tile. In other words, the video encoder performs spatial prediction to compress data based on other data within the same encoding element. In contrast, external coding relies on temporal prediction to reduce or remove temporal redundancy among video blocks of sequential video frames of a video sequence. Thus, for external encoding, the video encoder performs motion estimation and motion compensation to track the movement of matching video blocks from two or more adjacent encoding elements.

После пространственного или временного предсказания блок остаточных коэффициентов (называемый остаточным блоком или остаточной информацией) формируется посредством вычитания видеоблока предсказания из первоначального кодируемого видеоблока. Остаточный блок может представлять собой двумерную матрицу значений коэффициентов, которые определяют количество различий между видеоблоком предсказания и первоначальным блоком. Видеокодер может применить к остаточному блоку процессы преобразования, квантования и статистического кодирования для дополнительного уменьшения скорости передачи битов, ассоциированной с передачей остаточного блока. Методики преобразования могут содержать дискретные косинусные преобразования (DCT), вейвлетные преобразования, целочисленные преобразования или другие типы преобразований.After spatial or temporal prediction, a residual coefficient block (called a residual block or residual information) is generated by subtracting the prediction video block from the original encoded video block. The residual block may be a two-dimensional matrix of coefficient values that determine the number of differences between the prediction video block and the original block. The video encoder may apply transform, quantization, and statistical coding processes to the residual block to further reduce the bit rate associated with transmitting the residual block. Transformation techniques may include discrete cosine transforms (DCT), wavelet transforms, integer transforms, or other types of transforms.

При DCT-преобразовании, например, процесс преобразования конвертирует набор коэффициентов в области пикселей в коэффициенты преобразования, которые представляют собой энергию коэффициентов в области пикселей в области частоты или преобразования. К коэффициентам преобразования применяется квантование для формирования квантованных коэффициентов преобразования. Квантование обычно ограничивает количество битов, ассоциированных с любым заданным коэффициентом. Видеокодер статистически кодирует квантованные коэффициенты преобразования, чтобы дополнительно сжать квантованные коэффициенты преобразования. Видеокодер может статистически кодировать коэффициенты с использованием кодирования с переменной длиной (VLC), арифметического кодирования, кодирования с фиксированной длиной или их комбинации. Видеодекодер может выполнять обратные операции для воссоздания видеопоследовательности.In a DCT transform, for example, the transform process converts a set of coefficients in the pixel region into transform coefficients, which are the energy of the coefficients in the pixel region in the frequency or transform region. Quantization is applied to transform coefficients to form quantized transform coefficients. Quantization usually limits the number of bits associated with any given coefficient. The video encoder statistically encodes the quantized transform coefficients to further compress the quantized transform coefficients. A video encoder can statistically encode coefficients using variable length coding (VLC), arithmetic coding, fixed length coding, or a combination thereof. The video decoder can perform inverse operations to recreate the video sequence.

Некоторые стандарты кодирования видео, такие как MPEG-2, кодируют видео с относительно постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью. Такая методика может быть достаточной для предоставления приложений для работы с видео для устройств, имеющих аналогичные способности декодера (например, память или ресурсы для обработки) и/или качества соединения. Однако более современные системы передачи видео обычно включают в себя устройства с переменными способностями декодера и/или качествами соединения. В таких системах передача видео, закодированного с относительно постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью, приводит к тому, что приложения для работы с видео работают для устройств, которые имеют подходящие способности декодера и/или качество соединения, и не работают для устройств, у которых нет подходящих способностей декодера и/или качества соединения. В контексте беспроводной связи, например, устройства, расположенные ближе к источнику передачи видео, могут иметь более высокое качество соединения, чем устройства, расположенные дальше от источника. Таким образом, устройства, расположенные дальше от источника, могут быть не в состоянии принять закодированное видео, переданное с постоянным качеством, скоростью передачи битов или пространственной разрешающей способностью.Some video encoding standards, such as MPEG-2, encode videos with relatively consistent quality, bit rate, or spatial resolution. Such a technique may be sufficient to provide video applications for devices having similar decoder capabilities (e.g., memory or processing resources) and / or connection quality. However, more modern video transmission systems typically include devices with variable decoder capabilities and / or connection qualities. In such systems, the transmission of video encoded with a relatively constant quality, bit rate or spatial resolution leads to the fact that video applications work for devices that have suitable decoder capabilities and / or connection quality and do not work for devices that do not have suitable decoder capabilities and / or connection quality. In the context of wireless communications, for example, devices located closer to the video transmission source may have better connection quality than devices located further from the source. Thus, devices located farther from the source may not be able to receive encoded video transmitted with constant quality, bit rate or spatial resolution.

Другие стандарты кодирования видео используют методики масштабируемого кодирования для преодоления этих проблем. Масштабируемым кодированием видео (SVC), например, в соответствии с расширением стандарта ITU-T H.264/MPEG-4, часть 10, AVC называется кодирование видео, в котором видеопоследовательность закодирована как базовый слой и один или более масштабируемых улучшающих слоев. Для SVC базовый слой обычно несет видео с базовым пространственным, временным и/или качественным уровнем. Один или более улучшающих слоев несут добавочное видео для поддержки более высоких пространственных, временных и/или качественных уровней. Улучшающие слои могут, например, добавлять пространственную разрешающую способность к кадрам базового слоя или могут добавлять добавочные кадры для увеличения полной частоты кадров. В некоторых случаях базовый слой может быть передан более надежным методом, чем передача улучающих слоев. Таким образом, устройства, расположенные дальше от источника закодированного видео или с более низкими способностями декодера могут быть в состоянии принять базовый слой и, таким образом, видеопоследовательность, хотя и с самым низким пространственным, временным и/или качественным уровнем.Other video coding standards use scalable coding techniques to overcome these problems. Scalable video encoding (SVC), for example, in accordance with the extension of the ITU-T H.264 / MPEG-4 standard, part 10, AVC is called video encoding, in which a video sequence is encoded as a base layer and one or more scalable enhancement layers. For SVC, the base layer usually carries video with a basic spatial, temporal and / or quality level. One or more enhancement layers carry an incremental video to support higher spatial, temporal and / or quality levels. Enhancement layers can, for example, add spatial resolution to the frames of the base layer or can add additional frames to increase the overall frame rate. In some cases, the base layer may be transmitted in a more reliable manner than the transfer of enhancement layers. Thus, devices located further from the encoded video source or with lower decoder capabilities may be able to accept the base layer and thus the video sequence, albeit with the lowest spatial, temporal and / or quality level.

СУЩНОСТЬ ИЗОБРЕТЕНИЯSUMMARY OF THE INVENTION

Это раскрытие описывает методики масштабируемого кодирования видео, которые дают возможность статистического кодирования битового потока улучшающего слоя в одном проходе кодирования. Традиционно битовый поток улучшающего слоя кодируется с использованием множества проходов кодирования. Для каждого видеоблока улучшающего слоя, например, первый проход кодирования может собирать статистику для блока для использования при выборе таблиц кодирования (или кодовых книг) для статистического кодирования блока, и второй проход кодирования может статистически кодировать блок с использованием выбранных таблиц кодирования. Однако в соответствии с методиками в этом раскрытии видеоблоки битового потока улучшающего слоя статистически кодируются без выполнения первого прохода кодирования для сбора статистики для использования при выборе таблицы кодирования видео.This disclosure describes scalable video coding techniques that enable statistical coding of an enhancement layer bitstream in a single coding pass. Traditionally, the enhancement layer bitstream is encoded using multiple coding passes. For each video block of the enhancement layer, for example, the first coding pass can collect statistics for the block to use when selecting coding tables (or codebooks) for statistical coding of the block, and the second coding pass can statistically encode the block using the selected coding tables. However, in accordance with the techniques in this disclosure, video blocks of the enhancement layer bitstream are statistically encoded without performing a first encoding pass to collect statistics for use in selecting a video encoding table.

Вместо этого улучшающий слой кодируется с использованием методики кодирования, которая кодирует коэффициенты улучшающего слоя один за другим в одном проходе кодирования. В одном случае видеокодер для каждого из отличных от нуля коэффициентов видеоблока улучшающего слоя может закодировать символ конца блока (EOB), длину серии и знак. Видеокодер может использовать только одну таблицу кодирования для кодирования видеоблока улучшающего слоя, тем самым избавляя от необходимости выполнять первый проход кодирования для накопления статистики, которая должна использоваться при выборе таблиц кодирования.Instead, the enhancement layer is encoded using an encoding technique that encodes the coefficients of the enhancement layer one by one in a single encoding pass. In one case, a video encoder for each of the non-zero coefficients of the video block of the enhancement layer may encode a block end symbol (EOB), a series length, and a character. The video encoder can use only one coding table to encode the video block of the enhancement layer, thereby eliminating the need to perform the first coding pass to accumulate statistics that should be used when selecting coding tables.

Вдобавок, видеокодер может не кодировать величину отличных от нуля коэффициентов в улучшающем слое. В этом методе величина всех отличных от нуля коэффициентов улучшающего слоя может быть ограничена величиной, равной единице. Отсутствие кодирования величины коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но уменьшает количество битов, используемых для кодирования улучшающего слоя. Методики этого раскрытия могут предоставить несколько преимуществ. Например, методики могут уменьшить сложность кодирования, задержку кодирования и требования к памяти для кодирования битового потока улучшающего слоя при поддержании эффективности кодирования.In addition, the video encoder may not encode the value of non-zero coefficients in the enhancement layer. In this method, the value of all non-zero coefficients of the enhancement layer can be limited to a value of unity. The lack of coding of the magnitude of the coefficients of the enhancement layer may result in some loss of the peak signal to noise ratio (PSNR), but reduces the number of bits used to encode the enhancement layer. The techniques of this disclosure may provide several advantages. For example, techniques can reduce coding complexity, coding delay, and memory requirements for coding an enhancement layer bitstream while maintaining coding efficiency.

В одном аспекте способ кодирования видео с использованием масштабируемого кодирования видео содержит этап, на котором кодируют видеоблок с первым качеством как часть битового потока базового слоя. Способ также включает в себя этап, на котором как часть по меньшей мере одного битового потока улучшающего слоя кодируют уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Способ также включает в себя уточнения видеоблока, которые должны быть закодированы в одном проходе кодирования.In one aspect, a method of encoding video using scalable video encoding comprises the step of encoding a video block with a first quality as part of a base layer bitstream. The method also includes a stage where, as part of at least one bit stream of the enhancement layer, video block refinements are encoded, which, when combined with the video block encoded with the first quality, result in a video block having a second quality that is greater than the first quality. The method also includes refinement of the video block, which must be encoded in one coding pass.

В еще одном аспекте устройство для кодирования видео с использованием масштабируемого кодирования видео содержит по меньшей мере один кодер, который кодирует видеоблок с первым качеством как часть битового потока базового слоя и как часть по меньшей мере одного битового потока улучшающего слоя кодирует уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.In yet another aspect, a device for encoding video using scalable video encoding comprises at least one encoder that encodes a video block with a first quality as part of a base layer bitstream and as part of at least one enhancement layer bit stream encodes video block refinements that, when combining with a video block encoded with the first quality, the result is a video block having a second quality that is greater than the first quality. Video block refinements are encoded in a single coding pass.

В еще одном аспекте машиночитаемый носитель содержит команды, чтобы заставить один или более процессоров кодировать видеоблок с первым качеством как часть битового потока базового слоя и как часть по меньшей мере одного битового потока улучшающего слоя кодировать уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.In yet another aspect, a computer-readable medium comprises instructions to cause one or more processors to encode a video block with a first quality as part of a base layer bitstream and as part of at least one enhancement layer bit stream to encode video block refinements that, when combined with a video block encoded with the first quality, result in a video block having a second quality that is larger than the first quality. Video block refinements are encoded in a single coding pass.

В еще одном аспекте устройство для кодирования видеоданных с использованием масштабируемого кодирования видео содержит первое средство для кодирования видеоблока с первым качеством как части битового потока базового слоя и второе средство для кодирования как части по меньшей мере одного битового потока улучшающего слоя уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества. Уточнения видеоблока кодируются в одном проходе кодирования.In yet another aspect, an apparatus for encoding video data using scalable video encoding comprises first means for encoding a video block with a first quality as part of a base layer bitstream and second means for encoding as part of at least one bit stream of an enhancement layer of video block refinements that, when combined with the video block encoded with the first quality, the result is a video block having a second quality that is greater than the first quality. Video block refinements are encoded in a single coding pass.

В еще одном аспекте способ декодирования видеоданных с использованием масштабируемого кодирования видео содержит этапы, на которых декодируют битовый поток базового слоя для получения видеоблока с первым качеством и декодируют битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Декодирование улучшающего слоя включает в себя этап, на котором для каждого отличного от нуля коэффициента уточнений видеоблока декодируют символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.In yet another aspect, a method for decoding video data using scalable video encoding comprises the steps of decoding a base layer bitstream to obtain a video block with a first quality and decode an enhancement layer bitstream to obtain video block refinements that, when combined with a video block decoded with first quality result in a video block having a second quality. Decoding the enhancement layer includes the step of decoding a symbol for each non-zero refinement coefficient of the video block indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and a non-zero sign from zero coefficient.

В еще одном аспекте устройство для декодирования видеоданных с использованием масштабируемого кодирования видео содержит по меньшей мере один декодер, который декодирует битовый поток базового слоя для получения видеоблока с первым качеством и декодирует битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. По меньшей мере один декодер для каждого отличного от нуля коэффициента уточнений видеоблока декодирует символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.In yet another aspect, a device for decoding video data using scalable video encoding comprises at least one decoder that decodes the base layer bitstream to obtain a video block with a first quality and decodes the enhancement layer bitstream to obtain refinements to the video block, which when combined with the video block, decoded with the first quality, the result is a video block having a second quality. At least one decoder for each non-zero refinement coefficient of the video block decodes a symbol indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient.

В еще одном аспекте машиночитаемый носитель содержит команды, чтобы заставить один или более процессоров декодировать битовый поток базового слоя для получения видеоблока с первым качеством и декодировать битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Команды заставляют один или более процессоров для каждого отличного от нуля коэффициента уточнений видеоблока декодировать символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.In yet another aspect, a computer-readable medium comprises instructions to cause one or more processors to decode a base layer bitstream to obtain a video block with a first quality and decode an enhancement layer bitstream to obtain video block refinements that, when combined with a video block decoded with the first quality, give as a result, a video block having a second quality. The commands cause one or more processors to decode a symbol for each non-zero refinement coefficient of the video block indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of a non-zero coefficient.

В еще одном аспекте устройство для декодирования видеоданных с использованием масштабируемого кодирования видео содержит первое средство для декодирования битового потока базового слоя для получения видеоблока с первым качеством и второе средство для декодирования битового потока улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество. Второе средство декодирования для каждого отличного от нуля коэффициента уточнений видеоблока декодирует символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.In yet another aspect, a device for decoding video data using scalable video encoding comprises first means for decoding a base layer bitstream to obtain a video block with a first quality and second means for decoding an enhancement layer bitstream to obtain refinements to the video block, which when combined with the video block decoded with the first quality, result in a video block having a second quality. The second decoding means for each non-zero refinement coefficient of the video block decodes a symbol indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient.

Методики, описанные в этом раскрытии, могут быть осуществлены в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. При осуществлении в программном обеспечении программное обеспечение может исполняться в процессоре, который может относиться к одному или более процессорам, таким как микропроцессор, специализированная интегральная схема (ASIC), программируемая вентильная матрица (FPGA), процессор цифровых сигналов (DSP) или другая эквивалентная интегрированная или дискретная логическая схема. Программное обеспечение, содержащее команды для исполнения методик, может быть сначала сохранено на машиночитаемом носителе и загружено и исполнено посредством процессора.The techniques described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the software may execute on a processor, which may refer to one or more processors, such as a microprocessor, application specific integrated circuit (ASIC), programmable gate array (FPGA), digital signal processor (DSP), or other equivalent integrated or discrete logic circuit. Software containing instructions for executing the techniques may first be stored on a computer-readable medium and downloaded and executed by a processor.

В соответствии с этим это раскрытие также рассматривает машиночитаемые носители, содержащие команды, чтобы заставить процессор выполнять любое разнообразие методик, описанных в этом раскрытии. В некоторых случаях машиночитаемый носитель может образовывать часть компьютерного программного продукта, который может быть продан изготовителям и/или использоваться в устройстве. Компьютерный программный продукт может включать в себя машиночитаемый носитель и в некоторых случаях также может включать в себя упаковочные материалы.Accordingly, this disclosure also contemplates computer-readable media containing instructions to cause a processor to execute any variety of techniques described in this disclosure. In some cases, the computer-readable medium may form part of a computer program product that can be sold to manufacturers and / or used in a device. The computer program product may include computer-readable media, and in some cases may also include packaging materials.

Подробности одного или более аспектов раскрытия изложены ниже в сопроводительных чертежах и в описании. Другие отличительные признаки, цели и преимущества методик, описанных в этом раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.Details of one or more aspects of the disclosure are set forth below in the accompanying drawings and in the description. Other features, objectives, 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

Фиг.1 - блок-схема, иллюстрирующая систему передачи видео, которая поддерживает масштабируемость видео.1 is a block diagram illustrating a video transmission system that supports video scalability.

Фиг.2 - блок-схема, иллюстрирующая устройство источника и устройство адресата системы кодирования, показанной на Фиг.1, в дополнительных подробностях.FIG. 2 is a block diagram illustrating a source device and a destination device of the encoding system shown in FIG. 1 in further details.

Фиг.3 - блок-схема, иллюстрирующая примерный кодер базового слоя и кодер улучшающего слоя в дополнительных подробностях.FIG. 3 is a block diagram illustrating an example base layer encoder and an enhancement layer encoder in further detail. FIG.

Фиг.4 - блок-схема, иллюстрирующая примерный статистический кодер базового слоя и статистический кодер улучшающего слоя в дополнительных подробностях.4 is a block diagram illustrating an example statistical base layer encoder and an enhancement layer statistical encoder in further detail.

Фиг.5 - блок-схема, иллюстрирующая пример декодера базового слоя и декодера улучшающего слоя в дополнительных подробностях.5 is a block diagram illustrating an example of a base layer decoder and an enhancement layer decoder in further detail.

Фиг.6 - блок-схема, иллюстрирующая примерный статистический декодер базового слоя и статистический декодер улучшающего слоя в дополнительных подробностях.6 is a block diagram illustrating an exemplary statistical base layer decoder and an enhancement layer statistical decoder in further detail.

Фиг.7 - концептуальная схема, иллюстрирующая зигзагообразное сканирование блока коэффициентов 4×4.7 is a conceptual diagram illustrating a zigzag scan of a block of 4 × 4 coefficients.

Фиг.8 - концептуальная схема, иллюстрирующая гипотетический пример блока коэффициентов видеоблока улучшающего слоя.8 is a conceptual diagram illustrating a hypothetical example of a coefficient block of a video block of an enhancement layer.

Фиг.9 - блок-схема последовательности операций, иллюстрирующая примерную работу видеокодера, выполняющего методики масштабируемого кодирования видео этого раскрытия.9 is a flowchart illustrating an example operation of a video encoder performing scalable video coding techniques of this disclosure.

Фиг.10 - блок-схема последовательности операций, иллюстрирующая примерную работу кодера улучшающего слоя, кодирующего остаточные коэффициенты видеоблока улучшающего слоя в соответствии с одним аспектом этого раскрытия.10 is a flowchart illustrating an exemplary operation of an enhancement layer encoder encoding the residual coefficients of a video block of an enhancement layer in accordance with one aspect of this disclosure.

Фиг.11 - блок-схема последовательности операций, иллюстрирующая примерную работу декодера улучшающего слоя, декодирующего битовый поток улучшающего слоя для получения вектора остаточных коэффициентов преобразования.11 is a flowchart illustrating an exemplary operation of an enhancement layer decoder decoding an enhancement layer bitstream to obtain a vector of residual transform coefficients.

Фиг.12-15 - блок-схемы, иллюстрирующие различные конфигурации кодеров и/или декодеров для использования при масштабируемом кодировании видео в соответствии с этим раскрытием.12-15 are block diagrams illustrating various configurations of encoders and / or decoders for use in scalable video encoding in accordance with this disclosure.

ПОДРОБНОЕ ОПИСАНИЕDETAILED DESCRIPTION

Фиг.1 является блок-схемой, иллюстрирующей систему 10 передачи видео, которая поддерживает масштабируемость видео. В примере на Фиг.1 система 10 передачи видео включает в себя устройство 12 источника и множество устройств 14A, 14B адресата (все вместе "устройства 14 адресата"). Устройство 12 источника получает цифровой видеоконтент от одного или более источников и кодирует видеоконтент для передачи на устройства 14 адресата. Видеоконтент, например, может быть захвачен в режиме реального времени или в режиме, близком к реальному времени, архивирован (например, предварительно захвачен), сформирован на компьютере или являться комбинацией перечисленного. В каждом случае видеоконтент может быть закодирован устройством 12 источника для передачи на устройства 14 адресата через канал связи. Устройство 12 источника может включать в себя передатчик или быть подключено к передатчику, который включает в себя подходящие компоненты модуляции радиочастоты (RF), фильтрации и усилителя для привода одной или более антенн для доставки закодированного видео по каналу связи.1 is a block diagram illustrating a video transmission system 10 that supports video scalability. In the example of FIG. 1, the video transmission system 10 includes a source device 12 and a plurality of destination devices 14A, 14B (collectively, “destination devices 14”). Source device 12 receives digital video content from one or more sources and encodes video content for transmission to destination devices 14. Video content, for example, can be captured in real time or in close to real time mode, archived (for example, pre-captured), generated on a computer, or a combination of the above. In each case, the video content can be encoded by the source device 12 for transmission to the destination device 14 via a communication channel. The source device 12 may include a transmitter or be connected to a transmitter that includes suitable components for modulating radio frequency (RF), filtering, and an amplifier to drive one or more antennas for delivering encoded video over a communication channel.

Для поддержки масштабируемого видео устройство 12 источника кодирует видео источника как битовый поток базового слоя (или базовый слой) и один или более масштабируемых битовых потоков улучшающих слоев (или улучшающих слоев). Битовый поток базового слоя обычно несет видеоданные с базовым уровнем качества. Один или более улучшающих слоев несут добавочные видеоданные, называемые здесь уточнениями, для поддержки более высоких уровней качества. Уточнения, закодированные в улучающих слоях, например, могут постепенно увеличивать точность воспроизведения (например, визуальное качество) посредством предоставления добавочных более высоких частотных коэффициентов или дополнительного уточнения существующих коэффициентов. В некоторых случаях базовый слой может быть передан более надежным методом, чем передача улучшающих слоев, например с более низкой вероятностью искажения пакетов (PER).To support scalable video, source device 12 encodes the source video as a base layer bitstream (or base layer) and one or more scalable enhancement layer (or enhancement layer) bit streams. The base layer bitstream typically carries video data with a basic level of quality. One or more enhancement layers carry incremental video data, referred to herein as refinements, to support higher quality levels. Refinements encoded in enhancement layers, for example, can gradually increase fidelity (for example, visual quality) by providing additional higher frequency coefficients or further refinement of existing coefficients. In some cases, the base layer may be transmitted in a more reliable manner than the transmission of enhancement layers, for example with a lower probability of packet distortion (PER).

В примере, проиллюстрированном на Фиг.1, для простоты показаны базовый слой и единственный улучшающий слой одного канала. Однако устройство 12 источника может закодировать более одного улучшающего слоя, несущего добавочные видеоданные канала. В некоторых случаях устройство 12 источника может закодировать видео источника в отдельных битовых потоках для поддержки разных каналов для выбора пользователями, ассоциированными с устройствами 14 адресата. Каналы обычно передаются одновременно таким образом, что устройства 14 адресата в любое время могут выбирать разные каналы для просмотра. Таким образом, устройства 14 адресата под управлением пользователя могут выбрать один канал для просмотра спортивных программ и затем выбрать еще один канал для просмотра новостей или некоторого другого запланированного по программе события, что очень похоже на практику просмотра телепередач. В общем случае каждый канал может быть закодирован как базовый слой и один или более улучшающих слоев.In the example illustrated in FIG. 1, for simplicity, a base layer and a single enhancement layer of one channel are shown. However, source device 12 may encode more than one enhancement layer carrying additional channel video data. In some cases, source device 12 may encode the source video in separate bitstreams to support different channels for users to associate with destination devices 14. The channels are usually transmitted simultaneously so that the destination devices 14 can select different channels for viewing at any time. Thus, the destination devices 14 under the control of the user can select one channel for watching sports programs and then select another channel for watching news or some other event planned for the program, which is very similar to the practice of watching TV shows. In general, each channel can be encoded as a base layer and one or more enhancement layers.

Кроме того, методики этого раскрытия в иллюстративных целях описываются в контексте масштабируемости качества (также называемой масштабируемостью отношения сигнала к шуму (SNR)). Однако методики могут быть расширены на пространственную масштабируемость. В приложениях с пространственной масштабируемостью базовый слой несет видеоданные с базовой пространственной разрешающей способностью, и улучшающие слои несут добавочные видеоданные для поддержки более высокой пространственной разрешающей способности. В некоторых случаях система 10 может употреблять масштабируемость видео, которое комбинирует масштабируемость отношения сигнала к шуму (SNR), пространственную и/или временную масштабируемость.In addition, the techniques of this disclosure are described for illustrative purposes in the context of quality scalability (also called signal-to-noise ratio scalability (SNR)). However, the techniques can be extended to spatial scalability. In spatial scalability applications, the base layer carries video with basic spatial resolution, and the enhancement layers carry additional video data to support higher spatial resolution. In some cases, system 10 may utilize video scalability, which combines signal-to-noise ratio (SNR) scalability, spatial and / or temporal scalability.

Устройство 12 источника, например, может кодировать видео источника как базовый слой в соответствии с расширением SVC стандарта H.264/MPEG-4, часть 10, AVC и кодировать видео источника как улучшающий слой в соответствии с методиками, описанными в этом раскрытии. Таким образом, методики, описанные в этом раскрытии, в некоторых аспектах могут быть применены для осуществления расширений масштабируемости видео для устройств, которые иным образом согласованы со стандартом H.264. Фактически методики этого раскрытия могут представлять собой потенциальные модификации для будущих версий или расширений стандарта H.264 или других стандартов. Однако методики могут использоваться вместе с любым разнообразием других стандартов сжатия видео, таких как стандарты MPEG-1 и MPEG-2, ITU-T H.263, стандарт видеокодека 421M Общества инженеров кино и телевидения (SMPTE) (обыкновенно называемый "VC-1"), стандарт, определенный рабочей группой Китая по стандартам кодирования аудио и видео (обыкновенно называемый "AVS"), а также любой другой стандарт кодирования видео, определенный органом по стандартизации или разработанный организацией как частный стандарт.Source device 12, for example, can encode the source video as a base layer in accordance with the H.264 / MPEG-4 SVC extension, Part 10, AVC and encode the source video as an enhancement layer in accordance with the techniques described in this disclosure. Thus, the techniques described in this disclosure may be applied in some aspects to implement video scalability extensions for devices that are otherwise consistent with the H.264 standard. In fact, the techniques of this disclosure may represent potential modifications for future versions or extensions of the H.264 standard or other standards. However, the techniques can be used in conjunction with any variety of other video compression standards such as MPEG-1 and MPEG-2, ITU-T H.263, 421M Video Codec Standard of the Society of Film and Television Engineers (SMPTE) (commonly referred to as "VC-1" ), a standard defined by the China Audio and Video Coding Standards Working Group (commonly referred to as “AVS”), as well as any other video coding standard defined by the standardization body or developed by the organization as a private standard.

Устройства 14 адресата могут поддерживать проводной и/или беспроводной прием закодированного видео. Устройства 14 адресата могут содержать любое устройство, способное принимать и декодировать цифровые видеоданные, такое как устройства беспроводной связи, например сотовые или спутниковые радиотелефоны, беспроводные системы вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, игровые приставки, цифровые телевизоры, системы прямого цифрового вещания и т.п. В примере на Фиг.1 показаны два устройства 14A, 14B адресата. Однако система 10 может включать в себя любое количество устройств 14 адресата. Устройства 14 адресата также могут работать в соответствии с любым из разнообразия стандартов сжатия видео, описанных выше.Destination devices 14 may support wired and / or wireless reception of encoded video. Destination devices 14 may comprise any device capable of receiving and decoding digital video data, such as wireless communication devices, such as cellular or satellite radiotelephones, wireless broadcasting systems, personal digital assistants (PDAs), laptops or desktop computers, digital cameras, digital recording devices, video game devices, game consoles, digital TVs, direct digital broadcasting systems, etc. In the example of FIG. 1, two destination devices 14A, 14B are shown. However, the system 10 may include any number of destination devices 14. Destination devices 14 may also operate in accordance with any of the variety of video compression standards described above.

Фиг.1 представляет позиционирование устройств 14 адресата относительно устройства 12 источника, которое передает закодированное видео. В частности, устройство 14A адресата находится ближе к источнику передачи, то есть устройству 12 источника на Фиг.1, а устройство 14B адресата находится дальше от источника передачи. В случаях, в которых базовый слой закодирован с более низкой вероятностью искажения пакетов (PER), оба устройства 14A и 14B адресата могут надежно принимать и декодировать базовый слой. Устройство 14A адресата, которое расположено ближе к устройству 12 источника, также может надежно принимать улучшающий слой. Однако устройство 14B адресата, которое расположено дополнительно дальше от устройства 12 источника, не может надежно принимать улучшающий слой, например, из-за условий сети или канала.Figure 1 represents the positioning of destination devices 14 relative to a source device 12 that transmits encoded video. In particular, the destination device 14A is closer to the transmission source, that is, the source device 12 in FIG. 1, and the destination device 14B is further away from the transmission source. In cases in which the base layer is encoded with a lower packet distortion probability (PER), both destination devices 14A and 14B can reliably receive and decode the base layer. The destination device 14A, which is located closer to the source device 12, can also reliably receive the enhancement layer. However, the destination device 14B, which is further located further from the source device 12, cannot reliably receive the enhancement layer, for example, due to network or channel conditions.

Таким образом, более близкое устройство 14A адресата способно работать с видео более высокого качества, поскольку ему доступны данные и базового слоя, и улучшающего слоя, тогда как устройство 14B адресата способно представлять только минимальный уровень качества, предоставляемый данными базового слоя. Таким образом, видео, полученное устройствами 14 адресата, является масштабируемым в том смысле, что добавочные биты улучшающего слоя могут быть декодированы и добавлены к битовому потоку базового слоя для увеличения отношения сигнала к шуму (SNR) декодированного видео. Однако масштабируемость возможна только тогда, когда представлены данные улучшающего слоя. Таким образом, термин "качество", используемый в этом раскрытии, может ссылаться к объективному и/или субъективному визуальному качеству. Другими словами, уточнения улучшающего слоя дают в результате видеоданные с более высококачественным воспроизведением первоначальных данных. В этом методе точность воспроизведения видео увеличивается посредством улучшающего слоя.Thus, the closer destination device 14A is capable of working with higher quality video because it has both base layer and enhancement layer data available, while destination device 14B is capable of representing only the minimum quality level provided by the base layer data. Thus, the video received by destination devices 14 is scalable in the sense that additional bits of the enhancement layer can be decoded and added to the bitstream of the base layer to increase the signal-to-noise ratio (SNR) of the decoded video. However, scalability is only possible when the data of the enhancement layer is presented. Thus, the term “quality” as used in this disclosure may refer to objective and / or subjective visual quality. In other words, refinement of the enhancement layer results in video data with higher quality reproduction of the original data. In this method, video fidelity is enhanced by an enhancement layer.

В других случаях условия сети или канала могут быть достаточными для обоих устройств 14A и 14B адресата, чтобы принять базовый слой и улучшающий слой. Однако устройства 14A и 14B адресата могут иметь различные способности декодера, которые не позволяют одному из устройств 14A и 14B адресата использовать добавочные видеоданные улучшающего слоя для воспроизведения более высококачественного видео. Если одно из устройств 14 адресата является таким клиентским устройством, как например, мобильная телефонная трубка или другое маленькое переносное устройство, могут иметься ограничения вследствие вычислительной сложности и требований к памяти. В соответствии с этим масштабируемое кодирование видео может быть создано таким образом, что устройства 14 адресата с ограниченными вычислительными ресурсами или ресурсами памяти могут декодировать только базовый слой. В этом методе устройства 14 адресата с более хорошими условиями сети или канала и/или более хорошими способностями декодера будут в состоянии воссоздать видео с более высоким качеством с использованием добавочных видеоданных улучшающего слоя.In other cases, the network or channel conditions may be sufficient for both destination devices 14A and 14B to receive the base layer and the enhancement layer. However, destination devices 14A and 14B may have different decoder capabilities that prevent one of destination devices 14A and 14B from using additional enhancement layer video data to play higher quality video. If one of the destination devices 14 is such a client device, such as a mobile handset or other small portable device, there may be limitations due to computational complexity and memory requirements. Accordingly, scalable video coding can be created in such a way that destination devices 14 with limited computing or memory resources can decode only the base layer. In this method, destination devices 14 with better network or channel conditions and / or better decoder capabilities will be able to recreate higher quality video using additional video layer enhancement data.

Методики, описанные в этом раскрытии, используют методики статистического кодирования, которые содействуют эффективному кодированию битовых потоков улучшающего слоя. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Как будет описано в дополнительных подробностях, устройство 12 источника в некоторых случаях может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя без знания о каких-либо последующих коэффициентах, то есть каких-либо коэффициентах после отличного от нуля коэффициента, кодируемого в настоящий момент. Кодирование улучшающего слоя с одним проходом может избавить от необходимости выполнения первого прохода для анализа вектора коэффициентов и второго прохода для кодирования вектора коэффициентов на основе этого анализа.The techniques described in this disclosure employ statistical coding techniques that facilitate efficient coding of enhancement layer bit streams. The statistical encoding techniques of this disclosure may enable the encoding of additional video data, for example, in the form of refinements in the bitstream of the enhancement layer in one encoding pass, thereby reducing encoding complexity, encoding delay, and memory requirements. As will be described in further detail, the source device 12 may, in some cases, encode each nonzero coefficient vector of the coefficients of the enhancement layer without knowing any subsequent coefficients, that is, any coefficients after the non-zero coefficient currently encoded. Encoding a one-pass enhancement layer can eliminate the need for a first pass to analyze the coefficient vector and a second pass to encode the coefficient vector based on this analysis.

Например, некоторые традиционные статистические кодеры могут выполнять первый проход кодирования, чтобы сформировать символы для представления вектора коэффициентов, причем по меньшей мере некоторые из символов представляют более одного отличного от нуля коэффициента. Другими словами, знание о последующих коэффициентах необходимо для кодирования отличных от нуля коэффициентов вектора коэффициентов. Вдобавок или в качестве альтернативы некоторые традиционные статистические кодеры могут также выбирать во время первого или последующего прохода кодирования таблицы кодирования VLC для использования при кодировании символов. В одном аспекте таблицы кодирования VLC могут быть выбраны на основе сформированных символов. В качестве альтернативы во время первого прохода кодирования посредством анализа вектора коэффициентов могут быть собраны статистические данные, и таблицы кодирования VLC могут быть выбраны на основе накопленных статистических данных.For example, some conventional statistical encoders may perform a first coding pass to generate symbols for representing a coefficient vector, with at least some of the symbols representing more than one non-zero coefficient. In other words, knowledge of the following coefficients is necessary for coding non-zero coefficients of the coefficient vector. In addition or alternatively, some conventional statistical encoders may also select during the first or subsequent pass of the coding of the VLC coding table for use in character coding. In one aspect, VLC coding tables may be selected based on the generated symbols. Alternatively, during the first coding pass through analysis of the coefficient vector, statistics can be collected, and VLC coding tables can be selected based on the accumulated statistics.

Затем традиционным статистическим кодером выполняется второй проход кодирования для статистического кодирования вектора коэффициентов на основе анализа, выполненного во время первого прохода кодирования. В качестве одного примера, некоторые традиционные статистические кодеры во время второго прохода кодирования могут кодировать символы, сформированные во время первого прохода, с использованием таблиц кодирования VLC, выбранных на основе сформированных символов или других статистических данных. Формирование символов, которые представляют более одного отличного от нуля коэффициента и/или выбор таблиц кодирования VLC на основе сформированных символов или других статистических данных, может позволить более эффективно кодировать вектор коэффициентов.Then, a second coding pass is performed by the conventional statistical encoder for statistical coding of the coefficient vector based on the analysis performed during the first coding pass. As one example, some conventional statistical encoders during the second encoding pass may encode the symbols generated during the first pass using VLC coding tables selected based on the generated symbols or other statistics. The generation of symbols that represent more than one non-zero coefficient and / or the selection of VLC coding tables based on the generated symbols or other statistics may allow more efficient coding of the coefficient vector.

Методики этого раскрытия не только избавляют от необходимости более одного прохода для кодирования улучшающего слоя, но методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию улучшающего слоя без сохранения информации коэффициентов видеоданных базового слоя и доступа к ней, что дополнительно уменьшает вычислительную сложность и требования к памяти.The techniques of this disclosure not only eliminate the need for more than one pass to encode the enhancement layer, but the statistical encoding techniques of this disclosure can also lead to the encoding of the enhancement layer without storing and accessing video coefficient coefficients of the base layer, which further reduces computational complexity and memory requirements .

Устройство 12 источника, устройство 14 адресата или они оба могут являться беспроводным или проводным устройством связи, как описано выше. Также устройство 12 источника, устройство 14 адресата или они оба могут быть осуществлены как устройство на интегральных схемах, такое как интегральная микросхема или набор микросхем, которое может быть заключено в беспроводное или проводное устройство связи или в устройство другого типа, поддерживающее приложения для работы с цифровым видео, такие как цифровой проигрыватель медиа, карманный персональный компьютер (PDA), цифровой телевизор и т.п.The source device 12, the destination device 14, or both, can be a wireless or wired communication device, as described above. Also, the source device 12, the destination device 14, or both can be implemented as an integrated circuit device, such as an integrated circuit or a chipset, which can be enclosed in a wireless or wired communication device or in another type of device that supports digital applications videos such as digital media player, personal digital assistant (PDA), digital television, etc.

Фиг.2 является блок-схемой, иллюстрирующей устройство 12 источника и устройство 14 адресата системы 10 кодирования в дополнительных подробностях. Устройство 14 адресата, например, может быть любым из устройств 14A или 14B адресата, показанным на Фиг.1. Как показано на Фиг.2, устройство 12 источника может включать в себя источник 18 видео, видеокодер 20 и передатчик 22. Источник 18 видео устройства 12 источника может включать в себя устройство захвата видео, такое как видеокамера, видеоархив, вмещающий в себя ранее захваченное видео, или видео, поставленное от поставщика видеоконтента. Как дополнительная альтернатива, источник 18 видео может формировать в качестве видеоисточника данные на основе компьютерной графики или комбинацию «живого» видео и видео, созданного компьютером. В некоторых случаях устройство 12 источника может являться так называемым «камерофоном» или видеотелефоном, в этом случае источник 18 видео может являться видеокамерой. В каждом случае захваченное, предварительно захваченное или созданное компьютером видео может быть закодировано видеокодером 20 для передачи от устройства 12 источника на устройство 14 адресата через передатчик 22 и канал 16 связи.2 is a block diagram illustrating a source device 12 and a destination device 14 of an encoding system 10 in further detail. The destination device 14, for example, can be any of the destination devices 14A or 14B shown in FIG. As shown in FIG. 2, the source device 12 may include a video source 18, a video encoder 20, and a transmitter 22. The video source 18 of the source device 12 may include a video capture device, such as a video camera, a video archive containing previously captured video , or video supplied by a video content provider. As an additional alternative, the video source 18 may generate computer-based data as a video source, or a combination of live video and computer-generated video. In some cases, the source device 12 may be a so-called “camera phone” or a video phone, in which case the video source 18 may be a video camera. In each case, captured, pre-captured or computer-generated video can be encoded by video encoder 20 for transmission from source device 12 to destination device 14 via transmitter 22 and communication channel 16.

Видеокодер 20 принимает видеоданные от источника 18 видео и кодирует видеоданные как битовый поток базового слоя и один или более битовых потоков улучшающего слоя. В примере, проиллюстрированном на Фиг.2, видеокодер 20 включает в себя кодер 30 базового слоя и кодер 32 улучшающего слоя. Кодер 30 базового слоя и кодер 32 улучшающего слоя принимают обыкновенные видеоданные от источника 18 видео. Кодер 30 базового слоя кодирует видеоданные с первой скоростью передачи битов для формирования битового потока базового слоя видео на первом уровне качества. Кодер 32 улучшающего слоя кодирует добавочные биты для формирования одного или более улучшающих слоев, которые при их добавлении к битовому уровню базового слоя улучшают видео до второго, более высокого уровня качества. Другими словами, улучшающий слой при его добавлении к базовому слою предоставляет вторую, более высокую скорость передачи битов, которая предоставляет более высокий уровень качества. Таким образом, улучшающий слой может рассматриваться как уточнение видеоданных, закодированных в базовом слое. Уточнения могут являться, например, добавочными коэффициентами и/или уточнениями к существующим коэффициентам. Уточнения, закодированные в улучшающих слоях, могут быть иерархическими в том смысле, что уточнения в улучшающих слоях постепенно увеличивают качество видеоданных по мере их декодирования. Таким образом, декодирование уточнений всех улучшающих слоев, например, приведет к самой высокой скорости передачи битов и максимальному качеству, в то время как декодирование уточнений только первого улучшающего слоя произведет увеличение скорости передачи битов и качества относительно декодирования только базового слоя.Video encoder 20 receives video data from video source 18 and encodes the video data as a base layer bitstream and one or more enhancement layer bit streams. In the example illustrated in FIG. 2, video encoder 20 includes a base layer encoder 30 and an enhancement layer encoder 32. The base layer encoder 30 and the enhancement layer encoder 32 receive ordinary video data from the video source 18. The base layer encoder 30 encodes video data at a first bit rate to form a bitstream of the video base layer at a first quality level. Enhancement layer encoder 32 encodes incremental bits to form one or more enhancement layers, which, when added to the bit level of the base layer, enhance the video to a second, higher quality level. In other words, the enhancement layer when added to the base layer provides a second, higher bit rate, which provides a higher level of quality. Thus, the enhancement layer can be considered as a refinement of the video data encoded in the base layer. The refinements may be, for example, additional coefficients and / or refinements to existing coefficients. The refinements encoded in the enhancement layers can be hierarchical in the sense that the refinements in the enhancement layers gradually increase the quality of the video data as they are decoded. Thus, decoding refinements of all enhancement layers, for example, will result in the highest bit rate and maximum quality, while decoding refinements of only the first enhancement layer will increase bit rate and quality relative to decoding only the base layer.

Видеоданные, принятые от источника 18 видео, могут являться рядом видеокадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят ряд кадров на закодированные элементы и обрабатывают закодированные элементы для кодирования ряда видеокадров. Закодированные элементы могут, например, быть цельными кадрами или участками кадров, такими как мозаичные фрагменты кадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят каждый закодированный элемент на блоки пикселей (упоминаемые здесь как видеоблоки или блоки) и работают над видеоблоками в пределах индивидуальных закодированных элементов для кодирования видеоданных. Таким образом, видеоданные могут включать в себя множество кадров, кадр может включать в себя множество мозаичных фрагментов, и мозаичный фрагмент может включать в себя множество видеоблоков.The video data received from the video source 18 may be a series of video frames. The base layer encoder 30 and the enhancement layer encoder 32 divide the series of frames into encoded elements and process the encoded elements to encode a series of video frames. The encoded elements may, for example, be solid frames or sections of frames, such as mosaic fragments of frames. The base layer encoder 30 and the enhancement layer encoder 32 divide each encoded element into pixel blocks (referred to herein as video blocks or blocks) and work on the video blocks within the individual encoded elements for encoding the video data. Thus, video data may include a plurality of frames, a frame may include a plurality of tile fragments, and a tile fragment may include a plurality of video blocks.

Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии со специфицированным стандартом кодирования. В качестве примера, стандарт ITU-T H.264/MPEG-4, часть 10, AVC поддерживает внутреннее предсказание с разнообразными размерами блока, такими как 16×16, 8×8 или 4×4 для компонентов яркости и 8×8 для компонентов цветности, а также внешнее предсказание с разнообразными размерами блока, такими как 16×16, 16×8, 8×16, 8×8, 8×4, 4×8 и 4×4 для компонентов яркости и соответствующими масштабированными размерами для компонентов цветности. В стандарте H.264/ MPEG-4, часть 10, AVC каждый видеоблок, часто называемый макроблоком (MB), может быть разделен на субблоки одного размера или разных размеров. Таким образом, закодированный элемент может содержать субблоки одинаковых или разных размеров. В общем случае макроблоки и разнообразные субблоки могут рассматриваться как видеоблоки. Таким образом, макроблоки могут рассматриваться как видеоблоки, и если они разделены или подразделены, может считаться, что сами макроблоки задают множества видеоблоков.Video blocks may have fixed or variable sizes and may vary in size in accordance with a specified coding standard. As an example, the ITU-T H.264 / MPEG-4 standard, part 10, AVC supports intra prediction with a variety of block sizes, such as 16 × 16, 8 × 8 or 4 × 4 for luminance components and 8 × 8 for components chroma, as well as inter prediction with various block sizes such as 16 × 16, 16 × 8, 8 × 16, 8 × 8, 8 × 4, 4 × 8 and 4 × 4 for luminance components and corresponding scaled sizes for chroma components . In the H.264 / MPEG-4 standard, Part 10, AVC, each video block, often called a macroblock (MB), can be divided into sub-blocks of the same size or different sizes. Thus, the encoded element may contain subunits of the same or different sizes. In the general case, macroblocks and various subblocks can be considered as video blocks. Thus, macroblocks can be considered as video blocks, and if they are divided or subdivided, it can be considered that the macroblocks themselves define a plurality of video blocks.

Кодеры 30, 32 выполняют внутреннее и внешнее кодирование видеоблоков кадров. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности в видеоданных в пределах заданного закодированного элемента, например кадра или мозаичного фрагмента. Для внутреннего кодирования кодеры 30, 32 образуют блок пространственного предсказания на основе одного или более ранее закодированных блоков в пределах того же самого кадра, что и текущий кодируемый блок. Блок предсказания может являться предсказанной версией текущего кодируемого видеоблока. Кодер 30 базового слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков в пределах кадра, например посредством выполнения интерполяции (в соответствии с режимом внутреннего кодирования, ассоциированным с блоком) с использованием значений пикселей одного или более ранее закодированных блоков в пределах базового слоя текущего кадра. Кодер 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков в пределах кадра. Кодер 32 улучшающего слоя, например, может формировать блок предсказания на основе одного или более ранее закодированных видеоблоков из базового слоя и улучшающего слоя в пределах кадра. Например, кодер 32 улучшающего слоя может формировать блок предсказания с использованием взвешенной суммы значений пикселей по меньшей мере из одного ранее закодированного видеоблока из базового слоя и по меньшей мере одного ранее закодированного видеоблока из улучшающего слоя.Encoders 30, 32 perform internal and external encoding of video blocks of frames. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy in video data within a given encoded element, such as a frame or tile. For intra-coding, encoders 30, 32 form a spatial prediction block based on one or more previously encoded blocks within the same frame as the current encoded block. The prediction block may be a predicted version of the current encoded video block. The base layer encoder 30 may generate a prediction block based on one or more previously encoded blocks within the frame, for example, by performing interpolation (in accordance with the internal coding mode associated with the block) using pixel values of one or more previously encoded blocks within the base layer current frame. Enhancement layer encoder 32 may generate a prediction block based on one or more previously encoded blocks within a frame. Enhancement layer encoder 32, for example, may generate a prediction block based on one or more previously encoded video blocks from a base layer and an enhancement layer within a frame. For example, enhancement layer encoder 32 may generate a prediction block using a weighted sum of pixel values from at least one previously encoded video block from the base layer and at least one previously encoded video block from the enhancement layer.

Внешнее кодирование полагается на временное предсказание для уменьшения или удаления временной избыточности в пределах смежных кадров видеопоследовательности. Для внешнего кодирования кодеры 30, 32 выполняют оценку движения, чтобы отследить движение близко соответствующих видеоблоков между двумя или более смежными кадрами в пределах закодированного элемента. В случае предсказания с внешним кодированием кодеры 30, 32 могут формировать блок временного предсказания на основе одного или более ранее закодированных блоков из других кадров в пределах закодированного элемента. Кодеры 30, 32 могут, например, сравнивать текущий видеоблок с блоками в одном или более смежных видеокадрах, чтобы идентифицировать блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку, например, блок в одном или более смежных кадрах, который имеет наименьшую среднеквадратичную ошибку (MSE), сумму квадратов разностей (SSD), сумму абсолютных разностей (SAD) или другой показатель различия. Кодеры 30, 32 выбирают идентифицированный блок в смежном кадре в качестве блока предсказания. Кодер 30 базового слоя сравнивает текущий видеоблок с блоками в еще одних смежных кадрах базового слоя. Кодер 32 улучшающего слоя может сравнивать текущий видеоблок с блоками в одном или более смежных кадрах в базовом слое и/или улучшающем слое.External coding relies on temporal prediction to reduce or remove temporal redundancy within adjacent frames of a video sequence. For external coding, encoders 30, 32 perform motion estimation to track the movement of closely matching video blocks between two or more adjacent frames within the encoded element. In the case of prediction with external encoding, encoders 30, 32 may generate a temporal prediction block based on one or more previously encoded blocks from other frames within the encoded element. Encoders 30, 32 can, for example, compare the current video block with blocks in one or more adjacent video frames to identify the block in an adjacent frame that most closely matches the current video block, for example, a block in one or more adjacent frames that has the lowest mean square error ( MSE), sum of squared differences (SSD), sum of absolute differences (SAD), or another measure of difference. Encoders 30, 32 select an identified block in an adjacent frame as a prediction block. The base layer encoder 30 compares the current video block with the blocks in still adjacent frames of the base layer. Enhancement layer encoder 32 may compare the current video block with blocks in one or more adjacent frames in the base layer and / or enhancement layer.

После внутреннего или внешнего предсказания видеоблоков кодеры 30, 32 формируют остаточный блок посредством вычитания сформированного блока предсказания из первоначального кодируемого видеоблока. Таким образом, остаточный блок показывает различия между блоком предсказания и текущим кодируемым блоком. Кодеры 30, 32 могут применять процессы преобразования, квантования и статистического кодирования, чтобы дополнительно уменьшить скорость передачи битов, ассоциированную с передачей остаточного блока. Методики преобразования, которые могут включать в себя дискретное косинусное преобразование (DCT), целочисленное преобразование, вейвлетное преобразование, направленное преобразование или другую операцию преобразования, заменяют множество значений разности пикселей на остаточные коэффициенты преобразования, которые представляют энергию значений разности пикселей в частотной области. Кодеры 30, 32 применяют квантование к остаточным коэффициентам преобразования, что обычно влечет за собой процесс, который ограничивает количество битов, ассоциированных с каким-либо заданным коэффициентом. Кодеры 30, 32 сканируют двумерный остаточный блок, чтобы сформировать одномерный вектор коэффициентов, и статистически кодируют вектор коэффициентов, чтобы дополнительно сжать остаточные коэффициенты. Статистическое кодирование может, например, включать в себя кодирование с переменной длиной (VLC), арифметическое кодирование, кодирование с фиксированной длиной, контекстно-адаптивное кодирование VLC (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и/или другие методики статистического кодирования.After internal or external prediction of the video blocks, encoders 30, 32 form a residual block by subtracting the generated prediction block from the original encoded video block. Thus, the residual block shows the differences between the prediction block and the current encoded block. Encoders 30, 32 may apply transform, quantization, and statistical encoding processes to further reduce the bit rate associated with transmitting the residual block. Conversion techniques, which may include discrete cosine transform (DCT), integer transform, wavelet transform, directional transform, or other transform operation, replace a plurality of pixel difference values with residual transform coefficients that represent the energy of pixel difference values in the frequency domain. Encoders 30, 32 apply quantization to the residual transform coefficients, which usually entails a process that limits the number of bits associated with any given coefficient. Encoders 30, 32 scan a two-dimensional residual block to form a one-dimensional coefficient vector, and statistically encode the coefficient vector to further compress the residual coefficients. Statistical coding may, for example, include variable length coding (VLC), arithmetic coding, fixed-length coding, VLC context adaptive coding (CAVLC), context adaptive binary arithmetic coding (CABAC) and / or other statistical coding techniques .

Масштабируемость отношения сигнала к шуму (SNR) может быть достигнута посредством остаточного квантования. В частности, кодер 30 базового слоя может квантовать остаточные коэффициенты преобразования с использованием первого параметра квантования (QP), и кодер 32 улучшающего слоя может квантовать остаточные коэффициенты преобразования с использованием второго параметра QP. В стандарте ITU-T H.264/MPEG-4, часть 10, AVC большие параметры QP обычно приводят к тому, что видеоданные кодируются с более низким качеством с помощью меньшего количества битов, в то время как меньшие параметры QP приводят к тому, что видеоданные кодируются с более высоким качеством с помощью большего количества битов. Таким образом, кодер 30 базового слоя, который кодирует видеоданные на минимальном уровне качества, может квантовать коэффициенты базового слоя с использованием большего значения параметра QP, чем значение параметра QP, используемое кодером 32 улучшающего слоя для квантования коэффициентов улучшающего слоя. В результате квантованные остаточные коэффициенты преобразования кодера 30 базового слоя представляют видеопоследовательность с первым качеством, и квантованные остаточные коэффициенты преобразования кодера улучшающего слоя представляют добавочные коэффициенты или уточнения к существующим коэффициентам видеопоследовательности, которые при их комбинировании с базовым слоем увеличивают качество видеопоследовательности до второго, более высокого качества.Signal to noise ratio scalability (SNR) can be achieved through residual quantization. In particular, the base layer encoder 30 may quantize the residual transform coefficients using the first quantization parameter (QP), and the enhancement layer encoder 32 may quantize the residual transform coefficients using the second QP parameter. In ITU-T H.264 / MPEG-4 Part 10, AVC, large QP parameters typically result in lower quality video encoded with fewer bits, while lower QP parameters result in lower QP video data is encoded with higher quality using more bits. Thus, the base layer encoder 30, which encodes the video data at a minimum quality level, can quantize the base layer coefficients using a larger QP parameter value than the QP parameter value used by the enhancement layer encoder 32 to quantize the enhancement layer coefficients. As a result, the quantized residual transform coefficients of the base layer encoder 30 represent the video sequence with the first quality, and the quantized residual transform coefficient of the enhancement layer encoder represents additional coefficients or refinements to the existing video sequence coefficients, which, when combined with the base layer, increase the quality of the video sequence to a second, higher quality .

Каждый из кодеров 30, 32 принимает одномерный вектор коэффициентов, который представляет квантованные остаточные коэффициенты преобразования базового слоя и улучшающего слоя соответственно. Другими словами, кодер 30 базового слоя принимает вектор коэффициентов базового слоя, и кодер 32 улучшающего слоя принимает вектор коэффициентов соответствующего улучшающего слоя. Хотя кодеры 30, 32 принимают одинаковые первоначальные видеоданные, векторы коэффициентов могут быть различными. Это может быть вследствие того, что кодер 30 базового слоя и кодер 32 улучшающего слоя формируют разные блоки предсказания, например кодер 30 базового слоя формирует блок предсказания из одного или более ранее закодированных блоков базового слоя, а кодер 32 улучшающего слоя формирует блок предсказания из одного или более ранее закодированных блоков базового слоя и блоков улучшающего слоя.Each of the encoders 30, 32 receives a one-dimensional coefficient vector that represents the quantized residual transform coefficients of the base layer and enhancement layer, respectively. In other words, the base layer encoder 30 receives the coefficient vector of the base layer, and the enhancement layer encoder 32 receives the coefficient vector of the corresponding enhancement layer. Although encoders 30, 32 receive the same initial video data, coefficient vectors may be different. This may be due to the fact that the base layer encoder 30 and the enhancement layer encoder 32 form different prediction blocks, for example, the base layer encoder 30 generates a prediction block from one or more previously encoded base layer blocks, and the enhancement layer encoder 32 forms a prediction block from one or more previously encoded blocks of the base layer and blocks of the enhancement layer.

Каждый из кодера 30 базового слоя и кодера 32 улучшающего слоя кодирует соответствующие векторы коэффициентов для формирования битового потока базового слоя и по меньшей мере одного битового потока улучшающего слоя соответственно. В соответствии с методиками этого раскрытия кодер 30 базового слоя и кодер 32 улучшающего слоя кодируют соответствующие векторы коэффициентов с использованием разных методик кодирования. Кодер 30 базового слоя может кодировать вектор коэффициентов с использованием процесса с множеством проходов кодирования, в котором кодер 30 базового слоя анализирует вектор коэффициентов по меньшей мере во время одного прохода кодирования и кодирует вектор коэффициентов по меньшей мере во время одного последующего прохода кодирования на основе анализа. В одном случае кодер 30 базового слоя может кодировать квантованные остаточные коэффициенты преобразования вектора коэффициентов базового слоя в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Кодирование CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, может кодировать вектор коэффициентов базового слоя с использованием множества проходов кодирования.Each of the base layer encoder 30 and the enhancement layer encoder 32 encodes corresponding coefficient vectors to form a base layer bitstream and at least one enhancement layer bitstream, respectively. In accordance with the techniques of this disclosure, the base layer encoder 30 and the enhancement layer encoder 32 encode the respective coefficient vectors using different encoding techniques. The base layer encoder 30 may encode the coefficient vector using a multi-coding pass process in which the base layer encoder 30 analyzes the coefficient vector at least during one coding pass and encodes the coefficient vector during at least one subsequent coding pass based on the analysis. In one case, the base layer encoder 30 may encode the quantized residual transform coefficients of the base layer coefficient vector in accordance with CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC. CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC, can encode the base layer coefficient vector using multiple coding passes.

Во время первого прохода кодирования кодер 30 базового слоя может формировать символы для представления вектора коэффициентов, по меньшей мере некоторые из которых представляют более чем один отличный от нуля коэффициент и в некоторых случаях все коэффициенты вектора коэффициентов. Кодер 30 базового слоя может, например, в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, формировать символы, которые представляют общее количество коэффициентов в векторе коэффициентов ("TotalCoeffs"), количество замыкающих единиц в векторе коэффициентов ("T1"), знаки каждой из замыкающих единиц, величины (или уровни) отличных от нуля коэффициентов, кроме замыкающих единиц, сумму всех серий ("sumRuns") и серию перед каждым отличным от нуля коэффициентом. Чтобы сформировать некоторые из символов, такие как TotalCoeff и sumRuns, кодер 30 базового слоя может проанализировать весь вектор коэффициентов.During the first encoding pass, the base layer encoder 30 may generate symbols to represent a coefficient vector, at least some of which represent more than one non-zero coefficient, and in some cases all coefficients of the coefficient vector. The base layer encoder 30 may, for example, in accordance with CAVLC coding, as defined in H.264 / MPEG-4, part 10, AVC, generate symbols that represent the total number of coefficients in the coefficient vector ("TotalCoeffs"), the number of trailing units in the coefficient vector ("T1"), signs of each of the trailing units, values (or levels) of non-zero coefficients, except for trailing units, the sum of all series ("sumRuns") and the series before each non-zero coefficient. To form some of the symbols, such as TotalCoeff and sumRuns, the base layer encoder 30 may analyze the entire coefficient vector.

Во время первого прохода кодирования кодер 30 базового слоя также может выбрать таблицы кодирования VLC для использования во время последующего прохода кодирования на основе анализа вектора коэффициентов. В некоторых случаях кодер 30 базового слоя может выбрать таблицы кодирования VLC для использования во время последующего (например, второго) прохода кодирования на основе символов, сформированных во время первого прохода кодирования. Например, кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs), поскольку между этими двумя значениями имеется некоторое взаимоотношение. В частности, по мере увеличения значения TotalCoeffs значение sumRuns уменьшается, и по мере уменьшения значения TotalCoeffs значение sumRuns увеличивается. Напомним, что выбор таблицы кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs) может позволить кодеру 30 базового слоя выбрать таблицу кодирования VLC, которая более эффективно кодирует символ sumRuns. Аналогичный выбор таблицы кодирования VLC может быть выполнен для других символов, которые должны быть закодированы, или с использованием других собранных статистических данных.During the first coding pass, the base layer encoder 30 may also select VLC coding tables for use during the subsequent coding pass based on the analysis of the coefficient vector. In some cases, the base layer encoder 30 may select VLC coding tables for use during a subsequent (eg, second) coding pass based on the symbols generated during the first coding pass. For example, the base layer encoder 30 may select a VLC coding table to use when encoding the sumRuns symbol based on the total number of coefficients in the block (TotalCoeffs), since there is some relationship between the two values. In particular, as the value of TotalCoeffs increases, the value of sumRuns decreases, and as the value of TotalCoeffs decreases, the value of sumRuns increases. Recall that selecting a VLC coding table to use when encoding a sumRuns symbol based on the total number of coefficients in a block (TotalCoeffs) may allow the base layer encoder 30 to select a VLC coding table that encodes the sumRuns symbol more efficiently. A similar selection of the VLC coding table can be made for other characters to be encoded, or using other collected statistics.

Кодер 30 базового слоя во время второго или другого последующего прохода кодирования кодирует символ, который представляет общее количество отличных от нуля коэффициентов в векторе коэффициентов (TotalCoeff), и символ, который представляет количество замыкающих единиц (обозначаемых как T1). Количество замыкающих единиц представляет собой количество коэффициентов с величиной, равной единице, которые появляются в векторе коэффициентов прежде, чем появится коэффициент с величиной больше единицы, когда вектор коэффициентов читается в обратном порядке, то есть начиная с конца вектора коэффициентов. Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символов TotalCoeff и T1 на основе предсказанного количества отличных от нуля коэффициентов и кодировать символы TotalCoeff и T1 с использованием выбранной таблицы кодирования VLC. Выбор таблицы кодирования VLC для использования при кодировании символов TotalCoeff и T1 на основе предсказанного количества отличных от нуля коэффициентов может позволить кодеру 30 базового слоя выбрать таблицу кодирования VLC, которая более эффективно кодирует символы TotalCoeff и T1. Таким образом, разные таблицы кодирования VLC могут быть более эффективными для разного предсказанного количества отличных от нуля коэффициентов. В одном примере кодер 30 базового слоя может предсказать количество отличных от нуля коэффициентов в текущем блоке на основе количества отличных от нуля коэффициентов одного или более ранее закодированных видеоблоков, например верхнего соседнего видеоблока и левого соседнего видеоблока.The base layer encoder 30 during the second or other subsequent coding pass encodes a character that represents the total number of non-zero coefficients in the coefficient vector (TotalCoeff), and a character that represents the number of trailing units (denoted as T1). The number of trailing units is the number of coefficients with a value equal to one that appear in the coefficient vector before a coefficient with a value greater than one appears when the coefficient vector is read in the reverse order, that is, starting from the end of the coefficient vector. The base layer encoder 30 may select a VLC coding table for use in encoding the TotalCoeff and T1 symbols based on the predicted number of non-zero coefficients and encode the TotalCoeff and T1 symbols using the selected VLC coding table. Selecting a VLC coding table for use in encoding the TotalCoeff and T1 symbols based on the predicted number of non-zero coefficients may allow the base layer encoder 30 to select a VLC coding table that more efficiently encodes the TotalCoeff and T1 symbols. Thus, different VLC coding tables may be more efficient for different predicted numbers of non-zero coefficients. In one example, the base layer encoder 30 may predict the number of non-zero coefficients in the current block based on the number of non-zero coefficients of one or more previously encoded video blocks, for example, an upper neighboring video block and a left neighboring video block.

Кодер 30 базового слоя может кодировать знаки каждой из замыкающих единиц. Например, кодер 30 базового слоя для каждой из замыкающих единиц может кодировать '1', если знак замыкающей единицы положителен, и кодировать '0', если знак замыкающей единицы отрицателен. Таким образом, кодер 30 базового слоя может не нуждаться в выполнении выбора таблицы кодирования VLC для знаков. Кодер 30 базового слоя может кодировать величины отличных от нуля коэффициентов, кроме замыкающих единиц. Кодер 30 базового слоя может кодировать уровни отличных от нуля коэффициентов с использованием таблицы кодирования VLC, кодирования с фиксированной длиной или другого типа статистического кодирования. Например, кодер 30 базового слоя может кодировать уровни отличных от нуля коэффициентов с использованием двоичного кодирования.The base layer encoder 30 may encode the characters of each of the trailing units. For example, the base layer encoder 30 for each of the trailing units may encode '1' if the character of the trailing unit is positive, and encode '0' if the character of the trailing unit is negative. Thus, the base layer encoder 30 may not need to select a VLC coding table for characters. The base layer encoder 30 may encode values of non-zero coefficients other than trailing units. The base layer encoder 30 may encode levels of non-zero coefficients using a VLC coding table, fixed-length coding, or another type of statistical coding. For example, base layer encoder 30 may encode levels of non-zero coefficients using binary coding.

Кодер 30 базового слоя может кодировать символ, который представляет количество нулевых коэффициентов, которые находятся в векторе коэффициентов перед последним отличным от нуля коэффициентом (sumRuns). Как описано выше, кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs), поскольку между этими двумя значениями имеется некоторое взаимоотношение.The base layer encoder 30 may encode a symbol that represents the number of zero coefficients that are in the coefficient vector before the last nonzero coefficient (sumRuns). As described above, the base layer encoder 30 may select a VLC coding table for use in encoding the sumRuns symbol based on the total number of coefficients in the block (TotalCoeffs), since there is some relationship between the two values.

Кодер 30 базового слоя может кодировать серии (или длины серий), которые находятся перед каждым отличным от нуля коэффициентом, начиная с последнего отличного от нуля коэффициента вектора коэффициентов. Длины серий - это количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту. Таким образом, кодер 30 базового слоя может сначала кодировать длину серии (то есть количество нулевых коэффициентов) перед последним отличным от нуля коэффициентом вектора коэффициентов, затем длину серии перед предыдущим отличным от нуля коэффициентом и так далее, пока не будет закодирована длина серии перед первым отличным от нуля коэффициентом вектора коэффициентов.The base layer encoder 30 may encode the series (or series lengths) that are in front of each non-zero coefficient, starting from the last non-zero coefficient vector coefficient. Series lengths are the number of zero coefficients that precede a non-zero coefficient. Thus, the base layer encoder 30 may first encode the series length (i.e., the number of zero coefficients) before the last nonzero coefficient of the coefficient vector, then the series length before the previous nonzero coefficient, and so on, until the series length is encoded before the first excellent from zero by the coefficient of the coefficient vector.

Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании каждой из длин серий. Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании текущего значения серии на основе символа суммы серий (sumRuns) и суммы серий, закодированной до текущего момента. В качестве примера, если вектор коэффициентов имеет сумму серий (sumRuns), равную восьми, и количество серий, закодированных перед последним закодированным отличным от нуля коэффициентом, было равно шести, то все остальные серии должны быть равны нулю, единице или двум. Поскольку возможная серия постепенно становится более короткой по мере кодирования каждой добавочной серии, кодер 30 базового слоя может выбирать более эффективные таблицы кодирования VLC для сокращения количества битов, используемых для представления серий.The base layer encoder 30 may select a VLC coding table for use in encoding each of the series lengths. The base layer encoder 30 may select a VLC coding table to use when encoding the current series value based on the series sum symbol (sumRuns) and the series sum encoded up to the present moment. As an example, if the coefficient vector has a sum of series (sumRuns) equal to eight, and the number of series encoded before the last encoded nonzero coefficient was six, then all other series should be zero, one, or two. As the possible series gradually becomes shorter as each additional series is encoded, the base layer encoder 30 may select more efficient VLC encoding tables to reduce the number of bits used to represent the series.

В этом методе кодер 30 базового слоя выполняет кодирование с множеством проходов для кодирования коэффициентов базового слоя, включая в себя первый проход для анализа вектора коэффициентов остаточного блока базового слоя, например, для формирования символов и/или выбора таблиц кодирования VLC и второй проход кодирования для кодирования вектора коэффициентов на основе этого анализа. Хотя кодер 30 базового слоя описывается выше как кодирующий квантованные остаточные коэффициенты преобразования с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, кодер 30 базового слоя может использовать другие методологии кодирования для кодирования квантованных остаточных коэффициентов преобразования.In this method, the base layer encoder 30 performs multi-pass coding for encoding the coefficients of the base layer, including the first pass for analyzing the coefficient vector of the residual block of the base layer, for example, to generate characters and / or select VLC coding tables and a second coding pass for coding coefficient vectors based on this analysis. Although the base layer encoder 30 is described above as encoding the quantized residual transform coefficients using CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC, the base layer encoder 30 may use other encoding methodologies to encode the quantized residual transform coefficients .

Кодер 32 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования улучшающего слоя, которые могут иметь форму вектора коэффициентов. Кодер 32 улучшающего слоя может формировать квантованные остаточные коэффициенты, которые отличаются от квантованных остаточных коэффициентов базового слоя. Квантованные остаточные коэффициенты улучшающего слоя могут отличаться от квантованных остаточных коэффициентов базового слоя вследствие использования другого параметра QP во время квантования. Вдобавок, квантованные остаточные коэффициенты преобразования могут отличаться от квантованных остаточных коэффициентов преобразования базового слоя, поскольку остаточный блок представляет различие между первоначальным видеоблоком и блоком предсказания, образованный с использованием ранее закодированных блоков, которые формируют базовый слой и улучшающий слой. Остаточный блок базового слоя представляет собой разность между первоначальным видеоблоком и блоком предсказания, сформированным с использованием только ранее закодированных блоков из базового слоя. Таким образом, улучшающий слой может включать в себя добавочные коэффициенты и/или уточнения к существующим коэффициентам. В этом смысле квантованные остаточные коэффициенты преобразования видеоблока в улучшающем слое представляют собой уточнения к видеоблоку, закодированному с первым качеством в базовом слое, и при их добавлении к базовому слою предоставляют более высококачественные видеоданные.Enhancement layer encoder 32 encodes the quantized residual enhancement layer transform coefficients, which may be in the form of a coefficient vector. Enhancement layer encoder 32 may generate quantized residual coefficients that differ from the quantized residual coefficients of the base layer. The quantized residual coefficients of the enhancement layer may differ from the quantized residual coefficients of the base layer due to the use of another QP parameter during quantization. In addition, the quantized residual transform coefficients may differ from the quantized residual transform coefficients of the base layer, since the residual block represents the difference between the original video block and the prediction block formed using previously encoded blocks that form the base layer and the enhancement layer. The residual block of the base layer is the difference between the original video block and the prediction block formed using only previously encoded blocks from the base layer. Thus, the enhancement layer may include additional coefficients and / or refinements to existing coefficients. In this sense, the quantized residual transform coefficients of the video block in the enhancement layer are refinements to the video block encoded with the first quality in the base layer and, when added to the base layer, provide higher quality video data.

Кодер 32 улучшающего слоя может отбросить один или более квантованных остаточных коэффициентов вектора коэффициентов во время кодирования в зависимости от доступной скорости передачи битов. Например, кодер 32 улучшающего слоя может отбросить коэффициенты, соответствующие базисным функциям высокочастотного преобразования, например коэффициенты, расположенные в конце вектора коэффициентов, когда сканирование коэффициентов выполняется с использованием зигзагообразного сканирования, как проиллюстрировано на Фиг.3. Кодирование квантованных остаточных коэффициентов в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, может не позволить кодеру 32 улучшающего слоя отказаться от коэффициентов, поскольку по меньшей мере некоторые из символов, которые должны быть закодированы, например символы TotalCoeffs и sumRuns, ссылаются на все коэффициенты в блоке. Если бы кодер 32 улучшающего слоя отбрасывал один или более коэффициентов вектора коэффициентов, принятая информация была бы избыточна, что привело бы к более низкой эффективности кодирования. Кроме того, поскольку декодер должен принять серии для всех отличных от нуля коэффициентов в блоке, чтобы суметь должным образом декодировать позицию каждого коэффициента при зигзагообразном сканировании при кодировании с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, кодер 32 улучшающего слоя может не иметь возможности отбрасывать коэффициенты из вектора коэффициентов улучшающего слоя.Enhancement layer encoder 32 may discard one or more quantized residual coefficients of the coefficient vector during encoding, depending on the available bit rate. For example, enhancement layer encoder 32 may discard coefficients corresponding to the base functions of the high frequency conversion, for example, coefficients located at the end of the coefficient vector when coefficient scanning is performed using a zigzag scan, as illustrated in FIG. 3. The encoding of the quantized residual coefficients in accordance with the CAVLC encoding, as defined in the H.264 / MPEG-4 standard, part 10, AVC, may not allow the enhancement layer encoder 32 to reject the coefficients, since at least some of the symbols to be encoded , for example, the symbols TotalCoeffs and sumRuns, refer to all the coefficients in the block. If the enhancement layer encoder 32 discarded one or more coefficients of the coefficient vector, the received information would be redundant, which would lead to lower coding efficiency. In addition, since the decoder must accept the series for all non-zero coefficients in the block, in order to be able to properly decode the position of each coefficient in a zigzag scan when encoding using CAVLC encoding as defined in the H.264 / MPEG-4 standard, part 10, AVC, enhancement layer encoder 32 may not be able to discard coefficients from the coefficient vector of the enhancement layer.

Таким образом, кодер 32 улучшающего слоя кодирует коэффициенты улучшающего слоя или слоев в соответствии с методиками кодирования этого раскрытия. Кодер 32 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования вектора коэффициентов в одном проходе кодирования. Другими словами, кодер 32 улучшающего слоя не выполняет первый проход для анализа вектора коэффициентов и последующего кодирования символов во время второго прохода на основе этого анализа. Вместо этого кодер 32 улучшающего слоя начинает с начала вектора коэффициентов и кодирует каждый из отличных от нуля коэффициентов один за другим в одном проходе кодирования. В этом способе кодер 32 улучшающего слоя может закодировать каждый из отличных от нуля коэффициентов без анализа последующих коэффициентов в векторе коэффициентов, то есть не зная никаких последующих коэффициентов вектора коэффициентов.Thus, the enhancement layer encoder 32 encodes the coefficients of the enhancement layer or layers in accordance with the coding techniques of this disclosure. Enhancement layer encoder 32 encodes the quantized residual transform coefficients of the coefficient vector in a single coding pass. In other words, the enhancement layer encoder 32 does not perform the first pass to analyze the coefficient vector and then encode the symbols during the second pass based on this analysis. Instead, the enhancement layer encoder 32 starts at the beginning of the coefficient vector and encodes each of the non-zero coefficients one after the other in one coding pass. In this method, the enhancement layer encoder 32 may encode each of the non-zero coefficients without analyzing subsequent coefficients in the coefficient vector, that is, not knowing any subsequent coefficients of the coefficient vector.

В одном аспекте кодер 32 улучшающего слоя для каждого из отличных от нуля коэффициентов может закодировать символ, указывающий, что в векторе коэффициентов имеется по меньшей мере один оставшийся отличный от нуля коэффициент. Например, символ может являться символом конца блока (EOB). Кодер 32 улучшающего слоя может закодировать символ с использованием единственного бита. Например, кодер 32 улучшающего слоя может закодировать ноль, когда имеется по меньшей мере один оставшийся отличный от нуля коэффициент, например по меньшей мере текущий отличный от нуля коэффициент, и закодировать единицу, когда больше нет оставшихся отличных от нуля коэффициентов.In one aspect, the enhancement layer encoder 32 for each of the non-zero coefficients may encode a symbol indicating that there is at least one remaining non-zero coefficient in the coefficient vector. For example, a character may be a block end character (EOB). Enhancement layer encoder 32 may encode a symbol using a single bit. For example, enhancement layer encoder 32 may encode zero when there is at least one remaining non-zero coefficient, for example at least the current non-zero coefficient, and encode one when there are no more non-zero coefficients remaining.

После символа EOB каждого коэффициента кодер 32 улучшающего слоя кодирует серию перед текущим отличным от нуля коэффициентом. Как описано выше, серия представляет количество нулевых коэффициентов, которые находятся между предыдущим отличным от нуля коэффициентом вектора коэффициентов или началом вектора коэффициентов в случае первого отличного от нуля коэффициента и текущим отличным от нуля коэффициентом. Кодер 32 улучшающего слоя может закодировать серии с использованием единственной таблицы кодирования VLC. В одном случае кодер 32 улучшающего слоя может закодировать серии с использованием таблицы кодирования VLC, используемой при кодировании CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, чтобы закодировать символ sumRuns, когда символ TotalCoeffs равен единице. Другими словами, кодер 32 улучшающего слоя может многократно использовать одну из таблиц кодирования VLC, уже поддерживаемых видеокодером 20. В других случаях кодер 32 улучшающего слоя может использовать одну из других таблиц кодирования VLC, уже поддерживаемых видеокодером 20, для кодирования серий. В качестве альтернативы, кодер 32 улучшающего слоя может поддерживать отдельную таблицу кодирования VLC, специально созданную для кодирования серий вектора коэффициентов улучшающего слоя. В любом случае кодер 32 улучшающего слоя может не нуждаться в адаптивном выборе таблицы кодирования VLC для использования для кодирования серий. Вместо этого кодер 32 улучшающего слоя может использовать единственную таблицу кодирования VLC, тем самым избавляя от необходимости первого прохода для накопления статистических данных, используемых для выбора таблицы кодирования VLC.After the EOB symbol of each coefficient, the enhancement layer encoder 32 encodes a series before the current non-zero coefficient. As described above, the series represents the number of zero coefficients that are between the previous non-zero coefficient of the coefficient vector or the beginning of the coefficient vector in the case of the first non-zero coefficient and the current non-zero coefficient. Enhancement layer encoder 32 may encode series using a single VLC coding table. In one case, enhancement layer encoder 32 may encode series using the VLC coding table used in CAVLC encoding as defined in H.264 / MPEG-4, part 10, AVC to encode the sumRuns symbol when the TotalCoeffs symbol is one. In other words, enhancement layer encoder 32 may reuse one of the VLC coding tables already supported by video encoder 20. In other cases, enhancement layer encoder 32 may use one of the other VLC coding tables already supported by video encoder 20 to encode series. Alternatively, enhancement layer encoder 32 may support a separate VLC coding table specifically designed to encode series of coefficient layer coefficient vector vectors. In either case, the enhancement layer encoder 32 may not need to adaptively select a VLC coding table to use for series coding. Instead, the enhancement layer encoder 32 may use a single VLC coding table, thereby eliminating the need for a first pass to accumulate statistics used to select the VLC coding table.

После кодирования серий для каждого коэффициента кодер 32 улучшающего слоя кодирует знак отличного от нуля коэффициента. Кодер 32 улучшающего слоя, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. Кодер 32 улучшающего слоя может корректировать величину отличных от нуля коэффициентов посредством установки величин отличных от нуля коэффициентов равными единице. В некоторых случаях кодер 32 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов. В этом методе кодер 32 улучшающего слоя может ограничить величину отличных от нуля коэффициентов единицей. Тогда устройство 14 адресата сконфигурировано с возможностью декодировать все отличные от нуля коэффициенты, идентифицированные в уточнениях, как имеющие величину, равную единице. Отсутствие кодирования величин коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.After encoding the series for each coefficient, the enhancement layer encoder 32 encodes the sign of a non-zero coefficient. Enhancement layer encoder 32, for example, may encode '1' if the sign of a non-zero coefficient is positive, and encode '0' if the sign of a non-zero coefficient is negative. Enhancement layer encoder 32 may correct non-zero coefficients by setting non-zero coefficients to unity. In some cases, the enhancement layer encoder 32 may not encode non-zero coefficients. In this method, an enhancement layer encoder 32 may limit the value of non-zero coefficients to unity. Then the destination device 14 is configured to decode all non-zero coefficients identified in the refinements as having a value equal to one. The lack of coding of the coefficient values of the enhancement layer may lead to some loss of the peak signal to noise ratio (PSNR), but reduces the number of bits used to code the coefficients.

В этом методе кодер 32 улучшающего слоя может закодировать коэффициенты битового потока улучшающего слоя в единственном проходе, например, не зная каких-либо последующих коэффициентов в векторе коэффициентов. Поскольку кодер 32 улучшающего слоя не должен анализировать вектор коэффициентов, например формировать символы, представляющие более одного отличного от нуля коэффициента вектора или выбирать таблицы кодирования VLC для кодирования символов, выполняется только один проход кодирования. Традиционные кодеры обычно выполняют по меньшей мере два прохода; (1) первый проход для анализа вектора коэффициентов и (2) второй проход для кодирования вектора коэффициентов на основе анализа. Вдобавок, кодер 32 улучшающего слоя может закодировать коэффициенты улучшающего слоя с использованием единственной таблицы кодирования VLC, тем самым избавляя от необходимости выполнять проход кодирования для образования символов для использования при адаптивном выборе таблиц. Таким образом, кодер 32 улучшающего слоя может уменьшить сложность кодирования, задержку кодирования и требования к памяти. В этом методе методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию коэффициентов улучшающего слоя без хранения и получения доступа к информации коэффициентов базового слоя, что дополнительно уменьшает вычислительную сложность и требования к памяти.In this method, the enhancement layer encoder 32 may encode the coefficients of the enhancement layer bitstream in a single pass, for example, without knowing any subsequent coefficients in the coefficient vector. Since the enhancement layer encoder 32 does not have to analyze the coefficient vector, for example, generate symbols representing more than one non-zero vector coefficient or select VLC coding tables for character encoding, only one coding pass is performed. Traditional encoders typically perform at least two passes; (1) a first pass for analyzing the coefficient vector; and (2) a second pass for encoding the coefficient vector based on the analysis. In addition, the enhancement layer encoder 32 can encode the enhancement layer coefficients using a single VLC coding table, thereby eliminating the need to perform an encoding pass to form characters for use in adaptive table selection. Thus, enhancement layer encoder 32 can reduce encoding complexity, encoding delay, and memory requirements. In this method, the statistical coding techniques of this disclosure may in addition lead to coding the coefficients of the enhancement layer without storing and gaining access to the information of the coefficients of the base layer, which further reduces the computational complexity and memory requirements.

Устройство 12 источника передает закодированные видеоданные устройству 14 адресата через передатчик 22. Устройство 14 адресата может включать в себя приемник 24, видеодекодер 26 и устройство 28 отображения. Приемник 24 принимает закодированный битовый поток видео от устройства 12 источника через канал 16. Как описано выше, закодированный битовый поток видео включает в себя битовый поток базового слоя и один или более битовых потоков улучшающего слоя. Видеодекодер 26 декодирует базовый слой и, если это доступно, один или более улучшающих слоев для получения видеоданных.The source device 12 transmits the encoded video data to the destination device 14 through the transmitter 22. The destination device 14 may include a receiver 24, a video decoder 26, and a display device 28. The receiver 24 receives the encoded video bitstream from the source device 12 through channel 16. As described above, the encoded video bitstream includes a base layer bitstream and one or more enhancement layer bit streams. Video decoder 26 decodes the base layer and, if available, one or more enhancement layers to obtain video data.

В частности, видеодекодер 26 включает в себя декодер 34 базового слоя и декодер 36 улучшающего слоя. Декодер 34 базового слоя декодирует битовый поток базового слоя, принятый через канал 16, чтобы получить видеоданные с первым качеством для представления на устройстве 28 отображения. Декодер 36 улучшающего слоя декодирует битовые потоки одного или более улучшающих слоев для получения добавочных видеоданных, например уточнений, которые увеличивают качество декодированных видеоданных до второго, более высокого качества. Напомним, что количество улучшающих слоев, например один, два, три или больше, принятых устройством 14 адресата, может зависеть от условий канала или других ограничений. Вдобавок, количество принятых улучшающих слоев, обработанных декодером 36 улучшающего слоя, может зависеть от ограничений декодера. В общем случае кодирование и декодирование базового слоя в комбинации с выбранным количеством улучшающих слоев дают возможность возрастающего улучшения качества отношения сигнала к шуму (SNR) декодированного видео.In particular, video decoder 26 includes a base layer decoder 34 and an enhancement layer decoder 36. The base layer decoder 34 decodes the base layer bitstream received via channel 16 to obtain video data with first quality for presentation on the display device 28. Enhancement layer decoder 36 decodes the bit streams of one or more enhancement layers to obtain additional video data, such as refinements, which increase the quality of the decoded video data to a second, higher quality. Recall that the number of enhancement layers, for example, one, two, three or more, received by destination device 14 may depend on channel conditions or other restrictions. In addition, the number of received enhancement layers processed by the enhancement layer decoder 36 may depend on the limitations of the decoder. In general, encoding and decoding a base layer in combination with a selected number of enhancement layers enables an incremental improvement in signal quality to noise ratio (SNR) of the decoded video.

Декодер 34 базового слоя декодирует базовый слой для получения символов, представляющих вектор квантованных остаточных коэффициентов базового слоя. Декодер 34 базового слоя может декодировать базовый слой для получения общего количества отличных от нуля коэффициентов в блоке, количества замыкающих единиц блока, знаков замыкающих единиц, величин коэффициентов, кроме замыкающих единиц, суммы всех серий и серий перед каждым отличным от нуля коэффициентом. Декодер 34 базового слоя далее может дополнительно декодировать битовый поток базового слоя для идентификации таблиц кодирования VLC для использования при декодировании символов базового слоя. В других случаях декодер 34 базового слоя может выбрать таблицы кодирования VLC для использования на основе ранее декодированных символов. Используя декодированные символы, декодер 34 базового слоя может воссоздать вектор коэффициентов базового слоя.The base layer decoder 34 decodes the base layer to obtain symbols representing a vector of quantized residual coefficients of the base layer. The base layer decoder 34 may decode the base layer to obtain the total number of non-zero coefficients in the block, the number of trailing units of the block, the characters of trailing units, the values of the coefficients except trailing units, the sum of all series and series before each non-zero coefficient. The base layer decoder 34 may further further decode the base layer bitstream to identify VLC coding tables for use in decoding base layer symbols. In other cases, the base layer decoder 34 may select VLC coding tables for use based on previously decoded symbols. Using decoded symbols, the base layer decoder 34 can recreate the coefficient vector of the base layer.

Декодер 36 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений улучшающего слоя, например в форме вектора добавочных остаточных коэффициентов или уточнений к существующим остаточным коэффициентам. В частности, декодер 36 улучшающего слоя декодирует с использованием той же самой таблицы кодирования VLC, которая используется кодером 32 улучшающего слоя, серии и знаки коэффициентов улучшающего слоя, пока символ EOB не укажет, что больше не осталось отличных от нуля коэффициентов. Используя декодированные символы, декодер 36 улучшающего слоя воссоздает вектор коэффициентов блока улучшающего слоя.Enhancement layer decoder 36 decodes the enhancement layer bitstream to obtain enhancement layer refinements, for example in the form of a vector of incremental residual coefficients or refinements to existing residual coefficients. In particular, the enhancement layer decoder 36 decodes using the same VLC coding table that is used by the enhancement layer encoder 32, the series and signs of the enhancement layer coefficients until the EOB symbol indicates that there are no non-zero coefficients left. Using the decoded symbols, the enhancement layer decoder 36 recreates the coefficient vector of the enhancement layer block.

Декодеры 34, 36 воссоздают каждый из блоков закодированного элемента с использованием декодированных квантованных остаточных коэффициентов. После формирования векторов коэффициентов декодеры 34, 36 выполняют обратное сканирование векторов коэффициентов для формирования двумерного блока квантованных остаточных коэффициентов. Декодеры 34, 36 выполняют обратное квантование квантованных остаточных коэффициентов и применяют обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразование, обратное вейвлетное преобразование или обратное направленное преобразование к остаточным коэффициентам, подвергнутым обратному квантованию, для получения остаточного блока значений пикселей.Decoders 34, 36 recreate each of the blocks of the encoded element using decoded quantized residual coefficients. After the formation of the coefficient vectors, the decoders 34, 36 perform an inverse scan of the coefficient vectors to form a two-dimensional block of quantized residual coefficients. The decoders 34, 36 inverse quantize the quantized residual coefficients and apply the inverse transform, e.g., the inverse DCT transform, the inverse integer transform, the inverse wavelet transform, or the inverse directional transform to the residual coefficients inverse quantization to obtain a residual block of pixel values.

Декодеры 34, 36 суммируют блок предсказания, сформированный декодерами 34, 36, с остаточным блоком значений пикселей для формирования воссозданного видеоблока базового слоя и видеоблока улучшающего слоя соответственно. Видеоблоки базового и улучшающего слоев комбинируются для образования видеоблока с более высокой разрешающей способностью. Декодеры 34, 36 формируют блок предсказания таким же методом, как описано выше относительно кодеров 30, 32. Устройство 14 адресата может отобразить воссозданные видеоблоки пользователю через устройство 28 отображения. Устройство 28 отображения может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), дисплей на жидких кристаллах (LCD), плазменный дисплей, светодиодный дисплей (LRD), органический светодиодный дисплей или дисплейный блок другого типа.Decoders 34, 36 summarize the prediction block generated by the decoders 34, 36 with a residual block of pixel values to form a recreated video block of the base layer and a video block of the enhancement layer, respectively. The video blocks of the base and enhancement layers are combined to form a video block with a higher resolution. Decoders 34, 36 form a prediction block in the same manner as described above with respect to encoders 30, 32. Destination device 14 may display recreated video blocks to a user through display device 28. The display device 28 may include any of a variety of display devices, such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma display, LED display (LRD), organic LED display, or another type of display unit.

В некоторых случаях видеокодер 20 и видеодекодер 26 сконфигурированы с возможностью предоставить масштабируемые улучшающие битовые потоки, которые могут быть произвольно усечены. Таким образом, система 10 может избежать использования дискретных улучшающих слоев, которые должны быть закодированы во всей их полноте, для достижения масштабируемости. Однако в некоторых вариантах воплощения система 10 может быть сконфигурирована с возможностью поддерживать масштабируемость с использованием либо подхода масштабируемости с обобщенной степенью детализации (FGS), либо дискретных улучшающих слоев, например, на основе выбора.In some cases, video encoder 20 and video decoder 26 are configured to provide scalable enhancement bitstreams that can be arbitrarily truncated. Thus, system 10 can avoid the use of discrete enhancement layers, which must be encoded in their entirety, to achieve scalability. However, in some embodiments, system 10 may be configured to support scalability using either a generalized granularity of scale (FGS) scalability approach or discrete enhancement layers, for example, based on selection.

Устройство 12 источника и устройство 14 адресата могут работать в значительной степени симметрично. Например, каждое из устройства 12 источника и устройства адресата 14 может включать в себя компоненты кодирования и декодирования видео. Таким образом, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между устройствами 12, 14, например, для передачи видеопотоков, видеовещания или видеотелефонной связи.Source device 12 and destination device 14 can operate substantially symmetrically. For example, each of source device 12 and destination device 14 may include video encoding and decoding components. Thus, the system 10 can support one-way or two-way video transmission between devices 12, 14, for example, for transmitting video streams, video broadcasting, or video telephony.

В некоторых аспектах для видеовещания описанные в этом раскрытии методики могут быть применены к улучшенному кодированию видео стандарта H.264 для предоставления служб видео в реальном времени в системах наземной мобильной групповой рассылки мультимедиа (TM3) с использованием спецификации радиоинтерфейса только прямой линии связи (FLO), "Спецификация радиоинтерфейса только прямой линии связи для наземной мобильной групповой рассылки мультимедиа", опубликованной в июле 2007 года в качестве технического стандарта TIA-1099 ("Спецификация FLO"). То есть канал 16 связи может включать в себя беспроводной информационный канал, используемый для широковещательной беспроводной передачи видеоданных в соответствии со спецификацией FLO и т.п. Спецификация FLO включает в себя примеры, определяющие синтаксис и семантику битового потока и процессы декодирования, подходящие для радиоинтерфейса FLO.In some aspects for video broadcasting, the techniques described in this disclosure can be applied to advanced H.264 video coding for providing real-time video services in terrestrial mobile multimedia multimedia (TM3) systems using the forward link only (FLO) radio interface specification, "The specification of the air interface only direct line of communication for terrestrial mobile multimedia broadcasting", published in July 2007 as the technical standard TIA-1099 ("Specification FLO"). That is, the communication channel 16 may include a wireless data channel used for broadcast wireless transmission of video data in accordance with the FLO specification and the like. The FLO specification includes examples defining the syntax and semantics of the bitstream and decoding processes suitable for the FLO radio interface.

В качестве альтернативы, видео может широковещательно передаваться в соответствии с другими стандартами, такими как DVB-H (цифровое видеовещание для карманных устройств), ISDB-T (комплексная служба цифрового вещания - наземная) или DMB (цифровое вещание мультимедиа). Таким образом, устройство 12 источника может являться мобильным беспроводным терминалом, сервером видеопотоков или сервером видеовещания. Однако описанные в этом раскрытии методики не ограничиваются каким-либо конкретным типом системы широковещания, групповой рассылки или двухточечной передачи. В случае широковещания устройство 12 источника может передавать несколько каналов видеоданных множеству устройств адресата, каждое из которых может быть подобным устройству адресата 14 на Фиг.1. Таким образом, хотя на Фиг.1 показано одно устройство 14 адресата, для видеовещания устройство 12 источника обычно выполняет широковещание видеоконтента одновременно со многими устройствами адресата.Alternatively, video can be broadcast in accordance with other standards such as DVB-H (Digital Video Broadcasting for Handheld Devices), ISDB-T (Integrated Digital Broadcasting Service - Terrestrial) or DMB (Digital Multimedia Broadcasting). Thus, the source device 12 may be a mobile wireless terminal, a video stream server, or a video broadcast server. However, the techniques described in this disclosure are not limited to any particular type of broadcast, multicast, or point-to-point broadcast system. In the case of broadcasting, source device 12 may transmit multiple video channels to multiple destination devices, each of which may be similar to destination device 14 in FIG. Thus, although FIG. 1 shows one destination device 14, for video broadcasting, source device 12 typically broadcasts video content simultaneously with many destination devices.

В других примерах передатчик 22, канал 16 связи и приемник 24 могут быть сконфигурированы с возможностью связи в соответствии с любой проводной или беспроводной системой связи, включая в себя одну или более систем Ethernet, телефонных систем (например, POTS), кабельных систем, линий электропитания и оптоволоконных систем, и/или беспроводной системой, содержащей одну или более систем связи с множественным доступом с кодовым разделением каналов (CDMA или CDMA2000), систем связи с множественным доступом с частотным разделением каналов (FDMA), систем связи с множественны доступом с ортогональным частотным разделением каналов (OFDM), систем связи с множественным доступом с временным разделением каналов (TDMA), такой как глобальная система мобильной связи (GSM), систем пакетной радиосвязи общего назначения (GPRS) или среды GSM с улучшенной передачей данных (EDGE), систем магистральной наземной радиосвязи (TETRA), широкополосных систем с множественным доступом с кодовым разделением сигналов (WCDMA), систем высокоскоростной передачи данных 1xEV-DO (первое поколение развития систем для передачи только данных) или систем 1xEV-DO Gold Multicast, систем стандарта IEEE 402.18, систем технологии MediaFLO™, систем DMB, систем DVB-H или других схем передачи данных между двумя или более устройствами.In other examples, transmitter 22, communication channel 16, and receiver 24 may be configured to communicate in accordance with any wired or wireless communication system, including one or more Ethernet systems, telephone systems (eg, POTS), cable systems, power lines and fiber optic systems and / or a wireless system comprising one or more code division multiple access (CDMA or CDMA2000) communication systems, frequency division multiple access (FDMA) communication systems, multi-communication systems Orthogonal Frequency Division Multiple Access (OFDM), Time Division Multiple Access (TDMA) communication systems such as Global System for Mobile Communications (GSM), General Packet Radio Communication Systems (GPRS) or GSM environment with enhanced data transmission ( EDGE), terrestrial radio communication systems (TETRA), wideband code division multiple access (WCDMA) systems, 1xEV-DO high-speed data systems (the first generation of data-only systems) or systems 1xEV-DO Gold Multicast, IEEE 402.18 systems, MediaFLO ™ technology systems, DMB systems, DVB-H systems or other data transfer schemes between two or more devices.

И видеокодер 20, и видеодекодер 26 могут быть осуществлены как один или более микропроцессоров, процессоров цифровых сигналов (DSP), специализированных интегральных схем (ASIC), программируемых вентильных матриц (FPGA), дискретных логических схем, как программное обеспечение, аппаратное обеспечение, программно-аппаратное обеспечение или любые их комбинации. И видеокодер 20, и видеодекодер 26 могут быть включены в один или более кодеров или декодеров, каждый из которых может быть интегрирован как часть скомбинированного кодера/декодера (CODEC) в соответствующее мобильное устройство, абонентское устройство, устройство широковещания, сервер и т.п. Вдобавок, и устройство 12 источника, и устройство 14 адресата могут включать в себя подходящие компоненты модуляции, демодуляции, преобразования частоты, фильтрации и усиления для передачи и приема закодированного видео, и если применимо, включая в себя радиочастотные (RF) беспроводные компоненты и антенны, достаточные для поддержания беспроводной связи. Однако для простоты иллюстрации такие компоненты в целом представлены как передатчик 22 устройства 12 источника и приемник 24 устройства 14 адресата на Фиг.1.Both video encoder 20 and video decoder 26 can be implemented as one or more microprocessors, digital signal processors (DSP), specialized integrated circuits (ASIC), programmable gate arrays (FPGA), discrete logic circuits, such as software, hardware, software hardware or any combination thereof. Both video encoder 20 and video decoder 26 may be included in one or more encoders or decoders, each of which may be integrated as part of a combined encoder / decoder (CODEC) into a respective mobile device, subscriber unit, broadcast device, server, and the like. In addition, both the source device 12 and the destination device 14 may include suitable modulation, demodulation, frequency conversion, filtering, and amplification components for transmitting and receiving encoded video, and if applicable, including radio frequency (RF) wireless components and antennas, sufficient to support wireless communications. However, for simplicity of illustration, such components are generally represented as a transmitter 22 of the source device 12 and a receiver 24 of the destination device 14 in FIG.

Фиг.3 является блок-схемой, иллюстрирующей примерный кодер 30 базового слоя и кодер 32 улучшающего слоя в дополнительных подробностях. В примере на Фиг.3 кодер 30 базового слоя включает в себя модуль 33A предсказания, хранилище 35A кадров, модуль 38A преобразования, модуль 40A квантования, модуль 41A сканирования коэффициентов, модуль 42A обратного квантования, модуль 44A обратного преобразования, статистический кодер 46 базового слоя и сумматоры 48A и 48B ("сумматоры 48"). Отражение различных отличительных признаков на Фиг.3 как модулей предназначено для выделения различных функциональных аспектов проиллюстрированных устройств и не обязательно подразумевает, что такие модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Напротив, функциональные возможности, ассоциированные с одним или более элементами, могут быть интегрированы в обыкновенных или в отдельных аппаратных или программных компонентах.3 is a block diagram illustrating an exemplary base layer encoder 30 and an enhancement layer encoder 32 in further detail. In the example of FIG. 3, the base layer encoder 30 includes a prediction module 33A, a frame store 35A, a transform module 38A, a quantization module 40A, a coefficient scanning module 41A, an inverse quantization module 42A, an inverse transform module 44A, a base layer statistic encoder 46, and adders 48A and 48B ("adders 48"). The reflection of the various distinguishing features in FIG. 3 as modules is intended to highlight the various functional aspects of the illustrated devices and does not necessarily imply that such modules must be implemented using separate hardware or software components. In contrast, the functionality associated with one or more elements may be integrated into ordinary or separate hardware or software components.

Модуль 33A предсказания формирует блок предсказания с использованием внутреннего или внешнего предсказания. Блок предсказания может являться предсказанной версией текущего кодируемого видеоблока. Как описано выше, модуль 33A предсказания может формировать блок предсказания с использованием внутреннего предсказания на основе одного или более ранее закодированных блоков базового слоя в пределах того же самого кадра, что и текущий кодируемый блок. В качестве альтернативы, модуль предсказания может формировать блок предсказания с использованием внешнего предсказания на основе одного или более ранее закодированных блоков в пределах одного или более смежных кадров базового слоя. Модуль 33A предсказания может извлекать ранее закодированный блок из хранилища 35A кадров.Prediction unit 33A generates a prediction block using intra or inter prediction. The prediction block may be a predicted version of the current encoded video block. As described above, prediction unit 33A may generate a prediction block using intra prediction based on one or more previously encoded blocks of the base layer within the same frame as the current encoded block. Alternatively, the prediction module may generate a prediction block using inter prediction based on one or more previously encoded blocks within one or more adjacent frames of the base layer. Prediction unit 33A may retrieve a previously encoded block from frame storage 35A.

После внутреннего или внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, произведенного модулем предсказания 33A, из текущего видеоблока в сумматоре 48A. Остаточный блок включает в себя множество значений разностей пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицей или массивом значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After internal or external prediction of the video blocks, the base layer encoder 30 forms a residual block by subtracting the prediction block produced by the prediction unit 33A from the current video block in the adder 48A. The residual block includes a plurality of pixel difference values that determine the number of differences between the pixel values of the current video block and the pixel values of the prediction block. The residual block can be represented in the format of a two-dimensional block (for example, a two-dimensional matrix or an array of pixel values). In other words, the residual block is a two-dimensional representation of pixel values.

Модуль 38A преобразования применяет преобразование к остаточному блоку для получения остаточных коэффициентов преобразования. Модуль 38A преобразования, например, может применить преобразование DCT, целочисленное преобразование, направленное преобразование, вейвлетное преобразование или их комбинацию. После применения преобразования к остаточному блоку значений пикселей модуль 40A квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. После квантования модуль 42A обратного квантования и модуль 44A обратного преобразования могут применить обратное квантование и обратное преобразование соответственно для воссоздания остаточного блока. Сумматор 48B добавляет воссозданный остаточный блок к блоку предсказания, произведенному модулем 33 предсказания, чтобы получить воссозданный видеоблок для сохранения в хранилище 35A кадров. Воссозданный видеоблок, сохраненный в хранилище 34 кадров, может использоваться модулем 32 предсказания из кодера 30 базового слоя для внутреннего или внешнего кодирования последующего видеоблока. Вдобавок, как будет описан более подробно ниже, воссозданный видеоблок, сохраненный в хранилище 35A кадров, может использоваться модулем 33B предсказания кодера 32 улучшающего слоя для внутреннего или внешнего кодирования уточнений видеоблока в улучшающем слое.The transform unit 38A applies the transform to the residual block to obtain residual transform coefficients. Transform unit 38A, for example, may apply a DCT transform, integer transform, directional transform, wavelet transform, or a combination thereof. After applying the transform to the residual block of pixel values, the quantization unit 40A quantizes the transform coefficients to further reduce the bit rate. After quantization, the inverse quantization unit 42A and the inverse transform unit 44A may apply inverse quantization and inverse transform, respectively, to recreate the residual block. The adder 48B adds the recreated residual block to the prediction block produced by the prediction unit 33 to obtain a recreated video block for storage in the frame store 35A. The reconstructed video block stored in the frame storage 34 may be used by the prediction module 32 from the base layer encoder 30 for internal or external encoding of the subsequent video block. In addition, as will be described in more detail below, the reconstructed video block stored in the frame store 35A may be used by the prediction unit 33B of the enhancement layer encoder 32 for internally or externally encoding the refinements of the video block in the enhancement layer.

После квантования модуль 41A сканирования коэффициентов сканирует коэффициенты из двумерного формата блока в одномерный векторный формат, процесс часто называется сканированием коэффициентов. Модуль 41A сканирования коэффициентов, например, может сканировать двумерный блок коэффициентов с использованием зигзагообразного порядка сканирования, как описано в дополнительных подробностях на Фиг.7. После сканирования статистический кодер 46 базового слоя статистически кодирует коэффициенты одномерного вектора. Кодер 46 базового слоя, например, может статистически кодировать коэффициенты вектора коэффициентов с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC и подробно описано выше в отношении Фиг.2.After quantization, coefficient scanning module 41A scans the coefficients from a two-dimensional block format into a one-dimensional vector format, a process often referred to as coefficient scanning. The coefficient scanning module 41A, for example, can scan a two-dimensional block of coefficients using a zigzag scan order, as described in further detail in FIG. 7. After scanning, the statistical encoder 46 of the base layer statistically encodes the coefficients of the one-dimensional vector. The base layer encoder 46, for example, can statistically encode coefficient vector coefficients using CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC, and described in detail above with respect to FIG. 2.

Кодер 32 улучшающего слоя включает в себя модуль 33B предсказания, хранилище 35B кадров, модуль 38B преобразования, модуль 40B квантования, модуль 41B сканирования коэффициентов, модуль 42B обратного квантования, модуль 44B обратного преобразования, статистический кодер 49 улучшающего слоя и сумматоры 48C и 48D ("сумматоры 48"). Модули кодера 32 улучшающего слоя в значительной степени аналогичны модулям кодера 30 базового слоя. Поэтому будут описаны только различия.Enhancement layer encoder 32 includes prediction module 33B, frame storage 35B, transform module 38B, quantization module 40B, coefficient scanning module 41B, inverse quantization module 42B, inverse transform module 44B, enhancement layer statistical encoder 49, and adders 48C and 48D (" 48 "adders). The modules of the enhancement layer encoder 32 are substantially similar to the modules of the base layer encoder 30. Therefore, only differences will be described.

Модуль 33B предсказания кодера 32 улучшающего слоя формирует блок предсказания, который является предсказанной версией текущего видеоблока. В отличие от модуля 33 предсказания кодера 30 базового слоя, который использует только ранее закодированные блоки базового слоя для формирования блока предсказания, модуль 33B предсказания кодера 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков базового слоя и улучшающего слоя. Другими словами, модуль 33B предсказания может формировать блок предсказания с использованием воссозданного видеоблока из базового слоя и воссозданного видеоблока улучшающего слоя. Например, модуль 33B предсказания может скомбинировать воссозданный видеоблок базового слоя с воссозданным блоком улучшающего слоя, чтобы сформировать блок предсказания со вторым, более высоким качеством.Prediction unit 33B of enhancement layer encoder 32 generates a prediction block, which is a predicted version of the current video block. Unlike the prediction module 33 of the base layer encoder 30, which uses only previously encoded base layer blocks to form the prediction block, the prediction module 33B of the enhancement layer encoder 32 can generate a prediction block based on one or more previously encoded base layer blocks and the enhancement layer. In other words, the prediction unit 33B may generate a prediction block using the recreated video block from the base layer and the recreated video block of the enhancement layer. For example, prediction module 33B may combine the recreated video block of the base layer with the recreated enhancement layer block to form a prediction block with a second, higher quality.

Поскольку блок предсказания, сформированный модулем 33B предсказания, формируется на основе воссозданных видеоблоков и базового, и улучшающего слоя, остаточный блок, сформированный в сумматоре 48C, представляет различия между текущим видеоблоком и ранее закодированным блоком, созданным из базового и улучшающего слоя, то есть со вторым, более высоким визуальным качеством.Since the prediction block generated by the prediction unit 33B is formed based on recreated video blocks and the base and enhancement layers, the residual block formed in the adder 48C represents the differences between the current video block and the previously encoded block created from the base and enhancement layers, i.e., the second higher visual quality.

Хотя модуль 40B квантования кодера 32 улучшающего слоя 32 функционально аналогичен модулю 40A квантования кодера 30 базового слоя, он может использовать другой параметр QP для квантования коэффициентов преобразования. Как описано выше в отношении Фиг.2, масштабируемость отношения сигнала к шуму (SNR) может быть достигнута посредством использования разных параметров квантования. Например, когда кодер 30 базового слоя и кодер 32 улучшающего слоя работают в соответствии со стандартом H.264/MPEG-4, часть 10, AVC, модуль 40A квантования может кодировать видеоданные с использованием большего значения параметра QP, чем значение параметра QP, используемое модулем 40B квантования. В результате квантованные остаточные коэффициенты преобразования из кодера 30 базового слоя представляют видеопоследовательность с первым качеством, а квантованные остаточные коэффициенты преобразования из кодера 32 улучшающего слоя представляют добавочные коэффициенты или уточнения существующих коэффициентов видеопоследовательности, которые при их комбинировании с базовым слоем увеличивают качество видеопоследовательности до второго, более высокого визуального качества.Although the quantization module 40B of the encoder 32 of the enhancement layer 32 is functionally similar to the quantization module 40A of the base layer encoder 30, it can use another QP parameter to quantize the transform coefficients. As described above with respect to FIG. 2, signal-to-noise ratio (SNR) scalability can be achieved by using different quantization parameters. For example, when the base layer encoder 30 and the enhancement layer encoder 32 operate in accordance with the H.264 / MPEG-4 standard, part 10, AVC, the quantization module 40A may encode video using a larger QP parameter value than the QP parameter value used by the module 40B quantization. As a result, the quantized residual transform coefficients from the base layer encoder 30 represent the video sequence with the first quality, and the quantized residual transform coefficients from the enhancement layer encoder 32 represent additional coefficients or refinements of the existing video sequence coefficients, which, when combined with the base layer, increase the quality of the video sequence to a second, more high visual quality.

Кроме того, как описано подробно в отношении Фиг.2, статистический кодер 49 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования в одном проходе кодирования. Другими словами, статистический кодер 49 улучшающего слоя может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная каких-либо последующих коэффициентов вектора коэффициентов. Кодирование улучшающего слоя в одном проходе может избавить от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе этого анализа. Вместо этого статистический кодер 49 улучшающего слоя начинает с начала вектора коэффициентов и кодирует каждый из коэффициентов один за другим в одном проходе кодирования. Более подробно статистическое кодирование улучшающего слоя описывается ниже в отношении Фиг.4.In addition, as described in detail with respect to FIG. 2, the enhancement layer statistical encoder 49 encodes the quantized residual transform coefficients in a single coding pass. In other words, the enhancement layer statistic encoder 49 can encode each nonzero coefficient vector of the coefficient of the enhancement layer without knowing any subsequent coefficients of the coefficient vector. Encoding the enhancement layer in one pass can eliminate the need for the first pass to analyze the coefficient vector and the second pass to encode the coefficient vector based on this analysis. Instead, the statistical encoder 49 of the enhancement layer starts at the beginning of the coefficient vector and encodes each of the coefficients one after the other in one coding pass. In more detail, statistical coding of the enhancement layer is described below with respect to FIG. 4.

Фиг.4 является блок-схемой, иллюстрирующей примерный статистический кодер 46 базового слоя и статистический кодер 49 улучшающего слоя 49 с дополнительными подробностями. Статистический кодер 46 базового слоя может включать в себя модуль 50 анализа, множество таблиц 52A-52N кодирования VLC ("таблицы 52 кодирования VLC"), кодер 54 общего количества коэффициентов, кодер 56 замыкающих единиц (T1), кодер 58 знаков, кодер 60 величин коэффициентов, кодер 62 суммы серий и кодер 64 длин серий. Статистический кодер 49 улучшающего слоя может включать в себя кодер 66 символа EOB, кодер 68 длины серии, кодер 70 знака и таблицу 69 кодирования VLC.4 is a block diagram illustrating an exemplary statistical base layer encoder 46 and statistical encoder 49 of enhancement layer 49 with further details. The base layer statistic encoder 46 may include an analysis module 50, a plurality of VLC coding tables 52A-52N ("VLC coding tables 52"), a total coefficient encoder 54, trailing unit encoder 56 (T1), 58 character encoder, 60 value encoder 60 coefficients, encoder 62 sums of series and encoder 64 lengths of series. The enhancement layer statistical encoder 49 may include an EOB symbol encoder 66, a series length encoder 68, a character encoder 70, and a VLC coding table 69.

Статистический кодер 46 базового слоя кодирует вектор коэффициентов, представляющий видеоблок с первым качеством, посредством выполнения множества проходов кодирования. В соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, например, статистический кодер 46 базового слоя может выполнить первый проход кодирования для анализа вектора коэффициентов, например, для формирования символов, представляющих вектор коэффициентов, и/или выбора таблицы кодирования VLC, и второй проход кодирования для кодирования вектора коэффициентов на основе анализа.The base layer statistic encoder 46 encodes a coefficient vector representing a video block with a first quality by performing a plurality of coding passes. According to CAVLC coding, as defined in H.264 / MPEG-4 standard, part 10, AVC, for example, base layer statistic encoder 46 may perform a first coding pass to analyze the coefficient vector, for example, to generate symbols representing the coefficient vector, and / or selecting a VLC coding table, and a second coding pass for coding the coefficient vector based on the analysis.

В качестве примера, модуль 50 анализа из статистического кодера 46 базового слоя может проанализировать вектор коэффициентов для формирования одного или более символов, которые представляют блок коэффициентов. Модуль 50 анализа, например, в соответствии со стандартом H.264/MPEG-4, часть 10, AVC может определять общее количество коэффициентов в блоке (TotalCoeff), количество замыкающих единиц (T1), знаки замыкающих единиц, величину каждого отличного от нуля коэффициента, общую сумму серий (sumRuns) и длину серии, предшествующей каждому отличному от нуля коэффициенту. По меньшей мере некоторые из символов, например символы TotalCoeff и sumRuns, сформированные модулем 50 анализа, могут представлять все коэффициенты вектора коэффициентов. Модуль 50 анализа в других примерах может формировать больше или меньше символов.As an example, the analysis module 50 from the statistical base layer encoder 46 may analyze a coefficient vector to generate one or more symbols that represent a block of coefficients. Analysis module 50, for example, in accordance with the H.264 / MPEG-4 standard, part 10, AVC can determine the total number of coefficients in a block (TotalCoeff), the number of trailing units (T1), the characters of trailing units, the value of each non-zero coefficient , the total amount of series (sumRuns) and the length of the series preceding each non-zero coefficient. At least some of the symbols, for example, the TotalCoeff and sumRuns symbols generated by the analysis module 50, can represent all coefficients of the coefficient vector. The analysis module 50 in other examples may generate more or less characters.

Вдобавок или в качестве альтернативы модуль 50 анализа может выбирать во время первого или последующего прохода кодирования подмножества таблиц 52 кодирования VLC для использования при кодировании символов. В одном аспекте модуль 50 анализа может выбрать подмножество таблиц 52 кодирования VLC на основе сформированных символов. В качестве альтернативы модуль 50 анализа может собирать статистические данные во время анализа вектора коэффициентов для выбора подмножества таблиц 52 кодирования VLC на основе накопленных статистических данных. Например, кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs), поскольку между этими двумя значениями имеется некоторое взаимоотношение. Как будет подробно описано ниже, выбор подмножества таблиц 52 кодирования VLC на основе сформированных символов или других статистических данных может дать возможность более эффективного кодирования символов, представляющих вектор коэффициентов.In addition or alternatively, the analysis module 50 may select, during a first or subsequent coding pass, a subset of the VLC coding tables 52 for use in character coding. In one aspect, the analysis module 50 may select a subset of the VLC coding tables 52 based on the generated symbols. Alternatively, the analysis module 50 may collect statistics during the analysis of the coefficient vector to select a subset of VLC coding tables 52 based on the accumulated statistics. For example, the base layer encoder 30 may select a VLC coding table to use when encoding the sumRuns symbol based on the total number of coefficients in the block (TotalCoeffs), since there is some relationship between the two values. As will be described in detail below, the selection of a subset of VLC coding tables 52 based on the generated symbols or other statistics may enable more efficient coding of symbols representing a coefficient vector.

Статистический кодер 46 базового слоя кодирует вектор коэффициентов в течение второго или другого последующего прохода кодирования. В частности, кодер 54 общего количества коэффициентов кодирует общее количество отличных от нуля коэффициентов (TotalCoeff) в векторе коэффициентов. Кодер 54 общего количества коэффициентов может закодировать символ TotalCoeff с использованием одной из таблиц 52 кодирования VLC, выбранных на основе предсказания количества отличных от нуля коэффициентов текущего вектора коэффициентов. В одном примере предсказание количества отличных от нуля коэффициентов текущего вектора коэффициентов может быть сделано на основе количества отличных от нуля коэффициентов одного или более ранее закодированных видеоблоков, например верхнего соседнего видеоблока и левого соседнего видеоблока. В этом методе статистический декодер базового слоя может выбрать ту же самую таблицу кодирования VLC на основе ранее декодированного блока.The base layer statistic encoder 46 encodes a coefficient vector during a second or other subsequent coding pass. In particular, encoder 54 of the total number of coefficients encodes the total number of non-zero coefficients (TotalCoeff) in the coefficient vector. The total number of coefficients encoder 54 may encode the TotalCoeff symbol using one of the VLC coding tables 52 selected based on predicting the number of non-zero coefficients of the current coefficient vector. In one example, predicting the number of non-zero coefficients of the current coefficient vector can be made based on the number of non-zero coefficients of one or more previously encoded video blocks, for example, an upper neighboring video block and a left neighboring video block. In this method, a statistical base layer decoder may select the same VLC coding table based on a previously decoded block.

После того как кодер 54 общего количества коэффициентов кодирует общее количество отличных от нуля коэффициентов, кодер 56 замыкающих единиц кодирует символ замыкающих единиц. Кодер 56 замыкающих единиц может закодировать символ замыкающих единиц с использованием той же самой таблицы 52 кодирования VLC, выбранной на основе предсказанного количества отличных от нуля коэффициентов, например тем же самым методом, описанным выше в отношении кодера 54 общего количества коэффициентов.After the encoder 54 of the total number of coefficients encodes the total number of non-zero coefficients, the encoder 56 of the closing units encodes the symbol of the closing units. The closure unit encoder 56 may encode the closure unit symbol using the same VLC coding table 52 selected based on the predicted number of non-zero coefficients, for example, by the same method described above with respect to the total number of coefficients encoder 54.

Кодер 58 знаков кодирует знаки замыкающих единиц. Например, кодер 58 знаков для каждой из замыкающих единиц может закодировать '1', если знак замыкающей единицы положителен, и закодировать '0', если знак замыкающей единицы отрицателен. Кодер 60 величин коэффициентов кодирует уровни (например, величины) отличных от нуля коэффициентов, кроме замыкающих единиц. Кодер 60 величин коэффициентов может закодировать уровни отличных от нуля коэффициентов с использованием таблицы VLC кодирования с фиксированной длиной или статистического кодирования другого типа.The 58 character encoder encodes the characters of the trailing units. For example, an encoder 58 characters for each of the trailing units may encode '1' if the character of the trailing unit is positive, and encode '0' if the character of the trailing unit is negative. Coder 60 of coefficient values encodes levels (e.g., values) of non-zero coefficients, except for trailing units. Coder 60 of coefficient values may encode levels of non-zero coefficients using a fixed-length VLC coding table or other type of statistical coding.

Кодер 62 суммы серий может кодировать символ, который представляет количество нулевых коэффициентов, которые находятся в векторе коэффициентов перед последним отличным от нуля коэффициентом, то есть символ sumRuns. Кодер 62 суммы серий кодирует символ sumRuns с использованием одной из таблиц 52 кодирования VLC, выбранной на основе общего количества коэффициентов в блоке (TotalCoeffs). Напомним, что выбор таблицы кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs) может дать возможность кодеру 62 суммы серий выбрать таблицу кодирования VLC, которая более эффективно кодирует символ sumRuns.The series sum encoder 62 may encode a symbol that represents the number of zero coefficients that are in the coefficient vector before the last nonzero coefficient, that is, the sumRuns symbol. The series sum encoder 62 encodes the sumRuns symbol using one of the VLC coding tables 52 selected based on the total number of coefficients in the block (TotalCoeffs). Recall that selecting a VLC coding table to use when encoding a sumRuns symbol based on the total number of coefficients in a block (TotalCoeffs) can enable the series sum encoder 62 to select a VLC coding table that encodes the sumRuns symbol more efficiently.

Кодер 64 длин серий кодирует длины серии вектора коэффициентов. Кодер 64 длин серий может сначала закодировать длину серии последнего отличного от нуля коэффициента вектора коэффициентов, затем длину серии предыдущего отличного от нуля коэффициента, и так далее до тех пор, пока не будет закодирована длина серии первого отличного от нуля коэффициента вектора коэффициентов. Другими словами, кодер длин серий может начать кодирование с последней длины серии. Кодер 64 длин серий может закодировать каждую из длин серии с использованием таблицы 52 кодирования VLC, выбранной на основе общей суммы серий нулей вектора коэффициентов (sumRuns) и суммы серий, закодированных до текущего момента. В качестве примера, если векторы коэффициентов имеет сумму серий (sumRuns), равную восьми, и количество серий, закодированных до последнего закодированного отличного от нуля коэффициента, было равно шести, то все оставшиеся серии должны быть равны нулю, единице или двум. Поскольку возможная длина серии постепенно становится более короткой по мере кодирования каждой добавочной серии, кодер 64 длин серий может выбрать более эффективные таблицы кодирования VLC, чтобы сократить количество битов, используемых для представления серии. В этом методе таблица 52 кодирования VLC, используемая кодером 64 длины серий, может изменяться для каждой из длин серии.A series length encoder 64 encodes a series length of a coefficient vector. The series length encoder 64 may first encode the series length of the last non-zero coefficient vector coefficient, then the series length of the previous non-zero coefficient vector, and so on, until the series length of the first non-zero coefficient vector coefficient is encoded. In other words, a series length encoder can start encoding from the last series length. A series length encoder 64 may encode each of the series lengths using the VLC coding table 52 selected based on the total sum of the series of zeros of the coefficient vector (sumRuns) and the sum of the series encoded to date. As an example, if the coefficient vectors have a sum of series (sumRuns) equal to eight, and the number of series encoded to the last encoded nonzero coefficient was six, then all the remaining series should be zero, one, or two. As the possible run length gradually becomes shorter as each additional run is encoded, the run length encoder 64 may select more efficient VLC coding tables to reduce the number of bits used to represent the run. In this method, the VLC coding table 52 used by the series length encoder 64 may vary for each of the series lengths.

Статистический кодер 49 улучшающего слоя кодирует вектор коэффициентов, который представляет уточнения, например, в форме добавочных коэффициентов, или уточнения к существующим коэффициентам для видеоблока в одном проходе кодирования для образования улучшающего слоя. Как будет описано в дополнительных подробностях, устройство 12 источника в некоторых случаях может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная какие-либо последующие коэффициенты. Статистический кодер 49 улучшающего слоя может начать с начала вектора коэффициентов и закодировать каждый из коэффициентов один за другим в одном проходе кодирования. В этом методе кодер 49 улучшающего слоя кодирует один за другим коэффициенты вектора коэффициентов, не анализируя коэффициенты, которые встречаются позже в векторе коэффициентов. Кодирование улучшающего слоя в одном проходе может избавить от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе этого анализа.Enhancement layer statistical encoder 49 encodes a coefficient vector that represents refinements, for example, in the form of incremental coefficients, or refinements to existing coefficients for a video block in one coding pass to form an enhancement layer. As will be described in further detail, the source device 12 in some cases may encode each nonzero coefficient vector of the coefficients of the enhancement layer without knowing any subsequent coefficients. The enhancement layer statistical encoder 49 may start from the beginning of the coefficient vector and encode each of the coefficients one after another in one coding pass. In this method, the enhancement layer encoder 49 encodes the coefficients of the coefficient vector one after another without analyzing the coefficients that occur later in the coefficient vector. Encoding the enhancement layer in one pass can eliminate the need for the first pass to analyze the coefficient vector and the second pass to encode the coefficient vector based on this analysis.

Для каждого из отличных от нуля коэффициентов кодер 66 символа EOB кодирует символ EOB, указывающий, что в векторе коэффициентов имеется по меньшей мере один оставшийся отличный от нуля коэффициент. Например, кодер 66 символа EOB может закодировать ноль, когда имеется по меньшей мере один оставшийся ненулевой коэффициент, например по меньшей мере текущий отличный от нуля коэффициент, и закодировать единицу, когда больше нет таких оставшихся отличных от нуля коэффициентов.For each of the non-zero coefficients, the EOB symbol encoder 66 encodes an EOB symbol indicating that there is at least one remaining non-zero coefficient in the coefficient vector. For example, the EOB symbol encoder 66 may encode zero when there is at least one remaining non-zero coefficient, for example at least the current non-zero coefficient, and encode one when there are no more remaining non-zero coefficients.

После кодирования символа EOB каждого коэффициента кодер 68 длин серий кодирует длину серии, предшествующей отличному от нуля коэффициенту. Как описано выше, длина серии представляет число нулевых коэффициентов, которые предшествуют текущему отличному от нуля коэффициенту. Кодер 68 длин серий может закодировать длины серий с использованием единственной таблицы 69 кодирования VLC. В одном случае таблица 69 кодирования VLC может являться той же самой, как одна из таблиц 52 кодирования VLC из статистического кодера 46 базового слоя. В качестве альтернативы кодер 68 длин серий может поддерживать отдельную таблицу кодирования VLC, специально созданную для кодирования серии вектора коэффициентов улучшающего слоя. В любом случае кодер 68 длин серий может не нуждаться в адаптивном выборе таблицы кодирования VLC для использования для кодирования серии. Вместо этого кодер 68 длин серий может использовать единственную таблицу кодирования VLC, тем самым избавляя от необходимости первого прохода, который накапливает статистические данные, используемые для выбора таблицы VLC.After encoding the EOB symbol of each coefficient, a series length encoder 68 encodes a series length preceding a non-zero coefficient. As described above, the series length represents the number of zero coefficients that precede the current non-zero coefficient. Series length encoder 68 may encode series lengths using a single VLC coding table 69. In one case, the VLC coding table 69 may be the same as one of the VLC coding tables 52 from the statistical base layer encoder 46. Alternatively, the series length encoder 68 may support a separate VLC coding table specifically designed to encode a series of coefficient vector coefficients of the enhancement layer. In any case, the series-length encoder 68 may not need to adaptively select a VLC coding table to use for series coding. Instead, the series-length encoder 68 may use a single VLC coding table, thereby eliminating the need for a first pass that accumulates statistics used to select the VLC table.

После кодирования длины серии каждого коэффициента кодер 70 знаков кодирует знак отличного от нуля коэффициента. Кодер 70 знака, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. Статистический кодер 49 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов улучшающего слоя, что может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.After encoding the series length of each coefficient, the character encoder 70 encodes the sign of a non-zero coefficient. The sign encoder 70, for example, can encode '1' if the sign of a non-zero coefficient is positive, and encode '0' if the sign of a non-zero coefficient is negative. The enhancement layer statistical encoder 49 may not encode the nonzero coefficients of the enhancement layer, which may result in some loss of the peak signal to noise ratio (PSNR), but reduce the number of bits used to encode the coefficients.

Методики статистического кодирования этого раскрытия могут дать возможность статистическому кодеру 49 улучшающего слоя кодировать коэффициенты битового потока улучшающего слоя в одном проходе. Поскольку статистический кодер 49 улучшающего слоя не анализирует вектор коэффициентов, например, для формирования символов и/или выбора таблиц кодирования VLC, необходим только один проход кодирования. Традиционные кодеры обычно выполняют по меньшей мере два прохода: (1) первый проход для анализа вектора коэффициентов и (2) второй проход для кодирования вектора коэффициентов на основе анализа. Вдобавок, статистический кодер 49 улучшающего слоя может закодировать коэффициенты улучшающего слоя с использованием единственной таблицы кодирования VLC, тем самым избавляя от необходимости выполнять проход кодирования для выбора разнообразных таблиц кодирования VLC. В этом методе статистический кодер 49 улучшающего слоя может уменьшить сложность кодирования, задержку кодирования и требования к памяти. Кроме того, методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию коэффициентов улучшающего слоя без хранения и получения доступа к информации коэффициентов базового слоя, что дополнительно уменьшает вычислительную сложность и требования к памяти.The statistical coding techniques of this disclosure may enable the enhancement layer statistic encoder 49 to encode the bitstream coefficients of the enhancement layer in one pass. Since the statistical encoder 49 of the enhancement layer does not analyze the coefficient vector, for example, to generate symbols and / or select VLC coding tables, only one coding pass is needed. Conventional encoders typically perform at least two passes: (1) a first pass for analyzing the coefficient vector and (2) a second pass for encoding the coefficient vector based on the analysis. In addition, the enhancement layer statistic encoder 49 can encode the enhancement layer coefficients using a single VLC coding table, thereby eliminating the need to perform a coding pass to select a variety of VLC coding tables. In this method, the statistical enhancement layer encoder 49 can reduce coding complexity, coding delay, and memory requirements. In addition, the statistical coding techniques of this disclosure may in addition lead to coding the coefficients of the enhancement layer without storing and gaining access to the information of the coefficients of the base layer, which further reduces the computational complexity and memory requirements.

Фиг.5 является блок-схемой, иллюстрирующей пример декодера 34 базового слоя и декодера 36 улучшающего слоя в дополнительных подробностях. Декодер 34 базового слоя включает в себя статистический декодер 72 базового слоя, модуль 74A сканирования коэффициентов, модуль 76A обратного квантования, модуль 78A обратного преобразования, модуль 80A предсказания, хранилище 82A кадров и сумматор 84A. Декодер 34 улучшающего слоя включает в себя статистический декодер 86 улучшающего слоя, модуль 74B сканирования коэффициентов, модуль 76B обратного квантования, модуль 78B обратного преобразования, модуль 80B предсказания, хранилище 82B кадров и сумматор 84B.5 is a block diagram illustrating an example of a base layer decoder 34 and an enhancement layer decoder 36 in further detail. The base layer decoder 34 includes a statistical base layer decoder 72, coefficient scanning module 74A, inverse quantization module 76A, inverse transform module 78A, prediction module 80A, frame storage 82A, and adder 84A. Enhancement layer decoder 34 includes a statistical enhancement layer decoder 86, coefficient scanning unit 74B, inverse quantization unit 76B, inverse transform unit 78B, prediction unit 80B, frame storage 82B, and adder 84B.

Статистический декодер 72 базового слоя декодирует принятый битовый поток базового слоя для получения видеоданных с первым качеством для представления на устройстве отображения. Статистический декодер 72 базового слоя принимает битовый поток базового слоя и декодирует битовый поток базового слоя для получения остаточной информации (например, в форме одномерного вектора квантованных остаточных коэффициентов) и информации заголовка (например, в форме одного или более элементов синтаксиса заголовка). Статистический декодер 72 базового слоя выполняет функцию декодирования, взаимную по отношению к кодированию, выполненному статистическим кодером 46 базового слоя на Фиг.3 и 4.The base layer statistic decoder 72 decodes the received base layer bitstream to obtain video data with first quality for presentation on a display device. The base layer statistic decoder 72 receives the base layer bitstream and decodes the base layer bitstream to obtain residual information (for example, in the form of a one-dimensional vector of quantized residual coefficients) and header information (for example, in the form of one or more header syntax elements). The base layer statistic decoder 72 performs a decoding function that is reciprocal to the encoding performed by the base layer statistic encoder 46 in FIGS. 3 and 4.

В частности, статистический декодер 72 базового слоя декодирует базовый слой для получения символов, представляющих вектор квантованных остаточных коэффициентов базового слоя. При кодировании с использованием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, например, статистический декодер 72 базового слоя может декодировать базовый слой для получения общего количества отличных от нуля коэффициентов в блоке (TotalCoeff), количества замыкающих единиц блока (T1), знаков замыкающих единиц, величин коэффициентов кроме замыкающих единиц, суммы всех серий (sumRuns) и серий перед каждым отличным от нуля коэффициентом. В некоторых случаях таблицы кодирования VLC, выбранные для декодирования, могут быть выбраны на основе ранее декодированных блоков или ранее декодированных символов текущего блока. В других случаях статистический декодер 34 базового слоя может декодировать битовый поток базового слоя, чтобы идентифицировать таблицы кодирования VLC для использования при декодировании символов базового слоя. Используя декодированные символы, декодер 34 базового слоя может воссоздать вектор коэффициентов базового слоя.In particular, the base layer statistic decoder 72 decodes the base layer to obtain symbols representing a vector of quantized residual coefficients of the base layer. When encoding using CAVLC, as defined in H.264 / MPEG-4 standard, part 10, AVC, for example, statistical base layer decoder 72 can decode the base layer to obtain the total number of non-zero coefficients in the block (TotalCoeff), the number of trailing unit units (T1), signs of trailing units, coefficient values other than trailing units, the sum of all series (sumRuns) and series before each non-zero coefficient. In some cases, VLC coding tables selected for decoding may be selected based on previously decoded blocks or previously decoded symbols of the current block. In other cases, the base layer statistic decoder 34 may decode the base layer bitstream to identify VLC coding tables for use in decoding base layer symbols. Using decoded symbols, the base layer decoder 34 can recreate the coefficient vector of the base layer.

После формирования вектора коэффициентов модуль 74A сканирования коэффициентов выполняет обратное сканирование вектора коэффициентов для формирования двумерного блока квантованных остаточных коэффициентов. Модуль 76A обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, и модуль 78A обратного преобразования применяет обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразовывают, обратное вейвлетное преобразование или обратное направленное преобразование, к остаточным коэффициентам, подвергнутым обратному квантованию, для получения остаточного блока значений пикселей.After generating the coefficient vector, coefficient scanning module 74A performs an inverse scan of the coefficient vector to form a two-dimensional block of quantized residual coefficients. The inverse quantization unit 76A inversely quantizes the quantized residual coefficients, and the inverse transform unit 78A applies an inverse transform, such as an inverse DCT transform, an inverse integer transform, an inverse wavelet transform, or an inverse directional transform, to the residual coefficients inverse quantization to obtain a residual block of values pixels.

Модуль 80A предсказания формирует блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания. Модуль предсказания формирует блок предсказания с использованием только ранее закодированных блоков из базового слоя. Сумматор 84A суммирует блок предсказания, сформированный модулем 80A предсказания, с остаточным блоком значений пикселей, чтобы образовать воссозданный видеоблок базового слоя. Видеоблок базового слоя сохраняется в хранилище 82A кадров для использования при формировании последующих блоков предсказания.Prediction unit 80A generates a prediction block using one or more adjacent blocks within an ordinary frame in the case of intra prediction or one or more blocks within adjacent frames in the case of inter prediction. The prediction module generates a prediction block using only previously encoded blocks from the base layer. Adder 84A sums the prediction block generated by the prediction unit 80A with a residual block of pixel values to form a recreated video block of the base layer. The base layer video block is stored in frame storage 82A for use in the formation of subsequent prediction blocks.

Декодер 36 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений видеоданных, например в форме вектора добавочных остаточных коэффициентов или уточнений к существующим остаточным коэффициентам. Статистический декодер 86 улучшающего слоя декодирует с использованием той же самой таблицы кодирования VLC, которая используется статистическим кодером 49 улучшающего слоя, серии и знаки коэффициентов улучшающего слоя, пока символ EOB не укажет, что больше не осталось отличных от нуля коэффициентов. Используя декодированные символы, статистический декодер 86 улучшающего слоя воссоздает вектор коэффициентов блока улучшающего слоя. Декодированный вектор коэффициентов представляет добавочные биты, представляющие собой уточнения, которые при их комбинировании с битами базового слоя увеличивают качество декодированных видеоданных до второго, более высокого качества.Enhancement layer decoder 36 decodes the enhancement layer bitstream to obtain refinements to video data, for example in the form of a vector of incremental residual coefficients or refinements to existing residual coefficients. The enhancement layer statistical decoder 86 decodes using the same VLC coding table that is used by the enhancement layer statistical encoder 49, the series and signs of the enhancement layer coefficients until the EOB symbol indicates that there are no non-zero coefficients left. Using the decoded symbols, the statistical enhancement layer decoder 86 recreates the coefficient vector of the enhancement layer block. The decoded coefficient vector represents incremental bits, which are refinements that, when combined with the bits of the base layer, increase the quality of the decoded video data to a second, higher quality.

После формирования вектора коэффициентов модуль 74B сканирования коэффициентов выполняет обратное сканирование вектора коэффициентов для формирования двумерного блока квантованных остаточных коэффициентов. Модуль 76B обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, и модуль 78B обратного преобразования применяет обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразование, обратное вейвлетное преобразование или обратное направленное преобразование к остаточным коэффициентам, подвергнутым обратному квантованию, для получения остаточного блока значений пикселей.After generating the coefficient vector, coefficient scanning module 74B performs an inverse scan of the coefficient vector to form a two-dimensional block of quantized residual coefficients. The inverse quantization unit 76B inversely quantizes the quantized residual coefficients, and the inverse transform unit 78B applies the inverse transform, for example, the DCT inverse transform, the inverse integer transform, the inverse wavelet transform, or the inverse directional transform to the inverse quantized residual coefficients to obtain a residual block of pixel values .

Модуль 80B предсказания формирует блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания. Модуль предсказания формирует блок предсказания с использованием ранее закодированных блоков и из базового слоя, и из улучшающего слоя. Сумматор 84B суммирует блок предсказания, сформированный модулем 80B предсказания, с остаточным блоком значений пикселей, чтобы образовать воссозданный видеоблок улучшающего слоя. Видеоблок улучшающего слоя сохраняется в хранилище 82B кадров для использования модулем 80B предсказания при формировании последующих блоков предсказания. Воссозданный видеоблок базового слоя и воссозданный видеоблок улучшающего слоя комбинируются в сумматоре 84C для образования видеоблока с более высоким качеством.Prediction unit 80B generates a prediction block using one or more adjacent blocks within an ordinary frame in the case of intra prediction or one or more blocks within adjacent frames in the case of inter prediction. The prediction module generates a prediction block using previously encoded blocks from both the base layer and the enhancement layer. Adder 84B sums the prediction block generated by the prediction unit 80B with a residual block of pixel values to form a recreated video block of the enhancement layer. The video block of the enhancement layer is stored in the frame storage 82B for use by the prediction unit 80B in the formation of subsequent prediction blocks. The recreated video block of the base layer and the recreated video block of the enhancement layer are combined in the adder 84C to form a video block with higher quality.

Фиг.6 является блок-схемой, иллюстрирующей примерные статистический декодер 72 базового слоя и статистический декодер 86 улучшающего слоя в дополнительных подробностях. Статистический декодер 72 базового слоя может включать в себя множество таблиц 52A-52N кодирования VLC ("таблицы 52 кодирования VLC"), декодер 90 общего количества коэффициентов, декодер 92 замыкающих единиц (T1), декодер 94 знаков, декодер 96 величин векторов, декодер 98 суммы серий и декодер 100 длин серий. Статистический декодер 86 улучшающего слоя может включать в себя декодер 102 символа EOB, декодер 104 длин серии, декодер 106 знаков и таблицу 69 кодирования VLC.6 is a block diagram illustrating exemplary statistical base layer decoder 72 and statistical enhancement layer decoder 86 in further detail. The base layer statistic decoder 72 may include a plurality of VLC coding tables 52A-52N ("VLC coding tables 52"), a total coefficient decoder 90, a trailing unit decoder (T1) 92, a character decoder 94, a vector magnitude decoder 96, a decoder 98 series totals and decoder 100 series lengths. The enhancement layer statistical decoder 86 may include an EOB symbol decoder 102, a series length decoder 104, a character decoder 106, and a VLC coding table 69.

Статистический декодер 72 базового слоя декодирует битовый поток базового слоя для получения символов, представляющих вектор коэффициентов видеоблока на основном уровне качества. Декодер 90 общего количества коэффициентов декодирует битовый поток с использованием одной из таблиц 52 кодирования VLC для получения общего количества отличных от нуля коэффициентов (TotalCoeff) в векторе коэффициентов. Декодер 90 общего количества коэффициентов может выбрать таблицу 52 кодирования VLC для декодирования символа TotalCoeff на основе предсказания количества отличных от нуля коэффициентов текущего вектора коэффициентов, например на основе количества отличных от нуля коэффициентов одного или более ранее декодированных видеоблоков. В этом методе декодер 90 общего количества коэффициентов может выбрать ту же самую таблицу 52 кодирования VLC, которая используется кодером 54 общего количества коэффициентов для кодирования символа TotalCoeff.The base layer statistic decoder 72 decodes the base layer bitstream to obtain symbols representing the coefficient vector of the video block at a basic quality level. The total coefficient decoder 90 decodes the bitstream using one of the VLC coding tables 52 to obtain the total number of non-zero coefficients (TotalCoeff) in the coefficient vector. The total coefficient decoder 90 may select a VLC coding table 52 for decoding the TotalCoeff symbol based on predicting the number of non-zero coefficients of the current coefficient vector, for example, based on the number of non-zero coefficients of one or more previously decoded video blocks. In this method, the total coefficient decoder 90 may select the same VLC coding table 52 that is used by the total coefficient encoder 54 to encode the TotalCoeff symbol.

После того как декодер 90 общего количества коэффициентов декодирует общее количество отличных от нуля коэффициентов, декодер 92 замыкающих единиц декодирует символ замыкающих единиц. Символ замыкающих единиц представляет количество коэффициентов с величиной, равной единице, которые встречаются перед коэффициентом с величиной, больше единицы, когда вектор коэффициентов читается в обратном порядке. Декодер 92 замыкающих единиц может декодировать символ замыкающих единиц с использованием одной из таблиц 52 декодирования VLC, выбранной на основе предсказанного количества отличных от нуля коэффициентов.After the total number of coefficients decoder 90 decodes the total number of non-zero coefficients, the closure unit decoder 92 decodes the closure unit symbol. The symbol of the closing units represents the number of coefficients with a value equal to one that occur before the coefficient with a value greater than one when the coefficient vector is read in the reverse order. The closure unit decoder 92 may decode the closure unit symbol using one of the VLC decoding tables 52 selected based on the predicted number of non-zero coefficients.

Декодер 94 знаков декодирует знаки всех замыкающих единиц. Например, декодер 94 знаков для каждой из замыкающих единиц может определить, что знак коэффициента положителен, когда принято '1', и определить, что знак коэффициента отрицателен, когда принято '0'. Декодер 96 величин коэффициентов декодирует величины отличных от нуля коэффициентов, кроме замыкающих единиц. Декодер 96 величин коэффициентов может декодировать уровни отличных от нуля коэффициентов с использованием таблицы кодирования VLC, кодирования с фиксированной длиной или другого типа статистического кодирования.A character decoder 94 decodes the characters of all trailing units. For example, a character decoder 94 for each of the trailing units may determine that the sign of the coefficient is positive when '1' is received, and to determine that the sign of the coefficient is negative when '0' is received. A decoder of 96 coefficient values decodes non-zero coefficient values, except for trailing units. The coefficient value decoder 96 may decode non-zero coefficient levels using a VLC coding table, fixed-length coding, or other type of statistical coding.

Декодер 98 суммы серий может декодировать символ, который представляет количество нулевых коэффициентов, которые встречаются в векторе коэффициентов перед последним отличным от нуля коэффициентом, то есть символ sumRuns. Декодер 98 суммы серий декодирует символ sumRuns с использованием одной из таблиц 52 кодирования VLC, выбранной на основе общего количества коэффициентов в блоке (TotalCoeffs), который был декодирован ранее декодером 90 общего количества коэффициентов. Напомним, что выбор таблицы кодирования VLC для использования при декодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs) может позволить декодеру 98 суммы серий выбирать таблицу кодирования VLC, которая более эффективно декодирует символ sumRuns.The series sum decoder 98 may decode a symbol that represents the number of zero coefficients that occur in the coefficient vector before the last nonzero coefficient, that is, the sumRuns symbol. The series sum decoder 98 decodes the sumRuns symbol using one of the VLC coding tables 52 selected based on the total number of coefficients in the block (TotalCoeffs), which was previously decoded by the total number of coefficients decoder 90. Recall that selecting a VLC coding table to use when decoding the sumRuns symbol based on the total number of coefficients in a block (TotalCoeffs) may allow the series sum decoder 98 to select a VLC coding table that decodes the sumRuns symbol more efficiently.

Декодер 100 длин серий декодирует длины серии вектора коэффициентов. Декодер 100 длин серий может сначала декодировать длину серии последнего отличного от нуля коэффициента вектора коэффициентов, затем длину серии предыдущего отличного от нуля коэффициента, и так далее до тех пор, пока не будет декодирована длина серии перед первым отличным от нуля коэффициентом вектора коэффициентов. Другими словами, декодер 100 длин серий может начать декодировать последнюю длину серии. Декодер 64 длин серий может декодировать каждую из длин серии с использованием таблицы 52 кодирования VLC, выбранной на основе общей суммы серий вектора коэффициентов (sumRuns) и суммы серий, декодированных до настоящего момента. Символ sumRuns был ранее декодирован декодером 98 суммы серий. Однако декодер 100 длин серий может накопить статистические данные относительно суммы серий, декодированных до настоящего момента. Поскольку возможная длина серии постепенно становится более короткой по мере декодирования каждой добавочной серии, декодер 100 длин серий может выбрать более эффективные таблицы кодирования VLC для сокращения количества битов, используемых для представления серий. В этом методе таблица 52 кодирования VLC, используемая декодером 100 длин серий, может изменяться для каждой из длин серии.The series length decoder 100 decodes the series lengths of the coefficient vector. The series length decoder 100 may first decode the series length of the last non-zero coefficient vector coefficient, then the series length of the previous non-zero coefficient vector, and so on, until the series length before the first non-zero coefficient vector coefficient is decoded. In other words, the series length decoder 100 may begin to decode the last series length. A series length decoder 64 may decode each of the series lengths using the VLC coding table 52 selected based on the total sum of the series of coefficient vector (sumRuns) and the sum of the series decoded to date. The sumRuns symbol was previously decoded by series 98 decoder. However, the series length decoder 100 may accumulate statistics regarding the sum of the series decoded to date. As the possible series length gradually becomes shorter as each additional series is decoded, the series length decoder 100 may select more efficient VLC coding tables to reduce the number of bits used to represent the series. In this method, the VLC coding table 52 used by the series length decoder 100 may vary for each of the series lengths.

Статистический декодер 86 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений для видеоблока, например в форме добавочных коэффициентов или уточнений к существующим коэффициентам. Декодер 102 символа EOB определяет, указывает ли символ EOB, имеется ли по меньшей мере один оставшийся отличный от нуля коэффициент. Когда имеется по меньшей мере один оставшийся отличный от нуля коэффициент, декодер 104 длин серий декодирует длину серии, предшествующую следующему отличному от нуля коэффициенту. Декодер 104 длин серий может декодировать длину серии следующего отличного от нуля коэффициента с использованием таблицы 96 кодирования VLC, которая является той же самой таблицей VLC, которая используется кодером 68 длин серий. Декодер 106 знаков декодирует знак отличного от нуля коэффициента. Например, декодер 106 знаков может определить, что знак является положительным, когда принято '1', и отрицательным, когда принято '0'. Статистический декодер 86 улучшающего слоя продолжает декодировать отличные от нуля коэффициенты, пока декодер 102 символа EOB не укажет, что больше нет оставшихся отличных от нуля коэффициентов.Enhancement layer statistical decoder 86 decodes the enhancement layer bitstream to obtain refinements for the video block, for example in the form of incremental coefficients or refinements to existing coefficients. The EOB symbol decoder 102 determines whether the EOB symbol indicates whether there is at least one remaining non-zero coefficient. When there is at least one remaining non-zero coefficient, the series length decoder 104 decodes the series length preceding the next non-zero coefficient. The series length decoder 104 may decode the series length of the next non-zero coefficient using the VLC coding table 96, which is the same VLC table used by the series length encoder 68. The character decoder 106 decodes the sign of a non-zero coefficient. For example, the character decoder 106 may determine that the character is positive when '1' is received and negative when '0' is received. The enhancement layer statistical decoder 86 continues to decode non-zero coefficients until the EOB symbol decoder 102 indicates that there are no more non-zero coefficients remaining.

Фиг.7 является концептуальной схемой, иллюстрирующей зигзагообразное сканирование блока 40 коэффициентов размерности 4×4. Зигзагообразное сканирование, показанное на Фиг.7, может быть выполнено кодерами 30, 32 на Фиг.2. Порядок сканирования для такого зигзагообразного сканирования, показанного на Фиг.7, следует за стрелкой через видеоблоки 110, и коэффициенты c1-c16 помечены в порядке сканирования. В частности, числовые значения, показанные на Фиг.7, указывают позиции коэффициентов в пределах последовательного одномерного вектора и не представляют фактические значения коэффициентов. Результатом зигзагообразного сканирования, проиллюстрированного на Фиг.7, является одномерный вектор коэффициентов X, где7 is a conceptual diagram illustrating a zigzag scan of a block 40 of 4 × 4 dimensional coefficients. The zigzag scan shown in FIG. 7 can be performed by encoders 30, 32 in FIG. 2. The scan order for such a zigzag scan shown in FIG. 7 follows the arrow through the video blocks 110, and the coefficients c1-c16 are marked in the scan order. In particular, the numerical values shown in FIG. 7 indicate the positions of the coefficients within a sequential one-dimensional vector and do not represent the actual values of the coefficients. The result of the zigzag scan illustrated in FIG. 7 is a one-dimensional coefficient vector X, where

X=[c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16]X = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16]

где c1-c16 представляют позиции коэффициентов в пределах двумерного массива коэффициентов.where c1-c16 represent the positions of the coefficients within a two-dimensional array of coefficients.

Методики этого раскрытия не ограничиваются никаким конкретным порядком или методикой сканирования. Например, порядок сканирования, используемый в этом раскрытии, может являться зигзагообразным порядком сканирования, показанным на Фиг.7. В качестве альтернативы порядки сканирования, используемые в этом раскрытии, могут являться другими порядками сканирования, такими как горизонтальное сканирование, вертикальное сканирование или любая другая методика сканирования.The techniques of this disclosure are not limited to any particular scan order or technique. For example, the scan order used in this disclosure may be the zigzag scan order shown in FIG. 7. Alternatively, the scan orders used in this disclosure may be other scan orders, such as horizontal scanning, vertical scanning, or any other scanning technique.

Фиг.8 является концептуальной схемой, иллюстрирующей гипотетический пример блока 120 коэффициентов улучшающего слоя. В этом примере числовые значения, показанные на Фиг.8, указывают фактические значения коэффициентов в позициях. Фактические значения коэффициентов блока 120 коэффициентов могут представлять квантованные остаточные коэффициенты, коэффициенты преобразования без квантования или другой тип коэффициентов видеоблока в улучшающем слое. В примере, проиллюстрированном на Фиг.8, блок 120 коэффициентов имеет размерность 4×4. Однако методики этого раскрытия могут быть расширены для применения к блокам любого размера. После сканирования блока 120 коэффициентов в соответствии с зигзагообразным сканированием, проиллюстрированным на Фиг.7, полученный в результате вектор V коэффициентов является следующим:FIG. 8 is a conceptual diagram illustrating a hypothetical example of an enhancement layer coefficient block 120. In this example, the numerical values shown in FIG. 8 indicate the actual values of the coefficients in the positions. Actual coefficient values of coefficient block 120 may represent quantized residual coefficients, non-quantization transform coefficients, or other type of video block coefficients in the enhancement layer. In the example illustrated in FIG. 8, the coefficient block 120 has a 4x4 dimension. However, the techniques of this disclosure may be extended to apply to blocks of any size. After scanning the coefficient block 120 in accordance with the zigzag scanning illustrated in FIG. 7, the resulting coefficient vector V is as follows:

V=[4, 0, 0, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].V = [4, 0, 0, -2, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].

Кодер 32 улучшающего слоя кодирует каждый из коэффициентов вектора V коэффициентов в соответствии с методиками, описанными в этом раскрытии. В качестве примера, для каждого из отличных от нуля коэффициентов вектора V коэффициентов кодер 32 улучшающего слоя кодирует символ EOB, длину серии и знак. Как описано подробно выше, символ EOB указывает, имеются ли какие-либо оставшиеся отличные от нуля коэффициенты в векторе коэффициентов, длина серии представляет количество нулевых коэффициентов, которые находятся перед текущим отличным от нуля коэффициентом вектора коэффициентов, и знак указывает, является ли значение коэффициента положительным или отрицательным.Enhancement layer encoder 32 encodes each of the coefficients of the coefficient vector V in accordance with the techniques described in this disclosure. As an example, for each of the non-zero coefficients of the vector V of the coefficients, the enhancement layer encoder 32 encodes an EOB symbol, a series length, and a sign. As described in detail above, the EOB symbol indicates whether there are any remaining non-zero coefficients in the coefficient vector, the length of the series represents the number of zero coefficients that are in front of the current non-zero coefficient of the coefficient vector, and the sign indicates whether the coefficient value is positive or negative.

В соответствии с одним аспектом этого раскрытия кодер 32 улучшающего слоя может не кодировать величину коэффициентов. Вместо этого кодер 32 улучшающего слоя может закодировать каждый из отличных от нуля коэффициентов, как если бы величина всех отличных от нуля коэффициентов была равна единице. В этом методе можно видеть, что кодер 32 улучшающего слоя кодирует следующий вектор V' коэффициентов вместо вектора V.In accordance with one aspect of this disclosure, enhancement layer encoder 32 may not code the magnitude of the coefficients. Instead, the enhancement layer encoder 32 may encode each of the non-zero coefficients, as if the value of all non-zero coefficients was equal to one. In this method, it can be seen that the enhancement layer encoder 32 encodes the next coefficient vector V ′ instead of the vector V.

V'=[1, 0, 0,-1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].V '= [1, 0, 0, -1, 0, 1, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0].

Кодер 32 улучшающего слоя, например, может закодировать первый коэффициент (то есть 4 в векторе V коэффициентов или 1 в векторе V' коэффициентов) с использованием символа EOB, равного нулю, кодового слова для серии, равной нулю, и знака, равного единице, закодировать второй коэффициент (то есть -2 в векторе V коэффициентов или -1 в векторе V' коэффициентов) с использованием символа EOB, равного нулю, кодового слова для серии, равной двум, и знака, равного нулю, и закодировать третий отличный от нуля коэффициент (то есть 1 в векторе V коэффициентов или в векторе V' коэффициентов) с использованием символа EOB, равного нулю, кодового слова для серии, равной единице, и знака, равного единице, за которыми следует символ EOB, равный единице. Как описано выше, кодовые слова, используемые для кодирования серии, могут быть получены из таблицы кодирования VLC, определенной в стандарте H.264/MPEG-4, часть 10, AVC.Enhancement layer encoder 32, for example, can encode the first coefficient (i.e., 4 in the coefficient vector V or 1 in the coefficient vector V ') using the zero symbol EOB, the code word for the series equal to zero, and the symbol equal to one, encode a second coefficient (i.e., -2 in the vector V of coefficients or -1 in the vector V 'of coefficients) using the EOB symbol equal to zero, the code word for the series equal to two, and the sign equal to zero, and encode the third non-zero coefficient ( i.e. 1 in a vector of V coefficients or per century Ore V 'coefficients) using the EOB symbol being zero, the code word for the series of unity and the mark, equal to one, followed by EOB symbol equal to one. As described above, the codewords used for encoding the series can be obtained from the VLC encoding table defined in the H.264 / MPEG-4 standard, part 10, AVC.

Примерный закодированный битовый поток описывается в целях иллюстрации. Кодер 32 улучшающего слоя может закодировать вектор V, V' коэффициентов другими методами без отступления от контекста этого раскрытия. Например, символ EOB может быть закодирован как единица для представления добавочных отличных от нуля коэффициентов в блоке и как нуль для представления отсутствия оставшихся отличных от нуля коэффициентов. Аналогичным образом, символ знака может быть закодирован как нуль для представления положительного отличного от нуля коэффициента и как единица для представления отрицательного отличного от нуля коэффициента. В качестве другого примера символ EOB, закодированный для каждого отличного от нуля коэффициента, может представлять, является ли текущий коэффициент последним отличным от нуля коэффициентом вектора. Таким образом, может не иметься символа EOB в конце закодированного битового потока. Вместо этого, когда символ EOB указывает, что текущий коэффициент является последним отличным от нуля коэффициентом, видеодекодер знает, что после декодирования серии и символа текущего коэффициента больше нет добавочных коэффициентов блока.An exemplary encoded bitstream is described for purposes of illustration. Enhancement layer encoder 32 may encode coefficient vector V, V ′ by other methods without departing from the context of this disclosure. For example, the EOB symbol may be encoded as a unit to represent additional non-zero coefficients in a block and as zero to represent the absence of remaining non-zero coefficients. Similarly, a character symbol can be encoded as zero to represent a positive non-zero coefficient and as a unit to represent a negative non-zero coefficient. As another example, the EOB symbol encoded for each non-zero coefficient may represent whether the current coefficient is the last non-zero coefficient of the vector. Thus, there may not be an EOB symbol at the end of the encoded bitstream. Instead, when the EOB symbol indicates that the current coefficient is the last non-zero coefficient, the video decoder knows that after decoding the series and the symbol of the current coefficient, there are no more block block coefficients.

Фиг.9 является блок-схемой последовательности операций, иллюстрирующей примерную работу видеокодера, такого как видеокодер 20 на Фиг.2, выполняющего методики масштабируемого кодирования видео этого раскрытия. Кодер 30 базового слоя и кодер 32 улучшающего слоя из видеокодера 20 получают видеоданные из источника 18 видео (этап 130). Как описано выше, кодер 30 базового слоя и кодер 32 улучшающего слоя получают одни и те же первоначальные видеоданные. Видеоданные, полученные из источника 18 видео, например, могут представлять собой ряд видеокадров.FIG. 9 is a flowchart illustrating an example operation of a video encoder, such as video encoder 20 of FIG. 2, performing scalable video encoding techniques of this disclosure. The base layer encoder 30 and the enhancement layer encoder 32 from video encoder 20 receive video data from video source 18 (step 130). As described above, the base layer encoder 30 and the enhancement layer encoder 32 receive the same initial video data. The video data obtained from the video source 18, for example, may be a series of video frames.

Для каждого видеоблока кодер 30 базового слоя кодирует базовый слой с использованием методики кодирования, которая выполняет множество проходов кодирования (этап 132). Базовый слой кодирует видеоблок на первом уровне качества. Кодер 30 базового слоя может сформировать вектор коэффициентов, который представляет видеоблок в первом качестве и закодировать остаточные коэффициенты преобразования блока для формирования базового слоя. Кодер 30 базового слоя может закодировать вектор коэффициентов для формирования базового слоя в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Как подробно описано выше в отношении Фиг.2, кодер 30 базового слоя может выполнить первый проход кодирования для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа.For each video block, the base layer encoder 30 encodes the base layer using an encoding technique that performs multiple encoding passes (step 132). The base layer encodes the video block at the first quality level. The base layer encoder 30 may generate a coefficient vector that represents the video block in first quality and encode the residual transform coefficients of the block to form the base layer. The base layer encoder 30 may encode a coefficient vector to form the base layer in accordance with CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC. As described in detail above with respect to FIG. 2, the base layer encoder 30 may perform a first coding pass for analyzing the coefficient vector and a second pass for coding the coefficient vector based on the analysis.

Для каждого видеоблока кодер 32 улучшающего слоя кодирует добавочные биты как улучшающий слой с использованием методики кодирования, которая выполняет один проход кодирования (этап 134). Дополнительные биты битового потока улучшающего слоя кодируют уточнения, которые при их добавлении к битовому потоку базового слоя улучшают видео до второго, более высокого уровня качества. Хотя в этом примере кодер 32 улучшающего слоя описывается как кодирующий только один улучшающий слой, кодер 32 улучшающего слоя может закодировать более одного битового потока улучшающего слоя. В этом случае улучшающие слои могут являться иерархическими в том смысле, что улучшающие слои по мере их декодирования предлагают все более высокое качество.For each video block, the enhancement layer encoder 32 encodes the incremental bits as an enhancement layer using an encoding technique that performs one encoding pass (step 134). Additional bits of the enhancement layer bitstream encode refinements that, when added to the base layer bitstream, enhance the video to a second, higher quality level. Although in this example, the enhancement layer encoder 32 is described as encoding only one enhancement layer, the enhancement layer encoder 32 can encode more than one enhancement layer bitstream. In this case, the enhancement layers can be hierarchical in the sense that the enhancement layers offer ever higher quality as they are decoded.

Вторая методика статистического кодирования, используемая кодером 32 улучшающего слоя, может закодировать для каждого из отличных от нуля коэффициентов вектора коэффициентов улучшающего слоя символ EOB, серию и знак. Как подробно описано выше, символ EOB может указать, имеются ли какие-либо оставшиеся отличные от нуля коэффициенты, длина серии представляет количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту, и знак указывает, является ли значение коэффициента положительным или отрицательным. После знака последнего отличного от нуля коэффициента кодер 32 улучшающего слоя может закодировать символ EOB, чтобы указать, что больше нет оставшихся отличных от нуля коэффициентов.The second statistical coding technique used by the enhancement layer encoder 32 can encode for each of the non-zero coefficients of the enhancement layer coefficient vector coefficients, an EOB symbol, a series, and a sign. As described in detail above, the EOB symbol can indicate whether there are any remaining non-zero coefficients, the series length represents the number of zero coefficients that precede the non-zero coefficient, and the sign indicates whether the coefficient value is positive or negative. After the sign of the last non-zero coefficient, the enhancement layer encoder 32 may encode the EOB symbol to indicate that there are no more non-zero coefficients remaining.

Кодер 30 базового слоя и кодер 32 улучшающего слоя выводят закодированные битовые потоки базового слоя и битовые потоки улучшающего слоя соответственно (этап 136). Методика статистического кодирования, используемая кодером 32 улучшающего слоя, может дать возможность кодирования остаточных коэффициентов улучшающего слоя с более низкой вычислительной сложностью и сложностью осуществления без большой потери эффективности кодирования. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений, в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Например, кодер 32 улучшающего слоя может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная какие-либо последующие коэффициенты, тем самым давая возможность кодирования вектора коэффициентов в одном проходе и избавляя от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа.The base layer encoder 30 and the enhancement layer encoder 32 output the encoded base layer bitstreams and the enhancement layer bitstreams, respectively (step 136). The statistical coding technique used by the enhancement layer encoder 32 may enable encoding the residual coefficients of the enhancement layer with lower computational complexity and implementation complexity without a large loss in coding efficiency. The statistical encoding techniques of this disclosure may enable the encoding of additional video data, for example, in the form of refinements, in the enhancement layer bitstream in a single encoding pass, thereby reducing encoding complexity, encoding delay, and memory requirements. For example, enhancement layer encoder 32 may encode each nonzero coefficient of the coefficient vector of the enhancement layer without knowing any subsequent coefficients, thereby enabling the coefficient vector to be encoded in one pass and eliminating the need to perform a first pass to analyze the coefficient vector and a second pass for coding a coefficient vector based on analysis.

Фиг.10 является блок-схемой последовательности операций, иллюстрирующей примерную работу кодера улучшающего слоя, такого как кодер 32 улучшающего слоя на Фиг.2, кодирующего остаточные коэффициенты видеоблока улучшающего слоя в соответствии с одним аспектом этого раскрытия. Кодер 32 улучшающего слоя идентифицирует первый отличный от нуля коэффициент в векторе коэффициентов блока улучшающего слоя (этап 140). Кодер 32 улучшающего слоя кодирует символ EOB, указывающий, что в векторе коэффициентов блока улучшающего слоя имеется по меньшей мере один оставшийся отличный от нуля коэффициент (этап 142). Кодер 32 улучшающего слоя может закодировать символ EOB с использованием одного бита, например закодировать нуль, когда имеется по меньшей мере один оставшийся ненулевой коэффициент, и закодировать единицу, когда больше нет оставшихся отличных от нуля коэффициентов.FIG. 10 is a flowchart illustrating an example operation of an enhancement layer encoder, such as enhancement layer encoder 32 of FIG. 2, encoding the residual coefficients of a enhancement layer video block in accordance with one aspect of this disclosure. Enhancement layer encoder 32 identifies the first non-zero coefficient in the coefficient vector of the enhancement layer block (step 140). Enhancement layer encoder 32 encodes an EOB symbol indicating that there is at least one remaining nonzero coefficient in the coefficient vector of the enhancement layer block (step 142). Enhancement layer encoder 32 may encode the EOB symbol using one bit, for example, encode zero when there is at least one remaining nonzero coefficient, and encode one when there are no more nonzero coefficients remaining.

Кодер 32 улучшающего слоя кодирует серию, которая указывает, количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту (этап 144). Кодер 32 улучшающего слоя в некоторых случаях может закодировать серию с использованием таблицы кодирования VLC, которая уже сохранена для кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Например, кодер 32 улучшающего слоя может закодировать серию с использованием таблицы кодирования VLC, используемой для кодирования общей суммы серий (sumRuns), когда общее количество коэффициентов (TotalCoeffs) равно одному. В качестве альтернативы, кодер 32 улучшающего слоя может поддерживать отдельную таблицу кодирования VLC, специально созданную для кодирования серий вектора коэффициентов улучшающего слоя.Enhancement layer encoder 32 encodes a series that indicates the number of zero coefficients that precede a non-zero coefficient (step 144). Enhancement layer encoder 32 may, in some cases, encode a series using a VLC coding table that is already stored for CAVLC coding, as defined in H.264 / MPEG-4, Part 10, AVC. For example, enhancement layer encoder 32 may encode a series using the VLC coding table used to encode the total series (sumRuns) when the total number of coefficients (TotalCoeffs) is one. Alternatively, enhancement layer encoder 32 may support a separate VLC coding table specifically designed to encode series of coefficient layer coefficient vector vectors.

Кодер 32 улучшающего слоя может закодировать знак отличного от нуля коэффициента (этап 146). Кодер 32 улучшающего слоя, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. В некоторых случаях кодер 32 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов. В этом методе кодер 32 улучшающего слоя может ограничить величину отличных от нуля коэффициентов единицей. Таким образом, любой отличный от нуля коэффициент с величиной, большей единицы, устанавливается равным единице. Отсутствие кодирования величин коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.Enhancement layer encoder 32 may encode the sign of a non-zero coefficient (block 146). Enhancement layer encoder 32, for example, may encode '1' if the sign of a non-zero coefficient is positive, and encode '0' if the sign of a non-zero coefficient is negative. In some cases, the enhancement layer encoder 32 may not encode non-zero coefficients. In this method, an enhancement layer encoder 32 may limit the value of non-zero coefficients to unity. Thus, any non-zero coefficient with a value greater than one is set equal to one. The lack of coding of the coefficient values of the enhancement layer may lead to some loss of the peak signal to noise ratio (PSNR), but reduces the number of bits used to code the coefficients.

Кодер 32 улучшающего слоя определяет, имеются ли в блоке улучшающего слоя какие-либо оставшиеся отличные от нуля коэффициенты (этап 148). Когда в блоке улучшающего слоя имеется по меньшей мере один оставшийся отличный от нуля коэффициент, кодер 32 улучшающего слоя продолжает кодировать символ EOB, серию и знак для каждого из оставшихся отличных от нуля коэффициентов. Когда в блоке улучшающего слоя больше нет оставшихся отличных от нуля коэффициентов, кодер 32 улучшающего слоя кодирует символ EOB для указания, что в векторе коэффициентов блока улучшающего слоя больше нет оставшихся отличных от нуля коэффициентов (этап 149). Как описано выше, улучшающий слой передается вместе с базовым слоем.Enhancement layer encoder 32 determines whether there are any remaining non-zero coefficients in the enhancement layer unit (step 148). When there is at least one non-zero coefficient remaining in the enhancement layer unit, the enhancement layer encoder 32 continues to encode the EOB symbol, series, and sign for each of the remaining non-zero coefficients. When there are no more non-zero coefficients remaining in the enhancement layer block, the enhancement layer encoder 32 encodes an EOB symbol to indicate that there are no more non-zero coefficients remaining in the enhancement layer block vector (block 149). As described above, the enhancement layer is transmitted along with the base layer.

Поскольку методика кодирования улучшающего слоя, описанная на Фиг.10, не кодирует символов, которые ссылаются более чем на один коэффициент, методика кодирования улучшающего слоя может позволить кодеру 32 улучшающего слоя отказываться от одного или более квантованных остаточных коэффициентов вектора коэффициентов во время кодирования в зависимости от доступной скорости передачи битов. Кроме того, методика кодирования улучшающего слоя уменьшает сложность кодирования и упрощает осуществление.Since the enhancement layer coding technique described in FIG. 10 does not encode characters that refer to more than one coefficient, the enhancement layer coding technique may allow the enhancement layer encoder 32 to reject one or more quantized residual coefficients of the coefficient vector during coding, depending on available bit rate. In addition, the coding technique of the enhancement layer reduces coding complexity and simplifies implementation.

Фиг.11 является блок-схемой последовательности операций, иллюстрирующей примерную работу декодера улучшающего слоя, такого как декодер 36 улучшающего слоя на Фиг.2, декодирующего битовый поток улучшающего слоя для получения вектора остаточных коэффициентов преобразования. Декодер 36 улучшающего слоя получает битовый поток улучшающего слоя (этап 150). Декодер 36 улучшающего слоя анализирует символ EOB, чтобы определить, имеются ли какие-либо оставшиеся отличные от нуля коэффициенты (этап 152). Декодер 36 улучшающего слоя, например, может определить, что имеется по меньшей мере один оставшийся отличный от нуля коэффициент, когда символ EOB равен нулю, и определить что больше нет оставшихся отличных от нуля коэффициентов, когда символ EOB равен единице.11 is a flowchart illustrating an example operation of an enhancement layer decoder, such as enhancement layer decoder 36 of FIG. 2, which decodes an enhancement layer bitstream to obtain a residual transform coefficient vector. Enhancement layer decoder 36 receives an enhancement layer bitstream (step 150). Enhancement layer decoder 36 analyzes the EOB symbol to determine if there are any remaining non-zero coefficients (block 152). The enhancement layer decoder 36, for example, can determine that there is at least one remaining non-zero coefficient when the EOB symbol is zero, and determine that there are no more remaining non-zero coefficients when the EOB symbol is one.

Когда декодер 36 улучшающего слоя определяет, что имеется по меньшей мере один оставшийся отличный от нуля коэффициент, например, символ EOB равен нулю, декодер 36 улучшающего слоя декодирует серию, ассоциированную со следующим отличным от нуля коэффициентом (этап 154). Серия, ассоциированная со следующим отличным от нуля коэффициентом, представляет количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту. Декодер 36 улучшающего слоя декодирует серию с использованием той же самой таблицы кодирования VLC, которая используется кодером 32 улучшающего слоя. В одном случае декодер 36 улучшающего слоя может декодировать серию с использованием таблицы кодирования VLC, используемой при кодировании CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, для использования при кодировании общей суммы серий (sumRuns), когда общее количество коэффициентов (TotalCoeffs) равно одному. Однако могут использоваться другие таблицы кодирования VLC, пока это та же самая таблица, которая используется кодером 32 улучшающего слоя. Декодер 36 улучшающего слоя устанавливает равными нулю коэффициенты в количестве, равном длине серии, предшествующей отличному от нуля коэффициенту (этап 156). Если длина серии, например, равна двум, декодер 36 улучшающего слоя может установить два коэффициента, предшествующие отличному от нуля коэффициенту, равными нулю.When the enhancement layer decoder 36 determines that there is at least one remaining non-zero coefficient, for example, the EOB symbol is zero, the enhancement layer decoder 36 decodes the series associated with the next non-zero coefficient (block 154). The series associated with the next non-zero coefficient represents the number of zero coefficients preceding the non-zero coefficient. Enhancement layer decoder 36 decodes a series using the same VLC coding table that is used by enhancement layer encoder 32. In one case, the enhancement layer decoder 36 may decode a series using the VLC coding table used in CAVLC coding, as defined in H.264 / MPEG-4, part 10, AVC, for use in coding the total series (sumRuns) when the total number of odds (TotalCoeffs) is one. However, other VLC coding tables may be used as long as this is the same table that is used by the enhancement layer encoder 32. Enhancement layer decoder 36 sets the coefficients to zero in an amount equal to the length of the series preceding the nonzero coefficient (block 156). If the series length, for example, is two, the enhancement layer decoder 36 may set two coefficients preceding the non-zero coefficient to zero.

Декодер 36 улучшающего слоя декодирует знак отличного от нуля коэффициента (этап 158). Знак отличного от нуля коэффициента может быть декодирован как положительный, когда символ знака равен единице, и как отрицательный, когда символ знака равен нулю. После декодирования знака отличного от нуля коэффициента декодер 36 улучшающего слоя может установить отличный от нуля коэффициент равным плюс единице или минус единице на основе декодированного знака (этап 160). Как описано выше, улучшающий слой может не кодировать величину коэффициентов улучшающего слоя. Таким образом, декодер 36 улучшающего слоя может быть сконфигурирован с возможностью устанавливать величину всех отличных от нуля коэффициентов равной единице.Enhancement layer decoder 36 decodes the sign of a non-zero coefficient (block 158). The sign of a non-zero coefficient can be decoded as positive when the sign symbol is equal to one, and as negative when the sign symbol is zero. After decoding the sign of the non-zero coefficient, the enhancement layer decoder 36 may set the non-zero coefficient to plus one or minus one based on the decoded sign (step 160). As described above, the enhancement layer may not code the magnitude of the coefficients of the enhancement layer. Thus, the enhancement layer decoder 36 can be configured to set the value of all non-zero coefficients to unity.

Декодер 36 улучшающего слоя продолжает декодировать серии и знаки отличного от нуля коэффициента, пока декодер 36 улучшающего слоя не определит, что больше нет оставшихся отличных от нуля коэффициентов, например, символ EOB равен единице. В этот момент декодер 36 улучшающего слоя устанавливает равными нулю оставшиеся коэффициенты вектора, если остались какие-либо коэффициенты (этап 162). Как подробно описано в отношении Фиг.2, декодер 36 улучшающего слоя использует вектор коэффициентов вдобавок к блоку предсказания и другим данным для воссоздания видеоблока для представления на дисплее 28.Enhancement layer decoder 36 continues to decode the series and signs of the non-zero coefficient until the enhancement layer decoder 36 determines that there are no more non-zero coefficients remaining, for example, the EOB symbol is one. At this point, enhancement layer decoder 36 sets the remaining vector coefficients to zero if any coefficients remain (step 162). As described in detail with respect to FIG. 2, the enhancement layer decoder 36 uses a coefficient vector in addition to the prediction block and other data to recreate the video block for display on the display 28.

Фиг.12-15 являются блок-схемами, иллюстрирующими различные конфигурации кодеров и/или декодеров для использования при масштабируемом кодировании видео. Эти примерные кодеры и декодеры представлены в целях иллюстрации типов кодеров, в которых могут быть употреблены методики этого раскрытия. Однако примерные конфигурации никоим образом не должны ограничивать описанные методики. Методики могут использоваться в любом масштабируемом видеокодере.12-15 are block diagrams illustrating various configurations of encoders and / or decoders for use in scalable video encoding. These exemplary encoders and decoders are presented to illustrate the types of encoders in which the techniques of this disclosure may be used. However, exemplary configurations should in no way limit the described techniques. Techniques can be used in any scalable video encoder.

Каждый из примерных видеокодеров и декодеров, проиллюстрированных на Фиг.12-15, может употреблять методики статистического кодирования, описанные в этом раскрытии, для содействия эффективному кодированию битовых потоков улучшающего слоя. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений, в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Как будет описано в дополнительных подробностях, каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя может быть закодирован без информации о каких-либо последующих коэффициентах, то есть каких-либо коэффициентов после отличного от нуля коэффициента, кодируемого в настоящее время. Кодирование улучшающего слоя в одном проходе может избавить от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа.Each of the exemplary video encoders and decoders illustrated in FIGS. 12-15 may use the statistical coding techniques described in this disclosure to facilitate efficient coding of enhancement layer bit streams. The statistical encoding techniques of this disclosure may enable the encoding of additional video data, for example, in the form of refinements, in the enhancement layer bitstream in a single encoding pass, thereby reducing encoding complexity, encoding delay, and memory requirements. As will be described in further detail, each non-zero coefficient coefficient vector of the enhancement layer can be encoded without information about any subsequent coefficients, that is, any coefficients after the non-zero coefficient currently encoded. Encoding the enhancement layer in one pass can eliminate the need for the first pass to analyze the coefficient vector and the second pass to encode the coefficient vector based on the analysis.

Фиг.12 является блок-схемой, иллюстрирующей примерный масштабируемый видеокодер 170. Масштабируемый видеокодер 170, например, может соответствовать видеокодеру 20 на Фиг.2. В примере на Фиг.12 масштабируемый видеокодер 170 включает в себя кодер 30 базового слоя, который включает в себя модуль 172 предсказания, хранилище 173 кадров, модуль 174 преобразования, модули 175 A и 175B квантования, модули 176A и 176B обратного квантования, модуль 177 обратного преобразования, модуль 178 мультиплексирования и сумматоры 179A-179C. Отражение различных отличительных признаков на Фиг.12 как модулей предназначено для выделения различных функциональных аспектов проиллюстрированных устройств и не обязательно подразумевает, что такие модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Напротив, функциональные возможности, ассоциированные с одним или более модулями, могут быть интегрированы в обыкновенных или в отдельных аппаратных или программных компонентах.12 is a block diagram illustrating an example scalable video encoder 170. Scalable video encoder 170, for example, may correspond to video encoder 20 in FIG. In the example of FIG. 12, the scalable video encoder 170 includes a base layer encoder 30 that includes a prediction module 172, a frame store 173, a transform module 174, quantization modules 175 A and 175B, inverse quantization units 176A and 176B, and inverse quantization unit 177 conversions, multiplexing module 178, and adders 179A-179C. The reflection of the various distinguishing features in FIG. 12 as modules is intended to highlight the various functional aspects of the illustrated devices and does not necessarily imply that such modules must be implemented using separate hardware or software components. In contrast, the functionality associated with one or more modules can be integrated into ordinary or separate hardware or software components.

Модуль 712 предсказания формирует блок предсказания с использованием внутреннего или внешнего предсказания. Блок предсказания может являться предсказанной версией текущего закодированного видеоблока. Как описано выше, модуль 172 предсказания может формировать блок предсказания с использованием внутреннего предсказания на основе одного или более ранее закодированных блоков базового слоя в пределах того же самого кадра, что и текущий кодируемый блок. В качестве альтернативы модуль предсказания может формировать блок предсказания с использованием внешнего предсказания на основе одного или более ранее закодированных блоков в пределах одного или более смежных кадров базового слоя. Модуль 172 предсказания может извлекать ранее закодированный блок из хранилища 173 кадров.Prediction module 712 generates a prediction block using intra or inter prediction. The prediction block may be a predicted version of the current encoded video block. As described above, prediction module 172 can generate a prediction block using intra prediction based on one or more previously encoded blocks of the base layer within the same frame as the current encoded block. Alternatively, the prediction module may generate a prediction block using inter prediction based on one or more previously encoded blocks within one or more adjacent frames of the base layer. Prediction module 172 may retrieve a previously encoded block from frame storage 173.

После внутреннего или внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, созданного модулем 172 предсказания, из текущего видеоблока в сумматоре 179A. Остаточный блок включает в себя множество значений разности пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицы или массива значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After internal or external prediction of the video blocks, the base layer encoder 30 forms a residual block by subtracting the prediction block created by the prediction unit 172 from the current video block in adder 179A. The residual block includes a plurality of pixel difference values that determine the number of differences between the pixel values of the current video block and the pixel values of the prediction block. The residual block may be represented in the format of a two-dimensional block (for example, a two-dimensional matrix or an array of pixel values). In other words, the residual block is a two-dimensional representation of pixel values.

Модуль 174 преобразования применяет преобразование к остаточному блоку для получения остаточных коэффициентов преобразования. Модуль 174 преобразования, например, может применить преобразование DCT, целочисленное преобразование, направленное преобразование, вейвлетное преобразование или их комбинацию. После применения преобразования к остаточному блоку значений пикселей модуль 175A квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Выходные данные модуля 175A квантования, которые соответствуют квантованным коэффициентам, ассоциированным с базовым слоем, предоставляются на модуль 178 мультиплексирования.The transform unit 174 applies the transform to the residual block to obtain residual transform coefficients. Transform module 174, for example, can apply a DCT transform, integer transform, directional transform, wavelet transform, or a combination thereof. After applying the transform to the residual block of pixel values, the quantization unit 175A quantizes the transform coefficients to further reduce the bit rate. The output of quantization module 175A, which correspond to the quantized coefficients associated with the base layer, is provided to multiplexing module 178.

После квантования модуль 176A обратного квантования применяет обратное квантование для формирования воссозданной версии остаточного блока коэффициентов преобразования. Сумматор 179B вычитает воссозданную версию остаточного блока коэффициентов преобразования, выведенную из модуля 176A обратного квантования, из первоначального остаточного блока коэффициентов преобразования, выведенного модулем 174 преобразования. Этот блок, который называется здесь блоком разности преобразования, предоставляется на модуль 175B квантования. Модуль 175B квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Выходные данные модуля 175B квантования, которые соответствуют квантованным коэффициентам, ассоциированным с улучшающим слоем, предоставляются на модуль 178 мультиплексирования. В одном примере модуль 175A квантования может квантовать остаточные коэффициенты с использованием первого параметра QP, и модуль 175B квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2.After quantization, the inverse quantization module 176A applies inverse quantization to generate a recreated version of the residual block of transform coefficients. An adder 179B subtracts a recreated version of the residual transform coefficient block derived from the inverse quantization module 176A from the original residual transform coefficient block derived by the transform module 174. This block, which is here referred to as a transform difference block, is provided to the quantization module 175B. Quantization module 175B quantizes the transform coefficients to further reduce the bit rate. The output of quantization module 175B, which correspond to the quantized coefficients associated with the enhancement layer, is provided to multiplexing module 178. In one example, quantization module 175A may quantize residual coefficients using the first QP parameter, and quantization module 175B may quantize residual coefficient differences using the second QP parameter. The second parameter QP, for example, can be half the value of the first parameter QP, that is, equal to QP / 2.

После квантования модулем 175B квантования модуль 176B обратного квантования применяет обратное квантование для формирования воссозданной версии блока разности преобразования. Сумматор 179C добавляет воссозданную версию остаточного блока коэффициентов преобразования, выведенную из модуля 176A обратного квантования, с воссозданной версией блока разности преобразования, выведенного модулем 176B обратного квантования, для формирования воссозданного остаточного блока.After quantization by the quantization module 175B, the inverse quantization module 176B applies inverse quantization to generate a recreated version of the transform difference block. Adder 179C adds a recreated version of the residual transform coefficient block derived from the inverse quantization module 176A, with a recreated version of the transform difference block derived by the inverse quantization module 176B to form a recreated residual block.

Модуль 177 обратного преобразования применяет обратное преобразование к воссозданной версии видеоблока. Воссозданная версия видеоблока сохраняется в хранилище 173 кадров и может использоваться модулем 172 предсказания для внутреннего или внешнего кодирования последующего видеоблока. Модуль 172 предсказания может предоставить данные управления, такие как векторы движения, размеры разделения, режимы внутреннего кодирования и т.п., модулю 178 мультиплексирования. Модуль 178 мультиплексирования может комбинировать данные базового и улучшающего слоя. В некоторых случаях модуль 178 мультиплексирования может включать в себя статистические кодеры для статистического кодирования данных базового и улучшающего слоя. В других случаях кодеры базового и улучшающего слоя могут быть отдельными от модуля мультиплексирования.The inverse transform module 177 applies the inverse transform to the recreated version of the video block. The reconstructed version of the video block is stored in the storage 173 frames and can be used by the prediction module 172 for internal or external encoding of the subsequent video block. Prediction unit 172 may provide control data, such as motion vectors, split sizes, intra-coding modes, and the like, to multiplexing unit 178. Multiplexing module 178 may combine base and enhancement layer data. In some cases, multiplexing module 178 may include statistical encoders for statistical encoding of base and enhancement layer data. In other cases, the encoders of the base and enhancement layer may be separate from the multiplexing module.

Фиг.13 является блок-схемой, иллюстрирующей примерный масштабируемый видеодекодер 180. Масштабируемый видеодекодер 180, например, может соответствовать видеодекодеру 26 на Фиг.2. Масштабируемый видеодекодер 180 на Фиг.13 включает в себя модуль 181 демультиплексирования, модули 182A и 182B обратного квантования, модуль 183 обратного преобразования, модуль 184 предсказания, хранилище 185 кадров и сумматоры 186A и 186B.13 is a block diagram illustrating an exemplary scalable video decoder 180. Scalable video decoder 180, for example, may correspond to video decoder 26 in FIG. The scalable video decoder 180 in FIG. 13 includes a demultiplexing unit 181, inverse quantization units 182A and 182B, inverse transform unit 183, prediction unit 184, frame storage 185, and adders 186A and 186B.

Модуль 181 демультиплексирования принимает масштабируемое закодированное видео и демультиплексирует сигналы. В некоторых случаях модуль 181 демультиплексирования может включать в себя статистические декодеры для статистического декодирования данных базового и улучшающего слоя. В других случаях декодеры базового и улучшающего слоя могут быть отдельными от модуля демультиплексирования.The demultiplexing unit 181 receives scalable encoded video and demultiplexes the signals. In some cases, demultiplexing unit 181 may include statistical decoders for statistical decoding of base and enhancement layer data. In other cases, the base and enhancement layer decoders may be separate from the demultiplexing module.

Модуль 182A обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, ассоциированных с базовым слоем, и модуль 182B обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, ассоциированных с улучшающим слоем. В одном примере модуль 182A обратного квантования может квантовать остаточные коэффициенты c использованием первого параметра QP, и модуль 182B обратного квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2. Соответствующие множества подвергнутых обратному квантованию коэффициентов преобразования, выведенные модулями 182A и 182B обратного квантования, складываются в сумматоре 186A для формирования воссозданного остаточного блока преобразования. Как описано выше, подвергнутые обратному квантованию коэффициенты преобразования, выведенные модулем 182A обратного квантования, могут соответствовать основному уровню качества, и подвергнутые обратному квантованию коэффициенты преобразования, выведенные модулем 182B обратного квантования, при их добавлении к выходным данным модуля 182A обратного квантования дают в результате увеличенный уровень качества.The inverse quantization unit 182A inverse quantizes the quantized residual coefficients associated with the base layer, and the inverse quantization unit 182B inverse quantizes the quantized residual coefficients associated with the enhancement layer. In one example, the inverse quantization unit 182A may quantize the residual coefficients using the first QP parameter, and the inverse quantization unit 182B may quantize the residual coefficient differences using the second QP parameter. The second parameter QP, for example, can be half the value of the first parameter QP, that is, equal to QP / 2. The respective sets of inverse quantized transform coefficients output by the inverse quantization units 182A and 182B are added to the adder 186A to form a recreated residual transform unit. As described above, the inverse quantized transform coefficients output by the inverse quantization unit 182A may correspond to a basic quality level, and the inverse quantized transform coefficients output by the inverse quantization unit 182B, when added to the output of the inverse quantization unit 182A, result in an increased level quality.

Модуль 183 обратного преобразования применяет обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразование, обратное вейвлетное преобразование или обратное направленное преобразование, к сумме остаточных блоков коэффициентов, подвергнутых обратному квантованию, для получения остаточного блока значений пикселей. Сумматор 186B складывает блок предсказания, сформированный модулем 184 предсказания, с остаточным блоком значений пикселей для образования воссозданного видеоблока базового слоя. Как подробно описано выше, модуль 184 предсказания может сформировать блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания, которые могут быть сохранены в хранилище 185 кадров.The inverse transform unit 183 applies the inverse transform, such as the inverse DCT transform, the inverse integer transform, the inverse wavelet transform, or the inverse directional transform, to the sum of the residual blocks of coefficients subjected to inverse quantization to obtain a residual block of pixel values. Adder 186B adds the prediction block generated by the prediction unit 184 with a residual block of pixel values to form a recreated video block of the base layer. As described in detail above, prediction module 184 may generate a prediction block using one or more adjacent blocks within a normal frame in the case of intra prediction or one or more blocks within adjacent frames in the case of inter prediction that can be stored in a frame store 185.

Фиг.14 является блок-схемой, иллюстрирующей еще один примерный масштабируемый видеодекодер 190. Масштабируемый видеодекодер 190, например, может соответствовать видеодекодеру 26 на Фиг.2. Масштабируемый видеодекодер 190 на Фиг.14 включает в себя модуль 191 демультиплексирования, модули 192A и 192B обратного квантования, модули 193A и 193B обратного преобразования, модуль 194 предсказания, хранилище 195 кадров и сумматоры 196A и 196B.14 is a block diagram illustrating another exemplary scalable video decoder 190. Scalable video decoder 190, for example, may correspond to video decoder 26 in FIG. The scalable video decoder 190 of FIG. 14 includes a demultiplexing unit 191, inverse quantization units 192A and 192B, inverse transform units 193A and 193B, a prediction unit 194, frame storage 195, and adders 196A and 196B.

Модуль 191 демультиплексирования принимает масштабируемое закодированное видео и демультиплексирует сигналы. В некоторых случаях модуль 181 демультиплексирования может включать в себя статистические декодеры для статистического декодирования данных базового и улучшающего слоя. В других случаях декодеры базового и улучшающего слоя могут быть отдельными от модуля демультиплексирования.The demultiplexing unit 191 receives scalable encoded video and demultiplexes the signals. In some cases, demultiplexing unit 181 may include statistical decoders for statistical decoding of base and enhancement layer data. In other cases, the base and enhancement layer decoders may be separate from the demultiplexing module.

Модуль 192A обратного квантования и модуль 193A обратного преобразования применяют операции обратного квантования и обратного преобразования к декодированным остаточным коэффициентам, ассоциированным с базовым слоем, для получения воссозданной версии остаточного блока базового слоя. Модуль 192B обратного квантования и модуль 193B обратного преобразования применяют операции обратного квантования и обратного преобразования к декодированным остаточным коэффициентам, ассоциированным с улучшающим слоем, для получения воссозданной версии остаточного блока улучшающего слоя. В одном примере модуль 192A обратного квантования может квантовать остаточные коэффициенты с использованием первого параметра QP, и модуль 192B обратного квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2.The inverse quantization module 192A and the inverse transform module 193A apply the inverse quantization and inverse transform operations to the decoded residual coefficients associated with the base layer to obtain a recreated version of the residual block of the base layer. The inverse quantization module 192B and the inverse transform module 193B apply the inverse quantization and inverse transform operations to the decoded residual coefficients associated with the enhancement layer to obtain a recreated version of the residual enhancement layer block. In one example, the inverse quantization module 192A may quantize the residual coefficients using the first QP parameter, and the inverse quantization module 192B may quantize the residual coefficient differences using the second QP parameter. The second parameter QP, for example, can be half the value of the first parameter QP, that is, equal to QP / 2.

Модуль 194 предсказания может сформировать блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания, которые могут быть сохранены в хранилище 195 кадров. Сумматор 196A добавляет блок предсказания, сформированный модулем 194 предсказания, к воссозданному остаточному блоку, выведенному из модуля 193 обратного преобразования, для формирования декодированных видеоданных на базовом уровне качества. Декодированные видеоданные, имеющие базовый уровень качества, выводятся из масштабируемого видеокодера 190.Prediction unit 194 may generate a prediction block using one or more adjacent blocks within an ordinary frame in the case of intra prediction or one or more blocks within adjacent frames in the case of inter prediction, which can be stored in a frame store 195. Adder 196A adds the prediction block generated by the prediction unit 194 to the recreated residual block derived from the inverse transform module 193 to generate decoded video data at a basic quality level. Decoded video data having a basic level of quality is output from scalable video encoder 190.

Декодированные видеоданные, имеющие базовый уровень качества, также предоставляются на сумматор 196B. Сумматор 196B складывает выходные данные сумматора 196 с воссозданной версией остаточного блока улучшающего слоя, выведенной из модуля обратного 193B преобразования, для формирования декодированных видеоданных на втором, более высоком уровне качества. Декодированные видеоданные, имеющие базовый уровень качества, выводятся из масштабируемого видеокодера 190.Decoded video data with a basic level of quality is also provided on the adder 196B. Adder 196B adds the output of adder 196 with a recreated version of the residual block of the enhancement layer derived from the inverse transform module 193B to generate decoded video data at a second, higher quality level. Decoded video data having a basic level of quality is output from scalable video encoder 190.

Фиг.15 является блок-схемой, иллюстрирующей еще один примерный видеокодер 200. В примере на Фиг.15 кодер 30 базового слоя включает в себя модуль 33A предсказания, хранилище 35A кадров, модуль 38A преобразования, модуль 40A квантования, модуль 41A сканирования коэффициентов, модуль 42A обратного квантования, модуль 44A обратного преобразования, статистический кодер 46 базового слоя, сумматоры 48A-48C и модуль 40A внутреннего предсказания. Отражение различных отличительных признаков на Фиг.15 как модулей предназначено для выделения различных функциональных аспектов проиллюстрированных устройств и не обязательно подразумевает, что такие модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Напротив, функциональные возможности, ассоциированные с одним или более модулями, могут быть интегрированы в обыкновенных или в отдельных аппаратных или программных компонентах.15 is a block diagram illustrating another exemplary video encoder 200. In the example of FIG. 15, the base layer encoder 30 includes a prediction unit 33A, a frame store 35A, a transform module 38A, a quantization module 40A, a coefficient scanning module 41A, a module Inverse quantization 42A, inverse transform module 44A, base layer statistic encoder 46, adders 48A-48C, and intra prediction module 40A. The reflection of the various distinguishing features in FIG. 15 as modules is intended to highlight various functional aspects of the illustrated devices and does not necessarily imply that such modules must be implemented through separate hardware or software components. In contrast, the functionality associated with one or more modules can be integrated into ordinary or separate hardware or software components.

Модуль 33A предсказания формирует блок предсказания с использованием внешнего предсказания, например предсказание с компенсацией движения. Блок предсказания может являться предсказанной версией текущего кодируемого видеоблока. Как описано выше, модуль 33A предсказания может формировать блок предсказания с использованием внешнего предсказания на основе одного или более ранее закодированных блоков в пределах одного или более смежных кадров базового слоя. Модуль 33A предсказания может извлекать ранее закодированный блок из хранилища 35A кадров.Prediction unit 33A generates a prediction block using inter prediction, for example motion compensation prediction. The prediction block may be a predicted version of the current encoded video block. As described above, prediction unit 33A may generate a prediction block using inter prediction based on one or more previously encoded blocks within one or more adjacent frames of the base layer. Prediction unit 33A may retrieve a previously encoded block from frame storage 35A.

После внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, созданного модулем 33A предсказания, из текущего видеоблока в сумматоре 48A. Остаточный блок включает в себя множество значений разностей пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицей или массивом значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After inter prediction of the video blocks, the base layer encoder 30 generates a residual block by subtracting the prediction block created by the prediction unit 33A from the current video block in the adder 48A. The residual block includes a plurality of pixel difference values that determine the number of differences between the pixel values of the current video block and the pixel values of the prediction block. The residual block can be represented in the format of a two-dimensional block (for example, a two-dimensional matrix or an array of pixel values). In other words, the residual block is a two-dimensional representation of pixel values.

Модуль 38A преобразования применяет преобразование к остаточному блоку для получения остаточных коэффициентов преобразования. Модуль 38A преобразования, например, может применить преобразование DCT, целочисленное преобразование, направленное преобразование, вейвлетное преобразование или их комбинацию. После применения преобразования к остаточному блоку значений пикселей модуль 40A квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. После квантования модуль 42A обратного квантования и модуль 44A обратного преобразования могут применить обратное квантование и обратное преобразование соответственно для воссоздания остаточного блока. Сумматор 48B добавляет воссозданный остаточный блок к блоку предсказания, созданному модулем 33A предсказания, для получения воссозданного видеоблока для сохранения в хранилище 35A кадров. Воссозданный видеоблок, сохраненный в хранилище 34 кадров, может использоваться модулем 32 предсказания из кодера 30 базового слоя для внутреннего или внешнего кодирования последующего видеоблока. Вдобавок, как будет описано более подробно ниже, воссозданный видеоблок, сохраненный в хранилище 35A кадров, может использоваться модулем 33B предсказания кодера 32 улучшающего слоя для внутреннего или внешнего кодирования уточнений видеоблока в улучшающем слое.The transform unit 38A applies the transform to the residual block to obtain residual transform coefficients. Transform unit 38A, for example, may apply a DCT transform, integer transform, directional transform, wavelet transform, or a combination thereof. After applying the transform to the residual block of pixel values, the quantization unit 40A quantizes the transform coefficients to further reduce the bit rate. After quantization, the inverse quantization unit 42A and the inverse transform unit 44A may apply inverse quantization and inverse transform, respectively, to recreate the residual block. Adder 48B adds the recreated residual block to the prediction block created by the prediction unit 33A to obtain a recreated video block for storage in the frame store 35A. The reconstructed video block stored in the frame storage 34 may be used by the prediction module 32 from the base layer encoder 30 for internal or external encoding of the subsequent video block. In addition, as will be described in more detail below, the reconstructed video block stored in the frame store 35A may be used by the prediction unit 33B of the enhancement layer encoder 32 for internally or externally encoding the refinements of the video block in the enhancement layer.

После квантования сумматор 48C вычитает из квантованных остаточных коэффициентов внутренне предсказанный блок, сформированный модулем 40A внутреннего предсказания. Модуль 40A внутреннего предсказания может формировать блок предсказания с использованием внутреннего предсказания на основе одного или более ранее закодированных блоков в пределах того же самого кадра, что и текущий кодируемый блок. Статистический кодер 46 базового слоя статистически кодирует коэффициенты, выведенные из сумматора 48C, например, с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10 AVC и подробно описано выше в отношении Фиг.2.After quantization, the adder 48C subtracts from the quantized residual coefficients the intra-predicted block generated by the intra-prediction unit 40A. The intra prediction unit 40A may generate a prediction block using intra prediction based on one or more previously encoded blocks within the same frame as the current encoded block. The base layer statistic encoder 46 statistically encodes coefficients derived from the adder 48C, for example, using CAVLC encoding as defined in the H.264 / MPEG-4 standard, AVC part 10 and described in detail above with respect to FIG. 2.

Кодер 72 улучшающего слоя включает в себя модуль 33B предсказания, хранилище 35B кадров, модуль 38B преобразования, модуль 40B квантования, модуль 41B сканирования коэффициентов, модуль 42B обратного квантования, модуль 44B обратного преобразования, статистический кодер 49 улучшающего слоя и сумматоры 48D-48F. Модули кодера 32 улучшающего слоя в значительной степени сходны с аналогично пронумерованными модулями кодера 30 базового слоя. Таким образом, будут описаны только различия.Enhancement layer encoder 72 includes prediction module 33B, frame storage 35B, transform module 38B, quantization module 40B, coefficient scanning module 41B, inverse quantization module 42B, inverse transform module 44B, enhancement layer statistical encoder 49, and adders 48D-48F. The modules of the enhancement layer encoder 32 are substantially similar to the similarly numbered modules of the base layer encoder 30. Thus, only differences will be described.

Модуль 33B предсказания кодера 32 улучшающего слоя формирует блок предсказания, который является предсказанной версией текущего видеоблока. В отличие от модуля 33A предсказания кодера 30 базового слоя, который использует ранее закодированные блоки базового слоя для формирования блоков предсказания, модуль 33B предсказания кодера 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков улучшающего слоя. Воссозданный видеоблок улучшающего слоя может иметь второй, более высокий уровень качества, чем блок предсказания базового слоя.Prediction unit 33B of enhancement layer encoder 32 generates a prediction block, which is a predicted version of the current video block. Unlike the prediction unit 33A of the base layer encoder 30, which uses the previously encoded base layer blocks to form the prediction blocks, the prediction module 33B of the enhancement layer encoder 32 may generate a prediction block based on one or more previously encoded enhancement layer blocks. The recreated video block of the enhancement layer may have a second, higher quality level than the prediction block of the base layer.

Добавочное различие между кодером 32 улучшающего слоя и кодером 30 базового слоя состоит в том, что выходные данные модуля 42B обратного квантования кодера 32 улучшающего слоя комбинируются с выходными данными модуля 42A обратного квантования кодера 30 улучшающего слоя в сумматоре 48F. Сложение выходных данных модулей 42A и 42B обратного квантования формирует воссозданный видеоблок более высокого качества, тем самым давая возможность лучшего предсказания описанным выше модулем предсказания.An additional difference between the enhancement layer encoder 32 and the base layer encoder 30 is that the output of the inverse quantization module 42B of the enhancement layer encoder 32 is combined with the output of the inverse quantization module 42A of enhancement layer encoder 30 in the adder 48F. Adding the output of the inverse quantization modules 42A and 42B forms a recreated video block of higher quality, thereby enabling better prediction of the prediction module described above.

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

Код может быть исполнен одним или более процессорами, такими как один или более процессоров цифровых сигналов (DSP), микропроцессоры общего назначения, специализированные интегральные схемы (ASIC), программируемые вентильные матрицы (FPGA) или другие эквивалентные интегрированные или дискретные логические схемы. В соответствии с этим используемый здесь термин "процессор" может обозначать любую предшествующую структуру или любую другую структуру, подходящую для осуществления описанных здесь методик. Вдобавок, в некоторых аспектах описанные здесь функциональные возможности могут быть предоставлены в пределах специализированных программных модулей или аппаратных модулей, сконфигурированных с возможностью кодирования и декодирования, или встроенных в комбинированный кодер-декодер (CODEC) видео. Описание различных отличительных признаков как модулей предназначено для выделения различных функциональных аспектов проиллюстрированных устройств и необязательно подразумевает, что такие модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Напротив, функциональные возможности, ассоциированные с одним или более модулями, могут быть интегрированы в обыкновенных или в отдельных аппаратных или программных компонентах.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), programmable gate arrays (FPGAs), or other equivalent integrated or discrete logic circuits. Accordingly, the term “processor” as used herein may mean any preceding structure or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided within specialized software modules or hardware modules configured to encode and decode, or integrated into a combined video codec (CODEC). The description of the various distinguishing features as modules is intended to highlight the various functional aspects of the illustrated devices and does not necessarily imply that such modules must be implemented through separate hardware or software components. In contrast, the functionality associated with one or more modules can be integrated into ordinary or separate hardware or software components.

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

Claims (66)

1. Способ кодирования видеоданных с использованием масштабируемого кодирования видео, способ содержит этапы, на которых:
кодируют видеоблок с первым качеством, как часть битового потока базового слоя; и
кодируют как часть по меньшей мере одного битового потока улучшающего слоя, уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются без выполнения первого прохода кодирования для сбора статистики для использования при выборе таблицы кодирования видео, при этом кодирование уточнения содержит, для каждого отличного от нуля коэффициента уточнений видеоблока, кодирование символа для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длины серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знака отличного от нуля коэффициента; и корректируют величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.
1. A method of encoding video data using scalable video encoding, the method comprises the steps of:
encode the video block with the first quality as part of the bitstream of the base layer; and
encode as part of at least one bit stream of the enhancement layer, refinement of the video block, which when combined with the video block encoded with the first quality, results in a video block having a second quality that is greater than the first quality, and the refinement of the video block is encoded without performing a first encoding pass for collecting statistics for use when choosing a video encoding table, the refinement encoding contains, for each non-zero refinement coefficient of the video block, an encoding the use of a symbol to indicate the presence of at least one remaining non-zero coefficient, a series length to indicate the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient; and correct the values of non-zero refinement coefficients of the video block, making them equal to unity.
2. Способ по п.1, в котором кодирование уточнений видеоблока содержит этап, на котором кодируют каждый отличный от нуля коэффициент уточнений без анализа любых последующих коэффициентов.2. The method according to claim 1, wherein encoding the refinement of the video block comprises the step of encoding each non-zero refinement coefficient without analyzing any subsequent coefficients. 3. Способ по п.1, дополнительно содержащий этап, на котором кодируют символ для указания отсутствия оставшихся отличных от нуля коэффициентов в уточнениях видеоблока после кодирования последнего отличного от нуля коэффициента.3. The method according to claim 1, further comprising encoding a symbol to indicate the absence of the remaining non-zero coefficients in the refinement of the video block after encoding the last non-zero coefficient. 4. Способ по п.1, в котором корректировка величины каждого из отличных от нуля коэффициентов уточнений видеоблока, делающая их равными единице, содержит этап, на котором кодируют отличные от нуля коэффициенты без кодирования величин коэффициентов.4. The method according to claim 1, wherein adjusting the magnitude of each of the non-zero refinement coefficients of the video block, making them equal to one, comprises the step of encoding non-zero coefficients without encoding the coefficient values. 5. Способ по п.1, в котором кодирование уточнений видеоблока как части битового потока улучшающего слоя содержит этап, на котором кодируют уточнения видеоблока таким образом, что дополнительные коэффициенты уточнений видеоблока являются декодируемыми без доступа к информации коэффициентов видеоблока, закодированного с первым качеством как часть битового потока базового слоя.5. The method according to claim 1, in which the encoding of the refinement of the video block as part of the bitstream of the enhancement layer comprises the step of encoding the refinement of the video block in such a way that the additional coefficients of the refinement of the video block are decoded without access to the coefficient information of the video block encoded with the first quality as part base layer bitstream. 6. Способ по п.1, дополнительно содержащий этап, на котором кодируют уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).6. The method according to claim 1, further comprising the step of encoding the refinement of the video block using only one variable length coding table (VLC). 7. Способ по п.1, в котором кодирование видеоблока с первым качеством как части базового слоя содержит этап, на котором кодируют видеоблок с первым качеством с использованием методики кодирования, при которой анализируют вектор коэффициентов видеоблока в первом проходе кодирования и кодируют вектор коэффициентов во втором проходе кодирования на основе анализа.7. The method according to claim 1, in which the encoding of the video block with the first quality as part of the base layer comprises the step of encoding the video block with the first quality using an encoding technique in which the vector of coefficients of the video block in the first encoding pass is analyzed and the coefficient vector in the second pass coding based analysis. 8. Способ по п.7, в котором: кодирование видеоблока с первым качеством содержит этап, на котором кодируют видеоблок с первым качеством с использованием процесса контекстно-адаптивного кодирования с переменной длиной (CAVLC); и кодирование уточнений видеоблока содержит этап, на котором кодируют уточнения видеоблока с использованием одной из таблиц кодирования VLC, определенных в процессе CAVLC.8. The method according to claim 7, in which: encoding a video block with a first quality comprises encoding a video block with a first quality using a variable length context adaptive coding (CAVLC) process; and encoding the refinement of the video block comprises the step of encoding the refinement of the video block using one of the VLC coding tables defined in the CAVLC process. 9. Способ по п.1, в котором первое и второе качество содержат одно из: первое и второе отношения сигнала к шуму (SNR) и первую и вторую пространственную разрешающую способность.9. The method according to claim 1, in which the first and second quality comprise one of: the first and second signal to noise ratios (SNR) and the first and second spatial resolution. 10. Устройство для кодирования видеоданных с использованием масштабируемого кодирования видео, устройство содержит по меньшей мере один кодер, который:
кодирует видеоблок с первым качеством как часть битового потока базового слоя,
кодирует как часть по меньшей мере одного битового потока улучшающего слоя, уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, и причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
кодирует для каждого отличного от нуля коэффициента уточнений видеоблока символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
корректирует величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.
10. A device for encoding video data using scalable video encoding, the device contains at least one encoder, which:
encodes the video block with the first quality as part of the bitstream of the base layer,
encodes, as part of at least one bit stream of the enhancement layer, the refinement of the video block, which when combined with the video block encoded with the first quality, results in a video block having a second quality that is greater than the first quality, wherein the refinement of the video block is encoded in one encoding pass, and wherein refinements include at least one of additional coefficients or refinements to the coefficients;
encodes for each non-zero coefficient of refinement of the video block a symbol to indicate the presence of at least one remaining non-zero coefficient, a series length to indicate the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient; and
corrects the values of non-zero refinement coefficients of the video block, making them equal to one.
11. Устройство по п.10, в котором по меньшей мере один кодер кодирует каждый отличный от нуля коэффициент уточнений без анализа последующих коэффициентов.11. The device according to claim 10, in which at least one encoder encodes each nonzero refinement coefficient without analyzing subsequent coefficients. 12. Устройство по п.10, в котором по меньшей мере один кодер кодирует символ для указания отсутствия оставшихся отличных от нуля коэффициентов в уточнениях видеоблока после кодирования последнего отличного от нуля коэффициента.12. The device of claim 10, in which at least one encoder encodes a symbol to indicate the absence of the remaining non-zero coefficients in the refinement of the video block after encoding the last non-zero coefficient. 13. Устройство по п.10, в котором по меньшей мере один кодер кодирует отличные от нуля коэффициенты без кодирования величин коэффициентов.13. The device of claim 10, in which at least one encoder encodes non-zero coefficients without encoding the values of the coefficients. 14. Устройство по п.10, в котором по меньшей мере один кодер кодирует уточнения видеоблока таким образом, что коэффициенты уточнений видеоблока являются декодируемыми без доступа к информации коэффициентов видеоблока, закодированного с первым качеством как часть битового потока базового слоя.14. The device of claim 10, in which at least one encoder encodes the refinement of the video block so that the refinement coefficients of the video block are decoded without access to the coefficient information of the video block encoded with the first quality as part of the base layer bitstream. 15. Устройство по п.10, в котором по меньшей мере один кодер кодирует уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).15. The device according to claim 10, in which at least one encoder encodes the refinement of the video block using only one variable length coding table (VLC). 16. Устройство по п.10, в котором по меньшей мере один кодер кодирует видеоблок с первым качеством с использованием методики кодирования, при которой анализируют вектор коэффициентов видеоблока в первом проходе кодирования и кодируют вектор коэффициентов во втором проходе кодирования на основе анализа.16. The device of claim 10, in which at least one encoder encodes the video block with a first quality using an encoding technique in which the vector of coefficients of the video block in the first encoding pass is analyzed and the coefficient vector in the second encoding pass is encoded based on the analysis. 17. Устройство по п.16, в котором по меньшей мере один кодер: кодирует видеоблок с первым качеством с использованием процесса контекстно-адаптивного кодирования с переменной длиной (CAVLC); и кодирует уточнения видеоблока с использованием одной из таблиц кодирования VLC, определенных в процессе CAVLC.17. The device according to clause 16, in which at least one encoder: encodes a video block with a first quality using a context-adaptive variable-length coding (CAVLC) process; and encodes the video block refinements using one of the VLC coding tables defined in the CAVLC process. 18. Устройство по п.10, в котором первое и второе качество содержат одно из: первое и второе отношения сигнала к шуму (SNR) и первую и вторую пространственную разрешающую способность.18. The device according to claim 10, in which the first and second quality contain one of: the first and second signal to noise ratios (SNR) and the first and second spatial resolution. 19. Устройство по п.10, в котором по меньшей мере один кодер содержит: кодер базового слоя, который кодирует видеоблок с первым качеством как часть битового потока базового слоя, и кодер улучшающего слоя, который кодирует как часть по меньшей мере одного битового потока улучшающего слоя, уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества.19. The device of claim 10, wherein the at least one encoder comprises: a base layer encoder that encodes a video block with a first quality as part of a base layer bitstream, and an enhancement layer encoder that encodes as part of at least one enhancement bitstream layer, refinement of the video block, which, when combined with the video block encoded with the first quality, results in a video block having a second quality that is greater than the first quality. 20. Устройство по п.10, причем устройство является устройством беспроводной связи.20. The device according to claim 10, wherein the device is a wireless communication device. 21. Устройство по п.10, причем устройство является устройством на интегральных схемах.21. The device according to claim 10, wherein the device is an integrated circuit device. 22. Машиночитаемый носитель, содержащий команды, чтобы заставить один или более процессоров:
кодировать видеоблок с первым качеством как часть битового потока базового слоя; и
кодировать, как часть по меньшей мере одного битового потока улучшающего слоя, дополнительные коэффициенты уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, и причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
кодировать, для каждого отличного от нуля коэффициента уточнений видеоблока, символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
корректировать величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.
22. Machine-readable medium containing instructions to force one or more processors:
encode the video block with the first quality as part of the bitstream of the base layer; and
encode, as part of at least one bit stream of the enhancement layer, additional refinement coefficients of the video block, which, when combined with the video block encoded with the first quality, result in a video block having a second quality that is greater than the first quality, and the refinement of the video block is encoded in one a coding pass, and wherein refinements include at least one of additional coefficients or refinements to the coefficients;
encode, for each non-zero refinement coefficient of the video block, a symbol to indicate the presence of at least one remaining non-zero coefficient, a series length to indicate the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient; and
Correct the values of non-zero refinement coefficients of the video block, making them equal to unity.
23. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать каждый отличный от нуля коэффициент уточнений без анализа последующих коэффициентов.23. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode each non-zero refinement coefficient without analyzing subsequent coefficients. 24. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать символ для указания отсутствия оставшихся отличных от нуля коэффициентов в уточнениях видеоблока после кодирования последнего отличного от нуля коэффициента.24. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode a character to indicate that there are no remaining non-zero coefficients in the refinement of the video block after encoding the last non-zero coefficient. 25. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать отличные от нуля коэффициенты без кодирования величин коэффициентов.25. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode non-zero coefficients without encoding coefficient values. 26. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать уточнения видеоблока таким образом, что коэффициенты уточнений видеоблока являются декодируемыми без доступа к информации коэффициентов видеоблока, закодированного с первым качеством, как часть битового потока базового слоя.26. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode the video block refinements in such a way that the video block refinement coefficients are decoded without access to the video block coefficient information encoded with the first quality as part of the base layer bitstream. 27. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).27. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode the refinement of the video block using only one variable length coding table (VLC). 28. Машиночитаемый носитель по п.22, в котором команды заставляют один или более процессоров кодировать видеоблок с первым качеством с использованием методики кодирования, при которой анализируют вектор коэффициентов видеоблока в первом проходе кодирования и кодируют вектор коэффициентов во втором проходе кодирования на основе анализа.28. The computer-readable medium of claim 22, wherein the instructions cause one or more processors to encode the video block with a first quality using an encoding technique in which the coefficient vector of the video block in the first encoding pass is analyzed and the coefficient vector in the second encoding pass is encoded based on the analysis. 29. Машиночитаемый носитель по п.28, в котором команды заставляют один или более процессоров: кодировать видеоблок с первым качеством с использованием процесса контекстно-адаптивного кодирования с переменной длиной (CAVLC); и кодировать уточнения видеоблока с использованием одной из таблиц кодирования VLC, определенных в процессе CAVLC.29. The computer-readable medium of claim 28, wherein the instructions force one or more processors: encode a video block with a first quality using a variable length context adaptive coding (CAVLC) process; and encode the video block refinements using one of the VLC coding tables defined in the CAVLC process. 30. Машиночитаемый носитель по п.22, в котором первое и второе качество содержат одно из: первое и второе отношения сигнала к шуму (SNR) и первую и вторую пространственную разрешающую способность.30. The computer readable medium of claim 22, wherein the first and second quality comprise one of: a first and second signal to noise ratio (SNR) and a first and second spatial resolution. 31. Устройство для кодирования видеоданных с использованием масштабируемого кодирования видео, устройство содержит:
первое средство для кодирования видеоблока с первым качеством как части битового потока базового слоя; и
второе средство для кодирования, как части по меньшей мере одного битового потока улучшающего слоя, уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
при этом второе средство кодирования кодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
при этом второе средство кодирования корректирует величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.
31. A device for encoding video using scalable video encoding, the device comprises:
first means for encoding a video block with a first quality as part of the base layer bitstream; and
second means for encoding, as part of at least one bit stream of the enhancement layer, the refinement of the video block, which when combined with the video block encoded with the first quality, results in a video block having a second quality that is greater than the first quality, and the refinement of the video block is encoded in one pass coding, and refinements include at least one of additional coefficients or refinements to the coefficients;
wherein the second encoding means encodes, for each non-zero refinement coefficient of the video block, a symbol for indicating the presence of at least one remaining non-zero coefficient, a series length for indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient , and
wherein the second encoding means corrects the values of non-zero refinement coefficients of the video block, making them equal to one.
32. Устройство по п.31, в котором второе средство кодирования кодирует каждый отличный от нуля коэффициент уточнений без анализа последующих коэффициентов.32. The device according to p, in which the second encoding means encodes each nonzero refinement coefficient without analyzing subsequent coefficients. 33. Устройство по п.32, в котором второе средство кодирования кодирует символ для указания отсутствия оставшихся отличных от нуля коэффициентов в уточнениях видеоблока после кодирования последнего отличного от нуля коэффициента.33. The device according to p, in which the second encoding means encodes a symbol to indicate the absence of the remaining non-zero coefficients in the refinement of the video block after encoding the last non-zero coefficient. 34. Устройство по п.31, в котором второе средство кодирования кодирует отличные от нуля коэффициенты без кодирования величин коэффициентов.34. The device according to p, in which the second encoding means encodes non-zero coefficients without encoding the values of the coefficients. 35. Устройство по п.31, в котором второе средство кодирования кодирует уточнения видеоблока таким образом, что коэффициенты уточнений видеоблока являются декодируемыми без доступа к информации коэффициентов видеоблока, закодированного с первым качеством как часть битового потока базового слоя.35. The device according to p, in which the second encoding means encodes the refinement of the video block so that the coefficients of the refinement of the video block are decoded without access to the coefficient information of the video block encoded with the first quality as part of the base layer bitstream. 36. Устройство по п.31, в котором второе средство кодирования кодирует уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).36. The device according to p, in which the second encoding means encodes the refinement of the video block using only one variable length coding table (VLC). 37. Устройство по п.31, в котором первое средство кодирования, кодирующее видеоблок с первым качеством как часть базового слоя, содержит кодирование видеоблока с первым качеством с использованием методики кодирования, при которой анализируют вектор коэффициентов видеоблока в первом проходе кодирования и кодируют вектор коэффициентов во втором проходе кодирования на основе анализа.37. The device according to p, in which the first encoding means encoding the video block with the first quality as part of the base layer, comprises encoding the video block with the first quality using the encoding technique, in which the vector of coefficients of the video block in the first encoding pass is analyzed and the coefficient vector second pass analysis-based coding. 38. Устройство по п.37, в котором первое средство кодирования: кодирует видеоблок с первым качеством с использованием процесса контекстно-адаптивного кодирования с переменной длиной (CAVLC); и кодирует уточнения видеоблока с использованием одной из таблиц кодирования VLC, определенных в процессе CAVLC.38. The device according to clause 37, in which the first encoding means: encodes a video block with a first quality using a context-adaptive variable-length coding (CAVLC) process; and encodes the video block refinements using one of the VLC coding tables defined in the CAVLC process. 39. Устройство по п.31, в котором первое и второе качество содержат одно из: первое и второе отношения сигнала к шуму (SNR) и первую и вторую пространственную разрешающую способность.39. The device according to p, in which the first and second quality contain one of: the first and second signal to noise ratios (SNR) and the first and second spatial resolution. 40. Способ декодирования видеоданных с использованием масштабируемого кодирования видео, способ содержит этапы, на которых:
декодируют битовый поток базового слоя для получения видеоблока с первым качеством;
декодируют битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам, и причем декодирование улучшающего слоя включает в себя этап, на котором декодируют, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
устанавливают величину каждого отличного от нуля коэффициента вектора коэффициентов равной единице.
40. A method for decoding video data using scalable video encoding, the method comprises the steps of:
decode the bitstream of the base layer to obtain a video block with the first quality;
the enhancement layer bitstream is decoded to obtain video block refinements which, when combined with the video block decoded with the first quality, result in a video block having a second quality, and the refinements include at least one of additional coefficients or refinements to the coefficients, and decoding the enhancement layer includes the step of decoding, for each non-zero refinement coefficient of the video block, a symbol indicating the presence of at least one remaining I have a non-zero coefficient, the length of the series, indicating the number of zero coefficients preceding the nonzero coefficient and a sign of non-zero coefficient, and
set the value of each non-zero coefficient of the coefficient vector equal to unity.
41. Способ по п.40, дополнительно содержащий этап, на котором декодируют символ, следующий за последним отличным от нуля коэффициентом, который указывает отсутствие оставшихся отличных от нуля коэффициентов в уточнениях видеоблока.41. The method of claim 40, further comprising decoding a character following the last non-zero coefficient, which indicates the absence of the remaining non-zero coefficients in the refinement of the video block. 42. Способ по п.41, дополнительно содержащий этап, на котором формируют вектор коэффициентов для уточнений видеоблока с использованием декодированной серии каждого коэффициента, знака каждого коэффициента и символа, указывающего отсутствие оставшихся отличных от нуля коэффициентов.42. The method according to paragraph 41, further comprising forming a vector of coefficients for refinement of the video block using a decoded series of each coefficient, the sign of each coefficient, and a symbol indicating the absence of remaining non-zero coefficients. 43. Способ по п.40, в котором декодирование уточнений видеоблока содержит этап, на котором декодируют уточнения видеоблока без доступа к информации коэффициентов видеоблока, закодированного с первым качеством.43. The method of claim 40, wherein decoding the refinement of the video block comprises decoding the refinement of the video block without accessing the coefficient information of the video block encoded with the first quality. 44. Способ по п.40, дополнительно содержащий этап, на котором декодируют уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).44. The method according to clause 40, further comprising the step of decoding the refinement of the video block using only one variable length coding table (VLC). 45. Способ по п.44, в котором одна таблица кодирования VLC содержит одну из таблиц кодирования VLC, специфицированных в процессе CAVLC.45. The method according to item 44, in which one VLC coding table contains one of the VLC coding tables specified in the CAVLC process. 46. Устройство для декодирования видеоданных с использованием масштабируемого кодирования видео, устройство содержит по меньшей мере один декодер, который:
декодирует битовый поток базового слоя для получения видеоблока с первым качеством; и
декодирует битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество,
причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам,
причем по меньшей мере один декодер декодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
при этом по меньшей мере один декодер устанавливает величины каждого отличного от нуля коэффициента вектора коэффициентов равными единице.
46. A device for decoding video data using scalable video encoding, the device comprises at least one decoder, which:
decodes the base layer bitstream to obtain a video block with a first quality; and
decodes the bitstream of the enhancement layer to obtain refinements of the video block, which, when combined with the video block decoded with the first quality, results in a video block having a second quality,
wherein refinements include at least one of additional coefficients or refinements to the coefficients,
wherein at least one decoder decodes, for each non-zero refinement coefficient of the video block, a symbol indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and a non-zero sign coefficient, and
wherein at least one decoder sets the values of each non-zero coefficient of the coefficient vector to unity.
47. Устройство по п.46, в котором по меньшей мере один декодер декодирует символ, следующий за последним отличным от нуля коэффициентом, который указывает отсутствие оставшихся отличных от нуля коэффициентов в уточнениях видеоблока.47. The device according to item 46, in which at least one decoder decodes the character following the last non-zero coefficient, which indicates the absence of the remaining non-zero coefficients in the refinement of the video block. 48. Устройство по п.47, в котором по меньшей мере один декодер формирует вектор коэффициентов для уточнений видеоблока с использованием декодированной серии каждого коэффициента, знака каждого коэффициента и символа, указывающего отсутствие оставшихся отличных от нуля коэффициентов.48. The device according to clause 47, in which at least one decoder generates a vector of coefficients for refinement of the video block using a decoded series of each coefficient, the sign of each coefficient and a symbol indicating the absence of remaining non-zero coefficients. 49. Устройство по п.46, в котором по меньшей мере один декодер декодирует уточнения видеоблока без доступа к информации коэффициентов видеоблока, закодированного с первым качеством.49. The device according to item 46, in which at least one decoder decodes the refinement of the video block without access to the coefficient information of the video block encoded with the first quality. 50. Устройство по п.46, в котором по меньшей мере один декодер декодирует уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).50. The device according to item 46, in which at least one decoder decodes the refinement of the video block using only one variable length coding table (VLC). 51. Устройство по п.50, в котором одна таблица кодирования VLC содержит одну из таблиц кодирования VLC, специфицированных в процессе CAVLC.51. The device according to item 50, in which one VLC coding table contains one of the VLC coding tables specified in the CAVLC process. 52. Устройство по п.46, в котором по меньшей мере один декодер содержит:
декодер базового слоя, который декодирует битовый поток базового слоя для получения видеоблока с первым качеством; и декодер улучшающего слоя, который декодирует битовый поток улучшающего слоя для получения уточнений видеоблока.
52. The device according to item 46, in which at least one decoder comprises:
a base layer decoder that decodes the base layer bitstream to obtain a video block with a first quality; and an enhancement layer decoder that decodes the enhancement layer bitstream to obtain refinements to the video block.
53. Устройство по п.46, причем устройство является устройством беспроводной связи.53. The device according to item 46, and the device is a wireless communication device. 54. Устройство по п.46, причем устройство является устройством на интегральных схемах.54. The device according to item 46, and the device is a device on integrated circuits. 55. Машиночитаемый носитель, содержащий команды, чтобы заставить один или более процессоров:
декодировать битовый поток базового слоя для получения видеоблока с первым качеством; и
декодировать битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
декодировать, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
устанавливать величину каждого отличного от нуля коэффициента вектора коэффициентов равной единице.
55. A computer-readable medium containing instructions to force one or more processors:
decode the base layer bitstream to obtain a video block with a first quality; and
decode the enhancement layer bitstream to obtain video block refinements which, when combined with the video block decoded with the first quality, result in a video block having a second quality, wherein the refinements include at least one of additional coefficients or refinements to the coefficients;
decode, for each non-zero refinement coefficient of the video block, a symbol indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient; and
set the value of each non-zero coefficient of the coefficient vector equal to unity.
56. Машиночитаемый носитель по п.55, в котором команды заставляют один или более процессоров декодировать символ, следующий за последним отличным от нуля коэффициентом, который указывает отсутствие оставшихся отличных от нуля коэффициентов в уточнениях видеоблока.56. The computer-readable medium of claim 55, wherein the instructions cause one or more processors to decode the character following the last non-zero coefficient, which indicates the absence of the remaining non-zero coefficients in the refinement of the video block. 57. Машиночитаемый носитель по п.56, в котором команды заставляют один или более процессоров формировать вектор коэффициентов для уточнений видеоблока с использованием декодированной серии каждого коэффициента, знака каждого коэффициента и символа, указывающего отсутствие оставшихся отличных от нуля коэффициентов.57. The computer-readable medium of claim 56, wherein the instructions cause one or more processors to form a coefficient vector to refine the video block using a decoded series of each coefficient, the sign of each coefficient, and a symbol indicating the absence of remaining non-zero coefficients. 58. Машиночитаемый носитель по п.55, в котором команды заставляют один или более процессоров декодировать уточнения видеоблока без доступа к информации коэффициентов видеоблока, закодированного с первым качеством.58. The computer-readable medium of claim 55, wherein the instructions cause one or more processors to decode the refinement of the video block without accessing the coefficient information of the video block encoded with the first quality. 59. Машиночитаемый носитель по п.55, в котором команды заставляют один или более процессоров декодировать уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).59. The computer-readable medium of claim 55, wherein the instructions cause one or more processors to decode the video block refinements using only one variable length coding table (VLC). 60. Машиночитаемый носитель по п.59, в котором одна таблица кодирования VLC содержит одну из таблиц кодирования VLC, специфицированных в процессе CAVLC.60. The computer-readable medium of claim 59, wherein one VLC coding table comprises one of the VLC coding tables specified in the CAVLC process. 61. Устройство для декодирования видеоданных с использованием масштабируемого кодирования видео, устройство содержит:
первое средство для декодирования битового потока базового слоя для получения видеоблока с первым качеством;
второе средство для декодирования битового потока улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, и
третье средство для установления величины каждого отличного от нуля коэффициента вектора коэффициентов равной единице,
причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам,
причем второе средство декодирования декодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.
61. A device for decoding video data using scalable video encoding, the device comprises:
first means for decoding the base layer bitstream to obtain a video block with a first quality;
second means for decoding the enhancement layer bitstream to obtain refinements of the video block, which when combined with the video block decoded with the first quality, results in a video block having a second quality, and
third means for establishing the magnitude of each non-zero coefficient of the coefficient vector equal to one,
wherein refinements include at least one of additional coefficients or refinements to the coefficients,
wherein the second decoding means decodes, for each non-zero refinement coefficient of the video block, a symbol indicating the presence of at least one remaining non-zero coefficient, a series length indicating the number of zero coefficients preceding the non-zero coefficient, and the sign of the non-zero coefficient.
62. Устройство по п.61, в котором второе средство декодирования декодирует символ, следующий за последним отличным от нуля коэффициентом, который указывает отсутствие оставшихся отличных от нуля коэффициентов в уточнениях видеоблока.62. The device according to 61, in which the second decoding means decodes the symbol following the last non-zero coefficient, which indicates the absence of the remaining non-zero coefficients in the refinement of the video block. 63. Устройство по п.62, дополнительно содержащее средство для формирования вектора коэффициентов для уточнений видеоблока с использованием декодированной серии каждого коэффициента, знака каждого коэффициента и символа, указывающего отсутствие оставшихся отличных от нуля коэффициентов.63. The device according to item 62, further comprising means for generating a vector of coefficients for refinement of the video block using a decoded series of each coefficient, the sign of each coefficient and a symbol indicating the absence of remaining non-zero coefficients. 64. Устройство по п.61, в котором второе средство декодирования декодирует уточнения видеоблока без доступа к информации коэффициентов видеоблока, закодированного с первым качеством.64. The device according to p, in which the second decoding means decodes the refinement of the video block without access to the coefficient information of the video block encoded with the first quality. 65. Устройство по п.61, в котором второе средство декодирования декодирует уточнения видеоблока с использованием только одной таблицы кодирования с переменной длиной (VLC).65. The device according to 61, in which the second decoding means decodes the refinement of the video block using only one variable length coding table (VLC). 66. Устройство по п.65, в котором одна таблица кодирования VLC содержит одну из таблиц кодирования VLC, специфицированных в процессе CAVLC. 66. The device according to item 65, in which one VLC coding table contains one of the VLC coding tables specified in the CAVLC process.
RU2010119448/07A 2007-10-15 2008-10-15 Enhancing layer improved coding for scalable video coding RU2463728C2 (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US97991907P 2007-10-15 2007-10-15
US60/979,919 2007-10-15
US98021407P 2007-10-16 2007-10-16
US60/980,214 2007-10-16
US12/250,784 2008-10-14

Publications (2)

Publication Number Publication Date
RU2010119448A RU2010119448A (en) 2011-11-27
RU2463728C2 true RU2463728C2 (en) 2012-10-10

Family

ID=40344656

Family Applications (1)

Application Number Title Priority Date Filing Date
RU2010119448/07A RU2463728C2 (en) 2007-10-15 2008-10-15 Enhancing layer improved coding for scalable video coding

Country Status (9)

Country Link
EP (1) EP2213099A1 (en)
JP (2) JP5248619B2 (en)
KR (1) KR101147943B1 (en)
CN (1) CN101855908B (en)
BR (1) BRPI0818077A2 (en)
CA (1) CA2702488C (en)
RU (1) RU2463728C2 (en)
TW (1) TWI408965B (en)
WO (1) WO2009052206A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2639675C2 (en) * 2013-04-05 2017-12-21 Кэнон Кабусики Кайся Method and device for image coding or decoding with prediction of motion information between levels under motion information compressing circuit
RU2653315C2 (en) * 2012-12-26 2018-05-07 Сони Корпорейшн Image processing device and method

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306153B2 (en) * 2009-09-21 2012-11-06 Techwell Llc Method and system for tracking phase in a receiver for 8VSB
CN105812828B (en) * 2010-07-21 2018-09-18 杜比实验室特许公司 Coding/decoding method for the transmission of multilayer frame compatible video
US8634668B2 (en) * 2011-02-25 2014-01-21 Sony Corporation Method of compression of digital images using a fixed number of bits per block
US20120257675A1 (en) * 2011-04-11 2012-10-11 Vixs Systems, Inc. Scalable video codec encoder device and methods thereof
US9578326B2 (en) * 2012-04-04 2017-02-21 Qualcomm Incorporated Low-delay video buffering in video coding
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
JP6082123B2 (en) * 2012-11-29 2017-02-15 エルジー エレクトロニクス インコーポレイティド Video encoding / decoding method supporting multiple layers
US9998735B2 (en) * 2013-04-01 2018-06-12 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
US9848199B2 (en) * 2014-03-17 2017-12-19 Qualcomm Incorporated Device and method for scalable coding of video information

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004125588A (en) * 2002-01-22 2006-01-27 Нокиа Корпорейшн (Fi) ENCRYPTION OF TRANSFORMATION COEFFICIENTS IN THE CODERS AND / OR DECODERS OF THE IMAGE AND VIDEO DATA

Family Cites Families (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2005510908A (en) * 2001-11-21 2005-04-21 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ Improved bit-plane compression method
JP4447197B2 (en) * 2002-01-07 2010-04-07 三菱電機株式会社 Moving picture encoding apparatus and moving picture decoding apparatus
JP3893350B2 (en) * 2002-11-29 2007-03-14 キヤノン株式会社 Encoded data conversion apparatus and method
JP2006237656A (en) * 2003-02-28 2006-09-07 Secom Co Ltd Coded signal separating/merging device, generator and extracting device for difference coded signal, and method and program for separating/merging coded signal
JP4014098B2 (en) * 2003-06-26 2007-11-28 株式会社Kddi研究所 Image hierarchical encoding apparatus and decoding apparatus
KR100736086B1 (en) * 2005-09-06 2007-07-06 삼성전자주식회사 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
KR100763192B1 (en) * 2005-09-26 2007-10-04 삼성전자주식회사 Method and apparatus for entropy encoding and entropy decoding FGS layer's video data
KR100714706B1 (en) * 2005-09-26 2007-05-04 삼성전자주식회사 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
US8116371B2 (en) * 2006-03-08 2012-02-14 Texas Instruments Incorporated VLC technique for layered video coding using distinct element grouping
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
KR100834757B1 (en) * 2006-03-28 2008-06-05 삼성전자주식회사 Method for enhancing entropy coding efficiency, video encoder and video decoder thereof

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2004125588A (en) * 2002-01-22 2006-01-27 Нокиа Корпорейшн (Fi) ENCRYPTION OF TRANSFORMATION COEFFICIENTS IN THE CODERS AND / OR DECODERS OF THE IMAGE AND VIDEO DATA

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
YE Y. et al, Adaptive VLC for FGS, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-T086, 20th Meeting: Klagenfurt, 15-21 July 2006. RIDGE J. et al, CE1: Improvement to FGS refinement pass, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-V077, 22nd Meeting: Marrakech, 13-19 January 2007. *
YE Y. et al, Improvements to FGS layer Variable Length Coder, JVT-S066, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, 19th Meeting, Geneva, 31 March - 7 April 2006. CHOUPANI R. et al, Scalable Video Coding: A Technical Report, CE TECHNICAL REPORT, September 2007, abstract. KARCZEWICZ M., Report of core experiment on improved refinement coefficients coding (CE1), JVT-V095, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, 22nd Meeting: Marrakech, 13-19 January 2007. KARCZEWICZ M. et al, Improved Refinement Coefficient Coding, Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG, JVT-U132, 21st Meeting, Hangzhou, 20-27 October 2006. 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. *

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
RU2653315C2 (en) * 2012-12-26 2018-05-07 Сони Корпорейшн Image processing device and method
RU2639675C2 (en) * 2013-04-05 2017-12-21 Кэнон Кабусики Кайся Method and device for image coding or decoding with prediction of motion information between levels under motion information compressing circuit
US10027975B2 (en) 2013-04-05 2018-07-17 Canon Kabushiki Kaisha Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
RU2673277C1 (en) * 2013-04-05 2018-11-23 Кэнон Кабусики Кайся Method and device for coding or decoding the image with of the movement information prediction between the levels under the combination scheme of compression information movement
RU2693649C1 (en) * 2013-04-05 2019-07-03 Кэнон Кабусики Кайся Method and device for encoding or decoding an image with prediction of motion information between levels in accordance with a traffic information compression circuit

Also Published As

Publication number Publication date
BRPI0818077A2 (en) 2015-03-31
KR101147943B1 (en) 2012-05-23
RU2010119448A (en) 2011-11-27
KR20100066584A (en) 2010-06-17
CN101855908A (en) 2010-10-06
CA2702488A1 (en) 2009-04-23
JP2013051699A (en) 2013-03-14
JP2011501572A (en) 2011-01-06
EP2213099A1 (en) 2010-08-04
CN101855908B (en) 2012-11-21
CA2702488C (en) 2013-04-02
JP5248619B2 (en) 2013-07-31
TWI408965B (en) 2013-09-11
WO2009052206A1 (en) 2009-04-23
JP5456867B2 (en) 2014-04-02
TW200934250A (en) 2009-08-01

Similar Documents

Publication Publication Date Title
RU2463728C2 (en) Enhancing layer improved coding for scalable video coding
US8848787B2 (en) Enhancement layer coding for scalable video coding
JP4981927B2 (en) CAVLC extensions for SVCCGS enhancement layer coding
JP5139416B2 (en) Method and system for importance coefficient coding in video compression
RU2452128C2 (en) Adaptive coding of video block header information
RU2434360C2 (en) Adaptive coding of video block prediction mode
TWI501648B (en) Layered encoded bitstream structure
US8848789B2 (en) Method and system for coding and decoding information associated with video compression
RU2497303C2 (en) Video coding using conversion more than 4×4 and 8×8
US8401082B2 (en) Methods and systems for refinement coefficient coding in video compression
RU2482616C2 (en) Video coding of filter coefficients based on horizontal and vertical symmetry
JP2009531992A5 (en)
TW201334534A (en) Frequency domain sample adaptive offset (SAO)
RU2406259C2 (en) Methods and systems for coding of clarification coefficients in video data compression

Legal Events

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

Effective date: 20181016