RU2409003C1 - Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding - Google Patents
Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding Download PDFInfo
- Publication number
- RU2409003C1 RU2409003C1 RU2009117672/09A RU2009117672A RU2409003C1 RU 2409003 C1 RU2409003 C1 RU 2409003C1 RU 2009117672/09 A RU2009117672/09 A RU 2009117672/09A RU 2009117672 A RU2009117672 A RU 2009117672A RU 2409003 C1 RU2409003 C1 RU 2409003C1
- Authority
- RU
- Russia
- Prior art keywords
- video
- coefficients
- encoded
- tables
- information
- Prior art date
Links
- 230000006872 improvement Effects 0.000 title description 3
- 238000000034 method Methods 0.000 claims description 77
- 238000004891 communication Methods 0.000 claims description 18
- 230000005540 biological transmission Effects 0.000 claims description 12
- 238000007619 statistical method Methods 0.000 claims description 11
- 230000009466 transformation Effects 0.000 abstract description 2
- 238000005516 engineering process Methods 0.000 abstract 1
- 239000000126 substance Substances 0.000 abstract 1
- 230000033001 locomotion Effects 0.000 description 41
- 238000013139 quantization Methods 0.000 description 30
- 238000010586 diagram Methods 0.000 description 12
- 230000008569 process Effects 0.000 description 12
- 230000002123 temporal effect Effects 0.000 description 12
- 239000013598 vector Substances 0.000 description 10
- 208000037170 Delayed Emergence from Anesthesia Diseases 0.000 description 9
- 238000004458 analytical method Methods 0.000 description 5
- 238000006243 chemical reaction Methods 0.000 description 5
- 230000006835 compression Effects 0.000 description 4
- 238000007906 compression Methods 0.000 description 4
- 230000001419 dependent effect Effects 0.000 description 4
- 230000000903 blocking effect Effects 0.000 description 3
- 238000004590 computer program Methods 0.000 description 3
- 238000003491 array Methods 0.000 description 2
- 230000001413 cellular effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 239000005022 packaging material Substances 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000001914 filtration Methods 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000001228 spectrum Methods 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
Landscapes
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
Description
[0001] Настоящая заявка испрашивает приоритет следующих предварительных заявок на патент США, все содержание каждой из которых включается здесь по ссылке:[0001] This application claims the priority of the following provisional US patent applications, all of which are incorporated herein by reference:
предварительная заявка на патент США № 60/829,274, поданная 12 октября 2006,provisional application for US patent No. 60 / 829,274, filed October 12, 2006,
предварительная заявка на патент США № 60/883,741, поданная 5 января 2007, иU.S. Patent Application Serial No. 60 / 883,741, filed January 5, 2007, and
предварительная заявка на патент США № 60/829,276, поданная 12 октября 2006.provisional application for US patent No. 60 / 829,276, filed October 12, 2006.
Область техники, к которой относится изобретениеFIELD OF THE INVENTION
[0002] Это раскрытие относится к цифровому кодированию видео и, более конкретно, кодированию с переменной длиной (VLC) коэффициентов преобразования в уровнях расширения схемы масштабируемого кодирования видео (SVC).[0002] This disclosure relates to digital video coding and, more specifically, variable length coding (VLC) of transform coefficients in extension levels of a scalable video coding (SVC) scheme.
Уровень техникиState of the art
[0003] Цифровые возможности видео могут быть включены в широкий диапазон устройств, включая цифровые телевизоры, системы цифрового прямого вещания, устройства беспроводной связи, системы беспроводного вещания, персональные цифровые ассистенты (PDA), портативные или настольные компьютеры, цифровые камеры, цифровые устройства записи, устройства видеоигр, пульты компьютерных игр, сотовые или спутниковые радиотелефоны и т.п. Цифровые видеоустройства реализуют методики сжатия видеосигнала, такие как MPEG-2, MPEG-4 или H.264/MPEG-4, часть 10, Усовершенствованное Кодирование Видео (УВК, AVC), чтобы передавать и принимать цифровое видео более эффективно. Методики сжатия видеосигнала выполняют пространственное и временное предсказание, чтобы сократить или удалить избыточность, свойственную видеопоследовательностям.[0003] Digital video capabilities can be incorporated into a wide range of devices, including digital TVs, digital direct broadcast systems, wireless communication devices, wireless broadcast systems, personal digital assistants (PDAs), laptop or desktop computers, digital cameras, digital recorders, video game devices, game consoles, cellular or satellite radiotelephones, etc. Digital video devices implement video compression techniques such as MPEG-2, MPEG-4 or H.264 / MPEG-4,
[0004] При кодировании видео сжатие видео часто включает в себя пространственное предсказание, оценку движения и компенсацию движения. Интракодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность между видеоблоками в пределах заданного видеокадра. Интеркодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность между видеоблоками последовательных видеокадров видеопоследовательности. Для интеркодирования видеокодер выполняет оценку движения, чтобы отследить движение совпадающих видеоблоков между двумя или более смежными кадрами. Оценка движения генерирует векторы движения, которые указывают смещение видеоблоков относительно соответствующих блоков видео предсказания в одном или более опорных кадрах. Компенсация движения использует векторы движения, чтобы сгенерировать блоки видео предсказания из опорного кадра. После компенсации движения остаточный видеоблок формируется посредством вычитания блока видео предсказания из первоначального видеоблока, который должен быть закодирован.[0004] In video encoding, video compression often includes spatial prediction, motion estimation, and motion compensation. Intra-coding relies on spatial prediction to reduce or remove spatial redundancy between video blocks within a given video frame. Intercoding relies on temporal prediction to reduce or remove temporal redundancy between video blocks of sequential video frames of a video sequence. For intercoding, a video encoder performs motion estimation to track the movement of matching video blocks between two or more adjacent frames. The motion estimation generates motion vectors that indicate the offset of the video blocks relative to the corresponding video prediction blocks in one or more reference frames. Motion compensation uses motion vectors to generate video prediction blocks from a reference frame. After motion compensation, a residual video block is formed by subtracting the video prediction block from the original video block to be encoded.
[0005] Видеокодер обычно применяет процессы преобразования, квантования и кодирования с переменной длиной (КПД, VLC), чтобы дополнительно уменьшить скорость передачи в битах, ассоциированную с передачей остаточного блока. VLC остаточных блоков включает применение кодов переменной длины, чтобы дополнительно сжать остаточные коэффициенты, сформированные операциями квантования и преобразования. Например, таблица VLC может быть использована для согласования различных наборов коэффициентов с кодовым словом переменной длины способом, который способствует эффективности кодирования. Различные таблицы VLC могут использоваться для различного видеоконтента. Видеодекодер выполняет обратные операции VLC, чтобы восстановить коэффициенты, и затем выполняет обратное преобразование этих коэффициентов. Видеодекодер может декодировать видеоинформацию на основании информации движения и остаточной информации, ассоциированной с видеоблоками.[0005] A video encoder typically employs variable length transform, quantization and coding (VLC) processes to further reduce the bit rate associated with transmitting the residual block. VLC residual blocks includes the use of variable-length codes to further compress residual coefficients generated by quantization and transform operations. For example, a VLC table can be used to match different sets of coefficients with a variable-length codeword in a way that promotes coding efficiency. Different VLC tables can be used for different video content. The video decoder performs the inverse VLC operations to recover the coefficients, and then performs the inverse transform of these coefficients. A video decoder may decode video information based on motion information and residual information associated with the video blocks.
[0006] Некоторое видеокодирование использует масштабируемые методики. Например, масштабируемое кодирование видео (SVC) относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. Для SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддержать более высокие пространственный, временной и/или SNR уровни. Базовый уровень может быть передан способом, который более надежен, чем передача уровней расширения. Уровни расширения могут добавить пространственное разрешение к кадрам базового уровня или могут добавить дополнительные кадры, чтобы увеличить полную частоту следования кадров. В одном примере наиболее надежные части модулированного сигнала могут быть использованы для передачи базового уровня, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровней расширения. Уровни расширения могут определять различные типы коэффициентов, называемых существенными коэффициентами и коэффициентами усовершенствования (детализации).[0006] Some video coding uses scalable techniques. For example, scalable video encoding (SVC) refers to video encoding that uses a base layer and one or more scalable extension layers. For SVC, the base layer usually carries video data with a base level of quality. One or more extension layers carry additional video data to support higher spatial, temporal, and / or SNR levels. The base layer may be transmitted in a manner that is more reliable than transmitting extension layers. Extension levels can add spatial resolution to base-level frames, or they can add additional frames to increase the overall frame rate. In one example, the most reliable portions of the modulated signal can be used to transmit the base layer, while the less reliable portions of the modulated signal can be used to transmit extension layers. Extension levels can define different types of coefficients, called essential coefficients and improvement (refinement) coefficients.
Сущность изобретенияSUMMARY OF THE INVENTION
[0007] В целом, это раскрытие описывает способы кодирования уровня расширения в схеме масштабируемого кодирования видео (SVC). Эти способы предусматривают выбор таблиц кодирования с переменной длиной (VLC) в декодере способом, который способствует упрощению вычислений. Эти способы могут использоваться при кодировании коэффициентов преобразования и особенно полезны в VLC коэффициентов детализации уровня расширения в схеме SVC. Коэффициенты детализации относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели ненулевые значения. Кодирование с переменной длиной коэффициентов детализации может быть выполнено отдельно от кодирования с переменной длиной существенных коэффициентов, которые относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имели значения нуля.[0007] Generally, this disclosure describes extension level encoding methods in a scalable video encoding (SVC) scheme. These methods include selecting variable length coding tables (VLCs) in a decoder in a manner that facilitates simplification of calculations. These methods can be used in coding transform coefficients and are particularly useful in VLC expansion level detail coefficients in the SVC scheme. Coefficients of detail relate to the coefficients of the level of expansion, for which the corresponding coefficients of the previous level in the SVC scheme had nonzero values. Variable-length coding of detail coefficients can be performed separately from variable-length coding of significant coefficients, which relate to expansion level coefficients for which the corresponding coefficients of the previous level in the SVC scheme had values of zero.
[0008] Согласно способам этого раскрытия информация передается от устройства кодера на устройство декодера, которое идентифицирует, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков. Информация может быть передана однажды за кадр (или другую кодированную единицу, такую как срез (slice) или уровень FGS кадра) и может идентифицировать первую таблицу, которая должна использоваться для интракодированных (внутрикодированных) блоков, и вторую таблицу, которая должна использоваться для интеркодированных блоков соответствующего кадра. Декодер выполняет выбор таблицы VLC на основе этой информации и декодирует видеоблоки, используя выбранные таблицы VLC. Кроме того, в некоторых случаях кодер и декодер имеют соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана от кодера на декодер, так как у кодера и декодера есть соглашение.[0008] According to the methods of this disclosure, information is transmitted from an encoder device to a decoder device that identifies which VLC tables should be used to decode two or more different types of video blocks. Information can be transmitted once per frame (or another coded unit, such as a slice or FGS level of a frame) and can identify the first table that should be used for intra-coded (intra-coded) blocks, and the second table that should be used for inter-coded blocks corresponding frame. The decoder selects the VLC table based on this information and decodes the video blocks using the selected VLC tables. In addition, in some cases, the encoder and decoder have an agreement regarding tables to be used for different types of blocks. In this case, the tables that are used are dependent on the type of block, but no additional information should be transmitted from the encoder to the decoder, since the encoder and decoder have an agreement.
[0009] В одном примере это раскрытие обеспечивает способ кодирования уровня расширения в схеме SVC, причем способ содержит этапы: кодирование коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерирование информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передачу информации, представляющей кодированные коэффициенты, к устройству декодирования и передачу информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0009] In one example, this disclosure provides a method for encoding an extension level in an SVC scheme, the method comprising the steps of: encoding coefficients associated with video blocks of an extension level based on variable length encoding tables, generating information identifying a first variable length encoding table, which should be used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which should be used by devices a decoding ohm to decode a second type of video blocks, transmitting information representing encoded coefficients to a decoding device and transmitting information identifying a first variable length encoding table to be used by a decoding device to decode the first type of video blocks, and a second variable length encoding table to be used by the decoding device to decode the second type of video blocks.
[0010] В другом примере это раскрытие обеспечивает способ кодирования уровня расширения для схемы SVC, причем способ содержит этапы: прием информации, представляющей закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, прием информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбор таблиц для декодирования информации, представляющей кодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирование информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0010] In another example, this disclosure provides a method for encoding an extension level for an SVC scheme, the method comprising the steps of: receiving information representing encoded coefficients associated with the video blocks of the extension level, receiving information identifying the first variable length encoding table to be used for decoding the first type of video blocks, and the second variable length coding table, which should be used to decode the second type of video blocks, select the tab persons for decoding information representing encoded coefficients based on information identifying the first and second variable length coding table to be used, and decoding information representing encoded coefficients based on selected tables.
[0011] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения в схеме SVC, причем устройство содержит: кодер, который кодирует коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной и генерирует информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, и передатчик, который передает информацию, представляющую закодированные коэффициенты, и передает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока.[0011] In another example, this disclosure provides a device that encodes an extension level in an SVC scheme, the device comprising: an encoder that encodes coefficients associated with extension level video blocks based on variable length encoding tables and generates information identifying the first encoding table with a variable length, which must be used by the decoding device to decode the first type of video blocks, and a second coding table with a variable length, which must be used to decode to decode the second type of video blocks, and a transmitter that transmits information representing the encoded coefficients and transmits information identifying the first variable-length coding table to be used by the decoding device to decode the first type of video blocks, and a second coding table with variable length to be used by the decoding device to decode the second type of video block.
[0012] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит: приемник, который принимает информацию, представляющую закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, и принимает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, и декодер, который выбирает таблицы для декодирования этой информации, представляющей кодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирует информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0012] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising: a receiver that receives information representing encoded coefficients associated with the video blocks of the extension level, and receives information identifying a first variable length encoding table, which should be used to decode the first type of video blocks, and the second variable-length coding table, which should be used to decode orogo type of video blocks and a decoder which selects a table to decode the information representing the encoded coefficients, based on the information identifying the first and second encoding table with variable length, to be used, and decodes the information representing the encoded coefficients, based on the selected tables.
[0013] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит: средство для кодирования коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, в котором средство для кодирования генерирует информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, и средство для передачи информации, представляющей закодированные коэффициенты, к устройству декодирования, при этом средство для передачи передает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0013] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising: means for encoding coefficients associated with video blocks of the extension level, based on variable length encoding tables in which the encoding means generates information identifying the first variable length coding table to be used by the decoding device to decode the first type of video blocks, and the second alternating coding table the length to be used by the decoding device to decode the second type of video blocks, and means for transmitting information representing the encoded coefficients to the decoding device, the means for transmitting transmitting information identifying the first variable length encoding table to be used by the decoding device to decode the first type of video blocks, and the second variable length coding table to be used by the deco device keying to decode the second type of video blocks.
[0014] В другом примере это раскрытие обеспечивает устройство, которое кодирует уровень расширения схемы SVC, причем устройство содержит средство для приема закодированных коэффициентов, ассоциированных с видеоблоками уровня расширения, причем средство для приема также принимает информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, средство для выбора таблиц для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и средство для декодирования информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0014] In another example, this disclosure provides a device that encodes an extension level of an SVC scheme, the device comprising means for receiving encoded coefficients associated with video blocks of an extension level, the reception means also receiving information identifying a first variable length coding table that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used to decode the second of the type of video blocks, means for selecting tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding table to be used, and means for decoding information representing encoded coefficients based on the selected tables.
[0015] Способы, описанные в этом раскрытии, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. При реализации в программном обеспечении программное обеспечение может быть выполнено в одном или более процессорах, таких как микропроцессор, специализированная интегральная схема (ASIC), программируемая пользователем вентильная матрица (FPGA) или цифровой процессор сигналов (DSP). Программное обеспечение, которое выполняет эти способы, может быть первоначально сохранено в считываемом компьютером носителе и загружено и выполнено в процессоре.[0015] The methods described in this disclosure may be implemented in hardware, software, firmware, or any combination thereof. When implemented in software, the software may be executed in one or more processors, such as a microprocessor, a specialized integrated circuit (ASIC), a user programmable gate array (FPGA), or a digital signal processor (DSP). Software that performs these methods may be initially stored in a computer-readable medium and downloaded and executed on a processor.
[0016] Соответственно, это раскрытие также рассматривает считываемые компьютером носители, содержащие команды, которые после выполнения в устройстве кодирования видео заставляют устройство кодировать уровень расширения схемы SVC, при этом команды заставляют устройство кодировать коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерировать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблока, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблока, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблока.[0016] Accordingly, this disclosure also contemplates computer-readable media containing instructions that, after executing in the video encoding device, cause the device to encode the extension level of the SVC circuit, while the instructions cause the device to encode coefficients associated with the video blocks of the extension level based on coding tables with variable length, generate information identifying the first variable length coding table to be used by the decoder code to decode the first type of video block, and a second variable length coding table to be used by the decoding device to decode the second type of video block, transmit information representing encoded coefficients to the decoding device and transmit information identifying the first variable length coding table, which should be used by the decoding device to decode the first type of video block, and the second variable length coding table, which th decoding device to be used to decode a second type of video block.
[0017] Кроме того, это раскрытие также рассматривает считываемые компьютером носители, содержащие команды, которые после выполнения в устройстве кодирования видео, заставляют это устройство кодировать уровень расширения схемы SVC, в котором после приема информации, представляющей закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, и приема информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, команды заставляют это устройство выбирать таблицы для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0017] In addition, this disclosure also contemplates computer-readable media containing instructions that, after executing in the video encoding device, cause the device to encode the extension level of the SVC circuit, in which, after receiving information representing encoded coefficients associated with the video blocks of the extension level, and receiving information identifying the first variable-length coding table to be used to decode the first type of video blocks, and the second table to variable length coding, which should be used to decode the second type of video blocks, commands cause this device to select tables for decoding information representing encoded coefficients based on information identifying the first and second variable length coding table to be used, and decode the information representing encoded coefficients based on selected tables.
[0018] В некоторых случаях считываемый компьютером носитель может быть частью компьютерного программного продукта, который может быть продан изготовителям и/или использоваться в устройстве кодирования видео. Компьютерный программный продукт может включать в себя считываемый компьютером носитель, и в некоторых случаях может также включать в себя упаковочные материалы.[0018] In some cases, the computer-readable medium may be part of a computer program product that can be sold to manufacturers and / or used in a video encoding device. A computer program product may include computer-readable media, and in some cases may also include packaging materials.
[0019] Это раскрытие может также относиться к схеме, такой как интегральная схема, набор специализированных интегральных схем (ASIC), программируемая пользователем вентильная матрица (FPGA), логика или различные их комбинации, сконфигурированные, чтобы выполнить один или более способов, описанных здесь. Соответственно, это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, причем эта схема конфигурируется, чтобы кодировать коэффициенты, ассоциированные с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерировать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования, и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0019] This disclosure may also refer to a circuit, such as an integrated circuit, a set of specialized integrated circuits (ASIC), a user programmable gate array (FPGA), logic, or various combinations thereof, configured to perform one or more of the methods described herein. Accordingly, this disclosure also considers a circuit configured to encode an extension level of an SVC scheme, and this circuit is configured to encode coefficients associated with video blocks of an extension level, based on variable length encoding tables, to generate information identifying a first variable length encoding table, which should be used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which Must be used by a decoding device to decode a second type of video blocks, transmit information representing encoded coefficients to a decoding device, and transmit information identifying a first variable-length encoding table to be used by a decoding device to decode a first type of video blocks, and a second encoding table with a variable length, which must be used by the decoding device to decode the second type of video blocks.
[0020] Это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы масштабируемого кодирования видео (SVC), при этом схема конфигурируется, чтобы принимать информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, принимать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбирать таблицы для декодирования информации, представляющей закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодирования информации, представляющей закодированные коэффициенты, на основании выбранных таблиц.[0020] This disclosure also considers a circuit configured to encode an extension level of a scalable video encoding (SVC) scheme, wherein the circuit is configured to receive information representing encoded coefficients associated with the video blocks of the extension level, to receive information identifying the first variable encoding table the length that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used When decoding the second type of video blocks, select tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding tables to be used and decoding information representing encoded coefficients based on the selected tables.
[0021] Кроме того, это раскрытие рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, причем схема конфигурируется, чтобы принимать информацию, представляющую закодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, выбирать различные таблицы кодирования с переменной длиной, которые должны быть использованы для декодирования информации, на основании типов блока, ассоциированных с видеоблоками, в соответствии с соглашением, установленным кодером, декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0021] In addition, this disclosure considers a circuit configured to encode an extension level of an SVC scheme, wherein the scheme is configured to receive information representing encoded coefficients associated with extension level video blocks, select various variable length encoding tables to be used for decoding information, based on block types associated with video blocks, in accordance with an agreement established by an encoder, decode information representing coded coefficients based on selected tables.
[0022] Подробности одного или более аспектов раскрытия формулируются в сопроводительных чертежах и описании, приведенном ниже. Другие признаки, задачи и преимущества методик, описанных в этом раскрытии, будут очевидны из описания и чертежей и из формулы изобретения.[0022] Details of one or more aspects of the disclosure are set forth in the accompanying drawings and the description below. Other features, objects, and advantages of the techniques described in this disclosure will be apparent from the description and drawings, and from the claims.
Краткое описание чертежейBrief Description of the Drawings
[0023] Фиг.1 - примерная блок-схема, иллюстрирующая систему кодирования и декодирования видео.[0023] FIG. 1 is an exemplary block diagram illustrating a video encoding and decoding system.
[0024] Фиг.2 - концептуальная диаграмма, иллюстрирующая видеокадры базового уровня и уровня расширения масштабируемого битового потока видео.[0024] FIG. 2 is a conceptual diagram illustrating video frames of a base layer and an extension layer of a scalable video bitstream.
[0025] Фиг.3 - блок-схема, иллюстрирующая пример видеокодера, совместимого с настоящим изобретением.[0025] FIG. 3 is a block diagram illustrating an example of a video encoder compatible with the present invention.
[0026] Фиг.4 - блок-схема, иллюстрирующая пример видеодекодера, совместимого с настоящим изобретением.[0026] FIG. 4 is a block diagram illustrating an example of a video decoder compatible with the present invention.
[0027] Фиг.5 - примерная блок-схема модуля кодирования с кодированием с переменной длиной (VLC).[0027] FIG. 5 is an exemplary block diagram of a variable length coding (VLC) coding unit.
[0028] Фиг.6 - примерная блок-схема модуля декодирования VLC.[0028] FIG. 6 is an exemplary block diagram of a VLC decoding module.
[0029] Фиг.7 - схема последовательности операций, иллюстрирующая методику VLC для кодирования с переменной длиной, совместимую с настоящим изобретением.[0029] FIG. 7 is a flowchart illustrating a VLC technique for variable-length coding compatible with the present invention.
[0030] Фиг.8 - схема последовательности операций, иллюстрирующая методику VLC для декодирования с переменной длиной, совместимую с настоящим изобретением.[0030] FIG. 8 is a flowchart illustrating a VLC technique for variable length decoding compatible with the present invention.
Подробное описаниеDetailed description
[0031] Это раскрытие описывает методики для кодирования уровня расширения в схеме масштабируемого кодирования видео (SVC). Эти методики предусматривают выбор таблиц кодирования с переменной длиной (VLC) в декодере способом, который улучшает простоту вычислений. Эти методики могут использоваться при кодировании коэффициентов преобразования и особенно полезны при кодировании с переменной длиной коэффициентов детализации уровня расширения схемы SVC. Коэффициенты детализации относятся к коэффициентам уровня расширения, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имеют ненулевые значения. Кодирование с переменной длиной коэффициентов детализации может быть выполнено отдельно от кодирования с переменной длиной существенных коэффициентов (например, для которого соответствующие коэффициенты предыдущего уровня в схеме SVC имеют нулевые значения).[0031] This disclosure describes techniques for coding an extension layer in a scalable video coding (SVC) scheme. These techniques involve the selection of variable length coding tables (VLCs) in a decoder in a manner that improves simplicity of computation. These techniques can be used in coding transform coefficients and are especially useful in variable length coding of detail coefficients of the level of expansion of an SVC circuit. Coefficients of detail relate to the coefficients of the level of expansion, for which the corresponding coefficients of the previous level in the SVC scheme have nonzero values. Variable length coding of detail coefficients can be performed separately from coding with variable length of significant coefficients (for example, for which the corresponding coefficients of the previous level in the SVC scheme have zero values).
[0032] Согласно методикам этого раскрытия информация, идентифицирующая, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков, передается с устройства кодера на устройство декодера. Эта информация может быть передана однажды за кадр (или другую кодированную единицу) и может идентифицировать первую таблицу, которая должна использоваться для интракодированных блоков, и вторую таблицы, которая должна использоваться для интеркодированных блоков соответствующего кадра. Декодер выполняет выбор таблицы на основе этой информации и декодирует видеоблоки, используя выбранные таблицы.[0032] According to the techniques of this disclosure, information identifying which VLC tables should be used to decode two or more different types of video blocks is transmitted from the encoder device to the decoder device. This information can be transmitted once per frame (or other coded unit) and can identify the first table that should be used for intra-coded blocks, and the second table that should be used for intercoded blocks of the corresponding frame. The decoder performs table selection based on this information and decodes the video blocks using the selected tables.
[0033] В устройстве кодера выбор таблицы VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы в устройстве кодера. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в устройстве декодера. Вместо этого информация, идентифицирующая таблицы, которые должны быть выбраны для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с устройства кодера на устройство декодера. Устройство декодера может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы. Альтернативно, в некоторых случаях кодер и декодер могут иметь соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана с кодера на декодер, так как кодер и декодер имеют соглашение.[0033] In the encoder device, the selection of a VLC table for encoding various video blocks can be made based on information collected for previously or currently encoded frames. For example, statistical analysis of previously encoded frames may be performed to facilitate table selection in the encoder device. This computationally intensive analysis, however, can be avoided in the decoder device. Instead, information identifying the tables to be selected for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks, can be transmitted from the encoder device to the decoder device. A decoder device may use this transmitted information to facilitate proper table selections. Alternatively, in some cases, the encoder and decoder may have an agreement regarding tables to be used for various types of blocks. In this case, the tables that are used are dependent on the type of block, but no additional information should be transmitted from the encoder to the decoder, since the encoder and decoder have an agreement.
[0034] Выбранные таблицы в кодере могут очень зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере, является обычно неизвестным на декодере, информация относительно типа видеоблока обеспечивает полезный механизм для выбора таблицы в декодере. В частности, так как уровень квантования может зависеть от типа видеоблока, выбор таблицы VLC в декодере на основании типа видеоблока может быть полезным. Таблицы VLC идентифицируются для декодера для различных типов видеоблока, и декодер может определить тип, ассоциированный с соответствующим видеоблоком, и использовать соответствующую таблицу VLC, чтобы декодировать этот соответствующий видеоблок.[0034] The selected tables in the encoder can be very dependent on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in the encoder is usually unknown at the decoder, information regarding the type of video block provides a useful mechanism for selecting a table in the decoder. In particular, since the quantization level may depend on the type of video block, selecting a VLC table in the decoder based on the type of video block may be useful. VLC tables are identified for the decoder for various types of video block, and the decoder can determine the type associated with the corresponding video block and use the corresponding VLC table to decode this corresponding video block.
[0035] Фиг.1 показывает блок-схему, иллюстрирующую систему 10 кодирования и декодирования видео. Как показано на Фиг.1, система 10 включает в себя устройство 12 источника, которое передает кодированное видео на устройство 16 приема по каналу 15 связи. Устройство 12 источника может включать в себя источник 20 видео, видеокодер 22 и модулятор/передатчик 24. Устройство 16 приема может включать в себя приемник/демодулятор 26, видеодекодер 28 и устройство 30 отображения. Система 10 может быть конфигурирована, чтобы применять методики для кодирования с переменной длиной (VLC) видеоинформации, ассоциированной с уровнем расширения, в схеме масштабируемого кодирования видео (SVC).[0035] FIG. 1 shows a block diagram illustrating a video encoding and
[0036] SVC относится к кодированию видео, в котором используются базовый уровень и один или более масштабируемых уровней расширения. Для SVC базовый уровень обычно несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные видеоданные, чтобы поддержать более высокий пространственный, временной и/или сигнал-к-шуму SNR уровни. Уровни расширения могут быть определены относительно ранее закодированного уровня. Уровни расширения определяют по меньшей мере два различных типа коэффициентов, называемых существенными коэффициентами и коэффициентами детализации (улучшения). Коэффициенты детализации могут определять значения относительно соответствующих значений ранее кодированного уровня. Кадры уровней расширения иногда включают в себя только часть общего количества видеоблоков в базовом уровне или предыдущем уровне расширения, например только те блоки, для которых выполняется расширение.[0036] SVC refers to video encoding that uses a base layer and one or more scalable extension layers. For SVC, the base layer usually carries video data with a base level of quality. One or more extension layers carry additional video data to support higher spatial, temporal and / or signal-to-noise SNR levels. Extension levels can be determined relative to a previously encoded level. Levels of expansion define at least two different types of coefficients called essential coefficients and coefficients of detail (improvement). Coefficients of detail can determine the values relative to the corresponding values of the previously encoded level. Extension level frames sometimes include only part of the total number of video blocks in the base level or previous extension level, for example, only those blocks for which expansion is performed.
[0037] Существенные коэффициенты относятся к коэффициентам, для которых соответствующие коэффициенты в предыдущем уровне имели нулевые значения. Коэффициенты детализации относятся к коэффициентам, для которых соответствующие коэффициенты в предыдущем уровне имели ненулевые значения в предыдущем уровне. Кодирование с переменной длиной уровней расширения обычно использует подход с двумя проходами. Первый проход выполняется для кодирования длинами серий существенных коэффициентов, и другой проход выполняется, чтобы закодировать коэффициенты детализации. Методики этого раскрытия особенно полезны для кодирования с переменной длиной коэффициентов детализации, хотя настоящее раскрытие не обязательно ограничивается в этом отношении.[0037] Material coefficients relate to coefficients for which the corresponding coefficients in the previous level had zero values. Detail factors refer to factors for which the corresponding factors in the previous level had nonzero values in the previous level. Variable-length coding of extension levels usually uses a two-pass approach. A first pass is performed to encode the lengths of a series of significant coefficients, and another pass is performed to encode the detail coefficients. The techniques of this disclosure are particularly useful for variable length coding of detail coefficients, although the present disclosure is not necessarily limited in this regard.
[0038] Согласно методикам этого раскрытия информация передается от устройства 12 источника на устройство 16 приема, которое идентифицирует, какие таблицы VLC должны использоваться для декодирования двух или более различных типов видеоблоков. Информация может быть передана однажды за кадр (или другую кодированную единицу), и может идентифицировать первую таблицу, которая должна использоваться для интракодированных блоков, и вторую таблицу, которая должна использоваться для интеркодированных блоков соответствующего кадра. Эта информация может содержать один или более битов, которые идентифицируют первую таблицу VLC для интракодированных блоков, и один или более битов, которые идентифицируют вторую таблицу VLC для интеркодированных блоков. Видео декодер 28 устройства 16 приема выполняет выбор таблицы на основании этой информации и декодирует видеоблоки, используя выбранные таблицы. Снова, однако, в некоторых случаях кодер 22 и декодер 28 могут иметь соглашение относительно таблиц, которые должны использоваться для различных типов блоков. В этом случае таблицы, которые используются, являются зависимыми от типа блока, но никакая дополнительная информация не должна быть передана от устройства 12 источника на устройство 16 приема, так как кодер 22 и декодер 28 имеют соглашение.[0038] According to the techniques of this disclosure, information is transmitted from the
[0039] В примере на Фиг.1 канал 15 связи может содержать любой беспроводной или проводной носитель связи, такой как радиочастотного (РЧ) спектра или одну или более физических линий передачи, или любую комбинацию беспроводного или проводного носителей. Канал 15 связи может быть частью основанной на пакетной передаче сети, такой как локальная сеть, широкомасштабная сеть или глобальная сеть, такая как Интернет. Канал 15 связи обычно представляет собой любой подходящий коммуникационный носитель или «коллекцию» различных коммуникационных носителей для передачи видеоданных от устройства 12 источника на устройство 16 приема. Канал 15 связи может включать в себя различные базовые станции или другие компоненты, чтобы облегчить передачу от устройства 12 источника к устройству 16 приема.[0039] In the example of FIG. 1, the
[0040] Устройство 12 источника и устройство 16 приема могут содержать любое из широкого разнообразия устройств беспроводной связи, таких как беспроводные цифровые телевизоры, телефонные трубки устройства беспроводной связи, персональные цифровые ассистенты (PDA), беспроводной портативный или настольный компьютеры, беспроводные цифровые камеры, беспроводные цифровые устройства записи, беспроводные устройства видео игр, беспроводные консоли компьютерных игр, сотовые или спутниковые радиотелефоны и т.п.[0040] The
[0041] Устройство 12 источника генерирует кодированные видеоданные для передачи на устройство 16 приема. В некоторых случаях, однако, устройства 12, 16 могут работать по существу симметричным способом. Например, каждое из устройств 12, 16 может включать в себя компоненты кодирования и декодирования видео. Следовательно, система 10 может поддержать одностороннюю или двухстороннюю передачу видео между видео устройствами 12, 16, например, для потоковой передачи видео, радиовещания видео или видео телефонии.[0041] The
[0042] Источник 20 видео из устройства 12 источника может включать в себя устройство захвата видео, такое как видео камера, видео архив, содержащий ранее захваченное видео или видео передачу от поставщика видео контента. В качестве другой альтернативы источник 20 видео может генерировать основанные на компьютерной графике данные в качестве исходного видео или комбинацию видео в реальном масштабе времени и генерируемого компьютером видео. В некоторых случаях, если источник 20 видео является видео камерой, устройство 12 источника и устройство 16 приема могут сформировать так называемые телефоны с камерами или видеотелефоны. В каждом случае захваченное, предварительно захваченное или сгенерированное компьютером видео может быть закодировано видеокодером 22 для передачи от устройства 12 источника видео на видеодекодер 28 устройства 16 приема видео через модулятор/передатчик 22, канал 15 связи и приемник/демодулятор 26. Процессы кодирования и декодирования видео могут реализовать способы кодирования длинами серий, описанные здесь, чтобы улучшить эти процессы. Устройство 30 отображения отображает декодированные видеоданные пользователю и может содержать любое из множества устройств отображения, таких как электронно-лучевая трубка, дисплей на жидких кристаллах (LCD), плазменный дисплей, дисплей на органических светодиодах (OLED) или другой тип устройства отображения.[0042] The
[0043] Видеокодер 22 и видеодекодер 28 могут быть конфигурированы, чтобы поддерживать SVC для пространственной, временной и/или отношения сигнал-шум (SNR) масштабируемости. В некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть конфигурированы, чтобы поддержать кодирование с мелкой степенью детализации SNR масштабируемости (FGS), для SVC. Кодер 22 и декодер 28 могут поддерживать различные степени масштабируемости посредством поддержки кодирования, передачи и декодирования базового уровня и одного или более масштабируемых уровней расширения. Снова для масштабируемого кодирования видео базовый уровень несет видеоданные с базовым уровнем качества. Один или более уровней расширения несут дополнительные данные, чтобы поддерживать более высокий пространственный, временной и/или SNR уровни. Базовый уровень может быть передан способом, который более надежен, чем передача уровней расширения. Например, самые надежные части модулированного сигнала могут быть использованы для передачи базового уровня, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровней расширения.[0043]
[0044] Чтобы поддержать SVC, видеокодер 22 может включать в себя кодер 32 базового уровня и один или более кодеров 34 уровня расширения, чтобы выполнить кодирование базового уровня и одного или более уровней расширения соответственно. Методики этого раскрытия, которые используют выбор таблицы VLC, применимы к кодированию видеоблоков уровней расширения в SVC.[0044] In order to support SVC,
[0045] Видеодекодер 28 может включать в себя объединенный декодер базового уровня/уровня расширения, который декодирует блоки видео и базового уровня и уровня расширения. Видеодекодер 28 может декодировать видеоблоки, ассоциированные и с базовым и с расширением уровнями, и комбинировать декодированное видео, чтобы восстановить кадры видео последовательности. Устройство 30 отображения принимает декодированную видео последовательность и представляет видео последовательность пользователю.[0045] Video decoder 28 may include a combined base level / extension level decoder that decodes blocks of video and base level and extension level. Video decoder 28 can decode the video blocks associated with both the base and extension layers, and combine the decoded video to restore frames of the video sequence. The display device 30 receives the decoded video sequence and presents the video sequence to the user.
[0046] Видеокодер 22 и видеодекодер 28 могут работать согласно стандарту сжатия видео, такому как MPEG-2, MPEG-4, Н.263 ITU-T или ITU-T H.264/MPEG-4, Часть 10, Усовершенствованное Кодирование Видео (AVC). Хотя и не показано на Фиг.1, в некоторых аспектах видеокодер 22 и видеодекодер 28 могут быть, каждый, интегрированы с аудио кодером и декодером и могут включать в себя соответствующие модули MUX-DEMUX или другое аппаратное обеспечение и программное обеспечение для обработки кодирования и аудио и видео в общем потоке данных или отдельных потоках данных. Если применимо, модули MUX-DEMUX может соответствовать протоколу мультиплексора Н.223 ITU или другим протоколам, таким как протокол пользовательских дейтаграмм (UDP).[0046]
[0047] Стандарт H.264/MPEG-4 (AVC) был сформулирован Группой Экспертов Кодирования Видео (VCEG) ITU-T вместе с Группой Экспертов по Движущимся Изображениям ISO/IEC (MPEG) в качестве продукта коллективного партнерства, известного как Объединенная Видео Группа (JVT). В некоторых аспектах методики, описанные в этом раскрытии, могут быть применены к устройствам, которые обычно соответствуют стандарту H.264. Стандарт H.264 описывается в Рекомендации H.264 ITU-T, Усовершенствованное Кодирование Видео для универсальных аудиовизуальных служб, посредством Исследовательской Группы ITU-T, датированной мартом 2005, который может быть назван здесь как стандарт H.264 или спецификация H.264 или стандарт или спецификация H.264/AVC.[0047] The H.264 / MPEG-4 (AVC) standard was formulated by the ITU-T Video Coding Experts Group (VCEG) together with the ISO / IEC Moving Images Experts Group (MPEG) as a collaborative partnership product known as the Combined Video Group (JVT). In some aspects, the techniques described in this disclosure may be applied to devices that typically comply with the H.264 standard. The H.264 standard is described in ITU-T Recommendation H.264, Advanced Video Coding for Universal Audiovisual Services, through the ITU-T Study Group dated March 2005, which may be referred to here as the H.264 standard or the H.264 specification or standard or H.264 / AVC specification.
[0048] Объединенная Видео Группа (JVT) продолжает работать по расширению SVC на H.264/MPEG-4 AVC. Спецификация развивающегося расширения SVC находится в форме Объединенного Проекта (JD). Объединенная Масштабируемая Видео Модель (JSVM), созданная JVT, реализует инструментальные средства для использования в масштабируемом видео, которое может использоваться в системе 10 для различных задач кодирования, описанных в этом раскрытии. Подробная информация относительно кодирования масштабируемости SNR с мелкой степенью детализации (FGS) может быть найдена в документах Объединенного Проекта и, в частности, в Объединенном Проекте 6 (SVC JD6), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 6: Scalable Video Coding," JVT-S 201, April 2006, Geneva, и в Joint Draft 9 (SVC JD9), Thomas Wiegand, Gary Sullivan, Julien Reichel, Heiko Schwarz, and Mathias Wien, "Joint Draft 9 of SVC Amendment," JVT-V 201, January 2007, Marrakech, Morocco.[0048] The Combined Video Group (JVT) continues to work to expand the SVC on the H.264 / MPEG-4 AVC. The specification for the evolving SVC extension is in the form of a Joint Project (JD). The Joint Scalable Video Model (JSVM) created by JVT implements tools for use in scalable video, which can be used in
[0049] В некоторых аспектах для вещания видео методики, описанные в этом раскрытии, могут быть применены к Улучшенному кодированию видео H.264 для того, чтобы предоставить службы видео реального времени в системах наземного мобильного мультимедийного мультивещания (TM3), используя Спецификацию Эфирного Интерфейса Только Прямой Линии Связи (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast," опубликованная как Technical Standard TIA-1099 ("Спецификация FLO"). То есть канал 15 связи может содержать беспроводный информационный канал, используемый для беспроводного вещания видеоинформации согласно Спецификации FLO, или подобное. Спецификация FLO включает в себя примеры, определяющие синтаксис и семантику битового потока и процессы декодирования, подходящие для эфирного интерфейса FLO. Альтернативно, видео может быть передано согласно другим стандартам, таким как DVB-H (вещание цифрового видео на портативные устройства), ISDB-T (наземное цифровое вещание интегрированных служб) или DMB (вещание цифровой аудиовизуальной информации). Следовательно, устройство 12 источника может быть мобильным беспроводным терминалом, сервером потоковой передачи видео или сервером вещания видео. Однако методики, описанные в этом раскрытии, не ограничиваются конкретным типом системы вещания, мультивещания или точка-точка. В случае вещания устройство 12 источника может вещать несколько каналов видеоинформации к множеству устройств приема, каждое из которых может быть аналогичным устройству 16 приема на Фиг.1.[0049] In some aspects for video broadcasting, the techniques described in this disclosure can be applied to Enhanced H.264 video encoding in order to provide real-time video services in terrestrial mobile multimedia broadcasting (TM3) systems using the Air Interface Specification Only Direct Link (FLO), "Forward Link Only Air Interface Specification for Terrestrial Mobile Multimedia Multicast," published as Technical Standard TIA-1099 ("FLO Specification"). That is, the
[0050] Видеокодер 22 и видеодекодер 28, каждый, может быть реализован как один или более микропроцессоров, цифровые процессоры сигналов (DSP), специализированные интегральные схемы (ASIC), программируемые пользователем вентильные матрицы (FPGA), дискретная логика, программное обеспечение, аппаратное обеспечение, программно-аппаратное обеспечение или любые их комбинации. Каждый из видеокодера 22 и видеодекодера 28 может быть включен в один или более кодеров или декодеры, любой из которых может быть интегрирован как часть объединенного кодера/декодера (кодека) в соответствующем мобильном устройстве, устройстве абонента, устройстве вещания, сервере или подобном. Кроме того, устройство 12 источника и устройство 16 приема, каждое, может включать в себя соответствующие компоненты модуляции, демодуляции, преобразования частоты, фильтрования и усилители для передачи и приема кодированного видео, как приемлемо, включая радиочастотные (РЧ) беспроводные компоненты и антенны, достаточные для поддержания беспроводной связи. Для простоты иллюстрации, однако, такие компоненты объединены как являющиеся модулятором/передатчиком 24 устройства 12 источника и приемником/демодулятором 26 устройства 16 приема на Фиг.1.[0050]
[0051] Видеопоследовательность включает в себя последовательность видеокадров. Видеокодер 22 выполняет операции над блоками пикселей (или блоками преобразованных коэффициентов) в индивидуальных видеокадрах, чтобы закодировать видеоданные. Видеоблоки могут иметь фиксированные или переменные размеры и могут отличаться по размеру согласно заданному стандарту кодирования. В некоторых случаях каждый видеокадр является кодированной единицей, в то время как в других случаях каждый видеокадр может быть разбит, и включает в себя последовательность «срезов», которые формируют кодированные единицы. Каждый срез может включать в себя последовательность макроблоков, которые могут быть организованы в субблоки. В качестве примера, стандарт H.264 ITU-T поддерживает интрапредсказание при различных размерах блока, например 16 на 16, 8 на 8 или 4 на 4 для компонентов яркости и 8x8 для компонентов сигнала цветности, а также интерпредсказание в различных размерах блока, например 16 на 16, 16 на 8, 8 на 16, 8 на 8, 8 на 4, 4 на 8 и 4 на 4 для компонентов яркости и соответствующих масштабированных размеров для компонентов сигнала цветности. Согласно этому раскрытию информация выбора таблицы VLC для интракодированных блоков и интеркодированных блоков может быть передана от устройства 12 источника на устройство 16 приема однажды на кодированный модуль, например один раз за кадр, один раз за срез или один раз за уровень FGS кадра. Эта информация может затем использоваться для выбора таблицы VLC для кодирования коэффициентов преобразования видеоблоков, ассоциированных с этим соответствующим кодированным модулем.[0051] The video sequence includes a sequence of video frames.
[0052] Форма и содержимое информации, переданной для идентификации различных таблиц VLC, могут изменяться. Например, информация может быть сформулирована как два различных однобитовых или многобитовых кода, которые идентифицируют - какая таблица VLC должна быть использована для декодирования первого типа видеоблока и какая таблица VLC должна быть использована для декодирования второго типа видеоблока. Для каждого кадра, который должен быть декодирован, один однобитовый или многобитовый код может быть послан для интраблоков и другой однобитовый или многобитовый код может быть послан для интерблоков. Декодер 28 выбирает различные таблицы VLC для декодирования интра- и интеркодированных блоков на основании таблиц, идентифицированных в этих кодах.[0052] The form and contents of information transmitted to identify various VLC tables may vary. For example, information can be formulated as two different single-bit or multi-bit codes that identify which VLC table should be used to decode the first type of video block and which VLC table should be used to decode the second type of video block. For each frame to be decoded, one single-bit or multi-bit code can be sent for interblocks and another single-bit or multi-bit code can be sent for interblocks. Decoder 28 selects various VLC tables to decode intra- and intercoded blocks based on the tables identified in these codes.
[0053] Меньшие видеоблоки могут обеспечить лучшее разрешение и могут использоваться для местоположений видеокадра, которые включают в себя более высокие уровни деталей. Обычно макроблоки (МБ) и различные субблоки могут быть рассмотрены в качестве видеоблоков. Кроме того, срез может рассматриваться как последовательность видеоблоков, таких как МБ и/или субблоки. Как отмечено, каждый срез может быть независимо декодируемой единицей видеокадра. После предсказания преобразование может быть выполнено в отношении остаточного блока 8×8 или остаточного блока 4×4 и дополнительное преобразование может быть применено к DC коэффициентам блоков 4×4 для компонентов сигнала цветности или компонента яркости, если используется интра_16×16 режим предсказания.[0053] Smaller video blocks can provide better resolution and can be used for video frame locations that include higher levels of detail. Typically, macroblocks (MBs) and various subblocks can be considered as video blocks. In addition, the slice can be considered as a sequence of video blocks, such as MB and / or sub-blocks. As noted, each slice may be an independently decoded video frame unit. After the prediction, the conversion can be performed on the 8 × 8 residual block or the 4 × 4 residual block, and an additional conversion can be applied to the 4 × 4 block DC coefficients for the color signal or luminance component components if the intra_16 × 16 prediction mode is used.
[0054] После интра- или интероснованного прогнозирующего кодирования дополнительные способы кодирования могут быть применены к переданному битовому потоку. Эти дополнительные способы кодирования могут включать в себя способы преобразования (такие, как 4×4 или 8×8 целочисленное преобразование, используемое в H.264/AVC, или дискретное косинусное преобразования DCT) и кодирование с переменной длиной. Блоки коэффициентов преобразования могут называться как видеоблоки. Другими словами, термин "видеоблок" относится к блоку видеоданных независимо от области информации. Таким образом, видеоблоки могут быть в пиксельной области или области преобразованных коэффициентов. Применение кодирования VLC описано в целом в этом раскрытии относительно блоков коэффициентов преобразования.[0054] After intra- or inter-based predictive coding, additional coding methods may be applied to the transmitted bitstream. These additional encoding methods may include transform methods (such as 4 × 4 or 8 × 8 integer transform used in H.264 / AVC, or discrete cosine DCT transform) and variable length encoding. Blocks of conversion coefficients may be referred to as video blocks. In other words, the term “video block” refers to a block of video data regardless of the area of information. Thus, the video blocks may be in a pixel region or a region of transformed coefficients. The use of VLC coding is described generally in this disclosure with respect to transform coefficient blocks.
[0055] Это раскрытие обеспечивает способы для кодирования с переменной длиной коэффициентов детализации. Снова коэффициенты детализации относятся к коэффициентам, которые имели ненулевые значения в предыдущем уровне, тогда как существенные коэффициенты относятся к коэффициентам, которые имели нулевые значения в предыдущем уровне. Согласно этому раскрытию информация может быть передана от устройства 12 источника на устройство 16 приема, чтобы выбрать таблицу VLC в декодере для двух или более различных типов видеоблоков. Одна из множества различных таблиц VLC может быть выбрана для каждого типа видеоблока на основании информации, посланной от устройства 12 источника на устройство 16 приема. Устройство приема затем выбирает между двумя идентифицированными таблицами VLC на основании типа декодируемого видеоблока.[0055] This disclosure provides methods for variable length coding of detail coefficients. Again, detail coefficients refer to coefficients that have non-zero values in the previous level, while significant coefficients refer to coefficients that have zero values in the previous level. According to this disclosure, information can be transmitted from
[0056] Каждая таблица VLC может включать в себя ряд кодовых символов, имеющих различные длины. Кодовым символам могут быть назначены соответствующие характеристики в пределах видеоблока, например конкретная длина серии из нулей коэффициентов детализации. В некоторых случаях таблицы являются статическими, но в других случаях эти таблицы могут быть сгенерированы или обновлены на основании статистики кодирования так, чтобы кодовые слова переменной длины преобразовывались в наборы коэффициентов способом, который повышает эффективность кодирования. Конечно, если таблицы обновляются в кодере, обновления таблицы также должны быть обновлены в декодере.[0056] Each VLC table may include a number of code symbols having different lengths. The code symbols can be assigned corresponding characteristics within the video block, for example, a specific length of a series of zeros of detail coefficients. In some cases, tables are static, but in other cases, these tables can be generated or updated based on coding statistics so that variable-length codewords are converted into sets of coefficients in a way that improves coding efficiency. Of course, if tables are updated at the encoder, table updates must also be updated at the decoder.
[0057] Кодер 22 и декодер 28 могут выполнять взаимно обратные способы, которые кодируют уровень расширения в схеме SVC. В кодере 22 выбор таблицы для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для в настоящее время или ранее кодированных кадров. Если выбор основан на ранее кодированных кадрах, кодирование с одним проходом может использоваться, но если кодирование основано на в настоящее время кодируемых кадрах, это может потребовать кодирование с двумя проходами. В некоторых случаях может быть выполнен статистический анализ ранее закодированных кадров, чтобы облегчить выбор таблицы в кодере 22. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере 28. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например, интракодированный блок и интеркодированные блоки могут быть переданы от устройства 12 источника на устройство 16 приема. Декодер 28 затем может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы.[0057]
[0058] Выбранные таблицы в кодере (например, которые могут быть выбраны на основании статистики) могут сильно зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере 22, является обычно неизвестным декодеру 28, информация относительно типа видеоблока обеспечивает полезную альтернативу для применения в декодере 28. Поэтому таблицы идентифицированы для декодера 28 для различных типов видеоблока, и декодер 28 может определить тип, ассоциированный с соответствующим видеоблоком, и использовать соответствующую таблицу VLC, чтобы декодировать этот соответствующий видеоблок. Как используется здесь, термин «кодирование» обычно относится к по меньшей мере части процессов кодирования или декодирования. Видеокодер 22 кодирует данные, в то время как видеодекодер 28 декодирует данные.[0058] The selected tables in the encoder (for example, which can be selected based on statistics) can greatly depend on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in
[0059] Сами таблицы VLC могут назначить кодовые слова различным наборам коэффициентов преобразования. Наборы коэффициентов с нулевыми значениями могут быть представлены длинами серий из нулей, и более общим длинам серий могут быть назначены более короткие коды VLC. Менее общим длинам серий могут быть назначены более длинные коды VLC. Следовательно, выбор кодов из таблиц VLC может улучшить эффективность кодирования. Назначение кодов в таблицах VLC может быть также основано на статистике во время процесса формирования таблицы, хотя статические таблицы VLC также могут использоваться.[0059] The VLC tables themselves can assign codewords to various sets of transform coefficients. Sets of coefficients with null values may be represented by series lengths of zeros, and shorter VLC codes may be assigned to more general series lengths. Shorter series lengths can be assigned longer VLC codes. Therefore, selecting codes from VLC tables can improve coding efficiency. The assignment of codes in VLC tables can also be based on statistics during the table generation process, although static VLC tables can also be used.
[0001] Фиг.2 - диаграмма, иллюстрирующая видеокадры в базовом уровне 17 и уровне 18 расширения масштабируемого битового потока видео. Как отмечено выше, способы настоящего раскрытия применимы к кодированию данных уровней расширения. Базовый уровень 17 может содержать битовый поток, содержащий кодированные видеоданные, которые представляют первый уровень пространственной, временной или SNR масштабируемости. Уровень 18 расширения может содержать битовый поток, содержащий кодированные видеоданные, которые представляют второй уровень пространственной, временной и/или SNR масштабируемости. Хотя показан один уровень расширения, в некоторых случаях могут использоваться несколько уровней расширения. Битовый поток уровня расширения может быть декодируемым только вместе с базовым уровнем (или предыдущим уровнем расширения, если существует множество уровней расширения). Уровень 18 расширения содержит ссылки на декодированные видеоданные в базовом уровне 17. Такие ссылки могут использоваться или в области преобразования, или в пиксельной области, чтобы сгенерировать окончательные декодированные видеоданные.[0001] FIG. 2 is a diagram illustrating video frames in a
[0002] Базовый уровень 17 и уровень 18 расширения может содержать интра- (I), интер- (P) и бинаправленный (B) кадры. Интракадры могут включать в себя все интракодированные видеоблоки. I и P кадры могут включать в себя по меньшей мере некоторые интеркодированные видеоблоки, но могут также включать в себя некоторые интракодированные блоки. Различные кадры уровня 18 расширения не должны включать в себя все видеоблоки в базовом уровне 17. Кадры P в уровне 18 расширения полагаются на ссылки на кадры P в базовом уровне 17. Посредством декодирования кадров в уровне 18 расширения и базовом уровне 17 видеодекодер в состоянии повысить качество видео декодированного видео. Например, базовый уровень 17 может включать в себя видео, закодированное при минимальной частоте кадров, например 15 кадров в секунду, тогда как уровень 18 расширения может включать в себя видео, закодированное с более высокой частотой кадров, например 30 кадров в секунду. Чтобы поддерживать кодирование с различными уровнями качества, базовый уровень 17 и уровень 18 расширения могут быть закодированы с более высоким параметром квантования (QP) и более низким QP соответственно. Кроме того, базовый уровень 17 может быть передан способом, который более надежен, чем передача уровня 18 расширения. Как пример, самые надежные части модулированного сигнала могут быть использованы для передачи базового уровня 17, в то время как менее надежные части модулированного сигнала могут быть использованы для передачи уровня 18 расширения. Иллюстрация на Фиг.2 является просто примерной, поскольку уровни базовый и расширения могут быть определены многими различными способами.[0002] The
[0060] Фиг.3 - блок-схема, иллюстрирующая пример кодера 50 видео, который включает в себя модуль 46 VLC для кодирования данных совместимым образом с настоящим изобретением. Видеокодер 50 на Фиг.3 может соответствовать кодеру 34 уровня расширения устройства 12 источника на Фиг.1. То есть компоненты кодирования базового уровня не иллюстрируются на Фиг.3 для простоты. Поэтому видеокодер 50 может быть рассмотрен как кодер уровня расширения. Альтернативно, иллюстрированные компоненты видеокодера 50 могут быть также реализованы в комбинации с модулями или блоками кодирования базового уровня, например, в конструкции пирамидального кодера, который поддерживает масштабируемое видеокодирование базового уровня и уровня расширения.[0060] FIG. 3 is a block diagram illustrating an example of a
[0061] Видеокодер 50 может выполнять интра- и интеркодирование блоков в видеокадрах. Интракодирование полагается на пространственное предсказание, чтобы уменьшить или удалить пространственную избыточность в видео в пределах заданного видеокадра. Интеркодирование полагается на временное предсказание, чтобы уменьшить или удалить временную избыточность в видео в пределах смежных кадров видеопоследовательности. Для интеркодирования видеокодер 50 выполняет оценку движения, чтобы отследить движение соответствующих видеоблоков между двумя или более смежными кадрами.[0061]
[0062] Как показано на Фиг.3, видеокодер 50 принимает текущий видеоблок 31 (например, блок видео уровня расширения) в пределах видеокадра, который должен быть закодирован. В примере на Фиг.3 видеокодер 50 включает в себя модуль 33 оценки движения, память 35 опорного кадра, модуль 37 компенсации движения, модуль 39 преобразования блоков, модуль 41 квантования, модуль 42 обратного квантования, модуль 44 обратного квантования и модуль 46 VLC. Фильтр деблокирования (не показан) может быть также включен, чтобы фильтровать границы блоков, чтобы удалить артефакты блочности. Видеокодер 50 также включает в себя сумматор 48 и сумматор 51. Фиг.3 иллюстрирует временные компоненты предсказания видеокодера 50 для интеркодирования видеоблоков. Хотя не показано на Фиг.3 для простоты иллюстрации, видеокодер 50 также может включать в себя компоненты пространственного предсказания для интракодирования некоторых видеоблоков. Компоненты пространственного предсказания, однако, обычно используются только для кодирования базового уровня.[0062] As shown in FIG. 3, the
[0063] Модуль 33 оценки движения сравнивает видеоблок 31 с блоками в одном или более смежных (соседних) видеокадрах, чтобы сгенерировать один или более векторов движения. Смежный кадр или кадры могут быть извлечены из памяти 35 опорного кадра, которая может быть любым типом памяти или запоминающим устройством, чтобы хранить видеоблоки, восстановленные из ранее кодированных блоков. Оценка движения может быть выполнена для блоков переменных размеров, например 16×16, 16×8, 8×16, 8×8 или блоков меньшего размера. Модуль 33 оценки движения идентифицирует блок в смежном кадре, который наиболее близко соответствует текущему видеоблоку 31, например, на основании модели искажения скорости передачи, и определяет смещение между блоками. На этой основе модуль 33 оценки движения формирует вектор движения (MV) (или множество MV в случае двунаправленного предсказания), который указывает величину и траекторию смещения между текущим видеоблоком 31 и прогнозирующим блоком, используемым для кодирования текущего видеоблока 31.[0063]
[0064] Векторы движения могут иметь точность в половину или четверть пикселя или даже более высокую точность, позволяя видеокодеру 50 отследить движение с более высокой точностью, чем местоположения с целочисленными пикселями, и получить блок с лучшим прогнозом. Когда используются векторы движения с дробными значениями пикселя, операции интерполяции выполняются в модуле 37 компенсации движения. Модуль 33 оценки движения может идентифицировать лучший вектор движения для видеоблока, используя модель искажения скорости передачи. Используя результирующий вектор движения, модуль 37 компенсации движения формирует блок видео предсказания посредством компенсации движения.[0064] Motion vectors can have an accuracy of half or a quarter pixel or even higher accuracy, allowing
[0065] Видеокодер 50 формирует остаточный видеоблок посредством вычитания блока видео предсказания, сформированного модулем 37 компенсации движения, из первоначального, текущего видеоблока 31 в сумматоре 48. Модуль 39 преобразования блоков применяет преобразование, такое как дискретное косинусное преобразование (DCT), к остаточному блоку, формируя коэффициенты остаточных блоков преобразования. Модуль 41 квантования квантует коэффициенты остаточных блоков преобразования, чтобы дополнительно уменьшить скорость передачи в битах. Сумматор 49A принимает информацию о коэффициентах базового уровня, например, от кодера базового уровня (не показан) и располагается между модулем 39 преобразования блоков и модулем 41 квантования, чтобы предоставить эту информацию о коэффициентах базового уровня для кодирования уровня расширения. В частности, сумматор 49A вычитает информацию о коэффициентах базового уровня из выходного сигнала модуля 39 преобразования блоков. Аналогично сумматор 49B, который расположен между модулем 44 обратного преобразования и модулем 42 обратного квантования, также принимает информацию о коэффициентах базового уровня от кодера базового уровня (не показан). Сумматор 49B суммирует информацию о коэффициентах базового уровня с выходным сигналом модуля 42 обратного квантования.[0065]
[0066] Модуль 46 VLC кодирует квантованные коэффициенты преобразования согласно методологии кодирования с переменной длиной, чтобы еще больше уменьшить скорость передачи в битах переданной информации. В частности, модуль 46 VLC применяет способы этого раскрытия, чтобы закодировать коэффициенты детализации уровня расширения. Модуль 46 VLC может также сгенерировать дополнительную информацию, чтобы идентифицировать, какие таблицы декодер должен использовать для различных типов видеоблоков. Эта дополнительная информация может быть включена в кодированный битовый поток так, чтобы декодер мог определить надлежащие таблицы для различных типов видеоблоков и затем выбрать такие таблицы на основании типа декодируемого видеоблока.[0066]
[0067] Выбор таблицы модулем 46 VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы модулем 46 VLC. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированный блоки, может быть закодирована в битовый поток. Устройство декодера может использовать эту переданную информацию, чтобы облегчить выборы надлежащих таблиц. Альтернативно, в некоторых случаях устройство кодирования и устройство декодирования могут иметь соглашение - какие таблицы использовать для различных типов видеоблока.[0067] Table selection by
[0068] После кодирования с переменной длиной закодированное видео может быть передано на другое устройство. Кроме того, модуль 42 обратного квантования и модуль 44 обратного преобразования применяют обратное квантование и обратное преобразование соответственно, чтобы восстановить остаточный блок. Сумматор 51 суммирует этот восстановленный остаточный блок с блоком предсказания с компенсированным движением, сформированным модулем 37 компенсации движения, чтобы сформировать восстановленный видеоблок для сохранения в памяти 35 опорных кадров. Восстановленный видеоблок используется модулем 33 оценки движения и модулем 37 компенсации движения, чтобы закодировать блок в последующем видеокадре.[0068] After variable length encoding, the encoded video can be transferred to another device. In addition, the
[0069] Фиг.4 - блок-схема, иллюстрирующая пример декодера 60 видео, который может соответствовать декодеру 28 видео на Фиг.1, который выполняет декодирование базового уровня и уровня расширения. Видеодекодер 60 включает в себя модуль 52A VLC для информации уровня расширения, который выполняет соответствующую функцию модуля 46 VLC на Фиг.3. То есть, как и модуль 46 VLC, модуль 52A VLC кодирует коэффициенты детализации уровня расширения. Как отмечено, в кодере выбор таблицы VLC для кодирования различных видеоблоков может быть выполнен на основании информации, собранной для ранее или в настоящее время кодируемых кадров, например, используя статистический анализ ранее закодированных или в настоящее время кодируемых кадров, чтобы облегчить выбор таблицы в кодере. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере 40. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с кодера на декодер 60. Декодер 60 может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблиц.[0069] FIG. 4 is a block diagram illustrating an example of a
[0070] Видеодекодер 60 может также включать в себя другой модуль 52B VLC для информации базового уровня. Модуль 55 интрапредсказания может необязательно выполнять любое пространственное декодирование блоков видео базового уровня, и выходной сигнал модуля 55 интрапредсказания может быть направлен сумматору 53. Тракт уровня расширения может включать в себя модуль 58A обратного квантования, и тракт базового уровня может включать в себя модуль 56B обратного квантования. Информация в трактах базового уровня и уровня расширения может быть объединена сумматором 57.[0070]
[0071] Видеодекодер 60 может выполнять интра- и интердекодирование блоков в видеокадрах. В примере на Фиг.4 видеодекодер 60 включает в себя модули 52A и 52B VLC (упомянуты выше), модуль 54 компенсации движения, модули 56A и 56B обратного квантования, модуль 58 обратного преобразования и память 62 опорных кадров. Видеодекодер 60 также включает в себя сумматор 64. Необязательно видеодекодер 60 также может включать в себя фильтр деблокирования (не показан), который фильтрует выходной сигнал сумматора 64. Снова сумматор 57 объединяет информацию в трактах базового уровня и уровня расширения и модуле 55 интрапредсказания и сумматор 53 облегчает любое пространственное декодирование блоков видео базового уровня.[0071]
[0072] В соответствии с настоящим изобретением модуль 52A VLC принимает информацию уровня расширения закодированного битового потока видео и применяет способы VLC, описанные в этом раскрытии. В частности, для коэффициентов детализации видео битовый поток может быть кодирован, чтобы идентифицировать соответствующие таблицы VLC для двух или более различных типов видеоблоков. Модуль 52A VLC определяет тип видеоблока для каждого кодируемого видеоблока и выбирает соответствующую таблицу VLC декодирования для соответствующего видеоблока на основании информации, переданной в битовом потоке, которая идентифицирует такую таблицу VLC декодирования для этого типа видеоблока. Процесс декодирования может сформировать квантованные остаточные коэффициенты, макроблоки и режим кодирования субблоков и информацию движения, которая может включать в себя векторы движения и разделения на блоки.[0072] In accordance with the present invention, the
[0073] После декодирования, выполненного модулем 52A VLC, модуль 54 компенсации движения принимает векторы движения и один или более восстановленных опорных кадров из памяти 62 опорных кадров. Модуль 56A обратного квантования выполняет обратное квантование, то есть деквантует квантованные коэффициенты блоков. После комбинирования информации уровней расширения и базового посредством сумматора 57 модуль 58 обратного преобразования применяет обратное преобразование, например обратное DCT, к этим коэффициентам, чтобы сформировать остаточные блоки. Модуль 54 компенсации движения формирует блоки с компенсированным движением, которые суммируются сумматором 64 с остаточными блоками, чтобы сформировать декодированные блоки. Если желательно, фильтр деблокирования также может быть применен, чтобы фильтровать декодированные блоки, чтобы удалить артефакты блочности. Фильтрованные блоки затем помещаются в память 62 опорных кадров, которая выдает опорные блоки из компенсации движения и также формирует декодированное видео для возбуждения устройства отображения (такого, как устройство 30 на Фиг.1).[0073] After decoding performed by the
[0074] Фиг.5 - блок-схема, иллюстрирующая примерный модуль 46 VLC, который может соответствовать тому, что показан на Фиг.3. Модуль 46 VLC включает в себя модуль 72 кодирования, модуль 74 выбора таблицы и VLC таблицы 78. VLC таблицы 78 обычно относятся к таблицам, которые могут быть сохранены в любом местоположении, например локально или вне кристалла в местоположении отдельной памяти. VLC таблицы 78 могут быть обновлены периодически, как желательно.[0074] FIG. 5 is a block diagram illustrating an
[0075] Модуль 72 кодирования кодирует коэффициенты детализации и существенные коэффициенты в отдельных проходах кодирования. Выбор таблицы модулем 46 VLC для кодирования коэффициентов, ассоциированных с различными видеоблоками, может быть выполнен на основании информации, собранной для ранее кодированного или в настоящее время кодируемых кадров. Например, статистический анализ ранее закодированных кадров может быть выполнен, чтобы облегчить выбор таблицы модулем 46 VLC. Для коэффициентов детализации (и, возможно, других коэффициентов) модуль 46 VLC генерирует информацию (которая затем включается в кодированный битовый поток), которая идентифицирует различные VLC таблицы, чтобы использовать в декодере для различных типов видеоблоков. Устройство декодера может использовать эту информацию, чтобы облегчить надлежащие выборы таблицы. Информация, которая идентифицирует различные VLC таблицы, чтобы использовать в декодере для различных типов видеоблоков, может принимать различные формы, но в одном случае содержит два бита информации. Первый бит идентифицирует таблицу из двух возможных таблиц для интракодированных блоков, и второй бит идентифицирует таблицу из двух возможных таблиц для интеркодированных блоков. Конечно, может быть необходимо больше информации, если есть больше чем две таблицы для выбора из них для каждого типа блока.[0075] The
[0076] Коэффициенты детализации могут иметь значения, ограниченные -1, 0 и 1, которые могут быть закодированы двумя битами информации. Первый бит (coeff_ref_flag) может указывать, равен ли коэффициент 0 (coeff_ref_flag =0) или нет (coeff_ref_flag=1), и второй бит может указывать, является ли знак (обозначенный как sn) коэффициента детализации таким же (coeff_ref_dir_fiag=0) или отличным (coeff_ref_dir_flag=1) от знака (обозначенного как sn-1) соответствующего коэффициента предыдущего уровня. Предыдущий уровень обозначается как sn-1. Если знак текущего коэффициента такой же, как знак из предыдущего уровня, то coeff_ref_dir_fiag=0, и если знак текущего коэффициента является отличным от такового предыдущего уровня, то coeff_ref_dir_flag=1. Два бита детализации могут быть объединены в алфавит из трех символов детализации следующим образом в Таблице 1: [0076] The detail coefficients can have values limited to -1, 0, and 1, which can be encoded with two bits of information. The first bit (coeff_ref_flag) may indicate whether the coefficient is 0 (coeff_ref_flag = 0) or not (coeff_ref_flag = 1), and the second bit may indicate whether the sign (denoted by s n ) of the detail coefficient is the same (coeff_ref_dir_fiag = 0) or different (coeff_ref_dir_flag = 1) from the sign (denoted as s n-1 ) of the corresponding coefficient of the previous level. The previous level is denoted as s n-1 . If the sign of the current coefficient is the same as the sign from the previous level, then coeff_ref_dir_fiag = 0, and if the sign of the current coefficient is different from that of the previous level, then coeff_ref_dir_flag = 1. Two drill bits can be combined into an alphabet of three drill symbols as follows in Table 1:
Альтернативно, другая схема также может быть использована для кодирования коэффициентов детализации, не отступая от методик этого раскрытия.Alternatively, another scheme may also be used to code the detail coefficients without departing from the techniques of this disclosure.
[0077] VLC таблицы 78 могут содержать кодовые слова переменной длины, которые преобразуются в различные наборы коэффициентов, которые могут быть определены символами, флажками или другими типами битов. VLC таблицы 78 могут быть обновлены, как желательно. Любое число таблиц может быть включено в таблицы VLC 88. В некоторых случаях две таблицы используются, хотя может быть включено больше. В любом случае модуль 72 кодирования может обращаться к различным таблицам VLC для различных типов видеоблоков и может передавать информацию относительно этих таблиц для различных типов видеоблоков как часть закодированного битового потока. Таким образом, устройство декодера не должно выполнять в вычислительном отношении интенсивный статистический анализ, чтобы определить, какие таблицы использовать, и вместо этого может просто идентифицировать таблицы из информации в кодированном битовом потоке. Таблицы, используемые при кодировании различных типов видеоблоков, могут быть определены однажды за кадр, однажды за срез, однажды за уровень FGS кадра или один раз за другой тип закодированной единицы.[0077] VLC tables 78 may contain variable-length codewords that are converted to different sets of coefficients that can be defined by characters, flags, or other types of bits. VLC tables 78 may be updated as desired. Any number of tables can be included in VLC 88 tables. In some cases, two tables are used, although more can be included. In any case,
[0078] Фиг.6 - блок-схема, иллюстрирующая примерный модуль 52A VLC, который может соответствовать модулю 52A VLC, показанному на Фиг.4. Модуль 52A VLC выполняет обратные декодирующие функции относительно кодирования, которое выполняется модулем 46 VLC. Таким образом, тогда как модуль 46 VLC принимает квантованные остаточные коэффициенты и генерирует битовый поток, модуль 52A VLC принимает битовый поток и генерирует квантованные остаточные коэффициенты. Однако в отличие от модуля 46 VLC модуль VLC декодирования не должен выполнять в вычислительном отношении интенсивный статистический анализ, чтобы определить, какие таблицы использовать, и вместо этого может просто идентифицировать таблицы из информации в кодированном битовом потоке и выбрать таблицу для заданного видеоблока на основании типа блока этого видеоблока.[0078] FIG. 6 is a block diagram illustrating an
[0079] Модуль 52A VLC включает в себя модуль 82 декодирования, модуль 86 выбора таблицы и одну или более VLC таблиц 88. Как в модуле 46, VLC таблицы 88 модуля 52 обычно относятся к таблицам, которые могут быть сохранены в любом местоположении, например локально или вне кристалла в местоположении отдельной памяти. VLC таблицы 88 могут быть обновлены периодически, как желательно. Любое число таблиц может быть включено в VLC таблицы 88. В некоторых случаях используются две таблицы, хотя может быть включено и больше.[0079]
[0080] Модуль 82 декодирования VLC может выполнить отдельные проходы декодирования для существенных коэффициентов и коэффициентов детализации. Способы этого раскрытия могут быть применимыми к коэффициентам кодирования или детализации только или могут использоваться и для коэффициентов детализации, и для существенных коэффициентов.[0080]
[0081] Кодированный битовый поток, принятый модулем 82 декодирования, включает в себя информацию, представляющую закодированные коэффициенты, например кодовые слова, и информацию, которая идентифицирует таблицы, которые должны использоваться при декодировании различных типов видеоблоков. Модуль 86 выбора таблицы определяет, какие таблицы должны использоваться для различных типов видеоблоков для каждого кодированного модуля, например для каждого кадра. Модуль 82 декодирования затем декодирует принятую информацию на основании соответствующих таблиц 88 VLC, как определено модулем 86 выбора таблицы, для генерирования квантованных остаточных коэффициентов, которые были закодированы в битовом потоке.[0081] The encoded bit stream received by the
[0082] Фиг.7 - схема последовательности операций, иллюстрирующая методику кодирования для кодирования с переменной длиной коэффициентов (например, обычно коэффициентов детализации) уровня расширения, совместимого с настоящим изобретением. Как показано на Фиг.7, модуль 76 выбора таблицы выбирает подходящие таблицы, которые должны использоваться для кодирования (91). Выбранные таблицы могут повысить эффективность кодирования и могут быть выбраны на основании статистического анализа ранее кодированных или в настоящее время кодируемых видеокадров. В частности, модуль 76 выбора таблицы может выбрать различные таблицы VLC, которые должны использоваться при кодировании видеоблоков, на основании уровней квантования, ассоциированных с такими блоками, и соответствующих статистических данных, которые указывают, какие таблицы использовались как аналогичные уровни квантования.[0082] FIG. 7 is a flowchart illustrating a coding technique for variable-length coding of coefficients (eg, typically coefficients of detail) of an extension level compatible with the present invention. As shown in FIG. 7, the
[0083] Модуль 72 кодирования кодирует коэффициенты посредством выполнения поисков в VLC таблицах 78 (92), которые были выбраны модулем 76 выбора таблицы. Наборам коэффициентов (таким, как наборы с длиной серии из нулей или наборы кодированных шаблонов блоков) могут быть назначены коды переменной длины в таблицах VLC. Таким образом, более вероятные наборы коэффициентов могут быть закодированы кодовыми словами с более короткими длинами и менее вероятные наборы коэффициентов могут быть закодированы кодовыми словами с более короткими длинами, чтобы повысить эффективность кодирования.[0083] The
[0084] Различные таблицы VLC могут быть выбраны для различных типов видеоблоков, например интракодированные блоки и интеркодированные блоки, так как эти различные типы видеоблоков обычно кодируются при различных уровнях квантования. Модуль 46 VLC генерирует информацию, идентифицирующую таблицы, которые должны использоваться для декодирования различных типов видеоблоков (93). Выходной битовый поток модуля 46 VLC может включать в себя и информацию, представляющую кодированные коэффициенты, и информацию, идентифицирующую таблицы, которые должны использоваться при декодировании различных типов видеоблоков.[0084] Different VLC tables can be selected for different types of video blocks, for example, intra-coded blocks and intercoded blocks, since these different types of video blocks are usually encoded at different quantization levels.
[0085] Выходной битовый поток может быть отправлен передатчику (такому, как модулятор/передатчик 24 на Фиг.1) для передачи на устройство 16 приема по каналу 15 связи. Эта передача битового потока включает в себя передачу информации, представляющей закодированные коэффициенты (94), которая может содержать кодовые слова, выбранные из таблиц 78 VLC. Кроме того, передача битового потока включает в себя передачу информации, идентифицирующей таблицы, которые должны использоваться при декодировании различных типов видеоблоков (95). Процесс согласно Фиг.7 может быть повторен для каждой кодированной единицы (96), например для каждого среза или каждого кадра, который должен быть закодирован.[0085] An output bitstream may be sent to a transmitter (such as a modulator /
[0086] Фиг.8 - схема последовательности операций, иллюстрирующая методику декодирования для коэффициентов кодирования с переменной длиной (обычно коэффициентов детализации) уровня расширения, совместимую с настоящим изобретением. Как показано на Фиг.8, модуль 82 декодирования VLC принимает информацию, представляющую закодированные коэффициенты (101), и принимает информацию, идентифицирующую различные таблицы, которые должны использоваться для декодирования различных типов видеоблоков (102). Приемник, такой приемник/демодулятор 26 (Фиг.1), может облегчить прием этой информации из канала 15 связи.[0086] FIG. 8 is a flowchart illustrating a decoding technique for variable-length coding coefficients (typically detail coefficients) of an enhancement layer compatible with the present invention. As shown in FIG. 8, the
[0087] Модуль 86 выбора таблиц выбирает таблицы для различных типов видеоблока на основании принятой информации, идентифицирующей различные таблицы, которые должны использоваться (103). Различные типы видеоблоков могут содержать интракодированные блоки и интеркодированные блоки. Соответственно, интракодированным блокам и интеркодированным блокам можно назначить различные таблицы VLC для каждой кодированной единицы, например каждого кадра или каждого среза. Модуль 82 декодирования декодирует информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц (104). Например, модуль 82 декодирования может обратиться к выбранным таблицам 88 VLC и выполнить табличные поиски для декодирования информации, чтобы сгенерировать коэффициенты. Процесс согласно Фиг.8 повторяется для каждой кодированной единицы (105). Альтернативно, если соглашение между кодером и декодером было предварительно установлено относительно таблиц для использования для различных типов блока, этап 102 может быть удален и выбор таблицы на этапе 103 может быть основан только на типе блока, который должен быть декодирован.[0087] The
[0088] Как описано здесь, в кодере выбор таблицы для кодирования коэффициентов детализации, ассоциированных с различными типами видеоблоков, может быть выполнен на основании информации, собранной для ранее кодированного или в настоящее время кодируемых кадров. Статистический анализ ранее закодированных кадров может быть выполнен, например, чтобы облегчить выбор таблицы в кодере. Например, коэффициенты детализации могут быть кодированы, используя доступные таблицы, и таблица, которая обеспечивает наименьшее количество битов для кодирования информации, может быть выбрана. Такого в вычислительном отношении интенсивного анализа, однако, можно избежать в декодере. Вместо этого информация, идентифицирующая таблицы для первого и второго типов видеоблоков, например интракодированный блок и интеркодированные блоки, может быть передана с кодера на декодер. Декодер может использовать эту переданную информацию, чтобы облегчить надлежащие выборы таблицы на основании типа блока.[0088] As described here, in the encoder, the selection of a table for encoding the detail coefficients associated with various types of video blocks can be made based on information collected for previously encoded or currently encoded frames. Statistical analysis of previously encoded frames can be performed, for example, to facilitate the selection of tables in the encoder. For example, detail coefficients can be encoded using the available tables, and a table that provides the least number of bits for encoding information can be selected. This computationally intensive analysis, however, can be avoided in the decoder. Instead, information identifying tables for the first and second types of video blocks, for example, an intra-coded block and inter-coded blocks, can be transmitted from the encoder to the decoder. The decoder may use this transmitted information to facilitate proper table selections based on the type of block.
[0089] Выбранные таблицы могут зависеть от уровня квантования, используемого в процессе кодирования. Уровень используемого квантования, в свою очередь, может зависеть от типа видеоблока. Так как уровень квантования, используемый в кодере, является обычно неизвестным декодеру, информация относительно типа видеоблока обеспечивает полезный инструмент выбора для применения в декодере. Поэтому таблицы идентифицируются для декодера для различных типов видеоблока, и декодер может определить тип, ассоциированный с соответствующим видеоблоком, и выбрать соответствующую таблицу VLC для декодирования этого соответствующего видеоблока. Таблицы для различных типов видеоблоков могут измениться на основании кадр-за-кадром (или на основе срез-за-срезом).[0089] The selected tables may depend on the quantization level used in the encoding process. The level of quantization used, in turn, may depend on the type of video block. Since the quantization level used in the encoder is generally unknown to the decoder, information regarding the type of video block provides a useful selection tool for use in the decoder. Therefore, tables are identified for the decoder for various types of video block, and the decoder can determine the type associated with the corresponding video block and select the corresponding VLC table to decode this corresponding video block. Tables for different types of video blocks can be changed frame-by-frame (or slice-by-slice).
[0090] Способы, описанные здесь, могут быть реализованы в аппаратном обеспечении, программном обеспечении, программно-аппаратном обеспечении или любой их комбинации. Любые признаки, описанные как модули или компоненты, могут быть реализованы вместе в интегрированном логическом устройстве или отдельно как дискретные, но взаимодействующие логические устройства. Если реализованы в программном обеспечении, способы могут быть реализованы, по меньшей мере частично, считываемыми компьютером носителем, содержащим команды, которые, когда исполняются, выполняют один или более способов, описанных выше. Считываемый компьютером носитель для хранения данных может быть частью компьютерного программного продукта, который может включать в себя упаковочные материалы. Считываемый компьютером носитель может содержать оперативную память (ОЗУ), такую как синхронное динамическое ОЗУ (SDRAM), ПЗУ (ROM), энергонезависимое ОЗУ (NVRAM), электрически стираемое ППЗУ (EEPROM), флэш-память, магнитные или оптические носители хранения данных и т.п. Способы дополнительно или альтернативно могут быть реализованы, по меньшей мере частично, считываемым компьютером коммуникационным носителем, который несет или сообщает код в форме команд или структур данных, и к этому можно обратиться, считать и/или выполнять компьютером.[0090] The methods described herein may be implemented in hardware, software, firmware or any combination thereof. Any features described as modules or components can be implemented together in an integrated logic device or separately as discrete but interacting logic devices. If implemented in software, the methods may be implemented, at least in part, by a computer-readable medium containing instructions that, when executed, execute one or more of the methods described above. Computer-readable storage media may be part of a computer program product, which may include packaging materials. Computer-readable media may include random access memory (RAM), such as synchronous dynamic RAM (SDRAM), ROM (ROM), non-volatile RAM (NVRAM), electrically erasable ROM (EEPROM), flash memory, magnetic or optical storage media, etc. .P. The methods can additionally or alternatively be implemented, at least in part, by a computer-readable communication medium that carries or reports code in the form of instructions or data structures, and this can be accessed, read and / or executed by a computer.
[0091] Код может быть выполнен одним или более процессорами, такими как один или более цифровые процессоры сигналов (DSP), микропроцессоры общего применения, специализированные интегральные схемы (ASIC), программируемые пользователем логические матрицы (FPGA) или другая эквивалентная интегральная или дискретная логическая схема. Соответственно, термин "процессор", как используется здесь, может относиться к любой предшествующей структуре или любой другой структуре, подходящей для реализации методик, описанных здесь. Кроме того, в некоторых аспектах функциональные возможности, описанные здесь, могут быть предоставлены в выделенных программных модулях или модулях аппаратного обеспечения, сконфигурированных для кодирования и декодирования, или встроены в комбинированный видеокодер-декодер (кодек).[0091] The code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, specialized integrated circuits (ASICs), user-programmable logic arrays (FPGAs), or other equivalent integrated or discrete logic circuits . Accordingly, the term “processor,” as used herein, may refer to any previous structure or any other structure suitable for implementing the techniques described herein. In addition, in some aspects, the functionality described herein may be provided in dedicated software or hardware modules configured for encoding and decoding, or integrated in a combined video encoder / decoder (codec).
[0092] Это раскрытие может также относиться к схеме, такой как интегральная схема, набор микросхем ASIC, FPGA, логические схемы или различные их комбинации, сконфигурированные для выполнения одной или более методик, описанных здесь. Соответственно, это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, где схема конфигурируется для кодирования коэффициентов, ассоциированных с видеоблоками уровня расширения, на основании таблиц кодирования с переменной длиной, генерирования информации, идентифицирующей первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков, передавать информацию, представляющую закодированные коэффициенты, к устройству декодирования и передавать информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать первый тип видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна использоваться устройством декодирования, чтобы декодировать второй тип видеоблоков.[0092] This disclosure may also refer to a circuit, such as an integrated circuit, ASIC, FPGA, logic circuits, or various combinations thereof, configured to perform one or more of the techniques described herein. Accordingly, this disclosure also contemplates a circuit configured to encode an extension level of an SVC scheme, where the circuit is configured to encode coefficients associated with video blocks of an extension level based on variable length encoding tables, generating information identifying a first variable length encoding table which should used by the decoding device to decode the first type of video blocks, and the second variable length coding table, which should use the decoding device to decode the second type of video blocks, transmit information representing the encoded coefficients to the decoding device and transmit information identifying the first variable length encoding table to be used by the decoding device to decode the first type of video blocks, and the second variable encoding table the length to be used by the decoding device to decode the second type of video blocks.
[0093] Это раскрытие также рассматривает схему, конфигурированную для кодирования уровня расширения схемы масштабируемого кодирования видео (SVC), в котором схема конфигурируется, чтобы принять информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, принять информацию, идентифицирующую первую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования первого типа видеоблоков, и вторую таблицу кодирования с переменной длиной, которая должна быть использована для декодирования второго типа видеоблоков, выбирать таблицы для декодирования информации, представляющие закодированные коэффициенты, на основании информации, идентифицирующей первую и вторую таблицу кодирования с переменной длиной, которая должна использоваться, и декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0093] This disclosure also considers a circuit configured to encode an extension level of a scalable video encoding (SVC) scheme, in which the circuit is configured to receive information representing encoded coefficients associated with the video blocks of the extension level, to receive information identifying the first variable encoding table the length that should be used to decode the first type of video blocks, and the second variable length coding table, which should be used to decode the second type of video blocks, select tables for decoding information representing the encoded coefficients based on information identifying the first and second variable length coding table to be used, and decode information representing encoded coefficients based on the selected tables.
[0094] Кроме того, это раскрытие рассматривает схему, конфигурированную для кодирования уровня расширения схемы SVC, при этом схема конфигурируется, чтобы принять информацию, представляющую кодированные коэффициенты, ассоциированные с видеоблоками уровня расширения, выбирать различные таблицы кодирования с переменной длиной, которые должны быть использованы для декодирования информации на основании типов блока, ассоциированных с видеоблоками, в соответствии с соглашением, установленным с кодером, декодировать информацию, представляющую закодированные коэффициенты, на основании выбранных таблиц.[0094] In addition, this disclosure considers a circuit configured to encode an extension level of an SVC scheme, wherein the scheme is configured to receive information representing encoded coefficients associated with extension level video blocks, select various variable length encoding tables to be used. for decoding information based on block types associated with video blocks, in accordance with an agreement established with an encoder, decode information representing encoded coefficients based on the selected tables.
[0095] Были описаны различные варианты осуществления изобретения. Эти и другие варианты осуществления находятся в объеме нижеследующей формулы изобретения.[0095] Various embodiments of the invention have been described. These and other embodiments are within the scope of the following claims.
Claims (25)
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US82927406P | 2006-10-12 | 2006-10-12 | |
US82927606P | 2006-10-12 | 2006-10-12 | |
US60/829,274 | 2006-10-12 | ||
US60/829,276 | 2006-10-12 | ||
US60/883,741 | 2007-01-05 | ||
US11/867,999 | 2007-10-05 | ||
US11/867,999 US8325819B2 (en) | 2006-10-12 | 2007-10-05 | Variable length coding table selection based on video block type for refinement coefficient coding |
Publications (2)
Publication Number | Publication Date |
---|---|
RU2009117672A RU2009117672A (en) | 2010-11-20 |
RU2409003C1 true RU2409003C1 (en) | 2011-01-10 |
Family
ID=44054759
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
RU2009117672/09A RU2409003C1 (en) | 2006-10-12 | 2007-10-09 | Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding |
Country Status (1)
Country | Link |
---|---|
RU (1) | RU2409003C1 (en) |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US5650782A (en) * | 1994-01-18 | 1997-07-22 | Daewoo Electronics Co Ltd. | Variable length coder using two VLC tables |
RU2119727C1 (en) * | 1993-03-01 | 1998-09-27 | Сони Корпорейшн | Methods and devices for processing of transform coefficients, methods and devices for reverse orthogonal transform of transform coefficients, methods and devices for compression and expanding of moving image signal, record medium for compressed signal which represents moving image |
US6069575A (en) * | 1997-06-09 | 2000-05-30 | Nec Corporation | Variable length code decoder |
US6144322A (en) * | 1998-08-10 | 2000-11-07 | Mitsubishi Denki Kabushiki Kaisha | Variable length code processor with encoding and/or decoding |
KR20030081772A (en) * | 2002-04-12 | 2003-10-22 | 한국과학기술원 | coding/decoding method and apparatus of rectangular region-based selective enhancement for MPEG-4 FGS video |
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 |
-
2007
- 2007-10-09 RU RU2009117672/09A patent/RU2409003C1/en not_active IP Right Cessation
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
RU2119727C1 (en) * | 1993-03-01 | 1998-09-27 | Сони Корпорейшн | Methods and devices for processing of transform coefficients, methods and devices for reverse orthogonal transform of transform coefficients, methods and devices for compression and expanding of moving image signal, record medium for compressed signal which represents moving image |
US5650782A (en) * | 1994-01-18 | 1997-07-22 | Daewoo Electronics Co Ltd. | Variable length coder using two VLC tables |
US6069575A (en) * | 1997-06-09 | 2000-05-30 | Nec Corporation | Variable length code decoder |
US6144322A (en) * | 1998-08-10 | 2000-11-07 | Mitsubishi Denki Kabushiki Kaisha | Variable length code processor with encoding and/or decoding |
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 |
KR20030081772A (en) * | 2002-04-12 | 2003-10-22 | 한국과학기술원 | coding/decoding method and apparatus of rectangular region-based selective enhancement for MPEG-4 FGS video |
Non-Patent Citations (2)
Title |
---|
RIDGE J. et al. CE8: VLCs for SVC. JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, JVT-Q040-L, 17th Meeting. Nice, 14-21 October 2005. MARPE D. et al. Improved CABAC for progressive refinement slices. JOINT VIDEO TEAM (JVT) OF ISO/IEC MPEG & ITU-T VCEG, JVT-T077, 20th Meeting. Klagenfurt, 15-21 July 2006. * |
YE Y. et al. Improvements to FGS layer Variable Length Coder. Joint Video Team (JVT) of ISO/IEC MPEG & ITU-T VCEG. JVT-S066, 19th Meeting. Geneva, 31 March - 7 April. YEN-KUANG CHEN et al. Implementation of Real-Time MPEG-4 FGS Encoder. Advances in Multimedia Information Processing - PCM 2002, Springer Berlin/Heidelberg, 2002, c.453-466. RIDGE J. and KARCZEWICZ M. Variable length codes for SVC, JVT-P056. 16th Meeting. Poznan, 24 July 2005 - 29 July 2005. * |
Also Published As
Publication number | Publication date |
---|---|
RU2009117672A (en) | 2010-11-20 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
RU2419244C2 (en) | Selection of code table of variable length based on statistics of type of units for coding of specification coefficients | |
US8325819B2 (en) | Variable length coding table selection based on video block type for refinement coefficient coding | |
RU2411688C1 (en) | Combined coding of lengths of series of refinement ratios and significant ratios at levels of expansion of scalable video coding | |
RU2409004C1 (en) | Methods for coding of variable length for structures of coded units | |
RU2452128C2 (en) | Adaptive coding of video block header information | |
US9319700B2 (en) | Refinement coefficient coding based on history of corresponding transform coefficient values | |
RU2409003C1 (en) | Selection of coding table with alternate length based on type of video unit for improvement of coefficients coding | |
RU2420910C2 (en) | Refinement coefficient coding based on history corresponding transform coefficient values |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | The patent is invalid due to non-payment of fees |
Effective date: 20181010 |