TW202123708A - 用於將編碼樹單元編碼與解碼的方法、設備及系統 - Google Patents

用於將編碼樹單元編碼與解碼的方法、設備及系統 Download PDF

Info

Publication number
TW202123708A
TW202123708A TW109139290A TW109139290A TW202123708A TW 202123708 A TW202123708 A TW 202123708A TW 109139290 A TW109139290 A TW 109139290A TW 109139290 A TW109139290 A TW 109139290A TW 202123708 A TW202123708 A TW 202123708A
Authority
TW
Taiwan
Prior art keywords
transformation
transform
chroma
block
skip flag
Prior art date
Application number
TW109139290A
Other languages
English (en)
Other versions
TWI784345B (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 TW202123708A publication Critical patent/TW202123708A/zh
Application granted granted Critical
Publication of TWI784345B publication Critical patent/TWI784345B/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/70Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by syntax aspects related to video coding, e.g. related to compression standards
    • 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/96Tree coding, e.g. quad-tree 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/12Selection from among a plurality of transforms or standards, e.g. selection between discrete cosine transform [DCT] and sub-band transform or selection between H.263 and H.264
    • H04N19/122Selection of transform size, e.g. 8x8 or 2x4x8 DCT; Selection of sub-band transforms of varying structure or type
    • 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/129Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
    • 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/186Methods 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 colour or a chrominance component
    • 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/1883Methods 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 relating to sub-band structure, e.g. hierarchical level, directional tree, e.g. low-high [LH], high-low [HL], high-high [HH]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/46Embedding additional information in the video signal during the compression process
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/61Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding in combination with predictive 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/119Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
    • 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)
  • Physics & Mathematics (AREA)
  • Discrete Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)
  • Compression, Expansion, Code Conversion, And Decoders (AREA)
  • Reduction Or Emphasis Of Bandwidth Of Signals (AREA)

Abstract

一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的系統和方法,該編碼單元具有亮度顏色通道和至少一個色度顏色通道。該方法包括:從視訊位元流解碼用於編碼單元的亮度變換塊的亮度變換跳過旗標;從視訊位元流解碼至少一個色度變換跳過旗標,每個解碼的色度變換跳過旗標對應於編碼單元的至少一個色度變換塊之一;確定二次變換索引,該確定包括:如果亮度變換跳過旗標和至少一個色度變換跳過旗標中的至少一個指示將不跳過各個變換塊的變換,則從視訊位元流解碼二次變換索引,以及如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;根據解碼的亮度變換跳過旗標,至少一個色度變換跳過旗標以及確定的二次變換索引對亮度變換塊和至少一個色度變換塊進行變換,以解碼編碼單元。

Description

