TWI408965B - Method, device, and computer-readable medium of improved enhancement layer coding for scalable video coding - Google Patents

Method, device, and computer-readable medium of improved enhancement layer coding for scalable video coding Download PDF

Info

Publication number
TWI408965B
TWI408965B TW97139596A TW97139596A TWI408965B TW I408965 B TWI408965 B TW I408965B TW 97139596 A TW97139596 A TW 97139596A TW 97139596 A TW97139596 A TW 97139596A TW I408965 B TWI408965 B TW I408965B
Authority
TW
Taiwan
Prior art keywords
video block
video
coefficient
coefficients
refinement
Prior art date
Application number
TW97139596A
Other languages
Chinese (zh)
Other versions
TW200934250A (en
Inventor
Marta Karczewicz
Rahul Panchal
Yan Ye
Original Assignee
Qualcomm Inc
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US12/250,784 external-priority patent/US8848787B2/en
Application filed by Qualcomm Inc filed Critical Qualcomm Inc
Publication of TW200934250A publication Critical patent/TW200934250A/en
Application granted granted Critical
Publication of TWI408965B publication Critical patent/TWI408965B/en

Links

Classifications

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

Landscapes

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

Abstract

This disclosure describes scalable video coding techniques. In particular, the techniques may be used to encode refinements of a video block for enhancement layer bit streams in a single coding pass, thereby reducing coding complexity, coding delay and memory requirements. In some instances, the techniques encode each nonzero coefficient of a coefficient vector of the enhancement layer without knowledge of any subsequent coefficients. Coding the enhancement layer in a single pass may eliminate the need to perform a first pass to analyze the coefficient vector and a second pass for coding the coefficient vector based on the analysis.

Description

可調節視訊編碼之改良加強層編碼之方法、設備及電腦可讀媒體Method, device and computer readable medium for improving enhanced coding of video coding

本發明係關於數位視訊寫碼,且更特定而言係關於對視訊資料的可調節視訊寫碼。The present invention relates to digital video writing, and more particularly to adjustable video writing of video material.

本申請案主張2007年10月15日申請之美國臨時申請案第60/979,919號及2007年10月16日申請的美國臨時申請案第60/940,214號之權利。此等申請案中之每一者的內容以引用方式併入本文中。The present application claims the benefit of U.S. Provisional Application Serial No. 60/979,919, filed on October 15, 2007, and U.S. Provisional Application Serial No. 60/940,214, filed on Oct. 16, 2007. The content of each of these applications is incorporated herein by reference.

數位視訊能力可併入於廣泛範圍之設備中,包括數位電視、數位直播系統、無線通信設備、無線廣播系統、個人數位助理(PDA)、膝上型電腦或桌上型電腦、數位相機、數位記錄設備、視訊遊戲設備、視訊遊戲機、蜂巢式或衛星無線電話,及其類似者。數位視訊設備實施視訊壓縮技術,諸如運動圖像專家組(MPEG)-2、MPEG-4或國際電信聯盟標準化部門(ITU-T)H.264/MPEG-4部分10進階視訊寫碼(AVC)(下文中為"H.264/MPEG-4部分10 AVC標準),以更有效地傳輸並接收數位視訊。視訊壓縮技術執行空間及時間預測以減少或移除視訊序列中的固有冗餘。Digital video capabilities can be incorporated into a wide range of devices, including digital TVs, digital live systems, wireless communication devices, wireless broadcast systems, personal digital assistants (PDAs), laptops or desktops, digital cameras, digital Recording devices, video game devices, video game consoles, cellular or satellite radiotelephones, and the like. Digital video equipment implements video compression technology, such as Moving Picture Experts Group (MPEG)-2, MPEG-4 or International Telecommunication Union Standardization Sector (ITU-T) H.264/MPEG-4 part 10 advanced video writing code (AVC) (hereinafter "H.264/MPEG-4 Part 10 AVC Standard") to transmit and receive digital video more efficiently. Video compression techniques perform spatial and temporal prediction to reduce or remove the inherent redundancy in the video sequence.

在視訊寫碼中,視訊壓縮通常包括空間預測及/或運動估計及運動補償以產生預測視訊區塊。框內寫碼依靠空間預測來減少或移除給定寫碼單元(例如,圖框或片)內之視訊區塊之間的空間冗餘。換言之,視訊編碼器執行空間預測以基於同一寫碼單元內之其他資料來壓縮資料。相反,框間寫碼依靠時間預測來減少或移除視訊序列之連續視訊圖框之視訊區塊之間的時間冗餘。因此,對於框間寫碼而言,視訊編碼器執行運動估計及運動補償以追蹤兩個或兩個以上相鄰寫碼單元的匹配之視訊區塊的移動。In video writing, video compression typically includes spatial prediction and/or motion estimation and motion compensation to produce a predictive video block. In-frame writing relies on spatial prediction to reduce or remove spatial redundancy between video blocks within a given code unit (eg, a picture frame or slice). In other words, the video encoder performs spatial prediction to compress the data based on other data within the same code unit. In contrast, inter-frame coding relies on temporal prediction to reduce or remove temporal redundancy between video blocks of successive video frames of a video sequence. Thus, for inter-frame coding, the video encoder performs motion estimation and motion compensation to track the movement of matching video blocks of two or more adjacent code units.

在空間或時間預測之後,藉由自正被寫碼之原始視訊區塊減去預測視訊區塊而產生剩餘係數之區塊(稱為剩餘區塊或剩餘資訊)。剩餘區塊可為量化預測視訊區塊與原始區塊之間的差之係數值的二維矩陣。視訊編碼器可對剩餘區塊應用變換、量化及熵寫碼過程以進一步減少與剩餘區塊之通信相關聯的位元率。變換技術可包含離散餘弦變換(DCT)、小波變換、整數變換或其他類型變換。After spatial or temporal prediction, the block of residual coefficients (referred to as the remaining block or remaining information) is generated by subtracting the predicted video block from the original video block being coded. The remaining block may be a two-dimensional matrix that quantizes the coefficient values of the difference between the predicted video block and the original block. The video encoder can apply transform, quantization, and entropy write procedures to the remaining blocks to further reduce the bit rate associated with communication of the remaining blocks. Transform techniques may include discrete cosine transform (DCT), wavelet transform, integer transform, or other type of transform.

在DCT變換中,例如,變換過程將一組像素域係數轉換為變換係數,該等變換係數表示像素域係數在頻域或變換域中的能量。向變換係數應用量化以產生經量化之變換係數。量化通常限制與任何給定係數相關聯之位元的數目。視訊編碼器熵編碼經量化之變換係數以進一步壓縮經量化的變化係數。視訊編碼器可使用可變長度寫碼(VLC)、算術寫碼、固定長度寫碼或其組合來熵編碼該等係數。視訊解碼器可執行逆操作以重建視訊序列。In DCT transform, for example, the transform process converts a set of pixel domain coefficients into transform coefficients that represent the energy of the pixel domain coefficients in the frequency domain or the transform domain. Quantization is applied to the transform coefficients to produce quantized transform coefficients. Quantization typically limits the number of bits associated with any given coefficient. The video encoder entropy encodes the quantized transform coefficients to further compress the quantized coefficient of variation. The video encoder may entropy encode the coefficients using variable length write code (VLC), arithmetic write code, fixed length write code, or a combination thereof. The video decoder can perform an inverse operation to reconstruct the video sequence.

諸如MPEG-2之一些視訊寫碼標準以相對恆定之品質、位元率或空間解析度來編碼視訊。此技術可能足以向具有類似解碼器能力(例如,記憶體或處理資源)及/或連接品質之設備提供視訊應用。然而,多數現代視訊傳輸系統通常包括具有變化之解碼器能力及/或連接品質的設備。在此等系統中,傳輸以相對恆定之品質、位元率或空間解析度編碼之視訊導致視訊應用程式對於具有適當解碼器能力及/或連接品質之設備工作,且對於不具有適當解碼器能力及/或連接品質的設備不工作。在無線情形下,例如,靠近視訊傳輸源定位之設備與遠離源定位之設備相比較可能具有較高品質連接。同樣,遠離源定位之設備可能不能接收以恆定品質、位元率或空間解析度傳輸的經編碼之視訊。Some video writing standard standards such as MPEG-2 encode video with relatively constant quality, bit rate or spatial resolution. This technique may be sufficient to provide a video application to a device having similar decoder capabilities (eg, memory or processing resources) and/or connection quality. However, most modern video transmission systems typically include devices with varying decoder capabilities and/or connection quality. In such systems, transmitting video encoded with a relatively constant quality, bit rate or spatial resolution results in the video application operating for devices with appropriate decoder capabilities and/or connection quality, and without proper decoder capability. And/or connected quality equipment does not work. In a wireless situation, for example, a device located near a video transmission source may have a higher quality connection than a device located away from the source. Likewise, devices that are located away from the source may not be able to receive encoded video transmitted at constant quality, bit rate, or spatial resolution.

其他視訊寫碼標準利用可調節寫碼技術來克服此等問題。(例如)根據ITU-T H.264/MPEG-4部分10 AVC之擴展的可調節視訊寫碼(SVC)指代其中將視訊序列編碼為一基礎層及一或多個可調節加強層的視訊寫碼。對於SVC而言,基礎層通常載運具有基本空間、時間及/或品質等級的視訊資料。一或多個增強層載運額外視訊資料以支援更高空間、時間及/或品質等級。加強層可(例如)向基礎層之圖框添加空間解析度,或可添加額外圖框以增加總圖框率。在一些例子中,可以比加強層之傳輸更可靠的方式傳輸基礎層。同樣,遠離編碼視訊源定位或具有較低解碼器能力之設備可能能夠接收基礎層,且因此接收視訊序列,即使處於最低空間、時間及/或品質等級。Other video writing standards use adjustable code writing techniques to overcome these problems. (For example) an adjustable video code (SVC) according to an extension of ITU-T H.264/MPEG-4 Part 10 AVC, which refers to a video in which a video sequence is encoded as a base layer and one or more adjustable enhancement layers. Write code. For SVC, the base layer typically carries video material with a basic space, time, and/or quality level. One or more enhancement layers carry additional video material to support higher space, time and/or quality levels. The enhancement layer can, for example, add spatial resolution to the frame of the base layer, or additional frames can be added to increase the overall frame rate. In some examples, the base layer can be transmitted in a more reliable manner than the transmission of the enhancement layer. Likewise, devices that are away from the encoded video source location or have lower decoder capabilities may be able to receive the base layer and thus receive the video sequence even at the lowest space, time and/or quality level.

本發明描述允許在單一寫碼一次操作中熵編碼加強層位元流的可調節視訊寫碼技術。習知地,使用多個寫碼一次操作來編碼加強層位元流。對於加強層之每一視訊區塊而言,例如,第一寫碼一次操作可收集在選擇用於熵寫碼區塊之寫碼表(或碼簿)中使用的區塊之統計數據,且第二寫碼一次操作可使用所選擇之寫碼表來熵編碼區塊。然而,根據本發明中之技術,在不執行收集在視訊寫碼表選擇中使用的統計數據之第一寫碼一次操作情況下熵編碼加強層位元流之視訊區塊。The present invention describes an adjustable video write code technique that allows entropy coding of enhancement layer bitstreams in a single write once operation. Conventionally, a plurality of write code operations are used to encode the enhancement layer bit stream. For each video block of the enhancement layer, for example, a first write once operation may collect statistics for the block used in the write code table (or codebook) selected for the entropy code block, and The second write once operation may entropy encode the block using the selected write code table. However, in accordance with the teachings of the present invention, the video blocks of the enhancement layer bitstream are entropy encoded without performing a first write once operation that collects statistical data used in the video codebook selection.

實情為,使用一在單一寫碼一次操作中在逐係數基礎上編碼加強層之係數的寫碼技術來編碼加強層。在一例子中,對於加強層視訊區塊之非零係數中的每一者而言,視訊編碼器可編碼區塊結束(EOB)符號、運程長度及正負號。視訊編碼器可使用僅單一寫碼表來編碼加強層之視訊區塊,藉此消除執行一收集用於選擇寫碼表之統計數據的第一寫碼一次操作之需要。The reality is to encode the enhancement layer using a write code technique that encodes the coefficients of the enhancement layer on a coefficient-by-coefficient basis in a single write once operation. In one example, for each of the non-zero coefficients of the enhancement layer video block, the video encoder may encode an end of block (EOB) symbol, a run length, and a sign. The video encoder can encode the video blocks of the enhancement layer using only a single code table, thereby eliminating the need to perform a first write once operation for collecting statistics for selecting a code table.

另外,視訊編碼器可能並不編碼加強層中之非零係數的量值。以此方式,加強層之所有非零係數的量值可限制至為量值1。不編碼加強層之係數之量值可導致峰值訊雜比(PSNR)的某一損耗,但減少用以編碼加強層之位元的數目。本發明之技術可提供若干優點。舉例而言,該等技術可減少用於編碼加強層位元流之寫碼複雜性、寫碼延遲及記憶體要求,同時維持寫碼效率。In addition, the video encoder may not encode the magnitude of the non-zero coefficients in the enhancement layer. In this way, the magnitude of all non-zero coefficients of the enhancement layer can be limited to a magnitude of one. The magnitude of the coefficients that do not encode the enhancement layer can result in some loss in peak signal to noise ratio (PSNR), but reduces the number of bits used to encode the enhancement layer. The techniques of the present invention can provide several advantages. For example, such techniques can reduce write code complexity, write code latency, and memory requirements for encoding enhancement layer bitstreams while maintaining write code efficiency.

在一態樣中,一種使用可調節視訊寫碼來編碼視訊資料之方法包含以第一品質編碼視訊區塊作為基礎層位元流的部分。方法亦包括編碼視訊區塊之精化作為至少一加強層位元流的部分,該等視訊區塊之精化在與以第一品質編碼之視訊區塊組合時導致具有大於第一品質之第二品質的視訊區塊。方法亦包括,在單一編碼一次操作中編碼視訊區塊的精化。In one aspect, a method of encoding video data using an adjustable video write code includes encoding a video block with a first quality as part of a base layer bit stream. The method also includes refining the encoded video block as part of at least one enhanced layer bit stream, the refinement of the video blocks causing a greater than the first quality when combined with the video block encoded with the first quality Two quality video blocks. The method also includes encoding the refinement of the video block in a single coded one operation.

在另一態樣中,一種用於使用可調節視訊寫碼來編碼視訊資料的設備包含至少一編碼器,該至少一編碼器以第一品質編碼視訊區塊作為基礎層位元流的部分,且編碼視訊區塊之精化作為至少一加強層位元流的部分,該等視訊區塊之精化在與以第一品質編碼之視訊區塊組合時導致具有大於第一品質之第二品質的視訊區塊。在單一編碼一次操作中編碼視訊區塊的精化。In another aspect, an apparatus for encoding video data using an adjustable video write code includes at least one encoder that encodes a video block as a portion of a base layer bit stream with a first quality, And refining the encoded video block as part of at least one enhanced layer bit stream, the refinement of the video blocks causing a second quality greater than the first quality when combined with the video block encoded with the first quality Video block. The refinement of the video block is encoded in a single coded one operation.

在又一態樣中,一種包含指令之電腦可讀媒體,該等指令使得一或多個處理器以第一品質編碼視訊區塊作為基礎層位元流的部分;且編碼視訊區塊之精化作為至少一加強層位元流的部分,該等視訊區塊之精化在與以第一品質編碼之視訊區塊組合時導致具有大於第一品質之第二品質的視訊區塊。在單一編碼一次操作中編碼視訊區塊的精化。In another aspect, a computer readable medium comprising instructions for causing one or more processors to encode a video block as a portion of a base layer bit stream with a first quality; and encoding the video block As part of at least one enhanced layer bitstream, the refinement of the video blocks results in a video block having a second quality greater than the first quality when combined with the video block encoded with the first quality. The refinement of the video block is encoded in a single coded one operation.

在再一態樣中,一種用於使用可調節視訊寫碼來編碼視訊資料的設備包含:用於以第一品質編碼視訊區塊作為基礎層位元流之部分的第一構件;及用於編碼視訊區塊之精化作為至少一加強層位元流之部分的第二構件,該等視訊區塊之精化在與以第一品質編碼之視訊區塊組合時導致具有大於第一品質之第二品質的視訊區塊。在單一編碼一次操作中編碼視訊區塊的精化。In still another aspect, an apparatus for encoding video data using an adjustable video write code includes: a first component for encoding a video block as a portion of a base layer bit stream with a first quality; and Refining the encoded video block as a second component of at least one portion of the enhanced layer bitstream, the refinement of the video blocks resulting in a greater than the first quality when combined with the video block encoded with the first quality The second quality video block. The refinement of the video block is encoded in a single coded one operation.

在另一態樣中,一種使用可調節視訊寫碼來解碼視訊資料之方法包含解碼基礎層位元流以獲得第一品質的視訊區塊,及解碼加強層位元流以獲得視訊區塊之精化,該等視訊區塊之精化在與第一品質的經解碼視訊區塊組合時導致具有第二品質的視訊區塊。解碼加強層包括對於視訊區塊之精化之每一非零係數而言解碼一指示存在至少一殘餘非零係數的符號、一指示非零係數之前的零值係數之數目的運程長度及非零係數的正負號。In another aspect, a method of decoding video data using an adjustable video write code includes decoding a base layer bitstream to obtain a first quality video block, and decoding the enhancement layer bitstream to obtain a video block. Refinement, the refinement of the video blocks results in a second quality video block when combined with the first quality decoded video block. The decoding enhancement layer includes decoding, for each non-zero coefficient of the refinement of the video block, a symbol indicating the presence of at least one residual non-zero coefficient, a run length indicating the number of zero-valued coefficients before the non-zero coefficient, and a non-zero The sign of the coefficient.

在又一態樣中,一種用於使用可調節視訊寫碼來解碼視訊資料之設備包含至少一解碼器,該至少一解碼器解碼基礎層位元流以獲得第一品質的視訊區塊,且解碼加強層位元流以獲得視訊區塊之精化,該等視訊區塊之精化在與第一品質的經解碼視訊區塊組合時導致具有第二品質的視訊區塊。至少一解碼器對於視訊區塊之精化之每一非零係數而言解碼一指示存在至少一殘餘非零係數的符號、一指示非零係數之前的零值係數之數目的運程長度及非零係數的正負號。In another aspect, an apparatus for decoding video data using an adjustable video write code includes at least one decoder that decodes a base layer bitstream to obtain a first quality video block, and Decoding the enhancement layer bitstream to obtain refinement of the video blocks, the refinement of the video blocks resulting in a second quality video block when combined with the first quality decoded video block. At least one decoder decodes, for each non-zero coefficient of the refinement of the video block, a symbol indicating the presence of at least one residual non-zero coefficient, a run length indicating a number of zero-valued coefficients before the non-zero coefficient, and a non-zero The sign of the coefficient.

在再一態樣中,一種包含指令之電腦可讀媒體,該等指令使得一或多個處理器解碼基礎層位元流以獲得第一品質的視訊區塊;且解碼加強層位元流以獲得視訊區塊之精化,該等視訊區塊之精化在與第一品質的經解碼視訊區塊組合時導致具有第二品質的視訊區塊。指令使得一或多個處理器對於視訊區塊之精化之每一非零係數而言解碼一指示存在至少一殘餘非零係數的符號、一指示非零係數之前的零值係數之數目的運程長度及非零係數的正負號。In still another aspect, a computer readable medium comprising instructions for causing one or more processors to decode a base layer bitstream to obtain a first quality video block; and decoding the enhancement layer bitstream to The refinement of the video blocks is obtained, and the refinement of the video blocks results in a second quality video block when combined with the first quality decoded video block. The instructions cause the one or more processors to decode a symbol indicating the presence of at least one residual non-zero coefficient and a number of zero-value coefficients prior to the non-zero coefficient for each non-zero coefficient of refinement of the video block The length and the sign of the non-zero coefficient.

在另一態樣中,一種用於使用可調節視訊寫碼來解碼視訊資料之設備包含:用於解碼基礎層位元流以獲得第一品質的視訊區塊之第一構件;及用於解碼加強層位元流以獲得視訊區塊之精化之第二構件,該等視訊區塊之精化在與第一品質的經解碼視訊區塊組合時導致具有第二品質的視訊區塊。該第二解碼構件對於視訊區塊之精化之每一非零係數而言解碼一指示存在至少一殘餘非零係數的符號、一指示非零係數之前的零值係數之數目的運程長度及非零係數的正負號。In another aspect, an apparatus for decoding video data using an adjustable video write code includes: a first component for decoding a base layer bitstream to obtain a first quality video block; and for decoding The layer bit stream is enhanced to obtain a second component of the refinement of the video block, and the refinement of the video blocks results in a second quality video block when combined with the first quality decoded video block. The second decoding component decodes, for each non-zero coefficient of the refinement of the video block, a run length indicating the presence of at least one residual non-zero coefficient, a run length indicating a number of zero-valued coefficients before the non-zero coefficient, and a non-zero coefficient The sign of the zero coefficient.

本發明中所描述之技術可以硬體、軟體、韌體或其任何組合來實施。若以軟體來實施,則軟體可執行於處理器中,該處理器可指代一或多個處理器,諸如,微處理器、特殊應用積體電路(ASIC)、場可程式化閘陣列(FPGA)或數位信號處理器(DSP),或其他等效積體或離散邏輯電路中。包含用以執行該等技術之指令的軟體最初可儲存於電腦可讀媒體中,且被載入並由處理器來執行。The techniques described in this disclosure can be implemented in hardware, software, firmware, or any combination thereof. If implemented in software, the software may be embodied in a processor, which may be referred to as one or more processors, such as a microprocessor, an application specific integrated circuit (ASIC), a field programmable gate array ( FPGA) or digital signal processor (DSP), or other equivalent integrated or discrete logic circuits. Software containing instructions for performing such techniques may initially be stored on a computer readable medium and loaded and executed by a processor.

因此,本發明亦預期到包含指令之電腦可讀媒體,該等指令使得處理器執行如本發明中所描述之各種技術中的任一者。在一些狀況下,電腦可讀媒體可形成電腦程式產品之部分,該電腦程式產品可出售給製造商及/或用於設備中。電腦程式產品可包括電腦可讀媒體,且在一些狀況下亦可包括包裝材料。Accordingly, the present invention also contemplates a computer readable medium containing instructions that cause the processor to perform any of the various techniques as described in this disclosure. In some cases, a computer readable medium can form part of a computer program product that can be sold to a manufacturer and/or used in a device. The computer program product may include computer readable media and, in some cases, packaging materials.

在隨附圖式及以下描述中闡述本發明之一或多個態樣的細節。本發明中描述之技術的其他特徵、目標及優點將自描述及圖式且自申請專利範圍而顯而易見。The details of one or more aspects of the invention are set forth in the drawings and the description below. Other features, objects, and advantages of the invention will be apparent from the description and drawings.

圖1為說明一支援視訊可調節性之視訊傳輸系統10的方塊圖。在圖1之實例中,視訊傳輸系統10包括一源設備12及多個目的地設備14A、14B(共同地為"目的地設備14")。源設備12自一或多個源獲得數位視訊內容,且編碼視訊內容以供傳輸至目的地設備14。視訊內容可(例如)被即時或接近即時地擷取、存檔(例如,預先擷取)、電腦產生,或其組合。在每一狀況下,視訊內容可藉由源設備12來編碼以經由通信頻道傳輸至目的地設備14。源設備12可包括或耦接至一傳輸器,該傳輸器包括適當射頻(RF)調變、濾波,及放大器組件以驅動一或多個天線經由通信頻道遞送經編碼視訊。1 is a block diagram showing a video transmission system 10 that supports video adjustability. In the example of FIG. 1, video transmission system 10 includes a source device 12 and a plurality of destination devices 14A, 14B (collectively "destination devices 14"). Source device 12 obtains digital video content from one or more sources and encodes the video content for transmission to destination device 14. Video content may, for example, be captured, archived (eg, pre-fetched), computer generated, or a combination thereof, on-the-fly or near-instant. In each case, the video content can be encoded by the source device 12 for transmission to the destination device 14 via the communication channel. Source device 12 can include or be coupled to a transmitter that includes appropriate radio frequency (RF) modulation, filtering, and an amplifier component to drive one or more antennas to deliver encoded video via a communication channel.

為了支援可調節視訊,源設備12將源視訊編碼為基礎層位元流(或基礎層)及一或多個可調節加強層位元流(或加強層)。基礎層位元流通常載運具有基礎品質等級之視訊資料。一或多個加強層載運本文中稱為精化之額外視訊資料以支援較高品質等級。在加強層中編碼之精化可(例如)藉由提供額外較高頻率係數或進一步精製現有係數而逐漸增加保真度(例如,視覺品質)。在一些例子中,可以比加強層之傳輸更可靠的方式(例如,以較低封包錯誤率(PER))傳輸基礎層。To support adjustable video, source device 12 encodes the source video as a base layer bit stream (or base layer) and one or more adjustable enhancement layer bit streams (or enhancement layers). The base layer bit stream typically carries video data with a base quality level. One or more enhancement layers carry additional video material referred to herein as refinement to support higher quality levels. Refinement encoded in the enhancement layer can gradually increase fidelity (eg, visual quality), for example, by providing additional higher frequency coefficients or further refining existing coefficients. In some examples, the base layer may be transmitted in a more reliable manner than the transmission of the enhancement layer (eg, at a lower packet error rate (PER)).

在圖1中所說明之實例中,為了簡單,展示一頻道之基礎層及一單一加強層。然而,源設備12可編碼該頻道之載運額外視訊資料的一個以上加強層。在一些例子中,源設備12可在單獨位元流中編碼源視訊以支援用於由與目的地設備14相關聯之使用者選擇的不同頻道。通常同時傳輸頻道,使得目的地設備14在任何時間可選擇不同頻道以用於觀看。因此,非常類似於電視觀看體驗,目的地設備14在使用者控制下可選擇一頻道以觀看體育,且接著選擇另一頻道以觀看新聞或某一其他經排程的廣播節目事件。一般而言,可將每一頻道編碼為一基礎層及一或多個加強層。In the example illustrated in Figure 1, the base layer of a channel and a single enhancement layer are shown for simplicity. However, source device 12 may encode more than one enhancement layer of the channel carrying additional video material. In some examples, source device 12 may encode the source video in a separate bitstream to support different channels for selection by the user associated with destination device 14. Channels are typically transmitted simultaneously such that destination device 14 can select different channels for viewing at any time. Thus, much like the television viewing experience, the destination device 14 can select a channel to watch sports under user control and then select another channel to watch the news or some other scheduled broadcast program event. In general, each channel can be encoded as a base layer and one or more enhancement layers.

此外,為了說明性目的,在品質可調節性(亦稱為訊雜比(SNR)可調節性)情形下描述本發明的技術。然而,可將技術擴展至空間可調節性。在空間可調節性應用中,基礎層以基礎空間解析度載運視訊資料,且加強層載運額外視訊資料從而支援較高空間解析度。在一些例子中,系統10可利用組合SNR、空間及/或時間可調節性的視訊可調節性。Moreover, for illustrative purposes, the techniques of the present invention are described in the context of quality adjustability (also known as signal to noise ratio (SNR) adjustability). However, the technology can be extended to spatial adjustability. In space-adjustability applications, the base layer carries video data at base space resolution, and the enhancement layer carries additional video data to support higher spatial resolution. In some examples, system 10 may utilize video adjustability that combines SNR, spatial and/or temporal adjustability.

源設備12可(例如)根據ITU-T H.264/MPEG-4部分10 AVC標準之SVC擴展而將源視訊編碼為基礎層,且根據本發明中描述的技術將源視訊編碼為加強層。同樣,如本發明中描述之技術在一些態樣中可經應用以實施設備之視訊可調節性擴展,其另外符合H.264標準。實際上,本發明之技術可表示用於H.264標準或其他標準之將來版本或擴展的潛在修改。然而,可結合以下各種其他視訊壓縮標準中之任一者來使用該等技術,諸如,在MPEG-1及MPEG-2中界定之彼等標準、ITU-T H.263標準、電影電視工程師協會(SMPTE)421M視訊CODEC標準(統稱為"VC-1")、藉由中國音訊視訊寫碼標準工作小組界定之標準(統稱為"AVS")以及藉由標準組織界定或藉由組織開發為專屬標準的任何其他視訊寫碼標準。Source device 12 may encode source video as a base layer, for example, according to the SVC extension of the ITU-T H.264/MPEG-4 Part 10 AVC standard, and encode the source video as a reinforcement layer in accordance with the techniques described in this disclosure. Likewise, the techniques as described in this disclosure may be applied in some aspects to implement video scalability scalability of the device, which additionally conforms to the H.264 standard. In fact, the techniques of this disclosure may represent potential modifications for future versions or extensions of the H.264 standard or other standards. However, such techniques may be used in conjunction with any of a variety of other video compression standards, such as those defined in MPEG-1 and MPEG-2, the ITU-T H.263 standard, and the Society of Motion Picture and Television Engineers. (SMPTE) 421M Video CODEC Standard (collectively referred to as "VC-1"), standard defined by the China Audio Video Writing Standards Working Group (collectively referred to as "AVS"), and defined by standard organization or developed by the organization Any other standard video writing standard.

目的地設備14可支援經編碼視訊之有線及/或無線接收。目的地設備14可包含諸如無線通信設備之能夠接收並解碼數位視訊資料的任何設備,例如蜂巢式或衛星無線電話、無線廣播系統、個人數位助理(PDA)、膝上型電腦或桌上型電腦、數位相機、數位記錄設備、視訊遊戲設備、視訊遊戲機、數位電視、數位直播系統,及其類似者。在圖1之實例中,展示兩個目的地設備14A、14B。然而,系統10可包括任何數目之目的地設備14。目的地設備14亦可根據上述各種視訊壓縮標準中之任一者來操作。Destination device 14 can support wired and/or wireless reception of encoded video. Destination device 14 may include any device, such as a wireless communication device, capable of receiving and decoding digital video material, such as a cellular or satellite wireless telephone, a wireless broadcast system, a personal digital assistant (PDA), a laptop, or a desktop computer. , digital cameras, digital recording devices, video game devices, video game consoles, digital TVs, digital live broadcast systems, and the like. In the example of Figure 1, two destination devices 14A, 14B are shown. However, system 10 can include any number of destination devices 14. Destination device 14 may also operate in accordance with any of the various video compression standards described above.

圖1表示目的地設備14相對於傳輸經編碼視訊之源設備12的定位。詳言之,目的地設備14A較靠近傳輸源(亦即,圖1中之源設備12),且目的地設備14B遠離傳輸源。在以較低PER編碼基礎層的狀況下,兩個目的地設備14A及14B可可靠地接收並解碼基礎層。較靠近源設備12定位之目的地設備14A亦可可靠地接收加強層。然而,遠離源設備12定位之目的地設備14B可能(例如)歸因於網路或頻道條件而無法可靠地接收加強層。Figure 1 shows the location of destination device 14 relative to source device 12 that transmits encoded video. In particular, destination device 14A is closer to the transmission source (i.e., source device 12 in Figure 1), and destination device 14B is remote from the transmission source. In the case of encoding the base layer with a lower PER, the two destination devices 14A and 14B can reliably receive and decode the base layer. The destination device 14A positioned closer to the source device 12 can also reliably receive the reinforcement layer. However, destination device 14B located remotely from source device 12 may not be able to reliably receive the enhancement layer due to, for example, network or channel conditions.

同樣,因為基礎層資料及加強層資料兩者為可用的,所以較靠近之目的地設備14A能夠具有較高品質視訊;而目的地設備14B僅能夠呈現由基礎層資料提供的最小品質等級。因此,在加強層之額外位元可經解碼並添加至基礎層位元流以增加經解碼視訊之訊雜比(SNR)之意義上,藉由目的地設備14獲得之視訊為可調節的。然而,僅當加強層資料存在時,可調節性為可能的。因此,如本發明中使用之術語"品質"可指代客觀及/或主觀視覺品質。換言之,加強層精化導致為原始資料之較高品質再現的視訊資料。以此方式,藉由加強層來增加視訊的保真度。Also, because both the base layer data and the enhancement layer data are available, the closer destination device 14A can have higher quality video; and the destination device 14B can only present the minimum quality level provided by the base layer material. Thus, the video obtained by destination device 14 is adjustable in the sense that the extra bits of the enhancement layer can be decoded and added to the base layer bitstream to increase the signal-to-noise ratio (SNR) of the decoded video. However, adjustability is possible only when reinforcement layer data is present. Thus, the term "quality" as used in the present invention may refer to objective and/or subjective visual qualities. In other words, enhancement layer refinement results in video material that is reproduced for higher quality of the original material. In this way, the fidelity of the video is increased by the enhancement layer.

在其他例子中,網路或頻道條件對於目的地設備14A及14B兩者可能皆足以接收基礎層及加強層。然而,目的地設備14A及14B可具有不同解碼器能力,該等不同解碼器能力防止目的地設備14A及14B中之一者使用加強層之額外視訊資料來產生較高品質視訊。若目的地設備14中之一者為用戶端設備,諸如,行動手持裝置或(例如)其他小型攜帶型設備,則可能存在歸因於計算複雜性及記憶體要求的限制。因此,可以具有有限計算或記憶體資源之目的地設備14可僅解碼基礎層之方式來設計可調節視訊寫碼。以此方式,具有較好網路或頻道條件及/或較高解碼器能力之目的地設備14將能夠使用加強層之額外視訊資料重建具有較高視訊品質的視訊。In other examples, network or channel conditions may be sufficient for both destination devices 14A and 14B to receive the base layer and the enhancement layer. However, destination devices 14A and 14B may have different decoder capabilities that prevent one of destination devices 14A and 14B from using additional video material of the enhancement layer to produce higher quality video. If one of the destination devices 14 is a client device, such as a mobile handset or, for example, other small portable devices, there may be limitations due to computational complexity and memory requirements. Thus, destination device 14, which may have limited computation or memory resources, may design an adjustable video write code in a manner that only decodes the base layer. In this manner, destination device 14 with better network or channel conditions and/or higher decoder capabilities will be able to reconstruct video with higher video quality using additional video data of the enhancement layer.

本發明中描述之技術利用促進加強層位元流之有效寫碼的熵寫碼技術。本發明之熵寫碼技術可賦能在單一編碼一次操作中在加強層位元流中寫碼(例如)呈精化形式之額外視訊資料,藉此減少寫碼複雜性、寫碼延遲及記憶體要求。如將進一步詳細描述,源設備12在一些例子中可在不知曉任何後續係數(亦即,當前正被寫碼之非零係數之後的任何係數)的情況下編碼加強層之係數向量中的每一非零係數。在單一一次操作中寫碼加強層可消除執行一用以分析係數向量之第一一次操作及用於基於分析而寫碼係數向量的第二一次操作之需要。The techniques described in this disclosure utilize an entropy write technique that facilitates efficient code writing of enhancement layer bitstreams. The entropy coding technique of the present invention can be enabled to write, for example, additional video data in a refined form in a reinforced layer bit stream in a single coded one operation, thereby reducing write code complexity, write code delay, and memory. Body requirements. As will be described in further detail, source device 12 may, in some examples, encode each of the coefficient vectors of the enhancement layer without knowing any subsequent coefficients (ie, any coefficients that are currently being written by the non-zero coefficients of the code). A non-zero coefficient. Writing the code enhancement layer in a single operation eliminates the need to perform a first operation to analyze the coefficient vector and a second operation to write the code coefficient vector based on the analysis.

舉例而言,一些習知熵編碼器可執行第一編碼一次操作以產生用以表示係數向量的符號,符號中的至少一些表示一個以上非零係數。換言之,需要知曉後續係數以編碼係數向量的非零係數。另外或或者,一些習知熵編碼器亦可在第一或後續編碼一次操作期間選擇VLC表以用於編碼符號。在一態樣中,可基於所產生之符號來選擇VLC表。或者,可藉由在第一編碼一次操作期間分析係數向量而收集統計數據,且可基於所收集之統計數據來選擇VLC表。For example, some conventional entropy encoders may perform a first coded one operation to generate symbols to represent coefficient vectors, at least some of which represent more than one non-zero coefficient. In other words, it is necessary to know the subsequent coefficients to encode the non-zero coefficients of the coefficient vector. Additionally or alternatively, some conventional entropy encoders may also select a VLC table for encoding symbols during a first or subsequent encoding operation. In one aspect, the VLC table can be selected based on the generated symbols. Alternatively, the statistical data may be collected by analyzing the coefficient vector during the first encoding one operation, and the VLC table may be selected based on the collected statistical data.

接著藉由習知熵編碼器來執行第二編碼一次操作以基於在第一編碼一次操作期間執行之分析來熵編碼係數向量。作為一實例,一些習知熵編碼器在第二編碼一次操作期間可使用基於所產生之符號或其他統計數據選擇之VLC表來編碼在第一一次操作期間產生的符號。產生表示一個以上非零係數之符號及/或基於所產生之符號或其他統計數據選擇VLC表可允許更有效地編碼係數向量。A second one-time encoding operation is then performed by a conventional entropy coder to entropy encode the coefficient vector based on the analysis performed during the first encoding one operation. As an example, some conventional entropy encoders may encode symbols generated during a first operation using a VLC table selected based on the generated symbols or other statistical data during a second one-time operation. Generating a symbol representing more than one non-zero coefficient and/or selecting a VLC table based on the generated symbol or other statistical data may allow for more efficient encoding of the coefficient vector.

本發明之技術不僅消除使用一個以上編碼一次操作來編碼加強層之需要,而且本發明之熵寫碼技術可另外導致在不儲存並存取基礎層之視訊資料的係數資訊的情況下寫碼加強層,從而進一步減少計算複雜性及記憶體要求。The technique of the present invention not only eliminates the need to encode the enhancement layer using more than one encoding operation, but the entropy coding technique of the present invention can additionally result in code enhancement in the case of not storing and accessing coefficient information of the video material of the base layer. Layers to further reduce computational complexity and memory requirements.

源設備12、目的地設備14或兩者可為如上所述之無線或有線通信設備。又,源設備12、目的地設備14或兩者可實施為積體電路設備(諸如,積體電路晶片或晶片組),該積體電路設備可併入至無線或有線通信設備中或支援數位視訊應用的另一類型設備中,諸如,數位媒體播放器、個人數位助理(PDA)、數位電視或類似者。Source device 12, destination device 14, or both may be wireless or wired communication devices as described above. Also, source device 12, destination device 14, or both may be implemented as an integrated circuit device (such as an integrated circuit die or wafer set) that may be incorporated into a wireless or wired communication device or to support digital Another type of device for video applications, such as digital media players, personal digital assistants (PDAs), digital televisions, or the like.

圖2為進一步詳細說明寫碼系統10之源設備12及目的地設備14的方塊圖。目的地設備14可(例如)為圖1之目的地設備14A或14B中的任一者。如圖2中所示,源設備12可包括:一視訊源18、一視訊編碼器20及一傳輸器22。源設備12之視訊源18可包括一視訊擷取設備,諸如,攝影機、含有先前擷取之視訊的視訊存檔或來自視訊內容提供者的視訊饋入。作為另一替代實例,視訊源18可產生基於電腦圖形之資料作為源視訊,或者實況視訊及電腦產生視訊之組合。在一些狀況下,源設備12可為所謂之相機電話或視訊電話,在此狀況下視訊源18可為攝影機。在每一狀況下,經擷取,預擷取或電腦產生之視訊可由視訊編碼器20編碼從而經由傳輸器22及通信頻道16自源設備12傳輸至目的地設備14。2 is a block diagram illustrating source device 12 and destination device 14 of write code system 10 in further detail. Destination device 14 can be, for example, any of destination device 14A or 14B of FIG. As shown in FIG. 2, the source device 12 can include a video source 18, a video encoder 20, and a transmitter 22. The video source 18 of the source device 12 can include a video capture device such as a video camera, a video archive containing previously captured video, or a video feed from a video content provider. As a further alternative, video source 18 may generate computer graphics based data as source video or a combination of live video and computer generated video. In some cases, source device 12 can be a so-called camera phone or video phone, in which case video source 18 can be a camera. In each case, the captured, pre-fetched or computer generated video can be encoded by video encoder 20 for transmission from source device 12 to destination device 14 via transmitter 22 and communication channel 16.

視訊編碼器20自視訊源18接收視訊資料,且將視訊資料編碼為基礎層位元流及一或多個加強層位元流。在圖2中所說明之實例中,視訊編碼器20包括一基礎層編碼器30及一加強層編碼器32。基礎層編碼器30及加強層編碼器32自視訊源18接收共用視訊資料。基礎層編碼器30以第一位元率編碼視訊資料以產生視訊的處於第一品質等級之基礎層位元流。加強層編碼器32編碼額外位元以產生一或多個加強層,該一或多個加強層在添加至基礎層位元等級時將視訊加強為第二較高品質等級。換言之,加強層在添加至基礎層時提供第二較高位元率,該第二較高位元率提供較高品質等級。因而,可將加強層看作在基礎層中編碼之視訊資料的編碼精化。精化可(例如)為額外係數及/或對現有係數的精化。在加強層中之精化隨著其解碼而逐漸增加視訊資料之品質的意義上,在加強層中編碼之精化可為階層式的。因而,對所有加強層之精化的解碼(例如)將導致最高位元率及最大品質,而僅對第一加強層之精化之解碼相對於僅對基礎層之解碼將產生位元率及品質的遞增增加。The video encoder 20 receives video data from the video source 18 and encodes the video data into a base layer bit stream and one or more enhancement layer bit streams. In the example illustrated in FIG. 2, video encoder 20 includes a base layer encoder 30 and a boost layer encoder 32. The base layer encoder 30 and the enhancement layer encoder 32 receive the shared video material from the video source 18. The base layer encoder 30 encodes the video material at a first bit rate to produce a base layer bit stream of the video at a first quality level. The enhancement layer encoder 32 encodes additional bits to produce one or more enhancement layers that enhance the video to a second, higher quality level when added to the base layer level. In other words, the reinforcement layer provides a second, higher bit rate when added to the base layer, the second higher bit rate providing a higher quality level. Thus, the enhancement layer can be considered as the coding refinement of the video material encoded in the base layer. Refinement can be, for example, an additional factor and/or refinement of existing coefficients. In the sense that the refinement in the enhancement layer gradually increases the quality of the video material as it is decoded, the refinement of the coding in the enhancement layer can be hierarchical. Thus, the decoding of the refinement of all enhancement layers will, for example, result in the highest bit rate and maximum quality, while only the decoding of the refinement of the first enhancement layer will produce a bit rate relative to the decoding of only the base layer. The quality is increasing incrementally.

自視訊源18接收到之視訊資料可為一系列視訊圖框。基礎層編碼器30及加強層編碼器32將一系列圖框分為寫碼單元,並處理該等寫碼單元以編碼該系列視訊圖框。寫碼單元可(例如)為整個圖框或圖框之部分(諸如,圖框之片)。基礎層編碼器30及加強層編碼器32將每一寫碼單元分為像素區塊(本文中稱為視訊區塊或區塊),且對個別寫碼單元內之視訊區塊操作以便編碼視訊資料。同樣,視訊資料可包括多個圖框,一圖框可包括多個片,且一片可包括多個視訊區塊。The video data received from the video source 18 can be a series of video frames. The base layer encoder 30 and the enhancement layer encoder 32 divide the series of frames into code writing units and process the write code units to encode the series of video frames. The code unit can be, for example, an entire frame or a portion of a frame (such as a slice of a frame). Base layer encoder 30 and enhancement layer encoder 32 divide each code unit into pixel blocks (referred to herein as video blocks or blocks) and operate on video blocks within individual code units to encode video. data. Similarly, the video material may include multiple frames, one frame may include multiple slices, and one slice may include multiple video blocks.

視訊區塊可具有固定或變化之大小,且根據特定寫碼標準可在大小上有所不同。作為一實例,ITU-T H.264/MPEG-4部分10 AVC支援各種區塊大小之框內預測,諸如用於亮度分量之16乘16、8乘8或4乘4,及用於色度分量之8x8,以及支援各種區塊大小之框間預測,諸如用於亮度分量之16乘16、16乘8、8乘16、8乘8、8乘4、4乘8及4乘4及用於色度分量之相應可調節的大小。在H.264/MPEG-4部分10 AVC中,可將通常稱為巨集區塊(MB)之每一視訊區塊再分為具有固定或變化之大小的子區塊。亦即,寫碼單元可含有具有相同或不同大小的子區塊。一般而言,MB及各種子區塊可視作視訊區塊。因此,MB可視作視訊區塊,且在經分割或次分割情況下,MB自身可被視作界定視訊區塊集合。Video blocks can have fixed or varying sizes and can vary in size depending on the particular code standard. As an example, ITU-T H.264/MPEG-4 Part 10 AVC supports intra-frame prediction of various block sizes, such as 16 by 16, 8 by 8 or 4 by 4 for luminance components, and for chrominance 8x8 component, and inter-frame prediction to support various block sizes, such as 16 by 16, 16 by 8, 8 by 16, 8 by 8, 8 by 4, 4 by 8, and 4 by 4 for the luminance component The corresponding adjustable size of the chrominance component. In H.264/MPEG-4 Part 10 AVC, each video block, commonly referred to as a macroblock (MB), can be subdivided into sub-blocks of fixed or varying size. That is, the code writing unit may contain sub-blocks having the same or different sizes. In general, MB and various sub-blocks can be considered as video blocks. Thus, the MB can be considered a video block, and in the case of split or sub-segmentation, the MB itself can be considered to define a set of video blocks.

編碼器30、32執行圖框之視訊區塊的框內寫碼及框間寫碼。框內寫碼依靠空間預測來減少或移除給定寫碼單元(例如,圖框或片)內之視訊資料中的空間冗餘。對於框內寫碼而言,編碼器30、32基於與當前正被寫碼之區塊相同之圖框內的一或多個先前編碼之區塊而形成空間預測區塊。預測區塊可為當前正被寫碼之視訊區塊的預測型式。基礎層編碼器30可(例如)藉由使用當前圖框之基礎層內之一或多個先前編碼區塊的像素值來執行內插(根據與區塊相關聯之框內寫碼模式)而基於圖框內之一或多個先前編碼區塊而產生預測區塊。加強層編碼器32可基於圖框內之一或多個先前編碼區塊而產生預測區塊。加強層編碼器32可(例如)基於來自圖框內之基礎層及加強層之一或多個先前編碼視訊區塊而產生預測區塊。舉例而言,加強層編碼器32可使用來自以下兩者之像素值之加權和而產生預測區塊:來自基礎層之至少一先前編碼視訊區塊及來自加強層之至少一先前編碼視訊區塊。The encoders 30, 32 perform in-frame writing and inter-frame writing of the video blocks of the frame. In-frame writing relies on spatial prediction to reduce or remove spatial redundancy in the video material within a given code unit (eg, a frame or slice). For in-frame writing, the encoders 30, 32 form spatial prediction blocks based on one or more previously encoded blocks within the same block as the block currently being coded. The prediction block can be a prediction pattern of the video block currently being coded. Base layer encoder 30 may perform interpolation (eg, according to the intra-frame write mode associated with the block), for example, by using pixel values of one or more previously encoded blocks within the base layer of the current frame. A prediction block is generated based on one or more previously encoded blocks within the frame. The enhancement layer encoder 32 may generate prediction blocks based on one or more previously encoded blocks within the frame. The enhancement layer encoder 32 may generate prediction blocks based, for example, on one or more previously encoded video blocks from the base layer and the enhancement layer within the frame. For example, enhancement layer encoder 32 may generate a prediction block using a weighted sum of pixel values from at least one previously encoded video block from the base layer and at least one previously encoded video block from the enhancement layer. .

框間寫碼依靠時間預測來減少或移除視訊序列之相鄰圖框內的時間冗餘。對於框間寫碼而言,編碼器30、32執行運動估計以追蹤寫碼單元內之兩個或兩個以上相鄰圖框之間的密切匹配之視訊區塊的移動。在框間預測狀況下,編碼器30、32可基於來自寫碼單元內之其他圖框之一或多個先前編碼區塊產生時間預測區塊。編碼器30、32可(例如)比較當前視訊區塊與一或多個相鄰視訊圖框中之區塊以識別相鄰圖框中之與當前視訊區塊最密切地匹配的區塊,例如,一或多個相鄰圖框中之具有最小均方誤差(MSE)、平方差和(SSD)、絕對差和(SAD)或其他差異量度的區塊。編碼器30、32選擇相鄰圖框中之經識別區塊作為預測區塊。基礎層編碼器30比較當前視訊區塊與基礎層之一個以上相鄰圖框中的區塊。加強層編碼器32可比較當前視訊區塊與基礎層及/或加強層中之一或多個相鄰圖框中的區塊。Inter-frame coding relies on temporal prediction to reduce or remove temporal redundancy within adjacent frames of the video sequence. For inter-frame writing, the encoders 30, 32 perform motion estimation to track the movement of closely matched video blocks between two or more adjacent frames within the code unit. In the inter-frame prediction condition, the encoders 30, 32 may generate temporal prediction blocks based on one or more previously encoded blocks from other frames within the coding unit. The encoders 30, 32 can, for example, compare the current video block to the block in one or more adjacent video frames to identify the block in the adjacent frame that most closely matches the current video block, such as A block having a minimum mean square error (MSE), a squared difference sum (SSD), an absolute difference sum (SAD), or other difference measure in one or more adjacent frames. The encoders 30, 32 select the identified blocks in adjacent frames as prediction blocks. The base layer encoder 30 compares the blocks of one or more adjacent frames of the current video block and the base layer. The enhancement layer encoder 32 may compare the blocks of one or more adjacent frames in the current video block to the base layer and/or the enhancement layer.

在視訊區塊之基於框內或框間的預測之後,編碼器30、32藉由自正被寫碼之原始視訊區塊減去所產生之預測區塊而產生剩餘區塊。剩餘區塊因此指示預測區塊與正被寫碼之當前區塊之間的差。編碼器30、32可應用變換、量化及熵寫碼過程以進一步減少與剩餘區塊之通信相關聯的位元率。可包括離散餘弦變換(DCT)、整數變換、小波變換、方向變換或其他變換運算之變換技術將一組像素差值改變為剩餘變換係數,該等剩餘變換係數表示像素差值在頻域中的能量。編碼器30、32向剩餘變換係數應用量化,其通常涉及限制與任何給定係數相關聯之位元的數目之過程。編碼器30、32掃描二維剩餘區塊以產生係數之一維向量,並熵編碼係數向量以進一步壓縮剩餘係數。熵編碼可(例如)包括可變長度寫碼(VLC)、算術寫碼、固定長度寫碼、內容適應性VLC(CAVLC)、內容適應性二進位算術寫碼(CABAC)及/或其他熵寫碼技術。After the intra-frame or inter-frame prediction of the video block, the encoder 30, 32 generates the remaining block by subtracting the generated prediction block from the original video block being coded. The remaining block thus indicates the difference between the predicted block and the current block being coded. The encoders 30, 32 may apply transform, quantization, and entropy write procedures to further reduce the bit rate associated with communication of the remaining blocks. A transform technique that may include discrete cosine transform (DCT), integer transform, wavelet transform, direction transform, or other transform operation changes a set of pixel differences to residual transform coefficients, which represent pixel differences in the frequency domain energy. The encoders 30, 32 apply quantization to the residual transform coefficients, which typically involves the process of limiting the number of bits associated with any given coefficient. The encoders 30, 32 scan the two-dimensional residual block to produce a one-dimensional vector of coefficients and entropy encode the coefficient vector to further compress the residual coefficients. Entropy coding may, for example, include variable length write code (VLC), arithmetic write code, fixed length write code, content adaptive VLC (CAVLC), content adaptive binary arithmetic write code (CABAC), and/or other entropy writes. Code technology.

SNR可調節性可藉由剩餘量化來達成。詳言之,基礎層編碼器30可使用第一量化參數(QP)來量化剩餘變換係數,且加強層編碼器32可使用第二QP來量化剩餘變換係數。在ITU-T H.264/MPEG-10 AVC中,較大QP通常導致使用較小數目之位元以較低品質編碼視訊資料,而較小QP導致使用較大數目之位元以較高品質編碼視訊資料。因而,以最小品質等級編碼視訊資料之基礎層編碼器30可使用大於加強層編碼器32用以量化加強層之係數之QP值的QP值來量化基礎層的係數。結果,來自基礎層編碼器30之經量化之剩餘變換係數表示處於第一品質的視訊序列,且來自加強層編碼器之經量化之剩餘變換係數表示額外係數或對視訊序列之現有係數的精化,該等額外係數或精化在與基礎層組合時將視訊序列之品質增加至第二較高品質。SNR adjustability can be achieved by residual quantization. In particular, base layer encoder 30 may quantize the remaining transform coefficients using a first quantization parameter (QP), and enhancement layer encoder 32 may quantize the remaining transform coefficients using the second QP. In ITU-T H.264/MPEG-10 AVC, larger QPs typically result in the use of a smaller number of bits to encode video data at a lower quality, while smaller QPs result in a higher number of bits with higher quality. Encode video data. Thus, the base layer encoder 30, which encodes the video material with the minimum quality level, can quantize the coefficients of the base layer using a QP value that is greater than the QP value used by the enhancement layer encoder 32 to quantize the coefficients of the enhancement layer. As a result, the quantized residual transform coefficients from base layer encoder 30 represent the video sequence at the first quality, and the quantized residual transform coefficients from the enhancement layer encoder represent additional coefficients or refinement of existing coefficients of the video sequence. The additional coefficients or refinements increase the quality of the video sequence to a second, higher quality when combined with the base layer.

編碼器30、32各自接收分別表示基礎層及加強層之經量化之剩餘變換係數的一維係數向量。換言之,基礎層編碼器30接收基礎層之係數向量,且加強層編碼器32接收相應加強層的係數向量。雖然編碼器30、32接收相同之原始視訊資料,但係數向量可為不同的。此可係歸因於產生不同預測區塊之基礎層編碼器30及加強層編碼器32,例如,基礎層編碼器30自一或多個先前編碼之基礎層區塊產生預測區塊,且加強層編碼器32自一或多個先前編碼之基礎層區塊及加強層區塊產生預測區塊。The encoders 30, 32 each receive a one-dimensional coefficient vector representing the quantized residual transform coefficients of the base layer and the enhancement layer, respectively. In other words, the base layer encoder 30 receives the coefficient vector of the base layer, and the enhancement layer encoder 32 receives the coefficient vector of the corresponding enhancement layer. Although the encoders 30, 32 receive the same raw video material, the coefficient vectors can be different. This may be due to the base layer encoder 30 and the enhancement layer encoder 32 that generate different prediction blocks, for example, the base layer encoder 30 generates prediction blocks from one or more previously encoded base layer blocks, and enhances The layer encoder 32 generates prediction blocks from one or more previously encoded base layer blocks and enhancement layer blocks.

基礎層編碼器30及加強層編碼器32各自編碼各別係數向量以分別產生基礎層位元流及至少一加強層位元流。根據本發明之技術,基礎層編碼器30及加強層編碼器32使用不同寫碼技術編碼各別係數向量。基礎層編碼器30可使用多個編碼一次操作過程來編碼係數向量,在該等多個編碼一次操作中,基礎層編碼器30在至少一編碼一次操作期間分析係數向量,且基於該分析在至少一後續編碼一次操作期間編碼係數向量。在一例子中,基礎層編碼器30可根據如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC來編碼基礎層係數向量之經量化的剩餘變換係數。如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC可使用多個編碼一次操作來編碼基礎層係數向量。The base layer encoder 30 and the enhancement layer encoder 32 each encode respective coefficient vectors to generate a base layer bit stream and at least one enhancement layer bit stream, respectively. In accordance with the teachings of the present invention, base layer encoder 30 and enhancement layer encoder 32 encode individual coefficient vectors using different write code techniques. The base layer encoder 30 may encode a coefficient vector using a plurality of encoding one-time operation processes, in which the base layer encoder 30 analyzes the coefficient vector during at least one encoding operation, and based on the analysis, at least A coefficient vector is encoded during a subsequent encoding operation. In an example, base layer encoder 30 may encode the quantized residual transform coefficients of the base layer coefficient vector according to CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard. A CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard may encode a base layer coefficient vector using a plurality of coding one operations.

在第一編碼一次操作期間,基礎層編碼器30可產生用以表示係數向量之符號,該等符號中之至少一些表示一個以上非零係數,且在一些狀況下表示係數向量之全部係數。基礎層編碼器30可(例如)根據如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC產生符號,該等符號表示係數向量中之係數的總數("TotalCoeffs")、係數向量中之尾隨的1的數目("T1s")、任何尾隨的1之正負號、除尾隨的1外之非零係數的量值(或位準)、所有運程之和("sumRuns")及每一非零係數之前的運程。為了產生符號中之一些,諸如,TotalCoeff及sumRuns,基礎層編碼器30可分析整個係數向量。During a first coded one operation, base layer encoder 30 may generate symbols to represent coefficient vectors, at least some of which represent more than one non-zero coefficient, and in some cases, all coefficients of the coefficient vector. The base layer encoder 30 may generate symbols, for example, according to CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard, which represent the total number of coefficients in the coefficient vector ("TotalCoeffs"), in the coefficient vector The number of trailing 1s ("T1s"), the sign of any trailing 1s, the magnitude (or level) of the non-zero coefficients other than the trailing 1th, the sum of all the races ("sumRuns"), and each The fortune before the non-zero coefficient. To generate some of the symbols, such as TotalCoeff and sumRuns, the base layer encoder 30 can analyze the entire coefficient vector.

在第一編碼一次操作期間,基礎層編碼器30亦可基於對係數向量之分析選擇VLC表以在後續編碼一次操作期間使用。在一些例子中,基礎層編碼器30可基於在第一寫碼一次操作期間產生之符號選擇VLC表以在後續(例如,第二)編碼一次操作期間使用。舉例而言,基礎層編碼器30可基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在編碼sumRuns符號時使用,因為在此等兩個值之間存在某一關係。詳言之,隨著TotalCoeffs增加,sumRuns降低,且隨著TotalCoeffs降低,sumRuns增加。又,基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在編碼sumRuns符號時使用可允許基礎層編碼器30選擇更有效地編碼sumRuns的VLC表。可針對待編碼之其他符號或使用其他所收集之統計數據來執行類似VLC表選擇。During the first encoding once operation, base layer encoder 30 may also select a VLC table based on analysis of the coefficient vectors for use during subsequent encoding operations. In some examples, base layer encoder 30 may select a VLC table based on symbols generated during one operation of the first write code for use during a subsequent (eg, second) encoding one operation. For example, base layer encoder 30 may select a VLC table based on the total number of coefficients in the block (TotalCoeffs) to use when encoding the sumRuns symbol because there is a relationship between these two values. In particular, as TotalCoeffs increases, sumRuns decreases, and as TotalCoeffs decreases, sumRuns increases. Again, the VLC table is selected based on the total number of coefficients in the block (TotalCoeffs) to use the allowable base layer encoder 30 to select a VLC table that more efficiently encodes the sumRuns when encoding the sumRuns symbol. Similar VLC table selections can be performed for other symbols to be encoded or using other collected statistics.

基礎層編碼器30在第二或其他後續編碼一次操作期間編碼表示係數向量中之非零係數之總數的符號(TotalCoeff)及表示尾隨的1之數目的符號(稱為T1s)。尾隨的1之數目為具有為1之量值之係數的數目,在以倒序(亦即,自係數向量之末端開始)讀取係數向量時,該等係數在具有大於1之量值之係數出現之前出現在係數向量中。基礎層編碼器30可基於非零係數之預測數目來選擇VLC表以在編碼TotalCoeff及T1符號中使用,且使用所選擇之VLC表來編碼TotalCoeff及T1符號。基於非零係數之預測數目來選擇VLC表以在編碼TotalCoeff及T1符號中使用可允許基礎層編碼器30選擇更有效地編碼TotalCoeff及T1符號的VLC表。因而,不同VLC表對於非零係數之不同預測數目可為更有效的。在一實例中,基礎層編碼器30可基於一或多個先前編碼之視訊區塊(例如,上部鄰近視訊區塊及左側鄰近視訊區塊)之非零係數的數目預測當前區塊中之非零係數的數目。The base layer encoder 30 encodes a symbol (TotalCoeff) representing the total number of non-zero coefficients in the coefficient vector and a symbol indicating the number of trailing 1s (referred to as T1s) during the second or other subsequent encoding one operation. The number of trailing 1s is the number of coefficients having a magnitude of one, and when the coefficient vectors are read in reverse order (ie, starting from the end of the coefficient vector), the coefficients appear in coefficients having magnitudes greater than one. It appeared before in the coefficient vector. The base layer encoder 30 may select the VLC table for use in encoding the TotalCoeff and T1 symbols based on the predicted number of non-zero coefficients, and encode the TotalCoeff and T1 symbols using the selected VLC table. The VLC table is selected based on the predicted number of non-zero coefficients to use the allowable base layer encoder 30 in the coded TotalCoeff and T1 symbols to select a VLC table that more efficiently encodes the TotalCoeff and T1 symbols. Thus, different VLC tables can be more efficient for different predicted numbers of non-zero coefficients. In an example, base layer encoder 30 may predict non-zero in the current block based on the number of non-zero coefficients of one or more previously encoded video blocks (eg, upper adjacent video blocks and left adjacent video blocks) The number of zero coefficients.

基礎層編碼器30可編碼任何尾隨的1的正負號。舉例而言,對於尾隨的1中之每一者而言,基礎層編碼器30可編碼"1"(若尾隨的1之正負號為正),且編碼"0"(若尾隨的1之正負號為負)。因而,基礎層編碼器30可能不需要針對正負號而執行VLC表選擇。基礎層編碼器30可編碼除尾隨的1外之非零係數的量值。基礎層編碼器30可使用VLC表、固定長度寫碼或其他類型熵寫碼來編碼非零係數的位準。舉例而言,基礎層編碼器30可使用二進位寫碼來編碼非零係數的位準。The base layer encoder 30 can encode the sign of any trailing ones. For example, for each of the trailing ones, base layer encoder 30 may encode "1" (if the trailing 1 has a positive sign) and encode "0" (if the trailing 1 is positive or negative) The number is negative). Thus, base layer encoder 30 may not need to perform VLC table selection for the sign. Base layer encoder 30 may encode the magnitude of the non-zero coefficients other than the trailing one. Base layer encoder 30 may encode the level of non-zero coefficients using a VLC table, a fixed length write code, or other type of entropy write code. For example, base layer encoder 30 may encode the level of non-zero coefficients using a binary write code.

基礎層編碼器30可編碼表示在最後非零係數之前在係數向量中發生的零值係數之數目的符號(sumRuns)。如上所述,基礎層編碼器30可基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在編碼sumRuns符號時使用,因為在此等兩個值之間存在某一關係。The base layer encoder 30 may encode symbols (sumRuns) representing the number of zero-valued coefficients occurring in the coefficient vector before the last non-zero coefficient. As described above, base layer encoder 30 may select a VLC table based on the total number of coefficients in the block (TotalCoeffs) to use when encoding the sumRuns symbol because there is a relationship between these two values.

基礎層編碼器30可編碼自係數向量之最後非零係數開始在每一非零係數之前發生的運程(或運程長度)。運程長度為非零係數之前的零值係數之數目。因此,基礎層編碼器30可首先編碼係數向量之最後非零係數之前的運程長度(亦即,零值係數之數目),繼之以前一非零係數之前的運程長度等,直至編碼係數向量之第一非零係數之前的運程長度為止。Base layer encoder 30 may encode a run (or run length) that occurs before each non-zero coefficient from the last non-zero coefficient of the coefficient vector. The length of the run length is the number of zero-valued coefficients before the non-zero coefficient. Therefore, the base layer encoder 30 may first encode the run length before the last non-zero coefficient of the coefficient vector (ie, the number of zero-valued coefficients), followed by the length of the run before the previous non-zero coefficient, etc., until the coding coefficient vector The length of the first run before the first non-zero coefficient.

基礎層編碼器30可選擇VLC表以用來單獨地編碼運程長度中的每一者。基礎層編碼器30可基於運程之和(sumRuns)符號及迄今為止經寫碼之運程之和來選擇VLC表以用來編碼當前運程值。作為一實例,若係數向量具有為八之運程和(sumRuns),且在編碼之最後非零係數之前編碼的運程為六,則所有殘餘運程必須為零、一或二。因為可能之運程長度隨著每一額外運程經編碼而逐漸變短,所以基礎層編碼器30可選擇更有效之VLC表以減少用以表示運程的位元之數目。The base layer encoder 30 may select a VLC table to separately encode each of the run lengths. The base layer encoder 30 may select a VLC table to encode the current run value based on the sum of the sumRuns symbols and the hitherto coded runes. As an example, if the coefficient vector has a runsum sum (sumRuns) and the run length encoded before the last non-zero coefficient of the code is six, then all residual runs must be zero, one, or two. Since the length of the possible path is gradually shortened as each additional process is encoded, the base layer encoder 30 can select a more efficient VLC table to reduce the number of bits used to represent the fortune.

以此方式,基礎層編碼器30執行多一次操作編碼以編碼基礎層係數,該多一次操作編碼包括一分析基礎層剩餘區塊之係數向量(例如)以產生符號及/或選擇VLC表的第一一次操作及一基於分析編碼係數向量的第二編碼一次操作。雖然基礎層編碼器30上文中被描述為使用如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC編碼經量化之剩餘變換係數,但基礎層編碼器30可使用其他寫碼方法來編碼經量化的剩餘變換係數。In this manner, base layer encoder 30 performs a multi-time operation encoding to encode base layer coefficients, including a coefficient vector of the remaining blocks of the base layer, for example, to generate symbols and/or select a VLC table. One operation and one second coding one operation based on analyzing the coding coefficient vector. Although the base layer encoder 30 is described above as using the CAVLC coded quantized residual transform coefficients as defined in the H.264/MPEG-4 Part 10 AVC standard, the base layer encoder 30 may use other write code methods. The quantized residual transform coefficients are encoded.

加強層編碼器32編碼可呈係數向量形式之加強層的經量化剩餘變換係數。加強層編碼器32可產生不同於基礎層之經量化剩餘係數的經量化剩餘係數。加強層之經量化剩餘係數歸因於在量化期間使用不同QP而可不同於基礎層的經量化剩餘係數。另外,經量化之剩餘變換係數可不同於基礎層之經量化剩餘變換係數,此係因為剩餘區塊表示原始視訊區塊與使用形成基礎層及加強層之先前編碼區塊產生的預測區塊之間的差。基礎層之剩餘區塊為原始視訊區塊與使用僅來自基礎層之先前編碼區塊產生之預測區塊之間的差。因而,加強層可包括額外係數及/或對現有係數的精化。在此意義上,加強層中之視訊區塊之經量化剩餘變換係數表示對基礎層中之以第一品質編碼的視訊區塊之精化,且在添加至基礎層時提供較高品質視訊資料。The enhancement layer encoder 32 encodes the quantized residual transform coefficients of the enhancement layer, which may be in the form of a coefficient vector. The enhancement layer encoder 32 may generate quantized residual coefficients that are different from the quantized residual coefficients of the base layer. The quantized residual coefficients of the enhancement layer are due to the use of different QPs during quantization and may be different from the quantized residual coefficients of the base layer. In addition, the quantized residual transform coefficients may be different from the quantized residual transform coefficients of the base layer, because the remaining blocks represent the original video block and the predicted block generated by using the previous coded block forming the base layer and the enhancement layer. The difference between the two. The remaining blocks of the base layer are the difference between the original video block and the predicted block generated using only the previous coded block from the base layer. Thus, the reinforcement layer may include additional coefficients and/or refinement of existing coefficients. In this sense, the quantized residual transform coefficients of the video blocks in the enhancement layer represent refinements of the first quality coded video blocks in the base layer and provide higher quality video data when added to the base layer. .

加強層編碼器32視可用位元率而定在編碼期間可丟棄係數向量之經量化剩餘係數中的一或多者。舉例而言,在如圖3中所說明使用Z字形掃描完成係數掃描時,加強層編碼器32可丟棄對應於高頻率變換基礎函數的係數,例如,位置靠近係數向量之末端的係數。根據如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC編碼經量化剩餘係數可能不允許加強層編碼器32丟棄係數,此係因為待編碼之符號中之至少某些(例如,TotalCoeffs及sumRuns)涉及區塊中的所有係數。若加強層編碼器32丟棄係數向量之係數中的一或多者,則接收到之資訊將為冗餘的,因此導致較低寫碼效率。此外,因為解碼器必須接收區塊中之所有非零係數的運程以在使用如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC進行編碼時能夠在Z字形掃描中適當地解碼每一係數的位置,所以加強層編碼器32可能不能丟棄來自加強層之係數向量的係數。The enhancement layer encoder 32 may discard one or more of the quantized residual coefficients of the coefficient vector during encoding, depending on the available bit rate. For example, when a coefficient scan is performed using a zigzag scan as illustrated in FIG. 3, the enhancement layer encoder 32 may discard coefficients corresponding to the high frequency transform basis function, for example, coefficients that are located near the end of the coefficient vector. Coding the quantized residual coefficients according to CAVLC encoding as defined in the H.264/MPEG-4 Part 10 AVC standard may not allow the enhancement layer encoder 32 to discard the coefficients, since at least some of the symbols to be encoded (eg, TotalCoeffs) And sumRuns) relate to all the coefficients in the block. If the enhancement layer encoder 32 discards one or more of the coefficients of the coefficient vector, the received information will be redundant, thus resulting in lower code efficiency. Furthermore, because the decoder must receive the motion of all non-zero coefficients in the block to be able to properly decode each in a zigzag scan when encoding using CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard The position of a coefficient, so the enhancement layer encoder 32 may not be able to discard the coefficients of the coefficient vector from the enhancement layer.

