TW202038615A - 帶有變換塊級別約束的變換係數編碼的方法和設備 - Google Patents

帶有變換塊級別約束的變換係數編碼的方法和設備 Download PDF

Info

Publication number
TW202038615A
TW202038615A TW109102603A TW109102603A TW202038615A TW 202038615 A TW202038615 A TW 202038615A TW 109102603 A TW109102603 A TW 109102603A TW 109102603 A TW109102603 A TW 109102603A TW 202038615 A TW202038615 A TW 202038615A
Authority
TW
Taiwan
Prior art keywords
context
block
encoded
sub
bins
Prior art date
Application number
TW109102603A
Other languages
English (en)
Other versions
TWI737143B (zh
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
Application filed by 聯發科技股份有限公司 filed Critical 聯發科技股份有限公司
Publication of TW202038615A publication Critical patent/TW202038615A/zh
Application granted granted Critical
Publication of TWI737143B publication Critical patent/TWI737143B/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • H04N19/105Selection of the reference unit for prediction within a chosen coding or prediction mode, e.g. adaptive choice of position and number of pixels used for prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/136Incoming video signal characteristics or properties
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

公開了用於在視頻編解碼系統中對變換係數進行編碼或解碼的方法和設備。根據該方法,確定清零之後的區域。基於清零之後的區域的大小來針對當前TB確定經上下文編碼的二進制位元的剩餘數量。使用具有基於經上下文編碼的二進制位元的剩餘數量的約束的基於上下文的編碼來對當前TB進行編碼或解碼。根據另一方法,基於最後有效CG索引來針對當前TB確定經上下文編碼的二進制位元的剩餘數量。

Description

帶有變換塊級別約束的變換係數編碼的方法和設備
本發明涉及視頻編碼器或解碼器中的預測殘差的變換編碼。尤其是,本發明公開了使用具有旁路模式(bypass mode)的基於上下文的熵編碼來降低變換係數的語法編碼的複雜度的方法。
高效視頻編碼(HEVC)(Rec. ITU-T H.265 | ISO/IEC 23008-2 version 3: High efficiency video coding, April, 2015)標準是在ITU-T視頻編碼專家組(VCEG)和ISO/IEC運動圖像專家組(MPEG)標準化組織(並且特別是與被稱為視頻編碼聯合協作小組(JCT-VC)的合作夥伴)的聯合視頻專案下開發的。在HEVC中,一個切片(slice)被劃分成由編碼樹單元(CTU)表示的不交疊的方形塊區域。經編碼的圖片可以由切片的集合表示,各個切片包括整數個CTU。按光柵掃描連續處理切片中的單個CTU。可以使用最多兩個運動向量和參考索引利用幀內預測或幀間預測來對雙預測(B)切片進行解碼,以預測各個塊的樣本值。使用最多一個運動向量和參考索引利用幀內預測或幀間預測來對預測(P)切片進行解碼,以預測各個塊的樣本值。僅使用幀內預測來對幀內(I)切片進行解碼。
第1A圖例示了結合了環路處理的示例性自我調整幀間/幀內視頻編解碼系統。幀間/幀內預測​​塊110使用針對各個編碼塊(例如,CU)自我調整的幀間或幀內預測來生成預測信號。幀間預測信號可以使用來自輸入視頻的當前塊和來自幀緩衝器134的一個或更多個參考圖片來得出運動估計。另一方面,幀內預測信號使用來自輸入視頻的當前塊和來自重構塊(REC)128的當前經重構的圖片的相鄰塊來得出幀內預測信號。使用減法器116從原始信號中減去預測信號以生成殘差信號。然後,殘差信號由變換塊(T)118和量化塊(Q)120處理,以生成經量化變換的殘差(即,經量化的係數),該經量化變換的殘差由熵編碼器122進一步處理以被包括在輸出位元流中。在編碼器側,當使用幀間預測模式時,也必須在編碼器端重構一個或多個參考圖片。當使用幀內模式時,將使用經重構的相鄰塊。因此,需要重構幀內編碼塊,以供稍後被以幀內模式編碼的後續塊使用。因此,通過逆量化(IQ)124和逆變換(IT)126處理經變換和經量化的殘差以恢復該殘差。然後,通過REC 128將經重構的殘差加回到預測信號,以重構視頻資料。經重構的視頻資料可以被存儲在參考圖片緩衝器134中並用於其它幀的預測。
如第1A圖所示,進入的視頻資料在編解碼系統中經過一系列處理。由於一系列處理,來自REC 128的經重構的視頻資料可能受到各種損害。因此,在將經重構的視頻資料存儲在幀緩衝器134中之前,經常將去塊濾波器(DF)130應用於經重構的視頻資料,以改善視頻品質。除了去塊濾波器之外,可以使用諸如採樣自我調整偏移(SAO)的其它環路濾波器(被稱為非去塊濾波器,NDF)132。第1A圖中的系統旨在例示典型的視頻編碼器的示例性結構。
第1B圖例示了對應的解碼器結構,其中,已經在編碼器中使用了大多數的塊。然而,在解碼器側,使用熵解碼器140代替熵編碼器122。此外,用於解碼器側的幀間/幀內預測塊150不同於在編碼器側的幀間/幀內預測塊,因為在解碼器側執行了運動補償。
可以使用遞迴四叉樹(QT)結構將CTU劃分成多個不交疊的編碼單元(CU),以適應各種局部運動和紋理特徵。為各個CU指定一個或更多個預測單元(PU)。預測單元與關聯的CU語法一起用作用於用信號通知預測器資訊的基本單元。採用指定的預測處理來預測PU內部的關聯圖元樣本的值。可以使用殘差四叉樹(RQT)結構進一步劃分CU,以表示關聯預測殘差信號。RQT的葉節點與變換單元(TU)相對應。變換單元由大小為8×8、16×16或32×32的亮度樣本的變換塊(TB)或大小為4×4的亮度樣本的四個變換塊以及4:2:0顏色格式的圖片的色度樣本的兩個對應變換塊組成。將整數變換應用於變換塊,並且將經量化的係數的級別值(level value)與其它邊資訊一起熵編碼在位元流中。第2圖例示了塊劃分210及其對應的QT表示220的示例。實線指示CU邊界,而虛線指示TU邊界。
術語編碼樹塊(CTB)、編碼塊(CB)、預測塊(PB)和變換塊(TB)被定義成指定分別與CTU、CU、PU和TU相關聯的一個顏色分量的2D樣本陣列。CTU由一個亮度CTB、兩個色度CTB和關聯語法元素組成。類似的關係對於CU、PU和TU是有效的。樹劃分通常被同時應用於亮度和色度二者,但是當達到色度的某些最小大小時應用例外。
ITU-T SG16 WP3和ISO/IEC JTC1/SC29/WG11的聯合視頻專家組(JVET)目前正處在建立下一代視頻編碼標準的過程。已在通用視頻編碼 (VVC)工作草案 (WD) 2(B. Brossey等人的“Versatile Video Coding (Draft 2),” Joint Video Expert Team (JVET) of ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11), Doc. JVET-K1001, 11th Meeting: Ljubljana, SI, 10–18 July 2018)中採用了一些很有希望的新編碼工具。在VVC WD 2(即,JVET-K1001)中,可以通過使用二叉和三叉分割的嵌套多類型樹的四叉樹來將各個編碼樹單元(CTU)劃分成一個或更多個較小大小的編碼單元(CU)。所得的CU劃分可以是正方形或矩形形狀。
在HEVC(Rec. ITU-T H.265 | ISO/IEC 23008-2 version 3: High efficiency video coding, April, 2015)和如JVET-K1001(B. Bross, J. Chen, S. Liu, “Versatile Video Coding (Draft 2),” Joint Video Expert Team (JVET) of ITU-T VCEG (Q6/16) and ISO/IEC MPEG (JTC 1/SC 29/WG 11), Doc. JVET-K1001, 11th Meeting: Ljubljana, SI, 10–18 July 2018)中指定的VCC WD 2中,編碼塊標誌(CBF)用於用信號通知變換塊中是否存在任何非零變換係數。當CBF等於0時,不對關聯變換塊進行進一步編碼,並且推斷當前變換塊中的所有係數都等於0。否則,關聯變換塊包含至少一個非零變換係數。非零變換塊被進一步分成不交疊子塊。可以用信號通知語法元素coded_sub_block_flag以指示當前子塊是否包含任何非零係數。當coded_sub_block_flag等於0時,不對關聯變換子塊進行進一步編碼,並且推斷當前變換子塊中的所有係數都等於0。否則,關聯變換塊包含至少一個非零變換係數。使用多個子塊編碼回合(coding pass)來對關聯子塊中的變換係數級別的值進行熵編碼。在各個編碼回合中,根據預定的掃描順序對單個變換係數進行一次訪問。
在HEVC中,在第一子塊編碼回合中用信號通知語法元素sig_coeff_flag,以指示當前變換係數級別的絕對值是否大於0。對於sig_coeff_flag等於1的當前係數,在第二編碼回合中進一步用信號通知語法元素coeff_abs_level_greater1_flag,以指示關聯變換係數級別的絕對值是否大於1。對於coeff_abs_level_greater1_flag等於1的當前係數,在第三編碼回合中進一步用信號通知語法元素coeff_abs_level_greater2_flag,以指示關聯變換係數級別的絕對值大於2。分別在第四編碼回合和第五子塊編碼回合中通過語法元素coeff_sign_flag和coeff_abs_level_remaining來進一步用信號通知記號(sign)資訊和剩餘級別值。
在如JVET-K1001中指定的VCC WD 2中,可以通過相關標量量化來量化變換係數。由具有四種狀態的狀態機來指定兩個量化器中的一個量化器的選擇。當前變換係數的狀態由按掃描順序的前一變換係數的狀態和絕對級別值的奇偶來確定。在第一子塊編碼回合中用信號通知語法元素sig_coeff_flag、par_level_flag和rem_abs_gt1_flag。變換係數級別的從第一回合部分重構的絕對值由下式給出: AbsLevelPass1 = 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。變換係數級別的完全重構的絕對值由下式給出: AbsLevel = AbsLevelPass1 + 2 * ( rem_abs_gt2_flag + abs_remainder )。
變換係數級別由下式給出: TransCoeffLevel = (2*AbsLevel − (QState > 1 ? 1 : 0) ) * (1 − 2 * coeff_sign_flag), 其中,QState指示當前變換係數的狀態。
為了實現高壓縮效率,採用基於上下文的自我調整二進位算術編碼(CABAC)模式(或稱為常規模式),以對HEVC和VCC WD 2中的語法元素的值進行熵編碼。第3圖例示了CABAC處理的示例性框圖。由於CABAC引擎中的算術編碼器只能對二進位符號值進行編碼,所以CABAC處理需要使用二值化器(binarizer)(310)來將語法元素的值轉換成二進位字元串。轉換處理通常稱為二值化。在編碼處理期間,根據針對不同上下文的經編碼的符號逐步地建立概率模型。上下文建模器(320)用於建模目的。在普通基於上下文的編碼期間,使用與二進位算術編碼器相對應的常規編碼引擎(330)。可以通過經編碼的資訊來確定用於對下一二進位符號進行編碼的建模上下文的選擇。符號也可以在沒有上下文建模階段的情況下被編碼,並假設相等的概率分佈(通常稱為旁路模式)以降低複雜度。對於旁路的符號,可以使用旁路編碼引擎(340)。如第3圖所示,開關(S1、S2和S3)用於在常規CABAC模式與旁路模式之間引導資料流程。當選擇常規CABAC模式時,開關被翻轉到上觸點。當選擇旁路模式時,開關被翻轉到如第3圖所示的下觸點。
在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的值以旁路模式被編碼。為了在最壞情況下限制子塊中的用於對變換係數級別進行熵編碼的常規二進制位元(bin)(或者說,經上下文編碼的bin)的總數,各個子塊只能允許編碼最多八個coeff_abs_level_greater1_flag值和一個 coeff_abs_level_greater2_flag值。這樣,各個子塊中的常規bin的最大數量可以限制為26。
在稱為VVC(通用視頻編碼)的新興視頻編碼標準的發展中,各個TU中的常規二進制位元的最大數量相對於HEVC增大。為了降低複雜度,開發了通過限制最大允許上下文二進制位元來減少變換係數編碼的方法和設備。
公開了用於在視頻編解碼系統中對預測殘差進行編碼或解碼的方法和設備。根據該方法,接收對應於與當前變換塊(TB)相關聯的變換係數的輸入資料。基於之後的區域的大小來針對所述當前TB初步確定經上下文編碼的二進制位元的剩餘數量的最大值。在編碼器側,使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述當前TB的變換係數進行編碼,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,應用旁路模式編碼而不應用常規的基於上下文的編碼模式。然後經編碼的當前TB被提供為輸出。在解碼器側,使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述當前TB的變換係數進行解碼,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,應用旁路模式編碼而不應用常規的基於上下文的編碼模式。然後經重構的當前TB被提供為輸出。
在所述編碼器側,所述當前TB的在所述清零之後的區域之外的目標變換係數不被編碼。在所述解碼器側,所述當前TB的在所述清零之後的區域之外的目標變換係數不被解析。
在一個實施方式中,在所述初步確定針對所述當前TB的經上下文編碼的二進制位元的所述剩餘數量的所述最大值之前,將所述清零之後的區域的寬度或高度截取成預定值。例如,所述預定值可以對應於32。在另一示例中,如果針對所述當前TB允許MTS(多重變換集,multiple transform set),則所述預定值對應於16。在又一示例中,如果針對包含所述當前TB的當前塊允許MTS和子塊變換,則所述預定值對應於16。
在一個實施方式中,確定針對所述當前TB的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的依賴性包括所述清零之後的區域的面積。例如,所述確定針對所述當前TB的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的所述依賴性包括所述清零之後的區域的所述面積乘以等於1.75的因數。
還公開了另一種用於在視頻編解碼系統中對預測殘差進行解碼的方法。根據該方法,確定與當前TB相關聯的變換係數的最後有效CG(係數組)索引。基於所述最後有效CG索引來針對所述當前TB確定經上下文編碼的二進制位元的剩餘數量的最大值。使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對經編碼的當前TB進行解碼,以生成經重構的當前TB,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,所述基於上下文的編碼被迫應用旁路模式而不應用常規的基於上下文的編碼模式。在一個實施方式中,針對所述當前TB的經上下文編碼的二進制位元的所述剩餘數量的所述最大值與所述最後有效CG索引乘以因數以及係數組的面積相對應,並且其中,所述因數等於1.75。
以下描述是執行本發明的最佳構想模式。進行該描述是出於例示本發明的一般原理的目的,而不應被認為是限制性意義。本發明的範圍最好通過參照所附的權利要求書來確定。
本發明的一個方面涉及通過減少用於對變換塊或子塊進行熵編碼的編碼回合數量來降低複雜度。在一個示例中,可以在與rem_abs_gt1_flag相同的編碼回合中對JVET-K1001中的語法元素rem_abs_gt2_flag進行編碼。在另一示例中,經常在旁路模式下使用CABAC對與變換係數的記號和剩餘值有關的資訊進行熵編碼,並且可以在一個編碼回合中用信號通知該資訊。在一個實施方式中,在一個編碼回合中用信號通知在常規模式下使用CABAC熵編碼的所有語法元素。在另一編碼回合中用信號通知在旁路模式下使用CABAC熵編碼的所有語法元素。
本發明的另一方面涉及對用於編碼變換子塊的CABAC常規二進制位元的最大允許數量(或者說,經上下文編碼的二進制位元的最大允許數量)的約束。在最壞的情況下,控制每子塊位元流解析吞吐速率非常重要,因為在常規模式下使用CABAC進行熵編碼比在旁路模式下複雜度高得多。根據本發明的一個方面,視頻編碼器可以具有對一個子塊或一個子塊編碼回合中的常規二進制位元的最大允許數量的約束,但是對於所述子塊或所述子塊編碼回合中存在的單個語法元素的常規二進制位元的最大允許數量沒有特定約束。視頻編碼器可以跟蹤當前子塊或當前編碼回合中的消耗的常規二進制位元的累積數量。當達到常規二進制位元的指定的最大允許數量或常規二進制位元的剩餘允許數量小於閾值時,針對當前子塊中的剩餘編碼回合,視頻編碼器可以使CABAC引擎切換至旁路模式。另選地,視頻編碼器可以在常規CABAC模式下終止編碼回合。變換係數級別的剩餘絕對值全部通過旁路模式下的子塊編碼回合而被編碼。在另一實施方式中,視頻編碼器可以具有對一個子塊或一個子塊編碼回合中的常規二進制位元的最大允許數量的約束,並且還具有對所述子塊或所述子塊編碼回合中存在的單個語法元素的常規二進制位元的最大允許數量的特定約束。
在一個示例中,視頻編碼器可以對前導子塊編碼回合中的常規二進制位元的最大允許數量具有約束,該前導子塊編碼回合用於對由JVET-K1001中指定的通過相關標量量化生成的變換係數級別進行熵編碼。視頻編碼器可以跟蹤當前前導編碼回合中的已消耗的常規二進制位元的累積數量,以使用JVET-K1001中的語法來用信號通知sig_coeff_flag、par_level_flag和rem_abs_gt1_flag或者使用表1中的語法用信號通知sig_coeff_flag、coeff_abs_level_greater1_flag、par_level_flag和coeff_abs_level_rs1_gt1_flag。當常規二進制位元的累積數量大於指定的閾值(或者說,常規二進制位元的剩餘數量小於指定的閾值)時,視頻編碼器可以使CABAC引擎切換至旁路模式,以對剩餘回合進行編碼。或者視頻編碼器可以終止當前的前導編碼回合。變換係數級別的剩餘絕對值全部通過旁路模式下的子塊編碼回合而被編碼,以使用JVET-K1001中的語法來用信號通知abs_remainder或者使用表1中的語法來用信號通知coeff_abs_level_rs1_remainder。在表1中,如灰色背景所示,省略用信號通知coeff_abs_level_rs1_gt1_flag [n]。 表 1:根據本發明的一個實施方式的經修改的殘差編碼語法
residual_coding( x0, y0, log2TbWidth, log2TbHeight, cIdx ) { 描述符
     if( transform_skip_enabled_flag && ( cIdx ! = 0  | |  cu_mts_flag[ x0 ][ y0 ] = = 0 ) &&         ( log2TbWidth  >=  2 ) && ( log2TbHeight  >=  2 ) )  
transform_skip_flag [x0][y0][cIdx] ae(v)
        last_sig_coeff _x_prefix ae(v)  
    last_sig_coeff_ y_prefix ae(v)  
     if( last_sig_coeff_x_prefix > 3 )    
         last_sig_coeff _x_suffix ae(v)  
     if( last_sig_coeff_y_prefix > 3 )    
         last_sig_coeff _y_suffix ae(v)  
     log2SbSize = ( Min( log2TbWidth, log2TbHeight ) > 2  ?  1  :  2 )    
     numSbCoeff = 1 >> ( log2SbSize >> 1 )    
     lastScanPos = numSbCoeff    
     lastSubBlock = ( 1  >>  ( log2TbWidth + log2TbHeight − 2 * log2SbSize ) ) − 1    
     do {    
          if( lastScanPos  = =  0 ) {    
              lastScanPos = numSbCoeff    
              lastSubBlock− −    
          }    
          lastScanPos− −    
          xS = DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize ]                                       [ lastSubBlock ][ 0 ]    
          yS = DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize ]                                       [ lastSubBlock ][ 1 ]    
          xC = ( xS >> log2SbSize ) +                    DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 0 ]    
          yC = ( yS >> log2SbSize ) +                    DiagScanOrder[ log2SbSize ][ log2SbSize ][ lastScanPos ][ 1 ]    
     } while( ( xC  !=  LastSignificantCoeffX )  | |  ( yC  !=  LastSignificantCoeffY ) )    
     QState = 0    
     for( i = lastSubBlock; i  >=  0; i− − ) {    
          startQStateSb = QState    
          xS = DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize ]                                       [ lastSubBlock ][ 0 ]    
          yS = DiagScanOrder[ log2TbWidth − log2SbSize ][ log2TbHeight − log2SbSize ]                                       [ lastSubBlock ][ 1 ]    
          inferSbDcSigCoeffFlag = 0    
          if( ( i > lastSubBlock )  &&  ( i > 0 ) ) {    
             coded_sub_block_flag [ xS ][ yS ] ae(v)  
              inferSbDcSigCoeffFlag = 1    
          }    
          firstSigScanPosSb = numSbCoeff    
          lastSigScanPosSb = −1    
          for( n = ( i  = =  lastSubBlock ) ? lastScanPos − 1 : numSbCoeff − 1; n  >=  0; n− − )  {    
              xC = ( xS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]    
              yC = ( yS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]    
              if( coded_sub_block_flag[ xS ][ yS ]  &&  ( n > 0  | |  !inferSbDcSigCoeffFlag ) )  {    
                  sig_coeff_flag [ xC ][ yC ] ae(v)  
              }    
    ParityBit[n] = sig_coeff_flag[ xC ][ yC ]    
              if( sig_coeff_flag[ xC ][ yC ] )  {  
                   if( lastSigScanPosSb  = =  −1 )    
                        lastSigScanPosSb = n    
                   firstSigScanPosSb = n    
             coeff_abs_level_greater1_flag [  n ] ae(v)  
              if( coeff_abs_level_greater1_flag [ n] )  {    
                       par_level_flag [ n ] ae(v)  
                       coeff_abs_level_rs1_gt1_flag [ n ] ae(v)  
                        ParityBit[n] = par_level_flag[ n ]    
                   }    
    }    
        AbsLevelPass1[ xC ][ yC ] =       2 * ( coeff_abs_level_greater1_flag[ n ] + coeff_abs_level_rs1_gt1_flag[ n ] ) +       ParityBit[ n ]    
              if( dep_quant_enabled_flag )    
                   QState = QStateTransTable[ QState ][ ParityBit[ n ] ]    
          }    
          for( n = numSbCoeff − 1; n  >=  0; n− − ) {    
              if(coeff_abs_level_rs1_gt1_flag [ n ] )    
                  coeff_abs_level_rs1_gt2_flag [ n ] ae(v)  
          }    
          for( n = numSbCoeff − 1; n  >=  0; n− − ) {    
              xC = ( xS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]    
              yC = ( yS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]    
              if(coeff_abs_level_rs1_gt2_flag[ n ] )    
                  coeff_abs_level_rs1 _remainder [ n ]    
              AbsLevel[ xC ][ yC ] = AbsLevelPass1[ xC ][ yC ] +                           2 * (coeff_abs_level_rs1_gt2_flag [ n ] + coeff_abs_level_rs1_remainder [ n ] )    
          }    
          if( dep_quant_enabled_flag  | |  !sign_data_hiding_enabled_flag )    
               signHidden = 0    
          else    
              signHidden = ( lastSigScanPosSb − firstSigScanPosSb > 3  ?  1  :  0 )    
          for( n = numSbCoeff − 1; n  >=  0; n− − ) {    
              xC = ( xS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]    
              yC = ( yS >> log2SbSize ) + DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]    
              if( sig_coeff_flag[ xC ][ yC ]  &&                     ( !signHidden  | |  ( n  !=  firstSigScanPosSb ) ) )    
                  coeff_sign_flag [ n ] ae(v)  
          }    
          if( dep_quant_enabled_flag )  {    
              QState = startQStateSb    
              for( n = numSbCoeff − 1; n  >=  0; n− − ) {    
                   xC = ( xS >> log2SbSize ) +                              DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]    
                   yC = ( yS >> log2SbSize ) +                              DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]    
                   if( sig_coeff_flag[ xC ][ yC ] )    
                        TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ] =                                   ( 2 * AbsLevel[ xC ][ yC ]  −  ( QState > 1 ? 1 : 0 ) ) *                                   ( 1  −  2 * coeff_sign_flag[ n ] )    
                   QState = QStateTransTable[ QState ][ ParityBit [ n ] ]    
          } else {    
              sumAbsLevel = 0    
              for( n = numSbCoeff − 1; n  >=  0; n− − ) {    
                   xC = ( xS >> log2SbSize ) +                              DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 0 ]    
                   yC = ( yS >> log2SbSize ) +                              DiagScanOrder[ log2SbSize ][ log2SbSize ][ n ][ 1 ]    
                   if( sig_coeff_flag[ xC ][ yC ] )  {    
                        TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ]  =                                   AbsLevel[ xC ][ yC ] * ( 1 − 2 * coeff_sign_flag[ n ] )    
                        if( signHidden )  {    
                             sumAbsLevel  +=  AbsLevel[ xC ][ yC ]    
                             if( ( n  = =  firstSigScanPosSb )  &&  ( sumAbsLevel % 2 )  = =  1 ) )    
                                  TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ]  =                                             −TransCoeffLevel[ x0 ][ y0 ][ cIdx ][ xC ][ yC ]    
                        }    
                   }    
              }    
          }    
     }    
     if(  cu_mts_flag[ x0 ][ y0 ]  &&  ( cIdx  = =  0 )  &&           !transform_skip_flag[ x0 ][ y0 ][ cIdx ]  &&           ( ( CuPredMode[ x0 ][ y0 ]  = =  MODE_INTRA  &&  numSigCoeff  > 2 )  | |            ( CuPredMode[ x0 ][ y0 ]  = =  MODE_INTER ) )  ) {    
         mts_idx [ x0 ][ y0 ] ae(v)  
}  
注意,在編碼回合中,如果剩餘的可用常規二進制位元數量不大於該編碼回合中的係數的所需常規二進制位元數量,則視頻編碼器可以使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。
在一個實施方式中,定義第二終止閾值。第二終止閾值小於如上所述的第一終止閾值。當剩餘的可用常規二進制位元數量小於第一終止閾值時,仍可以在經上下文編碼的二進制位元中對後續係數(例如,下一個係數)的某些語法進行編碼。語法可以是有效標誌、大於1的標誌、奇偶位元標誌、大於2的標誌或以上的任何組合。例如,語法可以是{有效標誌}、{有效標誌和大於1的標誌}、{有效標誌和奇偶位元標誌}或 {有效標誌,奇偶位元標誌和大於1的標誌}。在解析了這些語法後,如果剩餘的可用常規二進制位元數量不大於第二終止閾值,則視頻編碼器可以使CABAC引擎切換至旁路模式,以對剩餘回合進行編碼。可以在同一概念中添加多餘一個的終止閾值(例如,第三終止閾值)。
本發明的其它方面涉及適應對用於編碼變換子塊的常規二進制位元的最大允許數量的約束。例如,可以使用一個或更多個高級語法集(諸如,序列參數集(SPS)、圖片參數集(PPS)或切片頭)在位元流中預定或明確地用信號通知指定的約束。指定的約束可以取決於設定檔和編碼位元流中指示的級別。對於不同的顏色分量可以採用不同的約束。對於不同的變換子塊大小,可以採用不同的約束。在一個實施方式中,根據JVET-K1001的視頻編碼器可以將針對2×2子塊的常規二進制位元的最大允許數量限制為等針對於4×4子塊的常規二進制位元的最大允許數量的四分之一。在一個實施方式中,視頻編碼器可以將針對4×4色度子塊的常規二進制位元的最大允許數量限制為等於針對4×4亮度子塊的常規二進制位元的最大允許數量的一半。可以在SPS中用信號通知針對4×4變換子塊的指定約束。在一個示例中,可以在SPS中用信號通知針對4×4亮度子塊、4×4色度子塊、2×2色度子塊的指定約束。在一個實施方式中,針對4×4色度子塊的常規二進制位元的最大允許數量等於或小於針對4×4亮度子塊的常規二進制位元的最大允許數量。在另一實施方式中,針對2×2色度子塊的常規二進制位元的最大允許數量等於或小於針對2×2色度子塊的常規二進制位元的最大允許數量。
在一個實施方式中,4×4亮度子塊的最大常規二進制位元可以是25、30或32;4×4色度子塊的最大常規二進制位元 可以是25、16或15;並且2×2色度子塊的最大常規二進制位元可以是2、3、4、5、6、7或8。例如,{4×4亮度子塊,4×4色度子塊,2×2色度子塊}的最大常規二進制位元可以是{25, 25, 8}、{25, 25, 6}、{25, 25, 7}、{32, 16, 4}、{32, 32, 8}、{30, 16, 4}、{30, 15, 4}或{30, 15, 3}。
在另一實施方式中,還可以指定編碼coeff_abs_level_rs1_gt2_flag的最大常規二進制位元。例如,4×4亮度子塊中的coeff_abs_level_rs1_gt2_flag的最大常規二進制位元可以是2、3、4或5;4×4色度子塊中的coeff_abs_level_rs1_gt2_flag的最大常規二進制位元可以是0、1、2、3或4;並且2×2色度子塊中的coeff_abs_level_rs1_gt2_flag的最大常規二進制位元可以是0、1或2。例如,{4×4亮度子塊,4×4亮度子塊中的coeff_abs_level_rs1_gt2_flag,4×4色度子塊,4×4色度子塊中的coeff_abs_level_rs1_gt2_flag,2×2色度子塊,2×2色度子塊中的coeff_abs_level_rs1_gt2_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}。在一個實施方式中,2×2色度子塊中大於2的標誌的閾值可以是0,這意味著沒有針對大於2的標誌的編碼回合。
在一個實施方式中,不同語法的約束值可以不同。對於一種語法,約束值在不同的顏色分量和/或不同的子塊大小方面也可以不同。例如,在亮度4×4子塊中,有效標誌的約束值可以是8、10、12、14、15或16。大於1的標誌的約束值可以是4、5、6、7、8 ,9、10、11或12。大於2的標誌的約束值可以是0、1、2、3、4、5或6。奇偶位元標誌的約束值可以是4、5、6、7、8、9、10、11或12。在色度4×4子塊中,有效標誌的約束值可以是2、3、4、5、6、7、8、9或10。大於1的標誌的約束值可以是4、5、6、7、8、9、10、11或12。大於2的標誌的約束值可以是0、1、2、3、4、5或6。奇偶位元標誌的約束值可以是2、3、4、5、6、7、8、9或10。對於色度2×2子塊,有效標誌的約束值可以是0、1、2、3或4。大於1的標誌的約束值可以是0、1、2、3或4。大於2的標誌的約束值可以是0、1、2、3或4。奇偶位元標誌的約束值可以是0、1、2、3或4。在一個實施方式中,對於亮度4×4子塊,有效標誌、大於1的標誌和大於2的標誌的約束值可以是{16, 10, 2}或{16, 8, 1}。在色度4×4子塊中,有效標誌、大於1的標誌和大於2的標誌的約束值可以是{16, 10, 2}、{12, 6, 1}、{12, 6, 0}或{16, 8, 1}。在色度2×2子塊中,有效標誌、大於1的標誌和大於2的標誌的約束值可以是{4, 2, 1}、{4, 2, 0}、{3, 2, 0}、{3, 2, 1}或{3, 1, 0}。
視頻編碼器可以另選地具有對指定用於對變換單元或變換塊的一些大小進行熵編碼的常規二進制位元的最大允許數量的約束。可以根據針對相關的變換單元或變換塊指定的約束來得出對針對當前子塊的常規二進制位元的最大允許數量的約束。例如,在根據JVET-K1001的視頻編碼器中,可以分別根據對針對4×4變換塊和2×2變換塊的常規二進制位元的最大允許數量的約束來得出對針對4×4變換子塊和2×2變換子塊的常規二進制位元的最大允許數量的約束。
當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_flat + par_flag +(gt2_flag >> 1))或(sig_flag + par_flag +(gt1_flat>>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碼對級別進行編碼。當前導編碼回合被終止時,執行剩餘級別編碼回合。剩餘級別編碼回合從當前子塊的最後位置開始到子塊的第一位置。
在一個實施方式中,提出了使用一個編碼回合來對子塊中的係數的所有經上下文編碼的二進制位元進行編碼。在該編碼回合中,按順序(諸如,有效標誌à大於1的標誌à大於2的標誌,或有效標誌à大於1的標誌à奇偶位元標誌à大於2的標誌,或有效標誌à奇偶位元標誌à大於1的標誌à大於2的標誌)對一個係數的經上下文編碼的二進制位元進行編碼。解析經上下文編碼的二進制位元後,通過使用旁路二進制位元來解析剩餘級別和記號位元。
當rem_abs_gt2_flag被包括在前導編碼回合中並且未單獨指定rem_abs_gt2_flag的常規二進制位元數量約束值時,如果在rem_abs_gt1_flag之前用信號通知奇偶位元,則在係數的部分和(例如(sig_flag + gt1_flat + par_flag +(gt2_flag >> 1))或(sig_flag + par_flag +(gt1_flat>>1)+(gt2_flag >> 1)))等於或大於5時對剩餘係數級別進行編碼;並且如果在rem_abs_gt1_flag之後用信號通知奇偶位元,則在係數的該部分和大於或等於4時對剩餘係數級別進行編碼。否則,不對剩餘係數級別進行編碼。然而,在一個實施方式中,如果常規二進制位元的可用數量小於閾值,則終止前導編碼回合,如果未通過前導回合對係數進行編碼,則直接利用Golomb-Rice碼對級別進行編碼。當前導編碼回合被終止時,執行剩餘級別編碼回合。剩餘級別編碼回合從當前子塊的最後位置開始到子塊的第一位置。
在另一實施方式中,針對變換塊(TB)或變換單元(TU)指定常規二進制位元的最大允許數量(或者說,經上下文編碼的二進制位元的最大允許數量)。可以根據4×4子塊的閾值得出TU的閾值。注意,對於特定的顏色分量(即,亮度或色度),這裡提到的TU實際上稱為TB。因此,在任何適當時候,TU可以在以下公開中稱為TB。例如,如果TU是亮度8×8塊且亮度4×4塊的閾值是32,則該8×8亮度TU的閾值是32×4 =128。這裡,TU與亮度塊相關聯,因此,這裡的TU是指TB。對於不同的顏色分量或不同的TU大小,閾值可以不同。為了對TU的係數子塊進行編碼,可以在子塊之間共用常規二進制位元的允許數量詞。例如,在第一子塊中,允許值是128。當對第一子塊進行編碼時,當使用常規二進制位元來對係數進行編碼時,允許值會減小。剩餘的允許值用於下一子塊。在另一實施方式中,可以在對最後的有效係數位置/索引或最後的有效子塊(即,最後的係數組)位置/索引進行編碼/解碼之後,得出所需編碼子塊的數量。所需編碼子塊的數量、最後有效係數位置/索引或最後有效子塊位置/索引可以用於得出子塊的常規二進制位元的最大允許數量或TU的常規二進制位元的最大允許數量。例如,對於16×16 TU,它具有16個4×4子塊。允許的常規二進制位元總數可以是32×16 =512。在對最後有效係數位置進行解碼後,如果所需編碼子塊的數量是8,則各個子塊可以使用64個常規二進制位元。在另一示例中,根據最後有效子塊位置/索引,TU的常規二進制位元的最大允許數量可以被得出為所需編碼子塊的數量乘以閾值。閾值可以針對不同的顏色分量或不同的子塊大小而不同。在另一實施方式中,針對變換子塊或變換塊指定了對常規二進制位元的最大允許數量的約束,然而該約束數量可以取決於當前TU大小、TU類型、TU寬度、TU高度、當前TU中的子塊總數、子塊大小、子塊寬度、子塊高度、顏色分量、最後有效係數位置、最後有效子塊位置或以上項的任何組合。
在一個示例中,約束數量可以取決於當前TU中的子塊總數、顏色分量、子塊大小以及最後有效子塊位置。當確定最後有效子塊位置時,可以確定要編碼的子塊數量。如果要編碼的子塊數量小於當前TU中的子塊總數,則意味著在熵編碼中跳過了一些子塊,並且可以增大對每子塊的常規二進制位元的最大允許數量的約束。在一個示例中,子塊的默認約束值可以乘以一個因數。該因數可以與(當前TU中的子塊總數/(要編碼的子塊數量)或向下取整(floor)((當前TU中的子塊總數)/(要編碼的子塊數量))相關,其中,向下取整(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。對於不同的語法類型或不同的子塊大小或不同的顏色分量,因數可以不同。
在另一實施方式中,可以根據當前係數子塊的索引/位置和/或最後有效係數子塊的索引/位置來增大最大允許的經上下文編碼的二進制位元的閾值。例如,對於較接近DC的係數子塊,應用最大允許的經上下文編碼的二進制位元的較高閾值。對於距DC較遠的係數子塊,應用最大允許的經上下文編碼的二進制位元的較低閾值。在一個示例中,DC子塊的係數子塊的索引為0,並且最後有效係數子塊的索引為K,則將第一閾值用於(子塊索引* 2)大於K的子塊。第二閾值用於(子塊索引* 2)等於K的子塊。第三閾值用於子塊索引* 2小於K的子塊。在一個示例中,第一閾值小於或等於第二閾值,第二閾值小於或等於第三閾值。第一閾值可以是(原始閾值* A),第二閾值可以是原始閾值,並且第三閾值可以是(原始閾值/A)或(2 *原始閾值-A)。A可以是1.25、1.5和2。在另一示例中,第一閾值大於或等於第二閾值,第二閾值大於或等於第三閾值。
在JEVT-M0305中,提出了一種聯合色度殘差係數編碼。用信號通知chroma_joint_coding_flag,以指示Cb和Cr是否被聯合編碼。如果Cb和Cr被聯合編碼,則僅對Cb係數殘差進行編碼。Cr係數殘差被重構為(Cb殘差*(-1))。
在一個實施方式中,色度聯合編碼被應用於未變換跳過TU。當應用變換跳過時,將chroma_joint_coding_flag推斷為0。在另一實施方式中,僅針對特定TU大小應用色度聯合編碼。例如,當TU的大小/寬度/高度小於閾值時,不應用色度聯合編碼。在一個示例中,當TU的寬度或高度小於8或面積小於64或32時,不應用色度聯合編碼。在另一示例中,當TU的大小/寬度/高度大於閾值時,不應用色度聯合編碼。在另一實施方式中,當應用雙樹編碼時,色度聯合編碼不應用於亮度編碼樹。在另一實施方式中,色度聯合編碼不應用於某些編碼模式。例如,色度聯合編碼不適用於幀內塊複製模式(或幀內模式或幀間模式)。在另一實施方式中,色度聯合編碼不應用於某個QP範圍。在一個實施方式中,當應用色度聯合編碼時,可以擴大(例如,加倍或乘以N)色度塊的最大允許的經上下文編碼的二進制位元的閾值。例如,對於4×4色度塊,如果最大允許的經上下文編碼的二進制位元為16,並且應用了色度聯合編碼,則可以將最大允許的經上下文編碼的二進制位元擴展為32。
在另一實施方式中,對於殘差子塊中的前N個係數,可以使用經上下文編碼的二進制位元。例如,對於前N個係數,可以利用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。對於其餘係數,只能使用旁路二進制位元。在另一實施方式中,對於殘差子塊中的後N個係數,可以利用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。對於其餘係數,只能使用旁路二進制位元。對於不同的顏色分量或不同的子塊大小,N可以不同。在一個實施方式中,針對各個子塊對經上下文編碼的二進制位元的數量進行計數。還指定了閾值。如果所使用的經上下文編碼的二進制位元不超過閾值,則對於下一係數子塊來說,N可以更大。可以針對各個TU而重設N。
在VVC中,公開了係數清零技術。清零技術將一區域中的係數設置為零。例如,與高頻度係數相對應的區域可以被設置為零而不被編碼。因此,當應用清零時,僅需要對清零之後的區域進行編碼。
在另一實施方式中,對經上下文編碼的二進制位元的數量的約束可以被應用於TU/TB級別或CU級別而不是係數子塊級別。經上下文編碼的二進制位元的剩餘數量的最大值可以取決於TU或CU的大小/面積或顏色分量或最後有效係數位置/索引或最後有效子塊位置/索引或清零之後的區域。例如,針對4×4亮度係數子塊的經上下文編碼的二進制位元的剩餘數量的最大值可以是30,並且針對4×4色度係數子塊的值可以是16。因此,大小等於16×16的亮度TB的經上下文編碼的二進制位元的剩餘數量的最大值可以等於480(30*(16*16)/(4*4))。大小等於16×16的色度TB的經上下文編碼的二進制位元的剩餘數量的最大值可以等於256(16*(16*16)/(4*4))。在開始對TB、TU或CU進行編碼/解碼的處理時,經上下文編碼的二進制位元的剩餘數量的變數被設置為等於經上下文編碼的二進制位元的剩餘數量的最大值。在對經上下文編碼的二進制位元進行編碼時,經上下文編碼的二進制位元的剩餘數量的配額將減少1。當配額為0或小於第二閾值(例如1、2、3或4)時,以旁路二進制位元(例如,使用剩餘級別編碼方法)對其餘係數進行編碼。可以使用簡單的左移來得出用於TB或CU的經上下文編碼的二進制位元的數量。例如,對於亮度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是K>>(log2TbWidth + log2TbHeight–4),其中K可以是28、30、32或正整數。
在另一示例中,經上下文編碼的二進制位元的剩餘數量的最大值可以是TB_width*TB_height*M,其中,M可以是2、1.5、30/16、28/16、1.875、1.75或正值。對於色度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是L>>(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、28、30、32或正整數。在另一示例中,經上下文編碼的二進制位元的剩餘數量的最大值可以是TB_width*TB_height*N,其中,N可以是2、1.5、1、1.25、30/16、28/16、1.875、1.75或正數值。在另一示例中,對於亮度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是K>>(log2TbWidth+log2TbHeight–2),或者可以等於((1>>(log2TbWidth+log2TbHeight))*K)>>2,其中,K可以是4、5、7、7.5、8、16、20、28、30、32或正整數或正數。對於色度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是L>>(log2TbWidth+log2TbHeight–2),或者可以等於((1>>(log2TbWidth+log2TbHeight))*L)>>2,其中,L可以是4、5、7、7.5、8、16、20、28、30、32或正整數。
在一個示例中,TbWidth和/或TbHeight可以是係數清零之前或之後的TB的寬度或高度。例如,為了減少經上下文編碼的二進制位元的平均情況,清零之後的TB的面積用於得出經上下文編碼的二進制位元的剩餘數量的最大值。對於64×N或N×64 TB(例如,亮度TB),左上方32×32區域之外的係數被設置為零,並且未被編碼或未被解析。應用清零時,TB的寬度和高度限制為32。經截取的TbWidth和TbHeight可以用於得出經上下文編碼的二進制位元約束的剩餘數量的TU/TB/CU/PU級別的最大值。當TB的寬度或高度大於32時,清零之後的區域的寬度或高度將被截取為32。經截取的清零之後的區域的寬度或高度用於得出經上下文編碼的二進制位元的剩餘數量的TB級別的最大值。在另一示例中,當應用多重變換集(multiple transform set)(MTS)時,左上方16×16區域之外的係數也被設置為零並且不被編碼。當應用清零和MTS時,TB的寬度和高度最多限制為16。經截取的TbWidth和TbHeight可以用於得出經上下文編碼的二進制位元的剩餘數量的TU/TB/CU/PU級別的最大值。在另一示例中,當啟用了MTS和子塊變換(SBT)並且將SBT應用于CU時,使用推斷的MTS。選擇DST7或DCT8變換進行垂直或水準變換。左上方16×16區域之外的係數也設置為零並且不被編碼。當應用SBT和MTS時,TB的寬度和高度最多限制為16。經截取的TbWidth和TbHeight可以用於得出經上下文編碼的二進制位元的剩餘數量的TU/TB/CU/PU級別的最大值。
在又一示例中,所需編碼子塊的數量、最後有效係數位置/索引或最後有效子塊位置/索引可以用於得出TB的經上下文編碼的二進制位元的剩餘數量的最大值。例如,經上下文編碼的二進制位元的剩餘數量的最大值可以是所需編碼子塊的數量或最後有效子塊索引加1再乘以第三閾值。對於不同的顏色分量或不同的子塊大小,第三閾值可以不同。例如,對於(4×4子塊的)亮度分量,第三閾值可以是28、30、32或正整數。對於(4×4子塊的)色度分量,第三閾值可以是12、16、20、28、30、32或正整數。對於2×2子塊的色度分量,第三閾值可以是4、5、6、7、8或正整數。在另一示例中,可以通過將所需編碼子塊的樣本數量乘以第四閾值來得出TB的經上下文編碼的二進制位元的剩餘數量的最大值。所需編碼子塊的樣本數量可以是所需編碼子塊的數量或最後有效子塊索引加1再乘以子塊的樣本數量。針對亮度分量,第四閾值可以是1.75(或1、1.25、1.5、2或正數)。針對色度分量,第四閾值可以是1.25(或1、1.5、1.75、2或正數)。
當對係數子塊有效標誌、有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼時,所使用的經上下文編碼的二進制位元的數量增加1(即,經上下文編碼的二進制位元的允許/剩餘數量減少1)。也可以對子塊有效組標誌進行計數。在一個實施方式中,如果係數子塊全為零(諸如,子塊有效組標誌等於0),則可以將所使用的經上下文編碼的二進制位元的數量減少第三閾值或減少子塊大小乘以第三閾值。對於清零區域(即,沒有係數的係數子塊),可以將所使用的經上下文編碼的二進制位元的數量減少第三閾值或減少子塊大小乘以第三閾值。如果經上下文編碼的二進制位元的允許/剩餘數量小於閾值,則係數編碼將切換至旁路二進制位元模式。
在另一實施方式中,對經上下文編碼的二進制位元的數量的約束可以被應用於CU級別。對於CU,可以以與上述TU/TB級別閾值相同的方式來計算用於亮度分量和色度分量的經上下文編碼的二進制位元的剩餘數量的最大值。對於CU級別約束,可以跨顏色分量共用可用的經上下文編碼的二進制位元。在一個示例中,計算經上下文編碼的二進制位元的剩餘數量的CU級別最大值。具有不同顏色分量的所有TU可以共用經上下文編碼的二進制位元的該CU級別剩餘數量。例如,如果亮度TU在色度TU之前被編碼,則在對亮度TU進行編碼之後,經上下文編碼的二進制位元的可用數量用於色度分量。在另一示例中,分別計算經上下文編碼的二進制位元的剩餘數量的CU級別亮度最大值和經上下文編碼的二進制位元的剩餘數量的CU級別色度最大值。如果亮度TU在色度分量之前被編碼,則該亮度TU僅使用經上下文編碼的二進制位元的CU級別亮度剩餘數量。如果沒有使用所有用於亮度的經上下文編碼的二進制位元,則其餘經上下文編碼的二進制位元可以用於色度分量。經上下文編碼的二進制位元的剩餘數量的色度最大值可以通過加上來自亮度分量的剩餘的允許的經上下文編碼的二進制位元來增加。在另一示例中,分別計算用於亮度、cb和cr分量的經上下文編碼的二進制位元的剩餘數量的CU級別最大值。根據編碼順序,一個顏色分量中的剩餘的允許的經上下文編碼的二進制位元可以用於後續顏色分量。在一個示例中,可以將剩餘的允許的經上下文編碼的二進制位元全部添加到下一顏色分量。在另一示例中,可以將剩餘的允許的經上下文編碼的二進制位元相等地或不同地添加到後續顏色分量。
所提出的方法也可以應用於推斷的TU分割。例如,如果CU大小大於最大TU大小,則當前CU將被分成超過一個TU。可以計算經上下文編碼的二進制位元的剩餘數量的CU級別最大值。在一個實施方式中,所有子TU共用經上下文編碼的二進制位元的CU級別剩餘數量。在另一實施方式中,各個TU具有其經上下文編碼的二進制位元的剩餘數量的最大值。在對子TU進行編碼之後,如果存在剩餘的允許的經上下文編碼的二進制位元,則該剩餘的允許的經上下文編碼的二進制位元可以由後續子TU使用。可以增加後續子TU的允許的經上下文編碼的二進制位元的配額。
在另一實施方式中,對於各個TB或TU或CU,得出經上下文編碼的二進制位元的剩餘數量的最大值(例如,maxNumCtxBin)。無論使用聯合色度殘差編碼還是以上的任何組合,maxNumCtxBin都可以取決於CU/TU/TB的大小/寬度/高度、顏色分量、係數子塊大小。例如,對於亮度TB,閾值可以是K>>(log2TbWidth+log2TbHeight–4),其中,K可以是28、30、32或正整數。對於色度TB,閾值可以是L>>(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、30、28、32或正整數。在另一示例中,對於亮度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是K>>(log2TbWidth+log2TbHeight–2),其中,K可以是7、7.5、8、28、30、32、正整數或正數。對於色度TB,經上下文編碼的二進制位元的剩餘數量的最大值可以是L>>(log2TbWidth+log2TbHeight–2),其中,L可以是4、8、20、16、28、32或正整數。當對係數子塊進行編碼時,記錄經上下文編碼的二進制位元的使用數量。例如,當對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼時,所使用的經上下文編碼的二進制位元的數量增加1(或者說,經上下文編碼的二進制位元的剩餘數量減少1)。也可以對子塊有效組標誌進行計數。
當經上下文編碼的二進制位元的數量的配額(或者說經上下文編碼的二進制位元的剩餘數量)大於或等於閾值T時,子塊中的每個係數可以使用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。無需使用旁路二進制位元對整個係數進行編碼。當經上下文編碼的二進制位元的數量的配額小於T時,在一個示例中,子塊中的每個係數都使用旁路二進制位元來對係數進行編碼。在另一示例中,用信號通知一個標誌或語法以指示是否可以將經上下文編碼的二進制位元用於子塊。如果是,則子塊中的每個係數可以使用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。否則,子塊中的每個係數都使用旁路二進制位元對係數進行編碼。在一個實施方式中,如果標誌或語法指示子塊中的每個係數都使用旁路二進制位元來對係數進行編碼,則推斷後續的子塊使用旁路二進制位元來對係數進行編碼。
閾值T可以取決於顏色分量或/和子塊大小或/和使用聯合色度殘差編碼。例如,對於4×4子塊,T可以是64;或者對於2×2子塊,T可以是16。在另一示例中,對於4×4亮度子塊,T可以是30或32,對於4×4色度子塊,T可以是16,以及對於2×2色度子塊,T可以是4。當應用聯合色度殘差編碼時,色度閾值可以加倍。可以將所提出的約束應用於某些TU大小,諸如,TU面積大於32或64。對於其它大小TU,旁路二進制位元用於對係數進行編碼。在另一實施方式中,當經上下文編碼的二進制位元的數量的配額小於T時,僅N個係數可以使用經上下文編碼的二進制位元來對子塊中的係數級別進行編碼。N個係數可以是子塊/TU中的從最後有效係數開始的後N個係數、子塊/TU中的後N個係數或子塊/TU中的前N個係數。對於其餘係數,只能使用旁路二進制位元(例如,通過直接使用exp-Golomb代碼對級別進行編碼)。可以從經上下文編碼的二進制位元的數量的配額(例如,經上下文編碼的二進制位元的數量的配額>>2或1)中得出N。
對於後續子塊,僅旁路二進制位元可以用於對係數級別進行編碼。在一個實施方式中,所提出的方法可以應用於某種子塊/CU/TU/TB(例如,用於面積/寬度/高度大於閾值(例如,面積大於16、32或64)的TU)。對於不滿足條件的CU/TU/TB,應用原始編碼方法或不應用上下文二進制位元約束(例如,利用經上下文編碼的二進制位元來對所有語法進行編碼)。在一個示例中,將編碼器約束應用於這些不滿足條件的CU/TU/TB。針對子塊/CU/TU/TB得出maxNumCtxBin。位元流一致性要求是針對子塊/CU/TU/TB,經上下文編碼的二進制位元的使用數量不能超過maxNumCtxBin。
在另一實施方式中,對於各個CU/TU,得出經上下文編碼的二進制位元的剩餘數量的最大值(諸如,maxNumCtxBin)。maxNumCtxBin可以取決於CU/TU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼、最後有效係數位置/索引或以上的任何組合。根據最後有效子塊的位置或索引和/或maxNumCtxBin和/或子塊大小,可以得出用於對允許用於係數子塊的係數級別進行編碼的經上下文編碼的二進制位元的數量。對於這些係數子塊,子塊中的每個係數可以使用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。對於其餘係數子塊,子塊中的每個係數都使用旁路二進制位元對係數級別進行編碼。可以使用經上下文編碼的二進制位元的係數子塊的數量可以等於maxNumCtxBin >>3、maxNumCtxBin >>4、maxNumCtxBin >>5、maxNumCtxBin >>6或maxNumCtxBin >>K,其中,K可以取決於TU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼或以上的任何組合。
在另一實施方式中,代替可以使用經上下文編碼的二進制位元的係數子塊的數量,而是得出可以使用經上下文編碼的二進制位元的係數的數量。僅N個係數可以使用經上下文編碼的二進制位元來對TU中的係數級別進行編碼。N個係數可以是TU中的從最後有效係數開始的後N個係數、TU中的後N個係數或TU中的前N個係數。在一個實施方式中,還可以應用編碼器約束。位元流一致性要求是TU、CU或PU中的經上下文編碼的二進制位元的使用數量應該小於或等於maxNumCtxBin。
在另一實施方式中,對於TU,可以用信號通知可以使用經上下文編碼的二進制位元來對係數級別進行編碼的最後子塊。一個或更多個語法(例如,位置x和y或子塊索引)可以用於指示可以使用經上下文編碼的二進制位元來對係數級別進行編碼的最後子塊的位置。在該子塊之前或之後,子塊中的每個係數都可以使用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。在該子塊之後或之前,子塊中的每個係數都使用旁路二進制位元對係數級別進行編碼。語法可以取決於maxNumCtxBin、最後有效子塊位置/索引、TU的大小/寬度/高度、顏色分量、子塊大小、是否使用聯合色度殘差編碼或以上的任何組合。
在另一實施方式中,對於4×4係數子塊或4×4 TU,僅N個係數可以使用經上下文編碼的二進制位元來對係數級別進行編碼。N個係數可以是從最後有效係數開始的後N個係數、子塊/TU中的後N個係數或子塊/TU中的前N個係數。對於其餘係數,其只能使用旁路二進制位元(例如,通過直接使用exp-Golomb代碼來對級別進行編碼)。N可以取決於TU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼或以上的任何組合。對於4×4 TU,N可以是8。
在另一實施方式中,除了TU級別閾值之外,還可以應用子塊級別閾值。如果達到了子塊級別閾值的配額,則將旁路模式用於子塊。如果未達到TU級別配額,則可以將經上下文編碼的二進制位元用於下一子塊。如果達到了TU級別配額,則只能使用旁路二進制位元來對當前TU中的所有係數進行編碼。針對各個子塊重設子塊級別閾值/配額。
在又一實施方式中,係數TU可以被分成一個或多個段。可以將不同的閾值/配額應用于不同的段。例如,係數TU可以被分成2或3段。對於高頻度段,可以應用較高(或較小)的閾值。當達到配額時,該段只能使用旁路模式。可以使用上述分段方法。例如,DC子塊的係數子塊的索引是0,並且最後有效係數子塊的索引是K,則第一段是針對子塊索引*2大於K的子塊。第二段是針對子塊索引*2等於K的子塊。第三段是針對子塊索引*2小於K的子塊。分段可以取決於TU中的位置或TU中的掃描順序(例如,子塊掃描順序)。
在另一實施方式中,經上下文編碼的二進制位元約束的數量可以是編碼器約束。對於各個TU,得出經上下文編碼的二進制位元的剩餘數量的最大值(例如,maxNumCtxBin)。maxNumCtxBin可以取決於TU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼、最後有效係數位置/索引或最後有效子塊位置/索引或以上的任何組合。例如,對於亮度TU,閾值可以是K>>(log2TbWidth+log2TbHeight–4),其中,K可以是28、30、32或正整數。在另一示例中,閾值可以是TU_width*TU_height*M,其中,M可以是2、1.5、30/16、28/16、1.875、1.75或正值。對於色度TU,閾值可以是L>>(log2TbWidth+log2TbHeight–4),其中,L可以是16、20、30、32或正整數。在另一示例中,閾值可以是TU_width*TU_height*N,其中,N可以是2、1.5、1、1.25、30/16、28/16、1.875、1.75或正值。在另一示例中,對於亮度TU,閾值可以是K>>(log2TbWidth+log2TbHeight–2),其中,K可以是7.5、8、28、30、32或正整數或正數。對於色度TU,閾值可以是L>>(log2TbWidth+log2TbHeight–2),其中,L可以是4、8、16、20、28、32或正整數。
對於各個TU/CU,經上下文編碼的二進制位元的使用數量不能超過得出的maxNumCtxBin。在CU級別約束中,所有顏色分量共用一個經上下文編碼的二進制位元約束。位元流一致性要求是TU/CU/PU中的經上下文編碼的二進制位元的使用數量應該小於或等於maxNumCtxBin。在一個示例中,當對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼時,所使用的經上下文編碼的二進制位元的數量增加1。也可以對子塊有效組標誌進行計數。所提出的約束可以應用於某些TU/CU大小。例如,所提出的約束可以應用於大於32或64的TU面積。對於其它大小的TU,使用旁路二進制位元來對係數進行編碼。在另一實施方式中,對於其它大小的TU,TU中的每個係數可以使用經上下文編碼的二進制位元來對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼。還可以應用經上下文編碼的二進制位元約束的另一圖塊/圖塊組/CTU/CTU行/切片/圖片/序列級別數量。對於各個圖塊/圖塊組/CTU/CTU行/切片/圖片/序列,得出經上下文編碼的二進制位元的最大數量(例如,totalMaxNumCtxBin)。位元流一致性要求是圖塊/圖塊組/CTU/CTU行/切片/圖片/序列中的經上下文編碼的二進制位元的使用數量應該小於或等於maxNumCtxBin。在一個實施方式中,當對係數進行編碼時,記錄經上下文編碼的二進制位元的使用數量。例如,當對有效標誌、大於1的標誌、奇偶位元標誌和/或大於2的標誌進行編碼時,所使用的經上下文編碼的二進制位元的數量增加1。當經上下文編碼的二進制位元的數量的配額小於閾值時,子塊/TU/CU/PU/CTU/CTU行/圖塊/圖塊組/切片/圖片/序列中的所有係數只能使用旁路二進制位元來對係數級別進行編碼。
在一個實施方式中,用信號通知指示當前子塊/CU/TU/變換塊/圖塊/圖塊組/CTU/CTU行/CTU組/切片/圖片/序列/區域是否使用全部旁路二進制位元編碼的一個或更多個語法。如果語法指示使用了旁路模式,則利用旁路二進制位元對當前子塊/CU/TU/變換塊/圖塊/圖塊組/CTU/CTU行/CTU組/切片/圖片/序列/區域塊中的所有係數進行編碼。例如,可以使用Golomb-Rice碼來對係數進行編碼。如果語法指示可以使用經上下文編碼的二進制位元,則無需對已經使用的經上下文編碼的二進制位元的數量進行計數,並且無需在解碼器或編碼器中從上下文編碼模式切換至旁路模式。例如,有效標誌、大於1的標誌、奇偶標誌、大於2(或3)的標誌都可以使用經上下文編碼的二進制位元。
在一個實施方式中,一種編碼器約束可以被應用於上下文編碼模式。針對子塊/CU/TU/變換塊/圖塊/圖塊組/CTU/CTU行/CTU組/切片/圖片/序列/區域,可以得出maxNumCtxBin。如果將上下文編碼模式用於該子塊/CU/TU/變換塊/圖塊/圖塊組/CTU/CTU行/CTU組/切片/圖片/序列/區域,則位元流一致性要求是經上下文編碼的二進制位元的使用數量不能超過maxNumCtxBin。在編碼器中,對於編碼模式,如果已經使用的經上下文編碼的二進制位元的數量未超過maxNumCtxBin,則不應該選擇該模式。在一個示例中,可以總是推斷語法,或者可以在滿足一些條件時推斷語法。編碼資訊可以用作條件或用於得出語法值。該區域可以被定義為編碼樹劃分中的編碼節點,其中,對應面積大於或等於閾值。區域定義類似於共用合併列表(shared Merge list)中的量化參數組或根CU。例如,區域可以是具有大於或等於閾值的對應面積的葉編碼節點,或者具有大於或等於閾值的對應面積的編碼節點以及具有小於閾值的對應面積的子節點中的一個子節點。在另一示例中,區域可以是具有小於或等於閾值的對應面積的編碼節點,並且區域的父節點具有大於閾值的對應面積。
在一個示例中,對於面積/寬度/高度小於閾值的CU/TU/TB,在不用信號通知語法的情況下,應用上下文編碼模式或旁路模式。對於這些類CU/TU/TB,位元流一致性要求是已經使用的經上下文編碼二進制位元的數量不能超過maxNumCtxBin。在一個示例中,利用經上下文編碼的二進制位元來對語法進行編碼。一個或更多個上下文可以用於該經上下文編碼的二進制位元。在一個實施方式中,所提出的方法可以與子塊變換(SBT)一起應用。在SBT中,用信號通知一個或更多個語法,以指示是否已對CU/TU的所有係數或CU/TU的一半係數或CU/TU的四分之一係數進行了編碼。當應用SBT時,可以增大經上下文編碼的二進制位元的剩餘數量的最大值。例如,如果僅對CU/TU的一半係數進行了編碼,則可以使所得出的經上下文編碼的二進制位元的剩餘數量的最大值加倍。如果僅對CU/TU的四分之一係數進行了編碼,則可以將所得出的經上下文編碼的二進制位元的剩餘數量的最大值乘以4。在另一示例中,當應用了SBT時,從原始TU而不是應用SBT後的分割TU中得出經上下文編碼的二進制位元的剩餘數量的最大值。
為了降低複雜度,可以將高頻度係數清零應用於較大大小的CU。例如,對於64×N或N×64 TU,僅對左上方32×32或32×N或N×32塊進行編碼。其餘係數用零代替。當得出經上下文編碼的二進制位元的剩餘數量的最大值時,使用清零之前或之後的TU大小。例如,可以使用64×N或N×64 TU(清零之前的TU大小)來得出經上下文編碼的二進制位元的剩餘數量的最大值,或者可以使用32×N或N×32 TU(清零之後的TU大小)來得出經上下文編碼的二進制位元的剩餘數量的最大值。當TB的寬度或高度大於32時,清零之後的區域的寬度或高度被截取為32。經截取的清零之後的區域的寬度或高度用於得出經上下文編碼的二進制位元的剩餘數量的TB級別最大值。在一個示例中,當不使用MTS或SBT時,用於得出經上下文編碼的二進制位元的剩餘數量的TU/TB/CU/PU級別最大值的TbWidth和/或TbHeight可以被截取為32,並且當應用了MTS和SBT時被截取為16。在一個示例中,當不使用MTS或SBT時,用於得出經上下文編碼的二進制位元的剩餘數量的TU/TB/CU/PU級別最大值的TbWidth和/或TbHeight可以被截取為32,並且當應用了MTS時被截取為16。在一個實施方式中,在TbWidth/TbHeight截取之後,得出經上下文編碼的二進制位元的剩餘數量的TU/TB/CU/PU級別最大值。
為了提高編碼效率,可以應用幀內子塊劃分(ISP)。當應用了幀內子塊劃分時,亮度CU/TU被分成四個子TU。在一個實施方式中,當應用了ISP時,計算分割之前的整個CU或整個TU的經上下文編碼的二進制位元的剩餘數量的最大值。所有ISP子TU共用所計算出的經上下文編碼的二進制位元的剩餘數量的最大值。在另一實施方式中,當應用了ISP時,計算各個ISP子TU的經上下文編碼的二進制位元的剩餘數量的最大值。對於各個子TU,如果未使用所有的經上下文編碼的二進制位元,則剩餘的經上下文編碼的二進制位元可以用於其餘子TU。
在一個實施方式中,可以根據CU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼或以上的任何組合來計算經上下文編碼的二進制位元的剩餘數量的最大值。然而,如果CU的寬度或高度大於K(例如,64或最大的TU大小/寬度/高度),則K用於計算經上下文編碼的二進制位元的剩餘數量的最大值。
在一個實施方式中,可以根據TU/CU的大小/寬度/高度、顏色分量、係數子塊大小、是否使用聯合色度殘差編碼或以上的任何組合來應用不同的殘差編碼方法。例如,如果CU/TU的大小大於4×4或8×8,或者面積/樣本數量大於16、32或64,則可以應用上述方法。否則,應用不同的殘差編碼方法。例如,僅經上下文編碼的二進制位元被用於對語法的一部分(例如,僅有效標誌、僅有效標誌和大於1的標誌、或僅有效標誌和奇偶標誌)進行編碼。利用旁路二進制位元對所有其它語法進行編碼。
在一個實施方式中,上面提出的方法可以應用於某些類子塊/CU/TU/TB/區域,例如,應用於面積/寬度/高度大於閾值(例如,面積大於16、32或64)的TU。對於不滿足條件的CU/TU/TB/區域,應用原始編碼方法或不應用上下文二進制位元約束(例如,利用經上下文編碼的二進制位元來對所有語法進行編碼)。在一個示例中,將編碼器約束應用於這些不滿足條件的CU/TU/TB。針對子塊/CU/TU/TB/區域得出maxNumCtxBin。位元流一致性要求是針對子塊/CU/TU/TB/區域,已經使用的經上下文編碼的二進制位元的數量不能超過maxNumCtxBin。
上面提出的方法的全部或部分可以一起應用。上面提出的方法的全部或部分可以應用於某一TU大小/寬度/高度,可以在圖片/圖塊/圖塊組/切片/CTU/CTU行/序列級別中指定某一QP或某一設定檔 。
對於色度殘差聯合編碼,可以修改已被編碼的塊標誌編碼以獲得更好的效率。例如,在TU編碼中,用信號通知tu_cbf_luma、tu_cbf_cb和/或tu_cbf_cr。如果顏色分量的cbf是1,則對顏色分量的係數進行編碼。當應用了色度殘差聯合編碼時,可以如下修改針對cb和cr的cbf編碼。
方法1:
在tu_cbf_cb和tu_cbf_cr之前對色度殘差聯合編碼標誌(tu_cb_cr_joint_residual)進行編碼。如果tu_cb_cr_joint_residual是0,則用信號通知tu_cbf_cb和tu_cbf_cr。如果tu_cb_cr_joint_residual是1,則無需用信號通知tu_cbf_cb和tu_cbf_cr,並且tu_cbf_cb和tu_cbf_cr可以分別被推斷為1和0。然而,cr分量的殘差係數編碼被跳過。
在另一示例中,如果tu_cb_cr_joint_residual是1,則用信號通知tu_cbf_cb。如果tu_cbf_cb是1,則跳過tu_cbf_cr並將該tu_cbf_cr推斷為1或0。跳過cr分量的殘差係數編碼。如果tu_cbf_cb是0,則跳過tu_cbf_cr並將該tu_cbf_cr推斷為0。cr分量的殘差係數編碼也被跳過。
方法2:
在tu_cbf_cb之後並且在tu_cbf_cr之前用信號通知tu_cb_cr_joint_residual。如果tu_cbf_cb是1,則用信號通知tu_cb_cr_joint_residual。如果tu_cb_cr_joint_residual是1,則跳過tu_cbf_cr。cr分量的殘差係數編碼也被跳過。如果tu_cb_cr_joint_residual是0,則用信號通知tu_cbf_cr。如果tu_cbf_cb是0,則不用信號通知tu_cb_cr_joint_residual並且用信號通知tu_cbf_cr。
方法3:
在tu_cbf_cb和tu_cbf_cr之後用信號通知tu_cb_cr_joint_residual。如果tu_cbf_cb是1並且tu_cbf_cr是1,則用信號通知tu_cb_cr_joint_residual。否則(例如,如果tu_cbf_cb和tu_cbf_cr中的一者是0),則不用信號通知tu_cb_cr_joint_residual。如果tu_cb_cr_joint_residual是1,則也跳過cr分量的殘差係數編碼。
上面提到的cr分量可以用另一顏色分量(例如,B或R或V)來代替。上面的cr分量可以用另一顏色分量(例如,R或B或U)來代替。
上面提出的方法的全部或部分可以一起應用。
可以在編碼器和/或解碼器中實現前面提出的方法中的任何方法。例如,可以在編碼器的熵編碼模組和/或解碼器的熵編碼模組中實現所提出的方法中的任何方法。另選地,所提出的方法中的任何方法可以被實現為集成到編碼器的熵編碼模組和/或解碼器的熵編碼模組的電路。
前面提出的方法可以應用于使用傳統標量量化(即,非狀態相關的標量量化)狀態相關的標量量化的系統。
第4圖例示了根據本發明實施方式的示例性解碼系統的流程圖,其中,該系統結合了對基於清零之後的區域的大小而確定的針對當前TB的經上下文編碼的二進制位元的剩餘數量的約束。該流程圖以及本公開中的其它後續流程圖中所示的步驟可以被實現為可在編碼器側和/或解碼器側的一個或更多個處理器(例如,一個或更多個CPU)上執行的程式碼。流程圖中所示的步驟也可以基於硬體(諸如,被佈置成執行流程圖中的步驟的一個或更多個電子裝置或處理器)來實現。根據該方法,在步驟410中,接收與經編碼的變換係數相對應的經編碼的當前TB(變換塊),所述經編碼的變換係數與要在解碼器側解碼的當前TB相關聯。在步驟420中,基於清零之後的區域的大小,針對當前TB初步確定經上下文編碼的二進制位元的剩餘數量的最大值。在步驟430中,使用具有基於經上下文編碼的二進制位元的剩餘數量的約束的基於上下文的編碼來對當前TB的變換係數進行解碼,以生成經重構的當前TB,其中,當經上下文編碼的二進制位元的剩餘數量小於第一閾值時,應用旁路模式而不應用常規的基於上下文的編碼模式。然後在步驟440中,提供經重構的當前TB。
第5圖例示了根據本發明實施方式的另一示例性解碼系統的流程圖,其中,該系統結合了對基於最後有效CG索引而確定的針對於當前TB的經上下文編碼的二進制位元的最大數量的約束。根據該方法,在步驟510中,接收與經編碼的變換係數相對應的經編碼的當前TB(變換塊),所述經編碼的變換係數與要在解碼器側解碼的當前TB相關聯。在步驟520中,針對與當前TB相關聯的變換係數確定最後有效CG(係數組)索引。在步驟530中,基於最後有效CG索引,針對當前TB初步確定經上下文編碼的二進制位元的剩餘數量的最大值。在步驟540中,使用具有基於經上下文編碼的二進制位元的剩餘數量的約束的基於上下文的編碼來對經編碼的當前TB進行解碼,以生成經重構的當前TB,其中,當經上下文編碼的二進制位元的剩餘數量小於第一閾值時,基於上下文的編碼使用旁路模式而不使用常規的基於上下文的編碼模式。在步驟550中,提供經重構的當前TB。
所示的流程圖旨在例示根據本發明的視頻編碼的示例。本領域技術人員可以在不脫離本發明的精神的情況下修改各個步驟、重新佈置步驟、拆分步驟或組合步驟以實踐本發明。在本公開中,已經使用特定的語法和語義來例示實現本發明的實施方式的示例。技術人員可以在不脫離本發明的精神的情況下通過利用等效的語法和語義替換所述語法和語義來實踐本發明。
呈現以上描述是為了使得本領域普通技術人員能夠如在特定應用及其要求的背景下所提供的來實踐本發明。對所描述的實施方式的各種修改對於本領域技術人員將是顯而易見的,並且本文中定義的一般原理可以應用於其它實施方式。因此,本發明並不旨在限於所示出和所描述的特定實施方式,而是被賦予與本文所公開的原理和新穎特徵相一致的最廣範圍。在以上詳細描述中,例示了各種具體細節以便提供對本發明的透徹理解。然而,本領域技術人員將理解本發明是可以實踐的。
如上所述的本發明的實施方式可以以各種硬體、軟體代碼或兩者的組合來實現。例如,本發明的實施方式可以是集成到視頻壓縮晶片中的一個或更多個電路或集成到視頻壓縮軟體中的程式碼,以執行本文描述的處理。本發明的實施方式還可以是要在數位訊號處理器(DSP)上執行以執行本文描述的處理的程式碼。本發明還可涉及由電腦處理器、數位訊號處理器、微處理器或現場可程式設計閘陣列(FPGA)執行的多個功能。這些處理器可以被配置成通過執行定義本發明所體現的特定方法的機器可讀軟體代碼或固件代碼來執行根據本發明的具體任務。可以以不同的程式設計語言和不同的格式或樣式來開發軟體代碼或固件代碼。也可以針對不同的目標平臺編譯軟體代碼。然而,不同的代碼格式、軟體代碼的樣式和語言以及配置代碼以執行根據本發明的任務的其它手段將不脫離本發明的精神和範圍。
在不脫離本發明的精神或基本特徵的情況下,本發明可以以其它特定形式實施。所描述的示例在所有方面僅應被認為是例示性的而非限制性的。因此,本發明的範圍由所附權利要求而不是前述描述來指示。落入權利要求等同含義和範圍內的所有改變均應包含在其範圍內。
110、150:幀間/幀內預測​​ 134:幀緩衝器 128:自重構塊REC 116:減法器 118:變換塊T 120:量化塊Q 122:熵編碼器 124:逆量化IQ 126:逆變換IT 130:塊濾波器DF 132:非去塊濾波器NDF 140:熵解碼器 210:塊劃分 220 :QT表示 310:二值化器 320:上下文建模器 330:編碼引擎 340:旁路編碼引擎 S1、S2、S3:開關 410-440、510-550:步驟
第1A圖例示了結合了環路處理的示例性自我調整幀間/幀內視頻編解碼系統。 第1B圖例示了結合了環路處理的示例性自我調整幀間/幀內視頻解碼系統。 第2圖例示了使用四叉樹結構將編碼樹單元(CTU)劃分成編碼單元(CU)的塊劃分的示例。 第3圖例示了CABAC處理的示例性框圖。 第4圖例示了根據本發明實施方式的示例性解碼系統的流程圖,該示例性解碼系統結合了使用具有對經上下文編碼的二進制位元的剩餘數量的約束的基於上下文的編碼的變換係數編碼,其中,基於清零之後的區域的大小得出經上下文編碼的二進制位元的剩餘數量的最大值。 第5圖例示了根據本發明實施方式的示例性解碼系統的流程圖,該示例性解碼系統結合了使用具有對經上下文編碼的二進制位元的剩餘數量的約束的基於上下文的編碼的變換係數編碼,其中,基於最後有效CG索引得出經上下文編碼的二進制位元的剩餘數量的最大值。
310:二值化器
320:上下文建模器
330:編碼引擎
340:旁路編碼引擎
S1、S2、S3:開關

Claims (21)

  1. 一種用於在視頻編解碼系統中對預測殘差進行編碼的方法,所述方法包括以下步驟: 接收對應於與要在編碼器側編碼的當前變換塊相關聯的變換係數的輸入資料; 基於清零之後的區域的大小來初步確定針對所述當前變換塊的經上下文編碼的二進制位元的剩餘數量的最大值; 使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述當前變換塊的變換係數進行編碼,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,應用旁路模式而不應用常規的基於上下文的編碼模式;以及 提供經編碼的當前變換塊。
  2. 如申請專利範圍第1項所述的方法,其中,所述當前變換塊的在所述清零之後的區域之外的目標變換係數不被編碼。
  3. 如申請專利範圍第1項所述的方法,其中,在所述初步確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值之前,將所述清零之後的區域的寬度或高度截取成預定值。
  4. 如申請專利範圍第3項所述的方法,其中,所述預定值對應於32。
  5. 如申請專利範圍第3項所述的方法,其中,如果針對所述當前變換塊允許多重變換集,則所述預定值對應於16。
  6. 如申請專利範圍第3項所述的方法,其中,如果針對包含所述當前變換塊的當前塊允許多重變換集和子塊變換,則所述預定值對應於16。
  7. 如申請專利範圍第1項所述的方法,其中,初步確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的步驟依賴於所述清零之後的區域的面積。
  8. 如申請專利範圍第7項所述的方法,其中,所述初步確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的步驟依賴於所述清零之後的區域的面積乘以等於1.75的因數。
  9. 一種用於在視頻編解碼系統中對預測殘差進行解碼的方法,所述方法包括以下步驟: 接收對應於與要在解碼器側解碼的當前變換塊相關聯的經編碼的變換係數的經編碼的當前變換塊; 基於清零之後的區域的大小來初步確定針對所述當前變換塊的經上下文編碼的二進制位元的剩餘數量的最大值; 使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述當前變換塊的變換係數進行解碼,以生成經重構的當前變換塊,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,應用旁路模式而不應用常規的基於上下文的編碼模式;以及 提供所述經重構的當前變換塊。
  10. 如申請專利範圍第9項所述的方法,其中,所述當前變換塊的在所述清零之後的區域之外的目標變換係數不被解析。
  11. 如申請專利範圍第9項所述的方法,其中,在所述確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量之前,將所述清零之後的區域的寬度或高度截取成預定值。
  12. 如申請專利範圍第10項所述的方法,其中,所述預定值對應於32。
  13. 如申請專利範圍第10項所述的方法,其中,如果針對所述當前變換塊允許多重變換集,則所述預定值對應於16。
  14. 如申請專利範圍第11項所述的方法,其中,如果針對包含所述當前變換塊的當前塊允許多重變換集和子塊變換,則所述預定值對應於16。
  15. 如申請專利範圍第9項所述的方法,其中,確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的最大值的步驟依賴於所述清零之後的區域的面積。
  16. 如申請專利範圍第15項所述的方法,其中,所述確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的步驟依賴於所述清零之後的區域的面積乘以等於1.75的因數。
  17. 如申請專利範圍第15項所述的方法,其中,所述確定針對所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值的步驟依賴於所述清零之後的區域的面積移7並且然後右移2。
  18. 如申請專利範圍第17項所述的方法,其中,對於亮度變換塊和色度變換塊,因數是不同的。
  19. 一種用於在視頻編解碼系統中對預測殘差進行解碼的設備,所述設備包括一個或更多個電子電路或處理器,所述一個或更多個電子電路或處理器被佈置成: 接收對應於與要在解碼器側解碼的當前變換塊相關聯的經編碼的變換係數的經編碼的當前變換塊; 基於清零之後的區域的大小來初步確定針對所述當前變換塊的經上下文編碼的二進制位元的剩餘數量的最大值; 使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述當前變換塊的變換係數進行解碼,以生成經重構的當前變換塊,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,所述基於上下文的編碼使用旁路模式而不使用常規的基於上下文的編碼模式;以及 提供所述經重構的當前變換塊。
  20. 一種用於在視頻編解碼系統中對預測殘差進行解碼的方法,所述方法包括以下步驟: 接收對應於與要在解碼器側解碼的當前變換塊相關聯的經編碼的變換係數的經編碼的當前變換塊; 確定與所述當前變換塊相關聯的變換係數的最後有效係數組索引; 基於所述最後有效係數組索引,初步確定針對所述當前變換塊的經上下文編碼的二進制位元的剩餘數量的最大值; 使用具有基於經上下文編碼的二進制位元的所述剩餘數量的約束的基於上下文的編碼來對所述經編碼的當前變換塊進行解碼,以生成經重構的當前變換塊,其中,當經上下文編碼的二進制位元的所述剩餘數量小於第一閾值時,所述基於上下文的編碼使用旁路模式而不使用常規的基於上下文的編碼模式;以及 提供所述經重構的當前變換塊。
  21. 如申請專利範圍第20項所述的方法,其中,用於所述當前變換塊的經上下文編碼的二進制位元的所述剩餘數量的所述最大值與所述最後有效係數組索引乘以因數以及係數組的面積相對應,並且其中,所述因數等於1.75。
TW109102603A 2019-01-25 2020-01-22 帶有變換塊級別約束的變換係數編碼的方法和設備 TWI737143B (zh)

Applications Claiming Priority (12)

Application Number Priority Date Filing Date Title
US201962796611P 2019-01-25 2019-01-25
US62/796,611 2019-01-25
US201962802139P 2019-02-06 2019-02-06
US62/802,139 2019-02-06
US201962813208P 2019-03-04 2019-03-04
US62/813,208 2019-03-04
US201962822771P 2019-03-22 2019-03-22
US62/822,771 2019-03-22
US201962824467P 2019-03-27 2019-03-27
US62/824,467 2019-03-27
WOPCT/CN2020/073877 2020-01-22
PCT/CN2020/073877 WO2020151753A1 (en) 2019-01-25 2020-01-22 Method and apparatus of transform coefficient coding with tb-level constraint

Publications (2)

Publication Number Publication Date
TW202038615A true TW202038615A (zh) 2020-10-16
TWI737143B TWI737143B (zh) 2021-08-21

Family

ID=71735849

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109102603A TWI737143B (zh) 2019-01-25 2020-01-22 帶有變換塊級別約束的變換係數編碼的方法和設備

Country Status (4)

Country Link
US (1) US11595656B2 (zh)
CN (1) CN113316934B (zh)
TW (1) TWI737143B (zh)
WO (1) WO2020151753A1 (zh)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11336918B2 (en) 2018-09-05 2022-05-17 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
US11134273B2 (en) 2019-02-14 2021-09-28 Qualcomm Incorporated Regular coded bin reduction for coefficient coding
EP3984231A4 (en) * 2019-06-13 2023-06-21 Beijing Dajia Internet Information Technology Co., Ltd. SUB-BLOCK TRANSFORM METHOD AND SYSTEM FOR VIDEO CODING
JP2022538968A (ja) * 2019-06-24 2022-09-07 アリババ グループ ホウルディング リミテッド ビデオデータの変換スキップ残差符号化
US11792824B2 (en) * 2020-03-30 2023-10-17 Qualcomm Incorporated Multicast feedback and retransmission for transport block grouping
CN112396016B (zh) * 2020-11-26 2021-07-23 武汉宏数信息技术有限责任公司 一种基于大数据技术的人脸识别系统
US20220329810A1 (en) * 2021-04-12 2022-10-13 Tencent America LLC Method and apparatus for intra string copy

Family Cites Families (24)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003153228A (ja) 2001-11-15 2003-05-23 Sony Corp 画像符号化装置及び画像復号化装置
EP1487113B1 (de) * 2002-05-02 2006-10-18 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Kodierung und Dekodierung von Transformationskoeffizienten in Bild- oder Videokodierern
MY184224A (en) * 2010-07-09 2021-03-27 Samsung Electronics Co Ltd Method and apparatus for entropy encoding/decoding a transform coefficient
US9106913B2 (en) * 2011-03-08 2015-08-11 Qualcomm Incorporated Coding of transform coefficients for video coding
WO2012134421A1 (en) * 2011-03-31 2012-10-04 Thomson Licensing Techniques for context-adaptive binary data arithmetic coding (cabac) decoding
US9191670B2 (en) * 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
US9462275B2 (en) * 2012-01-30 2016-10-04 Qualcomm Incorporated Residual quad tree (RQT) coding for video coding
US9264706B2 (en) * 2012-04-11 2016-02-16 Qualcomm Incorporated Bypass bins for reference index coding in video coding
US9088769B2 (en) * 2012-06-28 2015-07-21 Blackberry Limited Reduced worst-case context-coded bins in video compression with parity hiding
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CA3022221A1 (en) * 2016-05-13 2017-11-16 Sony Corporation Apparatus and method for image processing for suppressing a reduction of coding efficiency
AU2018204786A1 (en) * 2018-06-29 2020-01-16 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a transformed block of video samples
WO2020054713A1 (en) * 2018-09-11 2020-03-19 Sharp Kabushiki Kaisha Systems and methods for coding transform coefficient level values
JP7222997B2 (ja) * 2018-09-20 2023-02-15 エルジー エレクトロニクス インコーポレイティド 変換係数レベルコーディング方法およびその装置
EP3852374A4 (en) * 2018-09-23 2021-12-08 Lg Electronics Inc. PROCESS FOR ENCODING / DECODING VIDEO SIGNALS AND ASSOCIATED EQUIPMENT
KR102657902B1 (ko) * 2018-10-05 2024-04-17 로즈데일 다이나믹스 엘엘씨 변환 계수 코딩 방법 및 그 장치
KR102634645B1 (ko) * 2018-10-05 2024-02-06 엘지전자 주식회사 변환 계수 코딩 방법 및 그 장치
US11128866B2 (en) * 2018-10-18 2021-09-21 Qualcomm Incorporated Scans and last coefficient position coding for zero-out transforms
WO2020101321A1 (ko) * 2018-11-12 2020-05-22 엘지전자 주식회사 고주파 제로잉을 기반으로 변환 계수를 코딩하는 방법 및 그 장치
US11470329B2 (en) * 2018-12-26 2022-10-11 Tencent America LLC Method and apparatus for video coding
US10798397B2 (en) * 2019-01-02 2020-10-06 Tencent America LLC Method and apparatus for video coding
US11477486B2 (en) * 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
KR20210107118A (ko) * 2019-01-02 2021-08-31 프라운호퍼 게젤샤프트 쭈르 푀르데룽 데어 안겐반텐 포르슝 에. 베. 통합된 변환 타입 시그널링 및 변환 타입 종속 변환 계수 레벨 코딩
KR102640142B1 (ko) * 2019-01-12 2024-02-22 엘지전자 주식회사 영상 코딩 시스템에서 레지듀얼 정보를 사용하는 영상 디코딩 방법 및 그 장치

Also Published As

Publication number Publication date
CN113316934A (zh) 2021-08-27
TWI737143B (zh) 2021-08-21
US20220094939A1 (en) 2022-03-24
WO2020151753A1 (en) 2020-07-30
CN113316934B (zh) 2024-03-08
US11595656B2 (en) 2023-02-28

Similar Documents

Publication Publication Date Title
US11310530B2 (en) Decoding device, encoding device, and decoding method
TWI737143B (zh) 帶有變換塊級別約束的變換係數編碼的方法和設備
US11523136B2 (en) Methods and apparatuses for coding transform blocks
US9451254B2 (en) Disabling intra prediction filtering
TWI751633B (zh) 在視訊編解碼系統中對與預測殘差相對應的變換係數進行編/解碼的方法及裝置
JP2018524873A (ja) ビデオコーディングのためのパレットバイパスビンのグループ化
US20140003530A1 (en) Sign hiding techniques for quantized transform coefficients in video coding
US11805279B2 (en) Method and apparatus of transform coefficient coding
TWI729569B (zh) 帶有約束的亮度-色度單獨的編碼樹編碼的方法和設備
TW202126044A (zh) 視訊編碼或解碼系統中的視訊處理方法和裝置
TW202135528A (zh) 用於編解碼視訊序列的方法和裝置
JP2024502109A (ja) ビデオコーディング用の残差および係数のコーディング
TW202143738A (zh) 視訊編解碼中施加位元流約束的方法和裝置
Pu et al. Cross component decorrelation for HEVC range extension standard
TWI830482B (zh) 視訊編碼方法、裝置以及視訊解碼方法、裝置
Karwowski Improved adaptive arithmetic coding for HEVC video compression technology
US11343539B2 (en) Method and apparatus of last significant coefficient coding in image and video coding
TW202139717A (zh) 圖像和視訊編解碼中發信切片分割資訊之方法和裝置
TW202325020A (zh) 視訊編碼方法、裝置以及視訊解碼方法、裝置
CN114830650A (zh) 图像编码方法和图像解码方法
Enhorn Efficient Video Coding Beyond High-Definition Resolution