TWI734178B - Coding transform coefficients with throughput constraints - Google Patents

Coding transform coefficients with throughput constraints Download PDF

Info

Publication number
TWI734178B
TWI734178B TW108130206A TW108130206A TWI734178B TW I734178 B TWI734178 B TW I734178B TW 108130206 A TW108130206 A TW 108130206A TW 108130206 A TW108130206 A TW 108130206A TW I734178 B TWI734178 B TW I734178B
Authority
TW
Taiwan
Prior art keywords
flag
block
sub
decoding
syntax elements
Prior art date
Application number
TW108130206A
Other languages
Chinese (zh)
Other versions
TW202017381A (en
Inventor
向時達
莊子德
陳慶曄
Original Assignee
聯發科技股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Priority claimed from US16/548,340 external-priority patent/US11483575B2/en
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW202017381A publication Critical patent/TW202017381A/en
Application granted granted Critical
Publication of TWI734178B publication Critical patent/TWI734178B/en

Links

Images

Landscapes

  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

A video coder that constrains the total number of regular bins used for entropy coding syntax elements of a current block is provided. The video coder entropy encodes or decodes the syntax elements selectively as either regular bins using context modeling or as bypass bins without context modeling. A constraint is specified to limit a total number of regular bins used for entropy coding the syntax elements of the current block. There may be no constraint limiting a number of regular bins specific to an individual syntax element of the current block.

Description

具有產出限制的編碼轉換係數Coding conversion coefficient with output limitation

本公開總體上涉及視訊處理。 特別地,本公開涉及編解碼變換係數的方法。The present disclosure generally relates to video processing. In particular, the present disclosure relates to a method of encoding and decoding transform coefficients.

除非本文另外指出,否則本節中描述的方法不是後面列出的申請專利範圍的現有技術,並且不被包括在本節中而被承認為現有技術。Unless otherwise indicated herein, the methods described in this section are not prior art within the scope of the patent application listed below, and are not included in this section but are recognized as prior art.

高效視訊編解碼(HEVC)是由視訊編解碼聯合協作團隊(JCT-VC)開發的最新國際視訊編解碼標準。從重構信號預測輸入視訊信號,該重構信號是從編解碼圖片區域得出的。預測殘差信號通過線性變換進行處理。量化變換係數,並與位元流中的其他輔助資訊(side information)一起進行熵編解碼。在對去量化的變換係數進行逆變換之後,從預測信號和重構殘差信號生成重構信號。通過環路濾波進一步處理重構的信號以去除編解碼偽像。解碼的圖像存儲在幀緩衝器中,以預測輸入視訊信號中的未來圖像。High Efficiency Video Codec (HEVC) is the latest international video codec standard developed by the Joint Video Codec Team (JCT-VC). The input video signal is predicted from the reconstructed signal, which is derived from the codec picture area. The prediction residual signal is processed by linear transformation. Quantize the transform coefficients and perform entropy coding and decoding together with other side information in the bit stream. After inversely transforming the dequantized transform coefficients, a reconstructed signal is generated from the prediction signal and the reconstructed residual signal. The reconstructed signal is further processed by loop filtering to remove codec artifacts. The decoded images are stored in the frame buffer to predict future images in the input video signal.

在HEVC中,編解碼圖片被劃分為由相關聯的編解碼樹單元(coding tree unit,簡寫為CTU)表示的非重疊正方形塊區域。編解碼圖片可以由切片的集合表示,每個切片包括整數個CTU。切片中的各個CTU按光柵掃描順序進行處理。可以使用至多兩個運動矢量和參考索引來使用幀內預測或幀間預測來解碼雙預測(bi-predictive,簡寫為B)切片,以預測每個塊的採樣值。使用幀內預測或幀間預測使用最多一個運動矢量和參考索引對預測(P)切片進行解碼,以預測每個塊的採樣值。僅使用幀內預測來對幀內(I)切片進行解碼。In HEVC, a codec picture is divided into non-overlapping square block regions represented by an associated coding tree unit (CTU). A codec picture can be represented by a set of slices, and each slice includes an integer number of CTUs. Each CTU in the slice is processed in raster scan order. Up to two motion vectors and reference indexes can be used to decode bi-predictive (bi-predictive, abbreviated as B) slices using intra prediction or inter prediction to predict the sample value of each block. Use intra prediction or inter prediction to decode prediction (P) slices using at most one motion vector and reference index to predict the sample value of each block. Only intra prediction is used to decode intra (I) slices.

可使用遞歸四叉樹(QT)結構將CTU劃分為多個非重疊編解碼單元(CU),以適應各種局部運動和紋理特徵。 CTU也可以使用帶有二進位和三進位拆分的帶有嵌套多類型樹(nested multi-type tree)的四叉樹劃分為一個或多個較小尺寸的CU。所得的CU劃分可以為正方形或矩形。A recursive quadtree (QT) structure can be used to divide the CTU into multiple non-overlapping codec units (CU) to adapt to various local motion and texture features. The CTU can also be divided into one or more smaller-sized CUs using a quadtree with a nested multi-type tree with binary and ternary splits. The resulting CU partition can be square or rectangular.

為每個CU指定一個或多個預測單元(PU)。預測單元與關聯的CU語法一起,作為用於發送預測子資訊的基本單元。使用指定的預測過程來預測PU內部相關像素採樣的值。可以使用殘差四叉樹(RQT)結構來進一步劃分CU,以用於表示相關聯的預測殘差信號。 RQT的葉節點對應於變換單元(TU)。對4:2: 0顏色格式的圖片, 變換單元由大小為8x8、16x16或32x32的一個亮度採樣的變換塊(transform block,簡寫為TB)或大小為4x4的四個亮度採樣的變換塊和兩個相應的色度採樣變換塊組成。將整數變換應用於變換塊,並且將量化係數的水平值(level value)與其他輔助資訊一起在位元流中進行熵編解碼。One or more prediction units (PUs) are designated for each CU. The prediction unit, together with the associated CU syntax, serves as the basic unit for transmitting predictor information. Use the specified prediction process to predict the value of the relevant pixel sample within the PU. The residual quadtree (RQT) structure can be used to further divide the CU to represent the associated prediction residual signal. The leaf nodes of RQT correspond to the transformation unit (TU). For 4:2:0 color format pictures, the transform unit consists of a transform block (TB) with a size of 8x8, 16x16, or 32x32 with a luminance sample (TB) or a transform block with four luminance samples with a size of 4x4 and two The corresponding chroma sampling transform block is composed. The integer transform is applied to the transform block, and the level value of the quantized coefficient is used together with other auxiliary information to perform entropy coding and decoding in the bit stream.

術語編解碼樹塊(CTB)、編解碼塊(CB)、預測塊(PB)和變換塊(TB)被定義為分別指定與CTU、CU、PU和TU相關聯的一種顏色分量的2-D採樣陣列。因此,CTU由一個亮度CTB、兩個色度CTB和相關的語法元素組成。類似的關係對於CU、PU和TU也有效。樹劃分通常同時應用於亮度和色度,但是當達到色度的某些最小大小時會例外。The terms Codec Tree Block (CTB), Codec Block (CB), Prediction Block (PB) and Transform Block (TB) are defined as 2-D specifying one color component associated with CTU, CU, PU, and TU, respectively Sampling array. Therefore, CTU is composed of one luminance CTB, two chrominance CTBs and related syntax elements. A similar relationship is valid for CU, PU, and TU. Tree division is usually applied to both luminance and chrominance, but exceptions are when certain minimum sizes of chrominance are reached.

編解碼塊標記(CBF)用於發信變換塊中是否存在任何非零變換係數。當CBF等於0時,不對相關的變換塊進行進一步編解碼,並且推斷當前變換塊中的所有係數都等於0。否則,相關的變換塊包含至少一個非零變換係數。非零變換塊被進一步劃分為非重疊子塊。可以發信語法元素coded_sub_block_flag以指示當前子塊是否包含任何非零係數。當coded_sub_block_flag等於0時,不對關聯的變換子塊進行進一步編解碼,並且推斷當前變換子塊中的​​所有係數等於0。否則,關聯的變換塊包含至少一個非零變換係數。使用多個子塊編解碼過程(subblock coding pass)對相關聯的子塊中的變換係數水平的值進行熵編解碼。在每個編解碼過程中,根據預定義的掃描順序對各個變換係數進行一次存取與處理。The codec block flag (CBF) is used to signal whether there are any non-zero transform coefficients in the transform block. When CBF is equal to 0, no further coding or decoding is performed on the related transform block, and it is inferred that all coefficients in the current transform block are equal to zero. Otherwise, the relevant transform block contains at least one non-zero transform coefficient. The non-zero transform block is further divided into non-overlapping sub-blocks. The syntax element coded_sub_block_flag can be signaled to indicate whether the current sub-block contains any non-zero coefficients. When coded_sub_block_flag is equal to 0, no further coding or decoding is performed on the associated transform sub-block, and it is inferred that all coefficients in the current transform sub-block are equal to zero. Otherwise, the associated transform block contains at least one non-zero transform coefficient. Multiple subblock coding passes are used to perform entropy coding and decoding on the value of the transform coefficient level in the associated subblock. In each encoding and decoding process, each transform coefficient is accessed and processed once according to a predefined scan order.

在HEVC中,在第一子塊編解碼過程中發信語法元素sig_coeff_flag以指示當前變換係數水平的絕對值是否大於0。進一步在第二編解碼過程中發信語法元素coeff_abs_level_greater1_flag用於sig_coeff_flag等於1的當前係數以指示相關變換係數水平的絕對值是否大於1。對於coeff_abs_level_greater1_flag等於1的當前係數,進一步在第三編解碼過程中發信語法元素coeff_abs_level_greater2_flag 以指示關聯的變換係數水平的絕對值是否大於2。在第四編解碼和第五子塊編解碼過程中,分別通過語法元素coeff_sign_flag和coeff_abs_level_remaining來發信正負號資訊(sign information)和剩餘水平值。In HEVC, the syntax element sig_coeff_flag is signaled during the encoding and decoding process of the first sub-block to indicate whether the absolute value of the current transform coefficient level is greater than zero. Further, in the second encoding and decoding process, the syntax element coeff_abs_level_greater1_flag is sent for the current coefficient with sig_coeff_flag equal to 1 to indicate whether the absolute value of the correlation transform coefficient level is greater than 1. For the current coefficient with coeff_abs_level_greater1_flag equal to 1, the syntax element coeff_abs_level_greater2_flag is further sent in the third codec process to indicate whether the absolute value of the associated transform coefficient level is greater than 2. In the fourth codec and the fifth sub-block codec, the sign information and the remaining level value are signaled through the syntax elements coeff_sign_flag and coeff_abs_level_remaining, respectively.

以下發明內容僅是說明性的,而無意於以任何方式進行限制。 即,提供以下概述以介紹本文描述的新穎和非顯而易見的技術的概念、重點、益處和優點。 在下面的詳細描述中將進一步描述選擇而非全部實現。 因此,以下概述並非旨在標識所要求保護的主題的必要特徵,也不旨在用於確定所要求保護的主題的範圍。The following summary of the invention is only illustrative, and is not intended to be limiting in any way. That is, the following overview is provided to introduce the concepts, highlights, benefits, and advantages of the novel and non-obvious technologies described herein. In the following detailed description, the options are further described but not all implementations. Therefore, the following summary is not intended to identify necessary features of the claimed subject matter, nor is it intended to be used to determine the scope of the claimed subject matter.

本公開的一些實施例提供了一種視訊編解碼器(例如,視訊編碼器或視訊解碼器),該視訊編解碼器(例如,視訊編解碼器或視訊解碼器)限制了用於熵編解碼當前塊的語法元素的常規位元子(regular bins)的總數。視訊編解碼器將語法元素選擇性地熵編碼或解碼為使用上下文建模的常規位元子或者是沒有上下文建模的旁路位元子。指定一個約束以限制用於對語法元素進行熵編解碼的常規位元子的總數。可能沒有限制特定於單個語法元素的常規位元子數量的約束。Some embodiments of the present disclosure provide a video codec (for example, a video encoder or a video decoder) that limits the current use of entropy codec The total number of regular bins of the syntax element of the block. The video codec selectively entropy encodes or decodes syntax elements into regular bits using context modeling or bypass bits without context modeling. Specify a constraint to limit the total number of regular bits used for entropy encoding and decoding of syntax elements. There may be no constraints that limit the number of regular bits specific to a single syntax element.

在一些實施例中,在多個編解碼過程中對多個語法元素進行編解碼。該約束限制了用於在第一編解碼過程中對語法元素進行熵編解碼的常規位元子的總數。多個語法元素指定多個變換係數,其中變換係數的絕對值由在第一編解碼過程中被熵編解碼的至少第一標誌、第二標誌和第三標誌指示。In some embodiments, multiple syntax elements are encoded and decoded in multiple encoding and decoding processes. This constraint limits the total number of regular bits used for entropy encoding and decoding of syntax elements in the first encoding and decoding process. Multiple syntax elements specify multiple transform coefficients, where the absolute value of the transform coefficient is indicated by at least a first flag, a second flag, and a third flag that are entropy-coded and decoded in the first coding and decoding process.

在一些實施例中,限制常規位元子的數量的約束對於較大的第一塊大於對於較小的第二塊。 在一些實施例中,限制常規位元子的數量的約束對於第一顏色分量與對於第二顏色分量是不同的。 在一些實施例中,通過將默認約束與預定義因子相乘來計算限制常規位元子的數量的約束,該預定義因子是從當前塊中的編解碼子塊的數量與當前塊中的所有子塊的數量之比得出的。In some embodiments, the constraint that limits the number of regular bits is greater for the larger first block than for the smaller second block. In some embodiments, the constraints that limit the number of regular bits are different for the first color component and for the second color component. In some embodiments, the constraint that limits the number of regular bits is calculated by multiplying the default constraint with a predefined factor. The predefined factor is calculated from the number of codec sub-blocks in the current block and all the sub-blocks in the current block. Calculated by the ratio of the number of sub-blocks.

在以下詳細描述中,通過示例的方式闡述了許多具體細節,以提供對相關教導的透徹理解。基於本文描述的教導的任何變化、派生和/或擴展都在本公開的保護範圍內。在一些情況下,與本文公開的一個或多個示例實現有關的公知的方法、過程、組件和/或電路可以在沒有詳細描述的情況下以相對較高的水平進行描述,以避免不必要地混淆本公開的教導的各個方面。 In the following detailed description, many specific details are explained by way of examples to provide a thorough understanding of related teachings. Any changes, derivations and/or extensions based on the teachings described herein are within the protection scope of the present disclosure. In some cases, well-known methods, processes, components, and/or circuits related to one or more example implementations disclosed herein may be described at a relatively high level without detailed descriptions to avoid unnecessary Obfuscate all aspects of the teachings of this disclosure.

ITU-T SG16 WP3的聯合視訊專家組(JVET)和ISO/IEC JTC1/SC29/WG11目前正在建立下一代視訊編解碼標準。ITU-T VCEG(Q6/16)和ISO/IEC MPEG(JTC 1/SC 29/WG 11)聯合視訊專家組(JVET)在多功能視訊編解碼(VVC)工作草案(WD)2(B.Brossey等人,“Versatile Video Coding (Draft 2)”中指定了某些工作(JVE061001號文件,第11次會議:盧布爾雅那,SI,2018年7月10日至18日))。The Joint Video Expert Group (JVET) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11 are currently establishing the next-generation video codec standard. ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11) Joint Video Expert Group (JVET) in the Multi-Function Video Codec (VVC) Working Draft (WD) 2 (B.Brossey) Et al., "Versatile Video Coding (Draft 2)" specifies certain tasks (document JVE061001, 11th meeting: Ljubljana, SI, July 10-18, 2018)).

VVC WD2指定可以通過從屬純量量化(scalar quantization)來量化編解碼塊的變換係數。由具有四個狀態的狀態機指定兩個量化器之一的選擇。當前變換係數的狀態由掃描順序的前一變換係數的絕對水平值的狀態和奇偶性決定。在第一個子塊編解碼過程中發信語法元素sig_coeff_flag、par_level_flag和rem_abs_gt1_flag。從第一個子塊解碼過程中部分重構的變換係數水平的絕對值由下式給出VVC WD2 specifies that the transform coefficients of the codec block can be quantized through scalar quantization. The choice of one of the two quantizers is specified by a state machine with four states. The state of the current transform coefficient is determined by the state and parity of the absolute level value of the previous transform coefficient in the scan order. The syntax elements sig_coeff_flag, par_level_flag and rem_abs_gt1_flag are sent during the coding and decoding process of the first sub-block. The absolute value of the transform coefficient level partially reconstructed from the decoding process of the first sub-block is given by

AbsLevelPass1 = sig_coeff_flag + par_level_flag + 2 * rem_abs_gt1_flagAbsLevelPass1 = sig_coeff_flag + par_level_flag + 2 * rem_abs_gt1_flag

用於熵編解碼sig_coeff_flag的上下文選擇取決於當前係數的狀態。 因此在第一編解碼過程中發信par_level_flag,以導出下一個係數的狀態。 語法元素rem_abs_gt2_flag、abs_remainder和coeff_sign_flag分別在第二、第三和第四次編解碼過程中發信。完全重構的變換係數水平的絕對值由下式給出The context selection for entropy coding and decoding sig_coeff_flag depends on the state of the current coefficient. Therefore, the par_level_flag is sent during the first encoding and decoding process to derive the state of the next coefficient. The syntax elements rem_abs_gt2_flag, abs_remainder, and coeff_sign_flag are sent in the second, third, and fourth encoding and decoding processes, respectively. The absolute value of the fully reconstructed transform coefficient level is given by

AbsLevel = AbsLevelPass1 + 2 * ( rem_abs_gt2_flag + abs_remainder ) 變換係數水平由下式給出AbsLevel = AbsLevelPass1 + 2 * (rem_abs_gt2_flag + abs_remainder) The transformation coefficient level is given by the following formula

TransCoeffLevel = (2*AbsLevel−(QState>1?1:0))*(1−2*coeff_sign_flag),TransCoeffLevel = (2*AbsLevel−(QState>1?1:0))*(1−2*coeff_sign_flag),

其中,QState指示當前變換係數的狀態。 I.   編解碼變換係數Among them, QState indicates the current state of the transform coefficient. I. Coding and decoding transform coefficients

本公開的一些實施例提供了一種視訊編解碼器,其使用多個編解碼過程來發信或解析變換係數水平的絕對值。在一些實施例中,變換係數水平的完全重構的絕對值可以由下式表示:Some embodiments of the present disclosure provide a video codec that uses multiple codec processes to signal or analyze the absolute value of the transform coefficient level. In some embodiments, the absolute value of the complete reconstruction of the transform coefficient level can be expressed by the following formula:

AbsLevel = (AbsLevelRS1 >> 1) + ParityBit,AbsLevel = (AbsLevelRS1 >> 1) + ParityBit,