因而,加強層編碼器32根據本發明之寫碼技術來編碼加強層之係數。加強層編碼器32在單一編碼一次操作中編碼係數向量之經量化剩餘變換係數。換言之,加強層編碼器32並不執行用以分析係數向量之第一一次操作,且並不接著基於分析在第二一次操作期間編碼符號。實情為,加強層編碼器32自係數向量之開始起始,且在單一編碼一次操作中逐一地編碼非零係數中的每一者。以此方式,加強層編碼器32可在不分析係數向量中之任何後續係數的情況下(亦即,在不知曉係數向量之任何後續係數的情況下)編碼非零係數中的每一者。Thus, enhancement layer encoder 32 encodes the coefficients of the enhancement layer in accordance with the write code technique of the present invention. The enhancement layer encoder 32 encodes the quantized residual transform coefficients of the coefficient vectors in a single coded one operation. In other words, enhancement layer encoder 32 does not perform the first operation to analyze the coefficient vector, and does not subsequently encode the symbol during the second operation based on the analysis. Rather, the enhancement layer encoder 32 begins at the beginning of the coefficient vector and encodes each of the non-zero coefficients one by one in a single coded one operation. In this manner, enhancement layer encoder 32 may encode each of the non-zero coefficients without analyzing any subsequent coefficients in the coefficient vector (ie, without knowing any subsequent coefficients of the coefficient vector).

