RU2463728C2 - Enhancing layer improved coding for scalable video coding - Google Patents
Enhancing layer improved coding for scalable video coding Download PDFInfo
- 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
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/34—Scalability techniques involving progressive bit-plane based encoding of the enhancement layer, e.g. fine granular scalability [FGS]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/30—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using hierarchical techniques, e.g. scalability
- H04N19/36—Scalability techniques involving formatting the layers as a function of picture distortion after decoding, e.g. signal-to-noise [SNR] scalability
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods 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/91—Entropy 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
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,
При кодировании видео сжатие видео обычно включает в себя пространственное предсказание и/или оценку движения и компенсацию движения для формирования видеоблока предсказания. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности среди видеоблоков в пределах заданного элемента кодирования, например кадра или мозаичного фрагмента. Другими словами, видеокодер выполняет пространственное предсказание для сжатия данных на основе других данных в пределах того же самого элемента кодирования. Напротив, внешнее кодирование полагается на временное предсказание для уменьшения или удаления временной избыточности среди видеоблоков последовательных видеокадров видеопоследовательности. Таким образом, для внешнего кодирования видеокодер выполняет оценку движения и компенсацию движения для отслеживания движения совпадающих видеоблоков из двух или более смежных элементов кодирования.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,
СУЩНОСТЬ ИЗОБРЕТЕНИЯ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
Для поддержки масштабируемого видео устройство 12 источника кодирует видео источника как битовый поток базового слоя (или базовый слой) и один или более масштабируемых битовых потоков улучшающих слоев (или улучшающих слоев). Битовый поток базового слоя обычно несет видеоданные с базовым уровнем качества. Один или более улучшающих слоев несут добавочные видеоданные, называемые здесь уточнениями, для поддержки более высоких уровней качества. Уточнения, закодированные в улучающих слоях, например, могут постепенно увеличивать точность воспроизведения (например, визуальное качество) посредством предоставления добавочных более высоких частотных коэффициентов или дополнительного уточнения существующих коэффициентов. В некоторых случаях базовый слой может быть передан более надежным методом, чем передача улучшающих слоев, например с более низкой вероятностью искажения пакетов (PER).To support scalable video,
В примере, проиллюстрированном на Фиг.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,
Кроме того, методики этого раскрытия в иллюстративных целях описываются в контексте масштабируемости качества (также называемой масштабируемостью отношения сигнала к шуму (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,
Устройство 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"), а также любой другой стандарт кодирования видео, определенный органом по стандартизации или разработанный организацией как частный стандарт.
Устройства 14 адресата могут поддерживать проводной и/или беспроводной прием закодированного видео. Устройства 14 адресата могут содержать любое устройство, способное принимать и декодировать цифровые видеоданные, такое как устройства беспроводной связи, например сотовые или спутниковые радиотелефоны, беспроводные системы вещания, карманные персональные компьютеры (PDA), переносные или настольные компьютеры, цифровые камеры, цифровые записывающие устройства, устройства видеоигр, игровые приставки, цифровые телевизоры, системы прямого цифрового вещания и т.п. В примере на Фиг.1 показаны два устройства 14A, 14B адресата. Однако система 10 может включать в себя любое количество устройств 14 адресата. Устройства 14 адресата также могут работать в соответствии с любым из разнообразия стандартов сжатия видео, описанных выше.
Фиг.1 представляет позиционирование устройств 14 адресата относительно устройства 12 источника, которое передает закодированное видео. В частности, устройство 14A адресата находится ближе к источнику передачи, то есть устройству 12 источника на Фиг.1, а устройство 14B адресата находится дальше от источника передачи. В случаях, в которых базовый слой закодирован с более низкой вероятностью искажения пакетов (PER), оба устройства 14A и 14B адресата могут надежно принимать и декодировать базовый слой. Устройство 14A адресата, которое расположено ближе к устройству 12 источника, также может надежно принимать улучшающий слой. Однако устройство 14B адресата, которое расположено дополнительно дальше от устройства 12 источника, не может надежно принимать улучшающий слой, например, из-за условий сети или канала.Figure 1 represents the positioning of
Таким образом, более близкое устройство 14A адресата способно работать с видео более высокого качества, поскольку ему доступны данные и базового слоя, и улучшающего слоя, тогда как устройство 14B адресата способно представлять только минимальный уровень качества, предоставляемый данными базового слоя. Таким образом, видео, полученное устройствами 14 адресата, является масштабируемым в том смысле, что добавочные биты улучшающего слоя могут быть декодированы и добавлены к битовому потоку базового слоя для увеличения отношения сигнала к шуму (SNR) декодированного видео. Однако масштабируемость возможна только тогда, когда представлены данные улучшающего слоя. Таким образом, термин "качество", используемый в этом раскрытии, может ссылаться к объективному и/или субъективному визуальному качеству. Другими словами, уточнения улучшающего слоя дают в результате видеоданные с более высококачественным воспроизведением первоначальных данных. В этом методе точность воспроизведения видео увеличивается посредством улучшающего слоя.Thus, the
В других случаях условия сети или канала могут быть достаточными для обоих устройств 14A и 14B адресата, чтобы принять базовый слой и улучшающий слой. Однако устройства 14A и 14B адресата могут иметь различные способности декодера, которые не позволяют одному из устройств 14A и 14B адресата использовать добавочные видеоданные улучшающего слоя для воспроизведения более высококачественного видео. Если одно из устройств 14 адресата является таким клиентским устройством, как например, мобильная телефонная трубка или другое маленькое переносное устройство, могут иметься ограничения вследствие вычислительной сложности и требований к памяти. В соответствии с этим масштабируемое кодирование видео может быть создано таким образом, что устройства 14 адресата с ограниченными вычислительными ресурсами или ресурсами памяти могут декодировать только базовый слой. В этом методе устройства 14 адресата с более хорошими условиями сети или канала и/или более хорошими способностями декодера будут в состоянии воссоздать видео с более высоким качеством с использованием добавочных видеоданных улучшающего слоя.In other cases, the network or channel conditions may be sufficient for both
Методики, описанные в этом раскрытии, используют методики статистического кодирования, которые содействуют эффективному кодированию битовых потоков улучшающего слоя. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Как будет описано в дополнительных подробностях, устройство 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
Например, некоторые традиционные статистические кодеры могут выполнять первый проход кодирования, чтобы сформировать символы для представления вектора коэффициентов, причем по меньшей мере некоторые из символов представляют более одного отличного от нуля коэффициента. Другими словами, знание о последующих коэффициентах необходимо для кодирования отличных от нуля коэффициентов вектора коэффициентов. Вдобавок или в качестве альтернативы некоторые традиционные статистические кодеры могут также выбирать во время первого или последующего прохода кодирования таблицы кодирования 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
Фиг.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
Видеокодер 20 принимает видеоданные от источника 18 видео и кодирует видеоданные как битовый поток базового слоя и один или более битовых потоков улучшающего слоя. В примере, проиллюстрированном на Фиг.2, видеокодер 20 включает в себя кодер 30 базового слоя и кодер 32 улучшающего слоя. Кодер 30 базового слоя и кодер 32 улучшающего слоя принимают обыкновенные видеоданные от источника 18 видео. Кодер 30 базового слоя кодирует видеоданные с первой скоростью передачи битов для формирования битового потока базового слоя видео на первом уровне качества. Кодер 32 улучшающего слоя кодирует добавочные биты для формирования одного или более улучшающих слоев, которые при их добавлении к битовому уровню базового слоя улучшают видео до второго, более высокого уровня качества. Другими словами, улучшающий слой при его добавлении к базовому слою предоставляет вторую, более высокую скорость передачи битов, которая предоставляет более высокий уровень качества. Таким образом, улучшающий слой может рассматриваться как уточнение видеоданных, закодированных в базовом слое. Уточнения могут являться, например, добавочными коэффициентами и/или уточнениями к существующим коэффициентам. Уточнения, закодированные в улучшающих слоях, могут быть иерархическими в том смысле, что уточнения в улучшающих слоях постепенно увеличивают качество видеоданных по мере их декодирования. Таким образом, декодирование уточнений всех улучшающих слоев, например, приведет к самой высокой скорости передачи битов и максимальному качеству, в то время как декодирование уточнений только первого улучшающего слоя произведет увеличение скорости передачи битов и качества относительно декодирования только базового слоя.Video encoder 20 receives video data from
Видеоданные, принятые от источника 18 видео, могут являться рядом видеокадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят ряд кадров на закодированные элементы и обрабатывают закодированные элементы для кодирования ряда видеокадров. Закодированные элементы могут, например, быть цельными кадрами или участками кадров, такими как мозаичные фрагменты кадров. Кодер 30 базового слоя и кодер 32 улучшающего слоя делят каждый закодированный элемент на блоки пикселей (упоминаемые здесь как видеоблоки или блоки) и работают над видеоблоками в пределах индивидуальных закодированных элементов для кодирования видеоданных. Таким образом, видеоданные могут включать в себя множество кадров, кадр может включать в себя множество мозаичных фрагментов, и мозаичный фрагмент может включать в себя множество видеоблоков.The video data received from the
Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру в соответствии со специфицированным стандартом кодирования. В качестве примера, стандарт 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,
Кодеры 30, 32 выполняют внутреннее и внешнее кодирование видеоблоков кадров. Внутреннее кодирование полагается на пространственное предсказание для уменьшения или удаления пространственной избыточности в видеоданных в пределах заданного закодированного элемента, например кадра или мозаичного фрагмента. Для внутреннего кодирования кодеры 30, 32 образуют блок пространственного предсказания на основе одного или более ранее закодированных блоков в пределах того же самого кадра, что и текущий кодируемый блок. Блок предсказания может являться предсказанной версией текущего кодируемого видеоблока. Кодер 30 базового слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков в пределах кадра, например посредством выполнения интерполяции (в соответствии с режимом внутреннего кодирования, ассоциированным с блоком) с использованием значений пикселей одного или более ранее закодированных блоков в пределах базового слоя текущего кадра. Кодер 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков в пределах кадра. Кодер 32 улучшающего слоя, например, может формировать блок предсказания на основе одного или более ранее закодированных видеоблоков из базового слоя и улучшающего слоя в пределах кадра. Например, кодер 32 улучшающего слоя может формировать блок предсказания с использованием взвешенной суммы значений пикселей по меньшей мере из одного ранее закодированного видеоблока из базового слоя и по меньшей мере одного ранее закодированного видеоблока из улучшающего слоя.
Внешнее кодирование полагается на временное предсказание для уменьшения или удаления временной избыточности в пределах смежных кадров видеопоследовательности. Для внешнего кодирования кодеры 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,
После внутреннего или внешнего предсказания видеоблоков кодеры 30, 32 формируют остаточный блок посредством вычитания сформированного блока предсказания из первоначального кодируемого видеоблока. Таким образом, остаточный блок показывает различия между блоком предсказания и текущим кодируемым блоком. Кодеры 30, 32 могут применять процессы преобразования, квантования и статистического кодирования, чтобы дополнительно уменьшить скорость передачи битов, ассоциированную с передачей остаточного блока. Методики преобразования, которые могут включать в себя дискретное косинусное преобразование (DCT), целочисленное преобразование, вейвлетное преобразование, направленное преобразование или другую операцию преобразования, заменяют множество значений разности пикселей на остаточные коэффициенты преобразования, которые представляют энергию значений разности пикселей в частотной области. Кодеры 30, 32 применяют квантование к остаточным коэффициентам преобразования, что обычно влечет за собой процесс, который ограничивает количество битов, ассоциированных с каким-либо заданным коэффициентом. Кодеры 30, 32 сканируют двумерный остаточный блок, чтобы сформировать одномерный вектор коэффициентов, и статистически кодируют вектор коэффициентов, чтобы дополнительно сжать остаточные коэффициенты. Статистическое кодирование может, например, включать в себя кодирование с переменной длиной (VLC), арифметическое кодирование, кодирование с фиксированной длиной, контекстно-адаптивное кодирование VLC (CAVLC), контекстно-адаптивное двоичное арифметическое кодирование (CABAC) и/или другие методики статистического кодирования.After internal or external prediction of the video blocks,
Масштабируемость отношения сигнала к шуму (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
Каждый из кодеров 30, 32 принимает одномерный вектор коэффициентов, который представляет квантованные остаточные коэффициенты преобразования базового слоя и улучшающего слоя соответственно. Другими словами, кодер 30 базового слоя принимает вектор коэффициентов базового слоя, и кодер 32 улучшающего слоя принимает вектор коэффициентов соответствующего улучшающего слоя. Хотя кодеры 30, 32 принимают одинаковые первоначальные видеоданные, векторы коэффициентов могут быть различными. Это может быть вследствие того, что кодер 30 базового слоя и кодер 32 улучшающего слоя формируют разные блоки предсказания, например кодер 30 базового слоя формирует блок предсказания из одного или более ранее закодированных блоков базового слоя, а кодер 32 улучшающего слоя формирует блок предсказания из одного или более ранее закодированных блоков базового слоя и блоков улучшающего слоя.Each of the
Каждый из кодера 30 базового слоя и кодера 32 улучшающего слоя кодирует соответствующие векторы коэффициентов для формирования битового потока базового слоя и по меньшей мере одного битового потока улучшающего слоя соответственно. В соответствии с методиками этого раскрытия кодер 30 базового слоя и кодер 32 улучшающего слоя кодируют соответствующие векторы коэффициентов с использованием разных методик кодирования. Кодер 30 базового слоя может кодировать вектор коэффициентов с использованием процесса с множеством проходов кодирования, в котором кодер 30 базового слоя анализирует вектор коэффициентов по меньшей мере во время одного прохода кодирования и кодирует вектор коэффициентов по меньшей мере во время одного последующего прохода кодирования на основе анализа. В одном случае кодер 30 базового слоя может кодировать квантованные остаточные коэффициенты преобразования вектора коэффициентов базового слоя в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Кодирование CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, может кодировать вектор коэффициентов базового слоя с использованием множества проходов кодирования.Each of the
Во время первого прохода кодирования кодер 30 базового слоя может формировать символы для представления вектора коэффициентов, по меньшей мере некоторые из которых представляют более чем один отличный от нуля коэффициент и в некоторых случаях все коэффициенты вектора коэффициентов. Кодер 30 базового слоя может, например, в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, формировать символы, которые представляют общее количество коэффициентов в векторе коэффициентов ("TotalCoeffs"), количество замыкающих единиц в векторе коэффициентов ("T1"), знаки каждой из замыкающих единиц, величины (или уровни) отличных от нуля коэффициентов, кроме замыкающих единиц, сумму всех серий ("sumRuns") и серию перед каждым отличным от нуля коэффициентом. Чтобы сформировать некоторые из символов, такие как TotalCoeff и sumRuns, кодер 30 базового слоя может проанализировать весь вектор коэффициентов.During the first encoding pass, the
Во время первого прохода кодирования кодер 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
Кодер 30 базового слоя во время второго или другого последующего прохода кодирования кодирует символ, который представляет общее количество отличных от нуля коэффициентов в векторе коэффициентов (TotalCoeff), и символ, который представляет количество замыкающих единиц (обозначаемых как T1). Количество замыкающих единиц представляет собой количество коэффициентов с величиной, равной единице, которые появляются в векторе коэффициентов прежде, чем появится коэффициент с величиной больше единицы, когда вектор коэффициентов читается в обратном порядке, то есть начиная с конца вектора коэффициентов. Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символов TotalCoeff и T1 на основе предсказанного количества отличных от нуля коэффициентов и кодировать символы TotalCoeff и T1 с использованием выбранной таблицы кодирования VLC. Выбор таблицы кодирования VLC для использования при кодировании символов TotalCoeff и T1 на основе предсказанного количества отличных от нуля коэффициентов может позволить кодеру 30 базового слоя выбрать таблицу кодирования VLC, которая более эффективно кодирует символы TotalCoeff и T1. Таким образом, разные таблицы кодирования VLC могут быть более эффективными для разного предсказанного количества отличных от нуля коэффициентов. В одном примере кодер 30 базового слоя может предсказать количество отличных от нуля коэффициентов в текущем блоке на основе количества отличных от нуля коэффициентов одного или более ранее закодированных видеоблоков, например верхнего соседнего видеоблока и левого соседнего видеоблока.The
Кодер 30 базового слоя может кодировать знаки каждой из замыкающих единиц. Например, кодер 30 базового слоя для каждой из замыкающих единиц может кодировать '1', если знак замыкающей единицы положителен, и кодировать '0', если знак замыкающей единицы отрицателен. Таким образом, кодер 30 базового слоя может не нуждаться в выполнении выбора таблицы кодирования VLC для знаков. Кодер 30 базового слоя может кодировать величины отличных от нуля коэффициентов, кроме замыкающих единиц. Кодер 30 базового слоя может кодировать уровни отличных от нуля коэффициентов с использованием таблицы кодирования VLC, кодирования с фиксированной длиной или другого типа статистического кодирования. Например, кодер 30 базового слоя может кодировать уровни отличных от нуля коэффициентов с использованием двоичного кодирования.The
Кодер 30 базового слоя может кодировать символ, который представляет количество нулевых коэффициентов, которые находятся в векторе коэффициентов перед последним отличным от нуля коэффициентом (sumRuns). Как описано выше, кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs), поскольку между этими двумя значениями имеется некоторое взаимоотношение.The
Кодер 30 базового слоя может кодировать серии (или длины серий), которые находятся перед каждым отличным от нуля коэффициентом, начиная с последнего отличного от нуля коэффициента вектора коэффициентов. Длины серий - это количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту. Таким образом, кодер 30 базового слоя может сначала кодировать длину серии (то есть количество нулевых коэффициентов) перед последним отличным от нуля коэффициентом вектора коэффициентов, затем длину серии перед предыдущим отличным от нуля коэффициентом и так далее, пока не будет закодирована длина серии перед первым отличным от нуля коэффициентом вектора коэффициентов.The
Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании каждой из длин серий. Кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании текущего значения серии на основе символа суммы серий (sumRuns) и суммы серий, закодированной до текущего момента. В качестве примера, если вектор коэффициентов имеет сумму серий (sumRuns), равную восьми, и количество серий, закодированных перед последним закодированным отличным от нуля коэффициентом, было равно шести, то все остальные серии должны быть равны нулю, единице или двум. Поскольку возможная серия постепенно становится более короткой по мере кодирования каждой добавочной серии, кодер 30 базового слоя может выбирать более эффективные таблицы кодирования VLC для сокращения количества битов, используемых для представления серий.The
В этом методе кодер 30 базового слоя выполняет кодирование с множеством проходов для кодирования коэффициентов базового слоя, включая в себя первый проход для анализа вектора коэффициентов остаточного блока базового слоя, например, для формирования символов и/или выбора таблиц кодирования VLC и второй проход кодирования для кодирования вектора коэффициентов на основе этого анализа. Хотя кодер 30 базового слоя описывается выше как кодирующий квантованные остаточные коэффициенты преобразования с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, кодер 30 базового слоя может использовать другие методологии кодирования для кодирования квантованных остаточных коэффициентов преобразования.In this method, the
Кодер 32 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования улучшающего слоя, которые могут иметь форму вектора коэффициентов. Кодер 32 улучшающего слоя может формировать квантованные остаточные коэффициенты, которые отличаются от квантованных остаточных коэффициентов базового слоя. Квантованные остаточные коэффициенты улучшающего слоя могут отличаться от квантованных остаточных коэффициентов базового слоя вследствие использования другого параметра QP во время квантования. Вдобавок, квантованные остаточные коэффициенты преобразования могут отличаться от квантованных остаточных коэффициентов преобразования базового слоя, поскольку остаточный блок представляет различие между первоначальным видеоблоком и блоком предсказания, образованный с использованием ранее закодированных блоков, которые формируют базовый слой и улучшающий слой. Остаточный блок базового слоя представляет собой разность между первоначальным видеоблоком и блоком предсказания, сформированным с использованием только ранее закодированных блоков из базового слоя. Таким образом, улучшающий слой может включать в себя добавочные коэффициенты и/или уточнения к существующим коэффициентам. В этом смысле квантованные остаточные коэффициенты преобразования видеоблока в улучшающем слое представляют собой уточнения к видеоблоку, закодированному с первым качеством в базовом слое, и при их добавлении к базовому слою предоставляют более высококачественные видеоданные.
Кодер 32 улучшающего слоя может отбросить один или более квантованных остаточных коэффициентов вектора коэффициентов во время кодирования в зависимости от доступной скорости передачи битов. Например, кодер 32 улучшающего слоя может отбросить коэффициенты, соответствующие базисным функциям высокочастотного преобразования, например коэффициенты, расположенные в конце вектора коэффициентов, когда сканирование коэффициентов выполняется с использованием зигзагообразного сканирования, как проиллюстрировано на Фиг.3. Кодирование квантованных остаточных коэффициентов в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, может не позволить кодеру 32 улучшающего слоя отказаться от коэффициентов, поскольку по меньшей мере некоторые из символов, которые должны быть закодированы, например символы TotalCoeffs и sumRuns, ссылаются на все коэффициенты в блоке. Если бы кодер 32 улучшающего слоя отбрасывал один или более коэффициентов вектора коэффициентов, принятая информация была бы избыточна, что привело бы к более низкой эффективности кодирования. Кроме того, поскольку декодер должен принять серии для всех отличных от нуля коэффициентов в блоке, чтобы суметь должным образом декодировать позицию каждого коэффициента при зигзагообразном сканировании при кодировании с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, кодер 32 улучшающего слоя может не иметь возможности отбрасывать коэффициенты из вектора коэффициентов улучшающего слоя.
Таким образом, кодер 32 улучшающего слоя кодирует коэффициенты улучшающего слоя или слоев в соответствии с методиками кодирования этого раскрытия. Кодер 32 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования вектора коэффициентов в одном проходе кодирования. Другими словами, кодер 32 улучшающего слоя не выполняет первый проход для анализа вектора коэффициентов и последующего кодирования символов во время второго прохода на основе этого анализа. Вместо этого кодер 32 улучшающего слоя начинает с начала вектора коэффициентов и кодирует каждый из отличных от нуля коэффициентов один за другим в одном проходе кодирования. В этом способе кодер 32 улучшающего слоя может закодировать каждый из отличных от нуля коэффициентов без анализа последующих коэффициентов в векторе коэффициентов, то есть не зная никаких последующих коэффициентов вектора коэффициентов.Thus, the
В одном аспекте кодер 32 улучшающего слоя для каждого из отличных от нуля коэффициентов может закодировать символ, указывающий, что в векторе коэффициентов имеется по меньшей мере один оставшийся отличный от нуля коэффициент. Например, символ может являться символом конца блока (EOB). Кодер 32 улучшающего слоя может закодировать символ с использованием единственного бита. Например, кодер 32 улучшающего слоя может закодировать ноль, когда имеется по меньшей мере один оставшийся отличный от нуля коэффициент, например по меньшей мере текущий отличный от нуля коэффициент, и закодировать единицу, когда больше нет оставшихся отличных от нуля коэффициентов.In one aspect, the
После символа 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
После кодирования серий для каждого коэффициента кодер 32 улучшающего слоя кодирует знак отличного от нуля коэффициента. Кодер 32 улучшающего слоя, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. Кодер 32 улучшающего слоя может корректировать величину отличных от нуля коэффициентов посредством установки величин отличных от нуля коэффициентов равными единице. В некоторых случаях кодер 32 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов. В этом методе кодер 32 улучшающего слоя может ограничить величину отличных от нуля коэффициентов единицей. Тогда устройство 14 адресата сконфигурировано с возможностью декодировать все отличные от нуля коэффициенты, идентифицированные в уточнениях, как имеющие величину, равную единице. Отсутствие кодирования величин коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.After encoding the series for each coefficient, the
В этом методе кодер 32 улучшающего слоя может закодировать коэффициенты битового потока улучшающего слоя в единственном проходе, например, не зная каких-либо последующих коэффициентов в векторе коэффициентов. Поскольку кодер 32 улучшающего слоя не должен анализировать вектор коэффициентов, например формировать символы, представляющие более одного отличного от нуля коэффициента вектора или выбирать таблицы кодирования VLC для кодирования символов, выполняется только один проход кодирования. Традиционные кодеры обычно выполняют по меньшей мере два прохода; (1) первый проход для анализа вектора коэффициентов и (2) второй проход для кодирования вектора коэффициентов на основе анализа. Вдобавок, кодер 32 улучшающего слоя может закодировать коэффициенты улучшающего слоя с использованием единственной таблицы кодирования VLC, тем самым избавляя от необходимости выполнять проход кодирования для образования символов для использования при адаптивном выборе таблиц. Таким образом, кодер 32 улучшающего слоя может уменьшить сложность кодирования, задержку кодирования и требования к памяти. В этом методе методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию коэффициентов улучшающего слоя без хранения и получения доступа к информации коэффициентов базового слоя, что дополнительно уменьшает вычислительную сложность и требования к памяти.In this method, the
Устройство 12 источника передает закодированные видеоданные устройству 14 адресата через передатчик 22. Устройство 14 адресата может включать в себя приемник 24, видеодекодер 26 и устройство 28 отображения. Приемник 24 принимает закодированный битовый поток видео от устройства 12 источника через канал 16. Как описано выше, закодированный битовый поток видео включает в себя битовый поток базового слоя и один или более битовых потоков улучшающего слоя. Видеодекодер 26 декодирует базовый слой и, если это доступно, один или более улучшающих слоев для получения видеоданных.The
В частности, видеодекодер 26 включает в себя декодер 34 базового слоя и декодер 36 улучшающего слоя. Декодер 34 базового слоя декодирует битовый поток базового слоя, принятый через канал 16, чтобы получить видеоданные с первым качеством для представления на устройстве 28 отображения. Декодер 36 улучшающего слоя декодирует битовые потоки одного или более улучшающих слоев для получения добавочных видеоданных, например уточнений, которые увеличивают качество декодированных видеоданных до второго, более высокого качества. Напомним, что количество улучшающих слоев, например один, два, три или больше, принятых устройством 14 адресата, может зависеть от условий канала или других ограничений. Вдобавок, количество принятых улучшающих слоев, обработанных декодером 36 улучшающего слоя, может зависеть от ограничений декодера. В общем случае кодирование и декодирование базового слоя в комбинации с выбранным количеством улучшающих слоев дают возможность возрастающего улучшения качества отношения сигнала к шуму (SNR) декодированного видео.In particular, video decoder 26 includes a
Декодер 34 базового слоя декодирует базовый слой для получения символов, представляющих вектор квантованных остаточных коэффициентов базового слоя. Декодер 34 базового слоя может декодировать базовый слой для получения общего количества отличных от нуля коэффициентов в блоке, количества замыкающих единиц блока, знаков замыкающих единиц, величин коэффициентов, кроме замыкающих единиц, суммы всех серий и серий перед каждым отличным от нуля коэффициентом. Декодер 34 базового слоя далее может дополнительно декодировать битовый поток базового слоя для идентификации таблиц кодирования VLC для использования при декодировании символов базового слоя. В других случаях декодер 34 базового слоя может выбрать таблицы кодирования VLC для использования на основе ранее декодированных символов. Используя декодированные символы, декодер 34 базового слоя может воссоздать вектор коэффициентов базового слоя.The
Декодер 36 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений улучшающего слоя, например в форме вектора добавочных остаточных коэффициентов или уточнений к существующим остаточным коэффициентам. В частности, декодер 36 улучшающего слоя декодирует с использованием той же самой таблицы кодирования VLC, которая используется кодером 32 улучшающего слоя, серии и знаки коэффициентов улучшающего слоя, пока символ EOB не укажет, что больше не осталось отличных от нуля коэффициентов. Используя декодированные символы, декодер 36 улучшающего слоя воссоздает вектор коэффициентов блока улучшающего слоя.
Декодеры 34, 36 воссоздают каждый из блоков закодированного элемента с использованием декодированных квантованных остаточных коэффициентов. После формирования векторов коэффициентов декодеры 34, 36 выполняют обратное сканирование векторов коэффициентов для формирования двумерного блока квантованных остаточных коэффициентов. Декодеры 34, 36 выполняют обратное квантование квантованных остаточных коэффициентов и применяют обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразование, обратное вейвлетное преобразование или обратное направленное преобразование к остаточным коэффициентам, подвергнутым обратному квантованию, для получения остаточного блока значений пикселей.
Декодеры 34, 36 суммируют блок предсказания, сформированный декодерами 34, 36, с остаточным блоком значений пикселей для формирования воссозданного видеоблока базового слоя и видеоблока улучшающего слоя соответственно. Видеоблоки базового и улучшающего слоев комбинируются для образования видеоблока с более высокой разрешающей способностью. Декодеры 34, 36 формируют блок предсказания таким же методом, как описано выше относительно кодеров 30, 32. Устройство 14 адресата может отобразить воссозданные видеоблоки пользователю через устройство 28 отображения. Устройство 28 отображения может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка (CRT), дисплей на жидких кристаллах (LCD), плазменный дисплей, светодиодный дисплей (LRD), органический светодиодный дисплей или дисплейный блок другого типа.
В некоторых случаях видеокодер 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,
Устройство 12 источника и устройство 14 адресата могут работать в значительной степени симметрично. Например, каждое из устройства 12 источника и устройства адресата 14 может включать в себя компоненты кодирования и декодирования видео. Таким образом, система 10 может поддерживать одностороннюю или двухстороннюю передачу видео между устройствами 12, 14, например, для передачи видеопотоков, видеовещания или видеотелефонной связи.
В некоторых аспектах для видеовещания описанные в этом раскрытии методики могут быть применены к улучшенному кодированию видео стандарта 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
В качестве альтернативы, видео может широковещательно передаваться в соответствии с другими стандартами, такими как 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
В других примерах передатчик 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,
И видеокодер 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
Фиг.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
Модуль 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
После внутреннего или внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, произведенного модулем предсказания 33A, из текущего видеоблока в сумматоре 48A. Остаточный блок включает в себя множество значений разностей пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицей или массивом значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After internal or external prediction of the video blocks, the
Модуль 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
После квантования модуль 41A сканирования коэффициентов сканирует коэффициенты из двумерного формата блока в одномерный векторный формат, процесс часто называется сканированием коэффициентов. Модуль 41A сканирования коэффициентов, например, может сканировать двумерный блок коэффициентов с использованием зигзагообразного порядка сканирования, как описано в дополнительных подробностях на Фиг.7. После сканирования статистический кодер 46 базового слоя статистически кодирует коэффициенты одномерного вектора. Кодер 46 базового слоя, например, может статистически кодировать коэффициенты вектора коэффициентов с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC и подробно описано выше в отношении Фиг.2.After quantization,
Кодер 32 улучшающего слоя включает в себя модуль 33B предсказания, хранилище 35B кадров, модуль 38B преобразования, модуль 40B квантования, модуль 41B сканирования коэффициентов, модуль 42B обратного квантования, модуль 44B обратного преобразования, статистический кодер 49 улучшающего слоя и сумматоры 48C и 48D ("сумматоры 48"). Модули кодера 32 улучшающего слоя в значительной степени аналогичны модулям кодера 30 базового слоя. Поэтому будут описаны только различия.
Модуль 33B предсказания кодера 32 улучшающего слоя формирует блок предсказания, который является предсказанной версией текущего видеоблока. В отличие от модуля 33 предсказания кодера 30 базового слоя, который использует только ранее закодированные блоки базового слоя для формирования блока предсказания, модуль 33B предсказания кодера 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков базового слоя и улучшающего слоя. Другими словами, модуль 33B предсказания может формировать блок предсказания с использованием воссозданного видеоблока из базового слоя и воссозданного видеоблока улучшающего слоя. Например, модуль 33B предсказания может скомбинировать воссозданный видеоблок базового слоя с воссозданным блоком улучшающего слоя, чтобы сформировать блок предсказания со вторым, более высоким качеством.
Поскольку блок предсказания, сформированный модулем 33B предсказания, формируется на основе воссозданных видеоблоков и базового, и улучшающего слоя, остаточный блок, сформированный в сумматоре 48C, представляет различия между текущим видеоблоком и ранее закодированным блоком, созданным из базового и улучшающего слоя, то есть со вторым, более высоким визуальным качеством.Since the prediction block generated by the
Хотя модуль 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
Кроме того, как описано подробно в отношении Фиг.2, статистический кодер 49 улучшающего слоя кодирует квантованные остаточные коэффициенты преобразования в одном проходе кодирования. Другими словами, статистический кодер 49 улучшающего слоя может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная каких-либо последующих коэффициентов вектора коэффициентов. Кодирование улучшающего слоя в одном проходе может избавить от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе этого анализа. Вместо этого статистический кодер 49 улучшающего слоя начинает с начала вектора коэффициентов и кодирует каждый из коэффициентов один за другим в одном проходе кодирования. Более подробно статистическое кодирование улучшающего слоя описывается ниже в отношении Фиг.4.In addition, as described in detail with respect to FIG. 2, the enhancement layer
Фиг.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
Статистический кодер 46 базового слоя кодирует вектор коэффициентов, представляющий видеоблок с первым качеством, посредством выполнения множества проходов кодирования. В соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, например, статистический кодер 46 базового слоя может выполнить первый проход кодирования для анализа вектора коэффициентов, например, для формирования символов, представляющих вектор коэффициентов, и/или выбора таблицы кодирования VLC, и второй проход кодирования для кодирования вектора коэффициентов на основе анализа.The base layer
В качестве примера, модуль 50 анализа из статистического кодера 46 базового слоя может проанализировать вектор коэффициентов для формирования одного или более символов, которые представляют блок коэффициентов. Модуль 50 анализа, например, в соответствии со стандартом H.264/MPEG-4, часть 10, AVC может определять общее количество коэффициентов в блоке (TotalCoeff), количество замыкающих единиц (T1), знаки замыкающих единиц, величину каждого отличного от нуля коэффициента, общую сумму серий (sumRuns) и длину серии, предшествующей каждому отличному от нуля коэффициенту. По меньшей мере некоторые из символов, например символы TotalCoeff и sumRuns, сформированные модулем 50 анализа, могут представлять все коэффициенты вектора коэффициентов. Модуль 50 анализа в других примерах может формировать больше или меньше символов.As an example, the
Вдобавок или в качестве альтернативы модуль 50 анализа может выбирать во время первого или последующего прохода кодирования подмножества таблиц 52 кодирования VLC для использования при кодировании символов. В одном аспекте модуль 50 анализа может выбрать подмножество таблиц 52 кодирования VLC на основе сформированных символов. В качестве альтернативы модуль 50 анализа может собирать статистические данные во время анализа вектора коэффициентов для выбора подмножества таблиц 52 кодирования VLC на основе накопленных статистических данных. Например, кодер 30 базового слоя может выбрать таблицу кодирования VLC для использования при кодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs), поскольку между этими двумя значениями имеется некоторое взаимоотношение. Как будет подробно описано ниже, выбор подмножества таблиц 52 кодирования VLC на основе сформированных символов или других статистических данных может дать возможность более эффективного кодирования символов, представляющих вектор коэффициентов.In addition or alternatively, the
Статистический кодер 46 базового слоя кодирует вектор коэффициентов в течение второго или другого последующего прохода кодирования. В частности, кодер 54 общего количества коэффициентов кодирует общее количество отличных от нуля коэффициентов (TotalCoeff) в векторе коэффициентов. Кодер 54 общего количества коэффициентов может закодировать символ TotalCoeff с использованием одной из таблиц 52 кодирования VLC, выбранных на основе предсказания количества отличных от нуля коэффициентов текущего вектора коэффициентов. В одном примере предсказание количества отличных от нуля коэффициентов текущего вектора коэффициентов может быть сделано на основе количества отличных от нуля коэффициентов одного или более ранее закодированных видеоблоков, например верхнего соседнего видеоблока и левого соседнего видеоблока. В этом методе статистический декодер базового слоя может выбрать ту же самую таблицу кодирования VLC на основе ранее декодированного блока.The base layer
После того как кодер 54 общего количества коэффициентов кодирует общее количество отличных от нуля коэффициентов, кодер 56 замыкающих единиц кодирует символ замыкающих единиц. Кодер 56 замыкающих единиц может закодировать символ замыкающих единиц с использованием той же самой таблицы 52 кодирования VLC, выбранной на основе предсказанного количества отличных от нуля коэффициентов, например тем же самым методом, описанным выше в отношении кодера 54 общего количества коэффициентов.After the
Кодер 58 знаков кодирует знаки замыкающих единиц. Например, кодер 58 знаков для каждой из замыкающих единиц может закодировать '1', если знак замыкающей единицы положителен, и закодировать '0', если знак замыкающей единицы отрицателен. Кодер 60 величин коэффициентов кодирует уровни (например, величины) отличных от нуля коэффициентов, кроме замыкающих единиц. Кодер 60 величин коэффициентов может закодировать уровни отличных от нуля коэффициентов с использованием таблицы VLC кодирования с фиксированной длиной или статистического кодирования другого типа.The 58 character encoder encodes the characters of the trailing units. For example, an
Кодер 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
Для каждого из отличных от нуля коэффициентов кодер 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
После кодирования длины серии каждого коэффициента кодер 70 знаков кодирует знак отличного от нуля коэффициента. Кодер 70 знака, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. Статистический кодер 49 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов улучшающего слоя, что может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.After encoding the series length of each coefficient, the
Методики статистического кодирования этого раскрытия могут дать возможность статистическому кодеру 49 улучшающего слоя кодировать коэффициенты битового потока улучшающего слоя в одном проходе. Поскольку статистический кодер 49 улучшающего слоя не анализирует вектор коэффициентов, например, для формирования символов и/или выбора таблиц кодирования VLC, необходим только один проход кодирования. Традиционные кодеры обычно выполняют по меньшей мере два прохода: (1) первый проход для анализа вектора коэффициентов и (2) второй проход для кодирования вектора коэффициентов на основе анализа. Вдобавок, статистический кодер 49 улучшающего слоя может закодировать коэффициенты улучшающего слоя с использованием единственной таблицы кодирования VLC, тем самым избавляя от необходимости выполнять проход кодирования для выбора разнообразных таблиц кодирования VLC. В этом методе статистический кодер 49 улучшающего слоя может уменьшить сложность кодирования, задержку кодирования и требования к памяти. Кроме того, методики статистического кодирования этого раскрытия могут вдобавок привести к кодированию коэффициентов улучшающего слоя без хранения и получения доступа к информации коэффициентов базового слоя, что дополнительно уменьшает вычислительную сложность и требования к памяти.The statistical coding techniques of this disclosure may enable the enhancement layer
Фиг.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
Статистический декодер 72 базового слоя декодирует принятый битовый поток базового слоя для получения видеоданных с первым качеством для представления на устройстве отображения. Статистический декодер 72 базового слоя принимает битовый поток базового слоя и декодирует битовый поток базового слоя для получения остаточной информации (например, в форме одномерного вектора квантованных остаточных коэффициентов) и информации заголовка (например, в форме одного или более элементов синтаксиса заголовка). Статистический декодер 72 базового слоя выполняет функцию декодирования, взаимную по отношению к кодированию, выполненному статистическим кодером 46 базового слоя на Фиг.3 и 4.The base layer
В частности, статистический декодер 72 базового слоя декодирует базовый слой для получения символов, представляющих вектор квантованных остаточных коэффициентов базового слоя. При кодировании с использованием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC, например, статистический декодер 72 базового слоя может декодировать базовый слой для получения общего количества отличных от нуля коэффициентов в блоке (TotalCoeff), количества замыкающих единиц блока (T1), знаков замыкающих единиц, величин коэффициентов кроме замыкающих единиц, суммы всех серий (sumRuns) и серий перед каждым отличным от нуля коэффициентом. В некоторых случаях таблицы кодирования VLC, выбранные для декодирования, могут быть выбраны на основе ранее декодированных блоков или ранее декодированных символов текущего блока. В других случаях статистический декодер 34 базового слоя может декодировать битовый поток базового слоя, чтобы идентифицировать таблицы кодирования VLC для использования при декодировании символов базового слоя. Используя декодированные символы, декодер 34 базового слоя может воссоздать вектор коэффициентов базового слоя.In particular, 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
Модуль 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.
Декодер 36 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений видеоданных, например в форме вектора добавочных остаточных коэффициентов или уточнений к существующим остаточным коэффициентам. Статистический декодер 86 улучшающего слоя декодирует с использованием той же самой таблицы кодирования VLC, которая используется статистическим кодером 49 улучшающего слоя, серии и знаки коэффициентов улучшающего слоя, пока символ EOB не укажет, что больше не осталось отличных от нуля коэффициентов. Используя декодированные символы, статистический декодер 86 улучшающего слоя воссоздает вектор коэффициентов блока улучшающего слоя. Декодированный вектор коэффициентов представляет добавочные биты, представляющие собой уточнения, которые при их комбинировании с битами базового слоя увеличивают качество декодированных видеоданных до второго, более высокого качества.
После формирования вектора коэффициентов модуль 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
Модуль 80B предсказания формирует блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания. Модуль предсказания формирует блок предсказания с использованием ранее закодированных блоков и из базового слоя, и из улучшающего слоя. Сумматор 84B суммирует блок предсказания, сформированный модулем 80B предсказания, с остаточным блоком значений пикселей, чтобы образовать воссозданный видеоблок улучшающего слоя. Видеоблок улучшающего слоя сохраняется в хранилище 82B кадров для использования модулем 80B предсказания при формировании последующих блоков предсказания. Воссозданный видеоблок базового слоя и воссозданный видеоблок улучшающего слоя комбинируются в сумматоре 84C для образования видеоблока с более высоким качеством.
Фиг.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
Статистический декодер 72 базового слоя декодирует битовый поток базового слоя для получения символов, представляющих вектор коэффициентов видеоблока на основном уровне качества. Декодер 90 общего количества коэффициентов декодирует битовый поток с использованием одной из таблиц 52 кодирования VLC для получения общего количества отличных от нуля коэффициентов (TotalCoeff) в векторе коэффициентов. Декодер 90 общего количества коэффициентов может выбрать таблицу 52 кодирования VLC для декодирования символа TotalCoeff на основе предсказания количества отличных от нуля коэффициентов текущего вектора коэффициентов, например на основе количества отличных от нуля коэффициентов одного или более ранее декодированных видеоблоков. В этом методе декодер 90 общего количества коэффициентов может выбрать ту же самую таблицу 52 кодирования VLC, которая используется кодером 54 общего количества коэффициентов для кодирования символа TotalCoeff.The base layer
После того как декодер 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
Декодер 98 суммы серий может декодировать символ, который представляет количество нулевых коэффициентов, которые встречаются в векторе коэффициентов перед последним отличным от нуля коэффициентом, то есть символ sumRuns. Декодер 98 суммы серий декодирует символ sumRuns с использованием одной из таблиц 52 кодирования VLC, выбранной на основе общего количества коэффициентов в блоке (TotalCoeffs), который был декодирован ранее декодером 90 общего количества коэффициентов. Напомним, что выбор таблицы кодирования VLC для использования при декодировании символа sumRuns на основе общего количества коэффициентов в блоке (TotalCoeffs) может позволить декодеру 98 суммы серий выбирать таблицу кодирования VLC, которая более эффективно декодирует символ sumRuns.The
Декодер 100 длин серий декодирует длины серии вектора коэффициентов. Декодер 100 длин серий может сначала декодировать длину серии последнего отличного от нуля коэффициента вектора коэффициентов, затем длину серии предыдущего отличного от нуля коэффициента, и так далее до тех пор, пока не будет декодирована длина серии перед первым отличным от нуля коэффициентом вектора коэффициентов. Другими словами, декодер 100 длин серий может начать декодировать последнюю длину серии. Декодер 64 длин серий может декодировать каждую из длин серии с использованием таблицы 52 кодирования VLC, выбранной на основе общей суммы серий вектора коэффициентов (sumRuns) и суммы серий, декодированных до настоящего момента. Символ sumRuns был ранее декодирован декодером 98 суммы серий. Однако декодер 100 длин серий может накопить статистические данные относительно суммы серий, декодированных до настоящего момента. Поскольку возможная длина серии постепенно становится более короткой по мере декодирования каждой добавочной серии, декодер 100 длин серий может выбрать более эффективные таблицы кодирования VLC для сокращения количества битов, используемых для представления серий. В этом методе таблица 52 кодирования VLC, используемая декодером 100 длин серий, может изменяться для каждой из длин серии.The
Статистический декодер 86 улучшающего слоя декодирует битовый поток улучшающего слоя для получения уточнений для видеоблока, например в форме добавочных коэффициентов или уточнений к существующим коэффициентам. Декодер 102 символа EOB определяет, указывает ли символ EOB, имеется ли по меньшей мере один оставшийся отличный от нуля коэффициент. Когда имеется по меньшей мере один оставшийся отличный от нуля коэффициент, декодер 104 длин серий декодирует длину серии, предшествующую следующему отличному от нуля коэффициенту. Декодер 104 длин серий может декодировать длину серии следующего отличного от нуля коэффициента с использованием таблицы 96 кодирования VLC, которая является той же самой таблицей VLC, которая используется кодером 68 длин серий. Декодер 106 знаков декодирует знак отличного от нуля коэффициента. Например, декодер 106 знаков может определить, что знак является положительным, когда принято '1', и отрицательным, когда принято '0'. Статистический декодер 86 улучшающего слоя продолжает декодировать отличные от нуля коэффициенты, пока декодер 102 символа EOB не укажет, что больше нет оставшихся отличных от нуля коэффициентов.Enhancement layer
Фиг.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
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
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 указывает, имеются ли какие-либо оставшиеся отличные от нуля коэффициенты в векторе коэффициентов, длина серии представляет количество нулевых коэффициентов, которые находятся перед текущим отличным от нуля коэффициентом вектора коэффициентов, и знак указывает, является ли значение коэффициента положительным или отрицательным.
В соответствии с одним аспектом этого раскрытия кодер 32 улучшающего слоя может не кодировать величину коэффициентов. Вместо этого кодер 32 улучшающего слоя может закодировать каждый из отличных от нуля коэффициентов, как если бы величина всех отличных от нуля коэффициентов была равна единице. В этом методе можно видеть, что кодер 32 улучшающего слоя кодирует следующий вектор V' коэффициентов вместо вектора V.In accordance with one aspect of this disclosure,
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.
Примерный закодированный битовый поток описывается в целях иллюстрации. Кодер 32 улучшающего слоя может закодировать вектор V, V' коэффициентов другими методами без отступления от контекста этого раскрытия. Например, символ EOB может быть закодирован как единица для представления добавочных отличных от нуля коэффициентов в блоке и как нуль для представления отсутствия оставшихся отличных от нуля коэффициентов. Аналогичным образом, символ знака может быть закодирован как нуль для представления положительного отличного от нуля коэффициента и как единица для представления отрицательного отличного от нуля коэффициента. В качестве другого примера символ EOB, закодированный для каждого отличного от нуля коэффициента, может представлять, является ли текущий коэффициент последним отличным от нуля коэффициентом вектора. Таким образом, может не иметься символа EOB в конце закодированного битового потока. Вместо этого, когда символ EOB указывает, что текущий коэффициент является последним отличным от нуля коэффициентом, видеодекодер знает, что после декодирования серии и символа текущего коэффициента больше нет добавочных коэффициентов блока.An exemplary encoded bitstream is described for purposes of illustration.
Фиг.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
Для каждого видеоблока кодер 30 базового слоя кодирует базовый слой с использованием методики кодирования, которая выполняет множество проходов кодирования (этап 132). Базовый слой кодирует видеоблок на первом уровне качества. Кодер 30 базового слоя может сформировать вектор коэффициентов, который представляет видеоблок в первом качестве и закодировать остаточные коэффициенты преобразования блока для формирования базового слоя. Кодер 30 базового слоя может закодировать вектор коэффициентов для формирования базового слоя в соответствии с кодированием CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Как подробно описано выше в отношении Фиг.2, кодер 30 базового слоя может выполнить первый проход кодирования для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа.For each video block, the
Для каждого видеоблока кодер 32 улучшающего слоя кодирует добавочные биты как улучшающий слой с использованием методики кодирования, которая выполняет один проход кодирования (этап 134). Дополнительные биты битового потока улучшающего слоя кодируют уточнения, которые при их добавлении к битовому потоку базового слоя улучшают видео до второго, более высокого уровня качества. Хотя в этом примере кодер 32 улучшающего слоя описывается как кодирующий только один улучшающий слой, кодер 32 улучшающего слоя может закодировать более одного битового потока улучшающего слоя. В этом случае улучшающие слои могут являться иерархическими в том смысле, что улучшающие слои по мере их декодирования предлагают все более высокое качество.For each video block, the
Вторая методика статистического кодирования, используемая кодером 32 улучшающего слоя, может закодировать для каждого из отличных от нуля коэффициентов вектора коэффициентов улучшающего слоя символ EOB, серию и знак. Как подробно описано выше, символ EOB может указать, имеются ли какие-либо оставшиеся отличные от нуля коэффициенты, длина серии представляет количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту, и знак указывает, является ли значение коэффициента положительным или отрицательным. После знака последнего отличного от нуля коэффициента кодер 32 улучшающего слоя может закодировать символ EOB, чтобы указать, что больше нет оставшихся отличных от нуля коэффициентов.The second statistical coding technique used by the
Кодер 30 базового слоя и кодер 32 улучшающего слоя выводят закодированные битовые потоки базового слоя и битовые потоки улучшающего слоя соответственно (этап 136). Методика статистического кодирования, используемая кодером 32 улучшающего слоя, может дать возможность кодирования остаточных коэффициентов улучшающего слоя с более низкой вычислительной сложностью и сложностью осуществления без большой потери эффективности кодирования. Методики статистического кодирования этого раскрытия могут дать возможность кодирования добавочных видеоданных, например, в форме уточнений, в битовом потоке улучшающего слоя в одном проходе кодирования, тем самым уменьшая сложность кодирования, задержку кодирования и требования к памяти. Например, кодер 32 улучшающего слоя может закодировать каждый отличный от нуля коэффициент вектора коэффициентов улучшающего слоя, не зная какие-либо последующие коэффициенты, тем самым давая возможность кодирования вектора коэффициентов в одном проходе и избавляя от необходимости выполнять первый проход для анализа вектора коэффициентов и второй проход для кодирования вектора коэффициентов на основе анализа.The
Фиг.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
Кодер 32 улучшающего слоя кодирует серию, которая указывает, количество нулевых коэффициентов, которые предшествуют отличному от нуля коэффициенту (этап 144). Кодер 32 улучшающего слоя в некоторых случаях может закодировать серию с использованием таблицы кодирования VLC, которая уже сохранена для кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10, AVC. Например, кодер 32 улучшающего слоя может закодировать серию с использованием таблицы кодирования VLC, используемой для кодирования общей суммы серий (sumRuns), когда общее количество коэффициентов (TotalCoeffs) равно одному. В качестве альтернативы, кодер 32 улучшающего слоя может поддерживать отдельную таблицу кодирования VLC, специально созданную для кодирования серий вектора коэффициентов улучшающего слоя.
Кодер 32 улучшающего слоя может закодировать знак отличного от нуля коэффициента (этап 146). Кодер 32 улучшающего слоя, например, может закодировать '1', если знак отличного от нуля коэффициента положителен, и закодировать '0', если знак отличного от нуля коэффициента отрицателен. В некоторых случаях кодер 32 улучшающего слоя может не кодировать величину отличных от нуля коэффициентов. В этом методе кодер 32 улучшающего слоя может ограничить величину отличных от нуля коэффициентов единицей. Таким образом, любой отличный от нуля коэффициент с величиной, большей единицы, устанавливается равным единице. Отсутствие кодирования величин коэффициентов улучшающего слоя может привести к некоторой потере отношения пикового сигнала к шуму (PSNR), но сокращает количество битов, используемых для кодирования коэффициентов.
Кодер 32 улучшающего слоя определяет, имеются ли в блоке улучшающего слоя какие-либо оставшиеся отличные от нуля коэффициенты (этап 148). Когда в блоке улучшающего слоя имеется по меньшей мере один оставшийся отличный от нуля коэффициент, кодер 32 улучшающего слоя продолжает кодировать символ EOB, серию и знак для каждого из оставшихся отличных от нуля коэффициентов. Когда в блоке улучшающего слоя больше нет оставшихся отличных от нуля коэффициентов, кодер 32 улучшающего слоя кодирует символ EOB для указания, что в векторе коэффициентов блока улучшающего слоя больше нет оставшихся отличных от нуля коэффициентов (этап 149). Как описано выше, улучшающий слой передается вместе с базовым слоем.
Поскольку методика кодирования улучшающего слоя, описанная на Фиг.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
Фиг.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
Когда декодер 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
Декодер 36 улучшающего слоя декодирует знак отличного от нуля коэффициента (этап 158). Знак отличного от нуля коэффициента может быть декодирован как положительный, когда символ знака равен единице, и как отрицательный, когда символ знака равен нулю. После декодирования знака отличного от нуля коэффициента декодер 36 улучшающего слоя может установить отличный от нуля коэффициент равным плюс единице или минус единице на основе декодированного знака (этап 160). Как описано выше, улучшающий слой может не кодировать величину коэффициентов улучшающего слоя. Таким образом, декодер 36 улучшающего слоя может быть сконфигурирован с возможностью устанавливать величину всех отличных от нуля коэффициентов равной единице.
Декодер 36 улучшающего слоя продолжает декодировать серии и знаки отличного от нуля коэффициента, пока декодер 36 улучшающего слоя не определит, что больше нет оставшихся отличных от нуля коэффициентов, например, символ EOB равен единице. В этот момент декодер 36 улучшающего слоя устанавливает равными нулю оставшиеся коэффициенты вектора, если остались какие-либо коэффициенты (этап 162). Как подробно описано в отношении Фиг.2, декодер 36 улучшающего слоя использует вектор коэффициентов вдобавок к блоку предсказания и другим данным для воссоздания видеоблока для представления на дисплее 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
Модуль 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
После внутреннего или внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, созданного модулем 172 предсказания, из текущего видеоблока в сумматоре 179A. Остаточный блок включает в себя множество значений разности пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицы или массива значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After internal or external prediction of the video blocks, the
Модуль 174 преобразования применяет преобразование к остаточному блоку для получения остаточных коэффициентов преобразования. Модуль 174 преобразования, например, может применить преобразование DCT, целочисленное преобразование, направленное преобразование, вейвлетное преобразование или их комбинацию. После применения преобразования к остаточному блоку значений пикселей модуль 175A квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Выходные данные модуля 175A квантования, которые соответствуют квантованным коэффициентам, ассоциированным с базовым слоем, предоставляются на модуль 178 мультиплексирования.The
После квантования модуль 176A обратного квантования применяет обратное квантование для формирования воссозданной версии остаточного блока коэффициентов преобразования. Сумматор 179B вычитает воссозданную версию остаточного блока коэффициентов преобразования, выведенную из модуля 176A обратного квантования, из первоначального остаточного блока коэффициентов преобразования, выведенного модулем 174 преобразования. Этот блок, который называется здесь блоком разности преобразования, предоставляется на модуль 175B квантования. Модуль 175B квантования квантует коэффициенты преобразования для дополнительного уменьшения скорости передачи битов. Выходные данные модуля 175B квантования, которые соответствуют квантованным коэффициентам, ассоциированным с улучшающим слоем, предоставляются на модуль 178 мультиплексирования. В одном примере модуль 175A квантования может квантовать остаточные коэффициенты с использованием первого параметра QP, и модуль 175B квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2.After quantization, the
После квантования модулем 175B квантования модуль 176B обратного квантования применяет обратное квантование для формирования воссозданной версии блока разности преобразования. Сумматор 179C добавляет воссозданную версию остаточного блока коэффициентов преобразования, выведенную из модуля 176A обратного квантования, с воссозданной версией блока разности преобразования, выведенного модулем 176B обратного квантования, для формирования воссозданного остаточного блока.After quantization by the
Модуль 177 обратного преобразования применяет обратное преобразование к воссозданной версии видеоблока. Воссозданная версия видеоблока сохраняется в хранилище 173 кадров и может использоваться модулем 172 предсказания для внутреннего или внешнего кодирования последующего видеоблока. Модуль 172 предсказания может предоставить данные управления, такие как векторы движения, размеры разделения, режимы внутреннего кодирования и т.п., модулю 178 мультиплексирования. Модуль 178 мультиплексирования может комбинировать данные базового и улучшающего слоя. В некоторых случаях модуль 178 мультиплексирования может включать в себя статистические кодеры для статистического кодирования данных базового и улучшающего слоя. В других случаях кодеры базового и улучшающего слоя могут быть отдельными от модуля мультиплексирования.The
Фиг.13 является блок-схемой, иллюстрирующей примерный масштабируемый видеодекодер 180. Масштабируемый видеодекодер 180, например, может соответствовать видеодекодеру 26 на Фиг.2. Масштабируемый видеодекодер 180 на Фиг.13 включает в себя модуль 181 демультиплексирования, модули 182A и 182B обратного квантования, модуль 183 обратного преобразования, модуль 184 предсказания, хранилище 185 кадров и сумматоры 186A и 186B.13 is a block diagram illustrating an exemplary
Модуль 181 демультиплексирования принимает масштабируемое закодированное видео и демультиплексирует сигналы. В некоторых случаях модуль 181 демультиплексирования может включать в себя статистические декодеры для статистического декодирования данных базового и улучшающего слоя. В других случаях декодеры базового и улучшающего слоя могут быть отдельными от модуля демультиплексирования.The
Модуль 182A обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, ассоциированных с базовым слоем, и модуль 182B обратного квантования выполняет обратное квантование квантованных остаточных коэффициентов, ассоциированных с улучшающим слоем. В одном примере модуль 182A обратного квантования может квантовать остаточные коэффициенты c использованием первого параметра QP, и модуль 182B обратного квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2. Соответствующие множества подвергнутых обратному квантованию коэффициентов преобразования, выведенные модулями 182A и 182B обратного квантования, складываются в сумматоре 186A для формирования воссозданного остаточного блока преобразования. Как описано выше, подвергнутые обратному квантованию коэффициенты преобразования, выведенные модулем 182A обратного квантования, могут соответствовать основному уровню качества, и подвергнутые обратному квантованию коэффициенты преобразования, выведенные модулем 182B обратного квантования, при их добавлении к выходным данным модуля 182A обратного квантования дают в результате увеличенный уровень качества.The
Модуль 183 обратного преобразования применяет обратное преобразование, например обратное преобразование DCT, обратное целочисленное преобразование, обратное вейвлетное преобразование или обратное направленное преобразование, к сумме остаточных блоков коэффициентов, подвергнутых обратному квантованию, для получения остаточного блока значений пикселей. Сумматор 186B складывает блок предсказания, сформированный модулем 184 предсказания, с остаточным блоком значений пикселей для образования воссозданного видеоблока базового слоя. Как подробно описано выше, модуль 184 предсказания может сформировать блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания, которые могут быть сохранены в хранилище 185 кадров.The
Фиг.14 является блок-схемой, иллюстрирующей еще один примерный масштабируемый видеодекодер 190. Масштабируемый видеодекодер 190, например, может соответствовать видеодекодеру 26 на Фиг.2. Масштабируемый видеодекодер 190 на Фиг.14 включает в себя модуль 191 демультиплексирования, модули 192A и 192B обратного квантования, модули 193A и 193B обратного преобразования, модуль 194 предсказания, хранилище 195 кадров и сумматоры 196A и 196B.14 is a block diagram illustrating another exemplary
Модуль 191 демультиплексирования принимает масштабируемое закодированное видео и демультиплексирует сигналы. В некоторых случаях модуль 181 демультиплексирования может включать в себя статистические декодеры для статистического декодирования данных базового и улучшающего слоя. В других случаях декодеры базового и улучшающего слоя могут быть отдельными от модуля демультиплексирования.The
Модуль 192A обратного квантования и модуль 193A обратного преобразования применяют операции обратного квантования и обратного преобразования к декодированным остаточным коэффициентам, ассоциированным с базовым слоем, для получения воссозданной версии остаточного блока базового слоя. Модуль 192B обратного квантования и модуль 193B обратного преобразования применяют операции обратного квантования и обратного преобразования к декодированным остаточным коэффициентам, ассоциированным с улучшающим слоем, для получения воссозданной версии остаточного блока улучшающего слоя. В одном примере модуль 192A обратного квантования может квантовать остаточные коэффициенты с использованием первого параметра QP, и модуль 192B обратного квантования может квантовать остаточные разности коэффициентов с использованием второго параметра QP. Второй параметр QP, например, может представлять собой половину значения первого параметра QP, то есть быть равным QP/2.The
Модуль 194 предсказания может сформировать блок предсказания с использованием одного или более смежных блоков в пределах обыкновенного кадра в случае внутреннего предсказания или один или более блоков в пределах смежных кадров в случае внешнего предсказания, которые могут быть сохранены в хранилище 195 кадров. Сумматор 196A добавляет блок предсказания, сформированный модулем 194 предсказания, к воссозданному остаточному блоку, выведенному из модуля 193 обратного преобразования, для формирования декодированных видеоданных на базовом уровне качества. Декодированные видеоданные, имеющие базовый уровень качества, выводятся из масштабируемого видеокодера 190.
Декодированные видеоданные, имеющие базовый уровень качества, также предоставляются на сумматор 196B. Сумматор 196B складывает выходные данные сумматора 196 с воссозданной версией остаточного блока улучшающего слоя, выведенной из модуля обратного 193B преобразования, для формирования декодированных видеоданных на втором, более высоком уровне качества. Декодированные видеоданные, имеющие базовый уровень качества, выводятся из масштабируемого видеокодера 190.Decoded video data with a basic level of quality is also provided on the
Фиг.15 является блок-схемой, иллюстрирующей еще один примерный видеокодер 200. В примере на Фиг.15 кодер 30 базового слоя включает в себя модуль 33A предсказания, хранилище 35A кадров, модуль 38A преобразования, модуль 40A квантования, модуль 41A сканирования коэффициентов, модуль 42A обратного квантования, модуль 44A обратного преобразования, статистический кодер 46 базового слоя, сумматоры 48A-48C и модуль 40A внутреннего предсказания. Отражение различных отличительных признаков на Фиг.15 как модулей предназначено для выделения различных функциональных аспектов проиллюстрированных устройств и не обязательно подразумевает, что такие модули должны быть реализованы посредством отдельных аппаратных или программных компонентов. Напротив, функциональные возможности, ассоциированные с одним или более модулями, могут быть интегрированы в обыкновенных или в отдельных аппаратных или программных компонентах.15 is a block diagram illustrating another
Модуль 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
После внешнего предсказания видеоблоков кодер 30 базового слоя формирует остаточный блок посредством вычитания блока предсказания, созданного модулем 33A предсказания, из текущего видеоблока в сумматоре 48A. Остаточный блок включает в себя множество значений разностей пикселей, которые определяют количество различий между значениями пикселей текущего видеоблока и значениями пикселей блока предсказания. Остаточный блок может быть представлен в формате двумерного блока (например, двумерной матрицей или массивом значений пикселей). Другими словами, остаточный блок является двумерным представлением значений пикселей.After inter prediction of the video blocks, the
Модуль 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
После квантования сумматор 48C вычитает из квантованных остаточных коэффициентов внутренне предсказанный блок, сформированный модулем 40A внутреннего предсказания. Модуль 40A внутреннего предсказания может формировать блок предсказания с использованием внутреннего предсказания на основе одного или более ранее закодированных блоков в пределах того же самого кадра, что и текущий кодируемый блок. Статистический кодер 46 базового слоя статистически кодирует коэффициенты, выведенные из сумматора 48C, например, с использованием кодирования CAVLC, как определено в стандарте H.264/MPEG-4, часть 10 AVC и подробно описано выше в отношении Фиг.2.After quantization, the
Кодер 72 улучшающего слоя включает в себя модуль 33B предсказания, хранилище 35B кадров, модуль 38B преобразования, модуль 40B квантования, модуль 41B сканирования коэффициентов, модуль 42B обратного квантования, модуль 44B обратного преобразования, статистический кодер 49 улучшающего слоя и сумматоры 48D-48F. Модули кодера 32 улучшающего слоя в значительной степени сходны с аналогично пронумерованными модулями кодера 30 базового слоя. Таким образом, будут описаны только различия.
Модуль 33B предсказания кодера 32 улучшающего слоя формирует блок предсказания, который является предсказанной версией текущего видеоблока. В отличие от модуля 33A предсказания кодера 30 базового слоя, который использует ранее закодированные блоки базового слоя для формирования блоков предсказания, модуль 33B предсказания кодера 32 улучшающего слоя может формировать блок предсказания на основе одного или более ранее закодированных блоков улучшающего слоя. Воссозданный видеоблок улучшающего слоя может иметь второй, более высокий уровень качества, чем блок предсказания базового слоя.
Добавочное различие между кодером 32 улучшающего слоя и кодером 30 базового слоя состоит в том, что выходные данные модуля 42B обратного квантования кодера 32 улучшающего слоя комбинируются с выходными данными модуля 42A обратного квантования кодера 30 улучшающего слоя в сумматоре 48F. Сложение выходных данных модулей 42A и 42B обратного квантования формирует воссозданный видеоблок более высокого качества, тем самым давая возможность лучшего предсказания описанным выше модулем предсказания.An additional difference between the
Методики, описанные в этом раскрытии, могут быть осуществлены в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Любые отличительные признаки, описанные как модули или компоненты, могут быть осуществлены вместе в интегрированном логическом устройстве или раздельно как отдельные, но взаимодействующие логические устройства. При осуществлении в программном обеспечении методики могут быть осуществлены по меньшей мере частично посредством машиночитаемого носителя, содержащего такие команды, которые при их исполнении выполняют один или более описанных выше способов. Машиночитаемый носитель может образовывать часть компьютерного программного продукта, который может включать упаковочные материалы. Машиночитаемый носитель может содержать оперативное запоминающее устройство (ОЗУ; 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. 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.
кодирует видеоблок с первым качеством как часть битового потока базового слоя,
кодирует как часть по меньшей мере одного битового потока улучшающего слоя, уточнения видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, и причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
кодирует для каждого отличного от нуля коэффициента уточнений видеоблока символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
корректирует величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.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.
кодировать видеоблок с первым качеством как часть битового потока базового слоя; и
кодировать, как часть по меньшей мере одного битового потока улучшающего слоя, дополнительные коэффициенты уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, и причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
кодировать, для каждого отличного от нуля коэффициента уточнений видеоблока, символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
корректировать величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.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.
первое средство для кодирования видеоблока с первым качеством как части битового потока базового слоя; и
второе средство для кодирования, как части по меньшей мере одного битового потока улучшающего слоя, уточнений видеоблока, которые при их комбинировании с видеоблоком, закодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, которое больше первого качества, причем уточнения видеоблока кодируются в одном проходе кодирования, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
при этом второе средство кодирования кодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ для указания наличия по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии для указания количества нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
при этом второе средство кодирования корректирует величины отличных от нуля коэффициентов уточнений видеоблока, делая их равными единице.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.
декодируют битовый поток базового слоя для получения видеоблока с первым качеством;
декодируют битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам, и причем декодирование улучшающего слоя включает в себя этап, на котором декодируют, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
устанавливают величину каждого отличного от нуля коэффициента вектора коэффициентов равной единице.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.
декодирует битовый поток базового слоя для получения видеоблока с первым качеством; и
декодирует битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество,
причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам,
причем по меньшей мере один декодер декодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента, и
при этом по меньшей мере один декодер устанавливает величины каждого отличного от нуля коэффициента вектора коэффициентов равными единице.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.
декодер базового слоя, который декодирует битовый поток базового слоя для получения видеоблока с первым качеством; и декодер улучшающего слоя, который декодирует битовый поток улучшающего слоя для получения уточнений видеоблока.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.
декодировать битовый поток базового слоя для получения видеоблока с первым качеством; и
декодировать битовый поток улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам;
декодировать, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента; и
устанавливать величину каждого отличного от нуля коэффициента вектора коэффициентов равной единице.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.
первое средство для декодирования битового потока базового слоя для получения видеоблока с первым качеством;
второе средство для декодирования битового потока улучшающего слоя для получения уточнений видеоблока, которые при их комбинировании с видеоблоком, декодированным с первым качеством, дают в результате видеоблок, имеющий второе качество, и
третье средство для установления величины каждого отличного от нуля коэффициента вектора коэффициентов равной единице,
причем уточнения включают в себя по меньшей мере один из дополнительных коэффициентов или уточнений к коэффициентам,
причем второе средство декодирования декодирует, для каждого отличного от нуля коэффициента уточнений видеоблока, символ, указывающий наличие по меньшей мере одного оставшегося отличного от нуля коэффициента, длину серии, указывающую количество нулевых коэффициентов, предшествующих отличному от нуля коэффициенту, и знак отличного от нуля коэффициента.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.
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)
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)
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)
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)
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 |
-
2008
- 2008-10-15 KR KR1020107010570A patent/KR101147943B1/en not_active IP Right Cessation
- 2008-10-15 JP JP2010530087A patent/JP5248619B2/en not_active Expired - Fee Related
- 2008-10-15 EP EP08839798A patent/EP2213099A1/en not_active Ceased
- 2008-10-15 RU RU2010119448/07A patent/RU2463728C2/en not_active IP Right Cessation
- 2008-10-15 TW TW97139596A patent/TWI408965B/en active
- 2008-10-15 CA CA2702488A patent/CA2702488C/en not_active Expired - Fee Related
- 2008-10-15 BR BRPI0818077-6A patent/BRPI0818077A2/en not_active IP Right Cessation
- 2008-10-15 WO PCT/US2008/080034 patent/WO2009052206A1/en active Application Filing
- 2008-10-15 CN CN200880115482.8A patent/CN101855908B/en not_active Expired - Fee Related
-
2012
- 2012-10-03 JP JP2012221420A patent/JP5456867B2/en not_active Expired - Fee Related
Patent Citations (1)
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)
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)
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 |