其中,ParityBit表示變換係數水平的絕對值的奇偶性,而AbsLevelRS1表示向下移動1的變換係數等級的絕對值。語法元素sig_coeff_flag、coeff_abs_level_greater1_flag和par_level_flag可以在第一編解碼過程中發信。當sig_coeff_flag等於0時,關聯的變換係數水平等於0。否則,進一步發信coeff_abs_level_greater1_flag,以指示關聯的變換係數水平的絕對值是否大於1。當coeff_abs_level_greater1_flag等於0時,將設置AbsLevelRS1等於0,且ParityBit設置為sig_coeff_flag用於相關變換係數。否則,進一步發信par_level_flag以指示用於相關聯的變換係數水平的ParityBit的值。可以使用一個或多個編解碼過程進一步發送有關AbsLevelRS1的更多資訊以及相關變換係數水平的正負號(sign)的資訊。Among them, ParityBit represents the parity of the absolute value of the transform coefficient level, and AbsLevelRS1 represents the absolute value of the transform coefficient level shifted down by 1. The syntax elements sig_coeff_flag, coeff_abs_level_greater1_flag, and par_level_flag can be signaled in the first encoding and decoding process. When sig_coeff_flag is equal to 0, the associated transform coefficient level is equal to 0. Otherwise, the coeff_abs_level_greater1_flag is further sent to indicate whether the absolute value of the associated transform coefficient level is greater than 1. When coeff_abs_level_greater1_flag is equal to 0, AbsLevelRS1 is set to be equal to 0, and ParityBit is set to sig_coeff_flag for the correlation transform coefficient. Otherwise, the par_level_flag is further signaled to indicate the value of ParityBit for the associated transform coefficient level. One or more encoding and decoding processes can be used to further send more information about AbsLevelRS1 and information about the sign of the relevant transform coefficient level.

當對於當前係數,coeff_abs_level_greater1_flag大於1時,視訊編解碼器可進一步發信語法元素coeff_abs_level_rs1_gt1_flag以指示AbsLevelRS1是否大於1。當coeff_abs_level_rs1_gt1_flag等於0時,將AbsLevelRS1設置為等於1用於相關的變換係數水平。 否則,推斷AbsLevelRS1大於1,並進一步發信AbsLevelRS1的剩餘值(remaining value)。 在一些實施例中,在與coeff_abs_level_greater1_flag相同的編解碼過程中發信語法元素coeff_abs_level_rs1_gt1_flag。 在一些實施例中,在用於發信coeff_abs_level_greater1_flag的編解碼過程之後,在單獨的編解碼過程中發信coeff_abs_level_rs1_gt1_flag。When the current coefficient, coeff_abs_level_greater1_flag is greater than 1, the video codec may further signal the syntax element coeff_abs_level_rs1_gt1_flag to indicate whether AbsLevelRS1 is greater than 1. When coeff_abs_level_rs1_gt1_flag is equal to 0, AbsLevelRS1 is set equal to 1 for the relevant transform coefficient level. Otherwise, it is concluded that AbsLevelRS1 is greater than 1, and the remaining value of AbsLevelRS1 is further sent. In some embodiments, the syntax element coeff_abs_level_rs1_gt1_flag is signaled in the same codec process as coeff_abs_level_greater1_flag. In some embodiments, after the coding and decoding process for signaling coeff_abs_level_greater1_flag, the coeff_abs_level_rs1_gt1_flag is sent in a separate coding and decoding process.

當對於當前係數,coeff_abs_level_rs1_gt1_flag大於1時,視訊編解碼器可進一步發信語法元素coeff_abs_level_rs1_gt2_flag以指示AbsLevelRS1是否大於2。當coeff_abs_level_rs1_gt2_flag等於0時,將AbsLevelRS1設置為等於2用於與之相關聯的係數水平。否則,推斷AbsLevelRS1大於2,並進一步發信AbsLevelRS1的剩餘值。可以在與coeff_abs_level_rs1_gt1_flag相同的編解碼過程中發信coeff_abs_level_rs1_gt2_flag,或者在發信coeff_abs_level_rs1_gt1_flag的編解碼過程之後在單獨的編解碼過程中發信coeff_abs_level_rs1_gt2_flag。在一些實施例中,語法元素coeff_abs_level_greater1_flag,coeff_abs_level_rs1_gt1_flag和coeff_abs_level_rs1_gt2_flag都在一個編解碼過程中被發信。When for the current coefficient, coeff_abs_level_rs1_gt1_flag is greater than 1, the video codec may further signal the syntax element coeff_abs_level_rs1_gt2_flag to indicate whether AbsLevelRS1 is greater than 2. When coeff_abs_level_rs1_gt2_flag is equal to 0, AbsLevelRS1 is set equal to 2 for the coefficient level associated with it. Otherwise, it is concluded that AbsLevelRS1 is greater than 2, and the remaining value of AbsLevelRS1 is further sent. The coeff_abs_level_rs1_gt2_flag may be sent in the same codec process as the coeff_abs_level_rs1_gt1_flag, or the coeff_abs_level_rs1_gt2_flag may be sent in a separate codec process after the codec process of sending the coeff_abs_level_rs1_gt1_flag. In some embodiments, the syntax elements coeff_abs_level_greater1_flag, coeff_abs_level_rs1_gt1_flag, and coeff_abs_level_rs1_gt2_flag are all signaled in one encoding and decoding process.

在一些實施例中,視訊編解碼器對通過使用從屬純量量化而量化的殘差塊執行熵編解碼。 視訊編解碼器利用語法元素sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag、coeff_abs_levelsrs1_gt1_flag、coeff_abs_level_rs1_gt2_flag和coeff_abs_level_rs1_remainder來編解碼變換係數水平的絕對值。 下表1提供了用於解碼殘差變換塊的語法表。當coeff_abs_level_rs1_gt2_flag等於1時,採用語法元素coeff_abs_level_rs1_remainder,以發信相關聯的係數水平的剩餘絕對值。當未被編解碼的時候,語法元素sig_coeff_flag、coeff_abs_level_greater1_flag、coeff_abs_level_rs1_gt1_flag、coeff_abs_level_rs1_gt2_flag和coeff_abs_level_rs1_remainder被推斷為等於0。 1 :殘差編解碼語法

Figure 108130206-A0304-0001
In some embodiments, the video codec performs entropy codec on the residual block quantized by using dependent scalar quantization. The video codec uses the syntax elements sig_coeff_flag, coeff_abs_level_greater1_flag, par_level_flag, coeff_abs_levelsrs1_gt1_flag, coeff_abs_level_rs1_gt2_flag, and coeff_abs_level_rs1_rema to code and decode the absolute value of the transform coefficient level. Table 1 below provides a syntax table for decoding the residual transform block. When coeff_abs_level_rs1_gt2_flag is equal to 1, the syntax element coeff_abs_level_rs1_remainder is used to signal the remaining absolute value of the associated coefficient level. When not codec, the syntax elements sig_coeff_flag, coeff_abs_level_greater1_flag, coeff_abs_level_rs1_gt1_flag, coeff_abs_level_rs1_gt2_flag, and coeff_abs_level_rs1_remainder are inferred to be equal to zero. Table 1 : Residual codec syntax
Figure 108130206-A0304-0001

本公開的一些實施例涉及通過減少用於對變換塊或子塊進行熵編解碼的編解碼過程數來減少複雜度。 例如,在一些實施例中,可以在與語法元素rem_abs_gt1_flag相同的編解碼過程中對語法元素rem_abs_gt2_flag進行編解碼。 在一些實施例中,關於變換係數的符號和剩餘值的資訊在旁路模式下使用CABAC進行熵編解碼,並且可以在一個編解碼過程中發信。 在一個實施例中,在一個編解碼過程中發信在常規模式下使用CABAC熵編解碼的所有語法元素。 在另一個編解碼過程中發信在旁路模式下使用CABAC編解碼的所有語法元素熵。 II.  限制子塊或編解碼過程的常規位元子Some embodiments of the present disclosure relate to reducing the complexity by reducing the number of encoding and decoding processes used for entropy encoding and decoding of transform blocks or sub-blocks. For example, in some embodiments, the syntax element rem_abs_gt2_flag may be coded and decoded in the same codec process as the syntax element rem_abs_gt1_flag. In some embodiments, the information about the sign and the remaining value of the transform coefficient uses CABAC for entropy encoding and decoding in the bypass mode, and can be signaled in one encoding and decoding process. In one embodiment, all syntax elements that use CABAC entropy encoding and decoding in the normal mode are signaled in one encoding and decoding process. In another encoding and decoding process, the entropy of all syntax elements that use the CABAC encoding and decoding in the bypass mode is sent. II. Restrict sub-blocks or regular bits in the encoding and decoding process

為了實現高壓縮效率,採用基於上下文的自適應二進位算術編解碼(CABAC)模式或稱為常規模式來對HEVC中的語法元素的值進行熵編解碼。由於CABAC引擎中的算術編解碼器僅對二進位符號值進行編碼,因此CABAC操作首先需要將語法元素的值轉換為位元子字符串(binary string),該過程通常稱為二進位化。在編解碼過程中,根據不同上下文的編解碼符號(coded symbol)逐漸建立概率模型。可以通過編解碼資訊來確定用於編解碼下一個二進位符號的建模上下文的選擇。在常規模式下處理的語法元素的值稱為“常規位元子”,並使用上下文建模(context modeling)對其進行熵編解碼。符號也可以在沒有上下文建模階段的情況下進行編解碼,並假定相等的概率分佈(通常稱為旁路模式),以提高位元流解析吞吐率。將在旁路模式下處理的語法元素的值稱為“旁路位元子”,並在沒有上下文建模的情況下進行熵編解碼。 在HEVC中,變換子塊中的語法元素(例如coded_sub_block_flag,sig_coeff_flag,coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag)的值在常規模式下被編解碼為常規位元子。 變換子塊中的語法元素coeff_sign_flag和coeff_abs_level_remaining的值在旁路模式下被編解碼為旁路位元子。 為了在最壞的情況下限制子塊中熵編解碼變換係數水平的常規位元子的總數,每個子塊最多只能編解碼八個coeff_abs_level_greater1_flag值和一個coeff_abs_level_greater2_flag值。 這樣,每個子塊中的常規位元子的最大數量限制為26。In order to achieve high compression efficiency, the context-based adaptive binary arithmetic coding and decoding (CABAC) mode, or regular mode, is used to encode and decode the values of syntax elements in HEVC. Since the arithmetic codec in the CABAC engine only encodes the binary symbol value, the CABAC operation first needs to convert the value of the syntax element into a binary string. This process is usually called binarization. In the encoding and decoding process, a probability model is gradually established according to the coded symbols of different contexts. The coding and decoding information can be used to determine the selection of the modeling context for coding and decoding the next binary symbol. The values of the syntax elements processed in the regular mode are called "regular bits", and context modeling is used to encode and decode them entropy. Symbols can also be coded and decoded without a context modeling stage, and an equal probability distribution (usually called bypass mode) is assumed to improve bit stream parsing throughput. The value of the syntax element processed in the bypass mode is called "bypass bit", and entropy coding and decoding is performed without context modeling. In HEVC, the values of syntax elements in the transform sub-block (for example, coded_sub_block_flag, sig_coeff_flag, coeff_abs_level_greater1_flag, and coeff_abs_level_greater2_flag) are coded and decoded into regular bits in the regular mode. The values of the syntax elements coeff_sign_flag and coeff_abs_level_remaining in the transform sub-block are coded and decoded into bypass bits in the bypass mode. In order to limit the total number of regular bits of the entropy coding transform coefficient level in a sub-block in the worst case, each sub-block can only code and decode eight coeff_abs_level_greater1_flag values and one coeff_abs_level_greater2_flag value at most. In this way, the maximum number of regular bits in each sub-block is limited to 26.

本公開的一些實施例涉及對用於編解碼變換子塊的CABAC常規位元子的最大允許數量的約束。具有對子塊的常規位元子的約束有利於控制每個子塊的位元流解析吞吐速率(例如,在最壞情況下),因為在常規模式下使用CABAC的熵編解碼比在旁路模式下涉及更高的複雜度。在一些實施例中,視訊編解碼器可將約束施加於一個子塊或一個子塊編解碼過程中的常規位元子的最大允許數目,但是對於存在於所述子塊或所述子塊編解碼過程中的各個語法元素的常規位元子的最大允許數目沒有特定限制。視訊編解碼器可跟踪當前子塊或當前編解碼過程中的消耗的常規位元子的累積數量。當達到指定的常規位元子的最大允許數量時,對於當前子塊中的其餘編解碼過程,視訊編解碼器可能會將CABAC引擎切換到旁路模式。或者視訊編解碼器可以在常規CABAC模式下終止編解碼過程。變換係數水平的剩餘絕對值通過旁路模式下的子塊編解碼過程來編解碼。Some embodiments of the present disclosure involve constraints on the maximum allowable number of CABAC regular bits used for codec transform sub-blocks. Having the constraint on the regular bits of the sub-block is beneficial to control the bit stream parsing throughput rate of each sub-block (for example, in the worst case), because the entropy codec of CABAC is used in the regular mode than in the bypass mode The following involves higher complexity. In some embodiments, the video codec may impose constraints on the maximum allowable number of regular bits in a sub-block or a sub-block encoding and decoding process, but for the sub-block or the sub-block encoding and decoding process. There is no specific limit on the maximum allowable number of regular bits of each syntax element in the decoding process. The video codec can track the current sub-block or the cumulative number of regular bits consumed in the current codec process. When the specified maximum allowable number of regular bits is reached, the video codec may switch the CABAC engine to the bypass mode for the remaining codec processes in the current sub-block. Or the video codec can terminate the codec process in the regular CABAC mode. The remaining absolute value of the transform coefficient level is coded and decoded through the sub-block coding and decoding process in the bypass mode.

第1圖概念性地示出了視訊編解碼器,其基於對用於子塊的常規位元子的數量的約束,以常規模式或旁路模式選擇性地熵編解碼塊的子塊的語法元素。 該圖示出了正在被編解碼(編碼或解碼)的當前塊100。 當前塊100可以是諸如編解碼單元(CU)的像素塊的變換塊或TU。 當前塊100包括4x4 = 16個子塊,包括子塊110。Figure 1 conceptually shows a video codec, which selectively entropy encodes and decodes the syntax of sub-blocks of a block in a regular mode or a bypass mode based on a constraint on the number of regular bits used for a sub-block element. The figure shows the current block 100 that is being coded (encoded or decoded). The current block 100 may be a transform block or a TU such as a pixel block of a codec unit (CU). The current block 100 includes 4×4 = 16 sub-blocks, including the sub-block 110.

子塊110包括多個語法元素(syntax element)。 這些語法元素(SE)可以表示當前塊的幾個變換係數(例如Coef1-Coef5)。 每個變換係數可以由幾個語法元素(例如,SE1-SE6)表示。 變換係數的語法元素可以包括指示變換係數的絕對值和奇偶性的標誌。The sub-block 110 includes a plurality of syntax elements. These syntax elements (SE) can represent several transform coefficients of the current block (for example, Coef1-Coef5). Each transform coefficient can be represented by several syntax elements (for example, SE1-SE6). The syntax element of the transform coefficient may include a flag indicating the absolute value and parity of the transform coefficient.

這些語法元素使用CABAC進行熵編解碼,作為常規位元子(通過上下文建模以常規模式進行編解碼)或旁路位元子(在沒有上下文建模的情況下以旁路模式進行編解碼)。視訊編解碼器施加約束115。在一些實施例中,約束限制用於變換塊100的CABAC常規位元子的最大允許數量,例如,用於對子塊110進行編解碼的CABAC常規位元子的最大允許數量。該約束提供了常規位元子的預算(budget),該預算由塊或子塊的語法元素共享。 將每個語法元素熵編解碼為常規位元子會消耗預算,直到沒有剩餘預算為止。These syntax elements use CABAC for entropy encoding and decoding, as regular bits (encoding and decoding in conventional mode through context modeling) or bypass bits (encoding and decoding in bypass mode without context modeling) . The video codec imposes constraints 115. In some embodiments, the constraint limits the maximum allowable number of CABAC regular bits used to transform the block 100, for example, the maximum allowable number of CABAC regular bits used to encode and decode the sub-block 110. This constraint provides a budget for regular bits, which is shared by the syntax elements of the block or sub-block. Entropy coding and decoding of each syntax element into regular bits consumes budget until there is no remaining budget.

在第1圖的示例中,子塊110的約束115是32。一些語法元素通過使用常規模式進行編解碼(語法元素被示出為陰影)。這些語法元素包括Coef1:SE1、Coef1:SE2、Ceof1:SE3、Coef1:SE4、Coef2:SE1、Coef2:SE2、Ceof2:SE3、Coef2:SE4和Coef3:SE1。對這些語法元素進行熵編碼會消耗30個常規位元子。要將更多語法元素編碼為常規位元子,將超過32的子塊約束。因此,所有其他語法元素都被編解碼為旁路位元子(圖示為未陰影)。 In the example in Figure 1, the constraint 115 of the sub-block 110 is 32. Some syntax elements are coded and decoded by using the regular mode (syntax elements are shown as shaded). These syntax elements include Coef1: SE1, Coef1: SE2, Ceof1: SE3, Coef1: SE4, Coef2: SE1, Coef2: SE2, Ceof2: SE3, Coef2: SE4, and Coef3: SE1. Entropy coding these syntax elements consumes 30 regular bits. To encode more syntax elements into regular bits, restrict the number of sub-blocks beyond 32. Therefore, all other syntax elements are coded and decoded as bypass bits (not shaded in the figure).

第1圖的示例還示出了幾個編解碼過程121、122和123。在第一編解碼過程121中,視訊編解碼器熵對每個係數的SE1-SE4進行熵編碼,特別是按Coef1:SE1、Coef1:SE2、Ceof1:SE3、Coef1:SE4、Coef2:SE1、Coef2:SE2、Ceof2:SE3等的順序進行編解碼。在第二編解碼過程122中,視訊編解碼器對每個係數的SE5進行熵編碼,特別是按Coef1:SE5、Coef2:SE5、Coef3:SE5、Coef4:SE5等的順序。在第三編解碼過程123中,視訊編解碼器對每個係數的SE6進行熵編碼,特別是按Coef1:SE6、Coef2:SE6、Coef3:SE6、Coef4:SE6等的順序進行熵編解碼。 The example in Figure 1 also shows several encoding and decoding processes 121, 122, and 123. In the first coding and decoding process 121, the video codec entropy encodes the SE1-SE4 of each coefficient, especially according to Coef1: SE1, Coef1: SE2, Ceof1: SE3, Coef1: SE4, Coef2: SE1, Coef2 : SE2, Ceof2: SE3, etc. are coded and decoded in the order. In the second encoding and decoding process 122, the video codec performs entropy encoding on the SE5 of each coefficient, especially in the order of Coef1:SE5, Coef2:SE5, Coef3:SE5, Coef4:SE5, etc. In the third coding and decoding process 123, the video codec performs entropy coding on the SE6 of each coefficient, especially in the order of Coef1:SE6, Coef2:SE6, Coef3:SE6, Coef4:SE6, etc.

在一些實施例中,約束115限制子塊所有語法元素所使用的常規位元子的總數,而不管它們被編解碼在哪個編解碼過程中。在一些實施例中,約束115限制在第一編解碼過程121(或前導編解碼過程(leading coding pass))期間編解碼的語法元素所使用的常規位元子的總數,但不限制在其他編解碼過程期間使用的常規位元子的數量。 In some embodiments, the constraint 115 limits the total number of regular bits used by all syntax elements of the sub-block, regardless of which codec process they are coded or decoded in. In some embodiments, the constraint 115 limits the total number of regular bits used by the syntax elements of the codec during the first codec process 121 (or the leading coding pass), but is not limited to other codecs. The number of regular bits used during the decoding process.