在一態樣中,加強層編碼器32對於非零係數中之每一者而言可編碼一指示在係數向量中存在至少一殘餘非零係數的符號。符號可(例如)為區塊結束(EOB)符號。加強層編碼器32可使用單一位元來編碼符號。舉例而言,加強層編碼器32在存在至少一殘餘非零係數(例如,至少當前非零係數)時可編碼零,且在不再存在殘餘非零係數時可編碼一。In one aspect, enhancement layer encoder 32 may encode, for each of the non-zero coefficients, a symbol indicating the presence of at least one residual non-zero coefficient in the coefficient vector. The symbol can be, for example, an end of block (EOB) symbol. The enhancement layer encoder 32 can encode symbols using a single bit. For example, enhancement layer encoder 32 may encode zero when there is at least one residual non-zero coefficient (eg, at least the current non-zero coefficient), and may encode one when there are no more residual non-zero coefficients.

在每一係數之EOB符號之後,加強層編碼器32編碼當前非零係數之前的運程。如上所述,運程表示在係數向量之先前非零係數或係數向量之開始(在第一非零係數的狀況下)與當前非零係數之間發生之零值係數的數目。加強層編碼器32可使用單一VLC表來編碼運程。在一例子中,在TotalCoeffs等於一時,加強層編碼器32可使用在如H.264/MPEG-4部分10 AVC標準中界定之CAVLC中使用之VLC表來編碼運程以寫碼sumRuns。換言之,加強層編碼器32可重新使用已由視訊編碼器20維持之VLC表中的一者。在其他例子中,加強層編碼器32可使用已由視訊編碼器20維持之其他VLC表中的一者來編碼運程。或者,加強層編碼器32可維持一經特定地設計以編碼加強層之係數向量之運程的單獨VLC表。在任一狀況下,加強層編碼器32可能不需要適應性地選擇VLC表以用於編碼運程。實情為,加強層編碼器32可使用單一VLC表,因此消除對一收集用以選擇VLC表之統計數據之第一一次操作的需要。After the EOB symbol for each coefficient, enhancement layer encoder 32 encodes the run before the current non-zero coefficient. As described above, the fortune represents the number of zero-valued coefficients that occur between the beginning of the previous non-zero coefficient or coefficient vector of the coefficient vector (in the case of the first non-zero coefficient) and the current non-zero coefficient. The enhancement layer encoder 32 can encode the motion using a single VLC table. In an example, when TotalCoeffs is equal to one, enhancement layer encoder 32 may encode the run to write code sumRuns using a VLC table used in CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard. In other words, the enhancement layer encoder 32 can reuse one of the VLC tables that have been maintained by the video encoder 20. In other examples, enhancement layer encoder 32 may encode the motion using one of the other VLC tables that have been maintained by video encoder 20. Alternatively, enhancement layer encoder 32 may maintain a separate VLC table that is specifically designed to encode the coefficients of the enhancement layer. In either case, enhancement layer encoder 32 may not need to adaptively select a VLC table for encoding the run. Instead, the enhancement layer encoder 32 can use a single VLC table, thus eliminating the need for a first operation to collect statistics for selecting a VLC table.

在每一係數之經編碼運程之後,加強層編碼器32編碼非零係數的正負號。加強層編碼器32可(例如)編碼"1"(若非零係數之正負號為正),且編碼"0"(若非零係數之正負號為負)。加強層編碼器32可藉由將非零係數之量值設定為一而調整非零係數的量值。在一些例子中,加強層編碼器32可能不編碼非零係數的量值。以此方式,加強層編碼器32可將非零係數之量值限制為一。目的地設備14接著經組態以解碼在精化中識別之所有非零係數以具有等於一的量值。不編碼加強層之係數之量值可導致峰值訊雜比(PSNR)之某一損耗,但減少用以編碼係數之位元的數目。The enhancement layer encoder 32 encodes the sign of the non-zero coefficient after the encoded run of each coefficient. The enhancement layer encoder 32 may, for example, encode "1" (if the sign of the non-zero coefficient is positive) and encode "0" (if the sign of the non-zero coefficient is negative). The enhancement layer encoder 32 can adjust the magnitude of the non-zero coefficients by setting the magnitude of the non-zero coefficients to one. In some examples, enhancement layer encoder 32 may not encode magnitudes of non-zero coefficients. In this manner, enhancement layer encoder 32 may limit the magnitude of the non-zero coefficients to one. Destination device 14 is then configured to decode all non-zero coefficients identified in the refinement to have a magnitude equal to one. The magnitude of the coefficients that do not encode the enhancement layer can result in some loss in peak signal to noise ratio (PSNR), but reduces the number of bits used to encode the coefficients.

以此方式,加強層編碼器32可(例如)在不知曉係數向量中之任何後續係數的情況下在單一一次操作中編碼加強層位元流的係數。由於加強層編碼器32並不需要分析係數向量(例如)以產生表示向量之一個以上非零係數的符號或選擇VLC表以編碼符號,所以僅執行一編碼一次操作。習知編碼器通常執行至少兩個一次操作;(1)分析係數向量之第一一次操作,及(2)基於分析編碼係數向量的第二一次操作。另外,加強層編碼器32可使用單一VLC表編碼加強層之係數,因此消除執行一用以形成用於適應性地選擇寫碼表之符號的編碼一次操作之需要。以此方式,加強層編碼器32可減少寫碼複雜性、寫碼延遲及記憶體要求。此外,本發明之熵寫碼技術可另外導致在不儲存並存取基礎層之係數資訊的情況下寫碼加強層之係數,從而進一步減少計算複雜性及記憶體要求。In this manner, enhancement layer encoder 32 may encode the coefficients of the enhancement layer bitstream in a single operation, for example, without knowing any subsequent coefficients in the coefficient vector. Since the enhancement layer encoder 32 does not need to analyze the coefficient vector (for example) to generate a symbol representing one or more non-zero coefficients of the vector or select a VLC table to encode the symbol, only one encoding once operation is performed. Conventional encoders typically perform at least two simultaneous operations; (1) analyzing the first operation of the coefficient vector, and (2) performing a second operation based on analyzing the coding coefficient vector. Additionally, enhancement layer encoder 32 may encode the coefficients of the enhancement layer using a single VLC table, thus eliminating the need to perform an encoding one operation to form a symbol for adaptively selecting a code table. In this manner, enhancement layer encoder 32 can reduce write code complexity, write code latency, and memory requirements. In addition, the entropy coding technique of the present invention can additionally result in writing coefficients of the code enhancement layer without storing and accessing coefficient information of the base layer, thereby further reducing computational complexity and memory requirements.

源設備12經由傳輸器22向目的地設備14傳輸經編碼之視訊資料。目的地設備14可包括接收器24、視訊解碼器26及顯示設備28。接收器24經由頻道16自源設備12接收經編碼之視訊位元流。如上所述,經編碼之視訊位元流包括一基礎層位元流及一或多個加強層位元流。視訊解碼器26解碼基礎層及(若可用)一或多個加強層以獲得視訊資料。Source device 12 transmits the encoded video material to destination device 14 via transmitter 22. Destination device 14 may include a receiver 24, a video decoder 26, and a display device 28. Receiver 24 receives the encoded video bitstream from source device 12 via channel 16. As described above, the encoded video bitstream includes a base layer bitstream and one or more enhancement layer bitstreams. Video decoder 26 decodes the base layer and, if available, one or more enhancement layers to obtain video material.

詳言之,視訊解碼器26包括一基礎層解碼器34及一加強層解碼器36。基礎層解碼器34解碼經由頻道16接收到之基礎層位元流以產生處於第一品質之視訊資料以供呈現於顯示設備28上。加強層解碼器36解碼一或多個加強層之位元流以獲得額外視訊資料(例如,精化),該額外視訊資料將經解碼之視訊資料之品質增加至第二較高品質。又,藉由目的地設備14接收到之加強層之數目(例如,一、二、三或三以上)可視頻道條件或其他限制而定。此外,藉由加強層解碼器36處理之接收到之加強層的數目可視解碼器限制而定。一般而言,與所選擇數目之加強層結合的基礎層之編碼及解碼准許經解碼視訊之SNR品質的增量改良。In detail, video decoder 26 includes a base layer decoder 34 and an enhancement layer decoder 36. Base layer decoder 34 decodes the base layer bitstream received via channel 16 to produce video material of the first quality for presentation on display device 28. The enhancement layer decoder 36 decodes the bitstream of one or more enhancement layers to obtain additional video material (e.g., refinement) that increases the quality of the decoded video material to a second, higher quality. Again, the number of enhancement layers (eg, one, two, three or more) received by destination device 14 may be subject to visual channel conditions or other restrictions. Moreover, the number of enhancement layers received by the enhancement layer decoder 36 can be determined by the decoder limitations. In general, the encoding and decoding of the base layer in combination with the selected number of enhancement layers permits incremental improvements in the SNR quality of the decoded video.

基礎層解碼器34解碼基礎層以獲得表示基礎層之經量化剩餘係數之向量的符號。基礎層解碼器34可解碼基礎層以獲得區塊中之非零係數的總數、區塊之尾隨的1的數目、尾隨的1之正負號、除尾隨的1外之係數的量值、所有運程之和及非零係數中之每一者之前的運程。基礎層解碼器34可進一步解碼基礎層位元流以識別用於解碼基礎層符號的VLC表。在其他例子中,基礎層解碼器34可基於先前解碼之符號而選擇VLC表以供使用。使用經解碼之符號,基礎層解碼器34可重建基礎層的係數向量。The base layer decoder 34 decodes the base layer to obtain a symbol representing the vector of the quantized residual coefficients of the base layer. The base layer decoder 34 can decode the base layer to obtain the total number of non-zero coefficients in the block, the number of trailing 1s of the block, the trailing 1 sign, the magnitude of the coefficient other than the trailing 1 , all the fortune The sum of the sum and the non-zero coefficients before the fortune. Base layer decoder 34 may further decode the base layer bitstream to identify a VLC table for decoding base layer symbols. In other examples, base layer decoder 34 may select a VLC table for use based on previously decoded symbols. Using the decoded symbols, base layer decoder 34 may reconstruct the coefficient vectors of the base layer.

加強層解碼器36解碼加強層之位元流以獲得(例如)呈額外剩餘係數之向量或對現有剩餘係數之精化形式的加強層之精化。詳言之,加強層解碼器36使用與藉由加強層編碼器32使用之VLC表相同的VLC表解碼加強層係數之運程及正負號,直至EOB符號指示不再殘餘非零係數為止。使用經解碼之符號,加強層解碼器36重建加強層區塊的係數向量。The enhancement layer decoder 36 decodes the bitstream of the enhancement layer to obtain, for example, a vector of additional residual coefficients or a refinement of the enhancement layer of the refined form of the existing residual coefficients. In particular, enhancement layer decoder 36 decodes the duration and sign of the enhancement layer coefficients using the same VLC table as the VLC table used by enhancement layer encoder 32 until the EOB symbol indicates that no non-zero coefficients are remaining. Using the decoded symbols, enhancement layer decoder 36 reconstructs the coefficient vector of the enhancement layer block.

解碼器34、36使用經解碼之經量化剩餘係數重建經寫碼單元之區塊中的每一者。在產生係數向量之後,解碼器34、36反向掃描係數向量以產生經量化剩餘係數之二維區塊。解碼器34、36逆量化(亦即,解量化)經量化剩餘係數且向經解量化之剩餘係數應用逆變換(例如,逆DCT、逆整數變換、逆小波變換或逆方向變換)以產生像素值的剩餘區塊。The decoder 34, 36 reconstructs each of the blocks of the coded unit using the decoded quantized residual coefficients. After generating the coefficient vector, the decoders 34, 36 inversely scan the coefficient vector to produce a two-dimensional block of quantized residual coefficients. The decoders 34, 36 inverse quantize (ie, dequantize) the quantized residual coefficients and apply an inverse transform (eg, inverse DCT, inverse integer transform, inverse wavelet transform, or inverse direction transform) to the dequantized residual coefficients to produce pixels. The remaining block of values.

解碼器34、36對藉由解碼器34、36產生之預測區塊與像素值之剩餘區塊求和,以分別形成經重建之基礎層視訊區塊及加強層視訊區塊。基礎層視訊區塊及加強層視訊區塊經組合以形成具有較高解析度的視訊區塊。解碼器34、36以與如上文關於編碼器30、32描述之方式相同的方式產生預測區塊。目的地設備14可經由顯示設備28將重建之視訊區塊顯示給使用者。顯示設備28可包含各種顯示設備中之任一者,諸如,陰極射線管(CRT)、液晶顯示器(LCD)、電漿顯示器、發光二極體(LED)顯示器、有機LED顯示器或另一類型顯示單元。The decoders 34, 36 sum the prediction blocks generated by the decoders 34, 36 and the remaining blocks of pixel values to form reconstructed base layer video blocks and enhancement layer video blocks, respectively. The base layer video block and the enhancement layer video block are combined to form a video block having a higher resolution. The decoders 34, 36 generate prediction blocks in the same manner as described above with respect to the encoders 30, 32. The destination device 14 can display the reconstructed video block to the user via the display device 28. Display device 28 can include any of a variety of display devices, such as a cathode ray tube (CRT), liquid crystal display (LCD), plasma display, light emitting diode (LED) display, organic LED display, or another type of display. unit.

在一些例子中,視訊編碼器20及視訊解碼器26經組態以提供可經任意截斷的可調節加強位元流。因此,系統10可避免使用必須整體進行寫碼之離散加強層以便達成可調節性。然而,在一些實施例中,系統10可經組態以(例如)在選擇性基礎上使用廣義精細粒度可調節性(FGS)方法或離散加強層來支援可調節性。In some examples, video encoder 20 and video decoder 26 are configured to provide an adjustable boost bit stream that can be arbitrarily truncated. Thus, system 10 can avoid the use of discrete enhancement layers that must be coded as a whole to achieve adjustability. However, in some embodiments, system 10 can be configured to support adjustability using, for example, a generalized fine grain size adjustability (FGS) method or a discrete enhancement layer on a selective basis.

源設備12及目的地設備14可以大體上對稱之方式來操作。舉例而言,源設備12及目的地設備14可各自包括視訊編碼及解碼組件。因此,系統10可支援設備12、14之間的(例如)用於視訊串流、視訊廣播或視訊電話之單向或雙向視訊傳輸。Source device 12 and destination device 14 can operate in a substantially symmetrical manner. For example, source device 12 and destination device 14 can each include a video encoding and decoding component. Thus, system 10 can support, for example, one-way or two-way video transmission between devices 12, 14 for video streaming, video broadcasting, or video telephony.

在一些態樣中,對於視訊廣播而言,本發明中所描述之技術可應用於經加強之H.264視訊寫碼以用於在使用僅前向鏈路(FLO)空中介面規範"用於地面行動多媒體多播之僅前向鏈路空中介面規範"(作為技術標準TIA-1099("FLO規範")在2007年7月發表)之地面行動多媒體多播(TM3)系統中遞送即時視訊服務。亦即,通信頻道16可包含用以根據FLO規範或其類似者而廣播無線視訊資訊之無線資訊頻道。FLO規範包括界定位元流語法及語義以及適於FLO空中介面之解碼過程的實例。In some aspects, for video broadcasting, the techniques described in this disclosure can be applied to enhanced H.264 video writing code for use in the Forward Link Only (FLO) Empty Intermediary Specification" Direct Forward Video Intermediary Specification for Terrestrial Mobile Multimedia Multicast ("Technical Standard TIA-1099 ("FLO Specification") published in July 2007) Ground Mobile Multimedia Multicast (TM3) System Delivers Instant Video Services . That is, communication channel 16 may include a wireless information channel for broadcasting wireless video information in accordance with the FLO specification or the like. The FLO specification includes an example of bounding meta-stream syntax and semantics and a decoding process suitable for FLO null interfacing.

或者,可根據諸如DVB-H(掌上型數位視訊廣播)、ISDB-T(地面整合服務數位廣播)或DMB(數位媒體廣播)之其他標準而廣播視訊。因此,源設備12可為行動無線終端機、視訊串流伺服器或視訊廣播伺服器。然而,本發明中描述之技術並不限於任何特定類型之廣播、多播或點對點系統。在廣播之狀況下,源設備12可將視訊資料之若干頻道廣播至多個目的地設備,其每一者可與圖1之目的地設備14類似。因此,雖然在圖1中展示單一目的地設備14,但對於視訊廣播而言,源設備12通常將同時向許多目的地設備廣播視訊內容。Alternatively, the video may be broadcast according to other standards such as DVB-H (Palm Digital Video Broadcasting), ISDB-T (Ground Integrated Services Digital Broadcasting), or DMB (Digital Media Broadcasting). Therefore, the source device 12 can be a mobile wireless terminal, a video streaming server, or a video broadcast server. However, the techniques described in this disclosure are not limited to any particular type of broadcast, multicast, or peer-to-peer system. In the broadcast condition, source device 12 may broadcast several channels of video material to a plurality of destination devices, each of which may be similar to destination device 14 of FIG. Thus, although a single destination device 14 is shown in FIG. 1, for video broadcasts, source device 12 will typically broadcast video content to many destination devices simultaneously.