用於將編碼樹單元編碼與解碼的方法、設備及系統
本申請案依美國35 U.S.C. §119主張於2019年12月3日提出申請的澳大利亞專利申請案第2019275552號的申請日的權益,其在此以引用方式全部併入本文,如同在此完全闡述一般。
本發明一般有關數位視訊信號處理,且尤其有關用於對視訊樣本的塊編碼和解碼的方法、設備及系統。本發明亦有關一種電腦程式產品,該電腦程式產品包括其上記錄有用於對視訊樣本的塊編碼和解碼的電腦程式的電腦可讀媒體。
目前存在用於視訊編碼的許多應用,包括用於傳輸和儲存視訊資料的應用。許多視訊編碼標準也已經開發,並且其他目前正在開發中。視訊編碼標準化的最新開發導致成立一個名為「聯合視訊專家團隊」(JVET)的小組。聯合視訊專家團隊(JVET)包括國際電信聯盟(ITU)的電信標準化部門(ITU-T)第16研群組第6號課題(SG16/Q6)的成員,也稱為「視訊編碼專家小組」(VCEG),以及國際標準化組織/國際電子電工委員會第一聯合技術委員會/第29小組委員會/第11工作小組(ISO/IEC JTC1/SC29/WG11 ),也被稱為「動畫專家小組」(MPEG)。
聯合視訊專家團隊(JVET)發布了提案徵集(CfP),及其在美國聖地亞哥舉行的第10次會議上分析之答覆。提交的回覆表明,視訊壓縮功能顯著優於目前最新的視訊壓縮標準,即「高效視訊編碼」(HEVC)。基於這種出色的表現,決定開始開發新的視訊壓縮標準的計劃,該標準被稱為「通用視訊編碼」(VVC)。預計VVC將滿足對更高壓縮性能的持續需求,尤其是隨著視訊格式能力的增強(例如具有更高的解析度和更高的框速率),以及滿足頻寬成本相對較高的WAN上遞送服務的市場需求的增長。諸如沉浸式視訊之類的用例需要對此類更高格式進行即時編碼和解碼,例如,即使最終渲染的「視窗(viewport)」使用較低的解析度,立方體貼圖投影(CMP)仍可能使用8K格式。VVC必須能夠在當代的矽製程中實作,並在所達成的性能與實作成本之間提供可接受的權衡。可以例如根據矽面積、CPU處理器負載、記憶體利用率和頻寬中的一或多個來考慮實作成本。透過將框區域劃分為多個部分並平行處理每個部分,可以處理更高的視訊格式。由壓縮框的多個部分構成的位元流仍然適合於「單核」解碼器的解碼,即,根據應用需要將包括位元率在內的框位準約束分配給每個部分。
視訊資料包括一系列影像資料框,每個框包括一或多個顏色通道。通常,需要一個原色通道和二個二次色通道。原色通道通常稱為「亮度(luma)」通道,二次色通道通常稱為「色度(chroma)」通道。儘管視訊資料通常顯示在RGB(紅綠藍)顏色空間中,但是此顏色空間在三個各自的分量之間具有高度相關性。由編碼器或解碼器看到的視訊資料表示通常使用諸如YCbCr的顏色空間。YCbCr將亮度(根據轉換函數映射到「luma」)集中在Y(主要)通道中,而色度則在Cb和Cr(次要)通道中。由於使用了去相關的YCbCr信號,亮度通道的統計資訊與色度通道的統計資訊明顯不同。主要區別在於,量化後,與對應亮度通道塊的係數相比,色度通道包含給定塊的相對較少的重要係數。此外,與亮度通道相比,Cb和Cr通道可以以較低的速率在空間上進行取樣(次取樣),例如水平一半,垂直一半,稱為「4:2:0色度格式」。4:2:0色度格式通常用於「消費類」應用程式,例如網際網路視訊串流、廣播電視以及藍光(Blu-Ray™)光碟上的儲存。在水平方向以半速率對Cb和Cr通道進行次取樣而在垂直方向不進行次取樣被稱為「4:2:2色度格式」。4:2:2色度格式通常用於專業應用中,包括捕獲用於電影製作等的素材。4:2:2色度格式的較高取樣率使所得視訊對諸如色階等編輯操作更具彈性。在分發給消費者之前,通常將4:2:2色度格式的材料變換為4:2:0色度格式,然後編碼以分發給消費者。除色度格式外,視訊還具有解析度和框速率的特徵。示例解析度為解析度為3840×2160的超高清(UHD)或解析度為7680×4320的「8K」,示例框速率為60或120Hz。亮度取樣率的範圍可從大約每秒500兆取樣到每秒幾個千兆取樣。對於4:2:0色度格式,每個色度通道的取樣率是亮度取樣率的四分之一;對於4:2:2色度格式,每個色度通道的取樣率是亮度取樣率的一半。
VVC標準是「基於塊」的編解碼器,其中首先將框劃分為稱為「編碼樹單元」(CTU)的區域的正方形陣列。如果框不是整數可整除的CTU,則沿左邊緣和底邊緣的CTU可能會被截斷以匹配框大小。CTU通常佔據相對較大的區域,例如128×128亮度樣本。但是,每框右邊緣和底邊緣的CTU可能區域會更小。與每個CTU關聯的是一個「編碼樹」,它可以是亮度通道和色度通道的單一樹(「共享樹」),並且可以針對亮度通道和色度通道各者將「叉」包括到單獨的樹(或「雙樹」)中。編碼樹將CTU的區域分解為一組塊,也稱為「編碼單位」(CU)。處理CB以按照特定順序編碼或解碼。亮度和色度的單獨編碼樹通常以64×64亮度樣本粒度開始,在此之上存在共享樹。由於使用了4:2:0色度格式,因此以64×64亮度樣本粒度開始的單獨的編碼樹結構包括具有32×32色度樣本區域的並置色度編碼樹。名稱「單元(unit)」表示在該塊所源自的編碼樹的所有顏色通道中的適用性。單一編碼樹導致具有亮度編碼塊和二個色度編碼塊的編碼單元。單獨的編碼樹的亮度分支產生編碼單元,每個編碼單元都有亮度編碼塊,而單獨的編碼樹的色度分支產生編碼單元,每個編碼單元都有一對色度塊。上述CU還與「預測單位」(PU)和「變換單位」(TU)相關聯,它們中的每一個都適用於衍生CU的編碼樹的所有顏色通道。類似地,編碼塊與預測塊(PB)和變換塊(TB)相關聯,它們中的每一個都適用於單一顏色通道。具有跨越4:2:0色度格式視訊資料的顏色通道的CU的單一樹會導致色度編碼塊的寬度和高度是對應亮度編碼塊的一半。
儘管在「單位」和「塊」之間存在上述區別,但是術語「塊」仍可以用作對其操作應用於所有顏色通道的框的區域或區的通用術語。
對於每個CU,產生框資料的對應區域的內容(樣本值)的「預測單位」(或「PU」)。此外,形成了在編碼器輸入處看到的預測與區域內容之間的差異(或「空間域」殘差)的表示。每個顏色通道中的差異可以被變換和編碼為一系列殘差係數,從而形成給定CU的一或多個TU。施加的變換可以是離散餘弦變換(DCT)或其他變換,其應用於殘差值的每個塊。該變換是分開應用,也就是說,二維變換要分二次執行。首先透過對塊中的每一列樣本進行一維變換來對塊進行變換。然後,透過對部分結果的每一行應用一維變換來對部分結果進行變換,以產生最終變換係數塊,該塊基本上與殘差樣本解相關。VVC標準支援各種大小的變換,包括矩形塊的變換,每邊尺寸為2的冪。量化變換係數以用於熵編碼成位元流。還可以應用附加的不可分離的變換級。最後,可以旁路變換應用程式。
VVC的特徵在於框內預測和框間預測。框內預測牽涉在框中使用先前處理過的樣本,以用於產生該框中目前樣本塊的預測。框間預測牽涉使用從先前解碼的框獲得的樣本塊來產生對框中的目前樣本塊的預測。根據運動向量,從先前解碼的框中獲得的樣本塊從目前塊的空間位置偏移,該運動向量經常應用了濾波。框內預測塊可以是(i)統一樣本值(「DC框內預測」),(ii)具有偏移以及水平和垂直梯度的平面(「平面框內預測」),(iii)用在特定方向上應用的相鄰樣本填充的塊(「角度框內預測」)或(iv)使用相鄰樣本和選定矩陣係數的矩陣乘法結果。透過將「殘差」編碼到位元流,可以將預測塊與對應的輸入樣本之間的進一步差異校正到一定程度。通常將殘差從空間域變換到頻域以形成殘差係數(在「一次變換」域中),可以透過應用「二次變換」對殘差係數進行進一步變換(以在「二次變換域」中產生殘差係數)。根據量化參數對殘差係數進行量化,從而導致在解碼器處產生的樣本的重建精度喪失,但位元流的位元率降低。
量化參數可以在框與框之間以及在每個框內變化。對於「速率控制」的編碼器,通常在框內改變量化參數。速率控制編碼器試圖產生具有基本恆定位元率的位元流,而不管所接收的輸入樣本的統計資訊如何,例如噪聲特性,運動程度。由於位元流通常是在頻寬有限的網路上傳輸的,因此速率控制是一種廣泛的技術,可以確保在網路上的可靠性能,而與輸入到編碼器的原始框的變化無關。在將框以平行段編碼的情況下,期望使用速率控制方面的靈活性,因為不同的段在期望的保真度方面可能有不同的要求。
實施成本,例如任何記憶體使用、準確性程度和通訊效率等,也很重要。
本發明的目的是實質上克服或至少改善現有配置的一或多個缺點。
本發明的一個態樣提供一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道和至少一個色度顏色通道,該方法包括:從視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標(flag);從視訊位元流解碼至少一個色度變換跳過旗標,每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者;確定二次變換索引,該確定包括:如果亮度變換跳過旗標和至少一個色度變換跳過旗標中的至少一者指示將不跳過各個變換塊的變換,則從視訊位元流解碼二次變換索引,且如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
根據另一態樣,該解碼的亮度變換跳過旗標具有與該至少一個色度變換跳過旗標不同的值。
根據另一態樣,如果該解碼的亮度變換跳過旗標指示該亮度塊的變換將被跳過,則基於該解碼的至少一個色度跳過旗標來針對該至少一個色度變換塊對該二次變換索引解碼。
根據另一態樣,該變換步驟包括以下步驟之一:基於確定的二次變換索引跳過二次變換的應用或選擇二個二次變換核心之一以供應用之用。
本發明的另一態樣提供一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有至少一個色度顏色通道,該方法包括:從該視訊位元流解碼至少一個色度變換跳過旗標,每個色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者;為編碼單元的該至少一個色度變換塊確定二次變換索引,該確定包括:如果該至少一個色度變換跳過旗標中的任何一者指示將變換應用於對應的色度變換塊,則從視訊位元流解碼二次變換索引,並且如果所有色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及根據各自的色度變換跳過旗標和確定的二次變換索引來對至少一個色度變換塊中的每一個變換,以解碼該編碼單元。
本發明的另一態樣提供一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道和至少一個色度顏色通道,該方法包括:從該視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標;從該視訊位元流解碼至少一個色度變換跳過旗標,每個解碼的色度變換跳過旗標對應於編碼單元的該至少一個色度變換塊之一者;確定二次變換索引,該確定包括:如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換,且如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示不跳過各個變換塊的變換,則從該視訊位元流解碼二次變換索引;以及根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該對亮度變換塊和至少一個色度變換塊,以解碼該編碼單元。
本發明的另一態樣提供一種非暫態電腦可讀媒體,具有儲存在其上的電腦程式,以實作從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道以及至少一個色度顏色通道,該方法包括:從視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標;從視訊位元流解碼至少一個色度變換跳過旗標,每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者;確定二次變換索引,該確定包括:如果亮度變換跳過旗標和至少一個色度變換跳過旗標中的至少一者指示將不跳過各個變換塊的變換,則從視訊位元流解碼二次變換索引,且如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
本發明的另一態樣提供一種系統,包括:記憶體;以及一種處理器,其中,該處理器被配置為執行儲存在該記憶體上的碼,以實作一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有至少一個色度顏色通道,該方法包括:從該視訊位元流解碼至少一個色度變換跳過旗標,每個色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者;為編碼單元的該至少一個色度變換塊確定二次變換索引,該確定包括:如果該至少一個色度變換跳過旗標中的任何一者指示將變換應用於對應的色度變換塊,則從視訊位元流解碼二次變換索引,且如果所有一或多個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及根據各自的色度變換跳過旗標和確定的二次變換索引來對至少一個色度變換塊中的每一個變換,以對該編碼單元解碼。
本發明的另一態樣提供一種視訊解碼器,配置為:從位元流接收影像框;從該影像框的編碼樹單元確定編碼樹的編碼單元,該編碼單元具有亮度顏色通道和至少一個色度顏色通道;從視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標;從視訊位元流解碼至少一個色度變換跳過旗標,每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者;確定二次變換索引,該確定包括:如果亮度變換跳過旗標和至少一個色度變換跳過旗標中的至少一者指示將不跳過各個變換塊的變換,則從視訊位元流解碼二次變換索引,且如果所有亮度變換跳過旗標和至少一個色度變換跳過旗標均指示要跳過各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
本發明的另一態樣提供一種從視訊位元流的影像框的編碼樹單元解碼編碼單元的方法,該方法包括:確定該編碼單元的變換塊的掃描圖樣,其中,該掃描圖樣透過進行殘差係數的子塊的多個不重疊的集合來遍歷變換塊,在完成對目前集合的掃描之後,該掃描圖樣從目前集合前進到該多個集合的下一個集合;根據確定的掃描圖樣從該視訊位元流解碼殘差係數;為該編碼單元確定多重變換選擇索引,該確定包括:如果沿著該掃描圖樣遇到的最後重要係數在該變換塊的閾值笛卡爾位置處或之內,則從該視訊位元流解碼該多重變換選擇索引,且如果沿著該掃描圖樣的該變換塊的該最後重要殘差係數位置在該閾值笛卡爾位置之外,則確定該多重變換選擇索引用以指示不使用多重變換選擇;以及透過根據該多重變換選擇索引應用變換來對該解碼的殘差係數進行變換,以對該編碼單元解碼。
本發明的另一態樣提供一種非暫態電腦可讀媒體,具有儲存在其上的電腦程式,以實作從視訊位元流的影像框的編碼樹單元解碼編碼單元的方法,該方法包括:確定該編碼單元的變換塊的掃描圖樣,其中,該掃描圖樣透過進行殘差係數的子塊的多個不重疊的集合來遍歷變換塊,在完成對目前集合的掃描之後,該掃描圖樣從目前集合前進到該多個集合的下一個集合;根據該確定的掃描圖樣從該視訊位元流解碼殘差係數;為該編碼單元確定多重變換選擇索引,該確定包括:如果沿著該掃描圖樣遇到的最後重要係數在該變換塊的閾值笛卡爾位置處或之內,則從該視訊位元流解碼該多重變換選擇索引,且如果沿著該掃描圖樣的該變換塊的該最後重要殘差係數位置在該閾值笛卡爾位置之外,則確定該多重變換選擇索引用以指示不使用多重變換選擇;以及透過根據該多重變換選擇索引應用變換來對該解碼的殘差係數進行變換,以對該編碼單元解碼。
本發明的另一態樣提供一種系統,包括:記憶體;以及處理器,其中,該處理器被配置為執行儲存在該記憶體上的碼,以實作從視訊位元流的影像框的編碼樹單元解碼編碼單元的方法,該方法包括:確定該編碼單元的變換塊的掃描圖樣,其中,該掃描圖樣透過進行殘差係數的子塊的多個不重疊的集合來遍歷變換塊,在完成對目前集合的掃描之後,該掃描圖樣從目前集合前進到該多個集合的下一個集合;根據所確定的掃描圖樣從該視訊位元流解碼殘差係數;為該編碼單元確定多重變換選擇索引,該確定包括:如果沿著該掃描圖樣遇到的最後重要係數在該變換塊的閾值笛卡爾位置處或之內,則從該視訊位元流解碼該多重變換選擇索引,且如果沿著該掃描圖樣的該變換塊的該最後重要殘差係數位置在該閾值笛卡爾位置之外,則確定該多重變換選擇索引用以指示不使用多重變換選擇;以及透過根據該多重變換選擇索引應用變換來對該解碼的殘差係數進行變換,以對該編碼單元解碼。
本發明的另一態樣提供一種視訊解碼器,配置為:從位元流接收影像框;從該影像框的編碼樹單元確定編碼樹的編碼單元;確定該編碼單元的變換塊的掃描圖樣,其中,該掃描圖樣透過進行殘差係數的子塊的多個不重疊的集合來遍歷變換塊,在完成對目前集合的掃描之後,該掃描圖樣從目前集合前進到該多個集合的下一個集合;根據該確定的掃描圖樣從該視訊位元流解碼殘差係數;為該編碼單元確定多重變換選擇索引,該確定包括:如果沿著該掃描圖樣遇到的最後重要係數在該變換塊的閾值笛卡爾位置處或之內,則從該視訊位元流解碼該多重變換選擇索引,且如果沿著該掃描圖樣的該變換塊的該最後重要殘差係數位置在該閾值笛卡爾位置之外,則確定該多重變換選擇索引用以指示不使用多重變換選擇;以及透過根據該多重變換選擇索引應用變換來對該解碼的殘差係數進行變換,以對該編碼單元解碼。
還揭示了其他態樣。
在任何一或多個隨附圖式中參考具有相同參考標號的步驟及/或特徵,出於說明的目的,該些步驟及/或特徵具有相同的功能或操作,除非出現相反的意圖。
視訊壓縮標準的位元流格式的語法被定義為「語法結構」的層次結構。每個語法結構定義了一組語法元素,其中一些語法元素可能是有條件的。當語法僅允許與工具的有用組合相對應的語法元素組合時,可以提高壓縮效率。另外,透過禁止語法元素的組合也降低了複雜性,儘管語法元素雖然可能實作,但被認為不能提供足夠的壓縮優勢給最終的實作成本。
圖1是顯示視訊編碼和解碼系統100的功能模組的示意性方塊圖。系統100用信號發送一次和二次變換參數,從而達到壓縮效率增益。
系統100包括來源裝置110和目的地裝置130。通訊通道120用於將編碼的視訊資訊從來源裝置110傳遞到目的地裝置130。在一些配置中,來源裝置110和目的地裝置130可以包括各自的行動電話手機或「智慧型手機」中的一者或二者,在這種情況下,通訊通道120是無線通道。在其他配置中,來源裝置110和目的地裝置130可以包括視訊會議配備,在這種情況下,通訊通道120通常是諸如網際網路連接的有線通道。此外,來源裝置110和目的地裝置130可以包括多種裝置中的任何一種,包括支援空中電視廣播、有線電視應用、網際網路視訊應用(包括串流)以及其中編碼視訊資料為在某些電腦可讀儲存媒體上捕獲之音訊的應用的裝置,例如檔案伺服器中的硬碟驅動器。
如圖1所示,來源裝置110包括視訊源112、視訊編碼器114和發送器116。視訊源112通常包括捕獲的視訊框資料(顯示為113)的源,例如影像捕獲感測器,先前儲存在非暫態記錄媒體上的視訊序列或來自遠程影像捕獲感測器的視訊源。視訊源112也可以是電腦圖形卡的輸出,例如顯示作業系統的視訊輸出以及在諸如平板電腦的計算裝置上執行的各種應用。可以包括影像捕獲感測器作為視訊源112的來源裝置110的示例包括智慧型手機、攝錄影機、專業攝像機和網路攝像機。
視訊編碼器114將來自視訊源112的捕獲的框資料(由箭頭113指示)轉換(或「編碼」)成位元流(由箭頭115指示),如參照圖3所進一步描述者。位元流115由發送器116在通訊通道120上作為編碼的視訊資料(或「編碼的視訊資訊」)發送。位元流115也可以儲存在非暫態儲存裝置122中,例如「快閃」記憶體或硬碟驅動器,直到以後透過通訊通道120發送,或者替代透過通訊通道120發送。例如,針對視訊串流應用,可以根據需要透過廣域網路(WAN)將編碼的視訊資料提供給客戶。
目的地裝置130包括接收器132、視訊解碼器134和顯示裝置136。接收器132從通訊通道120接收編碼的視訊資料,並將接收到的視訊資料作為位元流(由箭頭133指示)傳遞到視訊解碼器134。視訊解碼器134接著將解碼的框資料(由箭頭135指示)輸出到顯示裝置136。解碼的框資料135具有與框資料113相同的色度格式。顯示裝置136的示例包括陰極射線管、液晶顯示器,諸如智慧型手機、平板電腦、電腦監視器或獨立電視機中的液晶顯示器。來源裝置110和目的地裝置130中的每一個的功能也可以被實施在單一裝置中,其示例包括行動電話手機和平板電腦。解碼的框資料可以在呈現給用戶之前被進一步變換。例如,可以使用投影格式從解碼的框資料中渲染具有特定緯度和經度的「視窗(viewport)」,以表示場景的360度視圖。
儘管有上述示例性裝置,但是通常典型地透過硬體和軟體組件的組合,可以在通用計算系統內配置來源裝置110和目的地裝置130中的每一個。圖2A顯示這樣的電腦系統200,其包括:電腦模組201;輸入裝置,例如鍵盤202、滑鼠指標裝置203、掃描器226、相機227(可以配置為視訊源112)和麥克風280;輸出裝置,包括印表機215、可以配置為顯示裝置136的顯示裝置214、和揚聲器217。電腦模組201可以使用外部調變器-解調器(數據機)收發器裝置216經由連接221與通訊網路220進行來回通訊。可以表示通訊通道120的通訊網路220可以是廣域網路(WAN),例如網際網路、蜂巢式電信網路或私人WAN。在連接221是電話線的情況下,數據機216可以是傳統的「撥號」數據機。可替代地,在連接221是大容量(例如,纜線或光)連接的情況下,數據機216可以是寬頻數據機。無線數據機也可以用於到通訊網路220的無線連接。收發器裝置216可以提供發送器116和接收器132的功能,並且通訊通道120可以實施在連接221中。
電腦模組201通常包括至少一個處理器單元205和記憶體單元206。例如,記憶體單元206可以具有半導體隨機存取記憶體(RAM)和半導體唯讀記憶體(ROM)。電腦模組201還包括多個輸入/輸出(I/O)介面,包括:耦合到視訊顯示器214的音訊-視訊介面207、揚聲器217和麥克風280;I/O介面213,耦合到鍵盤202、滑鼠203、掃描器226、相機227以及可選地操縱桿或其他人機介面裝置(未顯示);以及用於外部數據機216和印表機215的介面208。從音訊-視訊介面207到電腦監視器214的信號通常是電腦圖形卡的輸出。在一些實作中,數據機216可以被併入電腦模組201內,例如在介面208內。電腦模組201還具有本地網路介面211,其允許電腦系統200經由連接223耦合到本地區域通訊網路222,稱為區域網路(LAN)。如圖2A所示,本地通訊網路222還可以經由連接224耦合到廣域網路220,該連接通常會包括所謂的「防火牆」裝置或具有類似功能的裝置。本地網路介面211可以包括以太網(Ethernet™)電路卡、藍牙(Bluetooth™)無線配置或IEEE 802.11無線配置,然而,介面211可以實踐許多其他類型的介面。本地網路介面211也可以提供發送器116和接收器132的功能,並且通訊通道120也可以實施於本地通訊網路222中。
I/O介面208和213可以提供串列和平行連接中的一者或二者,前者通常根據通用串列匯流排(USB)標準來實作並且具有對應的USB連接器(未顯示)。提供儲存裝置209,並且通常包括硬碟驅動器(HDD)210。也可以使用其他儲存裝置,例如軟碟驅動器和磁帶驅動器(未顯示)。通常提供光碟驅動器212以用作資料的非揮發性源。例如,諸如光碟(例如,CD-ROM、DVD、藍光光碟(Blu ray Disc™))、USB-RAM、便攜式、外部硬碟驅動器和軟碟之類的便攜式記憶體裝置可以用作電腦系統200的適當資料源。通常,HDD 210、光碟驅動器212、網路220和222中的任何一個也可以配置為用作視訊源112,或用作要儲存的經解碼的視訊資料以透過顯示器214進行再生的目的地。系統100的來源裝置110和目的地裝置130可以實施於電腦系統200中。
電腦模組201的組件205至213通常經由互連的匯流排204進行通訊,並以導致相關技術人士已知的電腦系統200的習用操作模式進行通訊。例如,處理器205使用連接218耦合到系統匯流排204。類似地,記憶體206和光碟驅動器212透過連接219耦合到系統匯流排204。可以在其上實踐所描述的配置的電腦的示例包括IBM-PC及其相容產品、Sun SPARCstation、Apple Mac™或類似的電腦系統。
在適當或期望的情況下,可以使用電腦系統200來實作視訊編碼器114和視訊解碼器134以及以下描述的方法。尤其是,所描述的視訊編碼器114、視訊解碼器134及其方法可以被實作為在電腦系統200內可執行的一或多個軟體應用程式233。特別地,所描述的視訊編碼器114、視訊解碼器134及步驟由在電腦系統200內執行的軟體233中的指令231(參見圖2B)實作。軟體指令231可以被形成為一或多個碼模組,每個碼模組用於執行一或多個特定任務。該軟體還可以分為二個單獨的部分,其中第一部分和對應的碼模組執行所描述的方法,第二部分和對應的碼模組管理第一部分和用戶之間的用戶介面。
例如,軟體可以被儲存在包括以下描述的儲存裝置的電腦可讀媒體中。該軟體從電腦可讀媒體被載入到電腦系統200中,然後由電腦系統200執行。具有記錄在電腦可讀媒體上的這種軟體或電腦程式的電腦可讀媒體是電腦程式產品。在電腦系統200中使用電腦程式產品較佳地產生用於實作視訊編碼器114、視訊解碼器134和所描述的方法的有利設備。
軟體233通常儲存在HDD 210或記憶體206中。該軟體從電腦可讀媒體載入到電腦系統200中,並由電腦系統200執行。因此,例如,軟體233可以將其儲存在由光碟驅動器212讀取的光學可讀磁碟儲存媒體(例如,CD-ROM)225上。
在某些情況下,可以將應用程式233編碼於一或多個CD-ROM 225後提供給用戶,並透過對應的驅動器212讀取,或者可以由用戶從網路220或222中讀取。此外,軟體也可以從其他電腦可讀媒體載入到電腦系統200中。電腦可讀儲存媒體是指將記錄的指令及/或資料提供給電腦系統200供執行及/或處理之用的任何非暫態有形儲存媒體。這種儲存媒體的示例包括軟碟、磁帶、CD-ROM、DVD、藍光光碟、硬碟驅動器、ROM或積體電路、USB記憶體、磁光碟或電腦可讀卡,例如PCMCIA卡等,無論這些裝置是在電腦模組201的內部還是外部。也可參與軟體、應用程式、指令及/或視訊資料或編碼的視訊資料到電腦模組401之提供的暫態性或非有形的電腦可讀傳輸媒體的示例包括無線電或紅外傳輸通道、以及到另一台電腦或連網裝置的網路連接,以及包括電子郵件傳輸和網站上記錄的資訊以及類似者的Internet或Intranet。
應用程式233的第二部分和以上提到的對應碼模組可以被執行以實作一或多個要在顯示器214上呈現或以其他方式表示的圖形用戶介面(GUI)。透過通常對鍵盤202和滑鼠203的操縱,電腦系統200和應用程式的用戶可以以功能上適應的方式操縱介面,以向與GUI相關聯的應用程式提供控制命令及/或輸入。也可以實作其他形式的功能適應性用戶介面,例如利用經由揚聲器217輸出的語音提示和經由麥克風280輸入的用戶語音命令的音訊介面。
圖2B是處理器205和「記憶體」234的詳細示意方塊圖。記憶體234表示可以被圖2A中的電腦模組201存取的所有記憶體模組(包括HDD 209和半導體記憶體206)的邏輯聚合。
當電腦模組201最初被供電時,執行開機自我檢測(power-on self-test,POST)程式250。POST程式250通常儲存在圖2A的半導體記憶體206的ROM 249中。諸如儲存軟體的ROM 249之類的硬體裝置有時被稱為韌體。POST程式250檢查電腦模組201中的硬體以確保其正常運行,並通常檢查處理器205、記憶體234(209、206)和基本輸入輸出系統軟體(BIOS)模組251,這些模組通常也儲存在ROM 249中以供正確操作。一旦POST程式250已經成功運行,BIOS 251就啟動圖2A的硬碟驅動器210。硬碟驅動器210的啟動使駐留在硬碟驅動器210上的啟動載入程式252透過處理器205執行。這將作業系統253載入到RAM記憶體206中,作業系統253由此開始運行。作業系統253是可由處理器205執行的系統級應用程式,以完成各種高階功能,包括處理器管理、記憶體管理、裝置管理、儲存管理、軟體應用程式介面和通用用戶介面。
作業系統253管理記憶體234(209、206)以確保在電腦模組201上運行的每個程序或應用程式都具有足夠的執行記憶體,而不會與分配給另一個程序的記憶體衝突。此外,必須正確地使用圖2A的電腦系統200中可用的不同類型的記憶體,以便每個程序可以有效地運行。因此,聚合記憶體234並非旨在顯示如何分配記憶體的特定段(除非另有說明),而是旨在提供電腦系統200可存取的記憶體的總體觀點以及如何使用記憶體。
如圖2B所示,處理器205包括多個功能模組,包括控制單元239、算術邏輯單元(ALU)240和局部或內部記憶體248,有時稱為快取記憶體。快取記憶體248通常在暫存器部分中包括多個儲存暫存器244-246。一或多個內部匯流排241在功能上互連這些功能模組。處理器205通常還具有一或多個介面242,用於使用連接218經由系統匯流排204與外部裝置進行通訊。記憶體234使用連接219耦合至匯流排204。
應用程式233包括指令231序列,其可以包括條件分支和迴路指令。程式233還可包括在程式233的執行中使用的資料232。指令231和資料232分別儲存在記憶體位置228、229、230和235、236、237中。取決於指令231和記憶體位置228-230的相對大小,可以將特定指令儲存在單一記憶體位置中,如在記憶體位置230中所示的指令所描繪的。可替換地,可以將指令分段為多個部分,每個部分儲存在一個單獨的記憶體位置中,如記憶體位置228和229中所示的指令段所示。
通常,給處理器205一組在其中執行的指令。處理器205等待隨後的輸入,處理器205透過執行另一組指令對之作出反應。可以從多個源中的一或多個中提供每個輸入,包括由輸入裝置202、203中的一或多個產生的資料、透過網路220、202中的一個而從外部源接收的資料、從儲存裝置206、209中的一個所獲取的資料,或從插入到對應讀取器212中的儲存媒體225中所檢索到的資料都在圖2A中顯示。在某些情況下,一組指令的執行可能會導致資料輸出。執行還可以牽涉將資料或變數儲存到記憶體234。
視訊編碼器114,視訊解碼器134和所描述的方法可以使用輸入變數254,這些輸入變數254被儲存在記憶體234中對應的記憶體位置255、256、257。視訊編碼器114、視訊解碼器134和所描述的方法產生輸出變數261,其被儲存在記憶體234中對應的記憶體位置262、263、264中。中間變數258可以被儲存在記憶體位置259、260、266和267中。
參照圖2B的處理器205,暫存器244、245、246、算術邏輯單元(ALU)240和控制單元239共同工作以執行針對構成程式233的指令集中的每個指令執行「獲取、解碼並執行」週期所需的微運算序列。每個獲取,解碼和執行週期包括: 獲取操作,其從記憶體位置228、229、230獲取或讀取指令231; 解碼操作,其中控制單元239確定已經提取了哪個指令;以及 執行操作,其中控制單元239及/或ALU 240執行指令。
此後,可以執行下一指令的進一步的獲取、解碼和執行週期。類似地,可以執行儲存週期,控制單元239透過該儲存週期將值儲存或寫入值到記憶體位置232。
在圖13-16的之待被描述的方法中的每個步驟或子程序可以與程式233的一或多個段相關聯,並且通常由處理器205中的暫存器部分244、245、247,ALU 240和控制單元239共同執行以針對程式233的所指出的段的指令集中的每個指令執行獲取、解碼和執行週期。
圖3是顯示視訊編碼器114的功能模組的示意方塊圖。圖4是顯示視訊解碼器134的功能模組的示意方塊圖。通常,資料在視訊編碼器114和視訊解碼器134內的功能模組間以樣本或係數的組的形式,諸如將塊劃分為固定大小的子塊或以陣列的形式傳遞資料。可以使用通用電腦系統200來實作視訊編碼器114和視訊解碼器134,如圖2A和2B所示,其中各種功能模組可以由電腦系統200內的專用硬體,由電腦系統200內可執行的軟體,例如駐留在硬碟驅動器205上且由處理器205控制其執行的軟體應用程式233的一或多個軟體碼模組來實作。替代地,視訊編碼器114和視訊解碼器134可以由在電腦系統200內可執行的專用硬體和軟體的組合來實作。視訊編碼器114、視訊解碼器134所描述的方法可替代地在專用硬體中實作,諸如執行所描述的方法的功能或子功能的一或多個積體電路。此類專用硬體可以包括圖形處理單元(GPU)、數位信號處理器(DSP)、專用標準產品(ASSP)、特殊應用積體電路(ASIC)、現場可編程閘陣列(FPGA)或一或多個微處理器,以及相關的記憶體。特別地,視訊編碼器114包括模組310-386,並且視訊解碼器134包括模組420-496,每個模組可以被實作為軟體應用程式233的一或多個軟體碼模組。
儘管圖3的視訊編碼器114是通用視訊編碼(VVC)視訊編碼管道的示例,但是其他視訊編解碼器也可以用於執行本文所述的處理階段。視訊編碼器114接收捕獲的框資料113,例如一系列框,每個框包括一或多個顏色通道。框資料113包括以「色度格式」排列的亮度(「亮度通道」)和色度(「色度通道」)樣本的二維陣列,例如4:0:0、4:2:0、4:2:2或4:4:4色度格式。塊分隔器310首先將框資料113劃分為CTU,CTU通常為正方形並且被配置為使得使用CTU的特定大小。CTU的大小例如可以是64×64、128×128或256×256亮度樣本。
塊分隔器310還在共享編碼樹分成亮度和色度分支的點處根據共享編碼樹或亮度編碼樹和色度編碼樹將每個CTU劃分為一或多個CU。亮度通道也可以稱為原色通道。每個色度通道也可以稱為二次顏色通道。CU具有各種尺寸,並且可以包括正方形和非正方形的縱橫比。參照圖13和14進一步描述塊分隔器310的操作。但是,在VVC標準中,CU/CB、PU/PB和TU/TB的邊長始終是2的冪。因此,從塊分隔器310輸出表示為312的目前CU,其根據CTU的共享樹或亮度編碼樹和色度編碼樹,根據對CTU的一或多個塊的迭代而進行。以下參考圖5和6進一步描述用於將CTU劃分成CB的選項。
可以按照光柵掃描順序來掃描由框資料113的第一劃分產生的CTU,並且可以將其分組為一或多個「片段」。片段可能是「內部」(或「I」)片段。內部片段(I片段)不包含框間預測的CU,例如,僅使用框內預測。或者,可以單片或雙片預測片段(分別為「P」或「B」片),表示一或二個參考塊用於預測CU的其他可用性,稱為「單片預測」和「雙片預測」。
在I片段中,每個CTU的編碼樹可以在64×64級別以下分成二個單獨的編碼樹,一個用於亮度,另一個用於色度。使用單獨的樹允許在CTU的亮度64×64區域內的亮度和色度之間存在不同的塊結構。例如,大色度CB可以與許多較小的亮度CB並置,反之亦然。在P或B片段中,CTU的單一編碼樹定義了亮度和色度共同的塊結構。單一樹的所得塊可以是框內預測的或框間預測的。
對於每個CTU,視訊編碼器114分二個階段進行操作。在第一階段(稱為「搜尋」階段),塊分隔器310測試編碼樹的各種潛在配置。編碼樹的每個可能配置都有關聯的「候選」CU。第一階段牽涉測試各種候選CU,以選擇提供相對較高壓縮效率和相對較低失真的CU。該測試通常牽涉拉格朗日最佳化(Lagrangian optimisation),由此基於速率(編碼成本)和失真(關於輸入框資料113的誤差)的加權組合來評估候選CU。選擇「最佳」候選CU(具有最低評估速率/失真的CU)以用於隨後編碼到位元流115中。候選CU的評估中包括對給定區域使用CU或根據各種分裂選項進一步劃分區域的選項,並使用CU對每個較小的所得區域編碼,或者進一步分裂區域。結果,在搜尋階段選擇編碼樹和CU本身。
視訊編碼器114為每個CU(例如,CU 312)產生由箭頭320指示的預測塊(PU)。PU320是相關聯的CU 312的內容的預測。減法器模組322在PU 320和CU 312之間產生表示為324的差異(或「殘差」,指的是在空間域中的差異)。差值324是PU 320和CU 312中對應樣本之間的差異的塊大小的陣列,並為CU 312的每個顏色通道產生。當要執行一次和(可選)二次變換時,差值324在模組326和330中進行變換,以透過多工器333傳遞到量化器模組334,以用於進行量化。當要跳過變換時,差值324直接透過多工器333傳遞到量化器模組334進行量化。對於與CU 312相關聯的每個TB獨立進行變換和變換跳過之間的選擇。所得量化殘差係數表示為TB(針對CU 312的每個顏色通道),由箭頭336表示。PU320和相關的TB 336通常從許多可能的候選CU之一中選擇,例如基於評估成本或失真。
候選CU是從視訊編碼器114可用於相關聯的PB的預測模式之一和所得殘差得到的CU。當與視訊解碼器114中的預測的PB組合時,在變換回空間域之後添加TB 336減少解碼的CU與原始CU 312之間的差異,以位元流的附加信令為代價。
每個候選編碼塊(CU),即預測塊(PU)與CU的每個顏色通道的一個變換塊(TB)組合,因此具有關聯的編碼成本(或「速率」)和關聯的差異(或「失真」)。通常將CU的失真估計為樣本值的差異,例如絕對差異之和(SAD)或平方差異之和(SSD)。可以由模式選擇器386使用差值324確定從每個候選PU得到的估計,以確定預測模式387。預測模式387指示對目前CU使用特定預測模式的決定,例如框內預測或框間預測。對於屬於共享編碼樹的框內預測CU,為亮度PB與色度PB指定獨立的框內預測模式。對於屬於雙編碼樹的亮度或色度分支的框內預測CU,一種框內預測模式分別應用於亮度PB或色度PB。可以以比殘差的熵編碼低得多的成本來進行估計與每個候選預測模式和對應的殘差編碼相關聯的編碼成本。因此,即使在即時視訊編碼器中,也可以評估多個候選模式以在速率失真的意義上確定最佳模式。
拉格朗日或類似的最佳化處理可以被用來選擇CTU到CB的最佳劃分(透過塊分隔器310)以及從多個可能的預測模式中選擇最佳預測模式。透過在模式選擇器模組386中應用候選模式的拉格朗日最佳化程序、框內預測模式387、二次變換索引388和一次變換類型389、以及變換跳過旗標390(每個TB一個),選擇了最低成本計量。
在視訊編碼器114的操作的第二階段(稱為「編碼」階段)中,在視訊編碼器114中執行對所確定的每個CTU的編碼樹的迭代。對使用單獨的樹的CU而言,對於CTU的每個64×64亮度區域,首先對亮度編碼樹編碼,然後對色度編碼樹編碼。在亮度編碼樹內,僅亮度CB被編碼,而在色度編碼樹內,僅色度CB被編碼。對於使用共享樹的CTU而言,單一樹根據共享樹的公共塊結構描述了CU,即亮度CB和色度CB。
熵編碼器338支援語法元素的可變長度編碼和語法元素的算術編碼。諸如「參數集」的位元流的某些部分,例如序列參數集(SPS)、圖片參數集(PPS)和圖片標頭(PH),使用固定長度碼字和可變長度碼字的組合。片段(也稱為連續部分)具有片段標頭,該標頭使用可變長度編碼後接使用算術編碼的片段資料。圖片標頭定義了特定於目前片段的參數,例如圖片級量化參數偏移量。片段資料包括片段中每個CTU的語法元素。可變長度編碼和算術編碼的使用要求在位元流的每個部分內進行順序解析。可以用起始碼來描述這些部分,以形成「網路抽象層單元」或「NAL單元」。使用上下文自適應二元算術編碼程序來支援算術編碼。算術編碼的語法元素由一或多個「容器(bin)」的序列組成。像位元一樣,bin的值為「0」或「1」。但是,bin在位元流115中沒有被編碼為離散位元。bin具有關聯的預測(或「可能」或「最可能」)值和關聯的機率,稱為「上下文」。當要編碼的實際bin與預測值匹配時,將編碼「最可能的符號」(MPS)。就位元流115中的消耗的位元而言,編碼最可能的符號相對便宜,包括總計不到一個離散位元的成本。當要編碼的實際bin與可能的值不匹配時,將編碼「最小可能符號」(LPS)。就所消耗的位元而言,編碼最不可能的符號具有相對較高的成本。bin編碼技術使得能夠對「0」與「1」的機率偏斜的bin進行高效編碼。對於具有二個可能值(即「旗標」)的語法元素,單一bin就足夠了。對於具有許多可能值的語法元素,需要一序列的bin。
可基於序列中較早的容器的值來確定序列中較後的容器的存在。另外,每個bin可與一個以上上下文相關聯。特定上下文的選擇可以取決於語法元素中的較早的bin,相鄰語法元素的bin值(即,來自相鄰塊的bin值)等。每次對上下文編碼的bin編碼時,以反映新bin值的方式更新為該bin選擇的上下文(如果有)。如此,二元算術編碼方案被認為是自適應的。
視訊編碼器114還支援缺少上下文的bin(「旁路bin」)。假設「0」與「1」之間的等機率分佈,則對旁路bin進行了編碼。因此,每個bin在位元流115中具有一位元的編碼成本。缺少上下文節省了記憶體並降低了複雜性,因此在不偏斜特定bin的值的分佈的情況下使用了旁路bin。使用上下文和自適應的熵編碼器的一個示例在本領域中被稱為CABAC(上下文自適應二元算術編碼器),並且該編碼器的許多變體已經被用於視訊編碼中。
熵編碼器338使用上下文的組合來對一次變換類型389、目前CU的每個TB的一個變換跳過旗標(即390)、以及二次變換索引388(如果適用於目前CU),使用上下文編碼和旁路編碼的bin,以及框內預測模式387進行編碼。當與變換塊關聯的殘差僅在那些透過應用二次變換為一次係數的係數位置中包括重要殘差係數時,用信號發送二次變換索引388。
多工器模組384根據從每個候選CB的測試預測模式中選擇的確定的最佳框內預測模式,從框內預測模組364輸出PB 320。候選預測模式不必包括視訊編碼器114所支援的每種可能的預測模式。框內預測分為三種類型。「DC框內預測」牽涉用單一值填充PB,該值代表附近重建樣本的平均值。「平面框內預測」牽涉根據平面用樣本填充PB,其中DC偏移以及垂直和水平梯度是從附近重建的鄰近樣本中得出的。附近的重建樣本通常包括目前PB上方的一列重建樣本,向PB的右側延伸一定程度,以及一行重建的樣本,位於目前PB的左側,向下延伸超過PB一定程度。「角度框內預測」牽涉使用在特定方向(或「角度」)上透過PB過濾並傳播的重建相鄰樣本填充PB。在VVC中,支援65個角度,矩形塊能夠利用方形塊不可用的其他角度來產生總共87個角度。第四類框內預測可用於色度PB,從而根據「跨分量線性模型」(CCLM)模式從並置的亮度重建樣本產生PB。共有三種不同的CCLM模式,每種模式都使用從相鄰亮度和色度樣本衍生的不同模型。導出的模型用於從並置的亮度樣本中為色度PB產生樣本塊。
在先前重建的樣本不可用的地方,例如在框的邊緣,使用樣本範圍一半的預設半色調值。例如,對於10位元視訊,使用值512。由於先前沒有樣本可用於位於框左上角位置的CB,因此角度和平面框內預測模式會產生與DC預測模式相同的輸出,即以半色調值為幅度的樣本的平面。
對於框間預測,透過運動補償模組380使用來自位元流的編碼順序框中的目前框之前的一框或二框的樣本來產生預測塊382,並由多工器模組384將其輸出為PB 320。此外,對於框間預測,通常將單一編碼樹用於亮度通道和色度通道。位元流編碼框的順序可能不同於捕獲或顯示時的框順序。當將一框用於預測時,該塊被稱為「單預測」,並且具有一個關聯的運動向量。當使用二個框進行預測時,該塊被稱為「雙預測」,並且具有二個關聯的運動向量。對於P片段,每個CU可以是框內預測的或單預測的。對於B片段,每個CU可以是框內預測的、單預測的或雙預測的。框通常使用「圖片組」結構編碼,從而實現框的時間層次結構。可以將框分為多個片段,每個片段都對框的一部分編碼。框的時間層次結構允許框按照顯示框的順序引用前面和後面的圖片。以確保滿足解碼每個框的依賴性的必要順序對影像編碼。
根據運動向量378和參考圖片索引來選擇樣本。運動向量378和參考圖片索引適用於所有顏色通道,因此,主要根據對PU而不是對PB的操作描述框間預測,即,使用單一編碼樹描述將每個CTU分解為一或多個框間預測塊。框間預測方法的運動參數數量及其精度可能有所不同。運動參數通常包括參考框索引,該參考框索引指示要使用參考框列表中的哪個參考框以及每個參考框的空間變換,但是可以包括更多框、特殊框或複雜仿射(affine)參數,例如 作為縮放和旋轉。另外,預定運動細化程序可以被應用以基於參考樣本塊來產生密集運動估計。
已經確定並選擇PU 320,並且在減法器322處從原始樣本塊中減去PU 320,獲得編碼成本最低的殘差(表示為324),並進行有損壓縮。有損壓縮程序包括變換、量化和熵編碼的步驟。正向一次變換模組326將正向變換應用於差值324,將差值324從空間域變換到頻域,並根據一次變換類型389產生由箭頭328表示的一次變換係數。最大的一次變換一維的大小是32點DCT-2或64點DCT-2變換。如果被編碼的CB大於表示為塊大小的最大支援的一次變換大小,即64×64或32×32,則以分塊方式應用一次變換326以變換差值324的所有樣本。變換的各應用在大於32×32的差值324的TB上進行操作,例如在64×64中,在TB的左上32×32區域之外的所有得到的一次變換係數328被設定為零,即被丟棄。對於大小最大為32×32的TB,一次變換類型389可指示水平和垂直DST-7和DCT-8變換的組合的應用。其餘的一次變換係數328被傳遞到正向二次變換模組330。
二次變換模組330根據二次變換索引388產生二次變換係數332。二次變換係數332由模組334根據與CB關聯的量化參數進行量化以產生殘差係數336。變換跳過旗標390指示針對TB啟用變換跳過時,差值324透過多工器333傳遞到量化器334。
模組326的正向一次變換通常是可分離的,從而變換每個TB的一組列,然後一組行。正向一次變換模組326在水平和垂直方向上使用II型離散餘弦變換(DCT-2),或者對於亮度TBS,根據一次變換類型389,在水平或垂直方向上使用VII型離散正弦變換(DST-7)和類型-VIII離散餘弦變換(DCT-8)的組合。將DST-7和DCT-8的組合使用稱為「多變換選擇集」(MTS)在VVC標準中。當使用DCT-2時,最大TB大小為32×32或64×64,可在視訊編碼器114中配置並在位元流115中用信號發送。無論配置的最大DCT-2變換大小如何,僅TB的左上32×32區域中的係數被編碼到位元流115中。TB左上32×32區域以外的任何重要係數都被丟棄(或「清零」),並且不編碼在位元流115中。MTS僅適用於尺寸最大為32×32的CU,並且僅對相關聯的亮度TB左上16×16區域中的係數編碼。根據對應的變換跳過旗標390,對CU的各個TB進行變換或旁路。
模組330的正向二次變換通常是不可分離的變換,其僅應用於框內預測的CU的殘差並且仍然可以被旁路。正向二次變換對16個樣本(配置為一次變換係數328的左上4×4子塊)或48個樣本(配置為一次變換係數328的左上8×8的三個4×4子塊)進行操作的係數產生一組二次變換係數。一組二次變換係數的數量可以少於從其導出的一組初變換係數的數量。由於僅將二次變換應用於彼此相鄰且包括DC係數的一組係數,所以二次變換被稱為「低頻不可分離二次變換」(LFNST)。
殘差係數336被提供給熵編碼器338,以便在位元流115中編碼。通常,根據掃描圖樣,掃描具有TU的至少一個重要殘差係數的每個TB的殘差係數,以產生有序的值列表。掃描圖樣通常按4×4個「子塊」序列掃描TB,以4×4組殘差係數的粒度提供習用掃描操作,子塊的排列取決於TB大小。每個子塊內的掃描以及從一個子塊到下一個子塊的行程通常遵循向後對角線掃描圖樣。
如上所述,視訊編碼器114需要存取與在視訊解碼器134中看到的解碼的框表示相對應的框表示。因此,殘差係數336被傳遞到去量化器340以產生去量化的殘差係數342。將經量化的殘差係數342傳遞到反向二次變換模組344,該反向二次變換模組根據二次變換索引388進行操作以產生中間反向變換係數,如箭頭346所示。中間反向變換係數346被傳遞到反向一次變換模組348,以產生由TU的箭頭399表示的殘差樣本。如果變換跳過390指示要執行變換旁路,則由多工器349將經量化的殘差係數342作為殘差樣本350輸出。否則,多工器349輸出殘差樣本399作為殘差樣本350。
由反向二次變換模組344執行的反向變換的類型對應於由正向二次變換模組330執行的正向變換的類型。由反向一次變換模組348執行的反向變換的類型對應於由一次變換模組326執行的一次變換。求和模組352將殘差樣本350和PU 320相加以產生CU的重建樣本(由箭頭354指示)。
將重建的樣本354傳遞到參考樣本快取356和迴路內濾波模組368。通常使用ASIC上的靜態RAM來實作的參考樣本快取356(從而避免昂貴的晶片外記憶體存取)提供最小的樣本儲存需要滿足為框中後續CU產生框內PB的依賴性。最小相關性通常包括沿CTU列底部的樣本「行緩衝區」,以供下一列CTU使用,並且行緩衝的程度由CTU的高度設定。參考樣本快取356將參考樣本(由箭頭358表示)提供給參考樣本濾波器360。樣本濾波器360應用平滑操作以產生經濾波的參考樣本(由箭頭362指示)。框內預測模組364使用經濾波的參考樣本362來產生由箭頭366表示的框內預測樣本。對於每種候選框內預測模式,框內預測模組364都會產生樣本塊,即樣本塊366。樣本塊366是由模組364根據框內預測模式387使用諸如DC、平面或角度框內預測之類的技術產生的。
迴路內濾波模組368將幾個濾波級應用於重建的樣本354。濾波級包括「解塊濾波器」(DBF),該「解塊濾波器」將平滑化對準應用於CU邊界以減少由不連續導致的偽像。迴路內濾波模組368中存在的另一個濾波級是「自適應迴路內濾波器」(ALF),其應用基於維納(Wiener-based)的自適應濾波器來進一步減小失真。迴路內濾波模組368中的另一可用濾波級是「樣本自適應偏移」(SAO)濾波器。SAO濾波器的工作方式是,首先將重建樣本分為一或多個類別,然後根據分配的類別在樣本級別應用偏移。
由箭頭370表示的經濾波的樣本從迴路內濾波模組368輸出。經濾波的樣本370被儲存在框緩衝器372中。框緩衝器372通常具有儲存多個(例如,高達16)的圖片的容量,因此被儲存在記憶體206中。由於所需的大的記憶體消耗,通常不使用晶片上記憶體來儲存框緩衝器372。如此,就記憶體頻寬而言,對框緩衝器372的存取是昂貴的。框緩衝器372將參考框(由箭頭374表示)提供給運動估計模組376和運動補償模組380。
運動估計模組376估計多個「運動向量」(指示為378),每個是相對於目前CB的位置的笛卡爾空間偏移,參考框緩衝器372中的參考框之一中的塊。為每個運動向量產生參考樣本的經濾波的塊(表示為382)。經濾波的參考樣本382形成可用於模式選擇器386進行電位選擇的其他候選模式。此外,對於給定的CU,PU 320可使用一個參考塊(「單預測」)形成,或可使用二個參考塊(「雙預測」)形成。對於所選擇的運動向量,運動補償模組380根據支援運動向量中的子像素精度的濾波處理來產生PB 320。如此,與運動補償模組380(僅對選定候選者進行操作)相比,運動估計模組376(對許多候選運動向量進行操作)可以執行簡化的濾波處理,從而降低了計算複雜度。當視訊編碼器114選擇用於CU的框間預測時,運動向量378被編碼到位元流115中。
儘管參考通用視訊編碼(VVC)描述了圖3的視訊編碼器114,但是其他視訊編碼標准或實作也可以採用模組310-386的處理階段。框資料113(和位元流115)也可以從記憶體206、硬碟驅動器210、CD-ROM,藍光光碟或其他電腦可讀儲存媒體中讀取(或寫入)。另外,框資料113(和位元流115)可以從諸如連接到通訊網路220的伺服器或射頻接收器之類的外部源接收(或將其發送到)。
圖4中顯示視訊解碼器134。儘管圖4的視訊解碼器134是通用視訊編碼(VVC)視訊解碼管線的示例,但是其他視訊編解碼器也可以用於執行本文所述的處理階段。如圖4所示,位元流133被輸入到視訊解碼器134。可以從記憶體206、硬碟驅動器210、CD-ROM、藍光光碟或其他非暫態電腦可讀儲存媒體中讀取位元流133。替代地,可以從諸如連接到通訊網路220的伺服器或射頻接收器的外部源接收位元流133。位元流133包含表示要解碼的捕獲框資料的編碼語法元素。
位元流133被輸入到熵解碼器模組420。熵解碼器模組420透過解碼「bins」序列從位元流133中提取語法元素,並將語法元素的值傳遞到視訊解碼器134中的其他模組。熵解碼器模組420使用可變長度和固定長度解碼來對SPS、PPS或片段標頭解碼,並使用算術解碼引擎將片段資料的語法元素解碼為一或多個bin的序列。每個bin可以使用一或多個「上下文」,並在上下文中描述用於為bin編碼「一」和「零」值的機率級別。對於給定的bin有多個上下文可用的地方,執行「上下文建模」或「上下文選擇」步驟以選擇可用的上下文之一來解碼bin。
熵解碼器模組420應用算術編碼算法,例如「上下文自適應二元算術編碼」(CABAC),以對來自位元流133的語法元素解碼。解碼的語法元素用於在視訊解碼器134內重建參數。參數包括殘差係數(由箭頭424表示)、量化參數(未顯示)、二次變換索引474以及諸如框內預測模式之類的模式選擇資訊(由箭頭458表示)。模式選擇資訊還包括諸如運動向量以及將每個CTU劃分為一或多個CU的資訊。參數通常與先前解碼的CB的樣本資料結合使用來產生PB。
殘差係數424被傳遞到去量化器模組428。去量化器模組428對殘差係數424執行反向量化(或「縮放」),即在一次變換係數域中,以創建重建的變換係數,由箭頭432表示。重建的變換係數432被傳遞到反向二次變換模組436。反向二次變換模組436根據二次變換類型474執行應用二次變換或者不執行操作(旁路),熵解碼器420根據參考圖15和圖16描述的方法從位元流113解碼。反向二次變換模組436產生重建的變換係數440,即一次變換域係數。
將重建的變換係數440傳遞到反向一次變換模組444。模組444根據一次變換類型476(或「mts_idx」)從由熵解碼器420解碼的位元流133,將係數440從頻域變換回空間域。模組444的操作結果是由箭頭499表示的殘差樣本的塊。當針對CU的給定TB的變換跳過旗標478指示旁路變換時,多工器449將重建的變換係數432作為殘差樣本488輸出到求和模組450。否則,多工器449將殘差樣本499作為殘差樣本488輸出。殘差樣本448的塊的大小等於對應的CB。殘差樣本448被提供給求和模組450。在求和模組450處,殘差樣本448被添加到解碼的PB(表示為452)以產生由箭頭456表示的重建樣本的塊。重建的樣本456樣本被提供給重建樣本快取460和迴路內濾波模組488。迴路內濾波模組488產生框樣本(表示為492)的重建塊。框樣本492被寫入框緩衝器496,從框緩衝器496稍後輸出框資料135。
重建樣本快取460與視訊編碼器114的重建樣本快取356類似地操作。重建樣本快取460為框內預測後續CB所需的重建樣本提供儲存,而無需借助存取記憶體206(例如,反而透過使用資料232,其通常是晶片上記憶體)。從重建樣本快取460中獲得由箭頭464表示的參考樣本,並將其提供給參考樣本濾波器468,以產生由箭頭472指示的經濾波的參考樣本。經濾波的參考樣本472被提供給框內預測模組476。模組476根據在位元流133中用信號通知並由熵解碼器420解碼的框內預測模式參數458產生由箭頭480表示的框內預測樣本的塊。根據框內預測模式458,使用諸如DC、平面或角度框內預測的模式來產生樣本480的塊。
當指示CB的預測模式在位元流133中使用框內預測時,框內預測樣本480透過多工器模組484形成解碼的PB452。框內預測產生樣本的預測塊(PB),也就是說,使用同一顏色分量中的「相鄰樣本」得出的一個顏色分量中的一個塊。相鄰樣本是與目前塊相鄰的樣本,並且由於以塊解碼順序在前而已被重建。在亮度和色度塊並置的情況下,亮度和色度塊可以使用不同的框內預測模式。但是,二個色度CB共享相同的框內預測模式。
當在位元流133中將CB的預測模式指示為框間預測時,運動補償模組434使用運動向量(從位元流133,由熵解碼器420解碼)和參考框索引以選擇和過濾來自框緩衝器496的樣本498的塊產生框間預測的樣本(表示為438)的塊。樣本498的塊是從儲存在框緩衝器496中的先前解碼的框獲得的。對於雙預測,產生樣本的二個塊並將其混合在一起以產生用於解碼的PB 452的樣本。對框緩衝器496填充來自迴路內濾波模組488的經濾波的塊資料492。與視訊編碼器114的迴路內濾波模組368一樣,迴路內濾波模組488應用DBF、ALF和SAO濾波操作中的任何一個。通常,儘管在亮度和色度通道中用於子樣本插值的濾波程序是不同的,但是運動向量被應用於亮度和色度通道。
圖5是示意性方塊圖,顯示在通用視訊編碼的編碼樹結構的每個節點中將區劃分成一或多個子區的可用劃分或集合的集合500。集合500中所示的劃分可用於編碼器114的塊分隔器310,以根據由拉格朗日最佳化確定的編碼樹,將每個CTU劃分為一或多個CU或CB,如參考圖3所述。
儘管集合500僅顯示將正方形區劃分為其他可能的非正方形子區,但是應當理解,集合500顯示將編碼樹中的父節點潛在地劃分成編碼樹子節點的可能性,並且不需要父節點對應於正方形區。如果包含區是非正方形的,則根據包含塊的縱橫比來縮放由分裂產生的塊的尺寸。一旦不再進一步分裂區,即在編碼樹的葉節點,CU就會佔用該區。
當所得的子區達到最小CU尺寸(通常為4×4亮度樣本)時,將區細分為子區的程序終止。除了約束CU以禁止小於預定最小尺寸(例如16個樣本)的塊區之外,CU還被約束為具有為四的最小寬度或高度。在寬度和高度方面或者在寬度或高度方面的其他最小值也是可能的。細分程序也可能在最深層次的分解之前終止,從而導致CU大於最小CU大小。可能不會發生分裂,從而導致單一CU佔用整個CTU。佔據整個CTU的單一CU是最大的可用編碼單元大小。由於使用諸如4:2:0的次取樣的色度格式,視訊編碼器114和視訊解碼器134的配置可以比色度通道中的色度通道中的區分裂更早終止,包括在共享編碼樹定義亮度和色度通道的塊結構的情況下。當將單獨的編碼樹用於亮度和色度時,對可用分裂操作的限制確保最小色度CU區域為16個樣本,即使此類CU與較大的亮度區域並置,例如64個亮度樣本。
在編碼樹的葉節點處存在CU。例如,葉節點510包含一個CU。在編碼樹的非葉節點處,存在一個分為二個或更多其他節點的分裂(split),每個節點可以是形成一個CU的葉節點,也可以是包含進一步分裂成較小區的非葉節點。在編碼樹的每個葉節點上,對於編碼樹的每個顏色通道都存在一個CB。對於共享樹中的亮度和色度,終止於相同深度的分裂會導致一個CU具有三個並置的CB。
四元樹分裂512將包含區劃分為四個相等大小的區,如圖5所示。與HEVC相比,通用視訊編碼(VVC)透過額外的分裂實現了額外的靈活性,包括水平二元分裂514和垂直二元分裂516。分裂514和516的每一個將包含區分成二個相等大小的區。分裂是沿著包含塊內的水平邊界(514)或垂直邊界(516)。
透過添加三元水平分裂518和三元垂直分裂520,在通用視訊編碼中獲得了更大的靈活性。三元分裂518和520將塊沿包含區寬度或高度的¼和¾劃分為水平(518)或垂直(520)界定的三個區。四元樹、二元樹和三元樹的組合稱為「QTBTTT」。樹的根包括零或多個四元樹分裂(樹的「QT」部分)。QT部分終止後,可能會發生零或多個二元或三元分裂(樹的「多樹」或「MT」部分),最終以樹的葉節點處的CB或CU結束。在樹描述所有顏色通道的地方,樹節點是CU。在樹描述亮度通道或色度通道的地方,樹葉節點是CB。
與僅支援四元樹並因此僅支援正方形塊的HEVC相比,QTBTTT導致更多可能的CU大小,特別是考慮到二元樹及/或三元樹分裂的可能遞迴應用。當只有四元樹分裂可用時,編碼樹深度的每次增加都對應於CU大小減小到父區域大小的四分之一。在VVC中,二元和三元分裂的可用性意味著編碼樹深度不再直接對應於CU區域。透過限制分裂選項以消除可能導致塊寬度或高度小於四個樣本或不是四個樣本的倍數的分裂,可以減少異常(非正方形)塊大小的可能性。
圖6是顯示在通用視訊編碼中使用的QTBTTT (或「編碼樹」)結構的資料流600的示意性流程圖。QTBTTT結構用於每個CTU,以將CTU劃分為一或多個CU。每個CTU的QTBTTT結構由視訊編碼器114中的塊分隔器310確定,並由視訊解碼器134中的熵解碼器420編碼到位元流115中或從位元流133解碼。資料流600進一步表徵根據圖5中所示的劃分,可用於塊分隔器310的允許的組合,以將其用於將CTU劃分為一或多個CU。
從層次結構的最高層開始,即在CTU處,首先執行零或多個四元樹劃分。具體地,由塊分隔器310做出四元樹(QT)分裂決定610。在610處的決定返回「1」符號指示根據四元樹分裂512將目前節點劃分為四個子節點的決定。結果是產生四個新節點,例如在620,並且對於每個新節點,遞迴回到QT分裂決定610。以光柵(或Z掃描)順序考慮每個新節點。替代地,如果QT分裂決定610指示將不執行進一步分裂(返回「0」符號),則停止四元樹分裂並且隨後考慮多叉樹(MT)分裂。
首先,塊分隔器310做出MT分裂決定612。在612,指示執行MT分裂的決定。在決定612處返回「0」符號表示將不執行將節點進一步分裂為子節點的操作。如果將不執行節點的進一步分裂,則該節點是編碼樹的葉節點並且對應於CU。在622輸出葉子節點。或者,如果MT分裂612指示執行MT分裂的決定(返回「1」符號),則塊分隔器310進行到方向決定614。
方向決定614將MT分裂的方向指示為水平(「H」或「0」)或垂直(「V」或「1」)。如果決定614返回指示水平方向的「0」,則塊分隔器310進行到決定616。如果決定614返回指示垂直方向的「1」,則塊分隔器310進行到決定618。
在決定616和618中的每一個處,用於MT分裂的分區的數目被指示為在BT/TT分裂處的二個(二元劃分或「BT」節點)或三個(三元分裂或「TT」)。即,當從614指示的方向是水平時,由塊分隔器310做出BT/TT分裂決定616,而當從614指示的方向是垂直時,由塊分隔器310做出BT/TT分裂決定618。
BT/TT分裂決定616指示水平分裂是透過返回「0」指示的二元分裂514,還是透過返回「1」指示的三元分裂518。當BT/TT分裂決定616指示二元分裂時,在產生HBT CTU節點的步驟625,塊分隔器310根據二元水平分裂514產生二個節點。當BT/TT分裂616指示三元分裂時,在產生HTT CTU節點的步驟626處,塊分隔器310根據三元水平分裂518產生三個節點。
BT/TT分裂決定618指示垂直分裂是透過返回「0」指示的二元分裂516,還是透過返回「1」指示的三元分裂520。當BT/TT分裂618表示二元分裂時,在產生VBT CTU節點的步驟627,塊分隔器310根據垂直二元分裂516產生二個節點。當BT/TT分裂618表示三元分裂時,在產生VTT CTU節點的步驟628處,塊分隔器310根據垂直三元分裂520產生三個節點。對於從步驟625-628得到的每個節點,應用資料流600的遞迴回到MT分裂決定612,取決於方向614,以從左到右或從上到下的順序。因此可將二元樹和三元樹分裂應用於產生具有各種大小的CU。
圖7A和7B提供了將CTU 710劃分成多個CU或CB的示例劃分700。示例CU 712在圖7A中顯示。圖7A顯示CTU 710中的CU的空間配置。示例劃分700還在圖7B中顯示為編碼樹720。
在圖7A的CTU 710中的每個非葉子節點處,例如,節點714、716和718,所包含的節點(可以進一步劃分或可以是CU)被掃描或遍歷「Z順序」以創建節點列表,在編碼樹720中用行表示。對於四元樹分裂,Z順序掃描的結果為左上至右,然後是左下至右順序。對於水平和垂直分裂,Z階掃描(遍歷)分別簡化為從上到下掃描和從左到右掃描。圖7B的編碼樹720列出了根據編碼樹的Z順序遍歷而排序的所有節點和CU。每次分裂都會在樹的下一級產生一個包含二個、三個或四個新節點的列表,直到到達葉節點(CU)。
已經透過塊分隔器310將影像分解成CTU並且進一步分解成CU,並且如參考圖3所描述的,使用CU來產生每個殘差塊(324),視訊編碼器114對殘差塊進行正向變換和量化。作為熵編碼模組338的操作的一部分,隨後對所得的TB 336進行掃描以形成殘差係數的順序列表。在視訊解碼器134中執行等效處理以從位元流133獲得TB。
圖8A、8B、8C和8D顯示根據變換塊(TB)的不同大小執行的正向和反向不可分離的二次變換的示例。圖8A顯示對於4×4TB大小的一次變換係數802和二次變換係數804之間的一組關係800。一次變換係數802由4×4係數組成,而二次變換係數804由八個係數組成。八個二次變換係數配置在圖案806中。圖案806對應於八個位置,在TB的向後對角線掃描中相鄰並且包括DC(左上)位置。透過執行正向二次變換,未填充後向對角線掃描中圖8A所示的其餘八個位置,因此保持零值。因此,用於4×4 TB的正向不可分離的二次變換810接收十六個一次變換係數,並且產生八個二次變換係數作為輸出。因此,可以透過權重的8×16矩陣來表示用於4×4TB的正向二次變換810。類似地,反向二次變換812可以由權重的16×8矩陣表示。
圖8B顯示針對4×N和N×4 TB大小的一次變換係數和二次變換係數之間的一組關係818,其中N大於4。在二種情況下,一次係數820的左上4×4子塊都與二次變換係數824的左上4×4子塊相關聯。在視訊編碼器114中,正向不可分離的二次變換830採用十六個一次變換係數,並產生十六個二次變換係數作為輸出。其餘的一次變換係數822沒有被正向二次變換填充,因此保持零值。在執行正向不可分離的二次變換830之後,與係數822相關聯的係數位置826沒有被填充並且因此保持零值。
用於4×N或N×4TB的正向二次變換830可以由權重的16×16矩陣表示。表示正向二次變換830的矩陣被定義為A。類似地,對應的反向二次變換832可以由權重的16×16矩陣表示。表示反向二次變換832的矩陣被定義為B。
透過將A的一部分重用於4×4 TB的正向二次變換810和反向二次變換812,進一步減少了不可分離變換核心的儲存需求。A的前八列用於正向二次變換810,A的前八列的轉置用於反向二次變換812。
圖8C顯示針對大小為8×8的TB的一次變換係數840和二次變換係數842之間的關係855。一次變換係數840由8×8係數組成,而二次變換係數842由八個變換係數組成。八個二次變換係數842以與TB的向後對角線掃描中的八個連續位置相對應的圖案配置,八個連續位置包括TB的DC(左上)係數。TB中剩餘的二次變換係數全為零,因此不需要進行掃描。用於8×8TB的正向不可分離的二次變換850以四十八個一次變換係數作為輸入,對應於三個4×4子塊,並產生八個二次變換係數。用於8×8TB的正向二次變換850可以由權重的8×48矩陣表示。用於8×8TB的對應的反向二次變換852可以由權重的48×8矩陣表示。
圖8D顯示對於大小大於8×8的TB,一次變換係數860與二次變換係數862之間的關係875。一次係數860的左上8×8子塊(配置為四個4×4子塊)與二次變換係數862的左上4×4子塊相關聯。在視訊編碼器114中,正向不可分離的二次變換870對四十八個一次變換係數進行運算以產生十六個二次變換係數。剩餘的一次變換係數864被清零。二次變換係數862的左上4×4子塊外部的二次變換係數位置866未被填充並且保持為零。
大小大於8×8的TB的正向二次變換870可以由權重的16×48矩陣表示。表示正向二次變換870的矩陣被定義為F 。類似地,對應的反向二次變換832可以由權重的48×16矩陣表示。表示反向二次變換872的矩陣被定義為G 。如以上參考矩陣AB 所描述的,F 理想地具有正交性的性質。正交性的性質表示G=FT ,並且僅F 需要被儲存在視訊編碼器114和視訊解碼器134中。正交矩陣可以被描述為其中列具有正交性的矩陣。
透過將F 的一部分重用於8×8 TB的正向二次變換850和反向二次變換852,進一步減少了不可分離變換核心的儲存需求。F 的前八列用於正向二次變換810,F 的前八列的轉置用於反向二次變換812。
不可分離的二次變換可以透過單獨使用可分離的一次變換來實作編碼改進,因為不可分離的二次變換能夠稀疏殘差信號中的二維特徵,例如角度特徵。由於殘差信號中的角度特徵可能取決於所選擇的框內預測模式387的類型,因此根據框內預測模式自適應地選擇不可分離的二次變換矩陣是有利的。如上所述,框內預測模式包括「DC內」、「平面內」、「角度內」模式和「矩陣框內預測」模式。當使用DC內預測時,框內預測模式參數458取值為0。當使用平面內預測時,框內預測模式參數458取值為1。當使用正方形TB的角度內預測時,框內預測模式參數458的取值在2到66之間。
圖9顯示在通用視訊編碼(VVC)標準中可用的一組變換塊900。圖9還顯示二次變換對來自集合900的變換塊的殘差係數的子集的應用。圖9顯示寬度和高度為4至32的TB。然而,寬度及/或高度為64的TB是可能的,但為便於參考未予顯示。
將16點二次變換952(以較暗的陰影顯示)應用於4×4係數集。16點二次變換952應用於寬度或高度為4的TB,例如4×4 TB 910、8×4 TB 912、16×4 TB 914、32×4 TB 916、4×8 TB 920、4×16 TB 930和4×32 TB 940。16點二次變換952也被應用於大小為4×64和64×4的TB(圖9中未顯示)。對於寬度或高度為4但主要係數超過16的TB,僅將16點二次變換應用於TB的左上4×4子塊,而其他子塊則要求為零值係數,以便應用二次變換。如參考圖8至8D所描述的,通常16點二次變換的應用產生8或16個二次變換係數。二次變換係數被打包到TB中以編碼到TB的左上子塊中。
對於寬度和高度大於4的變換大小,可將48點二次變換950(以較淺的陰影顯示)應用於變換塊左上8×8區中三個4×4殘差係數子塊,如圖9所示。48點二次變換950應用於8×8變換塊922、16×8變換塊924、32×8變換塊926、8×16變換塊932、16×16變換塊934、32×16變換塊936、8×32變換塊942、16×32變換塊944和32×32變換塊946,在每種情況下,以淺色陰影和虛線輪廓顯示的區。48點二次變換950還適用於大小為8×64、16×64、32×64、64×64、64×32、64×16和64×8的TB(未顯示)。48點二次變換核心的應用通常導致產生少於48個二次變換係數。例如,如參考圖8B至8D所描述的,可以產生8或16個二次變換係數。要求不進行二次變換的一次變換係數(「僅一次係數」)(例如TB 934的係數966)為零值,以便應用二次變換。在正向方向應用48點二次變換950之後,可能包含重要係數的區從48個係數減少到16個係數,進一步減少了可能包含重要係數的係數位置的數量。對於反向二次變換,對存在的已解碼重要係數進行變換以產生係數,該係數中任一者在一個區中可能是重要的,接著對該區進行一次反向變換。當二次變換將一或多個子塊縮減為一組16個二次變換係數時,僅左上4×4子塊可包含重要係數。位於可以儲存二次變換係數的任何係數位置處的最後一個重要係數位置指示不是要應用二次變換就是僅應用一次變換。
當最後重要係數位置指示TB中的二次變換係數位置時,需要用信號通知的二次變換索引(即388或474)來區分應用二次變換核心還是旁路二次變換。儘管已經從視訊編碼器114的觀點描述了在圖9中將二次變換應用於各種大小的TB,但在視訊解碼器134中執行對應的反向處理。視訊解碼器134首先對最後的重要係數位置解碼。如果解碼的最後重要係數位置指示二次變換的潛在應用,則對二次變換索引474解碼以確定是應用還是旁路反向二次變換。
圖10顯示具有多個片段的位元流1001的語法結構1000。每個片段包括多個編碼單元。位元流1001可以由視訊編碼器114產生,例如作為位元流115,或者可以由視訊解碼器134解析,例如作為位元流133。位元流1001被劃分為例如網路抽象層(NAL)單元的部分,其中透過在每個NAL單元之前加上諸如1008的NAL單元標頭來達成描繪。序列參數集(SPS)1010定義了序列級別的參數,例如用於編碼和解碼位元流、色度格式、樣本位元深度和框解析度的配置檔案(工具集)。在集合1010中還包括限制每個CTU的編碼樹中不同類型的劃分的應用的參數。
圖片參數集(PPS)1012定義適用於零或多個框的參數集。圖片標頭(PH)1015定義適用於目前框的參數。PH 1015的參數可以包括CU色度QP偏移量的列表,其中一個可以在CU級別應用,以從並置亮度CB的量化參數中導出供色度塊使用的量化參數。
圖片標頭1015和形成一個圖片的一序列片段被稱為存取單元(AU),例如AU 0 1014。AU 0 1014包括三個片段,例如片段0至2。片段1旗標為1016。與其他片段一樣,片段1(1016)包括片段標頭1018和片段資料1020。
圖11顯示具有用於編碼樹單元(例如CTU 1110)的亮度和色度編碼單元的共享編碼樹的位元流1001(例如115或133)的片段資料(例如與1020相對應的片段資料1104)的語法結構1100。CTU 1110包括一或多個CU。示例被旗標為CU 1114。CU 1114包括用信號通知的預測模式1116,其後是變換樹1118。當CU 1114的大小不超過最大變換大小時(亮度通道中的32×32或64×64),則變換樹1118包含一個變換單元,如TU 1124所示。當使用4:2:0色度格式時,對應的最大色度變換大小是每個方向上最大亮度變換大小的一半。即,最大亮度變換大小為32×32或64×64,分別導致最大色度變換大小為16×16或32×32。使用4:4:4色度格式時,色度最大變換大小與亮度最大變換大小相同。使用4:2:2色度格式時,色度最大變換大小為水平上為一半,垂直上與亮度變換大小相同,即,對於最大亮度變換大小為32×32和64×64,最大色度變換大小分別為16×32和32×64。
如果預測模式1116指示對CU 1114使用框內預測,則指定亮度框內預測模式和色度框內預測模式。對於CU 1114的亮度CB,根據MTS索引1122,一次變換類型的還(i)水平和垂直上以DCT-2,(ii)水平和垂直上以變換跳過,或(iii)水平和垂直上以DST-7和DCT-8的組合用信號發送。如果用信號發送的亮度變換類型為水平和垂直上DCT-2(選項(i)),則附加亮度二次變換索引1120,也稱為「低頻不可分離的變換」(LFNST)索引在參照圖8A-D和圖13-16描述的條件下在位元流用信號發送。
共享編碼樹的使用導致TU 1124包括每個顏色通道的TB,表示為亮度TB Y 1128、第一色度TB Cb 1132和第二色度TB Cr 1136。每個TB的存在是取決於對應的「編碼的塊旗標」(CBF),即編碼的塊旗標1123之一。當存在TB時,對應的CBF等於1,並且TB中的至少一個殘差係數為非零。當不存在TB時,對應的CBF等於零,並且TB中的所有殘差係數都為零。亮度TB 1128、第一色度TB 1134和第二色度TB 1136各自可以使用變換跳過,如分別由變換跳過旗標1126、1130和1134用信號發送的。可得一種編碼模式,其中發送單一色度TB來指定Cb和Cr通道的色度殘差,稱為「聯合CbCr」編碼模式。當啟用聯合CbCr編碼模式時,單一色度TB被編碼。
與顏色通道無關,每個編碼的TB包括最後位置,後跟一或多個殘差係數。例如,亮度TB 1128包括最後位置1140和殘差係數1144。當考慮對角線掃描圖樣中的係數時,最後位置1140指示TB中的最後重要殘差係數位置,用於對TB的係數陣列進行正向方向(即從DC係數開始)序列化。色度通道的二個TB 1132和1136各具有一個對應的最後位置語法元素,其使用方式與亮度TB 1128所述相同。如果每個TB的CU的最後位置,即1128、1132、和1136,指示對於CU中的每個TB,僅二次變換域中的係數是重要的,使得將僅經歷一次變換的所有剩餘係數為零,可以用信號發送二次變換索引1120以指定是否應用二次變換。參照圖14和圖16描述關於二次變換索引1120的信令的進一步條件。
如果要應用二次變換,則二次變換索引1120指示選擇了哪個核心。通常,核心的「候選集」中有二個核心。通常,存在四個候選集,其中使用該塊的框內預測模式選擇一個候選集。亮度框內預測模式用於選擇亮度塊的候選集,而色度框內預測模式用於選擇二個色度塊的候選集。如參照圖8A-8D所述,選擇的核心還取決於TB大小,對於4×4、4×N/N×4和其他大小的TB具有不同的核心。使用4:2:0色度格式時,色度TB通常是對應亮度TB的寬度和高度的一半,導致當使用寬度或高度為8的亮度TB時,會為色度塊選擇不同的核心。對於大小為4×4、4×8、8×4的亮度塊,更改了共享編碼樹中亮度與色度塊的一一對應關係,以避免出現小尺寸色度塊,例如2×2、2×4或4×2。
二次變換索引1120例如指示以下內容:索引值0(不適用)、一(應用候選集的第一核心)或二(應用候選集的第二核心)。對於色度,將考慮色度TB大小和色度框內預測模式導出的候選集的選定二次變換核應用於每個色度通道,因此Cb塊1224和Cr塊1226的殘差僅需包含重要係數在經歷二次變換的位置如參照圖8A-D所描述。如果使用聯合CbCr編碼,則僅在要經歷二次變換的位置中僅包含重要係數的要求僅適用於單一編碼色度TB,因為所得的Cb和Cr殘差在對應於聯合編碼的TB中重要係數的位置僅包含重要係數。
圖12顯示用於位元流(例如115、133)的片段資料1204(例如1020)的語法結構1200,語法結構1200具有用於編碼樹單元的亮度和色度編碼單元的單獨的編碼樹。「I片段」可以使用單獨的編碼樹。片段資料1204包括一或多個CTU,例如CTU 1210。CTU 1210的大小通常為128×128個亮度樣本,並且以包括一個對亮度和色度共有的四元樹分裂的共享樹開始。在每個結果64×64節點處,分別針對亮度和色度開始使用單獨的編碼樹。圖12中旗標了示例節點1214。節點1214具有亮度節點1214a和色度節點1214b。亮度樹從亮度節點1214a開始,並且色度樹從色度節點1214b開始。從節點1214a和節點1214b繼續的樹在亮度和色度之間是獨立的,因此可能會有不同的分裂選項來產生結果CU。亮度CU 1220屬於亮度編碼樹,並且包括亮度預測模式1221、亮度變換樹1222和二次變換索引1224。亮度變換樹1222包括TU 1230。由於亮度編碼樹僅對亮度通道的樣本編碼,TU 1230包括亮度TB 1234,並且亮度變換跳過旗標1232指示是否要變換亮度殘差。亮度TB 1234包括最後位置1236和殘差係數1238。
色度CU 1250屬於色度編碼樹,並且包括色度預測模式1251、色度變換樹1252和二次變換索引1254。色度變換樹1252包括TU 1260。因為色度樹包括色度塊,TU 1260包括Cb TB 1264和Cr TB 1268。針對Cb TB 1264和Cr CB 1268的變換的旁路的應用分別透過Cb變換跳過旗標1262和Cr變換跳過旗標1266來發送信號。每個TB包括最後位置和殘差係數,例如,最後位置1270和殘差係數1272與Cb TB 1264相關聯。用於色度樹的色度TB的二次變換索引1254的信令係參照圖14和16予以描述。
圖17顯示32×32 TB 1700。顯示應用於TB 1700的習用掃描圖樣1710。掃描圖樣1710以向後對角線的方式行進通過TB 1700,從最後一個重要係數位置開始並向DC(左上)係數位置行進。行程將TB 1700分為4×4子塊。每個子塊在內部以向後對角線的方式進行掃描,如TB 1700的幾個子塊(例如,子塊1750)中所示。其他子塊以相同的方式進行掃描。然而,為了便於參考,在圖17中顯示有限數量的子塊,其具有全掃描。從一個4×4子塊到下一個子塊的行程也遵循向後對角線掃描,跨越整個TB 1700。
如果要使用MTS,則僅TB 1700的左上16×16部分1740中的係數可能很重要。左上16×16部分形成閾值笛卡爾位置(在此示例中為(15,15)),可以在該位置或之內應用MTS。如果最後一個重要係數無論在X座標還是Y座標上都在閾值笛卡爾位置之外,則無法應用MTS。也就是說,如果最後一個重要係數位置的X或Y座標超過15,則無法應用MTS並應用DCT-2(或跳過變換)。最後重要係數位置表示為相對於TB 1700中DC係數位置的笛卡爾座標。例如,最後重要係數位置1730為15,15。從位置1730開始並且朝DC係數前進的掃描圖樣1710導致掃描子塊1720和1721(用陰影標識),當應用MTS並且在不被MTS使用時,其在視訊編碼器114中被清零。視訊解碼器134需要解碼子塊1720和1721中的殘差係數,因為掃描中包括了1720和1721,然而,當應用MTS時,不使用子塊1720和1721的解碼殘差係數。至少,對於要應用的MTS,可能需要將子塊1720中的殘差係數設為零值,從而降低了相關聯的編碼成本,並且防止了在應用MTS時位元流對子塊中的重要殘差係數編碼。也就是說,解析「mts_idx」語法元素可以不僅在部分1740內的最後重要位置上而且在僅包含零值殘差係數的子塊1720和1721上都具有條件。
圖18顯示用於所描述的配置的32×32 TB 1800的掃描圖樣1810。掃描圖樣1810將4×4子塊分組為幾個「集合」,例如集合1840。
在本發明的上下文中,關於掃描圖樣,集合提供子塊的非重疊集(i)形成適用於MTS的大小的區域或區,或者(ii)形成圍繞MTS適用區域的區域或區。掃描圖樣透過處理殘差係數子塊的多個不重疊的集合來遍歷變換塊,在完成對目前集合的掃描之後,從目前集合進行到下一個集合。
在圖18的示例中,每個集合都是4×4子塊的二維陣列,其寬度和高度最多為四個子塊(集合的選項(i))。當使用MTS時,集合1840對應於潛在重要係數的區,即TB 1800的16×16區。掃描圖樣1810從一個集合前進到下一個集合,而無需重新輸入,即一旦已經掃描了一個集合中的殘差係數,掃描圖樣1810進行到下一集合。掃描1810在前進掃描下一個集合之前有效地完全完成了目前集合的掃描圖樣。集合不重疊,並且從最後一個位置開始向著前進DC(左上)係數位置掃描,每個殘差係數位置都被掃描一次。
與掃描圖樣1710一樣,掃描圖樣1810也將TU 1800劃分為4×4子塊。由於從一個集合到下一個集合的單調進展,一旦掃描到達左上集合1840,就不再發生對集合1840外部的殘差係數的進一步掃描。特別地,如果最後位置在集合1840內,例如在15,15位置的最後位置1830,則集合1840外部的所有殘差係數都不重要。當使用MTS時,在1840之外為零的殘差係數與在視訊編碼器114中執行的歸零對齊。因此,視訊解碼器134僅需要檢查集合1840內的最後位置即可解析mts_idx語法元素(當CU屬於單一編碼樹時為1122,而當CU屬於單獨編碼樹的亮度分支時為1226)。掃描圖樣1810的使用消除了確保集合1840外部的任何殘差係數為零值的需要。借助於具有與MTS變換係數區對準的集合大小的掃描圖樣1810,已經清楚了集合1840外部的係數是否重要。透過將TB 1800分為一組集合,每個集合的大小相同,與掃描圖樣1710相比,掃描圖樣1810還可以減少記憶體消耗。由於TB 1800的掃描可從對一個集合的掃描中構造出來,因此可以減少記憶體。對於大小為16×32和32×16的TB,可以使用16×16大小的集合的相同方法,同時使用二個集合。對於大小為32×8的TB,可以劃分為多個集合,由於TB的大小,集合大小限制為16×8。將32×8 TB的集合劃分成與八乘以二個包括32×8 TB的4×4子塊陣列組成的規則對角線掃描行程相同的掃描圖樣。因此,透過檢查最後一個位置在32×8 TB的左半部分以內,可以對32×8 TB的MTS變換的係數的8×16區的重要係數的性質得到滿足。
圖19顯示大小為8×32的TB 1900。對於TB 1900,可以將集合劃分為多個集合。在圖19的示例中,由於TB的大小,集合的大小被限制為8×16,例如集合1940。將8×32 TB 1900劃分成多個集合與在包括8×32 TB的2×8的4×4子塊的陣列的二個規則陣列上的規則對角行進相比,導致了不同的子塊順序(例如,圖18中所示)。使用8×16的集合大小確保如果最後一個重要係數位置在集合1940內,則僅在MTS變換係數區中可能是重要係數,例如在7,15處的最後一個重要位置1930。
圖18和19的掃描圖樣以向後對角線的方式掃描每個子塊中的殘差係數。在圖18和19的示例中,以向後對角線的方式掃描每個集合中的子塊。在圖18和19中,以向後對角線的方式在集合之間進行掃描。
圖20顯示32×32 TB 2000的替代掃描順序2010。掃描順序(掃描圖樣)2010被劃分為部分2010a至2010f。掃描順序2010至2010e與集合的選項(ii)有關,集合是一組子塊,這些子塊形成一個圍繞適用於MTS的區域的區域或區。掃描圖樣2010f牽涉(i)涵蓋形成適用於MTS的區域的區2040的集合。定義掃描順序2010a-2010f,使得從一個子塊到下一個子塊的向後對角行進發生在TB 2000上,而區2040除外,隨後使用向後對角線掃描行進進行掃描。區2040對應於MTS變換係數區。將TB 2000劃分為對MTS變換係數區域之外的子塊進行掃描,然後對MTS變換係數區域內的子塊進行掃描,將導致對子塊的進展,如2010a、2010b、2010c、2010d、2010e和2010f中所示。掃描圖樣2010識別二個集合,即由2010a至2010e定義的集合和由區2040定義的集合,由2010f掃描。以允許在集合2040的右下角(2030)之前掃描與集合2040接壤的所有子塊的方式執行掃描。掃描圖樣2010掃描使用掃描2010a至2010e形成的子塊的集合。在完成2010a至2010e涵蓋的集合後,掃描圖樣2010將繼續到下一個集合2040,根據2010f進行掃描。檢查最後一個重要係數位置(例如2030)的屬性在區2040內,以使存在mts_idx的信令成為可能,而無需檢查區2040之外的任何殘差係數是否為零值。
在圖20中的向後對角線掃描的變體中執行殘差係數的掃描。掃描圖樣以圖20中的向後光柵方式掃描集合。在圖18和圖19的圖案的變型中,可以以向後光柵順序掃描集合。
圖18-20中所示的掃描圖樣,即1810、1910和2010a-f,與圖17的掃描圖樣1710相比,實質上保留了從TB的最高頻率係數向TB的最低頻率係數發展的特性。因此,使用掃描圖樣1810、1910和2010a-f的視訊編碼器114和視訊解碼器134的配置實現了與使用掃描圖樣1710時達到的壓縮效率相似的壓縮效率,同時使得MTS索引信令能夠依賴於最後一個重要係數位置,而無需進一步檢查MTS變換係數區之外的零值殘差係數。
圖13顯示用於將框資料113編碼為位元流115的方法1300,位元流115包括一或多個片作為編碼樹單元的序列。方法1300可以由諸如配置的FPGA、ASIC或ASSP之類的設備來實施。另外,方法1300可以由視訊編碼器114在處理器205的執行下執行。如此,方法1300可以實作為儲存在電腦可讀儲存媒體上及/或記憶體206中的軟體233的模組。
方法1300在SPS/PPS編碼步驟1310開始。在步驟1310,視訊編碼器114將SPS 1010和PPS 1012編碼為位元流115,作為固定和可變長度編碼參數的序列。框資料113的參數,例如解析度和樣本位元深度,被編碼。位元流的參數,例如指示特定編碼工具的利用的旗標,也被編碼。圖片參數集包括指定在位流113中存在「增量QP」語法元素的頻率的參數,相對於亮度QP的色度QP的偏移量等。
方法1300從步驟1310繼續到編碼圖片標頭步驟1320。在執行步驟1320時,處理器205將圖片標頭(例如1015)編碼到位元流113中,圖片標頭1015適用於目前框中的所有片段。圖片標頭1015可以包括分區約束,該分區約束信令二元、三元和四元樹劃分的最大允許深度,從而覆蓋作為SPS 1010的一部分包括的相似約束。
方法1300從步驟1320繼續到編碼片段標頭步驟1330。在步驟1330,熵編碼器338將片段標頭1118編碼為位元流115。
方法1300從步驟1330繼續到將片段劃分為CTU的步驟1340。在執行步驟1340時,視訊編碼器114將片段1016劃分為CTU的序列。片段邊界與CTU邊界對齊,並且片段中的CTU根據CTU掃描順序(通常是光柵掃描順序)進行排序。將片段劃分為CTU會建立在編碼每個目前片段時視訊編碼器113將處理框資料113的各個部分的順序。
方法1300從步驟1340繼續到確定編碼樹步驟1350。在步驟1350,視訊編碼器114為片段中的目前選擇的CTU確定編碼樹。方法1300在步驟1350的第一次調用時從片段1016中的第一CTU開始,並且在後續調用時前進到片段1016中的後續CTU。在確定CTU的編碼樹時,由塊分隔器310產生並測試四元樹,二元和三元分裂的各種組合。
方法1300從步驟1350繼續到確定編碼單元步驟1360。在步驟1360,視訊編碼器114執行確定以使用已知方法的評估來評估由各種編碼樹得到的CU的編碼。確定編碼牽涉確定預測模式(例如,具有特定模式的框內預測387或具有運動向量的框間預測)和一次變換類型389。如果確定一次變換類型389將為DCT-2,並且沒有經歷正向二次變換的所有量化的一次變換係數不重要,則確定二次變換索引388並且可以指示二次變換的應用(例如,編碼為1120、1224或1254)。否則,二次變換索引388指示旁路二次變換。另外,為CU中的每個TB確定變換跳過旗標390,指示應用一次變換(並且可選地應用二次變換)或完全旁路變換(例如1126/1130/1134或1232/1262/1266)。對於亮度通道,一次變換類型確定將為DCT-2、變換跳過或MTS選項之一,對於色度通道,DCT-2或變換跳過是可用的變換類型。確定編碼還可以包括在可能改變QP的地方,即在將「增量QP(delta QP)」語法元素編碼到位元流115中的地方,確定量化參數。在確定單一編碼單元時,最佳編碼樹也是共同決定。當要使用框內預測對共享編碼樹中的編碼單元編碼時,在步驟1360中確定亮度框內預測模式和色度框內預測。當要使用框內預測對單獨的編碼樹中的編碼單元編碼時,在步驟1360確定亮度框內預測模式或色度框內預測模式,分別取決於編碼樹的分支是亮度還是色度。
當由正向一次變換模組326應用DCT-2一次變換而導致的主域殘差中不存在「AC」殘差係數時,確定編碼單元步驟1360可以禁止對二次變換的測試應用。AC殘差係數是除變換塊的左上角位置以外的其他位置的殘差係數。當僅存在DC一次係數時,禁止測試二次變換跨越了二次變換索引388適用的塊,即共享樹的Y,Cb和Cr(僅當Cb和Cr塊為二個樣本的寬度或高度時的通道)。無論編碼單元是用於共享樹還是單獨樹的編碼樹,只要存在至少一個重要的AC一次係數,視訊編碼器114都會測試是否選擇非零的二次變換索引值388(即用於二次變換)。
方法1300從步驟1360繼續到編碼編碼單元步驟1370。在步驟1370,視訊編碼器114將步驟1360的確定的編碼單元編碼為位元流115。參考圖14更詳細地描述如何編碼編碼單元的示例。
方法1300從步驟1370繼續到最後的編碼單元測試步驟1380。在步驟1380,處理器205測試目前的編碼單元是否是CTU中的最後的編碼單元。如果不是(步驟1380為「否」),則處理器205中的控制返回到確定編碼單元步驟1360。否則,如果目前編碼單元為最後的編碼單元(步驟1380為「是」),則處理器205中的控制前進到最後的CTU測試步驟1390。
在最後的CTU測試步驟1390中,處理器205測試目前CTU是否為片段1016中的最後CTU。如果目前CTU不是片段1016中的最後CTU(步驟1390中為「否」),則進行控制處理器205中的「否」返回到確定編碼樹步驟1350。否則,如果目前CTU為最後的(步驟1390中為「是」),則處理器205中的控制前進至最後的片段測試步驟13100。
在最後的片段測試步驟13100中,處理器205測試正在編碼的目前片段是否是框中的最後一個片段。如果目前片段不是最後一個片段(在步驟13100處為「否」),則處理器205中的控制返回到編碼片段標頭步驟1330。否則,如果目前片段是最後一個片段並且所有片段都已被編碼(「在步驟13100處為「是」),方法1300終止。
圖14顯示對應於圖13的步驟1370的用於將編碼單元編碼到位元流115中的方法1400。方法1400可以由諸如配置的FPGA、ASIC或ASSP的設備來實施。另外,方法1400可以由視訊編碼器114在處理器205的執行下執行。如此,方法1400可以作為軟體233的模組儲存在電腦可讀儲存媒體上及/或記憶體206中。
方法1400透過僅在可能將其應用於TU 1260的色度TB時才對二次變換索引1254編碼,並且僅在有可能將其應用於TU 1124的TB中任何一個時才對二次變換索引1120編碼,從而提高了壓縮效率。在使用共享編碼樹時,為編碼樹中的每個CU調用方法1400,例如圖11的CU 1114,其中Y,Cb和Cr顏色通道被編碼。當使用單獨的編碼樹時,首先為亮度分支1214a中的每個CU(例如,1220)調用方法1400,並且,方法1400也針對在色度分支1214b中每個色度CU(例如,1250)被調用。
方法1400在產生預測塊步驟1410處開始。在步驟1410,視訊編碼器114根據在步驟1360確定的CU的預測模式(例如框內預測模式387)來產生預測塊320。如在步驟1360處確定的,熵編碼器338將用於編碼單元的框內預測模式387編碼到位元流115中。對「pred_mode」語法元素編碼以區分使用框內預測模式、框間預測模式或編碼單元的其他預測模式。如果將框內預測用於編碼單元,則如果亮度PB適用於CU,則對亮度框內預測模式編碼,如果色度PB適用於CU,則對色度框內預測模式編碼。也就是說,對於屬於共享樹的框內預測CU,例如CU 1114,預測模式1116包括亮度框內預測模式和色度框內預測模式。對於屬於單獨的編碼樹的亮度分支的框內預測CU,例如CU 1220,預測模式1221包括亮度框內預測模式。對於屬於單獨的編碼樹的色度分支的框內預測的CU諸如CU 1250,預測模式1251包括色度框內預測模式。為一次變換類型389編碼,以在水平上和垂直上使用DCT-2,水平上和垂直上使用變換跳過,或水平上和垂直上使用DCT-8和DST-7組合來選擇編碼單元的亮度TB之間進行選擇。
方法1400從步驟1410繼續到確定殘差步驟1420。差分模組322從框資料312的對應塊中減去預測塊320以產生差值324。
方法1400從步驟1420繼續到變換殘差步驟1430。在變換殘差步驟1430,視訊編碼器114在處理器205的執行下,旁路步驟1420的殘差的一次和二次變換,或者執行根據CU的每個TB的一次變換類型389和二次變換索引388進行變換。可以根據變換跳過旗標390來執行或旁路差值324的變換,並且如果變換,則如在步驟1350所確定的,還可以應用二次變換以產生殘差樣本350,如參照圖3所描述的。在量化模組334操作之後,殘差係數336可用。
方法1400從步驟1430繼續到編碼亮度變換跳過旗標步驟1440。在步驟1440,熵編碼器338將上下文編碼的變換跳過旗標390編碼到位元流115中,指示亮度TB的殘差將根據一次變換來變換「一次變換」,並且可能要旁路「二次變換」,或者要旁路一次變換和二次變換。當CU包括亮度TB時,即在共享編碼樹(編碼1126)或雙樹的亮度分支(編碼1232)中,執行步驟1440。
方法1400從步驟1440繼續到編碼亮度殘差步驟1450。在步驟1450,熵編碼器338將亮度TB的殘差係數336編碼到位元流115中。步驟1450基於編碼單元的尺寸操作以選擇合適的掃描圖樣。有關於圖17(傳統的掃描圖樣)和圖18至20(用於確定MTS旗標的附加掃描圖樣)描述了掃描圖樣的示例。在本文描述的示例中,使用有關圖18至20的示例的掃描圖樣。殘差係數336通常根據具有4×4子塊的後向對角線掃描圖樣被掃描成列表。對於具有大於16個樣本的寬度或高度的TB,掃描圖樣如同參照圖18、19和20。列表中的第一非零殘差係數的位置在位元流115中被編碼為相對於變換塊的左上角係數即1140的笛卡爾座標。剩餘的殘差係數從最後位置的係數到DC(左上)殘差係數按順序編碼,作為殘差係數1144。當CU包括亮度TB時,即在共享編碼樹中,執行步驟1450(編碼1128)或CU屬於雙樹的亮度分支(編碼1234)。
方法1400從步驟1450繼續到編碼色度變換跳過旗標步驟1460。在步驟1460,熵編碼器338將另外二個上下文編碼的變換跳過旗標390編碼到位元流115中,每個色度TB對應一個,指示是否要對對應的TB進行DCT-2變換,並可選地是否進行二次變換,還是要旁路變換。當CU包括色度TB時,即在共享編碼樹(編碼1130和1134)或雙樹的色度分支(編碼1262和1266)中,執行步驟1460。
方法1400從步驟1460繼續到編碼色度殘差步驟1470。在步驟1470,熵編碼器338將色度TB的殘差係數編碼到位元流115中,如參考步驟1450所述。步驟1460為當CU包括色度TB時,即在共享編碼樹(編碼1132和1136)或雙樹的色度分支(編碼1264和1268)中執行。對於具有大於或等於16個樣本的寬度或高度的色度TB,掃描圖樣如同參照圖18、19和20所述。對於亮度TB和色度TB使用圖18到20的掃描圖案避免了為相同大小的TB在亮度和色度之間定義不同的掃描圖樣之需。
方法1400從步驟1470繼續到LFNST信令測試步驟1480。在步驟1480,處理器205確定二次變換是否可應用於CU的任何TB。如果CU的所有TB都使用變換跳過,則不需要對二次變換索引388編碼(在步驟1480為「否」),並且方法1400進行到MTS信令測試步驟14100。對於共享編碼樹例如,對於步驟1480,跳過對亮度TB和二個色度TB中的每一個變換,以返回「否」。對於單獨的編碼樹,對編碼樹的亮度分支中的亮度TB,或者對編碼樹的色度分支中的二個色度TB都跳過變換,以進行步驟1480,以返回「否」以進行與亮度和色度分別有關的調用。對於要執行的二次變換,適用的TB僅需在要經歷二次變換的TB位置中包含重要的殘差係數即可。也就是說,所有其他殘差係數都必須為零,這是針對圖8A-8D所示的TB大小,TB在806、824、842或862內的最後位置時達到的條件。如果對於所考慮的TB大小,CU中任何TB的最後位置在806、824、842或862之外,則不執行二次變換(步驟1480為「否」),並且方法1400進行到MTS信令測試步驟14100。
對於色度TB,可能會出現二個寬度或高度。對寬度或高度為2的TB不進行二次變換,因為沒有為此類尺寸的TB定義核心(步驟1480為「否」),並且方法1400前進至MTS信令測試步驟14100。在執行二次變換時的附加條件是在適用TB之間至少存在AC殘差係數。也就是說,如果唯一重要的殘差係數在每個適用TB的DC(左上角)位置,則不執行二次變換(步驟1480為「否」),方法1400進入MTS信令測試步驟14100。如果CU的至少一個TB經歷了一次變換(變換跳過旗標指示CU的至少一個TB沒有跳過),則對經歷一次變換的TB的最後位置約束得到滿足,並且至少一個AC係數被包括在經歷一次變換的一或多個TB中(步驟1480為「是」),處理器205中的控制進行到編碼LFNST索引步驟1490。在編碼LFNST索引步驟1490中,熵編碼器338編碼截斷的一元碼字,指示用於二次變換的三個可能選擇。選擇為零(不應用),一(應用候選集的第一個核心)和二(應用候選集的第二個核心)。該碼字最多使用二個bin,每個bin都是上下文編碼的。借助於在步驟1480執行的測試,僅當可以應用二次變換時,即對於要編碼的非零索引,才執行步驟1490。步驟1490例如編碼1120或1224或1225。
有效地,步驟1480和1490的操作允許僅當可將二次變換應用於TU 1260的色度TB時,才對單獨樹結構中的色度的二次變換索引1254編碼。在共享樹結構中,步驟1480和1490僅當二次變換可被應用於TU 1124的任何TB時,才操作而對二次變換索引1120編碼。在排除相關的二次變換索引(例如1254和1120)之後,方法1400進行操作以增加編碼效率。特別地,在共享或雙樹的情況下,避免了不必要的旗標,從而減少了所需的位元數並提高了編碼效率。在單獨的樹情況下,如果跳過對對應的亮度變換塊變換,則不必針對色度抑制二次變換。
方法1400從步驟1490前進到MTS信令測試步驟14100。
在MTS信令步驟14100,視訊編碼器114確定是否需要將MTS索引編碼到位元流115中。如果在步驟1360選擇使用DCT-2變換,則最後重要係數位置可以在TB的左上32×32區中的任何地方。如果最後一個重要係數位置在TB的左上16×16區之外,則使用圖18和圖19(而不是圖17的掃描圖樣),沒有必要在位元流顯式用信號發送mts_idx。在這種情況下,在位元流不需要信號mts_idx,因為使用MTS不會在左上16×16區之外產生最後一個重要係數。步驟14100返回「否」,並且方法1400終止,最後一次重要係數位置暗示了DCT-2的使用。
僅當TB寬度和高度小於或等於32時,才可以使用用於一次變換類型的非DCT-2選擇。因此,對於寬度或高度超過32的TB,步驟14100返回「否」,並且方法1400在步驟14100處終止。非DCT-2選擇也僅在未應用二次變換的情況下可用,因此,如果在步驟1360中確定二次變換類型388為非零,則步驟14100返回「否」,並且方法1400在步驟14100處終止。
當使用圖18和19的掃描時,最後重要係數位置的存在在TB的左上16×16區內,可能是由於應用DCT-2一次變換或DST-7及/或DCT-8的MTS組合所致,因此必須使用mts_idx的顯式信令來編碼在步驟1360進行的選擇。因此,最後一個重要係數位置在TB的左上16×16區內,步驟14100返回「是」,並且方法1400進行到編碼MTS索引步驟14110。
在編碼MTS索引步驟14110,熵編碼器338對表示一次變換類型389的截斷的一元bin串進行編碼。例如,步驟14110可以編碼1122或1226。方法1400在執行步驟14110時終止。
圖15顯示用於對位元流133解碼以產生框資料135的方法1500,位元流133包括一或多個片段作為編碼樹單元的序列。方法1500可以由諸如配置的FPGA、ASIC或ASSP之類的設備來實施。另外,方法1500可由視訊解碼器134在處理器205的執行下執行。如此,方法1500可作為軟體233的一或多個模組儲存在電腦可讀儲存媒體上及/或記憶體206中。
方法1500在解碼SPS/PPS步驟1510開始。在步驟1510,視訊解碼器134從位元流133解碼SPS 1010和PPS 1012作為固定和可變長度編碼參數的序列。框資料113的參數,例如解析度和樣本位元深度,被解碼。位元流的參數,例如指示使用特定編碼工具的旗標,也被解碼。預設分區約束表示最大的二元、三元和四元樹分裂允許深度,並且也由視訊解碼器134解碼為SPS 1010的一部分。
方法1500從步驟1510繼續到解碼圖片標頭步驟1520。在步驟1520的執行中,處理器205從位元流113解碼圖片標頭1015,適用於目前框中的所有片段。圖片參數集包括指定「增量QP」語法元素在位元流133中出現的頻率,色度QP相對於亮度QP的偏移量等的參數。可選的覆蓋分區約束表示最大的二元、三元和四元樹分裂深度,並且還可以由視訊解碼器134解碼為圖片標頭1015的一部分。
方法1500從步驟1520繼續到解碼片段標頭的步驟1530。在步驟1530,熵解碼器420從位元流133解碼片段標頭1018。
方法1500從步驟1530繼續到將片段劃分成CTU的步驟1540。在步驟1540的執行中,視訊編碼器114將片段1016劃分成CTU的序列。片段邊界與CTU邊界對齊,並且片段中的CTU根據CTU掃描順序(通常是光柵掃描順序)進行排序。將片段劃分為CTU會建立在解碼目前片段時,視訊編碼器133將處理框資料133的哪一部分。
方法1500從步驟1540繼續進行到解碼編碼樹步驟1550。在步驟1550,視訊解碼器134對片段中目前選擇的CTU的編碼樹解碼。方法1500在步驟1550的第一次調用時從片段1016中的第一CTU開始,並且在後續調用時進行到片段1016中的後續CTU。在解碼CTU的編碼樹時,對旗標解碼,這些旗標指示在視訊編碼器114中的步驟1350處確定的四元樹、二元和三元分裂的組合。
方法1500從步驟1550繼續到解碼編碼單元步驟1570。在步驟1570,視訊解碼器134從位元流133對步驟1560的確定的編碼單元解碼。參考圖16更詳細地描述如何解碼編碼單元的示例。
方法1500從步驟1570繼續到最後的編碼單元測試步驟1580。在步驟1580,處理器205測試目前的編碼單元是否是CTU中的最後的編碼單元。如果不是(步驟1580為「否」),則處理器205中的控制返回到解碼編碼單元步驟1560。否則,如果目前編碼單元為最後的編碼單元(步驟1580為「是」),則處理器205中的控制前進至最後的CTU測試步驟1590。
在最後的CTU測試步驟1590中,處理器205測試目前CTU是否是片段1016中的最後一個CTU。如果不是片段1016中的最後一個CTU(在步驟1590中為「否」),則控制處理器205返回到解碼編碼樹步驟1550。否則,如果目前CTU為最後的(步驟1590為「是」),則處理器中的控制前進至最後的片段測試步驟15100。
在最後的片段測試步驟15100,處理器205測試正在解碼的目前片段是否是框中的最後的片段。如果目前片段不是最後一個片段(在步驟15100為「否」),則處理器205中的控制返回到解碼片段標頭步驟1530。否則,如果目前片段是最後一個片段並且所有片段已經被解碼(「在步驟15100中為「是」),方法1500終止。
圖16顯示對應於圖15的步驟1570的用於從位元流133中解碼編碼單元的方法1600。方法1600可以由諸如配置的FPGA、ASIC或ASSP之類的裝置來實施。另外,方法1600可以由視訊解碼器134在處理器205的執行下執行。如此,方法1600可以儲存在電腦可讀儲存媒體上及/或作為軟體233的一或多個模組在記憶體206中。
當使用共享編碼樹時,針對編碼樹中的每個CU調用方法1600,例如圖11的CU 1114,其中Y、Cb和Cr顏色通道在單一調用中被編碼。當使用單獨的編碼樹時,首先為亮度分支1214a中的每個CU調用方法1600。在圖1220中,方法1600也針對每個色度CU被分別調用,例如,1250,在色度分支1214b中。
方法1600在解碼亮度變換跳過旗標步驟1610處開始。在步驟1610,熵解碼器420對來自位元流133的上下文編碼的變換跳過旗標478(例如,在位元流編碼為圖11中的1126或圖12中的1232)解碼。跳過旗標指示是否將變換應用於亮度TB。變換跳過旗標478指示亮度TB的殘差將根據(i)一次變換,(ii)一次變換和二次變換,或(iii)將旁路一次變換和二次變換來變換。當CU在共享編碼樹中包括亮度TB(例如,解碼1126)時,執行步驟1610。當CU屬於用於單獨的編碼樹CTU的雙樹的亮度分支(解碼1232)時,執行步驟1610。
方法1600從步驟1610繼續到解碼亮度殘差步驟1620。在步驟1620中,熵解碼器420從位元流115解碼亮度TB的殘差係數424。殘差係數424被組合成TB,藉由將掃描應用於解碼的殘差係數列表。步驟1620操作以基於編碼單元的尺寸選擇合適的掃描圖樣。有關於圖17(傳統的掃描圖樣)和圖18至20(用於確定MTS旗標的其他掃描圖樣)描述了掃描圖樣的示例。在本文描述的示例中,使用基於有關於圖18-20描述的圖案的掃描圖樣。掃描通常是使用4×4子塊的向後對角線掃描圖樣,如參照圖18和19所定義。列表中的第一非零殘差係數的位置作為相對於變換塊的左上係數即1140的笛卡爾座標從位元流133被解碼。剩餘的殘差係數被解碼,以從最後位置的係數到DC(左上)殘差係數的順序,作為殘差係數1144。
對於除了TB的左上角子塊之外的每個子塊和包含最後重要殘差係數的子塊,解碼「已編碼子塊旗標」以指示存在至少一個重要殘差係數在各個子塊中。如果編碼的子塊旗標指示在子塊中存在至少一個重要殘差係數,則對「重要性圖」,一組旗標解碼,以指示子塊中每個殘差係數的重要性。如果指示子塊包括來自已解碼的編碼子塊旗標的至少一個重要殘差係數,並且掃描到達子塊的最後掃描位置而沒有遇到重要殘差係數,則最後一個殘差係數推斷子塊中的掃描位置很重要。編碼的子塊旗標和重要性圖(每個旗標稱為「sig_coeff_flag」)使用上下文編碼的容器編碼。對於子塊中的每個重要殘差係數,解碼「abs_level_gtx_flag」,指示對應的殘差係數的大小是否大於一。對於子塊中幅度大於1的每個殘差係數,根據等式(1)解碼「par_level_flag」和「abs_level_gtx_flag2」以進一步確定殘差係數的大小:
Figure 02_image001
abs_level_gtx_flag和abs_level_gtx_flag2語法元素是使用上下文編碼的bin來編碼的。對於 abs_level_gtx_flag2等於1的每個殘差係數,使用Rice-Golomb編碼對旁路編碼的語法元素「abs_remainder」解碼。殘差係數的解碼大小確定為:AbsLevel= AbsLevelPass1+2×abs_remainder。針對每個重要殘差係數對符號位元解碼,以從殘差係數幅度中導出殘差係數值。透過分別透過子塊寬度和高度的log 2來調整(右移)X和Y殘差係數笛卡爾座標,可以從掃描圖樣中得出掃描圖樣中每個子塊的笛卡爾座標。對於亮度TB,子塊大小始終為4×4,導致X和Y右移二位元。圖18-20的掃描圖樣也可以應用於色度TB,以避免為尺寸相同但顏色通道不同的塊儲存不同的掃描圖樣。當CU包括亮度TB時,即在共享編碼樹中(解碼1128),或者對於雙樹的亮度分支的調用(例如,解碼1234),執行步驟1620。
方法1600從步驟1620繼續到解碼色度變換跳過旗標步驟1630。在步驟1630,熵解碼器420針對每個色度TB從位元流133解碼上下文編碼的旗標。例如,上下文編碼的旗標可能已被編碼為圖11中的1130和1134或圖12中的1262和1266。解碼至少一個旗標,每個色度TB對應一個。在步驟1630解碼的旗標指示是否要對對應的色度TB進行變換,特別是是否對對應的色度TB進行DCT-2變換,並且可選地是否進行二次變換,或者是否對對應的色度TB所有變換將被旁路。當CU包括色度TB(即,CU屬於共享編碼樹(解碼1130和1134)或雙樹的色度分支(解碼1262和1266)時,執行步驟1630。
方法1600從步驟1630繼續到解碼色度殘差步驟1640。在步驟1640中,熵解碼器420對來自位元流133的色度TB的殘差係數解碼。步驟1640以與在參照步驟1620描述的方式相似的方式並根據圖18和19中定義的掃描圖樣操作。當CU包括色度TB時,即,當CU屬於共享編碼樹(解碼1132和1136)或雙樹的色度分支(解碼1264和1268)時,執行步驟1640。
方法1600從步驟1640繼續到LFNST信號測試步驟1650。在步驟1650,處理器205確定二次變換是否適用於CU的任何TB。亮度變換跳過旗標可以具有與色度變換跳過旗標不同的值。如果CU的所有TB都使用變換跳過,則二次變換不適用並且不需要編碼二次變換索引(步驟1650為「否」),並且方法1600進行到確定LFNST索引的步驟1660。例如,對於共享的編碼樹,在步驟1650,跳過亮度TB和二個色度TB中的每一個,以返回「否」。對於屬於單獨的編碼樹的亮度分支的CU(例如1220),當亮度TB被變換跳過時,步驟1650返回「否」。對於屬於單獨的編碼樹的色度分支(例如1250)的CU,當二個色度TB被變換跳過時,步驟1650返回「否」。對於屬於單獨的編碼樹(例如1250)的色度分支並且具有小於四個樣本的寬度或高度的CU,步驟1650返回「否」。對於要執行的二次變換,適用的TB僅需在要經歷二次變換的TB位置中包含重要的殘差係數即可。即,所有其他殘差係數必須為零,這是針對圖8A-8D 所示的TB大小,當TB的最後位置在806、824、842或862內時達到的條件。如果對於所考慮的TB大小,CU中任何TB的最後位置在806、824、842或862之外,則不執行二次變換(步驟1650為「否」),並且方法1600進行到確定LFNST索引步驟1660。對於色度TB,可能會出現二個寬度或高度。寬度或高度為2的TB無需進行二次變換,因為沒有為此類尺寸的TB定義核心。執行二次變換的另一個條件是在適用的TB中至少存在AC殘差係數。也就是說,如果唯一的重要殘差係數在每個TB的DC(左上)位置,則不執行二次變換(步驟1650為「否」),並且方法1600進行到確定LFNST索引步驟1660。對最後重要係數位置的約束和非DC殘差係數的存在僅應用於適用大小的TB,即寬度和高度大於二個樣本。假設變換了至少一個適用的TB,滿足了最後的位置約束,並且滿足了非DC係數的要求(步驟1650為「是」),則處理器205中的控制前進至解碼LFNST索引步驟1670。
當二次變換不能應用於與CU相關聯的任何TB時,執行確定LFNST索引步驟1660。在步驟1660,處理器205確定二次變換索引具有零值,指示沒有應用二次變換。處理器205中的控制從步驟1660進行到MTS信令測試步驟1672。
在解碼LFNST索引步驟1670處,熵解碼器420解碼被截斷的一元碼字作為二次變換索引474,其指示用於應用二次變換的三個可能的選擇。選擇為零(不應用),一(應用候選集的第一個核心)和二(應用候選集的第二個核心)。該碼字最多使用二個bin,每個bin都是上下文編碼的。借助於在步驟1650執行的測試,僅在可能應用二次變換時,即對於非零索引被解碼時才執行步驟1670。當方法1600作為共享編碼樹的一部分被調用時,步驟1670從位元流133中解碼1120。當方法1600作為單獨的編碼樹的亮度分支的一部分被調用時,步驟1670從位元流133解碼1224。當作為獨立編碼樹的色度分支的一部分調用步驟1670時,步驟1670從位元流133解碼1254。處理器205中的控制從步驟1670進行到MTS信令步驟1672。
步驟1650、1660和1670用於確定LFNST索引,即474。如果適用於CU的亮度變換跳過旗標和色度變換跳過旗標指示將不跳過各個變換塊的變換(步驟1650為「是」並執行步驟1670)中的至少一者,則從視訊位元流解碼LFNST索引(例如,解碼1120、1224或1254)。如果適用於CU的所有亮度變換跳過旗標和色度變換跳過旗標均指示要跳過各個變換塊的變換(步驟1650為「否」並執行步驟1660),則確定LFNST索引指示將不應用二次變換。在共享樹的情況下,亮度和色度跳過值以及LFNST索引可能不同。例如,即使例如在並置的塊中的解碼的亮度變換跳過旗標指示要跳過亮度塊的變換,針對色度變換塊解碼的LFNST索引也可以基於解碼的色度跳過旗標。編碼步驟1480和1490以類似的方式操作。
在MTS信令步驟1672,視訊解碼器114確定是否需要從位元流133解碼MTS索引。如果在步驟1360選擇使用DCT-2變換,則當編碼位元流時,最後的重要係數位置可以在TB的左上32×32區中的任何地方。如果在步驟1620解碼的最後一個重要係數位置在TB的左上16×16區之外,則使用圖18和19的掃描,不必顯式解碼mts_idx,因為使用任何非DCT-2一次變換都不會在該區之外產生最後的重要係數。步驟1672返回「否」,並且方法1600從步驟1672進行到確定MTS索引步驟1674。僅當TB的寬度和高度小於或等於32時,非DCT2一次變換才可用。如果寬度或高度超過32,則步驟1672返回「否」,並且方法1600進行到確定MTS索引步驟1674。
僅當二次變換類型474指示旁路二次變換核心的應用時,非DCT-2一次變換才可用,因此,當二次變換類型474具有非零值時,方法1600從步驟1672進行到步驟1674。當使用圖18和19的掃描時,在TB的左上16×16區內存在最後重要係數位置,結果可能是由於應用DCT-2一次變換或DST-7及/或DCT-8的MTS組合所致,因此必須使用mts_idx的顯式信令來對在步驟1360中所做的選擇編碼。因此,當最後的重要係數位置在TB的左上16×16區內時,步驟1672返回「是」,並且方法1600進行到解碼MTS索引步驟1676。
在確定MTS索引的步驟1674中,視訊解碼器134確定DCT-2將被用作一次變換。一次變換類型476設定為零。方法1400從步驟1674進行到變換殘差步驟1680。
在解碼MTS索引步驟1676中,熵解碼器420對來自位元流133的被截斷的一元bin串解碼以確定一次變換類型476。被截斷的串在位元流中如圖11中的1122或圖12中的1226所示。方法1400從步驟1676進行到變換殘差步驟1680。
步驟1670、1672和1674用於確定編碼單元的MTS索引。如果最後一個重要係數在閾值座標(15,15)或之內,則從視訊位元流解碼MTS索引(在步驟1672和步驟1676為「是」)。如果最後重要係數在閾值座標之外,則確定MTS索引指示不應用MTS(步驟1672和步驟1674為「否」)。編碼步驟14100和14110以類似的方式操作。
在視訊編碼器114和視訊解碼器134的替代配置中,根據參考圖17所述的掃描圖樣來掃描適當大小的色度TB(其中MTS不適用於色度TB),同時亮度TB使用根據圖18和19的掃描,DST-7/DCT-8組合僅適用於亮度TB。
在變換殘差步驟1680處,視訊解碼器134在處理器205的執行下,旁路步驟1420的殘差上的反向一次變換和反向二次變換,或者根據一次變換類型476和二次變換索引474執行反向變換。如參考圖4所述,根據針對CU中的每個TB的解碼變換跳過旗標478,針對CU的每個TB執行變換。一次變換類型476在水平上和垂直上使用DCT-2,或者水平上和垂直上DCT-8和DST-7的組合之間進行選擇,用於編碼單元的亮度TB。有效地,步驟1680根據透過步驟1610和1650至1670的操作確定的解碼的亮度變換跳過旗標,一次變換類型476和二次變換索引來變換CU的亮度變換塊,以對編碼單元解碼。步驟1680還可以根據透過步驟1630和1650至1670的操作確定的各個解碼的色度變換跳過旗標和二次變換索引來對CU的色度變換塊進行變換,以對編碼單元解碼。對於屬於色度通道的TB(例如:在共享編碼樹情況下為1132和1136,或在單獨編碼樹情況下的色度分支為1264和1268),僅當TB的寬度和高度大於或等於四個樣本時才執行二次變換,由於沒有可用的寬度或高度小於四個樣本的TB的二次變換核心。對於屬於色度通道的TB,由於難以處理如此小的TB,因此在VVC標準中對分裂操作進行了限制,以禁止TB大小為2×2、2×4和4×2的框內預測CU,乃因這是由於難以用支援UHD和8K之類的視訊格式所需的所需塊吞吐率處理大小如此小的TB。進一步的限制禁止了寬度為2 TB的框內預測CU,這是由於難以存取通常用於產生重建樣本作為片內預測操作一部分的晶片上記憶體的記憶體。因此,表1中顯示不應用二次變換的色度TB大小(在色度樣本中)。
色度格式 最大變換大小 不應用二次變換的色度TB大小
4:2:0 32×32 8×2, 16×2
4:2:0 64×64 8×2, 16×2, 32×2
4:2:2 32×32 8×2, 16×2.
4:2:2 64×64 8×2, 16×2, 32×2
4:4:4 32×32 8×2, 16×2, 32×2
4:4:4 64×64 8×2, 16×2, 32×2, 64×2
1 色度TB大小(以色度樣本為單位),不應用二次變換。
如上所述,可以在編碼和解碼中使用不同的掃描圖樣。步驟1680根據MTS索引對CU的變換塊進行變換,以對編碼單元解碼。
方法1600從步驟1680繼續到產生預測塊步驟1690。在步驟1690,視訊解碼器134根據在步驟1360確定並由熵解碼器420從位元流113解碼的CU的預測模式產生預測塊452。如步驟1360所確定,熵解碼器420從位元流133解碼編碼單元的預測模式。解碼「pred_mode」語法元素以區分編碼單元的框內預測、框間預測、或其他預測模式。如果將框內預測用於編碼單元,則如果亮度PB適用於CU,則對亮度框內預測模式解碼,如果色度PB適用於CU,則對色度框內預測模式解碼。
方法1600從步驟1690繼續到重建編碼單元步驟16100。在步驟16100中,將預測塊452添加到CU的每個顏色通道的殘差樣本424,以產生重建的樣本456。額外的迴路濾波步驟,例如解塊,可以在將重建的樣本456輸出為框資料135之前應用於重建的樣本456。方法1600在執行步驟16100時終止。
如上所述,對於單獨的編碼樹,首先針對亮度分支1214a中的每個CU,例如1220,調用方法1600,且方法1600也針對在色度分支1214b中的每個色度CU,例如1250,被分別調用。關於色度的方法1600的調用在步驟1650至1670處確定是否設定了CU 1250的所有色度變換跳過旗標的LFNST索引1254。類似地,在用於亮度的方法1600的調用中,僅針對CU 1220的亮度變換跳過旗標在步驟1650至1670確定亮度LFNST索引1224。
與圖17中掃描圖案1710相比,圖18-20中所示的掃描圖樣,即1810、1910和2010a-f,如在步驟1450和1620所實作的,實質上保留了從TB的最高頻率係數向TB的最低頻率係數發展的特性。因此,使用掃描圖樣1810、1910和2010a-f的視訊編碼器114和視訊解碼器134的配置達成與使用掃描圖樣1710時所達成的壓縮效率相似的壓縮效率,同時啟用了MTS索引信令將取決於最後一個重要係數位置,而無需進一步檢查MTS變換係數區之外的零值殘差係數。與圖18-20的掃描圖樣一起使用的最後位置允許僅當所有重要係數都出現在適當的左上區(例如左上16×16區)時才使用MTS。排除掉在解碼器134檢查適當區域之外(例如,在TB的16×16係數區之外)的旗標以確保不存在其他不重要的係數的負擔。解碼器中的行為不需要特定的更改即可實作MTS。此外,如上所述,使用圖18和19中的掃描圖樣,也就是說,對於大小為16×32、32×16和32×32的變換塊,可以從16×16掃描中複製,從而減少了記憶體需求。
所描述的配置適用於電腦和資料處理行業,並且尤其適用於用於對諸如視訊和影像信號之類的信號的解碼編碼的數位信號處理,從而達成高壓縮效率。
在可用選擇包括除旁路二次變換之外的至少一個選項的情況下,本文所述的一些配置透過信令二次變換索引來提高壓縮效率。在將CTU分為跨越所有顏色通道的CU的情況下(「共享編碼樹」的情況),以及將CTU分為亮度CU和色度CU的集(「單獨的編碼樹」的情況),都可以達成壓縮效率的提高。在單獨的樹情況下,避免了在不能使用二次變換索引的情況下冗餘地信令二次變換索引。對於共享樹而言,即使亮度使用變換跳過,也可以針對色度DCT-2基本情況用信號通知LFNST索引。其他配置在使得MTS索引信令將能夠取決於最後一個重要係數位置的同時保持壓縮效率,而無需進一步檢查TB的MTS變換係數區域之外的零值殘差係數。
前述內容僅描述了本發明的一些實施例,並且在不脫離本發明的範圍和精神的情況下可以對其進行修改及/或改變,這些實施例是說明性的而非限制性的。
100:視訊編碼和解碼系統 110:來源裝置 112:視訊源 113:框資料 114:視訊編碼器 115:位元流 116:發送器 120:通訊通道 122:非暫態儲存裝置 130:目的地裝置 132:接收器 133:位元流 134:視訊解碼器 135:解碼的框資料 136:顯示裝置 200:電腦系統 201:電腦模組 202:鍵盤 203:滑鼠指標裝置 204:系統匯流排 205:處理器 206:記憶體 207:音訊-視訊介面 208:I/O介面 209:儲存裝置 210:硬碟驅動器(HDD) 211:本地網路介面 212:光碟驅動器 213:I/O介面 214:顯示器 215:印表機 216:數據機/收發器裝置 217:揚聲器 218:連接 219:連接 220:通訊網路 221:連接 222:網路 223:連接 224:連接 225:磁碟儲存媒體 226:掃描器 227:相機 228:記憶體位置/指令(第1部分) 229:記憶體位置/指令(第2部分) 230:記憶體位置/指令(第3部分) 231:指令 232:資料 233:應用程式/軟體 234:記憶體 235:記憶體位置/資料 236:記憶體位置/資料 237:記憶體位置/資料 239:控制單元 240:算術邏輯單元(ALU) 241:內部匯流排 242:介面 244:暫存器 245:暫存器 246:暫存器 248:快取記憶體 249:唯讀記憶體(ROM) 250:開機自我檢測(POST)程式 251:基本輸入輸出系統軟體(BIOS)(BIOS)BIOS 252:啟動載入程式 253:作業系統 254:輸入變數 255:記憶體位置 256:記憶體位置 257:記憶體位置 258:中間變數 259:記憶體位置 260:記憶體位置 261:輸出變數 262:記憶體位置 263:記憶體位置 264:記憶體位置 266:記憶體位置 267:記憶體位置 280:麥克風 310:塊分隔器 312:CU(編碼單元) 320:PU(預測塊) 322:減法器模組 324:差值 326:正向一次變換模組 328:一次變換係數 330:正向二次變換模組 332:二次變換係數 333:多工器 334:量化器模組/量化器 336:TB (變換塊) 338:熵編碼器 340:去量化器 342:去量化的殘差係數 344:反向二次變換模組 346:中間反向變換係數 348:反向一次變換模組 349:多工器 350:殘差樣本 352:求和模組 354:重建的樣本 356:參考樣本快取 358:參考樣本 360:參考樣本濾波器 362:參考樣本 364:框內預測模組 366:樣本塊 368:迴路內濾波模組 370:經濾波的樣本 372:框緩衝器 374:參考框 376:運動估計模組 378:運動向量 380:運動補償模組 382:參考樣本 384:多工器模組 386:模式選擇器 387:框內預測模式 388:二次變換索引 389:一次變換類型 390:變換跳過旗標 399:殘差樣本 420:熵解碼器/熵解碼器模組 424:殘差係數 428:去量化器模組 432:重建的變換係數 434:運動補償模組 436:反向二次變換模組 438:框間預測的樣本塊 440:重建的變換係數 444:模組 448:殘差樣本 449:多工器 450:求和模組 452:解碼的PB 456:重建的樣本 458:框內預測模式參數 460:重建樣本快取 464:參考樣本 468:參考樣本濾波器 472:經濾波的參考樣本 474:二次變換索引/二次變換類型 476:一次變換類型/框內預測模組 478:變換跳過旗標 480:樣本塊 484:多工器模組 488:迴路內濾波模組 496:框緩衝器 498:樣本塊 499:殘差樣本 500:集合 510:葉節點 512:四元樹分裂 514:水平二元分裂 516:垂直二元分裂 518:水平三元分裂/三元水平分裂 520:垂直三元分裂/三元垂直分裂 600:資料流 610:QT分裂決定 612:MT分裂決定 614:方向決定 616:BT/TT分裂決定 618:BT/TT分裂決定 620:產生QT CTU節點 622:產生葉節點 625:產生HBT CTU節點 626:產生HTT CTU節點 627:產生VBT CTU節點 628:產生VTT CTU節點 700:劃分 710:CTU(編碼樹單元) 712:CU(編碼單元) 714:節點 716:節點 718:節點 720:編碼樹 800:關係 802:一次變換係數 804:二次變換係數 806:圖樣 810:正向不可分離的二次變換 812:反向二次變換 818:關係 820:一次係數 822:一次變換係數 824:二次變換係數 826:係數位置 830:正向二次變換 832:反向二次變換 840:一次變換係數 842:二次變換係數 850:正向不可分離的二次變換 852:反向二次變換 855:關係 860:一次變換係數 862:二次變換係數 864:一次變換係數 866:二次變換係數位置 870:正向不可分離的二次變換 872:反向二次變換 875:關係 900:集合 910:TB(變換塊) 912:TB(變換塊) 914:TB(變換塊) 916:TB(變換塊) 920:TB(變換塊) 922:變換塊 924:變換塊 926:變換塊 930:TB(變換塊) 932:變換塊 934:變換塊 936:變換塊 940:TB(變換塊) 942:變換塊 944:變換塊 946:變換塊 950:二次變換 952:二次變換 966:係數 1000:語法結構 1001:位元流 1008:NAL單元標頭 1010:序列參數集(SPS) 1012:圖片參數集(PPS) 1014:存取單元(AU) 1015:圖片標頭(PH) 1016:片段1 1018:片段標頭 1020:片段資料 1100:CTU(編碼樹單元) 1104:片段資料 1110:CTU(編碼樹單元) 1114:CU(編碼單元) 1116:預測模式 1118:變換樹 1120:附加亮度二次變換索引/LFNST索引 1122:MTS索引 1123:編碼塊旗標 1124:TU(變換單元) 1126:變換跳過旗標 1130:變換跳過旗標 1132:變換跳過旗標 1134:變換跳過旗標 1136:第二色度TB Cr 1140:最後位置 1144:殘差係數 1200:語法結構 1204:片段資料 1210:CTU(編碼樹單元) 1214:節點 1214a:亮度節點 1214b:色度節點 1220:亮度CU 1221:亮度預測模式 1222:亮度變換樹 1224:二次變換索引 1226:Cr塊 1230:TU(變換單位) 1232:亮度變換跳過旗標 1234:亮度TB 1236:最後位置 1238:殘差係數 1250:色度CU 1251:色度預測模式 1252:色度變換樹 1254:二次變換索引 1260:TU(變換單元) 1262:Cb變換跳過旗標 1264:Cb TB 1266:Cr變換跳過旗標 1268:Cr TB 1270:最後位置 1272:殘差係數 1300:方法 1310:步驟 1320:步驟 1330:步驟 1340:步驟 1350:步驟 1360:步驟 1370:步驟 1380:步驟 1390:步驟 1400:方法 1410:步驟 1420:步驟 1430:步驟 1440:步驟 1450:步驟 1460:步驟 1470:步驟 1480:步驟 1490:步驟 14100:步驟 14110:步驟 1500:方法 1510:步驟 1520:步驟 1530:步驟 1540:步驟 1550:步驟 1570:步驟 1580:步驟 1590:步驟 15100:步驟 1600:方法 1610:步驟 1620:步驟 1630:步驟 1640:步驟 1650:步驟 1660:步驟 1670:步驟 1672:步驟 1674:步驟 1676:步驟 1680:步驟 1690:步驟 16100:步驟 1700:TB(變換塊) 1710:掃描圖樣 1720:子塊 1721:子塊 1730:最後重要係數位置 1740:部分 1750:子塊 1800:TB(變換塊) 1810:掃描圖樣 1830:最後位置 1840:集合 1900:TB(變換塊) 1910:掃描圖樣 1930:最後一個重要位置 1940:集合 2000:TB(變換塊) 2010:掃描順序 2010a:掃描圖樣 2010b:掃描圖樣 2010c:掃描圖樣 2010d:掃描圖樣 2010e:掃描圖樣 2010f:掃描圖樣 2030:最後一個重要係數位置 2040:區
現在將參考以下圖式和附錄描述本發明的至少一個實施例,其中:
[圖1]是顯示視訊編碼和解碼系統的示意性方塊圖;
[圖2A和2B]形成通用電腦系統的示意性方塊圖,在該通用電腦系統上可以實踐圖1的視訊編碼和解碼系統之一或二者;
[圖3]是顯示視訊編碼器的功能模組的示意方塊圖;
[圖4]是顯示視訊解碼器的功能模組的示意方塊圖;
[圖5]是示意性方塊圖,顯示在通用視訊編碼的樹結構中將一個塊劃分成一或多個塊的可用劃分;
[圖6]是用於在通用視訊編碼的樹結構中達成將塊允許劃分為一或多個塊的資料流的示意圖;
[圖7A和7B]顯示將編碼樹單元(CTU)劃分為多個編碼單元(CU)的示例;
[圖8A、8B、8C和8D]顯示根據變換塊的不同大小執行的正向和反向不可分離的二次變換;
[圖9]顯示用於各種尺寸的變換塊的二次變換的一組應用區;
[圖10]顯示具有多個片段的位元流的語法結構,每個片段包括多個編碼單元;
[圖11]顯示具有共享樹的位元流的語法結構,該共享樹用於編碼樹單元的亮度和色度編碼單元;
[圖12]顯示具有單獨樹的位元流的語法結構,該樹用於編碼樹單元的亮度和色度編碼單元;
[圖13]顯示用於將框編碼為包括一或多個片段作為編碼單元序列的位元流的方法;
[圖14]顯示用於將編碼單元編碼為位元流的方法;
[圖15]顯示用於從位元流解碼框的方法,該位元流是被配置為片段的編碼單元的序列;
[圖16]顯示用於從位元流解碼編碼單元的方法;以及
[圖17]顯示用於32×32 TB的習用掃描圖樣;
[圖18]顯示在所描述的配置中使用的用於32×32 TB的示例掃描圖樣;
[圖19]顯示大小為8×32的TB,並已將其劃分為上述配置的集合;以及
[圖20]顯示在所描述的配置中使用的針對32×32TB的不同示例掃描圖樣。
100:視訊編碼和解碼系統
110:來源裝置
112:視訊源
113:框資料
114:視訊編碼器
115:位元流
116:發送器
120:通訊通道
122:非暫態儲存裝置
130:目的地裝置
132:接收器
133:位元流
134:視訊解碼器
135:解碼的框資料
136:顯示裝置

Claims (9)

  1. 一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道和至少一個色度顏色通道,該方法包括: 從該視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標; 從該視訊位元流解碼至少一個色度變換跳過旗標,該每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 確定二次變換索引,該確定包括: 如果該亮度變換跳過旗標和該至少一個色度變換跳過旗標中的至少一者指示將不跳過該各個變換塊的變換,則從該視訊位元流解碼該二次變換索引,且 如果所有該亮度變換跳過旗標和該至少一個色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及 根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
  2. 如請求項1之方法,其中,該解碼的亮度變換跳過旗標具有與該至少一個色度變換跳過旗標不同的值。
  3. 如請求項1之方法,其中,如果該解碼的亮度變換跳過旗標指示該亮度塊的變換將被跳過,則基於該解碼的至少一個色度跳過旗標來針對該至少一個色度變換塊對該二次變換索引解碼。
  4. 如請求項1之方法,其中,該變換步驟包括以下步驟之一:基於該確定的二次變換索引跳過二次變換的應用或選擇二個二次變換核心之一以供應用之用。
  5. 一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有至少一個色度顏色通道,該方法包括: 從該視訊位元流解碼至少一個色度變換跳過旗標,該每個色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 為該編碼單元的該至少一個色度變換塊確定二次變換索引,該確定包括: 如果該至少一個色度變換跳過旗標中的任何一者指示將變換應用於該對應的色度變換塊,則從該視訊位元流解碼該二次變換索引,且 如果所有該色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及 根據該各自的色度變換跳過旗標和該確定的二次變換索引來對該至少一個色度變換塊中的每一個變換,以解碼該編碼單元。
  6. 一種從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道和至少一個色度顏色通道,該方法包括: 從該視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標; 從該視訊位元流解碼至少一個色度變換跳過旗標,該每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 確定二次變換索引,該確定包括: 如果所有該亮度變換跳過旗標和該至少一個色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換,且 如果所有該亮度變換跳過旗標和該至少一個色度變換跳過旗標均指示不跳過該各個變換塊的變換,則從該視訊位元流解碼該二次變換索引;以及 根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該對該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
  7. 一種非暫態電腦可讀媒體,具有儲存在其上的電腦程式,以實作從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有亮度顏色通道以及至少一個色度顏色通道,該方法包括: 從該視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標; 從該視訊位元流解碼至少一個色度變換跳過旗標,該每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 確定二次變換索引,該確定包括: 如果該亮度變換跳過旗標和該至少一個色度變換跳過旗標中的至少一者指示將不跳過該各個變換塊的變換,則從視訊位元流解碼該二次變換索引,且 如果所有該亮度變換跳過旗標和該至少一個色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及 根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
  8. 一種系統,包括: 記憶體;以及 處理器,其中,該處理器被配置為執行儲存在該記憶體上的碼,以實作從視訊位元流的影像框的編碼樹單元解碼編碼樹的編碼單元的方法,該編碼單元具有至少一個色度顏色通道,該方法包括: 從該視訊位元流解碼至少一個色度變換跳過旗標,該每個色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 為該編碼單元的該至少一個色度變換塊確定二次變換索引,該確定包括: 如果該至少一個色度變換跳過旗標中的任何一者指示將變換應用於該對應的色度變換塊,則從該視訊位元流解碼該二次變換索引,且 如果所有該一或多個色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及 根據該各自的色度變換跳過旗標和該確定的二次變換索引來對該至少一個色度變換塊中的每一個變換,以解碼該編碼單元。
  9. 一種視訊解碼器,配置為: 從位元流接收影像框; 從該影像框的編碼樹單元確定編碼樹的編碼單元,該編碼單元具有亮度顏色通道和至少一個色度顏色通道; 從視訊位元流解碼用於該編碼單元的亮度變換塊的亮度變換跳過旗標; 從視訊位元流解碼至少一個色度變換跳過旗標,該每個解碼的色度變換跳過旗標對應於該編碼單元的至少一個色度變換塊中之一者; 確定二次變換索引,該確定包括: 如果該亮度變換跳過旗標和該至少一個色度變換跳過旗標中的至少一者指示將不跳過該各個變換塊的變換,則從視訊位元流解碼該二次變換索引,且 如果所有該亮度變換跳過旗標和該至少一個色度變換跳過旗標均指示要跳過該各個變換塊的變換,則確定該二次變換索引用以指示將不應用二次變換;以及 根據該解碼的亮度變換跳過旗標、該至少一個色度變換跳過旗標以及該確定的二次變換索引變換該亮度變換塊和該至少一個色度變換塊,以解碼該編碼單元。
TW109139290A 2019-12-03 2020-11-11 用於將編碼樹單元編碼與解碼的方法、設備及系統 TWI784345B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
AU2019275552A AU2019275552B2 (en) 2019-12-03 2019-12-03 Method, apparatus and system for encoding and decoding a coding tree unit
AU2019275552 2019-12-03

Publications (2)

Publication Number Publication Date
TW202123708A true TW202123708A (zh) 2021-06-16
TWI784345B TWI784345B (zh) 2022-11-21

Family

ID=76220929

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109139290A TWI784345B (zh) 2019-12-03 2020-11-11 用於將編碼樹單元編碼與解碼的方法、設備及系統

Country Status (6)

Country Link
US (1) US20220394311A1 (zh)
JP (2) JP2023504333A (zh)
CN (1) CN114667731A (zh)
AU (2) AU2019275552B2 (zh)
TW (1) TWI784345B (zh)
WO (1) WO2021108833A1 (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP7461473B2 (ja) * 2019-11-13 2024-04-03 エルジー エレクトロニクス インコーポレイティド 変換に基づく映像エンコード方法およびその装置
AU2019275553B2 (en) * 2019-12-03 2022-10-06 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding a coding tree unit
US20220417547A1 (en) * 2021-06-17 2022-12-29 Tencent America LLC Skip transform flag coding

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2014071439A1 (en) * 2012-11-08 2014-05-15 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
AU2012232992A1 (en) * 2012-09-28 2014-04-17 Canon Kabushiki Kaisha Method, apparatus and system for encoding and decoding the transform units of a coding unit
US10708164B2 (en) * 2016-05-03 2020-07-07 Qualcomm Incorporated Binarizing secondary transform index
CN114339228B (zh) * 2016-05-04 2024-04-12 夏普株式会社 用于对变换数据进行编码的系统和方法
CN109076222B9 (zh) * 2016-05-13 2021-10-15 索尼公司 图像处理装置和方法
BR112019013831A2 (pt) * 2017-01-03 2020-01-28 Lg Electronics Inc método de processamento de imagem e aparelho para tal finalidade
CN111699682A (zh) * 2017-12-07 2020-09-22 韩国电子通信研究院 用于使用通道之间的选择性信息共享进行编码和解码的方法和设备
US11310517B2 (en) * 2017-12-07 2022-04-19 Electronics And Telecommunications Research Institute Method and apparatus for encoding and decoding using selective information sharing between channels
US10491914B2 (en) * 2018-03-29 2019-11-26 Tencent America LLC Transform information prediction
US11039139B2 (en) * 2018-09-14 2021-06-15 Tencent America LLC Method and apparatus for identity transform in multiple transform selection

Also Published As

Publication number Publication date
AU2019275552B2 (en) 2022-10-13
CN114667731A (zh) 2022-06-24
AU2019275552A1 (en) 2021-06-17
TWI784345B (zh) 2022-11-21
US20220394311A1 (en) 2022-12-08
WO2021108833A1 (en) 2021-06-10
AU2022228215A1 (en) 2022-10-06
JP2024056945A (ja) 2024-04-23
JP2023504333A (ja) 2023-02-03

Similar Documents

Publication Publication Date Title
JP7391175B2 (ja) 復号する方法、ビデオ復号装置、符号化する方法、ビデオ符号化装置
KR102579286B1 (ko) 비디오 샘플들의 변환된 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
AU2011236109B2 (en) Method, apparatus and system for encoding and decoding the significance map for residual coefficients of a transform unit
TWI821610B (zh) 用於將編碼樹單元編碼與解碼的方法、設備及系統
TWI813922B (zh) 從視訊位元流解碼影像和編碼影像為視訊位元流的方法及其解碼設備和編碼設備以及非暫態電腦可讀取媒體
TW202123708A (zh) 用於將編碼樹單元編碼與解碼的方法、設備及系統
CN113557731B (zh) 用于编码和解码视频样本的块树的方法、设备和系统
JP2023159400A (ja) ビデオサンプルのブロックを符号化及び復号するための方法、装置、及びシステム
TWI823023B (zh) 用於編碼與解碼視訊樣本區塊的方法、設備以及系統
TW202126050A (zh) 用於編碼及解碼視訊取樣區段的方法, 設備及系統
TW202101981A (zh) 用以編碼和解碼視頻樣本之區塊樹的方法、設備及系統
AU2020201694A1 (en) Method, apparatus and system for encoding and decoding a coding unit tree
JP2024046650A (ja) ビデオサンプルのブロックを符号化並びに復号するための方法、装置、及びシステム
KR20230010707A (ko) 비디오 샘플들의 블록을 인코딩 및 디코딩하기 위한 방법, 장치 및 시스템
AU2012203827A1 (en) Method, apparatus and system for encoding and decoding the reference picture index of a prediction unit