在一些實施例中,不管約束115是適用於子塊110的所有語法元素還是僅適用於在第一編解碼過程121中編解碼的語法元素,視訊編解碼器對於子塊110或第一編解碼過程121中存在的各個語法元素的常規位元子的最大允許數量的都沒有特定的約束。在一些實施例中,視訊編解碼器可以將約束應用於一個子塊或一個子塊編解碼過程(例如,第一編解碼過程121)中的常規位元子的最大允許數量,而且還對存在於子塊或子塊編解碼過程中的各個語法元素的常規位元子的最大允許數量施加特定約束。 In some embodiments, regardless of whether the constraint 115 applies to all the syntax elements of the sub-block 110 or only applies to the syntax elements coded and decoded in the first codec process 121, the video codec applies to the sub-block 110 or the first codec. There is no specific restriction on the maximum allowable number of regular bits of each syntax element existing in the process 121. In some embodiments, the video codec can apply constraints to the maximum allowable number of regular bits in a sub-block or a sub-block encoding and decoding process (for example, the first codec process 121), and also for the existence of Specific constraints are imposed on the maximum allowable number of regular bits of each syntax element in the sub-block or sub-block encoding and decoding process.

在某些實施例中,去除了HEVC對語法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag的常規位元子的指定最大允許數量的限制。 具體來說,語法元素語法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag在前導子塊編解碼過程中編解碼。 一旦當前子塊中常規位元子的累積數量達到指定的最大允許數量25或26,就可以終止常規CABAC模式下的前導子塊編解碼過程。語法元素coeff_abs_level_remaining處於旁路模式對其餘變換係數水平的剩餘絕對值進行編解碼。 以此方式,視訊編解碼器仍可在每個子塊的常規位元子的數量上滿足最壞情況的約束,同時能夠使用比最初為語法元素coeff_abs_level_greater1_flag和coeff_abs_level_greater2_flag指定的最大數目更多的常規位元子。In some embodiments, the limitation of the HEVC on the specified maximum allowable number of regular bits of the syntax elements coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag is removed. Specifically, the syntax elements coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag are coded and decoded in the preamble sub-block coding and decoding process. Once the cumulative number of regular bits in the current sub-block reaches the specified maximum allowable number of 25 or 26, the coding and decoding process of the leading sub-block in the regular CABAC mode can be terminated. The syntax element coeff_abs_level_remaining is in the bypass mode to encode and decode the remaining absolute values of the remaining transform coefficient levels. In this way, the video codec can still meet the worst-case constraint on the number of regular bits per sub-block, while being able to use more regular bits than the maximum number originally specified for the syntax elements coeff_abs_level_greater1_flag and coeff_abs_level_greater2_flag son.

在一些實施例中,視訊編解碼器可對第一子塊編解碼過程中的最大允許數目的常規位元子施加約束,以對由從屬純量量化產生的變換係數水平進行熵編解碼。 視訊編解碼器可以跟踪當前前導編解碼過程中消耗的常規位元子的累積數量,以發信sig_coeff_flag、par_level_flag和rem_abs_gt1_flag,或發信sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag和coeff_abs_levelsrs_gt1_flag。In some embodiments, the video codec may impose constraints on the maximum allowable number of regular bits in the encoding and decoding process of the first sub-block, so as to perform entropy encoding and decoding on the transform coefficient level generated by the dependent scalar quantization. The video codec can track the cumulative number of regular bits consumed in the current preamble codec to send sig_coeff_flag, par_level_flag, and rem_abs_gt1_flag, or send sig_coeff_flag, coeff_abs_level_greater1_flag, par_level_flag, and coeff_gt1_level.

當常規位元子的累積數量大於指定的閾值時,視訊編解碼器可以將其CABAC引擎切換到旁路模式,以對旁路位元子中的剩餘過程進行編解碼。 或者視訊編解碼器可以終止當前的前導編解碼過程。 變換係數水平的剩餘絕對值在旁通模式下由子塊編解碼過程進行編解碼,用於發信abs_remainder或發信coeff_abs_level_rs1_remainder。When the cumulative number of regular bits is greater than the specified threshold, the video codec can switch its CABAC engine to bypass mode to encode and decode the remaining processes in the bypass bits. Or the video codec can terminate the current leading codec process. The remaining absolute value of the transform coefficient level is coded and decoded by the sub-block coding and decoding process in the bypass mode, and is used for sending abs_remainder or coeff_abs_level_rs1_remainder.

在一些實施例中,視訊編解碼器可對常規位元子的最大允許數目施加約束以用於熵編解碼因從屬純量量化而產生的變換子塊。視訊編解碼器可以跟踪用於發信sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag 或用於發信signaling sig_coeff_flag、 coeff_abs_level_greater1_flag、par_level_flag、coeff_abs_level_rs1_gt1_flag 和coeff_abs_level_rs1_gt2_flag的已消耗常規位元子的累積數量。當常規位元子的累積數量大於指定的閾值時,變換係數水平的剩餘絕對值全部通過旁路模式下的子塊編解碼過程進行編解碼,以用於發信abs_remainder或用於發信coeff_abs_level_rs1_remainder。In some embodiments, the video codec may impose constraints on the maximum allowable number of regular bits for entropy coding and decoding of transform sub-blocks generated by subordinate scalar quantization. The video codec can track the sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, and rem_abs_gt2_flag or the cumulative number of bits consumed for signaling sig_coeff_flag, coeff_abs_level_greater1_flag, par_level_flag_abrs_flag, par_level_flag, coeff_flag, par_level_flag, coeff_flag, par_level_flag, coeff_flag, and regular sub-level_coeff_g When the cumulative number of regular bits is greater than the specified threshold, the remaining absolute values of the transform coefficient levels are all coded and decoded through the sub-block coding and decoding process in the bypass mode for sending abs_remainder or coeff_abs_level_rs1_remainder.

在一些實施例中,coeff_abs_level_rs1_gt1_flag可以被集成到第一編解碼過程中。具體地說,在發信par_flag(奇偶性位元,par_level_flag)之前,已發信gt1_flag(coeff_abs_level_greater1_flag或rem_abs_gt1_flag),而gt2_flag(coeff_abs_level_rs1_gt1_flag或rem_abs_gt2_flag)的發信被移至第一編解碼過程。表2列出了不同水平的代碼字的一些示例。 2 :不同水平的代碼字示例

Figure 108130206-A0304-0002
In some embodiments, coeff_abs_level_rs1_gt1_flag can be integrated into the first codec process. Specifically, before sending par_flag (parity bit, par_level_flag), gt1_flag (coeff_abs_level_greater1_flag or rem_abs_gt1_flag) has been sent, and gt2_flag (coeff_abs_level_rs1_gt1_flag or rem_abs_flag is moved to the first encoding and decoding process). Table 2 lists some examples of codewords at different levels. Table 2 : Examples of codewords at different levels
Figure 108130206-A0304-0002

由於sig_flag(sig_coeff_flag)的上下文建模與由先前係數的奇偶性位元確定的從屬量化狀態有關,並且狀態轉換取決於該水平的奇偶性位元,因此將修改後的解析過程描述如下。在sig_flag的解析階段,將準備偶數水平的上下文模型並將其存儲在本地緩衝區中。如果sig_flag為0,則存儲的偶數水平上下文模型將應用於下一個sig_flag。如果sig_flag為1,則解析gt1_flag。在gt1_flag的解析階段,奇數水平的上下文模型被加載,然後存儲在本地緩衝區中。如果gt1_flag為0,則可以將存儲的奇數水平上下文模型應用於下一個sig_flag。如果gt1_flag為1,則par_flag和gt2_flag都被解析。將按順序解析這兩個位元子,即,將par_flag的位元子解析為gt2_flag的位元子。如果par_flag為0,則在gt2_flag的解析階段將加載偶數水平的上下文模型。如果par_flag為1,則存儲的奇數水平上下文模型可用於下一個sig_flag。在一個實施例中,總是在第一編解碼過程中的奇偶性位元之後解析一個位元子。將gt2_flag移動到第一編解碼過程後,可以相應地修改上下文建模。Since the context modeling of sig_flag (sig_coeff_flag) is related to the subordinate quantization state determined by the parity bit of the previous coefficient, and the state transition depends on the parity bit of this level, the modified analysis process is described as follows. In the parsing stage of sig_flag, the even-numbered context model will be prepared and stored in the local buffer. If sig_flag is 0, the stored even level context model will be applied to the next sig_flag. If sig_flag is 1, then gt1_flag is parsed. In the parsing stage of gt1_flag, the odd-numbered context model is loaded and then stored in the local buffer. If gt1_flag is 0, the stored odd level context model can be applied to the next sig_flag. If gt1_flag is 1, both par_flag and gt2_flag are parsed. These two bits will be parsed in order, that is, the bits of par_flag will be parsed into bits of gt2_flag. If par_flag is 0, the even-numbered context model will be loaded during the parsing stage of gt2_flag. If par_flag is 1, the stored odd level context model can be used for the next sig_flag. In one embodiment, one bit is always parsed after the parity bit in the first encoding and decoding process. After moving the gt2_flag to the first encoding and decoding process, the context modeling can be modified accordingly.

在一些實施例中,變量sumAbs1的值在第一次編解碼過程之後變為部分重構的絕對水平的總和,其等於coeff_partial的總和(= sig_flag + gt1_flag + par_flag +(gt2_flag >> 1))或在五個相鄰位置中的min(4+(x&1),x),其中x是係數的絕對水平。在一些實施例中,sumAbs1的值僅考慮sig_flag、par_flag和gt1_flag。具體而言,sumAbs1等於五個相鄰位置中的min(coeff_partial,3)或(sig_flag + gt1_flag + par_flag)或min(2+(x&1),x)之和。在一些實施例中,視訊編解碼器在同一過程中解析par_flag之後的至少一個位元子。因此,在解析其他位元子上花費的時間段可以用於為下一個sig_flag準備上下文模型。In some embodiments, the value of the variable sumAbs1 becomes the sum of the absolute levels of partial reconstruction after the first encoding and decoding process, which is equal to the sum of coeff_partial (= sig_flag + gt1_flag + par_flag + (gt2_flag >> 1)) or Min(4+(x&1),x) in five adjacent positions, where x is the absolute level of the coefficient. In some embodiments, the value of sumAbs1 only considers sig_flag, par_flag, and gt1_flag. Specifically, sumAbs1 is equal to the sum of min (coeff_partial, 3) or (sig_flag + gt1_flag + par_flag) or min (2 + (x & 1), x) in five adjacent positions. In some embodiments, the video codec parses at least one bit after par_flag in the same process. Therefore, the time period spent on parsing other bits can be used to prepare the context model for the next sig_flag.

第2圖示出了編解碼過程,該過程包括當熵編解碼變換塊的子塊時指示變換係數水平的絕對值的標誌。該圖示出了用於對變換塊的子塊的變換係數進行熵編解碼的編解碼過程。每個變換係數包括指示絕對值(sig_flag,gt1_flag,gt2_flag)、奇偶性(par_flag)、剩餘部分(remainder)(absr)和變換係數的正負號的語法元素。Figure 2 shows the encoding and decoding process, which includes a flag indicating the absolute value of the transform coefficient level when entropy encoding and decoding a sub-block of the transform block. This figure shows the coding and decoding process for entropy coding and decoding the transform coefficients of the sub-blocks of the transform block. Each transform coefficient includes syntax elements indicating absolute values (sig_flag, gt1_flag, gt2_flag), parity (par_flag), remainder (absr), and the sign of the transform coefficient.

sig_flag可以參考sig_coeff_flag,或者指示相應的變換係數水平的絕對值(例如,AbsLevelRS1的值)的絕對值是否大於0的任何其他標誌。gt1_flag可以參考coeff_abs_level_greater1_flag或 用於指示相應變換係數的絕對值是否大於1的任何其他標誌。gt2_flag可以參考coeff_abs_level_rs1_gt1_flag或用於指示相應變換係數的絕對值是否大於3的任何其他標誌。 par_flag可以參考par_level_flag或指示變換係數水平的絕對值的奇偶性(例如,ParityBit的值)的任何其他標誌。 剩餘部分可以由諸如abs_remainder或coeff_abs_level_remaining的標誌指示。正負號可以由諸如coeff_sign_flag的標誌指示。The sig_flag may refer to sig_coeff_flag, or any other flag indicating whether the absolute value of the corresponding transform coefficient level (for example, the value of AbsLevelRS1) is greater than 0. The gt1_flag may refer to coeff_abs_level_greater1_flag or any other flag used to indicate whether the absolute value of the corresponding transform coefficient is greater than 1. The gt2_flag may refer to coeff_abs_level_rs1_gt1_flag or any other flag used to indicate whether the absolute value of the corresponding transform coefficient is greater than 3. par_flag may refer to par_level_flag or any other flag indicating the parity of the absolute value of the transform coefficient level (for example, the value of ParityBit). The remaining part can be indicated by a flag such as abs_remainder or coeff_abs_level_remaining. The sign may be indicated by a flag such as coeff_sign_flag.

第2圖示出了編解碼過程的兩種方案210和220。在編解碼過程的第一方案210中,每個變換係數的sig_flag、gt1_flag和par_flag在第一編解碼過程中被編解碼,而gt2_flag在第二編解碼過程中被編解碼,剩餘部分在第三編解碼過程中被編解碼,並且在第四編解碼過程中對正負號進行編解碼。換句話說,並非變換係數的絕對值的所有指示符都在同一編解碼過程中。在編解碼過程第二方案220中,每個變換係數的sig_flag、gt1_flag、par_flag和gt2_flag在相同的第一編解碼中被編解碼。其餘部分和正負號分別在第二和第三編解碼過程中編解碼。換句話說,變換係數的絕對值的至少三個或全部指示符在同一編解碼過程中。不管在第一編解碼過程還是隨後的編解碼過程中對gt2_flag進行編解碼,在一些實施例中,用於對第一編解碼過程或變換塊的子塊的語法元素進行熵編解碼的常規位元子的總數受到如以上第1圖所述的的約束或預算。Figure 2 shows two schemes 210 and 220 of the encoding and decoding process. In the first scheme 210 of the encoding and decoding process, the sig_flag, gt1_flag, and par_flag of each transform coefficient are encoded and decoded in the first encoding and decoding process, and gt2_flag is encoded and decoded in the second encoding and decoding process, and the remaining part is in the third encoding and decoding process. It is encoded and decoded during the encoding and decoding process, and the sign is encoded and decoded during the fourth encoding and decoding process. In other words, not all indicators of the absolute value of the transform coefficient are in the same encoding and decoding process. In the second scheme 220 of the coding and decoding process, the sig_flag, gt1_flag, par_flag, and gt2_flag of each transform coefficient are coded and decoded in the same first codec. The remaining parts and signs are coded and decoded in the second and third coding and decoding processes, respectively. In other words, at least three or all indicators of the absolute value of the transform coefficient are in the same encoding and decoding process. Regardless of whether the gt2_flag is coded or decoded in the first codec process or the subsequent codec process, in some embodiments, the regular bits used to perform entropy codec on the syntax elements of the first codec process or the sub-blocks of the transform block The total number of yuanzi is subject to constraints or budgets as described in Figure 1 above.

在一些實施例中,可以進一步指定一些語法元素的最大常規位元子數或某些編解碼過程的最大常規位元子數。例如,視訊編解碼器可以指定coeff_abs_level_rs1_gt2_flag的最大常規位元子數或編解碼過程中用於編解碼coeff_abs_level_rs1_gt2_flag的最大常規位元子數。當在編解碼過程中對這些語法元素進行編解碼時,當常規位元子的累積數量大於指定閾值時,視訊編解碼器可以將其CABAC引擎切換為旁路模式,以將編解碼過程的剩餘位元子編解碼為旁路位元子或終止當前(領先)的編解碼過程。變換係數水平的剩餘絕對值在旁路模式下通過子塊編解碼過程進行編解碼。在一些實施例中,即使沒有允許的常規位元子配額或沒有用於常規位元子的預算,某些語法元素也不為常規位元子數約束計數或始終可以在常規位元子中編解碼。例如,在一些實施例中,sig_coeff_flag在常規位元子中被編解碼,而不管其編解碼過程的任何常規位元子約束。對於另一個示例,在一些實施例中,sig_coeff_flag和par_level_flag在常規位元子中被編解碼(不管其編解碼過程的任何常規位元子約束)。在一些實施例中,如果在編解碼過程中沒有配額或沒有預算用於使用常規位元子來編解碼par_level_flag和rem_abs_gt1_flag,則在編解碼過程中僅將sig_coeff_flag編解碼為常規位元子。 sig_coeff_flag的上下文建模狀態可以與sig_coeff_flag的解析結果相同或轉換。In some embodiments, the maximum number of regular bits for some syntax elements or the maximum number of regular bits for certain encoding and decoding processes may be further specified. For example, the video codec may specify the maximum number of regular bits for coeff_abs_level_rs1_gt2_flag or the maximum number of regular bits used for coding and decoding coeff_abs_level_rs1_gt2_flag during the encoding and decoding process. When encoding and decoding these syntax elements during the encoding and decoding process, when the cumulative number of regular bits is greater than the specified threshold, the video codec can switch its CABAC engine to bypass mode to remove the remainder of the encoding and decoding process. The bit sub-codec is to bypass the bit sub or terminate the current (leading) codec process. The remaining absolute value of the transform coefficient level is coded and decoded through the sub-block coding and decoding process in the bypass mode. In some embodiments, even if there is no regular bit quota allowed or no budget for regular bits, certain syntax elements are not counted as regular bit counts or can always be programmed in regular bits. decoding. For example, in some embodiments, sig_coeff_flag is coded and decoded in a regular bit, regardless of any regular bit constraints of its coding and decoding process. For another example, in some embodiments, sig_coeff_flag and par_level_flag are coded and decoded in regular bits (regardless of any regular bit constraints of the codec process). In some embodiments, if there is no quota or budget for using regular bits to encode and decode par_level_flag and rem_abs_gt1_flag during the encoding and decoding process, only sig_coeff_flag is encoded and decoded into regular bits during the encoding and decoding process. The context modeling state of sig_coeff_flag can be the same as the parsing result of sig_coeff_flag or converted.

在一些實施例中,在編解碼過程中,如果剩餘的可用常規位元子數不大於該編解碼過程中的係數的所需常規位元子數,即,如果該編解碼過程的常規位元子的剩餘預算為不足以滿足編解碼該係數所需的常規位元子數量,則視訊編解碼器可能會將其CABAC引擎切換到旁路模式以進行其餘的編解碼過程,或者視訊編解碼器可能會終止當前的前導編解碼過程。其餘的變換係數水平的絕對值全部通過旁路模式下的子塊編解碼過程進行編解碼。用於將係數編解碼為編解碼過程中的常規位元子所需的剩餘預算也稱為係數的終止閾值。例如,如果sig_coeff_flag、par_level_flag和rem_abs_gt1_flag在一個編解碼過程中進行了編解碼,則終止閾值(用於使用常規位元子)為3。如果sig_coeff_flag、par_level_flag、rem_abs_gt1_flag和rem_abs_gt2_flag在一個編解碼過程中進行了編解碼,則終止閾值為4。In some embodiments, during the encoding and decoding process, if the remaining number of available regular bits is not greater than the required number of regular bits of the coefficients in the encoding and decoding process, that is, if the number of regular bits in the encoding and decoding process is If the remaining budget is insufficient to meet the number of regular bits required to encode and decode the coefficient, the video codec may switch its CABAC engine to bypass mode for the rest of the encoding and decoding process, or the video codec The current leading codec process may be terminated. The absolute values of the remaining transform coefficient levels are all coded and decoded through the sub-block coding and decoding process in the bypass mode. The remaining budget required for encoding and decoding coefficients into regular bits in the encoding and decoding process is also called the termination threshold of the coefficients. For example, if sig_coeff_flag, par_level_flag, and rem_abs_gt1_flag are coded and decoded in one codec process, the termination threshold (used to use regular bits) is 3. If sig_coeff_flag, par_level_flag, rem_abs_gt1_flag, and rem_abs_gt2_flag are encoded and decoded in one encoding and decoding process, the termination threshold is 4.