在其他實例中,傳輸器22、通信頻道16及接收器24可經組態以根據任何有線或無線通信系統通信,該通信系統包括以下各者中之一或多者:乙太網路、電話(例如,POTS)、線纜、電力線及光纖系統及/或無線系統,該無線系統包含以下各物中之一或多者:分碼多向近接(CDMA或CDMA2000)通信系統、分頻多向近接(FDMA)系統、正交分頻多向(OFDM)近接系統、分時多向近接(TDMA)系統(諸如,GSM(全球行動通信系統)、GPRS(通用封包無線電服務)或EDGE(加強型資料GSM環境))、TETRA(地面中繼式無線電)行動電話系統、寬頻分碼多向近接(WCDMA)系統、高資料速率1xEV-DO(第一代演進唯資料)或1xEV-DO黃金多播系統、IEEE 402.18系統、MediaFLOTM 系統、DMB系統、DVB-H系統,或用於兩個或兩個以上設備之間的資料通信之另一方案。In other examples, transmitter 22, communication channel 16 and receiver 24 may be configured to communicate in accordance with any wired or wireless communication system, including one or more of the following: Ethernet, telephone (eg, POTS), cable, power line and fiber optic system and/or wireless system, the wireless system comprising one or more of the following: a code division multi-directional proximity (CDMA or CDMA2000) communication system, frequency division multidirectional Proximity (FDMA) system, orthogonal frequency division multi-directional (OFDM) proximity system, time-division multi-directional proximity (TDMA) system (such as GSM (Global System for Mobile Communications), GPRS (General Packet Radio Service) or EDGE (Enhanced) Data GSM environment)), TETRA (terrestrial relay radio) mobile phone system, broadband coded multi-directional proximity (WCDMA) system, high data rate 1xEV-DO (first generation evolutionary data) or 1xEV-DO gold multicast system, IEEE 402.18 system, the MediaFLO (TM) system, the system DMB, DVB-H system, or another scheme for data communication between the two or more devices.

視訊編碼器20及視訊解碼器26可各自實施為一或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、場可程式閘陣列(FPGA)、離散邏輯、軟體、硬體、韌體或其任何組合。視訊編碼器20及視訊解碼器26中之每一者可包括於一或多個編碼器或解碼器中,其任一者可在各別行動設備、用戶設備、廣播設備、伺服器或其類似者中整合為經組合編碼器/解碼器(CODEC)的部分。此外,源設備12及目的地設備14各自可包括用於傳輸及接收經編碼視訊之適當調變、解調變、頻率轉換、濾波及放大組件,如可適用地,包括足以支援無線通信的射頻(RF)無線組件及天線。然而,為易於說明,此等組件概括為圖1中之源設備12之傳輸器22及目的地設備14的接收器24。Video encoder 20 and video decoder 26 may each be implemented as one or more microprocessors, digital signal processors (DSPs), special application integrated circuits (ASICs), field programmable gate arrays (FPGAs), discrete logic, Software, hardware, firmware or any combination thereof. Each of video encoder 20 and video decoder 26 may be included in one or more encoders or decoders, any of which may be in a respective mobile device, user equipment, broadcast device, server, or the like. Integrated into a part of a combined encoder/decoder (CODEC). In addition, source device 12 and destination device 14 each may include appropriate modulation, demodulation, frequency conversion, filtering, and amplification components for transmitting and receiving encoded video, as applicable, including radio frequencies sufficient to support wireless communication. (RF) wireless components and antennas. However, for ease of illustration, such components are summarized as transmitter 22 of source device 12 and receiver 24 of destination device 14 in FIG.

圖3為進一步詳細地說明實例基礎層編碼器30及加強層編碼器32的方塊圖。在圖3之實例中,基礎層編碼器包括一預測單元33A、圖框儲存器35A、變換單元38A、量化單元40A、係數掃描單元41A、逆量化單元42A、逆變換單元44A、基礎層熵編碼器46及求和器48A及48B("求和器48")。將圖3中之不同特徵描繪為單元意欲突出所說明設備之不同功能態樣,且並不一定暗示此等單元必須藉由單獨硬體或軟體組件來實現。實情為,與一或多個單元相關聯之功能性可整合至共用或單獨硬體或軟體組件內。3 is a block diagram illustrating an example base layer encoder 30 and enhancement layer encoder 32 in further detail. In the example of FIG. 3, the base layer encoder includes a prediction unit 33A, a frame storage 35A, a transform unit 38A, a quantization unit 40A, a coefficient scanning unit 41A, an inverse quantization unit 42A, an inverse transform unit 44A, and a base layer entropy coding. 46 and summers 48A and 48B ("summer 48"). The various features in FIG. 3 are depicted as elements intended to highlight different functional aspects of the illustrated device and do not necessarily imply that such elements must be implemented by separate hardware or software components. Rather, the functionality associated with one or more units can be integrated into a shared or separate hardware or software component.

預測單元33A使用框內預測或框間預測產生預測區塊。預測區塊可為正被寫碼之當前視訊區塊的預測型式。如上所述,預測單元33A可基於與當前正在寫碼之區塊相同之圖框內之基礎層的一或多個先前編碼區塊而使用框內預測產生預測區塊。或者,預測單元可基於基礎層之一或多個相鄰圖框內之一或多個先前編碼區塊而使用框間預測而產生預測區塊。預測單元33A可自圖框儲存器35A提取先前編碼區塊。The prediction unit 33A generates a prediction block using intra-frame prediction or inter-frame prediction. The prediction block can be a prediction pattern of the current video block being coded. As described above, prediction unit 33A may generate prediction blocks using in-frame prediction based on one or more previously encoded blocks of the base layer within the same frame as the block currently being coded. Alternatively, the prediction unit may generate the prediction block using inter-frame prediction based on one or more of the previous coding blocks in one or more adjacent frames of the base layer. Prediction unit 33A may extract the previously encoded block from frame storage 35A.

在視訊區塊之基於框內或框間之預測之後,基礎層編碼器30藉由在求和器48A處自當前視訊區塊減去藉由預測單元33A產生之預測區塊而產生剩餘區塊。剩餘區塊包括量化當前視訊區塊之像素值與預測區塊的像素值之間的差之像素差值集合。剩餘區塊可以二維區塊格式(例如,像素值之二維矩陣或陣列)來表示。換言之,剩餘區塊為像素值的二維表示。After the intra-frame or inter-frame prediction of the video block, the base layer encoder 30 generates the remaining block by subtracting the prediction block generated by the prediction unit 33A from the current video block at the summer 48A. . The remaining block includes a set of pixel difference values that quantify the difference between the pixel values of the current video block and the pixel values of the predicted block. The remaining blocks may be represented in a two-dimensional block format (eg, a two-dimensional matrix or array of pixel values). In other words, the remaining blocks are two-dimensional representations of pixel values.

變換單元38A向剩餘區塊應用變換以產生剩餘變換係數。變換單元38A可(例如)應用DCT、整數變換、方向變換、小波變換或其組合。在向像素值之剩餘區塊應用變換之後,量化單元40A量化變換係數以進一步減少位元率。在量化之後,逆量化單元42A及逆變換單元44A可分別應用逆量化及逆變換以重建剩餘區塊。求和器48B將經重建之剩餘區塊與藉由預測單元33A產生之預測區塊相加以產生經重建的視訊區塊以供儲存於圖框儲存器35A中。儲存於圖框儲存器35A中之經重建之視訊區塊可由基礎層編碼器30之預測單元32來使用以框內或框間寫碼後續視訊區塊。另外,如以下將更詳細描述,儲存於圖框儲存器35A中之經重建之視訊區塊可由加強層編碼器32之預測單元33B使用以框內或框間寫碼加強層中之視訊區塊的精化。Transform unit 38A applies a transform to the remaining blocks to produce residual transform coefficients. Transform unit 38A may, for example, apply DCT, integer transform, direction transform, wavelet transform, or a combination thereof. After applying the transform to the remaining blocks of pixel values, quantization unit 40A quantizes the transform coefficients to further reduce the bit rate. After quantization, inverse quantization unit 42A and inverse transform unit 44A may apply inverse quantization and inverse transform, respectively, to reconstruct the remaining blocks. The summer 48B adds the reconstructed residual block to the predicted block generated by the prediction unit 33A to produce a reconstructed video block for storage in the frame storage 35A. The reconstructed video blocks stored in the frame store 35A can be used by the prediction unit 32 of the base layer encoder 30 to write subsequent video blocks in-frame or inter-frame. In addition, as will be described in more detail below, the reconstructed video block stored in the frame store 35A can be used by the prediction unit 33B of the enhancement layer encoder 32 to block the video blocks in the in-frame or inter-frame code enhancement layer. Refinement.

在量化之後,係數掃描單元41A將係數自二維區塊格式掃描為一維向量格式,該過程通常稱為係數掃描。係數掃描單元41A可(例如)使用如在圖7中進一步詳細描述之Z字形掃描次序來掃描係數之二維區塊。在掃描之後,基礎層熵編碼器46熵編碼一維向量的係數。基礎層編碼器46可(例如)使用如在H.264/MPEG-4部分10 AVC標準中界定且以上關於圖2詳細描述的CAVLC來熵編碼係數向量的係數。After quantization, the coefficient scanning unit 41A scans the coefficients from the two-dimensional block format into a one-dimensional vector format, which is generally referred to as coefficient scanning. The coefficient scanning unit 41A can scan the two-dimensional block of coefficients, for example, using a zigzag scan order as described in further detail in FIG. After scanning, the base layer entropy encoder 46 entropy encodes the coefficients of the one-dimensional vector. Base layer encoder 46 may entropy encode coefficients of coefficient vectors, for example, using CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard and described above in detail with respect to FIG.

加強層編碼器32包括一預測單元33B、圖框儲存器35B、變換單元38B、量化單元40B、係數掃描單元41B、逆量化單元42B、逆變換單元44B、一加強層熵編碼器49及求和器48C及48D("求和器48")。加強層編碼器32之單元大體上類似於基礎層編碼器30之經類似編號之彼等單元。因而,將僅描述差異。The enhancement layer encoder 32 includes a prediction unit 33B, a frame storage 35B, a transform unit 38B, a quantization unit 40B, a coefficient scanning unit 41B, an inverse quantization unit 42B, an inverse transform unit 44B, a boost layer entropy encoder 49, and summation. 48C and 48D ("Summer 48"). The elements of enhancement layer encoder 32 are substantially similar to similarly numbered units of base layer encoder 30. Thus, only the differences will be described.

加強層編碼器32之預測單元33B產生為當前視訊區塊之預測型式的預測區塊。不同於基礎層編碼器30之僅使用基礎層之先前編碼區塊產生預測區塊的預測單元33A,加強層編碼器32之預測單元33B可基於基礎層及加強層之一或多個先前編碼區塊而產生預測區塊。換言之,預測單元33B可使用來自基礎層之經重建視訊區塊及加強層之經重建視訊區塊而產生預測區塊。舉例而言,預測單元33B可組合基礎層之經重建視訊區塊與加強層之經重建區塊以產生處於第二較高品質的預測區塊。The prediction unit 33B of the enhancement layer encoder 32 generates a prediction block that is a prediction pattern of the current video block. Unlike the prediction unit 33A of the base layer encoder 30 that uses only the previous coding block of the base layer to generate the prediction block, the prediction unit 33B of the enhancement layer encoder 32 may be based on one or more previous coding regions of the base layer and the enhancement layer. The block produces a prediction block. In other words, prediction unit 33B can generate predicted blocks using reconstructed video blocks from the base layer and the reconstructed video blocks of the enhancement layer. For example, prediction unit 33B may combine the reconstructed blocks of the reconstructed video block and the enhancement layer of the base layer to produce a prediction block that is at a second higher quality.

因為藉由預測單元33B產生之預測區塊係基於基礎層及加強層兩者之經重建視訊區塊而產生,所以在求和器48C處產生之剩餘區塊表示當前視訊區塊與自基礎層及加強層建構(亦即,處於第二較高視覺品質)之先前編碼區塊之間的差。Since the prediction block generated by the prediction unit 33B is generated based on the reconstructed video blocks of both the base layer and the enhancement layer, the remaining blocks generated at the summer 48C represent the current video block and the self-base layer. And the difference between the previously coded blocks of the enhancement layer construction (ie, at the second higher visual quality).

雖然操作上類似於基礎層編碼器30之量化單元40A,但加強層編碼器32之量化單元40B可使用不同QP以量化變換係數。如上文關於圖2所描述,SNR可調節性可藉由使用不同量化參數而達成。舉例而言,當基礎層編碼器30及加強層編碼器32根據ITU-T H.264/MPEG-10 AVC操作時,量化單元40A可使用大於由量化單元40B使用之QP值的QP值而編碼視訊資料。結果,來自基礎層編碼器30之經量化之剩餘變換係數表示處於第一品質的視訊序列,且來自加強層編碼器32之經量化之剩餘變換係數表示額外係數或對視訊序列之現有係數的精化,該等額外係數或精化在與基礎層組合時將視訊序列之品質增加至第二較高視覺品質。此外,如關於圖2詳細描述,加強層熵編碼器49在單一編碼一次操作中編碼經量化之剩餘變換係數。換言之,加強層熵編碼器49可在不知曉係數向量之任何後續係數的情況下編碼加強層之係數向量的每一非零係數。在單一一次操作中寫碼加強層可消除執行一分析係數向量之第一一次操作及用於基於分析而寫碼係數向量的第二一次操作之需要。實情為,加強層熵編碼器49自係數向量之開始起始,且在單一編碼一次操作中逐一地編碼係數中的每一者。以下關於圖4描述關於加強層之熵編碼的更多細節。Although operatively similar to the quantization unit 40A of the base layer encoder 30, the quantization unit 40B of the enhancement layer encoder 32 may use different QPs to quantize the transform coefficients. As described above with respect to Figure 2, SNR adjustability can be achieved by using different quantization parameters. For example, when base layer encoder 30 and enhancement layer encoder 32 operate in accordance with ITU-T H.264/MPEG-10 AVC, quantization unit 40A may encode using a QP value that is greater than the QP value used by quantization unit 40B. Video material. As a result, the quantized residual transform coefficients from the base layer encoder 30 represent the video sequence at the first quality, and the quantized residual transform coefficients from the enhancement layer encoder 32 represent additional coefficients or fine coefficients of the existing coefficients of the video sequence. The additional coefficients or refinements increase the quality of the video sequence to a second, higher visual quality when combined with the base layer. Moreover, as described in detail with respect to FIG. 2, enhancement layer entropy encoder 49 encodes the quantized residual transform coefficients in a single coded one operation. In other words, the enhancement layer entropy encoder 49 may encode each non-zero coefficient of the coefficient vector of the enhancement layer without knowing any subsequent coefficients of the coefficient vector. Writing the code enhancement layer in a single operation eliminates the need for a first operation of performing an analysis coefficient vector and a second operation for writing a code coefficient vector based on the analysis. The fact is that the enhancement layer entropy encoder 49 starts at the beginning of the coefficient vector and encodes each of the coefficients one by one in a single encoding one operation. More details regarding the entropy coding of the enhancement layer are described below with respect to FIG.

圖4為進一步詳細地說明實例基礎層熵編碼器46及加強層熵編碼器49的方塊圖。基礎層熵編碼器46可包括一分析單元50、複數個VLC表52A至52N("VLC表52")、一總係數編碼器54、一尾隨的1(T1s)編碼器56、一正負號編碼器58、一係數量值編碼器60、一和運程編碼器62及一運程長度編碼器64。加強層熵編碼器49可包括一EOB符號編碼器66、一運程長度編碼器68、一正負號編碼器70及一VLC表69。4 is a block diagram illustrating an example base layer entropy encoder 46 and enhancement layer entropy encoder 49 in further detail. The base layer entropy encoder 46 may include an analysis unit 50, a plurality of VLC tables 52A to 52N ("VLC table 52"), a total coefficient encoder 54, a trailing 1 (T1s) encoder 56, and a positive and negative code. The controller 58, a coefficient magnitude encoder 60, a and forward encoder 62, and a run length encoder 64. The enhancement layer entropy encoder 49 may include an EOB symbol encoder 66, a run length encoder 68, a positive and negative encoder 70, and a VLC table 69.

基礎層熵編碼器46藉由執行多個編碼一次操作而編碼表示處於第一品質之視訊區塊的係數向量。根據如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC,例如,基礎層熵編碼器46可執行一分析係數向量以(例如)產生表示係數向量的符號及/或選擇VLC表之第一編碼一次操作及基於分析編碼係數向量的第二編碼一次操作。The base layer entropy encoder 46 encodes the coefficient vector representing the video block of the first quality by performing a plurality of encoding one operations. According to a CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard, for example, the base layer entropy encoder 46 may perform an analysis coefficient vector to, for example, generate a symbol representing a coefficient vector and/or select a VLC table. The first encoding one operation and the second encoding one operation based on analyzing the encoding coefficient vector.

作為一實例,基礎層熵編碼器46之分析單元50可分析係數向量以產生表示係數區塊之一或多個符號。分析單元50可(例如)根據H.264/MPEG-4部分10 AVC標準來判定區塊中之總係數的數目(TotalCoeff)、尾隨的1之數目(T1)、每一尾隨的1之正負號、每一非零係數的量值、運程之總和(sumRuns)及每一非零係數之前的運程長度。藉由分析單元50產生之符號中之至少一些(例如,TotalCoeff及sumRuns)可表示係數向量之全部係數。分析單元50在其他例子中可產生較多符號或較少符號。As an example, analysis unit 50 of base layer entropy encoder 46 may analyze the coefficient vector to produce one or more symbols representing the coefficient block. Analysis unit 50 may, for example, determine the number of total coefficients (TotalCoeff), the number of trailing 1s (T1), the number of each trailing 1 in accordance with the H.264/MPEG-4 Part 10 AVC standard. The magnitude of each non-zero coefficient, the sum of the operations (sumRuns), and the length of the run before each non-zero coefficient. At least some of the symbols produced by analysis unit 50 (eg, TotalCoeff and sumRuns) may represent all coefficients of the coefficient vector. Analysis unit 50 may generate more symbols or fewer symbols in other examples.

另外或或者,分析單元50在第一或後續編碼一次操作期間可選擇VLC表52之子集以用於編碼符號。在一態樣中,分析單元50可基於所產生之符號來選擇VLC表52的子集。或者,分析單元50可在係數向量之分析期間收集統計數據,基於收集到之統計數據而選擇VLC表52的子集。舉例而言,基礎層編碼器30可基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在編碼sumRuns符號時使用,因為在此等兩個值之間存在某一關係。如以下將詳細描述,基於所產生之符號或其他統計數據來選擇VLC表52之子集可能賦能更有效地編碼表示係數向量的符號。Additionally or alternatively, analysis unit 50 may select a subset of VLC tables 52 for encoding symbols during a first or subsequent encoding operation. In one aspect, analysis unit 50 can select a subset of VLC tables 52 based on the generated symbols. Alternatively, analysis unit 50 may collect statistical data during analysis of the coefficient vector and select a subset of VLC table 52 based on the collected statistical data. For example, base layer encoder 30 may select a VLC table based on the total number of coefficients in the block (TotalCoeffs) to use when encoding the sumRuns symbol because there is a relationship between these two values. As will be described in greater detail below, selecting a subset of VLC tables 52 based on the generated symbols or other statistical data may enable more efficient encoding of the symbols representing the coefficient vectors.

基礎層熵編碼器46在第二或其他後續寫碼一次操作期間編碼係數向量。詳言之,總係數編碼器54編碼係數向量中之非零係數的總數(TotalCoeff)。總係數編碼器54可使用基於當前係數向量之非零係數的數目之預測而選擇之VLC表52中的一者而編碼TotalCoeff。在一實例中,可基於一或多個先前編碼之視訊區塊(例如,上部鄰近視訊區塊及左側鄰近視訊區塊)之非零係數的數目而進行對當前係數向量之非零係數的數目之預測。以此方式,基礎層熵解碼器可基於先前解碼之區塊而選擇同一VLC表。Base layer entropy coder 46 encodes the coefficient vector during a second or other subsequent write code operation. In detail, the total coefficient encoder 54 encodes the total number of non-zero coefficients (TotalCoeff) in the coefficient vector. The total coefficient encoder 54 may encode TotalCoeff using one of the VLC tables 52 selected based on the prediction of the number of non-zero coefficients of the current coefficient vector. In an example, the number of non-zero coefficients for the current coefficient vector may be based on the number of non-zero coefficients of one or more previously encoded video blocks (eg, upper adjacent video blocks and left adjacent video blocks) Forecast. In this way, the base layer entropy decoder can select the same VLC table based on previously decoded blocks.

在總係數編碼器54編碼非零係數之總數之後,T1s編碼器56編碼T1s符號。T1s編碼器56可(例如)以與以上關於總係數編碼器54描述之方式相同之方式使用基於非零係數之經預測數目選擇的VLC表52中之一者來編碼T1s符號。After the total coefficient encoder 54 encodes the total number of non-zero coefficients, the T1s encoder 56 encodes the T1s symbol. The T1s encoder 56 may encode the T1s symbol, for example, using one of the VLC tables 52 based on the predicted number of non-zero coefficients, in the same manner as described above with respect to the total coefficient encoder 54.

正負號編碼器58編碼任何尾隨的1的正負號。舉例而言,對於尾隨的1中之每一者而言,正負號編碼器58可編碼"1"(若尾隨的1之正負號為正),且編碼"0"(若尾隨的1之正負號為負)。係數量值編碼器60編碼除尾隨的1外之非零係數的位準(例如,量值)。係數量值編碼器60可使用VLC表、固定長度寫碼或其他類型熵寫碼來編碼非零係數的位準。The sign encoder 58 encodes the sign of any trailing ones. For example, for each of the trailing ones, the sign encoder 58 may encode "1" (if the trailing 1 sign is positive) and encode "0" (if the trailing 1 is positive or negative) The number is negative). The system value encoder 60 encodes the level (e.g., magnitude) of the non-zero coefficient other than the trailing one. The system value encoder 60 may encode the level of non-zero coefficients using a VLC table, a fixed length write code, or other type of entropy write code.

運程和編碼器62可編碼表示在最後非零係數之前在係數向量中發生的零值係數之數目的符號,亦即sumRuns符號。運程和編碼器62使用基於區塊中之係數之總數(TotalCoeffs)選擇之VLC表52中的一者而編碼sumRuns符號。又,基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在編碼sumRuns符號時使用可允許運程和編碼器62選擇更有效地編碼sumRuns的VLC表。The transport and encoder 62 may encode a symbol representing the number of zero-valued coefficients occurring in the coefficient vector before the last non-zero coefficient, i.e., the sumRuns symbol. The run and encoder 62 encodes the sumRuns symbol using one of the VLC tables 52 selected based on the total number of coefficients in the block (TotalCoeffs). Again, the VLC table is selected based on the total number of coefficients in the block (TotalCoeffs) to use the allowable run and encoder 62 to select a VLC table that more efficiently encodes the sumRuns when encoding the sumRuns symbol.

運程長度編碼器64編碼係數向量之運程長度。運程長度編碼器64可首先編碼係數向量之最後非零係數的運程長度,繼之以前一非零係數的運程長度等,直至編碼係數向量之第一非零係數之前的運程長度為止。換言之,運程長度編碼器可以首先開始編碼最後的運程長度。運程長度編碼器64可使用基於係數向量之總運程之和(sumRuns)及迄今為止經寫碼之運程之和選擇之VLC表52而編碼運程長度中的每一者。作為一實例,若係數向量具有為八之運程和(sumRuns),且在編碼之最後非零係數之前編碼的運程為六,則所有殘餘運程必須為零、一或二。因為可能之運程長度隨著每一額外運程經編碼而逐漸變短,所以運程長度編碼器64可選擇更有效之VLC表以減少用以表示運程的位元之數目。以此方式,由運程長度編碼器64使用之VLC表52對於運程長度中之每一者而言可變。The run length encoder 64 encodes the run length of the coefficient vector. The run length encoder 64 may first encode the run length of the last non-zero coefficient of the coefficient vector, followed by the run length of the previous non-zero coefficient, etc., up to the run length before the first non-zero coefficient of the coding coefficient vector. In other words, the run length encoder can first start encoding the last run length. The run length encoder 64 may encode each of the run lengths using a sum of the sum of the coefficient vectors (sumRuns) and the VLC table 52 selected by the sum of the coded runs to date. As an example, if the coefficient vector has a runsum sum (sumRuns) and the run length encoded before the last non-zero coefficient of the code is six, then all residual runs must be zero, one, or two. Since the length of the possible path is gradually shortened as each additional process is encoded, the run length encoder 64 may select a more efficient VLC table to reduce the number of bits used to represent the run. In this manner, the VLC table 52 used by the run length encoder 64 is variable for each of the operational lengths.

加強層熵編碼器49在單一編碼一次操作中編碼表示(例如)呈額外係數或對現有係數的精化形式的對視訊區塊之精化之係數向量以形成加強層。如將進一步詳細描述,源設備12在一些例子中可在不知曉任何後續係數的情況下編碼加強層之係數向量中的每一非零係數。加強層熵編碼器49可自係數向量之開始起始,且在單一編碼一次操作中逐一編碼係數中的每一者。以此方式,加強層編碼器49在不分析在係數向量中稍後發生之係數的情況下在逐係數基礎上編碼係數向量。在單一一次操作中寫碼加強層可消除執行一分析係數向量之第一一次操作及用於基於分析而寫碼係數向量的第二一次操作之需要。The enhancement layer entropy coder 49 encodes a coefficient vector representing the refinement of the video block, for example, in the form of an additional coefficient or a refined form of the existing coefficients, in a single coded one operation to form a enhancement layer. As will be described in further detail, source device 12 may, in some examples, encode each non-zero coefficient in the coefficient vector of the enhancement layer without knowing any subsequent coefficients. The enhancement layer entropy coder 49 may begin at the beginning of the coefficient vector and encode each of the coefficients one by one in a single coded one operation. In this way, the enhancement layer encoder 49 encodes the coefficient vector on a coefficient-by-coefficient basis without analyzing the coefficients occurring later in the coefficient vector. Writing the code enhancement layer in a single operation eliminates the need for a first operation of performing an analysis coefficient vector and a second operation for writing a code coefficient vector based on the analysis.

對於非零係數中之每一者而言,EOB符號編碼器66編碼一指示在係數向量中存在至少一殘餘非零係數的EOB符號。舉例而言,EOB符號編碼器66在存在至少一殘餘非零係數(例如,至少當前非零係數)時可編碼零,且在不再存在殘餘非零係數時可編碼一。For each of the non-zero coefficients, EOB symbol encoder 66 encodes an EOB symbol indicating the presence of at least one residual non-zero coefficient in the coefficient vector. For example, EOB symbol encoder 66 may encode zero when there is at least one residual non-zero coefficient (eg, at least the current non-zero coefficient), and may encode one when there are no more residual non-zero coefficients.

在編碼每一係數之EOB符號之後,運程長度編碼器68編碼非零係數之前的運程長度。如上所述,運程長度表示先於當前非零係數之零值係數的數目。運程長度編碼器68可使用單一VLC表69來編碼運程長度。在一例子中,VLC表69可與基礎層熵編碼器46之VLC表52中的一者相同。或者,運程長度編碼器68可維持一經特定地設計以編碼加強層之係數向量之運程的單獨VLC表。在任一狀況下,運程長度編碼器68可能不需要適應性地選擇VLC表以用於編碼運程。實情為,運程長度編碼器68可使用單一VLC表,因此消除對一收集用以選擇VLC表之統計數據之第一一次操作的需要。After encoding the EOB symbol for each coefficient, the run length encoder 68 encodes the run length before the non-zero coefficient. As described above, the run length represents the number of zero value coefficients prior to the current non-zero coefficient. The run length encoder 68 can encode the run length using a single VLC table 69. In an example, the VLC table 69 can be the same as one of the VLC tables 52 of the base layer entropy encoder 46. Alternatively, the run length encoder 68 may maintain a separate VLC table that is specifically designed to encode the coefficients of the enhancement layer. In either case, the run length encoder 68 may not need to adaptively select a VLC table for encoding the run. Rather, the run length encoder 68 can use a single VLC table, thus eliminating the need for a first operation to collect statistics for selecting a VLC table.