在一些實施例中,可以例如在位元流中使用諸如序列集(SPS)、圖片參數集(PPS)或切片標頭之類的一個或多個高級語法集來預定義或顯式地發信對用於編解碼變換子塊的常規位元子的最大允許數量的指定約束。指定的約束條件可能取決於配置文件和編解碼位元流中指示的水平。對於不同的顏色分量可以採用不同的約束。對於不同的變換子塊大小,可以採用不同的約束。在一些實施例中,視訊編解碼器可將2×2子塊的常規位元子的最大允許數量限制為等於4×4子塊的常規位元子的最大允許數量的四分之一。在一些實施例中,視訊編解碼器可將4×4色度子塊的常規位元子的最大允許數量限制為等於4×4亮度子塊的常規位元子的最大允許數量的一半。可以在SPS中發信針對4x4變換子塊的指定約束。在一個示例中,可以在SPS中發信針對4x4亮度子塊、4x4色度子塊、2x2色度子塊的指定約束。在一個實施例中,用於4×4色度子塊的常規位元子的最大允許數量等於或小於用於4×4亮度子塊的常規位元子的最大允許數量。在另一個實施例中,用於2×2色度子塊的常規位元子的最大允許數量等於或小於用於2×2色度子塊的常規位元子的最大允許數量。In some embodiments, one or more advanced syntax sets such as sequence set (SPS), picture parameter set (PPS), or slice header may be used, for example, to pre-defined or explicitly signal in the bit stream. Specify constraints on the maximum allowable number of regular bits used for codec transformation sub-blocks. The specified constraints may depend on the level indicated in the configuration file and codec bitstream. Different constraints can be used for different color components. For different transform sub-block sizes, different constraints can be adopted. In some embodiments, the video codec may limit the maximum allowable number of regular bits of a 2×2 sub-block to be equal to one-fourth of the maximum allowable number of regular bits of a 4×4 sub-block. In some embodiments, the video codec may limit the maximum allowable number of regular bits of the 4×4 chrominance sub-block to be equal to half of the maximum allowable number of regular bits of the 4×4 luma sub-block. The specified constraints for 4x4 transform sub-blocks can be signaled in SPS. In one example, the specified constraints for 4x4 luma sub-blocks, 4x4 chroma sub-blocks, and 2x2 chroma sub-blocks can be signaled in the SPS. In one embodiment, the maximum allowable number of regular bits for the 4×4 chroma sub-block is equal to or less than the maximum allowable number of regular bits for the 4×4 luma sub-block. In another embodiment, the maximum allowable number of regular bits for a 2×2 chroma sub-block is equal to or less than the maximum allowable number of regular bits for a 2×2 chroma sub-block.

在一些實施例中,4x4亮度子塊的最大常規位元子可以是25、30或32,4x4色度子塊的最大常規位元子可以是25、16或15,2x2色度子塊的最大常規位元子可以是2、3、4、5、6、7或8。例如,{ 4x4亮度子塊,一個4x4色度子塊,一個2x2色度子塊}的最大常規位元子可以是{25, 25, 8}、{25, 25, 6}、{25, 25, 7}、{32, 16, 4}、{32, 32, 8}、{30, 16, 4}、{30, 15, 4}或{30, 15, 3}。In some embodiments, the largest regular bit of a 4x4 luma sub-block can be 25, 30 or 32, the largest regular bit of a 4x4 chroma sub-block can be 25, 16 or 15, and the largest regular bit of a 2x2 chroma sub-block Regular bits can be 2, 3, 4, 5, 6, 7, or 8. For example, {4x4 luma sub-block, one 4x4 chroma sub-block, one 2x2 chroma sub-block} can be {25, 25, 8}, {25, 25, 6}, {25, 25 , 7}, {32, 16, 4}, {32, 32, 8}, {30, 16, 4}, {30, 15, 4} or {30, 15, 3}.

在一些實施例中,還可以指定編解碼coeff_abs_level_rs1_gt1_flag的最大常規位元子。例如,在4x4亮度子塊中coeff_abs_level_rs1_gt1_flag的最大常規位元子可以為2、3、4或5,在4x4色度子塊中coeff_abs_level_rs1_gt1_flag的最大常規位元子可以為0、1、2、3或4 ,則2x2色度子塊中coeff_abs_level_rs1_gt1_flag的最大常規位元子可以為0、1或2。例如,{4x4亮度子塊,4x4亮度子塊中的coeff_abs_level_rs1_gt1_flag,4x4色度子塊,4x4色度子塊中的coeff_abs_level_rs1_gt1_flag,2x2色度子塊,2x2色度子塊中的coeff_abs_level_rs1_gt1_flag}中的最大常規位元子可以是{25, 4, 25, 4, 8, 2}, {25, 4, 25, 4, 6, 2}, {25, 4, 25, 4, 6, 1}, {25, 3, 25, 3, 6, 2}, {25, 3, 25, 3, 6, 1}, {25, 2, 25, 2, 6, 1}, {25, 2, 25, 2, 6, 0}, {25, 1, 25, 1, 6, 1}, {25, 1, 25, 1, 6, 0}, {25, 3, 25, 3, 7, 2}, {32, 4, 16, 2, 4, 1}, {32, 4, 16, 2, 4, 0}, {32, 4, 16, 4, 4, 1}, {32, 4, 16, 4, 4, 0}, {32, 3, 16, 2, 4, 1}, {32, 3, 16, 2, 4, 0}, {30, 4, 16, 2, 4, 1}, {30, 4, 16, 2, 4, 0}, {30, 3, 16, 2, 4, 1}, {30, 3, 16, 2, 4, 0}, {30, 4, 15, 2, 4, 1}, {30, 4, 15, 2, 4, 0}, {30, 3, 15, 2, 4, 1}, {30, 3, 15, 2, 4, 0}, {30, 4, 15, 2, 3, 1}, {30, 4, 15, 2, 3, 0}, {30, 3, 15, 2, 3, 1}, {30, 3, 15, 2, 3, 0}, {32, 4, 32, 4, 8, 1}.In some embodiments, the largest regular bit of the codec coeff_abs_level_rs1_gt1_flag can also be specified. For example, the largest regular bit of coeff_abs_level_rs1_gt1_flag in a 4x4 luma sub-block can be 2, 3, 4, or 5, and the largest regular bit of coeff_abs_level_rs1_gt1_flag in a 4x4 chroma sub-block can be 0, 1, 2, 3, or 4. , Then the largest regular bit of coeff_abs_level_rs1_gt1_flag in the 2x2 chroma sub-block can be 0, 1, or 2. For example, {4x4 luma sub-block, coeff_abs_level_rs1_gt1_flag in 4x4 luma sub-block, 4x4 chroma sub-block, coeff_abs_level_rs1_gt1_flag in 4x4 chroma sub-block, 2x2 chroma sub-block, maximum coeff_abs_flag in 2x2 chroma sub-block}_gt1_level_g1 Bits can be {25, 4, 25, 4, 8, 2}, {25, 4, 25, 4, 6, 2}, {25, 4, 25, 4, 6, 1}, {25, 3, 25, 3, 6, 2}, {25, 3, 25, 3, 6, 1}, {25, 2, 25, 2, 6, 1}, {25, 2, 25, 2, 6, 0}, {25, 1, 25, 1, 6, 1}, {25, 1, 25, 1, 6, 0}, {25, 3, 25, 3, 7, 2}, {32, 4, 16, 2, 4, 1}, {32, 4, 16, 2, 4, 0}, {32, 4, 16, 4, 4, 1}, {32, 4, 16, 4, 4, 0} , {32, 3, 16, 2, 4, 1}, {32, 3, 16, 2, 4, 0}, {30, 4, 16, 2, 4, 1}, {30, 4, 16, 2, 4, 0}, {30, 3, 16, 2, 4, 1}, {30, 3, 16, 2, 4, 0}, {30, 4, 15, 2, 4, 1}, { 30, 4, 15, 2, 4, 0}, {30, 3, 15, 2, 4, 1}, {30, 3, 15, 2, 4, 0}, {30, 4, 15, 2, 3, 1}, {30, 4, 15, 2, 3, 0}, {30, 3, 15, 2, 3, 1}, {30, 3, 15, 2, 3, 0}, {32, 4, 32, 4, 8, 1).

在一些實施例中,視訊編解碼器可具有對規定用於對變換單元或變換塊的一些大小進行熵編解碼的常規位元子的最大允許數目的約束。 可以從為相關的變換單元或變換塊指定的約束中得出對當前子塊的常規位元子的最大允許數量的約束。 例如,可以分別從視訊編解碼器中對4x4變換塊和2x2變換塊的常規位元子的最大允許數目的約束中得出4x4變換子塊和2x2變換塊的常規位元子的最大允許數目約束。In some embodiments, the video codec may have constraints on the maximum allowable number of regular bits specified for entropy coding and decoding of some sizes of transform units or transform blocks. The constraint on the maximum allowable number of regular bits in the current sub-block can be derived from the constraints specified for the relevant transform unit or transform block. For example, the constraints on the maximum allowable number of regular bits of the 4x4 transform block and the 2x2 transform block in the video codec can be derived from the constraints on the maximum allowable number of regular bits of the 4x4 transform block and the 2x2 transform block. .

在一些實施例中,當rem_abs_gt2_flag包括在前導編解碼過程(例如,第一編解碼過程)中並且rem_abs_gt2_flag的常規位元子數約束值是(從sig_coeff_flag、par_level_flag、 rem_abs_gt1_flag的常規位元子數約束值)分開指定的,並且發信rem_abs_gt2_flag,當如果在rem_abs_gt1_flag之前發信奇偶性位,係數的部分和(= sig_flag + gt1_flag + par_flag + (gt2_flag >> 1) or = sig_flag + par_flag + (gt1_flag>>1) + (gt2_flag >> 1) ) 等於或大於5時,或者當如果在rem_abs_gt1_flag之後發信奇偶性位,係數的部分和等於或大於4時,對係數的剩餘水平進行編解碼。否則,不對係數的剩餘水平進行編解碼。如果由於rem_abs_gt2_flag的常規位元子的可用數目為零而未發信rem_abs_gt2_flag,則如果在rem_abs_gt1_flag之前發信奇偶性位,則當係數的部分和等於或大於4時,對係數的剩餘水平進行編解碼,以及如果在rem_abs_gt1_flag之後發信奇偶性位,則當係數的部分和等於或大於2時,對係數的剩餘水平進行編解碼。否則,不對係數的剩餘水平進行編解碼。然而,如果常規位元子的可用數量小於閾值,則在一個實施例中,終止前導編解碼過程,如果係數沒有被前導過程編解碼,則直接用Golomb-Rice碼對水平進行編解碼。當前導編解碼過程被終止時,執行剩餘水平的編解碼過程。剩餘水平編解碼過程從當前子塊的最後位置開始到子塊的第一位置。In some embodiments, when rem_abs_gt2_flag is included in the preamble codec process (for example, the first codec process) and the regular bit number constraint value of rem_abs_gt2_flag is (from the regular bit number constraint value of sig_coeff_flag, par_level_flag, rem_abs_gt1_flag) ) Separately specified and send rem_abs_gt2_flag, if the parity bit is sent before rem_abs_gt1_flag, the partial sum of the coefficient (= sig_flag + gt1_flag + par_flag + (gt2_flag >> 1) or = sig_flag + par_flag +>> (gt1_flag ) + (gt2_flag >> 1)) is equal to or greater than 5, or if the parity bit is signaled after rem_abs_gt1_flag, and the partial sum of the coefficient is equal to or greater than 4, the remaining level of the coefficient is coded and decoded. Otherwise, the remaining levels of coefficients are not coded or decoded. If rem_abs_gt2_flag is not signaled because the available number of regular bits of rem_abs_gt2_flag is zero, if the parity bit is signaled before rem_abs_gt1_flag, when the partial sum of the coefficient is equal to or greater than 4, the remaining level of the coefficient is coded and decoded , And if the parity bit is signaled after rem_abs_gt1_flag, when the partial sum of the coefficient is equal to or greater than 2, the remaining level of the coefficient is coded and decoded. Otherwise, the remaining levels of coefficients are not coded or decoded. However, if the available number of regular bits is less than the threshold, in one embodiment, the preamble coding and decoding process is terminated, and if the coefficients are not coded and decoded by the preamble process, the Golomb-Rice code is directly used to code and decode the level. When the current guide codec process is terminated, the remaining level of codec process is executed. The remaining horizontal codec process starts from the last position of the current sub-block to the first position of the sub-block.

在一些實施例中,為TU指定了常規位元子的最大允許數量。可以從用於終止4x4子塊的常規位元子編解碼的閾值導出用於終止TU的常規位元子編解碼的閾值(或常規位元子的預算)。例如,如果TU是亮度8x8塊,而亮度4x4塊的閾值為32,則此8x8亮度TU的閾值為32x4 =128。對於不同的顏色分量或不同的TU大小,閾值可以不同。In some embodiments, the maximum allowable number of regular bits is specified for the TU. The threshold used to terminate the regular bit sub-coding and decoding of the TU (or the regular bit budget) can be derived from the threshold used to terminate the regular bit sub-coding and decoding of the 4x4 sub-block. For example, if the TU is a luminance 8x8 block, and the threshold of the luminance 4x4 block is 32, then the threshold of this 8x8 luminance TU is 32x4=128. For different color components or different TU sizes, the threshold can be different.

在一些實施例中,為變換子塊指定了對常規位元子的最大允許數目的約束,但是,對於常規位元子的允許數目的約束數目可以取決於當前的TU大小、TU類型、TU寬度、TU高度、當前TU中的子塊總數、子塊大小、子塊寬度、子塊高度、顏色分量、最後一個非零係數(significant coefficient)位置、最後一個非零子塊(significant subblock)位置或以上任意組合。例如,約束數量可以取決於當前TU中的子塊的總數、顏色分量、子塊大小以及最後一個非零子塊位置。In some embodiments, a constraint on the maximum allowable number of regular bits is specified for the transform sub-block, but the number of constraints on the allowable number of regular bits may depend on the current TU size, TU type, and TU width. , TU height, total number of sub-blocks in the current TU, sub-block size, sub-block width, sub-block height, color component, position of the last significant coefficient, position of the last non-zero subblock, or Any combination of the above. For example, the number of constraints may depend on the total number of sub-blocks in the current TU, color components, sub-block size, and the last non-zero sub-block position.

為了對TU的子塊的係數進行編解碼,可以在子塊之間共享的常規位元子允許數量值。例如,在TU的第一子塊中,常規位元子的允許數量是128。當編解碼第一子塊時,當使用常規位元子用於編解碼係數時,常規位元子的允許數量減少。剩餘的允許值用於TU的下一個子塊。在一些實施例中,可以在(或基於)編碼/解碼的最後的非零係數位置或最後的非零子塊位置之後得出所需的編解碼子塊的數量。例如,一個16x16 TU具有16個4x4子塊。 TU允許的常規位元子的總數可以為32x16 =512。在解碼最後一個非零係數位置後,如果所需編解碼子塊的數量為8,則每個子塊可以使用64個常規位元子(64x8 = 512)。In order to encode and decode the coefficients of the sub-blocks of the TU, the allowable number of regular bits can be shared between the sub-blocks. For example, in the first sub-block of the TU, the allowable number of regular bits is 128. When encoding and decoding the first sub-block, when using regular bits for coding and decoding coefficients, the allowable number of regular bits is reduced. The remaining allowable value is used for the next sub-block of the TU. In some embodiments, the required number of codec sub-blocks can be derived after (or based on) the last non-zero coefficient position or the last non-zero sub-block position of the coding/decoding. For example, a 16x16 TU has 16 4x4 sub-blocks. The total number of regular bits allowed by the TU can be 32x16 = 512. After decoding the last non-zero coefficient position, if the number of required codec sub-blocks is 8, each sub-block can use 64 regular bits (64x8 = 512).

在一些實施例中,當確定最後的非零子塊位置時,可以確定要編解碼的子塊的數量。如果要編解碼的子塊的數量小於當前TU中的子塊的總數,即,在熵編解碼中跳過了一些子塊,則可以增加對每個子塊的常規位元子最大允許數的限制。In some embodiments, when determining the position of the last non-zero sub-block, the number of sub-blocks to be coded and decoded can be determined. If the number of sub-blocks to be coded and decoded is less than the total number of sub-blocks in the current TU, that is, some sub-blocks are skipped in the entropy coding and decoding, the maximum allowable number of regular bits per sub-block can be increased. .

第3圖示出了在當前塊的子塊之間共享允許數量的常規位元子。該圖示出了第一塊310和第二塊320,它們是變換塊或TU。第一塊310和第二塊320中的每一個具有4×4 = 16個子塊。第一塊310和第二塊320中的每一個對於該塊具有512的常規位元子的總約束或預算。Figure 3 shows that the allowed number of regular bits are shared among the sub-blocks of the current block. The figure shows a first block 310 and a second block 320, which are transform blocks or TUs. Each of the first block 310 and the second block 320 has 4×4 = 16 sub-blocks. Each of the first block 310 and the second block 320 has a total constraint or budget of 512 regular bits for that block.

對第一塊310的所有子塊進行編解碼(圖示為陰影),使得最後編解碼的子塊的位置是子塊319,其是第一塊310中的第16個子塊。第一塊310的每個子塊被給出了512÷16=32的常規位元子的約束或預算。All sub-blocks of the first block 310 are coded and decoded (shown as shaded in the figure), so that the position of the last coded and decoded sub-block is sub-block 319, which is the 16th sub-block in the first block 310. Each sub-block of the first block 310 is given a constraint or budget of 512÷16=32 regular bits.

另一方面,第二塊320的僅8個子塊被編解碼,使得最後編解碼的子塊的位置是子塊325,其是第二塊320中的第8個子塊。第一塊320的每個編解碼子塊被給出了512÷8=64的常規位元子的約束或預算。On the other hand, only 8 sub-blocks of the second block 320 are coded and decoded, so that the position of the last coded and decoded sub-block is the sub-block 325, which is the 8th sub-block in the second block 320. Each codec sub-block of the first block 320 is given a constraint or budget of 512÷8=64 regular bits.

在一些實施例中,通過將默認約束值乘以因子來計算對子塊的常規位元子的約束。 (第3圖的示例中的默認約束是32。)該因子與計算為(當前TU中的子塊的總數)/(要編解碼的子塊的數目)或floor((當前TU中的子塊總數)/(要編解碼的子塊數))的比例相關,其中floor(x)表示找到小於或等於x的最大整數值。在一些實施例中,指定一些預定義因素。可以根據兩個分母的冪從{4、2、1.5、1.25、1}或其他值中選擇預定義因子,可以通過左右移位和加法運算來計算其他值。設當前TU中的子塊總數為A,要編解碼的子塊數目為B。在一個示例中,如果B * 4 >= A,則因子可以為4。否則,如果B * 2 >= A,則因子可以為2。否則,如果B * 3 >= A * 2,則因子可以為1.5。否則,如果B * 5 >= A * 4,則因子可以為1.25。否則,因子可以為1。在另一個示例中,如果B * 4 >= A,則因子可以為4。否則,如果B * 3 >= A,則因子可以為3。否則,如果B * 2 >= A,則因子可以為2。否則,如果B * 3 >= A * 2,則因子可以為1.5。否則,如果B * 5 >= A * 4,則因子可以為1.25。否則,因子可以為1。對於不同的語法類型或不同的子塊大小或不同的顏色分量,因子可以不同。 III. 示例的視訊編碼器In some embodiments, the constraint on the regular bits of the sub-block is calculated by multiplying the default constraint value by a factor. (The default constraint in the example in Figure 3 is 32.) This factor is calculated as (the total number of sub-blocks in the current TU)/(the number of sub-blocks to be coded and decoded) or floor ((the sub-blocks in the current TU) Total)/(the number of sub-blocks to be coded and decoded)), where floor(x) means finding the largest integer value less than or equal to x. In some embodiments, some predefined factors are specified. Pre-defined factors can be selected from {4, 2, 1.5, 1.25, 1} or other values according to the power of the two denominators, and other values can be calculated by left and right shift and addition operations. Suppose the total number of sub-blocks in the current TU is A, and the number of sub-blocks to be coded and decoded is B. In an example, if B * 4 >= A, the factor can be 4. Otherwise, if B * 2 >= A, the factor can be 2. Otherwise, if B * 3 >= A * 2, the factor can be 1.5. Otherwise, if B * 5 >= A * 4, the factor can be 1.25. Otherwise, the factor can be 1. In another example, if B * 4 >= A, the factor can be 4. Otherwise, if B * 3 >= A, the factor can be 3. Otherwise, if B * 2 >= A, the factor can be 2. Otherwise, if B * 3 >= A * 2, the factor can be 1.5. Otherwise, if B * 5 >= A * 4, the factor can be 1.25. Otherwise, the factor can be 1. For different syntax types or different sub-block sizes or different color components, the factors can be different. III. Example video encoder

第4圖示示例的視訊編碼器400。 如圖所示,視訊編碼器400從視訊源405接收輸入視訊信號,並將該信號編碼爲位元流495。視訊編碼器400具有若干組件或模塊,用於對來自視訊源405的信號進行編碼,至少包括選自以下的一些組件: 變換模塊410、量化模塊411、逆量化模塊414、逆變換模塊415、圖片內估計模塊420、幀內預測模塊425、運動補償模塊430、運動估計模塊435、 環路濾波器445、重構圖片緩衝器450、MV緩衝器465和MV預測模塊475以及熵編解碼器490。運動補償模塊430和運動估計模塊435是幀間預測模塊440的一部分。 The video encoder 400 is an example of the fourth figure. As shown in the figure, the video encoder 400 receives the input video signal from the video source 405 and encodes the signal into a bit stream 495. The video encoder 400 has several components or modules for encoding the signal from the video source 405, including at least some components selected from the following: transform module 410, quantization module 411, inverse quantization module 414, inverse transform module 415, picture Intra estimation module 420, intra prediction module 425, motion compensation module 430, motion estimation module 435, loop filter 445, reconstructed picture buffer 450, MV buffer 465 and MV prediction module 475, and entropy codec 490. The motion compensation module 430 and the motion estimation module 435 are part of the inter prediction module 440.

在一些實施例中,模塊410至490是由計算設備或電子裝置的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。在一些實施例中,模塊410-490是由電子裝置的一個或多個集體電路(IC)實現的硬體電路的模塊。儘管將模塊410-490圖示為單獨的模塊,但是某些模塊可以組合為單個模塊。 In some embodiments, the modules 410 to 490 are modules of software instructions executed by one or more processing units (for example, processors) of a computing device or an electronic device. In some embodiments, the modules 410-490 are modules of hardware circuits implemented by one or more collective circuits (ICs) of the electronic device. Although the modules 410-490 are illustrated as separate modules, some modules may be combined into a single module.

視訊源405提供原始視訊信號,該原始視訊信號無需壓縮即可呈現每個視訊幀的像素資料。减法器408計算視訊源405的原始視訊像素資料與來自運動補償模塊430或幀內預測模塊(圖中示為圖片內預測模塊)425的預測像素資料413之間的差。變換模塊410將該差(或剩餘像素資料或殘差信號409)轉換成變換係數416(例如,通過執行離散余弦變換(DCT))。量化模塊411將變換係數量化為量化資料(或量化係數)412,其由熵編解碼器490編碼為位元流495。 The video source 405 provides an original video signal, and the original video signal can present the pixel data of each video frame without compression. The subtractor 408 calculates the difference between the original video pixel data of the video source 405 and the predicted pixel data 413 from the motion compensation module 430 or the intra prediction module (intra-picture prediction module shown in the figure) 425. The transform module 410 converts the difference (or residual pixel data or residual signal 409) into transform coefficients 416 (for example, by performing a discrete cosine transform (DCT)). The quantization module 411 quantizes the transform coefficients into quantized data (or quantized coefficients) 412, which is encoded into a bit stream 495 by the entropy codec 490.

逆量化模塊414對量化資料(或量化係數)412進行逆量化以獲得變換係數,並且逆變換模塊415對變換係數執行逆變換以產生重構殘差419。重構殘差419與預測像素資料413相加產生重構像素資料417。在一些實施例中,重構像素資料417被臨時存儲在行緩衝器(未示出)中,用於圖片內預測和空間MV預測。重構像素由環路濾波器445濾波,並存儲在重構圖片緩衝器450中。在一些實施例中,重構圖片緩衝器450是視訊編碼器400外部的記憶體。在一些實施例中,重構圖片緩衝器450是視訊編碼器400內部的記憶體。 The inverse quantization module 414 inversely quantizes the quantized data (or quantized coefficients) 412 to obtain transform coefficients, and the inverse transform module 415 performs inverse transform on the transform coefficients to generate a reconstruction residual 419. The reconstruction residual 419 is added to the predicted pixel data 413 to generate the reconstructed pixel data 417. In some embodiments, the reconstructed pixel data 417 is temporarily stored in a line buffer (not shown) for intra-picture prediction and spatial MV prediction. The reconstructed pixels are filtered by the loop filter 445 and stored in the reconstructed picture buffer 450. In some embodiments, the reconstructed picture buffer 450 is a memory external to the video encoder 400. In some embodiments, the reconstructed picture buffer 450 is the internal memory of the video encoder 400.

圖片內估計模塊420基於重構的像素資料417執行幀內預測以產生幀內預測資料。幀內預測資料被提供給熵編解碼器490,以被編碼為位元流495。幀內預測資料還被幀內預測模塊425用來產生預測像素資料413。 The intra-picture estimation module 420 performs intra-frame prediction based on the reconstructed pixel data 417 to generate intra-frame prediction data. The intra-frame prediction data is provided to the entropy codec 490 to be encoded as a bit stream 495. The intra prediction data is also used by the intra prediction module 425 to generate prediction pixel data 413.

運動估計模塊435通過產生MV來執行幀間預測,其中,MV針 對存儲在重構圖片緩衝器450中的先前解碼的幀的參考像素資料。這些MV被提供給運動補償模塊430以產生預測像素資料。 The motion estimation module 435 performs inter prediction by generating MV, where MV is The reference pixel data of the previously decoded frame stored in the reconstructed picture buffer 450. These MVs are provided to the motion compensation module 430 to generate predicted pixel data.

代替對位元流中的完整的實際MV進行編碼,視訊編碼器400使用MV預測來生成預測的MV,並且將用於運動補償的MV與預測的MV之間的差編碼為殘差運動資料並存儲在位元流495。 Instead of encoding the complete actual MV in the bitstream, the video encoder 400 uses MV prediction to generate a predicted MV, and encodes the difference between the MV used for motion compensation and the predicted MV as residual motion data and Stored in bit stream 495.

MV預測模塊475基於為對先前的視訊幀進行編碼而生成的參考MV(即,用於執行運動補償的運動補償MV)來生成預測MV。MV預測模塊475從MV緩衝器465中的先前視訊幀中擷取參考MV。視訊編碼器400將為當前視訊幀生成的MV存儲在MV緩衝器465中,作為用於生成預測MV的參考MV。 The MV prediction module 475 generates a predicted MV based on a reference MV (ie, a motion compensation MV for performing motion compensation) generated for encoding a previous video frame. The MV prediction module 475 retrieves the reference MV from the previous video frame in the MV buffer 465. The video encoder 400 stores the MV generated for the current video frame in the MV buffer 465 as a reference MV for generating the predicted MV.

MV預測模塊475使用參考MV來創建預測的MV。可以通過空間MV預測或時間MV預測來計算預測的MV。熵編解碼器490將當前幀的預測MV和運動補償MV(MC MV)之間的差(殘差運動資料)編碼到位元流495中。 The MV prediction module 475 uses the reference MV to create a predicted MV. The predicted MV can be calculated by spatial MV prediction or temporal MV prediction. The entropy codec 490 encodes the difference (residual motion data) between the predicted MV and the motion compensation MV (MC MV) of the current frame into the bitstream 495.

熵編解碼器490通過使用諸如上下文自適應二進位算術編碼(CABAC)或霍夫曼編碼的熵編解碼技術將各種參數和資料編碼到位元流495中。熵編解碼器490將各種報頭元素、標志以及量化的變換係數412以及殘差運動資料作為語法元素編碼到位元流495中。位元流495又被存儲在存儲設備中或者通過通信介質,例如網路,被發送到解碼器。 The entropy codec 490 encodes various parameters and data into the bit stream 495 by using an entropy coding and decoding technique such as context adaptive binary arithmetic coding (CABAC) or Huffman coding. The entropy codec 490 encodes various header elements, flags, and quantized transform coefficients 412 and residual motion data into the bit stream 495 as syntax elements. The bit stream 495 is stored in a storage device or sent to the decoder via a communication medium, such as a network.

環路濾波器445對重構的像素資料417執行濾波或平滑操作,以减少編碼的偽像,特別是在像素塊的邊界處。在一些實施例中,執行的濾波操作包括採樣自適應偏移(SAO)。在一些實施例中,濾波操作包括自適應環路濾波器(ALF)。 The loop filter 445 performs a filtering or smoothing operation on the reconstructed pixel data 417 to reduce encoding artifacts, especially at the boundaries of pixel blocks. In some embodiments, the filtering operation performed includes sample adaptive offset (SAO). In some embodiments, the filtering operation includes an adaptive loop filter (ALF).

第5圖說明視訊編碼器400的部分,其基於限制用於子塊的常規 位元子的數目的約束而以常規模式或旁路模式選擇性地熵編碼塊的子塊的語法元素。該圖示出了熵編碼器模塊490的組件。 Figure 5 illustrates the part of the video encoder 400, which is based on the conventional The syntax elements of the sub-blocks of the block are selectively entropy-encoded in the regular mode or the bypass mode under the constraint of the number of bits. The figure shows the components of the entropy encoder module 490.

語法元素產生器502產生待熵編解碼的語法元素,包括表示基於量化係數412的當前子塊的變換係數的語法元素。語法元素根據預定的編碼通過產生(例如,第一編碼通道中的sig_flag、gt1_flag、gt2_flag和par_flag)。 The syntax element generator 502 generates syntax elements to be entropy coded and decoded, including syntax elements representing transform coefficients of the current sub-block based on the quantized coefficients 412. The syntax elements are generated according to a predetermined encoding pass (for example, sig_flag, gt1_flag, gt2_flag, and par_flag in the first encoding pass).

所選擇的語法元素被二進位化器(binarizer)506轉換為位元子字符串(bin string)510(用於非二進位值語法元素)或直接用作位元子字符串(用於二進位值語法元素)。常規/旁路模式開關508確定語法元素位元子字符串510是被熵編解碼為常規位元子還是旁路位元子。上下文建模器(context modeler)512和常規編碼引擎514使用上下文建模將常規位元子處理為編碼位元(code bit)518。旁路位元子由旁路編碼引擎516處理為編碼位元518,而無需使用上下文建模。編碼位元518被存儲為位元流495的一部分。 The selected syntax element is converted into a bin string 510 (for non-binary value syntax elements) by the binarizer 506 or directly used as a bin string (for binary Value syntax element). The normal/bypass mode switch 508 determines whether the syntax element bit substring 510 is entropy coded into a normal bit or a bypass bit. The context modeler 512 and the regular coding engine 514 use context modeling to process regular bits into code bits 518. The bypass bits are processed by the bypass coding engine 516 into coded bits 518 without using context modeling. The coded bits 518 are stored as part of the bit stream 495.

常規/旁路模式開關508由常規/旁路模式選擇模塊520控制。常規/旁路模式選擇模塊通過使用常規位元子計數器522來決定是選擇常規模式還是旁路模式。常規位元子計數器522對為當前子塊編碼的常規位元子的數量進行計數,並且常規/旁路模式開關508允許將位元子字符串編碼為常規位元子,只要常規位元子計數器不大於或等於約束(第8圖中示為常規位元子約束)524即可。因此,約束524限制了當前子塊或當前子塊的當前編解碼過程的常規位元子的數量。可以基於子塊的大小、當前塊中的編碼子塊的數量、當前塊中的子塊的總數、當前子塊的顏色分量或當前塊或子塊的其他屬性來確定約束524。 The normal/bypass mode switch 508 is controlled by the normal/bypass mode selection module 520. The normal/bypass mode selection module uses the normal bit sub-counter 522 to determine whether to select the normal mode or the bypass mode. The regular bit sub-counter 522 counts the number of regular bits encoded for the current sub-block, and the regular/bypass mode switch 508 allows bit substrings to be encoded as regular bits, as long as the regular bit sub-counter It is not greater than or equal to the constraint (shown as a regular bit sub-constraint in Figure 8) 524. Therefore, the constraint 524 limits the current sub-block or the number of regular bits in the current codec process of the current sub-block. The constraint 524 may be determined based on the size of the sub-block, the number of coded sub-blocks in the current block, the total number of sub-blocks in the current block, the color components of the current sub-block, or other attributes of the current block or sub-block.

第6圖概念性地示出了過程600,其基於限制用於變換塊的常規位元子的數量的約束,以常規模式或旁路模式選擇性地熵編碼當前塊的語法元素。在一些實施例中,實現視訊編碼器400的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程600。在 一些實施例中,實現視訊編碼器400的電子裝置執行過程600。 Fig. 6 conceptually illustrates a process 600, which selectively entropy encodes the syntax elements of the current block in a regular mode or a bypass mode based on the constraint of limiting the number of regular bits used to transform a block. In some embodiments, one or more processing units (eg, processors) of a computing device that implements the video encoder 400 perform the process 600 by executing instructions stored in a computer-readable medium. exist In some embodiments, the electronic device implementing the video encoder 400 performs the process 600.

視訊編碼器接收(在步驟610處)與表示當前塊的變換係數的語法元素相關聯的輸入資料。變換係數可以是當前塊的變換塊的變換係數,或者是變換塊的子塊的變換係數。在一些實施例中,將在多個編解碼過程中對語法元素進行熵編碼。對於每個變換係數,將在第一編解碼過程中對錶示變換係數的絕對值的至少第一標誌、第二標誌和第三標誌進行熵編碼。第一標誌可以指示變換係數水平的絕對值是否大於0(例如,sig_flag)。第二標記可以指示變換係數水平的絕對值是否大於1(例如,gt1_flag)。第三標記可以指示變換係數水平的絕對值是否大於2或3(例如,gt2_flag)。在一些實施例中,變換係數的絕對值的奇偶性(例如,par_flag)也在第一編解碼過程中被熵編解碼,而變換係數的其餘部分在第二編解碼過程中被熵編解碼,並且在第三編解碼過程中對變換係數的正負號進行熵編解碼。使用基於上下文的模型在第一編解碼過程中對變換係數的常規位元子進行熵編解碼,該上下文模型基於第一標誌、第二標誌、第三標誌和變換係數的絕對值的奇偶性確定。 The video encoder receives (at step 610) input data associated with syntax elements representing transform coefficients of the current block. The transform coefficient may be the transform coefficient of the transform block of the current block, or the transform coefficient of the sub-block of the transform block. In some embodiments, the syntax elements will be entropy encoded in multiple encoding and decoding processes. For each transform coefficient, at least the first flag, the second flag, and the third flag representing the absolute value of the transform coefficient will be entropy-encoded in the first encoding and decoding process. The first flag may indicate whether the absolute value of the transform coefficient level is greater than 0 (for example, sig_flag). The second flag may indicate whether the absolute value of the transform coefficient level is greater than 1 (for example, gt1_flag). The third flag may indicate whether the absolute value of the transform coefficient level is greater than 2 or 3 (for example, gt2_flag). In some embodiments, the parity of the absolute value of the transform coefficient (for example, par_flag) is also entropy-coded and decoded in the first encoding and decoding process, and the remaining part of the transform coefficient is entropy-encoded and decoded in the second encoding and decoding process, And in the third coding and decoding process, the sign of the transform coefficient is entropy coding and decoding. Entropy encoding and decoding of regular bits of transform coefficients in the first encoding and decoding process using a context-based model, which is based on the parity determination of the first flag, the second flag, the third flag, and the absolute value of the transform coefficient .

視訊編碼器識別(在步驟620處)約束,該約束限制用於對語法元素進行熵編解碼的常規位元子的總數。在一些實施例中,對於第一顏色分量的約束與對於第二顏色分量的約束是不同的。在一些實施例中,基於變換塊的大小來確定約束。在一些實施例中,通過將默認約束與預定義因子相乘來計算該約束,該預定義因子從當前塊中的編碼子塊的數量與當前塊中的所有子塊的數量之比得出。在一些實施例中,用於對第一編解碼過程中的語法元素進行熵編解碼的常規位元子的總數受到約束的限制。在一些實施例中,不存在限制特定於單個語法元素的常規位元子的數量的約束。 The video encoder identifies (at step 620) constraints that limit the total number of regular bits used for entropy encoding and decoding of syntax elements. In some embodiments, the constraints on the first color component are different from the constraints on the second color component. In some embodiments, the constraints are determined based on the size of the transform block. In some embodiments, the constraint is calculated by multiplying the default constraint with a predefined factor derived from the ratio of the number of coded sub-blocks in the current block to the number of all sub-blocks in the current block. In some embodiments, the total number of regular bits used for entropy encoding and decoding of the syntax elements in the first encoding and decoding process is restricted by constraints. In some embodiments, there are no constraints that limit the number of regular bits specific to a single syntax element.

視訊編碼器選擇或接收(在步驟625處)語法元素作為要被熵編碼的當前語法元素。語法元素的選擇可以由當前編解碼過程確定。視訊編碼器 然後確定(在步驟630處)是使用旁路模式還是常規模式來對當前語法元素進行編碼。在一些實施例中,視訊解碼器跟踪已經用於編碼語法元素的常規位元子的數量或計數。將常規位元子的數量與在步驟620中識別的約束進行比較,該約束限制了變換塊的CABAC常規位元子的最大允許數量,例如,用於編碼子塊的CABAC常規位元子的最大允許數量。如果將當前語法元素編碼為常規位元子將超出約束,則過程進行到650。如果將當前語法元素編碼為常規位元子將不超過約束,則過程進行到640。在一些實施例中,視訊編解碼器可將特定語法元素編碼為常規位元子,不受約束。 The video encoder selects or receives (at step 625) the syntax element as the current syntax element to be entropy encoded. The choice of syntax elements can be determined by the current encoding and decoding process. Video encoder It is then determined (at step 630) whether to use bypass mode or regular mode to encode the current syntax element. In some embodiments, the video decoder keeps track of the number or count of regular bits that have been used to encode syntax elements. The number of regular bits is compared with the constraint identified in step 620, which limits the maximum allowable number of CABAC regular bits of the transform block, for example, the maximum number of CABAC regular bits used to encode sub-blocks. Allowed quantity. If encoding the current syntax element as a regular bit would exceed the constraint, the process proceeds to 650. If encoding the current syntax element as a regular bit will not exceed the constraint, the process proceeds to 640. In some embodiments, the video codec can encode specific syntax elements into regular bits without restriction.