在每一係數之經編碼的運程長度之後,正負號編碼器70編碼非零係數的正負號。正負號編碼器70可(例如)編碼"1"(若非零係數之正負號為正),且編碼"0"(若非零係數之正負號為負)。加強層熵編碼器49可能不編碼加強層之非零係數之量值,其可導致峰值訊雜比(PSNR)之某一損耗,但減少用以編碼係數之位元的數目。After the encoded run length of each coefficient, the sign encoder 70 encodes the sign of the non-zero coefficient. The sign encoder 70 can, for example, encode "1" (if the sign of the non-zero coefficient is positive) and encode "0" (if the sign of the non-zero coefficient is negative). The enhancement layer entropy coder 49 may not encode the magnitude of the non-zero coefficients of the enhancement layer, which may result in some loss in peak signal to noise ratio (PSNR), but reduce the number of bits used to encode the coefficients.

本發明之熵寫碼技術可允許加強層熵編碼器49在單一一次操作中編碼加強層位元流的係數。由於加強層熵編碼器49並不分析係數向量(例如)以產生符號及/或選擇VLC表,所以僅需要一編碼一次操作。習知編碼器通常執行至少兩個一次操作;(1)分析係數向量之第一一次操作,及(2)基於分析編碼係數向量的第二一次操作。另外,加強層熵編碼器49可使用單一VLC表編碼加強層之係數,因此消除執行一用以自各種VLC表做出選擇的編碼一次操作之需要。以此方式,加強層熵編碼器49可減少寫碼複雜性、寫碼延遲及記憶體要求。此外,本發明之熵寫碼技術可另外導致在不儲存並存取基礎層之係數資訊的情況下寫碼加強層之係數,從而進一步減少計算複雜性及記憶體要求。The entropy coding technique of the present invention may allow the enhancement layer entropy encoder 49 to encode the coefficients of the enhancement layer bitstream in a single operation. Since the enhancement layer entropy encoder 49 does not analyze the coefficient vector (for example) to generate symbols and/or select a VLC table, only one encoding operation is required. Conventional encoders typically perform at least two simultaneous operations; (1) analyzing the first operation of the coefficient vector, and (2) performing a second operation based on analyzing the coding coefficient vector. In addition, enhancement layer entropy encoder 49 may encode the coefficients of the enhancement layer using a single VLC table, thus eliminating the need to perform a coded one operation to make selections from various VLC tables. In this manner, the enhancement layer entropy encoder 49 can reduce write code complexity, write code latency, and memory requirements. In addition, the entropy coding technique of the present invention can additionally result in writing coefficients of the code enhancement layer without storing and accessing coefficient information of the base layer, thereby further reducing computational complexity and memory requirements.

圖5為進一步詳細地說明基礎層解碼器34及加強層解碼器36之實例的方塊圖。基礎層解碼器34包括一基礎層熵解碼器72、係數掃描單元74A、逆量化單元76A、逆變換單元78A、預測單元80A、圖框儲存器82A及求和器84A。加強層解碼器36包括一加強層熵解碼器86、係數掃描單元74B、逆量化單元76B、逆變換單元78B、預測單元80B、圖框儲存器82B及求和器84B。FIG. 5 is a block diagram illustrating an example of the base layer decoder 34 and the enhancement layer decoder 36 in further detail. The base layer decoder 34 includes a base layer entropy decoder 72, a coefficient scanning unit 74A, an inverse quantization unit 76A, an inverse transform unit 78A, a prediction unit 80A, a frame storage 82A, and a summer 84A. The enhancement layer decoder 36 includes a enhancement layer entropy decoder 86, a coefficient scanning unit 74B, an inverse quantization unit 76B, an inverse transform unit 78B, a prediction unit 80B, a frame storage 82B, and a summer 84B.

基礎層熵解碼器72解碼接收到之基礎層位元流以產生處於第一品質之視訊資料以供呈現於顯示設備上。基礎層熵解碼器72接收基礎層位元流且解碼基礎層位元流以獲得(例如,呈經量化剩餘係數之一維向量形式之)剩餘資訊及(例如,呈一或多個標頭語法要素形式的)標頭資訊。基礎層熵解碼器72執行藉由圖3及圖4之基礎層熵編碼器46執行之編碼的互逆解碼功能。The base layer entropy decoder 72 decodes the received base layer bitstream to generate video material of the first quality for presentation on the display device. The base layer entropy decoder 72 receives the base layer bitstream and decodes the base layer bitstream to obtain (eg, in the form of one of the quantized residual coefficients) the remaining information and (eg, in one or more header syntax) Header information in the form of features. The base layer entropy decoder 72 performs the reciprocal decoding function of the encoding performed by the base layer entropy encoder 46 of FIGS. 3 and 4.

詳言之,基礎層熵解碼器72解碼基礎層以獲得表示基礎層之經量化剩餘係數之向量的符號。在使用如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC進行寫碼時,例如,基礎層熵解碼器72可解碼基礎層以獲得區塊中之非零係數的總數(TotalCoeff)、區塊之尾隨的l的數目(Tls)、尾隨的l之正負號、除尾隨的l外之係數的量值、所有運程之和(sumRuns)及非零係數中之每一者之前的運程。在一些例子中,針對解碼選擇之VLC表可基於先前解碼之區塊或當前區塊之先前解碼符號來選擇。在其他例子中,基礎層熵解碼器34可解碼基礎層位元流以識別用於解碼基礎層符號的VLC表。使用經解碼之符號,基礎層解碼器34可重建基礎層的係數向量。In particular, the base layer entropy decoder 72 decodes the base layer to obtain a symbol representing the vector of the quantized residual coefficients of the base layer. When writing using CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard, for example, the base layer entropy decoder 72 may decode the base layer to obtain the total number of non-zero coefficients in the block (TotalCoeff). The number of trailing l (Tls) of the block, the sign of the trailing l, the magnitude of the coefficient other than the trailing l, the sum of all the operations (sumRuns), and the foreman before the non-zero coefficient . In some examples, the VLC table selected for decoding may be selected based on previously decoded blocks or previously decoded symbols of the current block. In other examples, base layer entropy decoder 34 may decode the base layer bitstream to identify a VLC table for decoding base layer symbols. Using the decoded symbols, base layer decoder 34 may reconstruct the coefficient vectors of the base layer.

在產生係數向量之後,係數掃描單元74A反向掃描係數向量以產生經量化剩餘係數之二維區塊。逆量化單元76A逆量化(亦即,解量化)經量化剩餘係數,且逆變換單元78A向經解量化之剩餘係數應用逆變換(例如,逆DCT、逆整數變換、逆小波變換或逆方向變換)以產生像素值的剩餘區塊。After generating the coefficient vector, coefficient scanning unit 74A inversely scans the coefficient vector to produce a two-dimensional block of quantized residual coefficients. Inverse quantization unit 76A inverse quantizes (i.e., dequantizes) the quantized residual coefficients, and inverse transform unit 78A applies an inverse transform to the dequantized residual coefficients (e.g., inverse DCT, inverse integer transform, inverse wavelet transform, or inverse direction transform). ) to generate the remaining blocks of pixel values.

預測單元80A在框內預測的狀況下使用共同圖框內之一或多個相鄰區塊或在框間預測的狀況下使用相鄰圖框內之一或多個區塊來產生預測區塊。預測單元僅使用來自基礎層之先前編碼區塊而產生預測區塊。求和器84A對藉由預測單元80A產生之預測區塊與像素值之剩餘區塊求和以形成經重建的基礎層視訊區塊。將基礎層視訊區塊儲存於圖框儲存器82A內以用於產生後續預測區塊。Prediction unit 80A uses one or more neighboring blocks within a common frame or one or more blocks within an adjacent frame to generate a predicted block in the case of intra-frame prediction or in the case of inter-frame prediction. . The prediction unit generates the prediction block using only the previous coding block from the base layer. Summer 84A sums the prediction blocks generated by prediction unit 80A and the remaining blocks of pixel values to form a reconstructed base layer video block. The base layer video block is stored in the frame store 82A for use in generating subsequent predicted blocks.

加強層解碼器36解碼加強層之位元流以獲得(例如)呈額外剩餘係數之向量或對現有剩餘係數之精化形式的對視訊資料之精化。加強層熵解碼器86使用與藉由加強層熵編碼器49使用之VLC表相同的VLC表解碼加強層係數之運程及正負號,直至EOB符號指示不再殘餘非零係數為止。使用經解碼之符號,加強層熵解碼器86重建加強層區塊的係數向量。經解碼之係數向量表示額外位元,該等額外位元表示在與基礎層之位元組合時使經解碼之視訊資料品質增加至第二較高品質的精化。The enhancement layer decoder 36 decodes the bitstream of the enhancement layer to obtain, for example, a vector of additional residual coefficients or refinement of the video material in refined form of the existing residual coefficients. The enhancement layer entropy decoder 86 decodes the duration and sign of the enhancement layer coefficients using the same VLC table as the VLC table used by the enhancement layer entropy encoder 49 until the EOB symbol indicates that the non-zero coefficients are no longer residual. Using the decoded symbols, the enhancement layer entropy decoder 86 reconstructs the coefficient vectors of the enhancement layer blocks. The decoded coefficient vector represents additional bits that represent the refinement of the decoded video material quality to a second, higher quality when combined with the bits of the base layer.

在產生係數向量之後,係數掃描單元74B反向掃描係數向量以產生經量化剩餘係數之二維區塊。逆量化單元76B逆量化(亦即,解量化)經量化剩餘係數,且逆變換單元78B向經解量化之剩餘係數應用逆變換(例如,逆DCT、逆整數變換、逆小波變換或逆方向變換)以產生像素值的剩餘區塊。After generating the coefficient vector, coefficient scanning unit 74B inversely scans the coefficient vector to produce a two-dimensional block of quantized residual coefficients. Inverse quantization unit 76B inverse quantizes (ie, dequantizes) the quantized residual coefficients, and inverse transform unit 78B applies an inverse transform to the dequantized residual coefficients (eg, inverse DCT, inverse integer transform, inverse wavelet transform, or inverse direction transform). ) to generate the remaining blocks of pixel values.

預測單元80B在框內預測的狀況下使用共同圖框內之一或多個相鄰區塊或在框間預測的狀況下使用相鄰圖框內之一或多個區塊來產生預測區塊。預測單元使用來自基礎層及加強層兩者之先前編碼區塊而產生預測區塊。求和器84B對藉由預測單元80B產生之預測區塊與像素值之剩餘區塊求和以形成經重建的加強層視訊區塊。將加強層視訊區塊儲存於圖框儲存器82B內以藉由預測單元80B用於產生後續預測區塊。在求和器84C處組合經重建之基礎層視訊區塊與經重建之加強層視訊區塊以形成具有較高品質的視訊區塊。Prediction unit 80B uses one or more neighboring blocks within a common frame or one or more blocks within an adjacent frame to generate a predicted block in the case of intra-frame prediction or in the case of inter-frame prediction. . The prediction unit generates prediction blocks using previously encoded blocks from both the base layer and the enhancement layer. Summer 84B sums the prediction block generated by prediction unit 80B with the remaining blocks of pixel values to form a reconstructed enhancement layer video block. The enhancement layer video block is stored in the frame store 82B for use by the prediction unit 80B for generating subsequent prediction blocks. The reconstructed base layer video block and the reconstructed enhancement layer video block are combined at summer 84C to form a higher quality video block.

圖6為進一步詳細地說明實例基礎層熵解碼器72及加強層熵解碼器86的方塊圖。基礎層熵解碼器72可包括複數個VLC表52A至52N("VLC表52")、一總係數解碼器90、一尾隨的1(T1s)解碼器92、一正負號解碼器94、一係數量值解碼器96、一和運程解碼器98及一運程長度解碼器100。加強層熵解碼器86可包括一EOB符號解碼器102、一運程長度解碼器104、一正負號解碼器106及一VLC表69。6 is a block diagram illustrating an example base layer entropy decoder 72 and enhancement layer entropy decoder 86 in further detail. Base layer entropy decoder 72 may include a plurality of VLC tables 52A through 52N ("VLC Table 52"), a total coefficient decoder 90, a trailing 1 (T1s) decoder 92, a sign decoder 94, a coefficient. A magnitude decoder 96, a and a range decoder 98, and a run length decoder 100. The enhancement layer entropy decoder 86 may include an EOB symbol decoder 102, a run length decoder 104, a sign decoder 106, and a VLC table 69.

基礎層熵解碼器72解碼基礎層位元流以獲得表示處於基本品質等級之視訊區塊之係數向量的符號。總係數解碼器90使用VLC表52中之一者解碼位元流以獲得係數向量中之非零係數的總數(TotalCoeff)。總係數解碼器90可基於對當前係數向量之非零係數之數目的預測(例如,基於一或多個先前解碼之視訊區塊之非零係數的數目)而選擇用於解碼TotalCoeff的VLC表52。以此方式,總係數解碼器90可選擇與由總係數編碼器54使用之VLC表相同的VLC表52來編碼TotalCoeff符號。The base layer entropy decoder 72 decodes the base layer bitstream to obtain symbols representing the coefficient vectors of the video blocks at the base quality level. The total coefficient decoder 90 decodes the bit stream using one of the VLC tables 52 to obtain the total number of non-zero coefficients (TotalCoeff) in the coefficient vector. The total coefficient decoder 90 may select the VLC table 52 for decoding TotalCoeff based on the prediction of the number of non-zero coefficients of the current coefficient vector (eg, based on the number of non-zero coefficients of the one or more previously decoded video blocks). . In this manner, total coefficient decoder 90 may select the same VLC table 52 as the VLC table used by total coefficient encoder 54 to encode the TotalCoeff symbol.

在總係數解碼器90解碼非零係數之總數之後,T1s解碼器92解碼T1s符號。T1s符號表示具有為一之量值之係數的數目,在以倒序讀取係數向量時,在遇到具有大於一之量值的係數之前遇到該等係數。T1s解碼器92可使用基於非零係數之預測數目所選擇之VLC表52中的一者來解碼T1s符號。After the total coefficient decoder 90 decodes the total number of non-zero coefficients, the T1s decoder 92 decodes the T1s symbols. The T1s symbol represents the number of coefficients having a magnitude of one, and when the coefficient vector is read in reverse order, the coefficients are encountered before encountering coefficients having magnitudes greater than one. The T1s decoder 92 may decode the T1s symbol using one of the VLC tables 52 selected based on the predicted number of non-zero coefficients.

正負號解碼器94解碼任何尾隨的1的正負號。舉例而言,正負號解碼器94對於尾隨的1中之每一者而言在接收到"1"時可判定係數之正負號為正,且在接收到"0"時可判定係數之正負號為負。係數量值解碼器96解碼除尾隨的1外之非零係數的量值。係數量值解碼器96可使用VLC表、固定長度寫碼或其他類型熵寫碼來解碼非零係數的位準。The sign decoder 94 decodes any trailing sign of 1. For example, the sign decoder 94 can determine that the sign of the coefficient is positive when receiving "1" for each of the trailing ones, and can determine the sign of the coefficient when "0" is received. Negative. The system value decoder 96 decodes the magnitude of the non-zero coefficient other than the trailing one. The system value decoder 116 may use a VLC table, a fixed length write code, or other type of entropy write code to decode the level of non-zero coefficients.

運程和解碼器98可解碼表示在最後非零係數之前在係數向量中發生的零值係數之數目的符號,亦即sumRuns符號。運程和解碼器98使用基於區塊中之係數的總數(TotalCoeffs)選擇之VLC表52中的一者而解碼sumRuns符號,區塊中之係數之總數(TotalCoeff)藉由總係數解碼器90進行先前解碼。又,基於區塊中之係數之總數(TotalCoeffs)選擇VLC表以在解碼sumRuns符號時使用可允許運程和解碼器98選擇更有效地解碼sumRuns的VLC表。The transport and decoder 98 may decode the symbols representing the number of zero-valued coefficients occurring in the coefficient vector before the last non-zero coefficient, i.e., the sumRuns symbol. The transport and decoder 98 decodes the sumRuns symbol using one of the VLC tables 52 selected based on the total number of coefficients in the block (TotalCoeffs), and the total number of coefficients (TotalCoeff) in the block is previously performed by the total coefficient decoder 90. decoding. Again, the VLC table is selected based on the total number of coefficients in the block (TotalCoeffs) to use the allowable run and decoder 98 to select a VLC table that more efficiently decodes the sumRuns when decoding the sumRuns symbols.

運程長度解碼器100解碼係數向量之運程長度。運程長度解碼器100可首先解碼係數向量之最後非零係數的運程長度,繼之以前一非零係數的運程長度等,直至解碼係數向量之第一非零係數之前的運程長度為止。換言之,運程長度解碼器100可以首先開始解碼最後運程長度。運程長度解碼器100可使用基於係數向量之總運程之和(sumRuns)及迄今為止經寫碼之運程之和選擇之VLC表52而解碼運程長度中的每一者。運程和解碼器98先前解碼sumRuns符號。然而,運程長度解碼器100可收集關於迄今為止經解碼之運程之和的統計數據。因為可能之運程長度隨著每一額外運程經解碼而逐漸變短,所以運程長度解碼器100可選擇更有效之VLC表以減少用以表示運程的位元之數目。 以此方式,由運程長度解碼器100使用之VLC表52對於運程長度中之每一者而言可變。The run length decoder 100 decodes the run length of the coefficient vector. The run length decoder 100 may first decode the run length of the last non-zero coefficient of the coefficient vector, followed by the run length of the previous non-zero coefficient, etc., until the run length before the first non-zero coefficient of the coefficient vector is decoded. In other words, the run length decoder 100 may first begin decoding the last run length. The run length decoder 100 may decode each of the run lengths using a sum of the sum of the coefficient vectors (sumRuns) and the VLC table 52 selected by the sum of the coded runs to date. The transport and decoder 98 previously decoded the sumRuns symbol. However, the run length decoder 100 may collect statistics on the sum of the decoded passes so far. Since the length of the possible run length becomes shorter as each additional run is decoded, the run length decoder 100 can select a more efficient VLC table to reduce the number of bits used to represent the run. In this manner, the VLC table 52 used by the run length decoder 100 is variable for each of the operational lengths.

加強層熵解碼器86解碼加強層之位元流以獲得(例如)呈額外係數之向量或對現有係數之精化形式的對視訊區塊之精化。EOB符號解碼器102判定EOB符號是否指示是否存在至少一殘餘非零係數。在存在至少一殘餘非零係數時,運程長度解碼器104解碼下一非零係數之前的運程長度。運程長度解碼器104可使用與藉由運程長度編碼器68使用之VLC表相同的VLC表69來解碼下一非零係數的運程長度。正負號解碼器106解碼非零係數之正負號。舉例而言,正負號解碼器106可判定係數之正負號為正(在接收到"1"時),及為負(在接收到"0"時)。加強層熵解碼器86繼續解碼非零係數,直至EOB符號解碼器102指示不存在殘餘非零係數為止。The enhancement layer entropy decoder 86 decodes the bitstream of the enhancement layer to obtain, for example, a vector of additional coefficients or refinement of the video block for the refined form of the existing coefficients. The EOB symbol decoder 102 determines if the EOB symbol indicates whether there is at least one residual non-zero coefficient. The run length decoder 104 decodes the run length before the next non-zero coefficient when there is at least one residual non-zero coefficient. The run length decoder 104 can decode the run length of the next non-zero coefficient using the same VLC table 69 as the VLC table used by the run length encoder 68. The sign decoder 106 decodes the sign of the non-zero coefficient. For example, the sign decoder 106 can determine that the sign has a positive sign (when "1" is received) and a negative (when "0" is received). The enhancement layer entropy decoder 86 continues to decode the non-zero coefficients until the EOB symbol decoder 102 indicates that there are no residual non-zero coefficients.

圖7為說明4x4係數區塊40之Z字形掃描的概念圖。展示於圖7中之Z字形掃描可藉由圖2之編碼器30、32來實施。展示於圖7中之此Z字形掃描之掃描次序遵循通過視訊區塊110的箭頭,且在掃描次序中以係數c1至c16來標註。詳言之,展示於圖7中之數值指示係數在順序一維向量內的位置,且並不表示係數的實際值。說明於圖7中之Z字形掃描的結果為一維係數向量X ,其中X =[c1,c2,c3,c4,c5,c6,c7,c8,c9,c10,c11,c12,c13,c14,c15,c16]其中c1至c16表示係數之二維陣列內的係數位置。FIG. 7 is a conceptual diagram illustrating a zigzag scan of a 4x4 coefficient block 40. The zigzag scan shown in Figure 7 can be implemented by the encoders 30, 32 of Figure 2. The scan order of this zigzag scan shown in Figure 7 follows the arrows passing through the video block 110 and is labeled with coefficients c1 through c16 in the scan order. In particular, the values shown in Figure 7 indicate the position of the coefficients within the sequential one-dimensional vector and do not represent the actual values of the coefficients. The result of the zigzag scan illustrated in Fig. 7 is a one-dimensional coefficient vector X , where X = [c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, C15, c16] where c1 to c16 represent the position of the coefficients within the two-dimensional array of coefficients.

本發明之技術並不限於任何特定掃描次序或技術。舉例而言,本發明中使用之掃描次序可為展示於圖7中的Z字形掃描次序。或者,本發明中使用之掃描次序可為其他掃描次序,諸如,水平掃描、垂直掃描或任何其他掃描技術。The techniques of this disclosure are not limited to any particular scanning order or technique. For example, the scan order used in the present invention may be the zigzag scan order shown in FIG. Alternatively, the scan order used in the present invention may be other scan orders, such as horizontal scan, vertical scan, or any other scanning technique.

圖8為說明加強層之係數的係數區塊120之假設實例的概念圖。在此實例中,展示於圖8中之數值指示位置處之係數的實際值。係數區塊120之實際係數值可表示經量化之剩餘係數、未量化之變換係數,或加強層中視訊區塊的其他類型係數。在說明於圖8中之實例中,係數區塊120為4x4區塊。然而,本發明之技術可經擴展以應用至任何大小的區塊。在根據說明於圖3中之Z字形掃描而掃描係數區塊120之後,所得係數向量V 為:FIG. 8 is a conceptual diagram of a hypothetical example of coefficient block 120 illustrating the coefficients of the enhancement layer. In this example, the values shown in Figure 8 indicate the actual values of the coefficients at the locations. The actual coefficient values of coefficient block 120 may represent quantized residual coefficients, unquantized transform coefficients, or other types of coefficients of the video block in the enhancement layer. In the example illustrated in Figure 8, coefficient block 120 is a 4x4 block. However, the techniques of this disclosure may be extended to apply to blocks of any size. After scanning the coefficient block 120 according to the zigzag scan illustrated in FIG. 3, the resulting coefficient vector V is:

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

加強層編碼器32根據本發明中描述之技術來編碼係數向量V 之係數中的每一者。作為一實例,對於係數向量V 之非零係數中的每一者而言,加強層編碼器32編碼EOB符號、運程長度及正負號。如上詳細描述,EOB符號指示在係數向量中是否存在任何殘餘非零係數,運程長度表示在係數向量之當前非零係數之前發生的零值係數之數目,且正負號指示係數值為正還是為負。The enhancement layer encoder 32 encodes each of the coefficients of the coefficient vector V in accordance with the techniques described in this disclosure. As an example, for each of the non-zero coefficients of the coefficient vector V , the enhancement layer encoder 32 encodes the EOB symbol, the run length, and the sign. As described in detail above, the EOB symbol indicates whether there are any residual non-zero coefficients in the coefficient vector, the run length represents the number of zero-valued coefficients occurring before the current non-zero coefficient of the coefficient vector, and the sign indicates whether the coefficient value is positive or negative. .

根據本發明之一態樣,加強層編碼器32可能並不編碼係數之量值。實情為,加強層編碼器32可如同所有非零係數的量值等於1一般而編碼非零係數中的每一者。以此方式,加強層編碼器32可被看作編碼以下係數向量V' 而非VAccording to one aspect of the invention, enhancement layer encoder 32 may not encode the magnitude of the coefficients. Rather, the enhancement layer encoder 32 may encode each of the non-zero coefficients as if all non-zero coefficients were equal to one. In this way, enhancement layer encoder 32 can be viewed as encoding the following coefficient vector V' instead of V.

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

加強層編碼器32可(例如)使用等於零之EOB、為零之運程的碼字組及等於一之正負號來編碼第一係數(亦即,係數向量V 中之4或係數向量V' 中的1),使用等於零之EOB、為二之運程的碼字組及等於零之正負號來編碼第二係數(亦即,係數向量V 中之-2或係數向量V' 中的-1),且由等於零之EOB、為一之運程的碼字組及等於一之正負號繼之以等於一的EOB符號來編碼第三非零係數(亦即,係數向量V 或係數向量V' 中的1)。如上所述,可自在H.264/MPEG-4部分10 AVC標準中界定之VLC表獲得用以編碼運程之碼字組。32 may (e.g.) use of the EOB is equal to zero, the fortune zero codeword group and a number equal to the sign of the coefficient to encode a first enhancement layer encoder (i.e., coefficient vector V at 4 or coefficient vector V 'in 1), using the EOB is equal to zero, a code word of the group is equal to zero and the sign of two of fortune second encoded coefficients (i.e., coefficient vector V at -2 or coefficient vector V 'in -1), and the An EOB equal to zero, a codeword group of one fortune, and a sign equal to one followed by an EOB symbol equal to one encode a third non-zero coefficient (ie, a coefficient vector V or a coefficient vector V' ). As described above, the codeword group used to encode the run can be obtained from the VLC table defined in the H.264/MPEG-4 Part 10 AVC standard.

為了說明目的而描述實例經編碼之位元流。加強層編碼器32可在不背離本發明之範疇的情況下以不同方式來編碼係數向量VV' 。舉例而言,可將EOB符號編碼為一以表示區塊中之額外非零係數,且編碼為零以表示無殘餘非零係數。同樣,可將正負號符號編碼為零以表示為正之非零係數,且編碼為一以表示為負的非零係數。作為另一實例,針對每一非零係數編碼之EOB符號可表示當前係數是否為向量的最後非零係數。因而,在經編碼位元流之結束處可能不存在EOB符號。實情為,在EOB符號指示當前係數為最後非零係數時,視訊解碼器知曉在解碼當前係數之運程及符號之後不存在區塊的額外係數。An example encoded bit stream is described for purposes of illustration. The enhancement layer encoder 32 can encode the coefficient vectors V , V' in different ways without departing from the scope of the invention. For example, the EOB symbol can be encoded as one to represent additional non-zero coefficients in the block, and coded to zero to indicate no residual non-zero coefficients. Similarly, the sign can be coded to zero to represent a positive non-zero coefficient, and encoded as a non-zero coefficient expressed as negative. As another example, the EOB symbol encoded for each non-zero coefficient may indicate whether the current coefficient is the last non-zero coefficient of the vector. Thus, there may be no EOB symbols at the end of the encoded bit stream. The fact is that when the EOB symbol indicates that the current coefficient is the last non-zero coefficient, the video decoder knows that there are no additional coefficients for the block after decoding the current coefficients and symbols.

圖9為說明執行本發明之可調節視訊寫碼技術之視訊編碼器(諸如,圖2的視訊編碼器20)之實例操作的流程圖。視訊編碼器20之基礎層編碼器30及加強層編碼器32自視訊源18獲得視訊資料(130)。如上所述,基礎層編碼器30及加強層編碼器32獲得相同之原始視訊資料。自視訊源18獲得之視訊資料可(例如)為一系列視訊圖框。9 is a flow diagram illustrating an example operation of a video encoder (such as video encoder 20 of FIG. 2) that implements the adjustable video coding technique of the present invention. The base layer encoder 30 and the enhancement layer encoder 32 of the video encoder 20 obtain video material (130) from the video source 18. As described above, the base layer encoder 30 and the enhancement layer encoder 32 obtain the same original video material. The video material obtained from the video source 18 can be, for example, a series of video frames.

對於每一視訊區塊而言,基礎層編碼器30使用執行多個編碼一次操作之寫碼技術來編碼基礎層(132)。基礎層以第一品質等級編碼視訊區塊。基礎層編碼器30可產生表示處於第一品質之視訊區塊的係數向量,且編碼區塊之剩餘變換係數以產生基礎層。基礎層編碼器30可根據如在H.264/MPEG-4部分10 AVC標準中界定之CAVLC編碼係數向量以產生基礎層。如上文關於圖2詳細描述,基礎層編碼器30可執行用以分析係數向量之第一編碼一次操作及用以基於分析編碼係數向量的第二一次操作。For each video block, base layer encoder 30 encodes the base layer (132) using a write code technique that performs multiple coded one operations. The base layer encodes the video block with a first quality level. The base layer encoder 30 may generate a coefficient vector representing the video block of the first quality and encode the remaining transform coefficients of the block to generate the base layer. The base layer encoder 30 may generate a base layer according to a CAVLC coding coefficient vector as defined in the H.264/MPEG-4 Part 10 AVC standard. As described in detail above with respect to FIG. 2, base layer encoder 30 may perform a first one-time operation to analyze the coefficient vector and a second one to use to encode the coefficient vector based on the analysis.

對於每一視訊區塊而言,加強層編碼器32使用執行單一編碼一次操作之寫碼技術來將額外位元編碼為加強層(134)。加強層位元流之額外位元編碼精化,該等精化在添加至基礎層位元流時將視訊增強為第二較高品質等級。雖然在此實例中將加強層編碼器32描述為僅編碼單一加強層,但加強層編碼器32可編碼一個以上加強層位元流。在該狀況下,在加強層隨著其經解碼而提供逐漸較高之品質的意義上,加強層可為階層式的。For each video block, enhancement layer encoder 32 encodes the extra bits into a reinforcement layer (134) using a write code technique that performs a single code one operation. The extra bit coding refinement of the layer bit stream is enhanced, and the refinement enhances the video to a second higher quality level when added to the base layer bit stream. Although enhancement layer encoder 32 is described as encoding only a single enhancement layer in this example, enhancement layer encoder 32 may encode more than one enhancement layer bitstream. In this case, the reinforcement layer can be hierarchical in the sense that the reinforcement layer provides progressively higher quality as it is decoded.