在步驟640,視訊編碼器使用上下文建模將當前語法元素熵編解碼為常規位元子。視訊編碼器還更新(在步驟645處)用於對語法元素進行熵編解碼的常規位元子的總數或計數。然後,過程600進行到660。 In step 640, the video encoder uses context modeling to encode and decode the current syntax element entropy into regular bits. The video encoder also updates (at step 645) the total number or count of regular bits used for entropy encoding and decoding of syntax elements. Then, the process 600 proceeds to 660.

在步驟650中,視訊編碼器將當前語法元素熵編碼為旁路位元子,而無需使用上下文建模。然後該過程進行到660。 In step 650, the video encoder entropy encodes the current syntax element into bypass bits without using context modeling. Then the process proceeds to 660.

在步驟660中,視訊編碼器確定是否有更多的語法元素要進行熵編碼用於對當前變換塊、當前子塊或當前編解碼過程。如果是,則處理返回到步驟625以對更多語法元素進行熵編碼。否則,處理進行到670以將熵編碼的語法元素存儲為位元流中的編碼位元。 In step 660, the video encoder determines whether there are more syntax elements to be entropy encoded for the current transform block, the current sub-block, or the current encoding and decoding process. If so, the process returns to step 625 to entropy encode more syntax elements. Otherwise, the process proceeds to 670 to store the entropy-coded syntax elements as coded bits in the bitstream.

IV.示例的視訊解碼器 IV. Example video decoder

第7圖示出示例的視訊解碼器700。如圖所示,視訊解碼器700是圖片解碼或視訊解碼電路,其接收位元流795並將位元流的內容解碼為視訊幀的像素資料以供顯示。視訊解碼器700具有用於解碼位元流795的若干組件或模塊,包括選自逆量化模塊705、逆變換模塊710、幀內預測模塊725、運動補償模塊730、環路濾波器745、解碼圖片緩衝器750、MV緩衝器765、MV預測模塊775和解析器790中的一些組件。運動補償模塊730是幀間預測模塊740 的一部分。 Figure 7 shows an example video decoder 700. As shown in the figure, the video decoder 700 is a picture decoding or video decoding circuit, which receives a bit stream 795 and decodes the content of the bit stream into pixel data of a video frame for display. The video decoder 700 has several components or modules for decoding the bit stream 795, including an inverse quantization module 705, an inverse transform module 710, an intra prediction module 725, a motion compensation module 730, a loop filter 745, and decoded pictures. Some components in the buffer 750, the MV buffer 765, the MV prediction module 775, and the parser 790. The motion compensation module 730 is an inter prediction module 740 a part of.

在一些實施例中,模塊710-790是由計算設備的一個或多個處理單元(例如,處理器)執行的軟體指令的模塊。在一些實施例中,模塊710-790是由電子裝置的一個或多個IC實現的硬體電路的模塊。儘管模塊710-790被圖示為單獨的模塊,但是某些模塊可以組合為單個模塊。 In some embodiments, the modules 710-790 are modules of software instructions executed by one or more processing units (eg, processors) of the computing device. In some embodiments, the modules 710-790 are modules of hardware circuits implemented by one or more ICs of the electronic device. Although the modules 710-790 are illustrated as separate modules, certain modules may be combined into a single module.

解析器790(或熵解碼器)接收位元流795,並根據由視訊編碼或圖片編碼標準定義的語法來執行初始解析。解析的語法元素包括各種報頭元素、標志以及量化的資料(或量化係數)712。解析器790通過使用諸如上下文自適應二進位算術編碼(CABAC)或霍夫曼編碼的熵編碼技術解析各種語法元素。 The parser 790 (or entropy decoder) receives the bit stream 795 and performs initial parsing according to the syntax defined by the video coding or picture coding standard. The parsed syntax elements include various header elements, flags, and quantized data (or quantized coefficients) 712. The parser 790 parses various syntax elements by using an entropy coding technique such as context adaptive binary arithmetic coding (CABAC) or Huffman coding.

逆量化模塊705對量化資料(或量化係數)712進行去量化以獲得變換係數,並且逆變換模塊710對變換係數716執行逆變換以產生重構殘差信號719。將來自幀內預測模塊725或運動補償模塊730的預測像素資料713添加到重構殘差信號719,以產生解碼像素資料717。解碼像素資料由環路濾波器745濾波,並存儲在解碼圖片緩衝器750中。在一些實施例中,解碼圖片緩衝器750是視訊解碼器700外部的記憶體。在一些實施例中,解碼圖片緩衝器750是視訊解碼器700內部的記憶體。 The inverse quantization module 705 dequantizes the quantized data (or quantized coefficients) 712 to obtain transform coefficients, and the inverse transform module 710 performs inverse transform on the transform coefficients 716 to generate a reconstructed residual signal 719. The predicted pixel data 713 from the intra prediction module 725 or the motion compensation module 730 is added to the reconstructed residual signal 719 to generate decoded pixel data 717. The decoded pixel data is filtered by the loop filter 745 and stored in the decoded picture buffer 750. In some embodiments, the decoded picture buffer 750 is a memory external to the video decoder 700. In some embodiments, the decoded picture buffer 750 is the internal memory of the video decoder 700.

幀內預測模塊(圖中示為圖片內預測模塊)725從位元流795接收幀內預測資料,並據此從存儲在解碼圖片緩衝器750中的解碼像素資料717產生預測像素資料713。在一些實施例中,解碼像素資料717也存儲在用於圖片內預測和空間MV預測的行緩衝器(未示出)中。 The intra-frame prediction module (shown as the intra-picture prediction module in the figure) 725 receives intra-frame prediction data from the bitstream 795 and generates predicted pixel data 713 from the decoded pixel data 717 stored in the decoded picture buffer 750 accordingly. In some embodiments, the decoded pixel data 717 is also stored in a line buffer (not shown) used for intra-picture prediction and spatial MV prediction.

在一些實施例中,解碼圖片緩衝器750的內容用於顯示。顯示設備755或者擷取解碼圖片緩衝器750的內容以直接顯示,或者將解碼圖片緩衝器的內容擷取到顯示緩衝器。在一些實施例中,顯示設備通過像素傳輸從解碼 圖片緩衝器750接收像素值。 In some embodiments, the contents of the decoded picture buffer 750 are used for display. The display device 755 either captures the content of the decoded picture buffer 750 for direct display, or captures the content of the decoded picture buffer to the display buffer. In some embodiments, the display device transfers pixels from the decoding The picture buffer 750 receives pixel values.

運動補償模塊730根據運動補償MV(MC MV)從存儲在解碼圖片緩衝器750中的解碼像素資料717產生預測像素資料713。通過將從位元流795接收到的殘差運動資料與從MV預測模塊775接收到的預測MV相加,對這些運動補償MV進行解碼。 The motion compensation module 730 generates predicted pixel data 713 from the decoded pixel data 717 stored in the decoded picture buffer 750 according to the motion compensation MV (MC MV). These motion-compensated MVs are decoded by adding the residual motion data received from the bitstream 795 and the predicted MVs received from the MV prediction module 775.

MV預測模塊775基於為解碼先前的視訊幀而生成的參考MV(例如,用於執行運動補償的運動補償MV)生成預測的MV。MV預測模塊775從MV緩衝器765中擷取先前視訊幀的參考MV。視訊解碼器700將為解碼當前視訊幀而生成的運動補償MV存儲在MV緩衝器765中,作為用於產生預測MV的參考MV。 The MV prediction module 775 generates a predicted MV based on a reference MV (for example, a motion compensation MV for performing motion compensation) generated for decoding a previous video frame. The MV prediction module 775 retrieves the reference MV of the previous video frame from the MV buffer 765. The video decoder 700 stores the motion compensation MV generated for decoding the current video frame in the MV buffer 765 as a reference MV for generating the predicted MV.

環路濾波器745對解碼的像素資料717執行濾波或平滑操作以减少編碼的偽像,特別是在像素塊的邊界處。在一些實施例中,執行的濾波操作包括採樣自適應偏移(SAO)。在一些實施例中,濾波操作包括自適應環路濾波(ALF)。 The loop filter 745 performs a filtering or smoothing operation on the decoded pixel data 717 to reduce coding artifacts, especially at the boundaries of pixel blocks. In some embodiments, the filtering operation performed includes sample adaptive offset (SAO). In some embodiments, the filtering operation includes adaptive loop filtering (ALF).

第8圖說明視訊解碼器700的部分,其基於限制用於子塊的常規位元子的數目的約束而以常規模式或旁路模式選擇性地熵解碼塊的子塊的語法元素。該圖示出了熵解碼器模塊790的組件。 Figure 8 illustrates the part of the video decoder 700 that selectively entropy decodes the syntax elements of the sub-blocks of the block in the regular mode or the bypass mode based on the constraint of limiting the number of regular bits used for the sub-block. The figure shows the components of the entropy decoder module 790.

熵解碼器790從位元流795接收編碼位元818。常規/旁路模式開關808確定編碼位元將被解碼為常規位元子還是旁路位元子。上下文建模器812和常規解碼引擎814使用上下文建模將要被解碼為常規位元子的編碼位元處理為位元子字符串810。將被解碼為旁路位元子的編碼位元由旁路編碼引擎816在不使用上下文建模的情況下處理為位元子字符串810。 The entropy decoder 790 receives coded bits 818 from the bit stream 795. The normal/bypass mode switch 808 determines whether the coded bits will be decoded as normal bits or bypass bits. The context modeler 812 and the regular decoding engine 814 use context modeling to process the coded bits to be decoded into regular bits into a bit substring 810. The coded bits to be decoded as bypass bits are processed by the bypass encoding engine 816 as bit substrings 810 without using context modeling.

位元子字符串810被去二進位化器806轉換為語法元素(對於非二進位值的語法元素),或直接用作語法元素(對於二進位值的語法元素)。 語法元素轉換器802將語法元素轉換為視訊解碼器700的各個部分要使用的信號或值,包括將變換係數的語法元素(例如,sig_flag、gt1_flag、gt2_flag和par_flag)轉換為量化係數712,以用於逆量化器705。語法元素根據預定編解碼過程指定的順序進行轉換。 The bit substring 810 is converted into a syntax element (for non-binary value syntax elements) by the debinarizer 806, or directly used as a syntax element (for binary value syntax elements). The syntax element converter 802 converts syntax elements into signals or values to be used by various parts of the video decoder 700, including converting syntax elements of transform coefficients (for example, sig_flag, gt1_flag, gt2_flag, and par_flag) into quantized coefficients 712 to use于inverse quantizer 705. The syntax elements are converted according to the order specified by the predetermined codec process.

常規/旁路模式開關808由常規/旁路模式選擇模塊820控制。常規/旁路模式選擇模塊通過使用常規位元子計數器822做出關於選擇常規模式還是旁路模式的決定。常規位元子計數器822計數針對當前子塊解碼的常規位元子的數量,並且常規/旁路模式開關808允許將編碼位元解碼為常規位元子,只要常規位元子計數器不大於或等於約束(圖中示為常規位元子約束)824。因此,約束824限制了當前子塊或當前子塊的當前編解碼過程的常規位元子的數量。可以基於子塊的大小、當前塊中的已編碼子塊的數量、當前塊中的子塊的總數、當前子塊的顏色分量或當前塊和子塊的其他屬性來確定約束824。 The normal/bypass mode switch 808 is controlled by the normal/bypass mode selection module 820. The normal/bypass mode selection module uses the normal bit sub-counter 822 to make a decision on whether to select the normal mode or the bypass mode. The regular bit sub-counter 822 counts the number of regular bits decoded for the current sub-block, and the regular/bypass mode switch 808 allows the coded bits to be decoded into regular bits, as long as the regular bit sub-counter is not greater than or equal to Constraints (shown as regular bit sub-constraints in the figure) 824. Therefore, the constraint 824 limits the current sub-block or the number of regular bits in the current codec process of the current sub-block. The constraint 824 may be determined based on the size of the sub-block, the number of coded sub-blocks in the current block, the total number of sub-blocks in the current block, the color components of the current sub-block, or other attributes of the current block and the sub-block.

第9圖概念性地示出了過程900,其基於限制用於變換塊的常規位元子的數量的約束,以規則模式或旁路模式選擇性地熵解碼塊的子塊的語法元素。在一些實施例中,實現視訊解碼器700的計算設備的一個或多個處理單元(例如,處理器)通過執行存儲在計算機可讀介質中的指令來執行過程900。在一些實施例中,實現視訊解碼器700的電子裝置執行過程900。 Figure 9 conceptually illustrates a process 900 that selectively entropy-decodes syntax elements of sub-blocks of a block in a regular mode or a bypass mode based on a constraint that limits the number of regular bits used to transform a block. In some embodiments, one or more processing units (eg, processors) of a computing device that implements the video decoder 700 perform the process 900 by executing instructions stored in a computer-readable medium. In some embodiments, the electronic device implementing the video decoder 700 performs the process 900.

視訊解碼器從位元流接收(在步驟910處)與表示當前塊的變換係數的多個語法元素對應的編碼位元。變換係數可以是當前塊的變換塊的變換係數,或者是變換塊的子塊的變換係數。在一些實施例中,將在多個編解碼過程中對語法元素進行熵解碼。對於每個變換係數,將在第一編解碼過程中至少對指示變換係數的絕對值的第一標誌、第二標誌和第三標誌進行熵解碼。第一標誌可以指示變換係數水平的絕對值是否大於0(例如,sig_flag)。第二標記可以指示變換係數水平的絕對值是否大於1(例如,gt1_flag)。第三標記可以 指示變換係數水平的絕對值是否大於2或3(例如,gt2_flag)。在一些實施例中,變換係數的絕對值的奇偶性(例如,par_flag)也在第一編解碼過程中被熵編解碼,而變換係數的其餘部分在第二編解碼過程中被熵編解碼,並且在第三編解碼過程中對變換係數的正負號進行熵編解碼。使用基於上下文的模型在第一編解碼過程中對變換係數的常規位元子進行熵編解碼,該上下文模型基於第一標誌、第二標誌、第三標誌和變換係數的絕對值的奇偶性確定。 The video decoder receives (at step 910) encoded bits corresponding to a plurality of syntax elements representing transform coefficients of the current block from the bit stream. The transform coefficient may be the transform coefficient of the transform block of the current block, or the transform coefficient of the sub-block of the transform block. In some embodiments, the syntax elements will be entropy decoded in multiple encoding and decoding processes. For each transform coefficient, at least the first flag, the second flag, and the third flag indicating the absolute value of the transform coefficient will be entropy-decoded in the first encoding and decoding process. The first flag may indicate whether the absolute value of the transform coefficient level is greater than 0 (for example, sig_flag). The second flag may indicate whether the absolute value of the transform coefficient level is greater than 1 (for example, gt1_flag). The third mark can Indicates whether the absolute value of the transform coefficient level is greater than 2 or 3 (for example, gt2_flag). In some embodiments, the parity of the absolute value of the transform coefficient (for example, par_flag) is also entropy-coded and decoded in the first encoding and decoding process, and the remaining part of the transform coefficient is entropy-encoded and decoded in the second encoding and decoding process, And in the third coding and decoding process, the sign of the transform coefficient is entropy coding and decoding. Entropy encoding and decoding of regular bits of transform coefficients in the first encoding and decoding process using a context-based model, which is based on the parity determination of the first flag, the second flag, the third flag, and the absolute value of the transform coefficient .

視訊解碼器識別(在步驟920處)限制用於對語法元素進行熵解碼的常規位元子的總數的約束。在一些實施例中,對於第一顏色分量的約束與對於第二顏色分量的約束是不同的。在一些實施例中,基於變換塊的大小來確定約束。在一些實施例中,通過將默認約束與預定義因子相乘來計算該約束,該預定義因子從當前塊中的編碼子塊的數量與當前塊中的所有子塊的數量之比得出。在一些實施例中,用於對第一編解碼過程中的語法元素進行熵解碼的常規位元子的總數受到約束的限制。在一些實施例中,不存在限制特定於單個語法元素的常規位元子的數量的約束。 The video decoder identifies (at step 920) constraints that limit the total number of regular bits used for entropy decoding of syntax elements. In some embodiments, the constraints on the first color component are different from the constraints on the second color component. In some embodiments, the constraints are determined based on the size of the transform block. In some embodiments, the constraint is calculated by multiplying the default constraint with a predefined factor derived from the ratio of the number of coded sub-blocks in the current block to the number of all sub-blocks in the current block. In some embodiments, the total number of regular bits used for entropy decoding of syntax elements in the first encoding and decoding process is restricted by constraints. In some embodiments, there are no constraints that limit the number of regular bits specific to a single syntax element.

視訊解碼器從位元流的編碼位元中選擇或接收(在步驟925處)語法元素作為要被熵解碼的當前語法元素。語法元素的選擇可以由當前編解碼過程確定。然後,視訊解碼器確定(在步驟930處)是使用旁路模式還是常規模式來解碼當前語法元素。在一些實施例中,視訊解碼器跟踪已經用於解碼語法元素的常規位元子的數量或計數。將常規位元子的數量與在步驟920中識別的約束進行比較,該約束限制了用於變換塊的CABAC常規位元子的最大允許數量,例如,用於編碼子塊的CABAC常規位元子的最大允許數量。 The video decoder selects or receives (at step 925) a syntax element from the coded bits of the bitstream as the current syntax element to be entropy decoded. The choice of syntax elements can be determined by the current encoding and decoding process. Then, the video decoder determines (at step 930) whether to use the bypass mode or the regular mode to decode the current syntax element. In some embodiments, the video decoder tracks the number or count of regular bits that have been used to decode syntax elements. The number of regular bits is compared with the constraint identified in step 920, which limits the maximum allowable number of CABAC regular bits used to transform the block, for example, the CABAC regular bits used to encode sub-blocks The maximum allowable number of.

如果將當前語法元素解碼為常規位元子將超過約束,則過程進行到950。如果將當前語法元素解碼為常規位元子將不超過約束,則過程進行940。在一些實施例中,視訊編解碼器不管約束如何,都可以將某些語法元素解碼為 常規位元子。 If decoding the current syntax element into regular bits would exceed the constraint, the process proceeds to 950. If decoding the current syntax element into regular bits will not exceed the constraint, the process proceeds to 940. In some embodiments, the video codec can decode certain syntax elements as Regular seat.

在步驟940,視訊解碼器使用上下文建模對當前語法元素進行熵解碼為常規位元子。視訊解碼器還更新(在步驟945處)用於對語法元素進行熵解碼的常規位元子的總數或計數。然後,過程900進行到960。 In step 940, the video decoder uses context modeling to entropy decode the current syntax element into regular bits. The video decoder also updates (at step 945) the total number or count of regular bits used for entropy decoding of syntax elements. Then, the process 900 proceeds to 960.

在步驟950,視訊解碼器將當前語法元素熵解碼為旁路位元子,而無需使用上下文建模。然後該過程進行到960。 In step 950, the video decoder entropy decodes the current syntax element into bypass bits without using context modeling. Then the process proceeds to 960.

在步驟960,視訊解碼器確定是否存在更多要被熵解碼的語法元素用於當前子塊或當前子塊的當前編解碼過程。如果是,則處理返回到步驟925以對更多語法元素進行熵解碼。否則,處理進行到970以使用諸如變換係數的熵解碼的語法元素來重構當前塊。 In step 960, the video decoder determines whether there are more syntax elements to be entropy-decoded for the current sub-block or the current codec process of the current sub-block. If so, the process returns to step 925 to entropy decode more syntax elements. Otherwise, the process proceeds to 970 to reconstruct the current block using entropy decoded syntax elements such as transform coefficients.

V.示例的電子系統 V. Example electronic system

許多上述特徵和應用被實現為被指定為記錄在計算機可讀存儲介質(也稱為計算機可讀介質)上的一組指令的軟體過程。當這些指令由一個或多個計算或處理單元(例如,一個或多個處理器,處理器的核心或其他處理單元)執行時,它們使處理單元執行指令中指示的動作。計算機可讀介質的示例包括但不限於CD-ROM、閃存驅動器、隨機存取記憶體(RAM)晶片、硬碟驅動器、可擦除可程式化只讀記憶體(EPROM)、電可擦除可程式化只讀記憶體(EEPROM)等。計算機可讀介質不包括無綫或通過有綫連接傳遞的載波和電子信號。 Many of the aforementioned features and applications are implemented as software processes designated as a set of instructions recorded on a computer-readable storage medium (also referred to as computer-readable medium). When these instructions are executed by one or more computing or processing units (for example, one or more processors, processor cores, or other processing units), they cause the processing units to perform the actions indicated in the instructions. Examples of computer readable media include, but are not limited to, CD-ROMs, flash drives, random access memory (RAM) chips, hard disk drives, erasable programmable read-only memory (EPROM), electrically erasable Programmable read-only memory (EEPROM), etc. Computer-readable media does not include carrier waves and electronic signals that are transmitted wirelessly or through wired connections.

在本說明書中,術語“軟體”旨在包括駐留在只讀記憶體中的韌體或存儲在磁記憶體中的應用,其可以被讀入記憶體以供處理器處理。同樣,在一些實施例中,可以將多個軟體發明實現為較大程式的子部分,同時保留不同的軟體發明。在一些實施例中,多種軟體發明也可以被實現為單獨的程式。最後,一起實現這裏描述的軟體發明的單獨程式的任何組合都在本公開的範圍內。 在一些實施例中,軟體程式在被安裝以在一個或多個電子系統上運行時,定義了一種或多種執行和實施軟體程式的操作的特定機器實現。在一些實施例中,編碼操作指編碼操作或者解碼操作。 In this specification, the term "software" is intended to include firmware residing in read-only memory or applications stored in magnetic memory, which can be read into memory for processing by a processor. Similarly, in some embodiments, multiple software inventions can be implemented as sub-parts of a larger program, while retaining different software inventions. In some embodiments, multiple software inventions can also be implemented as separate programs. Finally, any combination of individual programs that together implement the software invention described herein is within the scope of the present disclosure. In some embodiments, when a software program is installed to run on one or more electronic systems, it defines one or more specific machine implementations that execute and implement the operations of the software program. In some embodiments, the encoding operation refers to an encoding operation or a decoding operation.

第10圖概念性地示出了實現本公開的一些實施例的電子系統1000。電子系統1000可以是計算機(例如,臺式計算機、個人計算機、平板計算機等)、電話、PDA或任何其他種類的電子設備。這樣的電子系統包括各種類型的計算機可讀介質以及用於各種其他類型的計算機可讀介質的接口。電子系統1000包括匯流排1005、(一個或多個)處理單元1010、圖形處理單元(GPU)1015、系統記憶體1020、網路1025、只讀記憶體1030、永久存儲設備1035、輸入設備1040,以及輸出設備1045。 Figure 10 conceptually illustrates an electronic system 1000 implementing some embodiments of the present disclosure. The electronic system 1000 may be a computer (for example, a desktop computer, a personal computer, a tablet computer, etc.), a telephone, a PDA, or any other kind of electronic equipment. Such electronic systems include various types of computer readable media and interfaces for various other types of computer readable media. The electronic system 1000 includes a bus 1005, a processing unit(s) 1010, a graphics processing unit (GPU) 1015, a system memory 1020, a network 1025, a read-only memory 1030, a permanent storage device 1035, and an input device 1040, And output device 1045.

匯流排1005共同表示通信地連接電子系統1000的許多內部設備的所有系統、外圍設備和晶片組匯流排。例如,匯流排1005將處理單元1010與GPU 1015、只讀記憶體1030、系統記憶體1020和永久存儲設備1035通信地連接。 The bus 1005 collectively represents all systems, peripheral devices, and chipset buses that communicatively connect many internal devices of the electronic system 1000. For example, the bus 1005 communicatively connects the processing unit 1010 with the GPU 1015, the read-only memory 1030, the system memory 1020, and the permanent storage device 1035.

處理單元1010從這些各種存儲單元中擷取要執行的指令和要處理的資料,以便執行本公開的處理。在不同的實施例中,一個或多個處理單元可以是單個處理器或多核處理器。一些指令被傳遞到GPU 1015並由其執行。GPU 1015可以卸載各種計算或補充由處理單元1010提供的圖片處理。 The processing unit 1010 retrieves the instructions to be executed and the data to be processed from these various storage units in order to execute the processing of the present disclosure. In different embodiments, one or more processing units may be a single processor or a multi-core processor. Some instructions are passed to and executed by GPU 1015. The GPU 1015 can offload various calculations or supplement the image processing provided by the processing unit 1010.

只讀記憶體(ROM)1030存儲靜態資料和由處理單元1010和電子系統的其他模塊使用的靜態資料和指令。另一方面,永久存儲設備1035是讀寫存儲設備。該設備是即使在電子系統1000關閉的情况下也存儲指令和資料的非易失性存儲單元。本公開的一些實施例使用大容量存儲設備(諸如磁碟或光碟及其對應的磁碟驅動器)作為永久存儲設備1035。 A read-only memory (ROM) 1030 stores static data and static data and instructions used by the processing unit 1010 and other modules of the electronic system. On the other hand, the permanent storage device 1035 is a read-write storage device. This device is a non-volatile storage unit that stores instructions and data even when the electronic system 1000 is turned off. Some embodiments of the present disclosure use mass storage devices (such as magnetic disks or optical disks and their corresponding disk drives) as permanent storage devices 1035.

其他實施例使用可移動存儲設備(例如軟碟、閃存設備等,及其 對應的磁碟驅動器)作為永久存儲設備。像永久存儲設備1035一樣,系統記憶體1020是讀寫存儲設備。但是,與存儲設備1035不同,系統記憶體1020是易失性讀寫記憶體,例如隨機存取記憶體。系統記憶體1020存儲處理器在運行時使用的一些指令和資料。在一些實施例中,根據本公開的處理被存儲在系統記憶體1020、永久存儲設備1035和/或只讀記憶體1030中。例如,根據一些實施例,各種存儲單元包括用於處理多媒體剪輯的指令。處理單元1010從這些各種存儲單元中擷取要執行的指令和要處理的資料,以便執行一些實施例的處理。 Other embodiments use removable storage devices (such as floppy disks, flash memory devices, etc., and Corresponding disk drive) as a permanent storage device. Like the permanent storage device 1035, the system memory 1020 is a read-write storage device. However, unlike the storage device 1035, the system memory 1020 is a volatile read-write memory, such as a random access memory. The system memory 1020 stores some instructions and data used by the processor when it is running. In some embodiments, the processing according to the present disclosure is stored in the system memory 1020, the permanent storage device 1035, and/or the read-only memory 1030. For example, according to some embodiments, various storage units include instructions for processing multimedia clips. The processing unit 1010 retrieves the instructions to be executed and the data to be processed from these various storage units, so as to perform the processing of some embodiments.

匯流排1005還連接到輸入和輸出設備1040和1045。輸入設備1040使用戶能够向電子系統傳達資訊並選擇命令。輸入設備1040包括字母數位鍵盤和指示設備(也稱為“滑鼠控制設備”)、照相機(例如,網路攝像頭)、麥克風或用於接收語音命令的類似設備等。輸出設備1045顯示由電子系統或輸出資料生成的圖片。輸出設備1045包括打印機和顯示設備,例如陰極射綫管(CRT)或液晶顯示器(LCD),以及揚聲器或類似的音頻輸出設備。一些實施例包括既充當輸入設備又充當輸出設備的設備,例如觸摸屏。 The busbar 1005 is also connected to input and output devices 1040 and 1045. The input device 1040 enables the user to convey information to the electronic system and select commands. The input device 1040 includes an alphanumeric keyboard and pointing device (also called a "mouse control device"), a camera (for example, a webcam), a microphone or similar device for receiving voice commands, and the like. The output device 1045 displays pictures generated by the electronic system or output materials. The output device 1045 includes a printer and a display device, such as a cathode ray tube (CRT) or a liquid crystal display (LCD), and a speaker or similar audio output device. Some embodiments include devices that act as both input devices and output devices, such as touch screens.

最後,如第10圖所示,匯流排1005還通過網路適配器(未示出)將電子系統1000耦合到網路1025。以這種方式,計算機可以是計算機網路(例如局域網(“LAN”)、廣域網(“WAN”)或內聯網(intranet)或網路網(network of networks),例如因特網)的一部分。電子系統1000的任何或所有組件可以與本公開結合使用。 Finally, as shown in Figure 10, the bus 1005 also couples the electronic system 1000 to the network 1025 through a network adapter (not shown). In this manner, the computer may be part of a computer network, such as a local area network ("LAN"), a wide area network ("WAN"), or an intranet or a network of networks, such as the Internet. Any or all components of the electronic system 1000 can be used in conjunction with the present disclosure.

一些實施例包括電子組件,例如微處理器,將計算機程式指令存儲在機器可讀或計算機可讀介質(或者稱為計算機可讀存儲介質、機器可讀介質或機器可讀存儲介質)中的存儲器和記憶體。這種計算機可讀介質的一些示例包括RAM、ROM、只讀光碟(CD-ROM)、可記錄光碟(CD-R)、可重寫 光碟(CD-RW)、只讀數位多功能光碟(例如,DVD-ROM、雙層DVD-ROM),各種可記錄/可重寫DVD(例如DVD-RAM、DVD-RW、DVD+RW等),閃存(例如SD卡、mini-SD卡、micro-SD卡等)、磁性和/或固態硬碟驅動器、只讀和可記錄的Blu-Ray®光碟、超密度光碟,任何其他光學或磁性介質以及軟碟。該計算機可讀介質可以存儲可由至少一個處理單元執行的計算機程式,並且該計算機程式包括用於執行各種操作的指令集。計算機程式或計算機代碼的示例包括諸如由編譯器生成的機器代碼,以及包括由計算機、電子部件或使用解釋器的微處理器執行的高級代碼的文件。 Some embodiments include an electronic component, such as a microprocessor, a memory storing computer program instructions in a machine-readable or computer-readable medium (or referred to as a computer-readable storage medium, a machine-readable medium, or a machine-readable storage medium) And memory. Some examples of such computer-readable media include RAM, ROM, compact disc read only (CD-ROM), compact disc recordable (CD-R), rewritable Optical discs (CD-RW), read-only digital versatile discs (for example, DVD-ROM, double-layer DVD-ROM), various recordable/rewritable DVDs (for example, DVD-RAM, DVD-RW, DVD+RW, etc.) , Flash memory (such as SD card, mini-SD card, micro-SD card, etc.), magnetic and/or solid-state hard drive, read-only and recordable Blu-Ray® disc, ultra-density optical disc, any other optical or magnetic media And floppy disks. The computer-readable medium may store a computer program that can be executed by at least one processing unit, and the computer program includes an instruction set for performing various operations. Examples of computer programs or computer codes include machine codes such as generated by a compiler, and files including high-level codes executed by computers, electronic components, or microprocessors using an interpreter.

儘管以上討論主要是指執行軟體的微處理器或多核處理器,但是許多上述特徵和應用是由一個或多個集體電路執行的,例如專用集體電路(ASIC)或現場可程式化控制器門陣列(FPGA)。在一些實施例中,這樣的集體電路執行存儲在電路本身上的指令。另外,一些實施例執行存儲在可程式化邏輯設備(PLD)、ROM或RAM設備中的軟體。 Although the above discussion mainly refers to microprocessors or multi-core processors that execute software, many of the above features and applications are executed by one or more collective circuits, such as dedicated collective circuits (ASICs) or field programmable controller gate arrays. (FPGA). In some embodiments, such collective circuits execute instructions stored on the circuit itself. In addition, some embodiments execute software stored in a programmable logic device (PLD), ROM, or RAM device.

如在本說明書和本申請的任何申請專利範圍中使用的,術語“計算機”、“服務器”、“處理器”和“記憶體”均指電子或其他技術設備。這些術語不包括個人或人群。為了說明的目的,術語“顯示”或“顯示中”是指在電子設備上顯示。如在本說明書和本申請的任何申請專利範圍中所使用的,術語“計算機可讀介質”、“計算機可讀媒介”和“機器可讀介質”完全限於以可被計算機讀取的形式存儲資訊的有形物理對象。這些術語不包括任何無綫信號、有綫下載信號和任何其他臨時信號。 As used in this specification and any patent application in this application, the terms "computer", "server", "processor" and "memory" all refer to electronic or other technical devices. These terms do not include individuals or groups of people. For the purpose of description, the term "display" or "displaying" refers to displaying on an electronic device. As used in this specification and the scope of any patent application of this application, the terms "computer readable medium", "computer readable medium" and "machine readable medium" are completely limited to storing information in a form that can be read by a computer. Of tangible physical objects. These terms do not include any wireless signals, wired download signals, and any other temporary signals.

雖然已經參考許多具體細節描述了本公開,但是所屬領域具有通常知識者將認識到,在不脫離本公開的精神的情况下,可以以其他特定形式來體現本公開。此外,許多附圖(包括第6圖和第9圖)在概念上說明了過程。這些過程的特定操作可能無法按照所示和所描述的確切順序執行。可以不在一 個連續的一系列操作中執行特定操作,並且可以在不同的實施例中執行不同的特定操作。此外,該過程可以使用幾個子過程來實現,或者作為更大的宏過程的一部分來實現。因此,所屬領域具有通常知識者將理解,本公開不受限於前述說明性細節,而是由所附申請專利範圍限定。 Although the present disclosure has been described with reference to many specific details, those skilled in the art will recognize that the present disclosure may be embodied in other specific forms without departing from the spirit of the present disclosure. In addition, many drawings (including Figures 6 and 9) conceptually illustrate the process. The specific operations of these procedures may not be performed in the exact order shown and described. Can be different A specific operation is performed in a continuous series of operations, and different specific operations may be performed in different embodiments. In addition, the process can be implemented using several sub-processes, or as part of a larger macro process. Therefore, those with ordinary knowledge in the field will understand that the present disclosure is not limited to the foregoing illustrative details, but is limited by the scope of the appended application.

附加声明 Additional statement

文中描述的主題有時示出了包含在其它不同部件內的或與其它不同部件連接的不同部件。應當理解:這樣描繪的架構僅僅是示例性的,並且,實際上可以實施實現相同功能的許多其它架構。在概念意義上,實現相同功能的部件的任何布置是有效地“相關聯的”,以使得實現期望的功能。因此,文中被組合以獲得特定功能的任意兩個部件可以被視為彼此“相關聯的”,以實現期望的功能,而不管架構或中間部件如何。類似地,這樣相關聯的任意兩個部件還可以被視為彼此“可操作地連接的”或“可操作地耦接的”,以實現期望的功能,並且,能夠這樣相關聯的任意兩個部件還可以被視為彼此“操作上可耦接的”,以實現期望的功能。“操作上可耦接的”的具體示例包含但不限於:實體地可聯結和/或實體地相互、作用的部件、和/或無線地可相互作用和/或無線地相互作用的部件、和/或邏輯地相互作用的和/或邏輯地可相互作用的部件。 The subject matter described in the text sometimes shows different components contained within or connected to other different components. It should be understood that the architecture depicted in this way is only exemplary, and in fact, many other architectures that achieve the same function can be implemented. In a conceptual sense, any arrangement of components that achieve the same function is effectively "associated" so that the desired function is achieved. Therefore, any two components combined to obtain a specific function in the text can be regarded as "associated" with each other to achieve the desired function, regardless of the architecture or intermediate components. Similarly, any two components so associated can also be regarded as being "operably connected" or "operably coupled" to each other to achieve the desired function, and any two components that can be so associated Components can also be considered "operably coupleable" to each other to achieve desired functions. Specific examples of "operably coupleable" include, but are not limited to: physically connectable and/or physically interacting components, and/or wirelessly interactable and/or wirelessly interacting components, and /Or logically interacting and/or logically interactable components.

此外,關於文中基本上任何複數和/或單數術語的使用,只要對於上下文和/或應用是合適的,所屬技術領域具有通常知識者可以將複數變換成單數,和/或將單數變換成複數。 In addition, with regard to the use of basically any plural and/or singular term in the text, as long as it is appropriate for the context and/or application, a person with ordinary knowledge in the relevant technical field can convert the plural to the singular and/or convert the singular to the plural.

所屬技術領域具有通常知識者將會理解,通常,文中所使用的術語,特別是在所附申請專利範圍(例如,所附申請專利範圍中的主體)中所使用的術語通常意在作為“開放性”術語(例如,術語“包含”應當被解釋為“包含但不限幹”,術語“具有”應當被解釋為“至少具有”,術語“包含”應當被解釋為“包含但不限幹”等)。所屬技術領域具有通常知識者還將理解,如果意在所介紹的申請專利 範圍陳述對象的具體數目,則這樣的意圖將會明確地陳述在申請專利範圍中,在缺乏這樣的陳述的情況下,不存在這樣的意圖。例如,為了幫助理解,所附申請專利範圍可以包含使用介紹性短語“至少一個”和“一個或更多個”來介紹申請專利範圍陳述對象。然而,這樣的短語的使用不應當被解釋為:用不定冠詞“一個(a或an)”的申請專利範圍陳述對象的介紹將包含這樣介紹的申請專利範圍陳述對象的任何申請專利範圍限制為只包含一個這樣的陳述對象的發明,即使在同一申請專利範圍包含介紹性短語“一個或更多個”或“至少一個”以及諸如“一個(a)”或“一個(an)”之類的不定冠詞的情況下(例如,“一個(a)”和/或“一個(an)”應當通常被解釋為意味著“至少一個”或“一個或更多個”)也如此;上述對以定冠詞來介紹申請專利範圍陳述對象的情況同樣適用。另外,即使明確地陳述了介紹的申請專利範圍陳述對象的具體數目,但所屬技術領域具有通常知識者也會認識到:這樣的陳述通常應當被解釋為意味著至少所陳述的數目(例如,僅有“兩個陳述對象”而沒有其他修飾語的陳述通常意味著至少兩個陳述對象,或兩個或更多個陳述對象)。此外,在使用類似於“A、B和C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B和C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B一起、A和C一起、B和C一起和/或A、B和C一起的系統等)。在使用類似於“A、B或C中的至少一個等”的慣用語的情況下,通常這樣的結構意在所屬技術領域具有通常知識者所理解的該慣用語的含義(例如,“具有A、B或C中的至少一個的系統”將包含但不限於具有單獨的A、單獨的B、單獨的C、A和B一起、A和C一起、B和C一起和/或A、B和C一起的系統等)。所屬技術領域具有通常知識者將進一步理解,不管在說明書、申請專利範圍中還是在附圖中,表示兩個或更多個可替換的術語的幾乎任意析取詞和/或短語應當理解成考慮包含術語中的一個、術語中的任一個或所 有兩個術語的可能性。例如,短語“A或B”應當被理解成包含“A”、“B”、或“A和B”的可能性。 Those with ordinary knowledge in the technical field will understand that, generally, the terms used in the text, especially the terms used in the scope of the attached application (for example, the subject of the scope of the attached application), are usually intended as "open Terminology (for example, the term "includes" should be interpreted as "including but not limited to", the term "having" should be interpreted as "at least having", and the term "including" should be interpreted as "including but not limited to" Wait). Those with general knowledge in the technical field will also understand that if they intend to apply for a patent as described The scope states the specific number of objects, then such an intention will be clearly stated in the scope of the patent application. In the absence of such a statement, there is no such intention. For example, to help understanding, the scope of the appended patent application may include the use of the introductory phrases "at least one" and "one or more" to introduce the object of the statement of the patent scope. However, the use of such phrases should not be construed as: the introduction of the object of the patent application with the indefinite article "a (a or an)" shall limit the scope of any application that contains the object of the statement of the patent application so introduced to Contains only one invention that is the subject of such a statement, even if the introductory phrase "one or more" or "at least one" and such as "one (a)" or "one (an)" are included in the same patent application In the case of indefinite articles (for example, "a" and/or "a" should usually be interpreted as meaning "at least one" or "one or more"); The definite article to introduce the object of the statement of the scope of the patent application is also applicable. In addition, even if the specific number of objects of the stated scope of the patent application is clearly stated, those with ordinary knowledge in the technical field will recognize that such a statement should usually be interpreted as meaning at least the stated number (for example, only A statement with "two statement objects" without other modifiers usually means at least two statement objects, or two or more statement objects). In addition, in the case of using an idiom similar to "at least one of A, B, and C, etc.", usually such a structure is intended to have the meaning of the idiom understood by ordinary knowledgeable persons in the technical field (for example, " A system having at least one of A, B, and C" will include, but is not limited to, having a single A, a single B, a single C, A and B together, A and C together, B and C together, and/or A, B and C together system, etc.). In the case of using an idiom similar to "at least one of A, B, or C, etc.", usually such a structure is intended to have the meaning of the idiom understood by those skilled in the art (for example, "has A A system with at least one of, B, or C" will include but is not limited to having a single A, a single B, a single C, A and B together, A and C together, B and C together, and/or A, B and C together with the system, etc.). Those with ordinary knowledge in the technical field will further understand that, whether in the specification, the scope of the patent application or in the drawings, almost any abstract words and/or phrases representing two or more replaceable terms should be understood as Consider including one of the terms, any of the terms, or all There are two possibilities for terms. For example, the phrase "A or B" should be understood to include the possibilities of "A", "B", or "A and B."