由加強層編碼器32使用之第二熵寫碼技術對於加強層之係數向量之非零係數中的每一者而言可編碼EOB符號、運程及正負號。如上詳細描述,EOB符號可指示是否存在任何殘餘非零係數,運程長度表示在非零係數之前發生的零值係數之數目,且正負號指示係數值為正還是為負。在最後非零係數之正負號之後,加強層編碼器32可編碼EOB符號以指示不存在殘餘非零係數。The second entropy write technique used by enhancement layer encoder 32 may encode the EOB symbol, the run and the sign for each of the non-zero coefficients of the coefficient vector of the enhancement layer. As described in detail above, the EOB symbol can indicate whether there are any residual non-zero coefficients, the run length represents the number of zero-valued coefficients that occurred before the non-zero coefficient, and the sign indicates whether the coefficient value is positive or negative. After the sign of the last non-zero coefficient, enhancement layer encoder 32 may encode the EOB symbol to indicate that there are no residual non-zero coefficients.

基礎層編碼器30及加強層編碼器32分別輸出經編碼之基礎層位元流及加強層位元流(136)。由加強層編碼器32使用之熵寫碼技術可允許在無寫碼效率之大量損耗情況下以較低計算及實施複雜性來編碼加強層的剩餘係數。本發明之熵寫碼技術可賦能加強層位元流中之(例如)呈精化形式之額外視訊資料在單一編碼一次操作中的寫碼,藉此減少寫碼複雜性、寫碼延遲及記憶體要求。例如,加強層編碼器32可在不知曉任何後續係數的情況下編碼加強層之係數向量的每一非零係數,從而允許在單一一次操作中寫碼係數向量,且消除執行一用以分析係數向量之第一一次操作及用於基於分析寫碼係數向量的第二一次操作之需要。The base layer encoder 30 and the enhancement layer encoder 32 respectively output the encoded base layer bit stream and the enhancement layer bit stream (136). The entropy coding technique used by enhancement layer encoder 32 may allow the residual coefficients of the enhancement layer to be encoded with lower computation and implementation complexity without significant loss of write efficiency. The entropy coding technique of the present invention can enhance the write code of the additional video data in the layered bit stream in a single coded operation, for example, in a single coded one operation, thereby reducing write code complexity, write code delay and Memory requirements. For example, enhancement layer encoder 32 may encode each non-zero coefficient of the coefficient vector of the enhancement layer without knowing any subsequent coefficients, thereby allowing the code coefficient vector to be written in a single operation and eliminating the execution of one to analyze the coefficients. The first operation of the vector and the need for a second operation based on analyzing the coded coefficient vector.

圖10為說明根據本發明之一態樣之編碼加強層的視訊區塊之剩餘係數之加強層編碼器(諸如,圖2之加強層編碼器32)的實例操作之流程圖。加強層編碼器32識別加強層區塊之係數向量中的第一非零係數(140)。加強層編碼器32編碼一指示在加強層區塊之係數向量存在至少一殘餘非零係數的EOB符號(142)。加強層編碼器32可使用單一位元編碼EOB符號,例如,在存在至少一殘餘非零係數時編碼零且在不存在殘餘非零係數時編碼一。10 is a flow diagram illustrating an example operation of a enhancement layer encoder (such as enhancement layer encoder 32 of FIG. 2) of residual coefficients of a coding enhancement layer of an enhancement layer in accordance with an aspect of the present invention. The enhancement layer encoder 32 identifies the first non-zero coefficient (140) in the coefficient vector of the enhancement layer block. The enhancement layer encoder 32 encodes an EOB symbol (142) indicating that there is at least one residual non-zero coefficient in the coefficient vector of the enhancement layer block. The enhancement layer encoder 32 may encode the EOB symbol using a single bit, for example, encoding zero when there is at least one residual non-zero coefficient and encoding one when there are no residual non-zero coefficients.

加強層編碼器32編碼一指示先於非零係數之零值係數之數目的運程(144)。加強層編碼器32在一些例子中可使用針對如在H.264/MPEG-4部分10AVC標準中界定之CAVLC已儲存的VLC表而編碼運程。舉例而言,加強層編碼器32可使用用以在係數之總數(TotalCoeffs)等於一時寫碼總運程之和(sumRuns)的VLC表來編碼運程。或者,加強層編碼器32可維持一經特定地設計以編碼加強層之係數向量之運程的單獨VLC表。The enhancement layer encoder 32 encodes a run (144) indicating the number of zero value coefficients preceding the non-zero coefficients. The enhancement layer encoder 32 may, in some examples, encode the run for a VLC table that has been stored as CAVLC as defined in the H.264/MPEG-4 Part 10 AVC Standard. For example, the enhancement layer encoder 32 may use a VLC table to encode the run when the total number of coefficients (TotalCoeffs) is equal to the sum of the total runs of the code (sumRuns). Alternatively, enhancement layer encoder 32 may maintain a separate VLC table that is specifically designed to encode the coefficients of the enhancement layer.

加強層編碼器32可編碼非零係數之正負號(146)。加強層編碼器32可(例如)編碼"1"(若非零係數之正負號為正),且編碼"0"(若非零係數之正負號為負)。在一些例子中,加強層編碼器32可能不編碼非零係數的量值。以此方式,加強層編碼器32可將非零係數之量值限制為一。因而,將具有大於一之量值的任何非零係數設定為等於一。不編碼加強層之非零係數之量值可導致峰值訊雜比(PSNR)之某一損耗,但減少用以編碼非零係數之位元的數目。The enhancement layer encoder 32 may encode the sign of the non-zero coefficient (146). The enhancement layer encoder 32 may, for example, encode "1" (if the sign of the non-zero coefficient is positive) and encode "0" (if the sign of the non-zero coefficient is negative). In some examples, enhancement layer encoder 32 may not encode magnitudes of non-zero coefficients. In this manner, enhancement layer encoder 32 may limit the magnitude of the non-zero coefficients to one. Thus, any non-zero coefficient having a magnitude greater than one is set equal to one. The magnitude of the non-zero coefficients that do not encode the enhancement layer can result in some loss in peak-to-noise ratio (PSNR), but reduces the number of bits used to encode non-zero coefficients.

加強層編碼器32判定在加強層區塊中是否存在任何殘餘非零係數(148)。當在加強層區塊中存在至少一殘餘非零係數時,加強層編碼器32繼續編碼殘餘非零係數中之每一者的EOB、運程及正負號。當在加強層區塊中不存在殘餘非零係數時,加強層編碼器32編碼EOB符號,以指示在加強層區塊之係數向量中不存在殘餘非零係數(149)。如上所述,將加強層連同基礎層一起傳輸。The enhancement layer encoder 32 determines if there are any residual non-zero coefficients in the enhancement layer block (148). When there is at least one residual non-zero coefficient in the enhancement layer block, enhancement layer encoder 32 continues to encode the EOB, the fort and the sign of each of the residual non-zero coefficients. When there are no residual non-zero coefficients in the enhancement layer block, enhancement layer encoder 32 encodes the EOB symbol to indicate that there are no residual non-zero coefficients in the coefficient vector of the enhancement layer block (149). As described above, the reinforcement layer is transported along with the base layer.

因為圖10中描述之加強層寫碼技術並不寫碼涉及一個以上係數之符號,所以加強層寫碼技術視可用位元率而可允許加強層編碼器32在編碼期間丟棄係數向量之經量化剩餘係數中的一或多者。此外,加強層寫碼技術減少寫碼複雜性及實施。Since the enhancement layer write code technique described in FIG. 10 does not write code involving symbols of more than one coefficient, the enhancement layer write code technique may allow the enhancement layer encoder 32 to discard the coefficient vector during encoding, depending on the available bit rate. One or more of the remaining coefficients. In addition, enhanced layer write coding techniques reduce write code complexity and implementation.

圖11為說明解碼加強層位元流以獲得剩餘變換係數之向量的加強層解碼器(諸如,圖2之加強層解碼器36)之實例操作的流程圖。加強層解碼器36獲得加強層位元流(150)。加強層解碼器36分析EOB符號以判定是否存在任何殘餘非零係數(152)。加強層解碼器36可(例如)在EOB符號等於零時判定存在至少一殘餘非零係數,且在EOB符號等於一時判定不存在殘餘非零係數。11 is a flow diagram illustrating an example operation of an enhancement layer decoder (such as enhancement layer decoder 36 of FIG. 2) that decodes the enhancement layer bitstream to obtain a vector of residual transform coefficients. The enhancement layer decoder 36 obtains a enhancement layer bitstream (150). The enhancement layer decoder 36 analyzes the EOB symbols to determine if there are any residual non-zero coefficients (152). The enhancement layer decoder 36 may, for example, determine that there is at least one residual non-zero coefficient when the EOB symbol is equal to zero, and determine that there are no residual non-zero coefficients when the EOB symbol is equal to one.

當加強層解碼器36判定存在至少一殘餘非零係數(例如,EOB符號等於零)時,加強層解碼器36解碼與下一非零係數相關聯的運程(154)。與下一非零係數相關聯之運程表示非零係數之前的零值係數之數目。加強層解碼器36使用與由加強層編碼器32使用之VLC表相同的VLC表來解碼運程。在一例子中,加強層解碼器36可使用用於如界定於H.264/MPEG-4部分10AVC標準中之CAVLC中的用於寫碼總運程和(sumRuns)中(當係數之總數(TotalCoeffs)等於一時)的VLC表來解碼運程。然而,可使用其他VLC表,只要其為由加強層編碼器32使用之同一表便可。加強層解碼器36將等於非零係數之前的運程長度之數目個係數設定為等於零(156)。若運程長度等於二,則(例如)加強層解碼器36可將非零係數之前的兩個係數設定為等於零。When enhancement layer decoder 36 determines that there is at least one residual non-zero coefficient (e.g., the EOB symbol is equal to zero), enhancement layer decoder 36 decodes the motion associated with the next non-zero coefficient (154). The run associated with the next non-zero coefficient represents the number of zero-valued coefficients before the non-zero coefficient. The enhancement layer decoder 36 decodes the motion using the same VLC table as the VLC table used by the enhancement layer encoder 32. In an example, enhancement layer decoder 36 may be used for writing the total motion and sumRuns as defined in the CAVLC of the H.264/MPEG-4 Part 10 AVC Standard (when the total number of coefficients (TotalCoeffs) ) A VLC table equal to one hour) to decode the run. However, other VLC tables can be used as long as they are the same table used by the enhancement layer encoder 32. The enhancement layer decoder 36 sets the number of coefficients of the run length equal to the non-zero coefficient equal to zero (156). If the run length is equal to two, then for example, enhancement layer decoder 36 may set the two coefficients preceding the non-zero coefficients to be equal to zero.

加強層解碼器36解碼非零係數之正負號(158)。非零係數之正負號可解碼為正(在正負號符號等於一時),及解碼為負(在正負號符號等於零時)。在解碼非零係數之正負號之後,加強層解碼器36可基於經解碼之正負號將非零係數設定為等於正一或負一(160)。如上所述,加強層可能不編碼加強層之係數的量值。同樣,加強層解碼器36可經組態以將所有非零係數之量值設定為等於一。The enhancement layer decoder 36 decodes the sign of the non-zero coefficient (158). The sign of the non-zero coefficient can be decoded as positive (when the sign is equal to one) and decoded as negative (when the sign is equal to zero). After decoding the sign of the non-zero coefficient, enhancement layer decoder 36 may set the non-zero coefficient equal to positive one or negative one (160) based on the decoded sign. As mentioned above, the enhancement layer may not encode the magnitude of the coefficients of the enhancement layer. Likewise, enhancement layer decoder 36 can be configured to set the magnitude of all non-zero coefficients equal to one.

加強層解碼器36繼續解碼非零係數之運程及正負號直至加強層解碼器36判定不存在殘餘非零係數(例如,EOB符號等於一)為止。在此點上,若殘餘任何係數,則加強層解碼器36將向量之殘餘係數設定為等於零(162)。如關於圖2詳細描述,加強層解碼器36使用除預測區塊外之係數向量及其他資料以重建視訊區塊以供呈現給顯示器28。The enhancement layer decoder 36 continues to decode the run and sign of the non-zero coefficients until the enhancement layer decoder 36 determines that there are no residual non-zero coefficients (e.g., the EOB symbol is equal to one). At this point, if any coefficients are left, the enhancement layer decoder 36 sets the residual coefficients of the vector equal to zero (162). As described in detail with respect to FIG. 2, enhancement layer decoder 36 uses coefficient vectors and other data in addition to the prediction blocks to reconstruct the video blocks for presentation to display 28.

圖12至圖15為說明用於可調節視訊寫碼中之編碼器及/或解碼器的不同組態之方塊圖。此等實例編碼器及解碼器係為了說明可利用本發明之技術的編碼器類型。然而,實例組態決不應限制如所描述的技術。技術可用於任何可調節視訊編碼器中。12 through 15 are block diagrams illustrating different configurations of an encoder and/or decoder for use in an adjustable video write code. These example encoders and decoders are illustrative of encoder types that may utilize the techniques of the present invention. However, the example configuration should in no way limit the techniques as described. Technology can be used in any adjustable video encoder.

說明於圖12至圖15中之實例視訊編碼器及解碼器中之每一者可利用本發明中描述之熵寫碼技術以促進加強層位元流的有效寫碼。本發明之熵寫碼技術可賦能在單一編碼一次操作中對加強層位元流中之(例如)呈精化形式之額外視訊資料的寫碼,藉此減少寫碼複雜性、寫碼延遲及記憶體要求。如將進一步詳細描述,可在不知曉任何後續係數(亦即,當前正被寫碼之非零係數之後的任何係數)的情況下編碼加強層之係數向量中的每一非零係數。在單一一次操作中寫碼加強層可消除執行一分析係數向量之第一一次操作及用於基於分析而寫碼係數向量的第二一次操作之需要。Each of the example video encoders and decoders illustrated in Figures 12 through 15 may utilize the entropy write code techniques described in this disclosure to facilitate efficient code writing of the enhancement layer bitstream. The entropy coding technique of the present invention can enable the writing of additional video data in the enhanced layer bit stream, for example, in a refined form, in a single encoding operation, thereby reducing write code complexity and write code delay. And memory requirements. As will be described in further detail, each non-zero coefficient in the coefficient vector of the enhancement layer can be encoded without any subsequent coefficients (ie, any coefficients that are currently being written by the non-zero coefficients of the code). Writing the code enhancement layer in a single operation eliminates the need for a first operation of performing an analysis coefficient vector and a second operation for writing a code coefficient vector based on the analysis.

圖12為說明實例可調節視訊編碼器170的方塊圖。可調節視訊編碼器170可(例如)與圖2之視訊編碼器20對應。在圖12之實例中,可調節視訊編碼器170包括一基礎層編碼器30,該基礎層編碼器30包括一預測單元172、圖框儲存器173、變換單元174、量化單元175A及175B、逆量化單元176A及176B、逆變換單元177、多工模組178及求和器179A至179C。將圖3中之不同特徵描繪為單元意欲突出所說明設備之不同功能態樣,且並不一定暗示此等單元必須藉由單獨硬體或軟體組件來實現。實情為,與一或多個單元相關聯之功能性可整合至共同或單獨硬體或軟體組件內。FIG. 12 is a block diagram illustrating an example adjustable video encoder 170. The adjustable video encoder 170 can, for example, correspond to the video encoder 20 of FIG. In the example of FIG. 12, the adjustable video encoder 170 includes a base layer encoder 30, which includes a prediction unit 172, a frame storage 173, a transform unit 174, quantization units 175A and 175B, and an inverse. Quantization units 176A and 176B, inverse transform unit 177, multiplex module 178, and summers 179A through 179C. The various features in FIG. 3 are depicted as elements intended to highlight different functional aspects of the illustrated device and do not necessarily imply that such elements must be implemented by separate hardware or software components. Rather, the functionality associated with one or more units can be integrated into a common or separate hardware or software component.

預測單元172使用框內預測或框間預測產生預測區塊。預測區塊可為正被寫碼之當前視訊區塊的預測型式。如上所述,預測單元172可基於與當前正被寫碼之區塊相同之圖框內之基礎層的一或多個先前編碼區塊而使用框內預測產生預測區塊。或者,預測單元可基於基礎層之一或多個相鄰圖框內之一或多個先前編碼區塊而使用框間預測產生預測區塊。預測單元172可自圖框儲存器173提取先前編碼區塊。Prediction unit 172 generates prediction blocks using in-frame prediction or inter-frame prediction. The prediction block can be a prediction pattern of the current video block being coded. As described above, prediction unit 172 can generate prediction blocks using in-frame prediction based on one or more previously encoded blocks of the base layer within the same frame as the block currently being coded. Alternatively, the prediction unit may generate the prediction block using inter-frame prediction based on one or more of the previous coding blocks in one or more adjacent frames of the base layer. Prediction unit 172 can extract the previously encoded block from frame storage 173.

在視訊區塊之基於框內或框間之預測之後,基礎層編碼器30藉由在求和器179A處自當前視訊區塊減去藉由預測單元172產生之預測區塊而產生剩餘區塊。剩餘區塊包括量化當前視訊區塊之像素值與預測區塊的像素值之間的差之像素差值集合。剩餘區塊可以二維區塊格式(例如,像素值之二維矩陣或陣列)來表示。換言之,剩餘區塊為像素值的二維表示。After the intra-frame or inter-frame prediction of the video block, the base layer encoder 30 generates the remaining block by subtracting the prediction block generated by the prediction unit 172 from the current video block at the summer 179A. . The remaining block includes a set of pixel difference values that quantify the difference between the pixel values of the current video block and the pixel values of the predicted block. The remaining blocks may be represented in a two-dimensional block format (eg, a two-dimensional matrix or array of pixel values). In other words, the remaining blocks are two-dimensional representations of pixel values.

變換單元174向剩餘區塊應用變換以產生剩餘變換係數。變換單元174可(例如)應用DCT、整數變換、方向變換、小波變換或其組合。在向像素值之剩餘區塊應用變換之後,量化單元175A量化變換係數以進一步減少位元率。量化單元175A之對應於與基礎層相關聯之經量化係數的輸出被提供至多工模組178。Transform unit 174 applies a transform to the remaining blocks to produce residual transform coefficients. Transform unit 174 can, for example, apply DCT, integer transform, direction transform, wavelet transform, or a combination thereof. After applying the transform to the remaining blocks of pixel values, quantization unit 175A quantizes the transform coefficients to further reduce the bit rate. The output of quantization unit 175A corresponding to the quantized coefficients associated with the base layer is provided to multiplex module 178.

在量化之後,逆量化單元176A應用逆量化以產生變換係數之剩餘區塊的經重建型式。求和器179B自由變換單元174輸出之變換係數之原始剩餘區塊減去自逆量化單元176A輸出的變換係數的剩餘區塊之經重建型式。將本文中稱為變換差區塊之此區塊提供至量化單元175B。量化單元175B量化變換係數以進一步減少位元率。量化單元175B之對應於與加強層相關聯之經量化係數的輸出被提供至多工模組178。在一實例中,量化單元175A可使用第一QP量化剩餘係數,且量化單元175B可使用第二QP量化剩餘係數差。第二QP可(例如)為第一QP之值的一半,亦即,QP/2。After quantization, inverse quantization unit 176A applies inverse quantization to produce a reconstructed version of the remaining blocks of transform coefficients. The original residual block of the transform coefficients output by the summer transform unit 174 is subtracted from the reconstructed pattern of the remaining blocks of the transform coefficients output from the inverse quantization unit 176A. This block, referred to herein as a transform difference block, is provided to quantization unit 175B. Quantization unit 175B quantizes the transform coefficients to further reduce the bit rate. The output of quantization unit 175B corresponding to the quantized coefficients associated with the enhancement layer is provided to multiplex module 178. In an example, quantization unit 175A may quantize the residual coefficients using the first QP, and quantization unit 175B may quantize the residual coefficient differences using the second QP. The second QP may, for example, be half the value of the first QP, that is, QP/2.

在藉由量化單元175B進行之量化之後,逆量化單元176B應用逆量化以產生變換差區塊的經重建型式。求和器179C對自逆量化單元176A輸出之變換係數之剩餘區塊之經重建型式與藉由逆量化單元176B輸出的變換差區塊之經重建型式求和以產生經重建的剩餘區塊。After quantization by quantization unit 175B, inverse quantization unit 176B applies inverse quantization to produce a reconstructed version of the transformed difference block. The summer 179C sums the reconstructed version of the remaining block of the transform coefficients output from the inverse quantization unit 176A with the reconstructed version of the transformed difference block output by the inverse quantization unit 176B to produce a reconstructed residual block.

逆變換單元177對視訊區塊之經重建型式應用逆變換。經重建型式之視訊區塊儲存於圖框儲存器173中,且可由預測單元172使用以框內或框間寫碼後續視訊區塊。預測單元172可向多工模組178提供控制資料,諸如,運動向量、分割大小、框內寫碼模式或其類似者。多工模組178可組合基礎層資料與加強層資料。在一些例子中,多工模組178可包括用於熵編碼基礎層資料及加強層資料的熵編碼器。在其他例子中,基礎層編碼器及加強層編碼器可獨立於多工模組。Inverse transform unit 177 applies an inverse transform to the reconstructed version of the video block. The reconstructed version of the video block is stored in the frame store 173 and can be used by the prediction unit 172 to write the subsequent video blocks in-frame or inter-frame. Prediction unit 172 can provide control data to multiplex module 178, such as motion vectors, split sizes, in-frame write patterns, or the like. The multiplex module 178 can combine base layer data and reinforcement layer data. In some examples, multiplex module 178 can include an entropy encoder for entropy encoding base layer data and enhancement layer data. In other examples, the base layer encoder and the enhancement layer encoder can be independent of the multiplex module.

圖13為說明實例可調節視訊解碼器180的方塊圖。可調節視訊解碼器180可(例如)與圖2之視訊解碼器26對應。圖13之可調節視訊解碼器180包括解多工模組181、逆量化單元182A及182B、逆變換單元183、預測單元184、圖框儲存器185及求和器186A及186B。FIG. 13 is a block diagram illustrating an example adjustable video decoder 180. Adjustable video decoder 180 may, for example, correspond to video decoder 26 of FIG. The adjustable video decoder 180 of FIG. 13 includes a demultiplexing module 181, inverse quantization units 182A and 182B, an inverse transform unit 183, a prediction unit 184, a frame memory 185, and summers 186A and 186B.

解多工模組181接收可調節編碼視訊,且解多工信號。在一些例子中,解多工模組181可包括用於熵解碼基礎層資料及加強層資料的熵解碼器。在其他例子中,基礎層解碼器及加強層解碼器可獨立於解多工模組。The demultiplexing module 181 receives the adjustable encoded video and demultiplexes the multiplexed signal. In some examples, the demultiplexing module 181 can include an entropy decoder for entropy decoding base layer data and enhancement layer data. In other examples, the base layer decoder and the enhancement layer decoder can be independent of the demultiplexing module.

逆量化單元182A逆量化(亦即,解量化)與基礎層相關聯之經量化剩餘係數,且逆量化單元182B解量化與加強層相關聯的經量化剩餘係數。在一實例中,逆量化單元182A可使用第一QP量化剩餘係數,且逆量化單元182B可使用第二QP量化剩餘係數差。第二QP可(例如)為第一QP之值的一半,亦即,QP/2。在求和器186A處將由逆量化單元182A及182B輸出之經解量化之變換係數的各別集合相加以產生經重建的剩餘變換區塊。如上所述,由逆量化單元182A輸出之經解量化之變換係數可與基本品質等級對應,且由逆量化單元182B輸出之經解量化之變換係數在添加至逆量化單元182B之輸出時導致增加之品質等級。Inverse quantization unit 182A inverse quantizes (i.e., dequantizes) the quantized residual coefficients associated with the base layer, and inverse quantization unit 182B dequantizes the quantized residual coefficients associated with the enhancement layer. In an example, inverse quantization unit 182A may quantize the residual coefficients using the first QP, and inverse quantization unit 182B may quantize the residual coefficient differences using the second QP. The second QP may, for example, be half the value of the first QP, that is, QP/2. The respective sets of dequantized transform coefficients output by inverse quantization units 182A and 182B are added at summer 186A to produce reconstructed residual transform blocks. As described above, the dequantized transform coefficients output by the inverse quantization unit 182A may correspond to the basic quality level, and the dequantized transform coefficients output by the inverse quantization unit 182B cause an increase when added to the output of the inverse quantization unit 182B. Quality level.

逆變換單元183向經解量化之剩餘係數區塊之和應用逆變換(例如,逆DCT、逆整數變換、逆小波變換或逆方向變換)以產生像素值的剩餘區塊。求和器186B將藉由預測單元184產生之預測區塊與像素值之剩餘區塊相加以形成經重建的基礎層視訊區塊。如上詳細所述,預測單元184可在框內預測的狀況下使用共同圖框內之一或多個相鄰區塊或在框間預測的狀況下使用相鄰圖框內之一或多個區塊產生預測區塊,該預測區塊可儲存於圖框儲存器185內。The inverse transform unit 183 applies an inverse transform (e.g., inverse DCT, inverse integer transform, inverse wavelet transform, or inverse direction transform) to the sum of the dequantized residual coefficient blocks to generate a remaining block of pixel values. Summer 186B adds the prediction block generated by prediction unit 184 to the remaining blocks of pixel values to form a reconstructed base layer video block. As described in detail above, the prediction unit 184 can use one or more adjacent blocks within the common frame or use one or more regions within the adjacent frame in the case of inter-frame prediction in the case of intra-frame prediction. The block produces a prediction block that can be stored in the frame store 185.

圖14為說明另一實例可調節視訊解碼器190的方塊圖。可調節視訊解碼器190可(例如)與圖2之視訊解碼器26對應。圖14之可調節視訊解碼器190包括解多工模組191、逆量化單元192A及192B、逆變換單元193A及193B、預測單元194、圖框儲存器195及求和器196A及196B。FIG. 14 is a block diagram illustrating another example adjustable video decoder 190. Adjustable video decoder 190 can, for example, correspond to video decoder 26 of FIG. The adjustable video decoder 190 of FIG. 14 includes a demultiplexing module 191, inverse quantization units 192A and 192B, inverse transform units 193A and 193B, a prediction unit 194, a frame storage 195, and summers 196A and 196B.

解多工模組191接收可調節編碼視訊,且解多工信號。在一些例子中,解多工模組181可包括用於熵解碼基礎層資料及加強層資料的熵解碼器。在其他例子中,基礎層解碼器及加強層解碼器可獨立於解多工模組。The demultiplexing module 191 receives the adjustable encoded video and demultiplexes the multiplexed signal. In some examples, the demultiplexing module 181 can include an entropy decoder for entropy decoding base layer data and enhancement layer data. In other examples, the base layer decoder and the enhancement layer decoder can be independent of the demultiplexing module.

逆量化單元192A及逆變換單元193A對與基礎層相關聯之經解碼剩餘係數應用逆量化(亦即,解量化)及逆變換操作以獲得基礎層的剩餘區塊之經重建型式。逆量化單元192B及逆變換單元193B對與加強層相關聯之經解碼剩餘係數應用逆量化(亦即,解量化)及逆變換操作以獲得加強層的剩餘區塊之經重建型式。在一實例中,逆量化單元192A可使用第一QP量化剩餘係數,且逆量化單元192B可使用第二QP量化剩餘係數差。第二QP可(例如)為第一QP之值的一半,亦即,QP/2。Inverse quantization unit 192A and inverse transform unit 193A apply inverse quantization (i.e., dequantization) and inverse transform operations to the decoded residual coefficients associated with the base layer to obtain a reconstructed version of the remaining blocks of the base layer. Inverse quantization unit 192B and inverse transform unit 193B apply inverse quantization (i.e., dequantization) and inverse transform operations to the decoded residual coefficients associated with the enhancement layer to obtain a reconstructed version of the remaining blocks of the enhancement layer. In an example, inverse quantization unit 192A may quantize the residual coefficients using the first QP, and inverse quantization unit 192B may quantize the residual coefficient differences using the second QP. The second QP may, for example, be half the value of the first QP, that is, QP/2.

預測單元194可在框內預測的狀況下使用共同圖框內之一或多個相鄰區塊或在框間預測的狀況下使用相鄰圖框內之一或多個區塊產生預測區塊,該預測區塊可儲存於圖框儲存器195內。求和器196A將由預測單元194產生之預測區塊與自逆變換單元193A輸出之經重建的剩餘區塊相加以產生處於基本品質等級的經解碼視訊資料。自可調節視訊解碼器190輸出具有基本品質等級的經解碼視訊資料。Prediction unit 194 may generate predicted blocks using one or more neighboring blocks within a common frame or one or more blocks within adjacent frames in the case of intra-frame prediction or in the case of inter-frame prediction. The prediction block can be stored in the frame storage 195. Summer 196A adds the prediction block generated by prediction unit 194 to the reconstructed residual block output from inverse transform unit 193A to produce decoded video material at a base quality level. The self-adjustable video decoder 190 outputs decoded video material having a basic quality level.

具有基本品質等級之經解碼視訊資料亦被提供至求和器196B。求和器196B將求和器196A之輸出與自逆變換單元193B輸出之加強層的剩餘區塊之經重建型式相加以產生處於第二較高品質等級的經解碼視訊資料。自可調節視訊解碼器190輸出具有基本品質等級的經解碼視訊資料。The decoded video material having the basic quality level is also provided to summer 196B. Summer 196B sums the output of summer 196A with the reconstructed version of the remaining blocks of the enhancement layer output from inverse transform unit 193B to produce decoded video material at a second, higher quality level. The self-adjustable video decoder 190 outputs decoded video material having a basic quality level.

圖15為說明另一實例視訊編碼器200的方塊圖。在圖15之實例中,基礎層編碼器30包括一預測單元33A、圖框儲存器35A、變換單元38A、量化單元40A、係數掃描單元41A、逆量化單元42A、逆變換單元44A、基礎層熵編碼器46、求和器48A至48C及框內預測單元40A。將圖3中之不同特徵描繪為單元意欲突出所說明設備之不同功能態樣,且並不一定暗示此等單元必須藉由單獨硬體或軟體組件來實現。實情為,與一或多個單元相關聯之功能性可整合至共同或單獨硬體或軟體組件內。FIG. 15 is a block diagram illustrating another example video encoder 200. In the example of FIG. 15, the base layer encoder 30 includes a prediction unit 33A, a frame storage 35A, a transform unit 38A, a quantization unit 40A, a coefficient scanning unit 41A, an inverse quantization unit 42A, an inverse transform unit 44A, and a base layer entropy. Encoder 46, summers 48A through 48C, and in-frame prediction unit 40A. The various features in FIG. 3 are depicted as elements intended to highlight different functional aspects of the illustrated device and do not necessarily imply that such elements must be implemented by separate hardware or software components. Rather, the functionality associated with one or more units can be integrated into a common or separate hardware or software component.

預測單元33A使用框間預測(例如,經運動補償之預測)而產生預測區塊。預測區塊可為正被寫碼之當前視訊區塊的預測型式。如上所述,預測單元33A可基於基礎層之一或多個相鄰圖框內之一或多個先前編碼區塊使用框間預測而產生預測區塊。預測單元33A可自圖框儲存器35A提取先前編碼區塊。Prediction unit 33A generates prediction blocks using inter-frame prediction (e.g., motion compensated prediction). The prediction block can be a prediction pattern of the current video block being coded. As described above, prediction unit 33A may generate prediction blocks using inter-frame prediction based on one or more previously encoded blocks within one or more adjacent frames of the base layer. Prediction unit 33A may extract the previously encoded block from frame storage 35A.

在視訊區塊之基於框間之預測之後,基礎層編碼器30藉由在求和器48A處自當前視訊區塊減去由預測單元33A產生之預測區塊而產生剩餘區塊。剩餘區塊包括量化當前視訊區塊之像素值與預測區塊的像素值之間的差之像素差值集合。剩餘區塊可以二維區塊格式(例如,像素值之二維矩陣或陣列)來表示。換言之,剩餘區塊為像素值的二維表示。After the inter-frame based prediction of the video block, the base layer encoder 30 generates the remaining block by subtracting the prediction block generated by the prediction unit 33A from the current video block at the summer 48A. The remaining block includes a set of pixel difference values that quantify the difference between the pixel values of the current video block and the pixel values of the predicted block. The remaining blocks may be represented in a two-dimensional block format (eg, a two-dimensional matrix or array of pixel values). In other words, the remaining blocks are two-dimensional representations of pixel values.

變換單元38A向剩餘區塊應用變換以產生剩餘變換係數。變換單元38A可(例如)應用DCT、整數變換、方向變換、小波變換或其組合。在向像素值之剩餘區塊應用變換之後,量化單元40A量化變換係數以進一步減少位元率。在量化之後,逆量化單元42A及逆變換單元44A可分別應用逆量化及逆變換以重建剩餘區塊。求和器48B將經重建之剩餘區塊與由預測單元33A產生之預測區塊相加以產生經重建的視訊區塊以供儲存於圖框儲存器35A中。儲存於圖框儲存器35A中之經重建之視訊區塊可由基礎層編碼器30之預測單元32使用以框內或框間寫碼後續視訊區塊。另外,如以下將更詳細描述,儲存於圖框儲存器35A中之經重建之視訊區塊可由加強層編碼器32之預測單元33B使用以框內或框間寫碼加強層中之視訊區塊的精化。Transform unit 38A applies a transform to the remaining blocks to produce residual transform coefficients. Transform unit 38A may, for example, apply DCT, integer transform, direction transform, wavelet transform, or a combination thereof. After applying the transform to the remaining blocks of pixel values, quantization unit 40A quantizes the transform coefficients to further reduce the bit rate. After quantization, inverse quantization unit 42A and inverse transform unit 44A may apply inverse quantization and inverse transform, respectively, to reconstruct the remaining blocks. The summer 48B adds the reconstructed residual block to the predicted block generated by the prediction unit 33A to produce a reconstructed video block for storage in the frame storage 35A. The reconstructed video block stored in the frame store 35A can be used by the prediction unit 32 of the base layer encoder 30 to write coded subsequent video blocks in-frame or inter-frame. In addition, as will be described in more detail below, the reconstructed video block stored in the frame store 35A can be used by the prediction unit 33B of the enhancement layer encoder 32 to block the video blocks in the in-frame or inter-frame code enhancement layer. Refinement.

在量化之後,求和器48C自經量化剩餘係數減去由框內預測單元40A產生之經框內預測的區塊。框內預測單元40A可基於與當前正被寫碼之區塊相同之圖框內的一或多個先前編碼區塊使用框內預測而產生預測區塊。基礎層熵編碼器46(例如)使用如在H.264/MPEG-4部分10 AVC標準中界定且以上關於圖2詳細描述的CAVLC而熵編碼自求和器48C輸出的係數。After quantization, summer 48C subtracts the intra-frame predicted blocks generated by in-frame prediction unit 40A from the quantized residual coefficients. In-frame prediction unit 40A may generate a prediction block using intra-frame prediction based on one or more previously encoded blocks within the same block as the block currently being coded. Base layer entropy encoder 46 entropy encodes the coefficients output from summer 48C, for example, using CAVLC as defined in the H.264/MPEG-4 Part 10 AVC standard and described above in detail with respect to FIG.

加強層編碼器32包括一預測單元33B、圖框儲存器35B、變換單元38B、量化單元40B、係數掃描單元41B、逆量化單元42B、逆變換單元44B、加強層熵編碼器49及求和器48D至48F。加強層編碼器32之單元大體上類似於基礎層編碼器30之經類似編號之彼等單元。因而,將僅描述差異。The enhancement layer encoder 32 includes a prediction unit 33B, a frame storage 35B, a transform unit 38B, a quantization unit 40B, a coefficient scanning unit 41B, an inverse quantization unit 42B, an inverse transform unit 44B, a boost layer entropy encoder 49, and a summer. 48D to 48F. The elements of enhancement layer encoder 32 are substantially similar to similarly numbered units of base layer encoder 30. Thus, only the differences will be described.

加強層編碼器32之預測單元33B產生為當前視訊區塊之預測型式的預測區塊。不同於基礎層編碼器30之使用基礎層之先前編碼區塊來產生預測區塊的預測單元33A,加強層編碼器32之預測單元33B可基於加強層之一或多個先前編碼區塊而產生預測區塊。加強層之經重建視訊區塊可處於高於基礎層之預測區塊之品質等級的第二品質等級。The prediction unit 33B of the enhancement layer encoder 32 generates a prediction block that is a prediction pattern of the current video block. Unlike the prediction unit 33A of the base layer encoder 30 that uses the previous coding block of the base layer to generate the prediction block, the prediction unit 33B of the enhancement layer encoder 32 may generate based on one or more previously coded blocks of the enhancement layer. Forecast block. The reconstructed video block of the enhancement layer may be at a second quality level that is higher than the quality level of the prediction block of the base layer.

加強層編碼器32與基礎層編碼器30之間的額外差異為,在求和器48F處將加強層編碼器32之逆量化單元42B的輸出與加強層編碼器30之逆量化單元42A的輸出組合。將逆量化單元42A與42B之輸出相加產生較高品質之經重建視訊區塊,因此允許上述預測單元進行的較好預測。An additional difference between the enhancement layer encoder 32 and the base layer encoder 30 is that the output of the inverse quantization unit 42B of the enhancement layer encoder 32 and the output of the inverse quantization unit 42A of the enhancement layer encoder 30 are at the summer 48F. combination. Adding the outputs of inverse quantization units 42A and 42B produces a higher quality reconstructed video block, thus allowing for better prediction by the prediction unit described above.

本發明中所描述之技術可以硬體、軟體、韌體或其任何組合來實施。描述為單元或組件之任何特徵可一起實施於整合邏輯設備中或單獨地實施為離散但可互操作的邏輯設備。若以軟體來實施,則技術可由包含指令之電腦可讀媒體至少部分地實現,當該等指令經執行時,執行上文所描述之一或多種方法。電腦可讀媒體可形成電腦程式產品之部分,該產品可包括包裝材料。電腦可讀媒體可包含諸如同步動態隨機存取記憶體(SDRAM)之隨機存取記憶體(RAM)、唯讀記憶體(ROM)、非揮發性隨機存取記憶體(NVRAM)、電可擦可程式唯讀記憶體(EEPROM)、快閃記憶體、磁性或光學資料儲存媒體,及其類似者。另外或替代地,該等技術可由載運或傳遞呈指令或資料結構之形式且可由電腦存取、讀取及/或執行的代碼之電腦可讀通信媒體至少部分地實現。The techniques described in this disclosure can be implemented in hardware, software, firmware, or any combination thereof. Any feature described as a unit or component can be implemented together in an integrated logic device or separately as a discrete but interoperable logical device. If implemented in software, the techniques may be at least partially implemented by a computer-readable medium comprising instructions which, when executed, perform one or more of the methods described above. The computer readable medium can form part of a computer program product, which can include packaging materials. The computer readable medium can include random access memory (RAM) such as synchronous dynamic random access memory (SDRAM), read only memory (ROM), non-volatile random access memory (NVRAM), electrically erasable Programmable read-only memory (EEPROM), flash memory, magnetic or optical data storage media, and the like. Additionally or alternatively, the techniques may be at least partially implemented by a computer readable communication medium carrying or transmitting code in the form of an instruction or data structure and accessible, readable, and/or executable by a computer.

代碼可由一或多個處理器執行,諸如一或多個數位信號處理器(DSP)、通用微處理器、特殊應用積體電路(ASIC)、場可程式邏輯陣列(FPGA)或其他等效整合或離散邏輯電路。因此,如本文所使用之術語"處理器"可指代任何前述結構或任何其他適於本文所描述之技術的實施之結構。此外,在一些態樣中,本文所描述之功能性可提供於經組態以用於編碼及解碼之專用軟體單元或硬體單元內,或併入於經組合之視訊編碼器-解碼器(CODEC)中。將不同特徵描繪為單元意欲突出所說明設備之不同功能態樣,且並不一定暗示此等單元必須藉由單獨硬體或軟體組件來實現。實情為,與一或多個單元相關聯之功能性可整合至共同或單獨硬體或軟體組件內。The code may be executed by one or more processors, such as one or more digital signal processors (DSPs), general purpose microprocessors, special application integrated circuits (ASICs), field programmable logic arrays (FPGAs), or other equivalent integrations. Or discrete logic circuits. Accordingly, the term "processor" as used herein may refer to any of the foregoing structures or any other structure suitable for implementation of the techniques described herein. Moreover, in some aspects, the functionality described herein may be provided within a dedicated software unit or hardware unit configured for encoding and decoding, or incorporated in a combined video encoder-decoder ( CODEC). The depiction of different features as a unit is intended to highlight different functional aspects of the illustrated device and does not necessarily imply that such elements must be implemented by separate hardware or software components. Rather, the functionality associated with one or more units can be integrated into a common or separate hardware or software component.

已描述各種實施例。此等及其他實施例在以下申請專利範圍之範疇內。Various embodiments have been described. These and other embodiments are within the scope of the following patent claims.

10...視訊傳輸系統10. . . Video transmission system

12...源設備12. . . Source device

14...目的地設備14. . . Destination device

14A...多個目的地設備14A. . . Multiple destination devices

14B...多個目的地設備14B. . . Multiple destination devices

16...通信頻道16. . . Communication channel

18...視訊源18. . . Video source

20...視訊編碼器20. . . Video encoder

22...傳輸器twenty two. . . Transmitter

24...接收器twenty four. . . receiver

26...視訊解碼器26. . . Video decoder

28...顯示設備28. . . display screen

30...基礎層編碼器30. . . Base layer encoder

32...加強層編碼器32. . . Reinforcement layer encoder

33A...預測單元33A. . . Forecasting unit

33B...預測單元33B. . . Forecasting unit

34...基礎層解碼器34. . . Base layer decoder

35A...圖框儲存器35A. . . Frame storage

35B...圖框儲存器35B. . . Frame storage

36...加強層解碼器36. . . Enhanced layer decoder

38A...變換單元38A. . . Transform unit

38B...變換單元38B. . . Transform unit

40A...量化單元40A. . . Quantization unit

40B...量化單元40B. . . Quantization unit

41A...係數掃描單元41A. . . Coefficient scanning unit

41B...係數掃描單元41B. . . Coefficient scanning unit

42A...逆量化單元42A. . . Inverse quantization unit

42B...逆量化單元42B. . . Inverse quantization unit

44A...逆變換單元44A. . . Inverse transform unit

44B...逆變換單元44B. . . Inverse transform unit

46...基礎層熵編碼器46. . . Base layer entropy encoder

48...求和器48. . . Summer

48A...求和器48A. . . Summer

48B...求和器48B. . . Summer

48C...求和器48C. . . Summer

48D...求和器48D. . . Summer

48E...求和器48E. . . Summer

48F...求和器48F. . . Summer

49...加強層熵編碼器49. . . Enhanced layer entropy encoder

50...分析單元50. . . Analysis unit

52...VLC表52. . . VLC table

52A~52N...VLC表52A~52N. . . VLC table

54...總係數編碼器54. . . Total coefficient encoder

56...尾隨的1(T1)編碼器56. . . Trailing 1 (T1) encoder

58...正負號編碼器58. . . Positive and negative encoder

60...係數量值編碼器60. . . Number value encoder

62...和運程編碼器62. . . And forward encoder

64...運程長度編碼器64. . . Run length encoder

66...EOB符號編碼器66. . . EOB symbol encoder

68...運程長度編碼器68. . . Run length encoder

69...VLC表69. . . VLC table

70...正負號編碼器70. . . Positive and negative encoder

72...基礎層熵解碼器72. . . Base layer entropy decoder

74A...係數掃描單元74A. . . Coefficient scanning unit

74B...係數掃描單元74B. . . Coefficient scanning unit

76A...逆量化單元76A. . . Inverse quantization unit

76B...逆量化單元76B. . . Inverse quantization unit

78A...逆變換單元78A. . . Inverse transform unit

78B...逆變換單元78B. . . Inverse transform unit

80A...預測單元80A. . . Forecasting unit

80B...預測單元80B. . . Forecasting unit

82A...圖框儲存器82A. . . Frame storage

82B...圖框儲存器82B. . . Frame storage

84A...求和器84A. . . Summer

84B...求和器84B. . . Summer

86...加強層熵解碼器86. . . Enhanced layer entropy decoder

90...總係數解碼器90. . . Total coefficient decoder

92...尾隨的1(T1)解碼器92. . . Trailing 1 (T1) decoder

94...正負號解碼器94. . . Positive and negative decoder

96...係數量值解碼器96. . . Number value decoder

98...和運程解碼器98. . . And luck decoder

100...運程長度解碼器100. . . Run length decoder

102...EOB符號解碼器102. . . EOB symbol decoder

104...運程長度解碼器104. . . Run length decoder

106...正負號解碼器106. . . Positive and negative decoder

110...視訊區塊110. . . Video block

120...係數區塊120. . . Coefficient block

170...實例可調節視訊編碼器170. . . Example adjustable video encoder

172...預測單元172. . . Forecasting unit

173...圖框儲存器173. . . Frame storage

174...變換單元174. . . Transform unit

175A...量化單元175A. . . Quantization unit

175B...量化單元175B. . . Quantization unit

176A...逆量化單元176A. . . Inverse quantization unit

176B...逆量化單元176B. . . Inverse quantization unit

177...逆變換單元177. . . Inverse transform unit

178...多工模組178. . . Multiplex module

179A...求和器179A. . . Summer

179B...求和器179B. . . Summer

179C...求和器179C. . . Summer

180...實例可調節視訊解碼器180. . . Example adjustable video decoder

181...解多工模組181. . . Multiplexed module

182A...逆量化單元182A. . . Inverse quantization unit

182B...逆量化單元182B. . . Inverse quantization unit

183...逆變換單元183. . . Inverse transform unit

184...預測單元184. . . Forecasting unit

185...圖框儲存器185. . . Frame storage

186A...求和器186A. . . Summer

186B...求和器186B. . . Summer

190...實例可調節視訊解碼器190. . . Example adjustable video decoder

191...解多工模組191. . . Multiplexed module

192A...逆量化單元192A. . . Inverse quantization unit

192B...逆量化單元192B. . . Inverse quantization unit

193A...逆變換單元193A. . . Inverse transform unit

193B...逆變換單元193B. . . Inverse transform unit

194...預測單元194. . . Forecasting unit

195...圖框儲存器195. . . Frame storage

196A...求和器196A. . . Summer

196B...求和器196B. . . Summer

200...實例視訊編碼器200. . . Example video encoder

圖1為說明一支援視訊可調節性之視訊傳輸系統的方塊圖。FIG. 1 is a block diagram showing a video transmission system supporting video adjustability.

圖2為進一步詳細地說明圖1之寫碼系統之源設備及目的地設備的方塊圖。2 is a block diagram showing the source device and destination device of the code writing system of FIG. 1 in further detail.

圖3為進一步詳細地說明實例基礎層編碼器及加強層編碼器的方塊圖。3 is a block diagram illustrating an example base layer encoder and enhancement layer encoder in further detail.

圖4為進一步詳細地說明實例基礎層熵編碼器及加強層熵編碼器的方塊圖。4 is a block diagram illustrating an example base layer entropy encoder and a enhancement layer entropy encoder in further detail.

圖5為進一步詳細地說明基礎層解碼器及加強層解碼器之實例的方塊圖。Figure 5 is a block diagram illustrating an example of a base layer decoder and an enhancement layer decoder in further detail.

圖6為進一步詳細地說明實例基礎層熵解碼器及加強層熵解碼器的方塊圖。6 is a block diagram illustrating an example base layer entropy decoder and a enhancement layer entropy decoder in further detail.

圖7為說明4x4係數區塊之Z字形掃描的概念圖。Figure 7 is a conceptual diagram illustrating a zigzag scan of a 4x4 coefficient block.

圖8為說明加強層視訊區塊之係數區塊之假設實例的概念圖。Figure 8 is a conceptual diagram illustrating a hypothetical example of coefficient blocks of a enhancement layer video block.

圖9為說明執行本發明之可調節視訊寫碼技術的視訊編碼器之實例操作的流程圖。9 is a flow chart illustrating an example operation of a video encoder that performs the adjustable video coding technique of the present invention.

圖10為說明根據本發明之一態樣之編碼加強層視訊區塊的剩餘係數之加強層編碼器的實例操作之流程圖。10 is a flow chart illustrating an example operation of a enhancement layer encoder that encodes residual coefficients of a enhancement layer video block in accordance with an aspect of the present invention.

圖11為說明解碼加強層位元流以獲得剩餘變換係數之向量的加強層解碼器之實例操作的流程圖。11 is a flow diagram illustrating an example operation of an enhancement layer decoder that decodes a enhancement layer bitstream to obtain a vector of residual transform coefficients.

圖12至圖15為說明根據本發明之用於可調節視訊寫碼中之編碼器及/或解碼器的不同組態之方塊圖。12 through 15 are block diagrams showing different configurations of an encoder and/or decoder for use in an adjustable video write code in accordance with the present invention.

(無元件符號說明)(no component symbol description)

Claims (66)