儘管已經在文中使用不同的方法、設備以及系統來描述和示出了一些示例性的技術,但是所屬技術領域具有通常知識者應當理解的是:可以在不脫離所要求保護的主題的情況下進行各種其它修改以及進行等同物替換。此外,在不脫離文中描述的中心構思的情況下,可以進行許多修改以使特定的情況適應於所要求保護的主題的教導。因此,意在所要求保護的主題不限制於所公開的特定示例,而且這樣的要求保護的主題還可以包含落在所附申請專利範圍的範圍內的所有實施及它們的等同物。Although different methods, devices, and systems have been used in the text to describe and show some exemplary technologies, those with ordinary knowledge in the technical field should understand that it can be carried out without departing from the claimed subject matter. Various other modifications and equivalent replacements. In addition, without departing from the central idea described in the text, many modifications can be made to adapt a particular situation to the teaching of the claimed subject matter. Therefore, it is intended that the claimed subject matter is not limited to the specific examples disclosed, and such claimed subject matter may also include all implementations and their equivalents falling within the scope of the appended application patent.

100:當前塊 100: current block

110、319、325:子塊 110, 319, 325: sub-block

115、524、824:約束 115, 524, 824: constraints

121、122、123:編解碼過程 121, 122, 123: encoding and decoding process

210、220:方案 210, 220: plan

310、320:塊 310, 320: block

400:視訊編碼器 400: Video encoder

405:視訊源 405: Video Source

495、795:位元流 495, 795: bit stream

410:變換模塊 410: Transformation module

411:量化模塊 411: Quantization Module

412、712:量化係數 412, 712: quantization coefficient

413:預測像素資料 413: Predict pixel data

414、705:逆量化模塊 414, 705: Inverse quantization module

415、710:逆變換模塊 415, 710: Inverse transform module

417:重構像素資料 417: Reconstruct pixel data

419:重構殘差 419: reconstruction residual

420:圖片內估計模塊 420: In-picture estimation module

425、725:幀內預測模塊 425, 725: intra prediction module

430、730:運動補償模塊 430, 730: Motion compensation module

435:運動估計模塊 435: Motion estimation module

440、740:幀間預測模塊 440, 740: Inter-frame prediction module

445、745:環路濾波器 445, 745: loop filter

450:重構圖片緩衝器 450: Reconstruct the picture buffer

465、765:MV緩衝器 465, 765: MV buffer

475、775:MV預測模塊 475, 775: MV prediction module

490:熵編解碼器 490: Entropy Codec

502、802:語法元素產生器 502, 802: Syntax element generator

506:二進位化器 506: Binary

508、808:常規/旁路模式開關 508, 808: conventional/bypass mode switch

510、810:位元子字符串 510, 810: bit substring

512、812:上下文建模器 512, 812: Context Modeler

514、814:常規編碼引擎 514, 814: conventional encoding engine

518、818:編碼位元 518, 818: coding bits

516、816:旁路編碼引擎 516, 816: Bypass encoding engine

520、820:常規/旁路模式選擇模塊 520, 820: conventional/bypass mode selection module

522、822:常規位元子計數器 522, 822: conventional bit counters

600、900:過程 600, 900: process

610~670、910~970:步驟 610~670, 910~970: steps

700:視訊解碼器 700: Video decoder

750:解碼圖片緩衝器 750: decode picture buffer

790:解析器 790: parser

716:變換係數 716: transform coefficient

713:像素資料 713: Pixel Data

719:重構殘差信號 719: Reconstruct residual signal

717:解碼像素資料 717: decode pixel data

755:顯示設備 755: display device

806:去二進位化器 806: Go to Binary

1000:電子系統 1000: Electronic system

1005:匯流排 1005: bus

1010:處理單元 1010: processing unit

1015:圖形處理單元 1015: graphics processing unit

1020:系統記憶體 1020: System memory

1025:網路 1025: Internet

1030:只讀記憶體 1030: Read only memory

1035:永久存儲設備 1035: Permanent storage device

1040:輸入設備 1040: input device

1045:輸出設備1045: output device

包括附圖以提供對本公開的進一步理解,並且附圖被併入並構成本公開的一部分。 附圖示出了本公開的實施方式,並且與文字描述一起用於解釋本公開的原理。 可以理解的是,附圖不一定按比例繪製,因為為了清楚地說明本公開的概念,某些組件可能被顯示為與實際實現中的尺寸不成比例。 第1圖概念性地示出了視訊編解碼器,其基於對用於子塊的常規位元子的數量的約束,以常規模式或旁路模式選擇性地熵編解碼塊的子塊的語法元素。 第2圖示出了編解碼過程,該過程包括當熵編解碼變換塊的子塊時指示變換係數水平的絕對值的標誌。 第3圖示出了在當前塊的子塊之間共享允許數量的常規位元子。The accompanying drawings are included to provide a further understanding of the present disclosure, and the accompanying drawings are incorporated and constitute a part of the present disclosure. The drawings illustrate the embodiments of the present disclosure, and together with the text description are used to explain the principle of the present disclosure. It can be understood that the drawings are not necessarily drawn to scale, because in order to clearly illustrate the concept of the present disclosure, some components may be displayed as out of proportion to the size in actual implementation. Figure 1 conceptually shows a video codec, which selectively entropy encodes and decodes the syntax of sub-blocks of a block in a regular mode or a bypass mode based on a constraint on the number of regular bits used for a sub-block element. Figure 2 shows the encoding and decoding process, which includes a flag indicating the absolute value of the transform coefficient level when entropy encoding and decoding a sub-block of the transform block. Figure 3 shows that the allowed number of regular bits are shared among the sub-blocks of the current block.

第4圖示出了視訊編碼器的範例。 Figure 4 shows an example of a video encoder.

第5圖示出了視訊編解碼器的部分,其基於限制用於子塊的常規位元子的數目的約束而以常規模式或旁通模式選擇性地熵編解碼塊的子塊的語法元素。 Figure 5 shows a part of the video codec, which selectively entropy encodes and decodes the syntax elements of the sub-blocks of the block in the regular mode or the bypass mode based on the constraint of limiting the number of regular bits used for the sub-block .

第6圖概念性地示出了基於限制用於子塊的常規位元子的數量的約束,以常規模式或旁路模式選擇性地熵編碼塊的子塊的語法元素的過程。 Fig. 6 conceptually shows a process of selectively entropy-encoding the syntax elements of sub-blocks of a block in a regular mode or a bypass mode based on the constraint of limiting the number of regular bits used for the sub-block.

第7圖示出了視訊解碼器的範例。 Figure 7 shows an example of a video decoder.

第8圖說明視訊解碼器的部分,其基於限制用於子塊的常規位元子的數目的約束而選擇性地以常規模式或旁路模式熵解碼塊的子塊的語法元素。 Figure 8 illustrates the part of a video decoder that selectively entropy decodes the syntax elements of the sub-blocks of the block in the normal mode or the bypass mode based on the constraint of limiting the number of regular bits used for the sub-block.

第9圖概念性地示出了基於限制用於子塊的常規位元子的數量的約束,以常規模式或旁路模式選擇性地熵解碼塊的子塊的語法元素的過程。 Fig. 9 conceptually shows a process of selectively entropy decoding the syntax elements of sub-blocks of a block in a regular mode or a bypass mode based on the constraint of limiting the number of regular bits used for the sub-block.

第10圖概念性地示出了用於實現本公開的一些實施例的電子系統。Figure 10 conceptually illustrates an electronic system for implementing some embodiments of the present disclosure.

900:過程 900: process

910~970:步驟 910~970: steps

Claims (12)

一種用於編解碼的方法,包括:接收與表示當前塊的多個變換係數的多個語法元素相關聯的輸入資料;以及將該多個語法元素選擇性地熵編解碼為使用上下文建模的多個常規位元子或者是沒有上下文建模的多個旁路位元子,其中,用於對該多個語法元素進行熵編解碼的該多個常規位元子的數量受到約束的限制,該多個語法元素表示變換塊的多個變換係數,以及基於該變換塊的大小來確定限制該多個常規位元子的該數量的該約束。 A method for encoding and decoding includes: receiving input data associated with multiple syntax elements representing multiple transformation coefficients of a current block; and selectively entropy encoding and decoding the multiple syntax elements into context modeling Multiple regular bits or multiple bypass bits without context modeling, wherein the number of the multiple regular bits used for entropy coding and decoding of the multiple syntax elements is restricted by constraints, The multiple syntax elements represent multiple transformation coefficients of the transformation block, and the constraint that limits the number of the multiple regular bits is determined based on the size of the transformation block. 如申請專利範圍第1項所述之方法,其中,在多個編解碼過程中對該多個語法元素進行編解碼,並且其中,通過該約束來限制在第一編解碼過程中用於對該多個語法元素進行熵編解碼的該多個常規位元子的總數。 The method described in item 1 of the scope of the patent application, wherein the multiple syntax elements are encoded and decoded in multiple encoding and decoding processes, and wherein the restriction is used to restrict the use of the syntax elements in the first encoding and decoding process. The total number of multiple regular bits for which multiple syntax elements perform entropy coding and decoding. 如申請專利範圍第2項所述之方法,其中,該第一編解碼過程中被熵編解碼的第一標誌、第二標誌和第三標誌中的一個或多個指示變換係數的絕對值,並且:該第一標誌指示該變換係數的該絕對值是否大於0,該第二標誌指示該變換係數的該絕對值是否大於1,以及該第三標誌指示該變換係數的該絕對值是否大於3。 The method described in item 2 of the scope of the patent application, wherein one or more of the first flag, the second flag, and the third flag that are entropy-coded and decoded in the first coding and decoding process indicate the absolute value of the transform coefficient, And: the first flag indicates whether the absolute value of the transform coefficient is greater than 0, the second flag indicates whether the absolute value of the transform coefficient is greater than 1, and the third flag indicates whether the absolute value of the transform coefficient is greater than 3 . 如申請專利範圍第3項所述之方法,其中:在該第一編解碼過程中熵編解碼該變換係數的該絕對值的奇偶性,在第二編解碼過程中對該變換係數的剩餘部分進行熵編解碼,以及在第三編解碼過程中對該變換係數的正負號進行熵編解碼。 The method described in item 3 of the scope of patent application, wherein: the parity of the absolute value of the transform coefficient is entropy-encoded and decoded in the first encoding and decoding process, and the remaining part of the transform coefficient is entropy-encoded in the second encoding and decoding process Perform entropy coding and decoding, and perform entropy coding and decoding on the sign of the transform coefficient in the third coding and decoding process. 如申請專利範圍第4項所述之方法,其中,通過使用依賴於一個或多個相鄰變換係數的絕對值的一個或多個指示符的一個或多個上下文模型來 對該第一編解碼過程的該多個常規位元子進行熵編解碼。 The method described in item 4 of the scope of patent application, wherein one or more context models that rely on one or more indicators of the absolute value of one or more adjacent transform coefficients are used to Entropy coding and decoding is performed on the multiple regular bits of the first coding and decoding process. 如申請專利範圍第5項所述之方法,其中以該第三標誌的值為條件選擇至少一個上下文模型。 The method described in item 5 of the scope of patent application, wherein at least one context model is selected based on the value of the third flag. 如申請專利範圍第1項所述之方法,其中,限制該多個常規位元子的該數量的該約束對於第一顏色分量與對於第二顏色分量是不同的。 The method described in item 1 of the scope of the patent application, wherein the constraint that limits the number of the plurality of regular bits is different for the first color component and for the second color component. 如申請專利範圍第1項所述之方法,其中,通過將默認約束與預定義因子相乘來計算限制該多個常規位元子的該數量的該約束,該預定義因子是從該當前塊中的編碼子塊的數量與該當前塊中的所有子塊的數量之比得出的。 The method described in item 1 of the scope of patent application, wherein the constraint that limits the number of the plurality of regular bits is calculated by multiplying the default constraint by a predefined factor, and the predefined factor is derived from the current block It is derived from the ratio of the number of coded sub-blocks in the current block to the number of all sub-blocks in the current block. 如申請專利範圍第1項所述之方法,其中不存在限制特定於單個語法元素的該多個常規位元子的數量的約束。 For the method described in item 1 of the scope of the patent application, there is no restriction to limit the number of the plurality of regular bits specific to a single syntax element. 如申請專利範圍第1項所述之方法,其中,限制該多個常規位元子的該數量的該約束限制了用於該當前塊的子塊的多個常規位元子的數量。 The method described in item 1 of the scope of the patent application, wherein the restriction of limiting the number of the plurality of regular bits limits the number of the plurality of regular bits used for the sub-block of the current block. 一種解碼器電路,能夠:接收與表示當前塊的多個變換係數的多個語法元素相關聯的位元流編碼位元;將該編碼位元選擇性地熵編解碼為該多個語法元素,為使用上下文建模的多個常規位元子或者是沒有上下文建模的多個旁路位元子,其中,用於對該多個語法元素進行熵解碼的該多個常規位元子的數量受到約束的限制,該多個語法元素表示變換塊的多個變換係數,以及基於該變換塊的大小來確定限制該多個常規位元子的該數量的該約束;以及使用熵解碼的該多個語法元素重構該當前塊。 A decoder circuit capable of: receiving bit stream coded bits associated with multiple syntax elements representing multiple transform coefficients of a current block; selectively entropy-encoding and decoding the coded bits into the multiple syntax elements, Multiple regular bits modeled for the use of context or multiple bypass bits without context modeling, wherein the number of the multiple regular bits used for entropy decoding the multiple syntax elements Subject to constraints, the multiple syntax elements represent multiple transformation coefficients of the transformation block, and the restriction that limits the number of the multiple regular bits is determined based on the size of the transformation block; and the multiple syntax elements that use entropy decoding Each syntax element reconstructs the current block. 一種用於編解碼的電子裝置,包括:具有以下功能的編碼器電路: 接收表示當前塊的多個變換係數的多個語法元素;將該多個語法元素選擇性地熵編碼為使用上下文建模的多個常規位元子或者是沒有上下文建模的多個旁路位元子,其中,用於對該多個語法元素進行熵編碼的該多個常規位元子的數量受到約束的限制,該多個語法元素表示變換塊的多個變換係數,以及基於該變換塊的大小來確定限制該多個常規位元子的該數量的該約束;以及將熵編碼的該多個語法元素存儲在位元流中。 An electronic device for encoding and decoding, including: an encoder circuit with the following functions: Receive multiple syntax elements representing multiple transform coefficients of the current block; selectively entropy encode the multiple syntax elements into multiple regular bits using context modeling or multiple bypass bits without context modeling Element, wherein the number of regular bits used for entropy encoding the multiple syntax elements is restricted by constraints, the multiple syntax elements represent multiple transformation coefficients of the transformation block, and based on the transformation block To determine the constraint that limits the number of the regular bits; and store the entropy-coded syntax elements in the bit stream.
TW108130206A 2018-08-24 2019-08-23 Coding transform coefficients with throughput constraints TWI734178B (en)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
US201862722237P 2018-08-24 2018-08-24
US62/722,237 2018-08-24
US201862734277P 2018-09-21 2018-09-21
US62/734,277 2018-09-21
US201862735927P 2018-09-25 2018-09-25
US62/735,927 2018-09-25
US16/548,340 2019-08-22
US16/548,340 US11483575B2 (en) 2018-08-24 2019-08-22 Coding transform coefficients with throughput constraints

Publications (2)

Publication Number Publication Date
TW202017381A TW202017381A (en) 2020-05-01
TWI734178B true TWI734178B (en) 2021-07-21

Family

ID=71895418

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108130206A TWI734178B (en) 2018-08-24 2019-08-23 Coding transform coefficients with throughput constraints

Country Status (1)

Country Link
TW (1) TWI734178B (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160353113A1 (en) * 2015-05-29 2016-12-01 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (cabac) design
WO2017041676A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Method and apparatus of context modelling for syntax elements in image and video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160353113A1 (en) * 2015-05-29 2016-12-01 Qualcomm Incorporated Coding data using an enhanced context-adaptive binary arithmetic coding (cabac) design
WO2017041676A1 (en) * 2015-09-10 2017-03-16 Mediatek Singapore Pte. Ltd. Method and apparatus of context modelling for syntax elements in image and video coding

Also Published As

Publication number Publication date
TW202017381A (en) 2020-05-01

Similar Documents

Publication Publication Date Title
CN112640448B (en) Entropy coding and decoding method and device for coding and converting coefficient
US11856199B2 (en) Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
TWI739386B (en) Adaptive loop filter with adaptive parameter set
TWI753356B (en) Method and apparatuses for coding transform blocks
TWI685246B (en) Coding transform blocks
TWI751771B (en) Signaling high-level information in video and image coding
TWI723448B (en) Entropy coding of coding units in image and video data
TWI750624B (en) Method and apparatus for coding transform coefficients
TWI830629B (en) Signaling coding of transform-skipped blocks
US20220094939A1 (en) Method and Apparatus of Transform Coefficient Coding with TB-Level Constraint
TW202139697A (en) Signaling quantization related parameters
TWI785502B (en) Video coding method and electronic apparatus for specifying slice chunks of a slice within a tile
US20120183049A1 (en) Methods for delta-qp signaling for decoder parallelization in hevc
TW202131684A (en) Specifying video picture information
TWI734178B (en) Coding transform coefficients with throughput constraints
WO2023272533A1 (en) Encoding and decoding method, encoder, decoder, and storage medium
TWI832602B (en) Entropy coding transform coefficient signs
WO2022217417A1 (en) Encoding method, decoding method, encoder, decoder and storage medium
JP2022548685A (en) Encoding and decoding image data
CN114830671A (en) Image processing apparatus, image processing method, and program