一種使用可調節視訊寫碼編碼視訊資料之方法,該方法包含:以一視訊寫碼裝置以一第一品質編碼一視訊區塊作為一基礎層位元流之部分;以該視訊寫碼裝置編碼該視訊區塊之精化作為至少一加強層位元流的部分,該等精化在與以該第一品質編碼之該視訊區塊組合時導致具有一大於該第一品質之第二品質的該視訊區塊,其中該視訊區塊之該等精化係在不執行收集在視訊寫碼表選擇中使用的統計數據之第一寫碼一次操作情況下編碼,其中該等精化為額外係數及現有係數之精化之至少一者,且其中編碼該等精化包含對於該視訊區塊之該等精化的每一非零係數而言編碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號,且以該視訊寫碼裝置將該視訊區塊之該等精化的該等非零係數之量值調整為等於一。 A method for encoding video data using an adjustable video writing code, the method comprising: encoding, by a video writing device, a video block as a part of a base layer bit stream by a first quality; encoding by the video writing device Refining the video block as part of at least one enhancement layer bitstream, the refinement resulting in a second quality greater than the first quality when combined with the video block encoded with the first quality The video block, wherein the refinement of the video block is encoded without performing a first write operation that collects statistical data used in video code table selection, wherein the refinement is an additional coefficient And at least one of the refinements of the existing coefficients, and wherein encoding the refinements includes encoding, for each non-zero coefficient of the refinement of the video block, a symbol indicating the presence of at least one residual non-zero coefficient, a run length indicating a number of zero value coefficients preceding the non-zero coefficient and a sign of the non-zero coefficient, and the amount of the non-zero coefficients refined by the video writing device to the video block Adjustment is equal to one. 如請求項1之方法,其中編碼該視訊區塊之該等精化包含在不分析任何後續係數的情況下編碼該等精化的每一非零係數。 The method of claim 1, wherein the refining the encoding of the video block comprises encoding each non-zero coefficient of the refinement without analyzing any subsequent coefficients. 如請求項1之方法,其進一步包含編碼一符號以指示在編碼一最後非零係數之後在該視訊區塊之該等精化中不 存在殘餘非零係數。 The method of claim 1, further comprising encoding a symbol to indicate that in the refinement of the video block after encoding a last non-zero coefficient There are residual non-zero coefficients. 如請求項1之方法,其中將該視訊區塊之該等精化的該等非零係數中之每一者之該量值調整為等於一包含在不編碼該等非零係數之量值的情況下編碼該等係數。 The method of claim 1, wherein the magnitude of each of the non-zero coefficients of the refinement of the video block is adjusted to be equal to a magnitude included in the non-zero coefficient The coefficients are encoded in the case. 如請求項1之方法,其中編碼該視訊區塊之該等精化作為該加強層位元流之部分包含編碼該視訊區塊之該等精化,使得該視訊區塊之該等精化的係數在不存取以該第一品質編碼為該基礎層位元流之部分的該視訊區塊之係數資訊的情況下為可解碼的。 The method of claim 1, wherein the refinement encoding the video block as part of the enhancement layer bitstream includes the refinement encoding the video block, such that the video block is refined. The coefficients are decodable without accessing coefficient information of the video block that is encoded by the first quality as part of the base layer bit stream. 如請求項1之方法,其進一步包含僅使用一單一可變長度寫碼(VLC)表來編碼該視訊區塊之該等精化。 The method of claim 1, further comprising encoding the refinement of the video block using only a single variable length code (VLC) table. 如請求項1之方法,其中以該第一品質編碼該視訊區塊作為該基礎層之部分包含使用一寫碼技術以該第一品質來編碼該視訊區塊,該寫碼技術在一第一寫碼一次操作中分析該視訊區塊之一係數向量,且基於該分析在第二寫碼一次操作中編碼該係數向量。 The method of claim 1, wherein encoding the video block with the first quality as part of the base layer comprises encoding the video block with the first quality using a write code technique, the write code technology being first A coefficient vector of one of the video blocks is analyzed in one operation of the code, and the coefficient vector is encoded in the second write once operation based on the analysis. 如請求項7之方法,其中:以該第一品質編碼該視訊區塊包含根據ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準使用一內容適應性可變長度寫碼(CAVLC)過程以該第一品質來編碼該視訊區塊;及編碼該視訊區塊之該等精化包含使用在該CAVLC過程中界定之VLC表中的一者來編碼該視訊區塊之該等精化。 The method of claim 7, wherein: encoding the video block with the first quality comprises using a content adaptive variable length according to the ITU-T H.264/MPEG-4 Part 10 Advanced Video Recording (AVC) standard A code-writing (CAVLC) process encodes the video block with the first quality; and the refining of the video block includes encoding the video block using one of the VLC tables defined in the CAVLC process Such refinement. 如請求項1之方法,其中該第一品質及該第二品質包含一第一訊雜比(SNR)及一第二訊雜比(SNR)中的一者與一第一空間解析度及一第二空間解析度中的一者。 The method of claim 1, wherein the first quality and the second quality comprise one of a first signal to noise ratio (SNR) and a second signal to noise ratio (SNR) and a first spatial resolution and one One of the second spatial resolutions. 一種使用可調節視訊寫碼編碼視訊資料之設備,該設備包含至少一編碼器以:以一第一品質編碼一視訊區塊作為一基礎層位元流之部分;編碼該視訊區塊之精化作為至少一加強層位元流的部分,該等精化在與以該第一品質編碼之該視訊區塊組合時導致具有一大於該第一品質之第二品質的該視訊區塊,其中該視訊區塊之該等精化係在不執行收集在視訊寫碼表選擇中使用的統計數據之第一寫碼一次操作情況下編碼,且其中該等精化為額外係數及現有係數之精化之至少一者;對於該視訊區塊之該等精化的每一非零係數而言編碼一指示存在至少一殘餘非零係數之符號、一指示一非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號,且將該視訊區塊之該等精化的該等非零係數之量值調整為等於一。 An apparatus for encoding video data using an adjustable video write code, the apparatus comprising at least one encoder for encoding a video block as a portion of a base layer bit stream by a first quality; encoding the video block refinement As part of the at least one enhancement layer bitstream, the refinement results in a video block having a second quality greater than the first quality when combined with the video block encoded with the first quality, wherein Such refinement of the video block is encoded without performing a first write once operation of collecting statistical data used in video code table selection, and wherein such refinement is refined for additional coefficients and existing coefficients At least one of; for each non-zero coefficient of the refinement of the video block, encoding a number indicating a presence of at least one residual non-zero coefficient, and a number indicating a non-zero coefficient The length of the run length and a sign of the non-zero coefficient, and the magnitude of the non-zero coefficients of the refined portions of the video block are adjusted to be equal to one. 如請求項10之設備,其中該至少一編碼器在不分析任何後續係數的情況下編碼該等精化的每一非零係數。 The apparatus of claim 10, wherein the at least one encoder encodes each of the non-zero coefficients of the refinements without analyzing any subsequent coefficients. 如請求項10之設備,其中該至少一編碼器編碼一符號以指示在編碼一最後非零係數之後在該視訊區塊之該等精 化中不存在殘餘非零係數。 The device of claim 10, wherein the at least one encoder encodes a symbol to indicate that the video block is in the video block after encoding a last non-zero coefficient There are no residual non-zero coefficients in the chemistry. 如請求項10之設備,其中該至少一編碼器在不編碼該等非零係數之量值的情況下編碼該等係數。 The device of claim 10, wherein the at least one encoder encodes the coefficients without encoding the magnitude of the non-zero coefficients. 如請求項10之設備,其中該至少一編碼器編碼該視訊區塊之該等精化,使得該視訊區塊之該等精化的係數在不存取以該第一品質編碼為該基礎層位元流之部分的該視訊區塊之係數資訊的情況下為可解碼的。 The device of claim 10, wherein the at least one encoder encodes the refinement of the video block such that the refined coefficients of the video block are encoded as the base layer without accessing the first quality. The coefficient information of the video block of the portion of the bit stream is decodable. 如請求項10之設備,其中該至少一編碼器僅使用一單一可變長度寫碼(VLC)表來編碼該視訊區塊之該等精化。 The device of claim 10, wherein the at least one encoder encodes the refinements of the video block using only a single variable length code (VLC) table. 如請求項10之設備,其中該至少一編碼器使用一寫碼技術以該第一品質來編碼該視訊區塊,該寫碼技術在一第一寫碼一次操作中分析該視訊區塊之一係數向量,且基於該分析在第二寫碼一次操作中編碼該係數向量。 The device of claim 10, wherein the at least one encoder encodes the video block with the first quality using a write code technique, and the write code technique analyzes one of the video blocks in a first write code operation A coefficient vector, and the coefficient vector is encoded in a second write once operation based on the analysis. 如請求項16之設備,其中該至少一編碼器:以該第一品質編碼該視訊區塊包含根據ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準使用一內容適應性可變長度寫碼(CAVLC)過程以該第一品質來編碼該視訊區塊;及編碼該視訊區塊之該等精化包含使用在該CAVLC過程中界定之VLC表中的一者來編碼該視訊區塊之該等精化。 The device of claim 16, wherein the at least one encoder: encoding the video block with the first quality comprises using a content according to the ITU-T H.264/MPEG-4 Part 10 Advanced Video Recording (AVC) standard An adaptive variable length write code (CAVLC) process encodes the video block with the first quality; and the refinement encoding the video block includes using one of the VLC tables defined in the CAVLC process Encoding such refinements of the video block. 如請求項10之設備,其中該第一品質及該第二品質包含一第一訊雜比(SNR)及一第二訊雜比(SNR)中的一者與一第一空間解析度及一第二空間解析度中的一者。 The device of claim 10, wherein the first quality and the second quality comprise one of a first signal to noise ratio (SNR) and a second signal to noise ratio (SNR) and a first spatial resolution and one One of the second spatial resolutions. 如請求項10之設備,其中該至少一編碼器包含:一基礎層編碼器,該基礎層編碼器以該第一品質編碼該視訊區塊作為一基礎層位元流之部分,及一加強層編碼器,該加強層編碼器編碼該視訊區塊之精化作為該至少一加強層位元流的部分,該等精化在與以該第一品質編碼之該視訊區塊組合時導致具有大於該第一品質之該第二品質的該視訊區塊。 The device of claim 10, wherein the at least one encoder comprises: a base layer encoder, the base layer encoder encoding the video block as a part of a base layer bit stream by the first quality, and a reinforcement layer An encoder, the enhancement layer encoder encoding the refinement of the video block as part of the at least one enhancement layer bitstream, the refinements causing greater than being combined with the video block encoded with the first quality The second quality of the first quality of the video block. 如請求項10之設備,其中該設備包含一無線通信設備。 The device of claim 10, wherein the device comprises a wireless communication device. 如請求項10之設備,其中該設備包含一積體電路設備。 The device of claim 10, wherein the device comprises an integrated circuit device. 一種包含指令之電腦可讀媒體,該等指令使得一或多個處理器進行以下操作:以一第一品質編碼一視訊區塊作為一基礎層位元流之部分;及編碼該視訊區塊之精化作為至少一加強層位元流的部分,該等精化在與以該第一品質編碼之該視訊區塊組合時導致具有一大於該第一品質之第二品質的該視訊區塊,其中該視訊區塊之該等精化係在不執行收集在視訊寫碼表選擇中使用的統計數據之第一寫碼一次操作情況下編碼,其中該等精化為額外係數及現有係數之精化之至少一者,且其中使得該一或多個處理器編碼該等精化之該等指令包含多個指令,該等指令使得一或多個處理器對於該視訊區塊之該等精化的每一非零係數而言編碼一指示存在 至少一殘餘非零係數之符號、一指示一非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號;且將該視訊區塊之該等精化的該等非零係數之量值調整為等於一。 A computer readable medium containing instructions for causing one or more processors to: encode a video block as a portion of a base layer bit stream with a first quality; and encode the video block Refining as part of at least one enhancement layer bitstream, the refinement resulting in a video block having a second quality greater than the first quality when combined with the video block encoded with the first quality, The refinement of the video block is encoded without performing a first write operation of collecting the statistical data used in the video code table selection, wherein the refinement is an extra coefficient and an existing coefficient. At least one of the instructions, and wherein the instructions that cause the one or more processors to encode the refinements include a plurality of instructions that cause one or more processors to refine the video blocks Coded presence indication for each non-zero coefficient a symbol of at least one residual non-zero coefficient, a run length indicating a number of zero value coefficients before a non-zero coefficient, and a sign of the non-zero coefficient; and the non-refining of the video block The magnitude of the zero coefficient is adjusted to be equal to one. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器在不分析任何後續係數的情況下編碼該等精化的每一非零係數。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode each of the non-zero coefficients of the refinement without analyzing any subsequent coefficients. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器編碼一符號以指示在編碼一最後非零係數之後在該視訊區塊之該等精化中不存在殘餘非零係數。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode a symbol to indicate that there is no residual non-zero in the refinement of the video block after encoding a last non-zero coefficient coefficient. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器在不編碼該等非零係數之量值的情況下編碼該等係數。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode the coefficients without encoding the magnitude of the non-zero coefficients. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器編碼該視訊區塊之該等精化,使得該視訊區塊之該等精化的係數在不存取以該第一品質編碼為該基礎層位元流之部分的該視訊區塊之係數資訊的情況下為可解碼的。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode the refinement of the video block such that the refined coefficients of the video block are not accessed The first quality code is decodable in the case of coefficient information of the video block of the portion of the base layer bit stream. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器僅使用一單一可變長度寫碼(VLC)表來編碼該視訊區塊之該等精化。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode the refinement of the video block using only a single variable length code (VLC) table. 如請求項22之電腦可讀媒體,其中該等指令使得一或多個處理器使用一寫碼技術以該第一品質來編碼該視訊區 塊,該寫碼技術在一第一寫碼一次操作中分析該視訊區塊之一係數向量,且基於該分析在第二寫碼一次操作中編碼該係數向量。 The computer readable medium of claim 22, wherein the instructions cause the one or more processors to encode the video zone with the first quality using a write code technique Block, the write code technique analyzes a coefficient vector of the video block in a first write once operation, and encodes the coefficient vector in a second write once operation based on the analysis. 如請求項28之電腦可讀媒體,其中該等指令使得一或多個處理器進行以下操作:以該第一品質編碼該視訊區塊包含根據ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準使用一內容適應性可變長度寫碼(CAVLC)過程以該第一品質來編碼該視訊區塊;及編碼該視訊區塊之該等精化包含使用在該CAVLC過程中界定之VLC表中的一者來編碼該視訊區塊之該等精化。 The computer readable medium of claim 28, wherein the instructions cause the one or more processors to: encode the video block with the first quality comprising 10 according to ITU-T H.264/MPEG-4 An audiovisual write code (AVC) standard uses a content adaptive variable length write code (CAVLC) process to encode the video block at the first quality; and the refinement encoding the video block includes use in the CAVLC One of the VLC tables defined in the process encodes the refinement of the video block. 如請求項22之電腦可讀媒體,其中該第一品質及該第二品質包含一第一訊雜比(SNR)及一第二訊雜比(SNR)中的一者與一第一空間解析度及一第二空間解析度中的一者。 The computer readable medium of claim 22, wherein the first quality and the second quality comprise one of a first signal to noise ratio (SNR) and a second signal to noise ratio (SNR) and a first spatial resolution One of the degree and a second spatial resolution. 一種使用可調節視訊寫碼編碼視訊資料之設備,該設備包含:用於以一第一品質編碼一視訊區塊作為一基礎層位元流之部分的第一構件;及用於編碼該視訊區塊之精化作為至少一加強層位元流的部分之第二構件,該等精化在與以該第一品質編碼之該視訊區塊組合時導致具有一大於該第一品質之第二品質的該視訊區塊,其中該視訊區塊之該等精化係在不執 行收集在視訊寫碼表選擇中使用的統計數據之第一寫碼一次操作情況下編碼,其中該等精化為額外係數及現有係數之精化之至少一者,且其中該第二編碼構件對於該視訊區塊之該等精化的每一非零係數而言編碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之該數目的運程長度及該非零係數的一正負號,且其中該第二編碼構件將該視訊區塊之該等精化的該等非零係數之量值調整為等於一。 An apparatus for encoding video data using an adjustable video write code, the apparatus comprising: a first component for encoding a video block as a portion of a base layer bit stream with a first quality; and for encoding the video zone Refining the block as a second component of at least one portion of the enhancement layer bitstream, the refinement resulting in a second quality greater than the first quality when combined with the video block encoded with the first quality The video block, wherein the refinement of the video block is not implemented Rows are encoded in a case where the first write code of the statistical data used in the selection of the video code table is encoded in one operation, wherein the refinement is at least one of the extra coefficient and the refinement of the existing coefficients, and wherein the second coding component Encoding, for each non-zero coefficient of the refinement of the video block, a symbol indicating the presence of at least one residual non-zero coefficient, a run length indicating the number of zero-value coefficients preceding the non-zero coefficient, and the non-zero a sign of the coefficient, and wherein the second encoding means adjusts the magnitudes of the non-zero coefficients refined by the video blocks to be equal to one. 如請求項31之設備,其中該第二編碼構件在不分析任何後續係數的情況下編碼該等精化的每一非零係數。 The apparatus of claim 31, wherein the second encoding component encodes each non-zero coefficient of the refinements without analyzing any subsequent coefficients. 如請求項32之設備,其中該第二編碼構件編碼一符號以指示在編碼一最後非零係數之後在該視訊區塊之該等精化中不存在殘餘非零係數。 The apparatus of claim 32, wherein the second encoding component encodes a symbol to indicate that there are no residual non-zero coefficients in the refinement of the video block after encoding a last non-zero coefficient. 如請求項31之設備,其中該第二編碼構件在不編碼該等非零係數之量值的情況下編碼該等係數。 The apparatus of claim 31, wherein the second encoding component encodes the coefficients without encoding the magnitude of the non-zero coefficients. 如請求項31之設備,其中該第二編碼構件編碼該視訊區塊之該等精化,使得該視訊區塊之該等精化的係數在不存取以該第一品質編碼為該基礎層位元流之部分的該視訊區塊之係數資訊的情況下為可解碼的。 The device of claim 31, wherein the second encoding component encodes the refinement of the video block such that the refined coefficients of the video block are encoded as the base layer without accessing the first quality. The coefficient information of the video block of the portion of the bit stream is decodable. 如請求項31之設備,其中該第二編碼構件僅使用一單一可變長度寫碼(VLC)表來編碼該視訊區塊之該等精化。 The device of claim 31, wherein the second encoding component encodes the refinements of the video block using only a single variable length write code (VLC) table. 如請求項31之設備,其中該第一編碼構件以該第一品質編碼該視訊區塊作為該基礎層之部分包含使用一寫碼技 術以該第一品質來編碼該視訊區塊,該寫碼技術在一第一寫碼一次操作中分析該視訊區塊之一係數向量,且基於該分析在第二寫碼一次操作中編碼該係數向量。 The device of claim 31, wherein the first encoding component encodes the video block with the first quality as part of the base layer comprises using a code writing technique The video block is encoded by the first quality, and the code writing technique analyzes a coefficient vector of the video block in a first write operation, and encodes the second code in one operation based on the analysis. Coefficient vector. 如請求項37之設備,其中該第一編碼構件進行以下操作:以該第一品質編碼該視訊區塊包含根據ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準使用一內容適應性可變長度寫碼(CAVLC)過程以該第一品質來編碼該視訊區塊;及編碼該視訊區塊之該等精化包含使用在該CAVLC過程中界定之VLC表中的一者來編碼該視訊區塊之該等精化。 The device of claim 37, wherein the first encoding component performs the operation of encoding the video block with the first quality according to the ITU-T H.264/MPEG-4 Part 10 Advanced Video Recording (AVC) standard The video block is encoded with the first quality using a content adaptive variable length write code (CAVLC) process; and the refinement encoding the video block includes use in a VLC table defined in the CAVLC process One encodes the refinement of the video block. 如請求項31之設備,其中該第一品質及該第二品質包含一第一訊雜比(SNR)及一第二訊雜比(SNR)中的一者與一第一空間解析度及一第二空間解析度中的一者。 The device of claim 31, wherein the first quality and the second quality comprise one of a first signal to noise ratio (SNR) and a second signal to noise ratio (SNR) and a first spatial resolution and one One of the second spatial resolutions. 一種使用可調節視訊寫碼解碼視訊資料之方法,該方法包含:以一視訊寫碼裝置解碼一基礎層位元流以獲得一第一品質的一視訊區塊;以該視訊寫碼裝置解碼一加強層位元流以獲得該視訊區塊之精化,該等精化在與該第一品質的經解碼的該視訊區塊組合時導致具有一第二品質的該視訊區塊,其中該等精化為額外係數及現有係數之精化之至少一者,且 其中解碼該加強層包括對於該視訊區塊之該等精化的每一非零係數而言解碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號;且以該視訊寫碼裝置將該每一非零係數的一量值設定為等於一。 A method for decoding video data using an adjustable video write code, the method comprising: decoding a base layer bit stream by a video writing device to obtain a video block of a first quality; decoding the video device by the video writing device Enhancing the layer bitstream to obtain refinement of the video block, the refinement causing the video block having a second quality when combined with the decoded first video block of the first quality, wherein the video blocks Refined to at least one of the additional coefficients and the refinement of the existing coefficients, and Decoding the enhancement layer includes decoding, for each non-zero coefficient of the refinement of the video block, a symbol indicating the presence of at least one residual non-zero coefficient, and a number indicating a zero-value coefficient before the non-zero coefficient The length of the run length and a sign of the non-zero coefficient; and the video code writing device sets a magnitude of each non-zero coefficient equal to one. 如請求項40之方法,其進一步包含在一最後非零係數之後解碼一指示在該視訊區塊之該等精化中不存在殘餘非零係數的符號。 The method of claim 40, further comprising decoding a symbol indicating that there are no residual non-zero coefficients in the refinements of the video block after a last non-zero coefficient. 如請求項41之方法,其進一步包含使用每一係數之該經解碼之運程、每一係數之該正負號及指示不存在殘餘非零係數的該符號來產生該視訊區塊之該等精化的係數之一向量。 The method of claim 41, further comprising generating the refinement of the video block using the decoded run of each coefficient, the sign of each coefficient, and the symbol indicating the absence of residual non-zero coefficients One of the coefficients of the vector. 如請求項40之方法,其中解碼該視訊區塊之該等精化包含在不存取以該第一品質編碼之該視訊區塊的係數資訊的情況下解碼該視訊區塊之該等精化。 The method of claim 40, wherein the refining the decoding of the video block comprises decoding the refinement of the video block without accessing coefficient information of the video block encoded by the first quality. . 如請求項40之方法,其進一步包含僅使用一單一可變長度寫碼(VLC)表來解碼該視訊區塊之該等精化。 The method of claim 40, further comprising decoding the refinement of the video block using only a single variable length code (VLC) table. 如請求項44之方法,其中該單一VLC表包含在如界定於ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準中之CAVLC中所規定的VLC表中之一者。 The method of claim 44, wherein the single VLC table comprises one of the VLC tables specified in a CAVLC as defined in the ITU-T H.264/MPEG-4 Part 10 Advanced Video Write Code (AVC) standard. By. 一種使用可調節視訊寫碼解碼視訊資料之設備,該設備包含至少一解碼器,其:解碼一基礎層位元流以獲得一第一品質的一視訊區 塊;解碼一加強層位元流以獲得該視訊區塊之精化,該等精化在與該第一品質的經解碼的該視訊區塊組合時導致具有一第二品質的該視訊區塊,其中該等精化為額外係數及現有係數之精化之至少一者,且其中該至少一解碼器對於該視訊區塊之該等精化的每一非零係數而言解碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號;且將該每一非零係數的一量值設定為等於一。 An apparatus for decoding video data using an adjustable video write code, the apparatus comprising at least one decoder for: decoding a base layer bitstream to obtain a first quality video zone Decoding a enhancement layer bitstream to obtain refinement of the video block, the refinement causing the video block having a second quality when combined with the decoded first video block of the first quality And wherein the refinement is at least one of an additional coefficient and a refinement of the existing coefficients, and wherein the at least one decoder decodes an indication for each of the non-zero coefficients of the refinement of the video block. a sign of a residual non-zero coefficient, a run length indicating a number of zero values before the non-zero coefficient, and a sign of the non-zero coefficient; and setting a magnitude of each non-zero coefficient equal to one. 如請求項46之設備,其中該至少一解碼器在一最後非零係數之後解碼一指示在該視訊區塊之該等精化中不存在殘餘非零係數的符號。 The apparatus of claim 46, wherein the at least one decoder decodes a symbol indicating that there are no residual non-zero coefficients in the refinement of the video block after a last non-zero coefficient. 如請求項47之設備,其中該至少一解碼器使用每一係數之該經解碼之運程、每一係數之該正負號及指示不存在殘餘非零係數的該符號來產生該視訊區塊之該等精化的係數之一向量。 The device of claim 47, wherein the at least one decoder generates the video block by using the decoded path of each coefficient, the sign of each coefficient, and the symbol indicating that there is no residual non-zero coefficient One of the coefficients of the refined coefficients. 如請求項46之設備,其中該至少一解碼器在不存取以該第一品質編碼之該視訊區塊的係數資訊的情況下解碼該視訊區塊之該等精化。 The device of claim 46, wherein the at least one decoder decodes the refinement of the video block without accessing coefficient information of the video block encoded by the first quality. 如請求項46之設備,其中該至少一解碼器僅使用一單一可變長度寫碼(VLC)表來解碼該視訊區塊的該等精化。 The device of claim 46, wherein the at least one decoder decodes the refinement of the video block using only a single variable length write code (VLC) table. 如請求項50之設備,其中該單一VLC表包含在如界定於 ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準中之CAVLC中所規定的VLC表中之一者。 The device of claim 50, wherein the single VLC table is included as defined in One of the VLC tables specified in the CAVLC in the ITU-T H.264/MPEG-4 Part 10 Advanced Video Recording (AVC) standard. 如請求項46之設備,其中該至少一解碼器包含:一基礎層解碼器,該基礎層解碼器以該第一品質解碼該基礎層位元流以獲得該視訊區塊;及一加強層解碼器,該加強層解碼器解碼該加強層位元流以獲得該視訊區塊的該等精化。 The device of claim 46, wherein the at least one decoder comprises: a base layer decoder that decodes the base layer bitstream with the first quality to obtain the video block; and an enhancement layer decoding The enhancement layer decoder decodes the enhancement layer bitstream to obtain such refinements of the video block. 如請求項46之設備,其中該設備包含一無線通信設備。 The device of claim 46, wherein the device comprises a wireless communication device. 如請求項46之設備,其中該設備包含一積體電路設備。 The device of claim 46, wherein the device comprises an integrated circuit device. 一種包含指令之電腦可讀媒體,該等指令使得一或多個處理器進行以下操作:解碼一基礎層位元流以獲得一第一品質的一視訊區塊;解碼一加強層位元流以獲得該視訊區塊之精化,該等精化在與該第一品質的經解碼的該視訊區塊組合時導致具有一第二品質的該視訊區塊,其中該等精化為額外係數及現有係數之精化之至少一者,且其中該等指令使得該一或多個處理器對於該視訊區塊之該等精化的每一非零係數而言解碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號;且將該每一非零係數的一量值設定為等於一。 A computer readable medium containing instructions for causing one or more processors to: decode a base layer bitstream to obtain a video block of a first quality; and decode an enhancement layer bitstream to Obtaining the refinement of the video block, the refinement, when combined with the decoded video block of the first quality, results in the video block having a second quality, wherein the refinement is an additional coefficient and At least one of the refinements of the existing coefficients, and wherein the instructions cause the one or more processors to decode one for each of the non-zero coefficients of the refinement of the video block indicating that there is at least one residual non-zero a sign of the coefficient, a run length indicating the number of one of the zero value coefficients before the non-zero coefficient, and a sign of the non-zero coefficient; and setting a magnitude of each non-zero coefficient equal to one. 如請求項55之電腦可讀媒體,其中該等指令使得一或多 個處理器在一最後非零係數之後解碼一指示在該視訊區塊之該等精化中不存在殘餘非零係數的符號。 The computer readable medium of claim 55, wherein the instructions cause one or more The processor decodes a symbol indicating that there are no residual non-zero coefficients in the refinement of the video block after a final non-zero coefficient. 如請求項56之電腦可讀媒體,其中該等指令使得一或多個處理器使用每一係數之該經解碼之運程、每一係數之該正負號及指示不存在殘餘非零係數的該符號來產生該視訊區塊之該等精化的係數之一向量。 The computer readable medium of claim 56, wherein the instructions cause the one or more processors to use the decoded fortra of each coefficient, the sign of each coefficient, and the symbol indicating that there are no residual non-zero coefficients Generating a vector of such refined coefficients of the video block. 如請求項55之電腦可讀媒體,其中該等指令使得一或多個處理器在不存取以該第一品質編碼之該視訊區塊的係數資訊的情況下解碼該視訊區塊的該等精化。 The computer readable medium of claim 55, wherein the instructions cause the one or more processors to decode the video block without accessing coefficient information of the video block encoded by the first quality Refined. 如請求項55之電腦可讀媒體,其中該等指令使得一或多個處理器僅使用一單一可變長度寫碼(VLC)表來解碼該視訊區塊之該等精化。 The computer readable medium of claim 55, wherein the instructions cause the one or more processors to decode the refinement of the video block using only a single variable length write code (VLC) table. 如請求項59之電腦可讀媒體,其中該單一VLC表包含在如界定於ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準中之CAVLC中所規定的VLC表中之一者。 The computer readable medium of claim 59, wherein the single VLC table comprises a VLC table as defined in a CAVLC as defined in the ITU-T H.264/MPEG-4 Part 10 Advanced Video Code (AVC) standard One of them. 一種使用可調節視訊寫碼解碼視訊資料之設備,該設備包含:用於解碼一基礎層位元流以獲得一第一品質的一視訊區塊之第一構件;及用於解碼一加強層位元流以獲得該視訊區塊之精化的第二構件,該等精化在與該第一品質的經解碼的該視訊區塊組合時導致具有一第二品質的該視訊區塊,其中該等精化為額外係數及現有係數之精化之至少一者,且 其中該第二解碼構件對於該視訊區塊之該等精化的每一非零係數而言解碼一指示存在至少一殘餘非零係數之符號、一指示該非零係數之前的零值係數之一數目的運程長度及該非零係數的一正負號;及將該每一非零係數的一量值設定為等於一之構件。 An apparatus for decoding video data using an adjustable video write code, the apparatus comprising: a first component for decoding a base layer bitstream to obtain a first quality video block; and for decoding a reinforcement layer a stream stream to obtain a second component of the refinement of the video block, the refinement causing the video block having a second quality when combined with the decoded video block of the first quality, wherein the video stream Refining to at least one of the additional coefficients and the refinement of the existing coefficients, and The second decoding component decodes, for each of the non-zero coefficients of the refinement of the video block, a symbol indicating that there is at least one residual non-zero coefficient, and a number indicating a zero-value coefficient before the non-zero coefficient The length of the run length and a sign of the non-zero coefficient; and setting a magnitude of each non-zero coefficient to be equal to one. 如請求項61之設備,其中該第二解碼構件在一最後非零係數之後解碼一指示在該視訊區塊之該等精化中不存在殘餘非零係數的符號。 The apparatus of claim 61, wherein the second decoding component decodes a symbol indicating that there are no residual non-zero coefficients in the refinement of the video block after a last non-zero coefficient. 如請求項62之設備,其進一步包含用於使用每一係數之該經解碼之運程、每一係數之該正負號及指示不存在殘餘非零係數的該符號來產生該視訊區塊之該等精化的係數之一向量之構件。 The device of claim 62, further comprising: the decoded run of each coefficient, the sign of each coefficient, and the symbol indicating the absence of residual non-zero coefficients to generate the video block A component of the vector of refined coefficients. 如請求項61之設備,其中該第二解碼構件在不存取以該第一品質編碼之該視訊區塊的係數資訊的情況下解碼該視訊區塊之該等精化。 The device of claim 61, wherein the second decoding component decodes the refinement of the video block without accessing coefficient information of the video block encoded by the first quality. 如請求項61之設備,其中該第二解碼構件僅使用一單一可變長度寫碼(VLC)表來解碼該視訊區塊之該等精化。 The device of claim 61, wherein the second decoding component decodes the refinement of the video block using only a single variable length write code (VLC) table. 如請求項65之設備,其中該單一VLC表包含在如界定於ITU-T H.264/MPEG-4部分10進階視訊寫碼(AVC)標準中之CAVLC中所規定的VLC表中之一者。The device of claim 65, wherein the single VLC table comprises one of the VLC tables specified in a CAVLC as defined in the ITU-T H.264/MPEG-4 Part 10 Advanced Video Recording Code (AVC) standard. By.
TW97139596A 2007-10-15 2008-10-15 Method, device, and computer-readable medium of improved enhancement layer coding for scalable video coding TWI408965B (en)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
US97991907P 2007-10-15 2007-10-15
US98021407P 2007-10-16 2007-10-16
US12/250,784 US8848787B2 (en) 2007-10-15 2008-10-14 Enhancement layer coding for scalable video coding

Publications (2)

Publication Number Publication Date
TW200934250A TW200934250A (en) 2009-08-01
TWI408965B true TWI408965B (en) 2013-09-11

Family

ID=40344656

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97139596A TWI408965B (en) 2007-10-15 2008-10-15 Method, device, and computer-readable medium of improved enhancement layer coding for scalable video coding

Country Status (9)

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

Families Citing this family (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8306153B2 (en) * 2009-09-21 2012-11-06 Techwell Llc Method and system for tracking phase in a receiver for 8VSB
CN105812827B (en) * 2010-07-21 2019-04-16 杜比实验室特许公司 Coding/decoding method for the transmission of multilayer frame compatible video
US8634668B2 (en) * 2011-02-25 2014-01-21 Sony Corporation Method of compression of digital images using a fixed number of bits per block
US20120257675A1 (en) * 2011-04-11 2012-10-11 Vixs Systems, Inc. Scalable video codec encoder device and methods thereof
US9578326B2 (en) * 2012-04-04 2017-02-21 Qualcomm Incorporated Low-delay video buffering in video coding
US9602841B2 (en) * 2012-10-30 2017-03-21 Texas Instruments Incorporated System and method for decoding scalable video coding
JP6082123B2 (en) * 2012-11-29 2017-02-15 エルジー エレクトロニクス インコーポレイティド Video encoding / decoding method supporting multiple layers
RU2720605C2 (en) * 2012-12-26 2020-05-12 Сони Корпорейшн Image processing device and method
US9992493B2 (en) * 2013-04-01 2018-06-05 Qualcomm Incorporated Inter-layer reference picture restriction for high level syntax-only scalable video coding
GB2512829B (en) * 2013-04-05 2015-05-27 Canon Kk Method and apparatus for encoding or decoding an image with inter layer motion information prediction according to motion information compression scheme
US9848199B2 (en) * 2014-03-17 2017-12-19 Qualcomm Incorporated Device and method for scalable coding of video information

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060171463A1 (en) * 2003-02-28 2006-08-03 Media Glue Corporation Apparatus, system for, method of and computer program product for separating and merging coded signal
US20070211950A1 (en) * 2006-03-08 2007-09-13 Masato Shima VLC Technique for Layered Video Coding Using Distinct Element Grouping

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2003045067A1 (en) * 2001-11-21 2003-05-30 Koninklijke Philips Electronics N.V. Improved bit plane compression method
JP4447197B2 (en) * 2002-01-07 2010-04-07 三菱電機株式会社 Moving picture encoding apparatus and moving picture decoding apparatus
KR100953677B1 (en) * 2002-01-22 2010-04-20 노키아 코포레이션 Coding transform coefficients in image/video encoders and/or decoders
JP3893350B2 (en) * 2002-11-29 2007-03-14 キヤノン株式会社 Encoded data conversion apparatus and method
JP4014098B2 (en) * 2003-06-26 2007-11-28 株式会社Kddi研究所 Image hierarchical encoding apparatus and decoding apparatus
KR100736086B1 (en) * 2005-09-06 2007-07-06 삼성전자주식회사 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
KR100763192B1 (en) * 2005-09-26 2007-10-04 삼성전자주식회사 Method and apparatus for entropy encoding and entropy decoding FGS layer's video data
KR100714706B1 (en) * 2005-09-26 2007-05-04 삼성전자주식회사 Method and apparatus for enhancing performance of entropy coding, video coding method and apparatus using the method
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
KR100834757B1 (en) * 2006-03-28 2008-06-05 삼성전자주식회사 Method for enhancing entropy coding efficiency, video encoder and video decoder thereof

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060171463A1 (en) * 2003-02-28 2006-08-03 Media Glue Corporation Apparatus, system for, method of and computer program product for separating and merging coded signal
US20070211950A1 (en) * 2006-03-08 2007-09-13 Masato Shima VLC Technique for Layered Video Coding Using Distinct Element Grouping

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
Yan Ye, et al, "Adaptive Variable Length Coding for FGS," JVT-T086, 2006。 *

Also Published As

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

Similar Documents

Publication Publication Date Title
TWI408965B (en) Method, device, and computer-readable medium of improved enhancement layer coding for scalable video coding
US8848787B2 (en) Enhancement layer coding for scalable video coding
TWI501648B (en) Layered encoded bitstream structure
JP5795416B2 (en) A scalable video coding technique for scalable bit depth
JP4981927B2 (en) CAVLC extensions for SVCCGS enhancement layer coding
RU2452128C2 (en) Adaptive coding of video block header information
RU2463729C2 (en) Separable directional transforms
US8594187B2 (en) Efficient video block mode changes in second pass video coding
TWI445408B (en) Video coding using transforms bigger than 4x4 and 8x8
JP5259828B2 (en) Video coding using transforms larger than 4x4 and 8x8
KR20090005075A (en) Methods and systems for refinement coefficient coding in video compression
US8395991B2 (en) Non-scalable to scalable video converter
US9503724B2 (en) Interleave block processing ordering for video data coding
Martínez et al. DISTRIBUTED VIDEO CODING IN TRANSFORM DOMAIN