TW202127880A - 具有分割限制條件之小尺寸編碼單元分割方法和裝置 - Google Patents

具有分割限制條件之小尺寸編碼單元分割方法和裝置 Download PDF

Info

Publication number
TW202127880A
TW202127880A TW109128632A TW109128632A TW202127880A TW 202127880 A TW202127880 A TW 202127880A TW 109128632 A TW109128632 A TW 109128632A TW 109128632 A TW109128632 A TW 109128632A TW 202127880 A TW202127880 A TW 202127880A
Authority
TW
Taiwan
Prior art keywords
block
root block
equal
type
mode
Prior art date
Application number
TW109128632A
Other languages
English (en)
Other versions
TWI751657B (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 TW202127880A publication Critical patent/TW202127880A/zh
Application granted granted Critical
Publication of TWI751657B publication Critical patent/TWI751657B/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/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/103Selection of coding mode or of prediction mode
    • 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/109Selection of coding mode or of prediction mode among a plurality of temporal predictive coding modes
    • 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/11Selection of coding mode or of prediction mode among a plurality of spatial predictive coding modes
    • 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/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/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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • 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/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame 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/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/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/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • 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

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)

Abstract

公開了一種視訊編解碼的方法和裝置。 根據本發明的一種方法,在編碼器側接收包括一個亮度分量和一個或多個420或422色度格式的色度分量的根塊,或者在解碼器側接收包括根塊的壓縮資料。 當滿足一個或多個條件時,為根塊內的所有子塊確定目標模式類型。 條件包括子塊色度分量的寬度等於2或大小小於16。 如果沒有為包圍根塊的圖像區域選擇幀內類型模式,則目標模式類型對應於幀內或幀間類型模式,否則目標模式類型對應於幀內類型模式。 根塊中的子塊被相應地編碼或解碼。

Description

具有分割限制條件之小尺寸編碼單元分割方法和裝置
本發明涉及視訊編碼中的小塊(small block)的預測模式選擇。 特別地,本發明公開了提高小塊的處理速度的技術。
高效視訊編解碼(HEVC)標準是在ITU-T視訊編解碼專家組(VCEG)和ISO / IEC運動圖像專家組(MPEG)標準化組織的聯合視訊項目,尤其是與稱為視訊編碼聯合協作團隊(JCT-VC)的合作夥伴關係開發的。 在HEVC中,一個切片被分割為多個編解碼樹單元(CTU)。 在主配置文件中,CTU的最小和最大大小由序列參數集(SPS)中的語法元素指定。 允許的CTU大小可以是8x8、16x16、32x32或64x64。 對於每個切片,將根據光柵掃描順序處理切片內的CTU。
CTU被進一步分割成多個編解碼單元(CU)以適應各種局部特徵。用表示為編解碼樹的四叉樹將CTU分割為多個CU。假設CTU大小為MxM,其中M是64、32或16的值之一。CTU可以是單個CU(即不分割(split)),也可以分割成四個大小相等的較小單元(即每個為M /2 x M / 2),對應於編解碼樹的節點。如果單元是編解碼樹的葉節點,則這些單元將成為CU。否則,可以重複四叉樹分割過程,直到節點的大小達到SPS(Sequence Parameter Set,簡寫為序列參數集)中指定的最小允許CU大小為止。該表示導致由第1圖中的編解碼樹(也稱為分區樹結構)120所指定的遞歸結構。第1圖中示出了CTU分區110,其中實線指示CU邊界。在CU級別做出使用圖片間(Inter-picture)(時間)或圖片內(Intra-picture)(空間)預測對圖片區域進行解碼的決定。由於最小CU大小可以為8x8,因此在不同的基本預測類型之間進行切換的最小粒度為8x8。
此外,根據HEVC,可以將每個CU分割為一個或多個預測單元(PU)。PU與CU一起用作共享預測資訊的基本代表塊。 在每個PU內部,應用相同的預測過程,並且基於PU將相關資訊發送到解碼器。 可以根據PU分割類型將CU分成一個、兩個或四個PU。 HEVC定義了用於將CU分成PU的八種形狀,如第2圖所示,包括MxM、MxM/2、M/2xM、M/2xM/2、MxM/4(U)、MxM/4(D)、M/4xM(L)和M/4xM(R)分割類型。 與CU不同,根據HEVCPU可以僅分割一次。 第二行(row)中所示的分割對應於不對稱分割,其中兩個分割部分具有不同的大小。
在通過基於PU分割類型的預測過程獲得殘差塊之後,可以根據另一種四叉樹結構將CU的預測殘差分割為變換單元(TU),該四叉樹結構類似於如第1圖所示的CU的編解碼樹。 實線表示CU邊界,虛線表示TU邊界。 TU是具有用於應用整數變換和量化的殘差或變換係數的基本代表性塊。 對於每個TU,應用具有與TU相同大小的一個整數變換以獲得殘差係數。 在以TU為基礎量化之後,將這些係數發送到解碼器。
術語編解碼樹塊(CTB)、編解碼塊(CB)、預測塊(PB)和變換塊(TB)被定義為指定分別與CTU、CU、PU和TU相關聯的一個顏色分量的2-D樣本陣列。 因此,CTU由一個亮度CTB、兩個色度CTB和相關的語法元素組成。 類似的關係對CU、PU和TU有效。 樹分割通常同時應用於亮度和色度,但是當達到色度的某些最小尺寸時例外。
另外,提出了二叉樹塊分割結構。 在所提出的分割處理中,可以遞歸地將塊分割成兩個較小的塊。第3圖示出了不同的分割類型。最有效和最簡單的是對稱的水平和垂直分割(即,M/2xM 和MxM/2),如第3圖中前兩個分割類型所示。 因此,作為範例,我們僅使用這兩種分割類型。
對於大小為M×N的給定塊,發信(signal)標誌以指示其是否被分成兩個較小的塊。 如果標誌指示分割,則發信另一語法元素以指示使用哪種分割類型。 如果使用水平分割,則將給定塊分成兩個大小為M×N / 2的塊;否則將給定塊分成兩個大小為M /2×N的塊。可以迭代二叉樹分割過程,直到塊的大小(寬度或高度)達到在諸如SPS的高級語法中定義的最小允許塊大小(寬度或高度)。由於二叉樹具有兩種分割類型(即水平和垂直),因此應指示最小允許塊寬度和高度。當分割將導致塊高度小於指示的最小高度時,隱含地禁止水平分割(Non- horizontal splitting)。當分割將導致塊寬度小於指示的最小寬度時,隱含地禁止垂直分割(Non-vertical splitting)。
第4圖示出了塊分割410及其對應的二叉樹420的示例。在二叉樹的每個分割節點(即,非葉節點)中,使用一個標誌來指示使用哪種分割類型(水平或垂直),其中0表示水平分割,1表示垂直分割。
二叉樹結構可用於將圖像區域分割為多個較小的塊,諸如將切片分割為CTU,將CTU分割為CU,將CU分割為PU,或將CU分割為TU,等等。 二叉樹可以用於將CTU分割為CU,其中二叉樹的根節點是CTU,二叉樹的葉節點是CU。 葉節點可以通過預測和變換編解碼進一步處理。 為了簡化,不存在從CU到PU或從CU到TU的進一步分割,這意味著CU等於PU並且PU等於TU。 因此,換句話說,二叉樹的葉節點是用於預測和轉換編解碼的基本單元。
QTBT 結構
二叉樹結構比四叉樹結構更靈活,因為可以支持更多的分割形狀,這也是編解碼效率改進的來源。 但是,編碼複雜度也會增加,以便選擇最佳的分割形狀。 為了平衡複雜性和編碼碼效率,已經公開了一種組合四叉樹和二叉樹結構的方法,也稱為四叉樹加二叉樹(QTBT)結構。 根據QTBT結構,CTU(或I 切片的CTB)是四叉樹的根節點,CTU首先由四叉樹分割,其中一個節點的四叉樹分割可以迭代,直到節點達到允許的最小四叉樹葉節點大小(即MinQTSize)。 如果四叉樹葉節點大小不大於最大允許二叉樹根節點大小(即,MaxBTSize),則可以通過二叉樹進一步對其進行分割。可以迭代一個節點的二叉樹分割,直到節點達到最小允許二叉樹葉節點大小(即,MinBTSize)或最大允許二叉樹深度(即,MaxBTDepth)。 二叉樹葉節點,即CU(或用於I切片的CB)將用於預測(例如,圖像內或圖像間預測)並且在沒有任何進一步分割(partition)的情況下進行變換。 二叉樹分割中有兩種分割類型:對稱水平分割和對稱垂直分割。 在QTBT結構中,允許的最小四叉樹葉節點大小、允許的最大二叉樹根節點大小、允許的最小二叉樹葉節點寬度和高度以及允許的最大二叉樹深度可以在高級語法中,例如在SPS中指示。 第5圖示出了塊分割510及其對應的QTBT 520的示例。實線表示四叉樹分割,虛線表示二叉樹分割。 在二叉樹的每個分割節點(即,非葉節點)中,一個標誌指示使用哪種分割類型(水平或垂直),0可以指示水平分割,1可以指示垂直分割。
上述QTBT結構可用於將圖像區域(例如,切片、CTU或CU)分割為多個較小的塊,例如將切片分割為CTU,將CTU分割為CU,將CU分割為PU,或將CU分割為TU等。 例如,QTBT可以用於將CTU分割為CU,其中QTBT的根節點是CTU,其通過QTBT結構分割為多個CU,並且CU通過預測和變換編解碼進一步處理。 為了簡化,不存在從CU到PU或從CU到TU的進一步分割。 這意味著CU等於PU並且PU等於TU。 因此,換句話說,QTBT結構的葉節點是用於預測和變換的基本單元。
QTBT結構的示例如下所示。 對於大小為128x128的CTU,允許的最小四叉樹葉節點大小設置為16x16,允許的最大二叉樹根節點大小設置為64x64,允許的最小二叉樹葉節點寬度和高度都設置為4,並且允許的最大二叉樹深度設置為4。首先,CTU由四叉樹結構分割,葉四叉樹單元可以具有從16x16(即,允許的最小四叉樹葉節點大小)到128x128(等於CTU大小,即, 沒有分割)。 如果葉四叉樹單元是128x128,則由於大小超過允許的最大二叉樹根節點大小64x64,因此無法通過二叉樹進一步分割。否則,葉四叉樹單元可以通過二叉樹進一步分割。 葉四叉樹單元也是根二叉樹單元,其二叉樹深度為0。當二叉樹深度達到4(即,如所指示的最大允許二叉樹)時,隱含地暗示不分割。 當相應二叉樹節點的塊具有等於4的寬度時,隱含地暗示非水平分割。 當相應二叉樹節點的塊具有等於4的高度時,隱含地暗示非垂直分割。 通過預測(圖像內(Intra picture)或圖像間(Inter picture))和變換編解碼進一步處理QTBT的葉節點。
對於I-切片,QTBT樹結構通常應用亮度/色度分離編解碼。 例如,QTBT樹結構分別應用於I-slice的亮度和色度分量,並且同時應用於P-和B-切片的亮度和色度(除非達到色度的某些最小大小)。 換句話說,在I-切片中,亮度CTB具有其QTBT結構的塊分割,並且兩個色度CTB具有另一個QTBT結構的塊分割。 在另一示例中,兩個色度CTB還可以具有它們自己的QTBT結構塊分割。
公開了一種視訊編碼和解碼的方法和裝置。根據本發明的一種方法,在編碼器側接收包括一個亮度分量和一個或多個420或422色度格式的色度分量的根塊(root block),或者在解碼器側接收包括根塊的壓縮資料,其中,根塊由一個或多個子塊組成,這些子塊是通過使用單個分區樹(partition tree)對一個編解碼區域進行分區而得到的。當滿足一個或多個條件時,為根塊內的所有所述一個或多個子塊確定目標模式類型,其中所述一個或多個條件包括,一個子塊的所述一個或多個色度分量的第一寬度等於2,並且如果沒有為包圍根塊的圖像區域選擇幀內類型模式(Intra type mode),則目標模式類型對應於幀內類型模式或幀間類型模式(Inter type mode),否則,目標模式類型對應於幀內類型模式。根據目標模式類型,根塊中的所述一個或多個子塊在編碼器側被編碼或在解碼器側被解碼。
在一個實施例中,一個子塊的所述一個或多個色度分量的第一寬度等於2對應於一個情況,即根塊的所述一個亮度分量的第二寬度等於8並且該根塊的單個分區樹包括二元垂直分區(binary vertical partition)。在另一實施例中,一個子塊的所述一個或多個色度分量的第一寬度等於2對應於一個情況,即根塊的所述一個亮度分量的第二寬度等於16,並且所述根塊的單個分區樹包括三元垂直分區(ternary vertical partition)。
在一個實施例中,當根塊為420色度格式時,一個子塊的所述一個或多個色度分量的第一寬度等於2對應於一個情況,即根塊的所述一個亮度分量的第二寬度和高度分別等於8和16,並且用於根塊的單個分區樹包括二元垂直分區,對於根塊的所述一個亮度分量的第二寬度和高度等於16,並且用於根塊的單個分區樹包括三元垂直分區,根塊的所述一個亮度分量的第二寬度和高度分別等於4和32,並且根塊的單個分區樹包括二元或三元水平分區,或者根塊的所述一個亮度分量的第二寬度和高度分別等於4和64,並且用於根塊的單個分區樹包括三元水平分區。
在一個實施例中,當根塊為422色度格式時,一個子塊的所述一個或多個色度分量的第一寬度等於2對應於一個情況,即根塊的所述一個亮度分量的第二寬度和高度等於8,並且所述根塊的單個分區樹包括二元垂直分區;根塊的所述一個亮度分量的第二寬度和高度分別等於16和8,並且所述根塊的單個分區樹包括三元垂直分區;根塊的所述一個亮度分量的第二寬度和高度分別等於4和16,並且所述根塊的單個分區樹包括二元或三元水平分區;或者根塊的所述一個亮度分量的第二寬度和高度分別等於4和32,並且所述根塊的單個分區樹包括三元水平分區。
在一個實施例中,如果沒有為包圍根塊的圖像區域選擇幀內類型模式,則在編碼器側發信第一語法或在解碼器側解析第一語法以指示幀內類型模式或幀間類型為根塊選擇模式。
編解碼區域可以對應於編解碼樹單元。圖像區域可以對應於切片。在這種情況下,切片報頭中的第二語法在編碼器側發信或在解碼器側進行解析以指示切片的編碼解碼類型。
還公開了用於對具有單個分區樹的小塊進行模式類型約束的另一種方法和裝置。根據該方法,當滿足一個或多個條件時,確定針對根塊內的所有子塊的目標模式類型。條件包括一個子塊的色度分量的第一塊大小小於16。如果沒有為包圍根塊的圖像區域選擇幀內類型模式,則目標模式類型對應於幀內類型模式或幀間類型模式,否則目標模式類型對應於幀內類型模式。
在一個實施例中,用於一個子塊的所述一個或多個色度分量的第一塊大小等於4。例如,該條件可以對應於420色度格式的根塊,其塊大小為64並且根塊的單個分區樹包括四叉樹分區、三元垂直分區、三元水平分區、二元垂直分區或二元水平分區。
在另一實施例中,用於一個子塊的所述一個或多個色度分量的第一塊大小等於8。
以下描述是實施本發明的最佳構想模式。進行該描述是出於說明本發明的一般原理的目的,而不應被認為是限制性的。本發明的範圍最好通過參考所附的申請專利範圍來確定。
在幀內預測中,相鄰的重構樣本被用作當前塊的參考樣本。如果塊大小非常小(例如2x2色度CU),則處理吞吐量受到限制,因為處理器最多只能預測當前塊的樣本,而不能預測更多。如果有多個小塊,則無法提高處理吞吐量。因此,在本發明的一個實施例中,提出了在區域內共享相同的參考樣本以改善並行處理。
在以下提出的方法中,定義了共享根CU /根塊(share root CU/root block)。根塊的左上角位置為sharedRootPos,寬度為sharedRootWidth,高度為sharedRootHeight。根塊的推導如下。
在一個實施例中,在分區時,如果當前塊可以滿足一個或多個預定義條件,並且尚未設置根塊,則位置若根塊設置為當前塊的左上位置,並且根塊的寬度和高度等於當前塊的寬度和高度,否則不設置根塊。
在一個實施例中,在分區期間,如果子塊之一可以滿足一個或多個預定義條件,並且尚未設置根塊,則將根塊的左上位置設置為當前塊的左上位置,並且根塊的寬度和高度等於當前塊的寬度和高度;否則,不設置根塊。
上面提到的預定義條件可以與當前塊的大小(或面積)有關。在一個實施例中,預定條件對應於大小是否小於等於(或小於)預定閾值TH。閾值可以是4、8、16、32、64、128、256、512、1024、2048和4096。
如果存在根塊並且在根塊內使用幀內模式,則在幀內預測模式下共享參考樣本,根據當前塊和根塊推導用於正常幀內模式、LM模式和/或CIIP模式的參考樣本;否則,參考樣本將以原始方式推導。
在一個實施例中,根塊不應超過幀邊界。
在一個實施例中,共享根塊的位置也將用於MPM推導。
在一個實施例中,共享根塊可用於亮度和色度分量。
在一個實施例中,共享根塊僅可用於亮度分量。
在一個實施例中,共享根塊僅可用於色度分量。
在一個實施例中,對於一個圖塊/切片/圖片/圖塊組/視訊序列,存在一個標誌以指示當前的圖塊/切片/圖片/圖塊組/視訊序列是否需要確定根塊。在一個實施例中,在解析度小於1080P的序列中,該高級別標誌被設置為假。
當啟用幀內塊複製(Intra Block Copy,簡寫為IBC)模式時: a.     在一個實施例中,在共享樹和獨立樹(separate tree)中,從IBC塊的塊向量(BV)推導的參考塊不能與根塊重疊; b.    在另一個實施例中,僅在共享樹中,從IBC塊的塊向量(BV)推導的參考塊不能與根塊重疊; 以及 c.     在另一個實施例中,僅在獨立樹中,從IBC塊的塊向量(BV)推導的參考塊不能與根塊重疊。
如果推導的色度BV(或色度和亮度BV)會使參考色度塊(或色度和亮度塊)與相應的色度根塊(或色度和亮度根塊)重疊:
在一個實施例中,在雙樹(dual tree)中,色度塊(或色度和亮度塊兩者)不能使用IBC模式。
在另一實施例中,在雙樹或共享樹或兩者中,推導的色度BV(或色度和亮度BV兩者)將在水平/垂直方向或水平和垂直方向上延伸,以使得參考色度塊不要與相應的色度根塊(或色度和亮度根塊)重疊。
在一個實施例中,延伸方向取決於重疊區域的寬度和高度,如果寬度大於或等於高度,則BV將沿垂直方向延伸;否則,BV將在水平方向上延伸。
在另一個實施例中,在雙樹或共享樹或兩者中,與對應的色度根塊(或色度和亮度根塊兩者)重疊的參考色度塊(或色度和亮度塊兩者)的樣本將替換為填充樣本。
在另一個實施例中,僅當位置在根塊之外時才可以使用IBC合併候選。
在另一個實施例中,當定位相鄰塊時,IBC合併候選推導將使用根塊的邊界。
如果在I切片中應用了獨立樹分區(也稱為雙樹),則亮度和色度分量可以使用不同的樹分區。對於色度樹分區,最小的CU大小可能是2x2,這太小了,會降低吞吐量。
在一個實施例中,最小的色度CU大小受大小/面積、寬度/高度或深度的約束。例如,最小色度CU大小可以設置為等於16(以色度樣本解析度為單位)。在另一個示例中,最小色度CU寬度或高度可以設置為等於4。
大小約束可以是僅編碼器更改(encoder only change)或規範更改(normative change)。
在另一個實施例中,根CU概念可以僅應用於亮度樹、僅應用於色度樹或用於亮度樹和色度樹兩者。 例如,根CU僅應用於色度樹。 根色度CU大小的閾值為64、32或16。對於此根色度CU,將啟用進一步的CU分割。 然而,對於該根CU內的子CU,參考樣本被共享用於幀內預測和/或LM。
如果分區樹是共享的(例如,在切片間(Inter-slice)或I切片中使用共享樹分區進行共享樹分區),則提出了不同的方法來避免小色度幀內塊或減少連續色度幀內塊之間的資料依賴性 。
方法 1 :根塊內的模式約束
在另一個實施例中,確定根塊,並且該根塊內的所有塊必須具有相同的預測模式。
在一個實施例中,相同模式意味著根塊內的所有塊必須為幀內/ IBC預測模式或幀間預測模式。
亮度分量可以進一步分割為較小的塊,並且色度分量的分割遵循亮度塊。 對於根塊內的幀內預測塊,色度塊將使用根塊的頂部和左側邊界來生成幀內預測子,這將導致連續色度塊之間的資料依賴性較小。 在一個實施例中,對於該色度CU,所有子CU可以使用一個TU。
當啟用幀內塊複製(Intra Block Copy,簡寫為IBC)模式時: .如果推導的色度BV將使參考色度塊與相應的色度根塊重疊: i.     在一實施例中,在雙樹中,色度塊不能使用IBC模式。 ii.     在另一實施例中,在雙樹、共享樹或兩者中,推導的色度BV將在水平/垂直方向或水平和垂直方向上延伸,以使參考色度塊不與對應的色度根塊重疊。 iii.     在另一個實施例中,在雙樹、共享樹或兩者中,與相應色度根塊重疊的參考色度塊的樣本將被填充樣本(padded sample)替換。
在一個實施例中,對於子CU必須具有相同預測模式的根CU,每個CU的預測模式被約束為相同。例如,每個CU的預測模式語法仍然被發信。但是,它們應相同。在一個實施例中,根CU內的預測模式應相同是位元流一致性(conformance)。在另一實施例中,發信根塊中的第一CU的預測模式。對於根塊中的其餘CU,不會發信預測模式。在一個示例中,僅幀間模式CU需要發信跳過標誌和相關語法。如果CU已經被推斷為幀內CU,則跳過標誌被推斷為假(false)。
方法 2 :禁止在根塊中進行色度分割
在確定根塊的情況下,可以將該根塊的亮度分量進一步分割為較小的塊,但是該根塊的色度分量不能進一步分割,這導致多個亮度塊對應於一個色度塊。該根塊內的塊不必具有相同的預測模式。
在一個實施例中,可以發信非分割(non-split)色度CU的預測模式。
在另一個實施例中,可以推斷非分割色度CU的預測模式。
如果推斷出該根CU內的色度塊的預測模式,則確定參考亮度塊。參考亮度塊可以是根塊中的第一個亮度塊、根塊中的最後一個亮度塊、覆蓋根塊中心位置(例如,右下中心,例如第6圖中的BR-C塊) 的亮度塊、根塊中面積最大的亮度塊、覆蓋根塊四個角之一的亮度塊、根塊中的第一個幀內編解碼的亮度塊或根塊中第一個幀間編解碼的亮度塊。如果啟用了IBC,則參考塊可以是第一個IBC編解碼的亮度塊、最後一個IBC編解碼的亮度塊或在根塊中具有預定義位置(例如中心位置)的亮度塊。
在一個實施例中,如果參考亮度塊是幀內預測,則將根據參考亮度塊來推導色度塊的幀內預測模式。
在另一個實施例中,如果參考亮度塊是幀內預測,則色度塊的幀內預測模式將是預定義模式,例如,DC或平面。
在一個實施例中,如果參考亮度塊是幀內預測,則將色度塊視為非ISP(Intra Sub-partition Prediction,幀內子分區預測)模式。
在另一實施例中,對於色度塊,其預測模式可以被顯式地發信並且可以與亮度塊不同。
在一個實施例中,如果參考亮度塊是幀間預測,則色度塊的MV是從亮度塊的MV推導的。
在一個實施例中,推斷為幀間預測模式的非分割色度CU不能是合併模式。
在一個實施例中,被推斷為幀間預測模式的非分割色度CU不能是子塊變換(sub-block transform,簡寫為SBT)模式。
在一個實施例中,被推斷為幀間預測模式的非分割色度CU無法應用解碼器側運動矢量微調(decoder-side motion vector refinement,簡寫為DMVR),並且參考MV是微調之前/之後的MV。
在一個實施例中,被推斷為幀間預測模式的非分割色度CU不能是三角形模式。
在另一個示例中,對應的亮度CU的加權平均亮度MV可以用於該色度CU。所有CU的權重可以相同,或者取決於CU面積。在一個實例中,如果對應的亮度CU使用子塊模式(例如,ATMVP模式或仿射模式或MV平面模式),則色度CU也使用相同的模式但具有更大的CU尺寸。在另一示例中,色度MV被顯式地發信。
當根塊內的亮度塊具有幀間和幀內預測模式時,可以應用一些約束來推導色度幀內預測模式。
在一個實施例中,色度分量可以是組合幀內幀間預測(CIIP)模式。
在一個實施例中,參考塊只能是幀間模式。幀間預測模式資訊可以從第一個亮度幀間塊、最後一個幀間亮度塊或具有最大面積的亮度幀間塊繼承。
在一個實施例中,如果參考亮度塊是幀內預測模式,則不允許線性模型(LM)模式。
在另一個實施例中,可以有條件地推斷出非分割色度CU的預測模式。如果參考亮度塊是幀間預測模式,則將色度CU推斷為幀間預測模式,並且運動資訊從參考亮度塊繼承。如果參考亮度塊不是幀間模式,則將發信未分割色度CU的預測模式。
當啟用幀內塊複製(IBC)模式時,只能選擇具有BV的IBC塊,其不會使參考色度塊與相應的色度根塊重疊。 在另一個實施例中,只能選擇具有BV的IBC塊,其不會使參考亮度和色度塊與對應的亮度和色度根塊重疊。
在另一個實施例中,如果所選擇的參考亮度塊是IBC模式,則推導的亮度參考塊不能與根塊重疊。
在另一個實施例中,如果所選擇的參考亮度塊是IBC模式,並且如果推導的亮度參考塊與根塊重疊,則亮度BV將被擴展。
在另一個實施例中,如果所選擇的參考亮度塊是IBC模式,並且如果推導的亮度參考塊與根塊重疊,則僅推導的色度BV將被擴展。
方法 3 :模式約束並有條件地禁止在根塊內進行色度分割
在另一個實施例中,確定根塊;該根塊的亮度分量可以進一步分割為較小的塊;根塊的色度分量是否可以進一步分割,取決於相同根塊內亮度塊的預測模式和相應的色度塊大小。
在一個實施例中,如果當前根塊內的所有塊均為幀間預測模式,則色度分量的分割遵循亮度塊。如果當前根塊內的所有塊均為幀內/ IBC模式,則該根塊的色度分量無法進一步分割,這將導致多個亮度塊與一個色度塊相對應。同樣,由於4x4亮度分區中不支持幀間模式(Inter mode),因此,當一個分區節點具有一個或多個亮度塊大小等於4x4的子節點時,該節點被推斷為非幀間模式(幀內或IBC模式)。
在一個實施例中,發信標誌mode_constraint_flag以指示根塊的預測模式。根塊內的所有塊應為幀間預測模式或幀內/ IBC預測模式。例如,當mode_constraint_flag等於1時,根塊中的所有塊都是幀間編解碼塊,否則,根塊中的所有塊都是幀內 / IBC編解碼的塊。
是否解碼mode_constraint_flag 取決於變量modeTypeCondition。變量modeTypeCondition的推導如下: –若以下條件之一為真, modeTypeCondition 設置為等於0 –slice_type = = I 且 qtbtt_dual_tree_intra_flag 等於1 –modeTypeCurr 不等於MODE_TYPE_ALL – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 –      cbWidth * cbHeight 等於THRES 且split_qt_flag 等於1 –      cbWidth * cbHeight 等於THRES 且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –      cbWidth * cbHeight 等於(THRES>>1) 且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR 或SPLIT_BT_VER –   否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) –      cbWidth * cbHeight 等於THRES 且 MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR 或 SPLIT_BT_VER –      cbWidth * cbHeight 等於(THRES<<1) 且 MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –   否則, modeTypeCondition 設置為等於0。
在以上推導中, MttSplitMode[ x0 ][ y0 ][ mttDepth ] 代表多類型樹(multi-type tree,簡寫為MTT)中的編解碼單元的水平和垂直二元和三元分割。變量THRES的推導如下: 若顏色格式為4:4:4, THRES 設置為等於16, 否則, 若顏色格式為4:2:2, THRES 設置為等於32, 否則, 若顏色格式為4:2:0, THRES 設置為等於64。
在另一實施例中,變量THRES的推導如下: 若顏色格式為4:4:4, THRES 設置為等於8/16/32/64, 否則, 若顏色格式為4:2:2, THRES 設置為等於16/32/64/128, 否則, 若顏色格式為4:2:0, THRES 設置為等於32/64/128/256。
在另一實施例中, 色度格式(chroma format)用作決定modeTypeCondition的條件之一。用於422色度格式和420色度格式的modeTypeCondition 推導是不同的。當色度格式等於444色度格式時,modeTypeCondition 始終設置為0。modeTypeCondition的推導如下: –      若chroma_format_idc 等於1 (當使用4:2:0色度格式時), 變量modeTypeCondition的推導如下: – 若以下條件之一為真, modeTypeCondition 設置為等於0 –      slice_type = = I 且qtbtt_dual_tree_intra_flag 等於1 –      modeTypeCurr 不等於MODE_TYPE_ALL – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 –      cbWidth * cbHeight 等於64且split_qt_flag 等於1 –      cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –      cbWidth * cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER (在另一實施例中, 該條件可被移除) – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) –      cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      cbWidth * cbHeight 等於128且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER
在另一實施例中, 增加以下兩個條件: –      cbWidth 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      cbWidth 等於16且split_qt_flag 等於0且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中,增加以下4個條件: –      cbWidth 等於8且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      cbWidth 等於16且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER –      cbWidth 等於4且cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR –      cbWidth 等於4且cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR – 否則, modeTypeCondition 設置為等於0 –      否則, 若chroma_format_idc 等於2 (當使用4:2:2 色度格式時), 變量modeTypeCondition的推導如下: – 若以下條件之一為真, modeTypeCondition 設置為等於0 –      slice_type = = I 且qtbtt_dual_tree_intra_flag 等於1 –      modeTypeCurr 不等於MODE_TYPE_ALL – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 –      cbWidth * cbHeight 等於64且split_qt_flag 等於1 –      cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –      cbWidth * cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER
在一個實施例中, modeTypeCondition 設置如下所示: – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) –       cbWidth 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      cbWidth 等於16且split_qt_flag 等於0且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中, modeTypeCondition設置如下所示: – 否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) –      cbWidth 等於8且cbHeight 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      cbWidth 等於16且cbHeight 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER –      cbWidth 等於4且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR –      cbWidth 等於4且cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR – 否則, modeTypeCondition 設置為等於0 –      否則, 若chroma_format_idc 等於3 (當使用4:4:4色度格式), 變量modeTypeCondition設置為0。 –      否則, (當使用單色(monochrome)時,chroma_format_idc 等於0), 變量modeTypeCondition 設置為等於0。
在另一實施例中, 色度格式用作確定modeTypeCondition的條件之一。用於422 色度格式和420 色度格式的modeTypeCondition推導是不同的。當色度格式等於444 色度格式時,modeTypeCondition 總設置為0。modeTypeCondition的推導如下: –      若以下條件之一為真, modeTypeCondition 設置為等於0 – slice_type = = I 且qtbtt_dual_tree_intra_flag 等於1 – modeTypeCurr 不等於MODE_TYPE_ALL – chroma_format_idc 等於0或3 –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 – cbWidth * cbHeight 等於64且split_qt_flag 等於1 – cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER – cbWidth * cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      否則, 以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) – 若chroma_format_idc 等於1且cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER – 若chroma_format_idc 等於1且cbWidth * cbHeight 等於128且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER
在一個實施例中, 增加以下兩個條件: – cbWidth 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – cbWidth 等於16且split_qt_flag 等於0 且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中, 增加以下8個條件: – 若chroma_format_idc 等於1且cbWidth 等於8且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – 若chroma_format_idc 等於1且cbWidth 等於16且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER – 若chroma_format_idc 等於1且cbWidth 等於4且cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR – 若chroma_format_idc 等於1且cbWidth 等於4且cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR – 若chroma_format_idc 等於2且cbWidth 等於8且cbHeight 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – 若chroma_format_idc 等於2且cbWidth 等於16且cbHeight 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER – 若chroma_format_idc 等於2且cbWidth 等於4且cbHeight 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR – 若chroma_format_idc 等於2且cbWidth 等於4且cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR –      否則, modeTypeCondition 設置為等於0
在該實施例中,僅當使用4:2:0色度格式時,才可以將modeTypeCondition設置為2。因此,僅在使用4:2:0色度格式時才發信/解析mode_constraint_flag。當色度格式不是4:2:0時,不發信mode_constraint_flag。另外,僅當使用4:2:0或4:2:2色度格式時,才能將modeTypeCondition設置為1。因此,當使用4:2:0或4:2:2色度格式時,根塊類型將被推斷為MODE_TYPE_INTRA。對於4:2:2色度格式,modeTypeCondition只能為0或1。對於4:4:4色度格式,modeTypeCondition只能為0。對於4:2:0色度格式,modeTypeCondition只能為0或1或2。
在另一個實施例中,約束不是由CB大小定義的(例如cbWidth * cbHeight)。相反,它是通過考慮cbWidth、cbHeight、SubWidthC、SubHeightC來定義的,其中SubWidthC、SubHeightC是由色度格式定義的。可以如下推導modeTypeCondition。是否解碼mode_constraint_flag取決於變量modeTypeCondition。變量modeTypeCondition的推導如下: – 若以下條件之一為真, modeTypeCondition 設置為等於0 –slice_type = = I且qtbtt_dual_tree_intra_flag 等於1 –modeTypeCurr 不等於MODE_TYPE_ALL –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 –  cbWidth * cbHeight 等於64且split_qt_flag 等於1 –  cbWidth * cbHeight 等於64且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –  cbWidth * cbHeight 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) – (cbWidth/SubWidthC) * (cbHeight/SubHeightC) 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER – (cbWidth/SubWidthC) * (cbHeight/SubHeightC) 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER
在上文中,modeTypeCurr表示當前塊的modeType。 變量modeType指定是否可以使用幀內(即MODE_INTRA)、IBC(即MODE_IBC)、調色板(即MODE_PLT)和幀間解碼模式(即MODE_TYPE_ALL),或是否僅可以使用幀內、IBC和調色板編解碼模式(即MODE_TYPE_INTRA),或者是否僅可以使用幀間編解碼模式(即MODE_TYPE_INTER)來編解碼編解碼樹節點內的編解碼單元。
在一個實施例中, 增加以下兩個條件: – (cbWidth/SubWidthC) 等於4且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – (cbWidth/SubWidthC) 等於8且split_qt_flag 等於0且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中, 增加以下4個條件: –      (cbWidth/SubWidthC) 等於4且(cbHeight/SubHeightC) 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      (cbWidth/SubWidthC) 等於8且(cbHeight/SubHeightC) 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER –      (cbWidth/SubWidthC) 等於2且(cbHeight/SubHeightC) 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR –      (cbWidth/SubWidthC) 等於2且(cbHeight/SubHeightC) 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR –      否則, modeTypeCondition 設置為等於0
在另一實施例中, 約束並非由cb大小(例如 cbWidth * cbHeight) 定義。它的定義考慮色度格式、cbWidth、cbHeight、SubWidthC、SubHeightC, 其中SubWidthC、SubHeightC 通過色度格式定義。modeTypeCondition可如下導出。 變量modeTypeCondition的推導如下: –      若以下條件之一為真, modeTypeCondition 設置為等於0 –      slice_type = = I 且qtbtt_dual_tree_intra_flag 等於1 –      modeTypeCurr 不等於MODE_TYPE_ALL –      chroma_format_idc == 0 –      chroma_format_idc == 3 –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 –      (cbWidth / SubWidthC) * (cbHeight / SubHeightC) 等於16且split_qt_flag 等於1 –      (cbWidth / SubWidthC) * (cbHeight / SubHeightC) 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER –      (cbWidth / SubWidthC) * (cbHeight / SubHeightC) 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) –      (cbWidth / SubWidthC) * (cbHeight / SubHeightC) 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      (cbWidth / SubWidthC) * (cbHeight / SubHeightC) 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER
在一個實施例中, 增加以下兩個條件: –      (cbWidth/SubWidthC) 等於4且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      (cbWidth/SubWidthC) 等於8且split_qt_flag 等於0且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中, 增加以下4個條件: –      (cbWidth/SubWidthC) 等於4且(cbHeight/SubHeightC) 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER –      (cbWidth/SubWidthC) 等於8且(cbHeight/SubHeightC) 等於8且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER –    (cbWidth/SubWidthC) 等於2且(cbHeight/SubHeightC) 等於16且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR –      (cbWidth/SubWidthC) 等於2且(cbHeight/SubHeightC) 等於32且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR –      否則, modeTypeCondition 設置為等於0
在另一實施例中, 約束並非由cb大小(例如 cbWidth * cbHeight) 定義。相反,它的定義考慮chroma_format_idc、cbWidth、cbHeight、SubWidthC、SubHeightC, 其中SubWidthC、SubHeightC 通過色度格式定義。modeTypeCondition可如下導出。 變量modeTypeCondition的推導如下: –      若以下條件之一為真, modeTypeCondition 設置為等於0 –      slice_type = = I 且qtbtt_dual_tree_intra_flag 等於1 –      modeTypeCurr 不等於MODE_TYPE_ALL –      chroma_format_idc == 0 –      chroma_format_idc == 3 –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1,導出如下:
變量minLuma 設置為等於: –      (cbWidth*cbHeight) >> 2 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER或split_qt_flag 等於1 –      (cbWidth*cbHeight) >> 1 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      否則,cbWidth * cbHeight。
變量minChroma 設置為等於minLuma / (SubWidthC  * SubHeightC)。 在一個實施例中, –      modeTypeCondition 設置為等於0,若minChroma大於 8. –      否則, modeTypeCondition 設置為等於1 + (slice_type  ==  I  || minLuma == 16?) 0 :1
在另一實施例中, 變量minLumaWidth 設置為等於: –      cbWidth >> 2 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER –      cbWidth >> 1 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER或split_qt_flag 等於1 –      否則,cbWidth。
變量minChromaWidth 設置為等於minLumaWidth / SubWidthC。
變量minLumaHeight 設置為等於: –      cbHeight >> 2 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR –      cbHeight >> 1 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或split_qt_flag 等於1 –      否則,cbHeight。
變量minChromaHeight 設置為等於minLumaHeight / SubHeightC。 –      modeTypeCondition 設置為等於0, 若minChroma is higher than 8且minChromaWidth大於2且minChromaHeight大於8. –      否則, modeTypeCondition 設置為等於1 + (slice_type  ==  I  || minLuma == 16?) 0 :1
在另一實施例中, 變量minLumaWidth 設置為等於: –      cbWidth >> 2 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER且split_qt_flag 等於0 –      cbWidth >> 1 ,若MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER或split_qt_flag 等於1 -        否則,cbWidth。
變量minChromaWidth 設置為等於minLumaWidth / SubWidthC。 –      modeTypeCondition 設置為等於0 ,若minChroma is higher than 8且minChromaWidth 大於2。 –      否則, modeTypeCondition 設置為等於1 + (slice_type  ==  I  || minLuma == 16?) 0 :1
在另一實施例中, 約束並非由cb大小(例如 cbWidth * cbHeight) 定義。它的定義考慮cbWidth、cbHeight、SubWidthC、SubHeightC, 其中SubWidthC、SubHeightC 通過色度格式定義。modeTypeCondition可如下導出。 變量modeTypeCondition的推導如下: –   若以下條件之一為真, modeTypeCondition 設置為等於0 –slice_type = = I且qtbtt_dual_tree_intra_flag 等於1 –modeTypeCurr 不等於MODE_TYPE_ALL –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 – cbWidth * cbHeight 等於64, cbWidth * cbHeight 小於64 * SubWidthC * SubHeightC,且split_qt_flag 等於1 – cbWidth * cbHeight 等於64, cbWidth * cbHeight 小於64 * SubWidthC * SubHeightC,且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER – cbWidth * cbHeight 等於32, cbWidth * cbHeight 小於32 * SubWidthC * SubHeightC,且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER –      否則, 若以下條件之一為真, modeTypeCondition 設置為等於1 + (slice_type  !=  I ? 1 : 0) – cbWidth * cbHeight 小於32 * SubWidthC * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_BT_VER – cbWidth * cbHeight 小於64 * SubWidthC * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR或SPLIT_TT_VER
在一個實施例中, 增加以下兩個條件: – cbWidth 等於4 * SubWidthC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – cbWidth 等於8 * SubWidthC且split_qt_flag 等於0且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER
在另一實施例中, 增加以下4個條件: – cbWidth 等於4* SubWidthC且cbHeight 等於8 * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_VER – cbWidth 等於8* SubWidthC且cbHeight 等於8 * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_VER – cbWidth 等於2* SubWidthC且cbHeight 等於16 * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_BT_HOR或SPLIT_TT_HOR – cbWidth 等於2* SubWidthC且cbHeight 等於32 * SubHeightC且MttSplitMode[ x0 ][ y0 ][ mttDepth ] 等於SPLIT_TT_HOR –      否則, modeTypeCondition 設置為等於0
在另一個實施例中,當使用單色時,modeTypeCondition始終設置為等於0。
當modeTypeCondition等於2時,將對mode_constraint_flag進行解碼,並且根據mode_constraint_flag來設置modeType。 當modeTypeCondition等於1時,modeType推斷為MODE_TYPE_INTRA,則根塊內的所有塊都是幀內/ IBC預測的。 當modeTypeCondition等於0時,不會更改modeType。 語法表如下: 1. 示例 的語法表
coding_tree( x0, y0, cbWidth, cbHeight, qgOn, cbSubdiv, cqtDepth, mttDepth, depthOffset, partIdx,                 treeTypeCurr , modeTypeCurr ) { 描述
   if( ( allowSplitBtVer | | allowSplitBtHor | | allowSplitTtVer | | allowSplitTtHor | | allowSplitQT )          &&( x0 + cbWidth  <=  pic_width_in_luma_samples )         &&  (y0 + cbHeight  <=  pic_height_in_luma_samples ) )  
     split_cu_flag ae(v)
   if( cu_qp_delta_enabled_flag  &&  qgOn  &&  cbSubdiv  <=  cu_qp_delta_subdiv ) {  
      IsCuQpDeltaCoded  =  0  
      CuQpDeltaVal  =  0  
      CuQgTopLeftX  =  x0  
      CuQgTopLeftY  =  y0  
   }  
   if( split_cu_flag ) {  
      if( ( allowSplitBtVer | | allowSplitBtHor | | allowSplitTtVer | | allowSplitTtHor )  &&              allowSplitQT )   
        split_qt_flag ae(v)
      if( !split_qt_flag ) {  
         if( ( allowSplitBtHor  | |  allowSplitTtHor ) &&              ( allowSplitBtVer  | |  allowSplitTtVer ) )  
           mtt_split_cu_vertical_flag ae(v)
         if( ( allowSplitBtVer  &&  allowSplitTtVer  &&  mtt_split_cu_vertical_flag ) | |              ( allowSplitBtHor  &&  allowSplitTtHor  &&  !mtt_split_cu_vertical_flag ) )  
           mtt_split_cu_binary_flag ae(v)
      }  
      if( modeTypeCondition  = =  2 ) {  
        mode_constraint_flag ae(v)
         modeType  =  mode_constraint_flag ? MODE_TYPE_INTRA : MODE_TYPE_INTER  
      }  
      else  
         modeType  =  ( modeTypeCondition  = =  1 ) ? MODE_TYPE_INTRA : modeTypeCurr  
      treeType  =  ( modeType = = MODE_TYPE_INTRA ) ? DUAL_TREE_LUMA : treeTypeCurr  
      if( !split_qt_flag ) {  
         if( MttSplitMode[ x0 ][ y0 ][ mttDepth ]  = =  SPLIT_BT_VER ) {  
            depthOffset  +=  ( x0 + cbWidth  >  pic_width_in_luma_samples ) ? 1 : 0  
            x1 = x0 + ( cbWidth / 2 )  
            coding_tree( x0, y0, cbWidth / 2, cbHeight, qgOn, cbSubdiv + 1,                                   cqtDepth, mttDepth + 1, depthOffset, 0, treeType , modeType )  
            if( x1 < pic_width_in_luma_samples )  
               coding_tree( x1, y0, cbWidth / 2, cbHeightY, qgOn, cbSubdiv + 1,                                   cqtDepth, mttDepth + 1, depthOffset, 1, treeType , modeType )  
         } else if( MttSplitMode[ x0 ][ y0 ][ mttDepth ]  = =  SPLIT_BT_HOR ) {  
     …….  
在一個實施例中,不管顏色格式如何,如果子塊之一的色度CB大小小於16個色度樣本,並且尚未設置根塊,則根塊的左上位置設置為當前塊的左上角位置,並且根塊的寬度和高度等於當前塊的寬度和高度,否則不設置根塊。閾值可以是4、8、16、32、64、128、256、512、1024、2048和4096。
當根塊被確定為幀間模式時,不允許4x4亮度塊分區。因此,不允許產生亮度塊大小等於4x4的一個或多個子子塊(children sub-block)的塊分割。該塊分區標誌的語法被跳過並推斷為未按塊分區的類型分割。
在一個實施例中,當modeTypeCurr等於MODE_TYPE_INTER時,當CU / CB面積等於32時,BT分割是不允許的,而當CU / CB面積等於64時,TT分割是不允許的。由父分區節點決定modeTypeCurr並傳遞給當前節點。因此,根據從父節點傳遞的變量(modeTypeCurr),當CU / CB分別等於32或64時,分別不允許使用BT分割或TT分割。禁止分區意味著不發信分割語法,並且將其推斷為0。例如,當modeTypeCurr等於MODE_TYPE_INTER且cbWidth * cbHeight分別等於32或64時,分別將allowBtSplit或allowTtSplit設置為等於0 / 假(false)。
方法 4 :當禁止色度分區分割時的去塊修改
在幀間切片(或共享樹)中,如果包含亮度分量和色度分量的根塊具有不同的分割,則將對亮度和色度的去塊處理進行分離。也就是說,色度塊/ CU不能重複使用亮度塊/ CU的邊界強度(Boundary Strength,簡寫為Bs)設置。色度塊/ CU的邊界強度(Bs)設置將單獨設置,然後對色度分量應用過濾。
在一個實施例中,如果當前CU是色度CU,並且相鄰CU是亮度CU,則色度分量的邊界強度(BS)值將被設置為2。
在一個實施例中,如果當前CU是色度CU,並且相鄰CU是亮度CU,則色度分量的邊界強度(BS)值將被設置為1。
方法 5 :禁止色度分區分割時簡化二次變換( reduced secondary transform ,簡寫為 RST )修改
在幀間切片(或共享樹)中,如果根塊包含具有不同分區的亮度分量和色度分量,則根區域中亮度塊和色度塊的RST決策不同。
在一個實施例中,RST不應用於根塊中的色度塊且不在其中發信。
在另一個實施例中,如果塊寬度和塊高度都大於2個色度樣本,則僅對根塊中的色度塊應用RST並發信。
根塊中的非零係數水平設置與雙樹中的設置相同。
例如,對於根塊中的亮度塊,將閾值更改為LFNST_SIG_LUMA,對於根塊中的色度塊,將閾值更改為LFNST_SIG_CHROMA,其中LFNST_SIG_LUMA和LFNST_SIG_CHROMA 分別是亮度和色度分量的閾值。
在根塊中推導的上下文變量(context variables)也與雙樹中的設置相同。
例如,如果在單樹(single tree)中,mts索引小於2,並且當前塊在根塊中,則上下文變量將增加1;否則(在單樹中,mts索引小於2,但不在根塊中),上下文變量將不會增加1。
方法 6 :禁止色度分區分割時的幀內子分區預測( intra subpartition prediction 簡寫為 ISP )修改
對於根塊中的亮度塊,將沒有色度子分區。
方法 7 :禁止色度分區分割時的變量 QP Delta QP ,簡寫為 DQP )修改
在單樹中,不會在根塊的色度塊中發信cu等級變量QP。
方法 8 :禁止色度分區分割時的預測模式發信
可以推斷出根塊中發信的預測模式。 -        未啟用IBC時: 對於根塊中的亮度塊: –      在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,並且根塊是幀內/ IBC預測模式,則將預測模式推斷為幀內預測模式,不需要語法發信以指示預測模式。 –      在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,並且根塊是幀間預測模式,則將預測模式推斷為幀間預測模式,則不需要語法發信。 對於色度塊: –      在一個實施例中,將預測模式推斷為幀內預測模式。 -        啟用IBC時: 對於根塊中的亮度塊: –      在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,並且根塊是幀間預測模式,則將亮度塊推斷為幀間預測模式,則不需要語法發信。 –      在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,並且根塊是幀內/ IBC預測模式,並且當前塊中不允許IBC,則將預測模式推斷為幀內預測模式,則不需要語法發信。
在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,則如果根塊是幀內/ IBC預測模式,並且如果在當前塊中允許IBC,則僅需要發信IBC預測標誌。如果IBC預測標誌為真(true),則預測模式為IBC模式。
在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,則如果根塊是幀內/ IBC預測模式,並且如果在當前塊中允許IBC,僅需要發信預測模式標誌。如果預測模式標誌為真(true),則預測模式為幀內模式。
對於色度塊,在一個實施例中,如果當前塊中不允許IBC且將預測模式推斷為幀內預測模式,則不需要發信語法。在一個實施例中,如果在當前塊中允許IBC,則僅需要發信IBC預測標誌。如果IBC預測標誌為真,則預測模式為IBC模式。在一個實施例中,如果在當前塊中不允許IBC,則僅需要發信預測模式標誌。如果預測模式標誌為真,則預測模式為幀內模式。
方法 9 :禁止色度分區分割時的跳過標誌發信
可以如下推斷根塊中發信的預測模式。 -        未啟用IBC時: 對於根塊中的亮度塊: –在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,並且根塊處於幀內/ IBC模式,則無需發信跳過標誌(skip flag),並推斷跳過標誌為假。 對於色度塊,無法應用跳過模式,因此不需要跳過標誌的語法。 -        啟用IBC時: 對於根塊中的亮度塊: –在一個實施例中,如果亮度塊的左上位置與根塊的左上位置不同,則如果根塊是幀內/ IBC模式並且當前塊中不允許IBC,則跳過標誌不需要被發信,並被推斷為假。
在另一個實施例中,如果跳過標誌為真,並且亮度塊的左上位置與根塊的左上位置不同,根塊為幀內/ IBC模式,則當前塊的預測模式被推斷為IBC模式,無需發信IBC標誌。否則(如果跳過標誌為真,並且亮度塊的左上位置與根塊的左上位置不同,根塊為幀間模式),則將當前塊的預測模式推斷為幀間模式。
對於色度塊,不能應用跳過模式,因此不需要跳過標誌的語法。
上面提到的切片可以是一個切片、一個圖塊、一個圖塊組或一張圖片。
在VTM-6中,採用局部雙樹來防止小色度幀內CU,以提高處理吞吐量。例如,如果通過三叉樹(TT)分割來分割128個亮度樣本CU,並且以幀內模式對SCIPU進行編解碼,則SCIPU是局部雙樹。在此SCIPU中,色度塊無法分割,並導致8x4(即32個色度樣本)CU。
在局部雙樹或SCIPU的概念中,它試圖不使色度CU小於16個色度樣本。然而,在不違反約束的情況下(即,不具有色度樣本小於16個樣本的色度CU),可以將32個色度樣本CU進一步分成兩個16個色度樣本CU。為了提高編解碼效率,可以將這種色度CU通過二叉樹(BT)分割分割為兩個色度CU。例如,可以分為兩個4x4色度CU或兩個8x2色度CU。同樣,如果SCIPU /局部雙樹大小的亮度樣本大小為8x16,色度樣本大小為4x8,則可以將其進一步分割為兩個4x4色度CU或兩個2x8色度CU。為此,在一個實施例中,修改了BT分割約束。當前節點/ CU的樹類型等於DUAL_TREE_CHROMA並且SCIPU modeType等於MODE_TYPE_INTRA時,並且(cbWidth / SubWidthC)*(cbHeight / SubHeightC)等於32,或者大於或等於32 ,則不必禁止使用BT(即可以應用BT)。但是,當當前節點/ CU的樹類型等於DUAL_TREE_CHROMA並且SCIPU modeType等於MODE_TYPE_INTRA,並且(cbWidth / SubWidthC)*(cbHeight / SubHeightC)/ 2小於16個樣本時,BT為不允許的。在另一個示例中,當當前節點/ CU的樹類型等於DUAL_TREE_CHROMA並且SCIPU modeType等於MODE_TYPE_INTRA,並且(cbWidth / SubWidthC)*(cbHeight / SubHeightC)小於或等於16時,禁止使用BT。
在一個實施例中, 原始語法的一部分如下所示。變量allowBtSplit的推導如下: 若一個或多個下述條件為真, allowBtSplit 設置為等於FALSE: –   cbSize小於或等於MinBtSizeY –   cbWidth 大於maxBtSize –   cbHeight 大於maxBtSize –   mttDepth 大於或等於maxMttDepth –   treeType 等於DUAL_TREE_CHROMA且( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC ) 小於或等於16 –   treeType 等於DUAL_TREE_CHROMA且modeType 等於MODE_TYPE_INTRA。
語法可被修改如下。變量allowBtSplit的推導如下: 若一個或多個下述條件為真, allowBtSplit 設置為等於FALSE: –    cbSize 小於或等於MinBtSizeY –    cbWidth 大於maxBtSize –    cbHeight 大於maxBtSize –    mttDepth 大於或等於maxMttDepth –    treeType 等於DUAL_TREE_CHROMA且( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC ) 小於或等於16 –    treeType 等於DUAL_TREE_CHROMA且modeType 等於MODE_TYPE_INTRA且 ( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC ) 小於或等於16。
在另一實施例中, 增加兩個條件: –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且cbWidth / SubWidthC 小於或等於4 –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且modeType 等於MODE_TYPE_INTRA且the cbWidth / SubWidthC 小於或等於4
在另一實施例中, 增加兩個條件: –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且cbWidth / SubWidthC 小於或等於4且cbHeight / SubHeightC 小於或等於8 –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且modeType 等於MODE_TYPE_INTRA且cbWidth / SubWidthC 小於或等於4且cbHeight / SubHeightC 小於或等於8。
或者,可以如下修改語法。 變量allowBtSplit的推導如下: 若一個或多個下述條件為真, allowBtSplit 設置為等於FALSE: –   cbSize 小於或等於MinBtSizeY –   cbWidth 大於maxBtSize –   cbHeight 大於maxBtSize –   mttDepth 大於或等於maxMttDepth –   treeType 等於DUAL_TREE_CHROMA且( cbWidth / SubWidthC ) * ( cbHeight / SubHeightC ) 小於或等於16 –   // treeType 等於DUAL_TREE_CHROMA且modeType 等於MODE_TYPE_INTRA //, 其中“//”對中的文本表示刪除。
在另一實施例中, 增加一個條件: –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且cbWidth / SubWidthC 小於或等於4
在另一實施例中, 增加一個條件: –   btSplit 等於SPLIT_BT_VER且treeType 等於DUAL_TREE_CHROMA且cbWidth / SubWidthC 小於或等於4且cbHeight / SubHeightC 小於或等於8。
因此,提出了當色度CU大小為32個色度樣本時,使色度CU能夠在幀內類型SCIPU或局部雙樹中進一步分割(例如BT分割)。
可以在編碼器和/或解碼器中實現任何前述提出的方法。 例如,可以在編碼器和/或解碼器的幀內預測或塊分割中實現任何所提出的方法。 可替代地,任何提出的方法可以被實現為耦合到編碼器和/或解碼器的幀內預測或塊分區的電路,以便提供幀內預測或塊分區所需的資訊。
第7圖示出了根據本發明實施例的具有針對小塊的受限模式選擇的示例性編碼和解碼系統的流程圖。流程圖中所示的步驟以及本公開中的其他後續流程圖可被實現為可在編碼器側和/或解碼器側的一個或多個處理器(例如,一個或多個CPU)上執行的程式碼。流程圖中所示的步驟也可以基於硬體來實現,例如被佈置為執行流程圖中的步驟的一個或多個電子設備或處理器。根據該方法,在步驟710中,在編碼器側接收根塊,或者在解碼器側接收包括該根塊的壓縮資料,其中,該根塊由使用單個分區樹對解碼區域進行分區而得到的一個或多個子塊組成,並且根塊包括一個亮度分量和一個或多個420或422色度格式的色度分量。當滿足一個或多個條件時,在步驟720中,針對根塊內的所有所述一個或多個子塊的目標模式類型,其中所述一個或多個條件包括,對於所述一個或多個色度分量,一個子塊的第一寬度等於2,其中,如果未為包圍根塊的圖像區域選擇幀內類型模式,則目標模式類型對應幀內類型模式或幀間類型模式,否則目標模式類型對應幀內類型模式。在步驟730,根塊中的所述一個或多個子塊在編碼器側根據目標模式類型被編碼,或者根塊中的所述一個或多個子塊在解碼器側根據目標模式類型被解碼。
第8圖示出了根據本發明的實施例的具有針對小塊的受限模式選擇的示例性編解碼系統的另一流程圖。根據該方法,在步驟810中,在編碼器側接收根塊,或者在解碼器側接收包括根塊的壓縮資料,其中,該根塊由一個或多個子塊組成,該一個或多個子塊是通過使用單個分區樹分割編碼解碼區域而得到的,並且根塊包括一個亮度分量和一個或多個420或422色度格式的色度分量。當滿足一個或多個條件時,在步驟820中,針對根塊內的所有所述一個或多個子塊的目標模式類型,其中所述一個或多個條件包括所述一個或多個色度分量的第一子塊大小小於16 ,其中,如果沒有為包圍根塊的圖像區域選擇幀內類型模式,則目標模式類型對應幀內類型模式或幀內類型模式,否則,目標模式類型對應幀內類型模式。在步驟830中,根塊中的所述一個或多個子塊根據編碼器側的目標模式類型被編碼,或者根塊中的所述一個或多個子塊在解碼器側根據目標模式類型被解碼。
所示的流程圖旨在說明根據本發明的視訊編解碼的示例。所屬領域具有通常知識者可以修改每個步驟、重新佈置步驟、分割步驟或組合步驟以實踐本發明,而不背離本發明的精神。在本公開中,已經使用特定的語法和語義來說明用於實現本發明的實施例的示例。所屬領域具有通常知識者可以通過用等同的語法和語義替換語法和語義來實踐本發明,而不脫離本發明的精神。
呈現以上描述是為了使所屬領域具有通常知識者能夠實踐在特定應用及其要求的上下文中提供的本發明。對所描述的實施例的各種修改對所屬領域具有通常知識者將是顯而易見的,並且本文中定義的一般原理可以應用於其他實施例。因此,本發明無意限於所示出和描述的特定實施例,而是與本文所公開的原理和新穎特徵相一致的最廣範圍相一致。在以上詳細描述中,示出了各種具體細節以便提供對本發明的透徹理解。然而,所屬領域具有通常知識者將理解可以實施本發明。
如上所述的本發明的實施例可以以各種硬體、軟體編解碼或兩者的組合來實現。例如,本發明的實施例可以是集成到視訊壓縮晶片中的一個或多個電路電路或集成到視訊壓縮軟體中的程式編解碼,以執行本文所述的處理。本發明的實施例還可以是將在數位信號處理器(DSP)上執行以執行本文描述的處理的程式編解碼。本發明還可涉及由計算機處理器、數位信號處理器、微處理器或現場可程式化門陣列(FPGA)執行的許多功能。通過執行定義本發明所體現的特定方法的機器可讀軟體編解碼或韌體編解碼,可以將這些處理器配置為執行根據本發明的特定任務。可以以不同的編程語言和不同的格式或樣式來開發軟體碼或固件碼。也可以針對不同的目標平台來編譯軟體編解碼。然而,不同的編解碼格式、軟體編解碼的樣式和語言以及配置編解碼以執行根據本發明的任務的其他手段將不脫離本發明的精神和範圍。
在不脫離本發明的精神或基本特徵的情況下,本發明可以以其他特定形式實施。所描述的示例在所有方面僅應被認為是說明性的而非限制性的。因此,本發明的範圍由所附申請專利範圍而不是前述描述來指示。落在申請專利範圍的等同含義和範圍內的所有改變均應包含在其範圍之內。
110:CTU分區 120:分區樹結構 410、510:塊分割 420:二叉樹 510:QTBT 710~730、810~830:步驟
第1圖示出了使用四叉樹結構來將編解碼樹單元(CTU)分割為編解碼單元(CU)的塊分割的示例。 第2圖示出了根據高效視訊編解碼(HEVC)的非對稱運動分區(asymmetric motion partition,簡寫為AMP),其中AMP定義了將CU分為PU的八個形狀。 第3圖示出了由二叉樹分割結構使用的各種二元分割類型的示例,其中可以使用分割類型將一個塊遞歸地分割成兩個較小的塊。 第4圖示出了塊分割及其對應的二叉樹的示例,其中在二叉樹的每個分割節點(即,非葉節點)中,一種語法用於指示使用哪種分割類型(水平或垂直),其中0表示水平分割,1表示垂直分割。 第5圖示出了塊分割及其對應的QTBT的示例,其中實線表示四叉樹分割,而虛線表示二叉樹分割。 第6圖示出了參考亮度塊的位置的示例,該參考亮度塊可以是根塊中的第一個亮度塊,根塊中的最後一個亮度塊,覆蓋該根塊中心位置(表示為BR- C)的亮度塊。 第7圖示出了根據本發明實施例的具有針對小塊的受限模式選擇的示例性編解碼系統的流程圖。 第8圖示出了根據本發明實施例的具有針對小塊的受限模式選擇的示例性編解碼系統的另一流程圖。
810~830:步驟

Claims (21)

  1. 一種視訊編解碼方法,該方法包括: 在編碼器側接收根塊或在解碼器側接收包括該根塊的壓縮資料,其中,該根塊由一個或多個子塊組成,該一個或多個子塊是使用單個分區樹對一個編解碼區域進行分區而得到的,並且該根塊包括一個亮度分量和420或422色度格式的一個或多個色度分量; 當滿足一個或多個條件時,為該根塊內的所有該一個或多個子塊確定目標模式類型為幀內模式類型,其中該一個或多個條件包括一個子塊的該一個或多個色度分量的第一寬度等於2,並且如果未為包圍該根塊的圖像區域選擇幀內類型模式,則該目標模式類型對應該幀內類型模式或幀間類型模式,否則該目標模式類型對應該幀內類型模式;以及 在該編碼器側根據該目標模式類型對該根塊中的該一個或多個子塊進行編碼,或者根據該目標模式類型對該壓縮資料進行解碼,以在該解碼器側重構該根塊中的該一個或多個子塊。
  2. 如請求項1所述之方法,其中,一個子塊的該一個或多個色度分量的該第一寬度等於2對應於一個情況,其中該根塊的該一個亮度分量的第二寬度等於8,並且該根塊的該單個分區樹包括二元垂直分區。
  3. 如請求項1所述之方法,其中,一個子塊的該一個或多個色度分量的該第一寬度等於2對應於一個情況,其中該根塊的該一個亮度分量的第二寬度等於16,並且該根塊的該單個分區樹包括三元垂直分區。
  4. 如請求項1所述之方法,其中,當該根塊為420色度格式時,一個子塊的該一個或多個色度分量的該第一寬度等於2對應於一個情況,即該根塊的該一個亮度分量的第二寬度和高度分別等於8和16,並且該根塊的該單個分區樹包括二元垂直分區;該根塊的該一個亮度分量的該第二寬度和該高度等於16,並且該根塊的該單個分區樹包括三元垂直分區;該根塊的該一個亮度分量的該第二寬度和該高度分別等於4和32,並且該根塊的該單個分區樹包括二元或三元水平分區;或者該根塊的該一個亮度分量的該第二寬度和該高度分別等於4和64,並且該根塊的該單個分區樹包括該三元水平分區。
  5. 如請求項1所述之方法,其中,當該根塊為422色度格式時,一個子塊的該一個或多個色度分量的該第一寬度等於2對應於一個情況,即該根塊的該一個亮度分量的第二寬度和高度等於8,並且該根塊的該單個分區樹包括二元垂直分區;該根塊的該一個亮度分量的該第二寬度和該高度分別等於16和8,並且該根塊的該單個分區樹包括三元垂直分區;該根塊的該一個亮度分量的該第二寬度和該高度分別等於4和16,並且該根塊的該單個分區樹包括二元或三元水平分區;或者該根塊的該一個亮度分量的該第二寬度和該高度分別等於4和32,並且該根塊的該單個分區樹包括該三元水平分區。
  6. 如請求項1所述之方法,其中,如果未針對包圍該根塊的該圖像區域選擇該幀內類型模式,則在該編碼器側發信第一語法或在該解碼器側解析該第一語法以指示為該根塊選擇了幀內類型模式或幀間類型模式。
  7. 如請求項1所述之方法,其中,該編解碼區域對應於編解碼樹單元。
  8. 如請求項1所述之方法,其中,該圖像區域對應於切片。
  9. 如請求項8所述之方法,其中,切片報頭中的第二語法在該編碼器側發信或在該解碼器側被解析,以指示該切片的編解碼類型。
  10. 一種視訊編解碼裝置,該裝置包括一個或多個電子電路或處理器,用於: 在編碼器側接收根塊或在解碼器側接收包括該根塊的壓縮資料,其中,該根塊由一個或多個子塊組成,該一個或多個子塊是使用單個分區樹對一個編解碼區域進行分區而得到的,並且該根塊包括一個亮度分量和420或422色度格式的一個或多個色度分量; 當滿足一個或多個條件時,為該根塊內的所有該一個或多個子塊確定目標模式類型,其中該一個或多個條件包括一個子塊的該一個或多個色度分量的第一寬度等於2,並且如果未為包圍該根塊的圖像區域選擇幀內類型模式,則該目標模式類型對應該幀內類型模式或幀間類型模式,否則該目標模式類型對應該幀內類型模式;以及 在該編碼器側根據該目標模式類型對該根塊中的該一個或多個子塊進行編碼,或者根據該目標模式類型對該壓縮資料進行解碼,以在該解碼器側重構該根塊中的該一個或多個子塊。
  11. 一種視訊編解碼方法,該方法包括: 在編碼器側接收根塊或在解碼器側接收包括該根塊的壓縮資料,其中,該根塊由一個或多個子塊組成,該一個或多個子塊是使用單個分區樹對一個編解碼區域進行分區而得到的,並且該根塊包括一個亮度分量和420或422色度格式的一個或多個色度分量; 當滿足一個或多個條件時,為該根塊內的所有該一個或多個子塊確定目標模式類型,其中該一個或多個條件包括一個子塊的該一個或多個色度分量的第一塊大小小於16,並且如果未為包圍該根塊的圖像區域選擇幀內類型模式,則該目標模式類型對應該幀內類型模式或幀間類型模式,否則該目標模式類型對應該幀內類型模式;以及 在該編碼器側根據該目標模式類型對該根塊中的該一個或多個子塊進行編碼,或者根據該目標模式類型對該壓縮資料進行解碼,以在該解碼器側重構該根塊中的該一個或多個子塊。
  12. 如請求項11所述之方法,其中,針對一個子塊的該一個或多個色度分量的該第一塊大小等於4,並且當該根塊為420色度格式時,針對該根塊的該一個亮度分量的第二塊大小為等於64,並且用於該根塊的該單個分區樹包括四叉樹分區、三元垂直分區、三元水平分區、二元垂直分區或二元水平分區。
  13. 如請求項11所述之方法,其中,針對一個子塊的該一個或多個色度分量的該第一塊大小等於8。
  14. 如請求項13所述之方法,其中,當該根塊為420色度格式時,該根塊的該一個亮度分量的第二塊大小等於128,並且該根塊的該單個分區樹包括三元垂直分區或三元水平分區。
  15. 如請求項13所述之方法,其中,當該根塊為422色度格式時,該根塊的該一個亮度分量的第二塊大小等於64,並且該根塊的該單個分區樹包括四叉樹分區、三元垂直分區或三元水平分區。
  16. 如請求項13所述之方法,其中,當該根塊為422色度格式時,該根塊的該一個亮度分量的第二塊大小等於32,並且該根塊的該單個分區樹包括二元垂直分區或二元水平分區。
  17. 如請求項11所述之方法,其中,如果沒有為包圍該根塊的該圖像區域選擇該幀內類型模式,則在該編碼器側發信第一語法或在該解碼器側解析該第一語法以指示為根塊選擇了幀內類型模式或幀間類型模式。
  18. 如請求項11所述之方法,其中,該編解碼區域對應於編解碼樹單元。
  19. 如請求項11所述之方法,其中,該圖像區域對應於切片。
  20. 如請求項19所述之方法,其中,切片報頭中的第二語法在該編碼器側發信或在該解碼器側被解析,以指示該切片的編解碼類型。
  21. 一種視訊編解碼裝置,該裝置包括一個或多個電子電路或處理器,用於: 在編碼器側接收根塊或在解碼器側接收包括該根塊的壓縮資料,其中,該根塊由一個或多個子塊組成,該一個或多個子塊是使用單個分區樹對一個編解碼區域進行分區而得到的,並且該根塊包括一個亮度分量和420或422色度格式的一個或多個色度分量; 當滿足一個或多個條件時,為該根塊內的所有該一個或多個子塊確定目標模式類型,其中該一個或多個條件包括一個子塊的該一個或多個色度分量的第一塊大小小於16,並且如果未為包圍該根塊的圖像區域選擇幀內類型模式,則該目標模式類型對應該幀內類型模式或幀間類型模式,否則該目標模式類型對應該幀內類型模式;以及 在該編碼器側根據該目標模式類型對該根塊中的該一個或多個子塊進行編碼,或者根據該目標模式類型對該壓縮資料進行解碼,以在該解碼器側重構該根塊中的該一個或多個子塊。
TW109128632A 2019-08-23 2020-08-21 具有分割限制條件之小尺寸編碼單元分割方法和裝置 TWI751657B (zh)

Applications Claiming Priority (6)

Application Number Priority Date Filing Date Title
US201962890723P 2019-08-23 2019-08-23
US62/890,723 2019-08-23
US201962906435P 2019-09-26 2019-09-26
US62/906,435 2019-09-26
WOPCT/CN2020/110561 2020-08-21
PCT/CN2020/110561 WO2021036939A1 (en) 2019-08-23 2020-08-21 Method and apparatus of partitioning small size coding units with partition constraints

Publications (2)

Publication Number Publication Date
TW202127880A true TW202127880A (zh) 2021-07-16
TWI751657B TWI751657B (zh) 2022-01-01

Family

ID=74684161

Family Applications (1)

Application Number Title Priority Date Filing Date
TW109128632A TWI751657B (zh) 2019-08-23 2020-08-21 具有分割限制條件之小尺寸編碼單元分割方法和裝置

Country Status (7)

Country Link
US (1) US20220286714A1 (zh)
EP (2) EP4011066A4 (zh)
KR (1) KR20220047853A (zh)
BR (2) BR112022003469A2 (zh)
MX (2) MX2022002126A (zh)
TW (1) TWI751657B (zh)
WO (1) WO2021036939A1 (zh)

Families Citing this family (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9112526B2 (en) * 2011-06-15 2015-08-18 Sony Corporation Binarization of DQP using separate absolute value and sign (SAVS) in CABAC
KR102283545B1 (ko) * 2016-10-10 2021-07-29 삼성전자주식회사 블록 맵을 이용하여 영상을 부호화 또는 복호화하는 방법 및 장치
WO2021023262A1 (en) 2019-08-06 2021-02-11 Beijing Bytedance Network Technology Co., Ltd. Using screen content coding tool for video encoding and decoding
CN114342400A (zh) 2019-09-02 2022-04-12 北京字节跳动网络技术有限公司 基于色彩格式的编解码模式确定
KR102649584B1 (ko) 2019-09-21 2024-03-21 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 크로마 인트라 모드에 기초한 크기 제한

Family Cites Families (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8995523B2 (en) * 2011-06-03 2015-03-31 Qualcomm Incorporated Memory efficient context modeling
US20140376611A1 (en) * 2013-06-21 2014-12-25 Qualcomm Incorporated Adaptive color transforms for video coding
WO2016154963A1 (en) * 2015-04-01 2016-10-06 Mediatek Inc. Methods for chroma coding in video codec
US10212444B2 (en) * 2016-01-15 2019-02-19 Qualcomm Incorporated Multi-type-tree framework for video coding
EP3456043A4 (en) * 2016-05-28 2019-11-27 MediaTek Inc. METHOD AND DEVICE FOR REFERENCING THE CURRENT IMAGE FOR VIDEO CODING USING AFFINER MOTION COMPENSATION
US10674165B2 (en) * 2016-12-21 2020-06-02 Arris Enterprises Llc Constrained position dependent intra prediction combination (PDPC)
WO2019016287A1 (en) * 2017-07-19 2019-01-24 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. APPARATUS AND METHOD FOR ENCODING IMAGES
CN110959290B (zh) * 2017-07-24 2022-07-22 艾锐势有限责任公司 帧内模式jvet编译方法
US11159828B2 (en) * 2017-10-09 2021-10-26 Arris Enterprises Llc Adaptive unequal weight planar prediction
WO2021023262A1 (en) * 2019-08-06 2021-02-11 Beijing Bytedance Network Technology Co., Ltd. Using screen content coding tool for video encoding and decoding
EP4000269A4 (en) * 2019-08-15 2022-09-07 ByteDance Inc. PALLET MODE WITH DIFFERENT DIVISION STRUCTURES
WO2021030747A1 (en) * 2019-08-15 2021-02-18 Beijing Dajia Internet Information Technology Co., Ltd. Small chroma block size restriction in video coding

Also Published As

Publication number Publication date
EP4011066A1 (en) 2022-06-15
EP4044592A2 (en) 2022-08-17
EP4011066A4 (en) 2023-10-18
EP4044592A3 (en) 2022-12-21
BR112022003469A2 (pt) 2022-05-24
MX2022003795A (es) 2022-05-25
KR20220047853A (ko) 2022-04-19
CN113906737A (zh) 2022-01-07
WO2021036939A1 (en) 2021-03-04
MX2022002126A (es) 2022-05-18
US20220286714A1 (en) 2022-09-08
TWI751657B (zh) 2022-01-01
BR122022005759A2 (pt) 2022-06-07

Similar Documents

Publication Publication Date Title
CN108605130B (zh) 一种用于对与区块相关的符号进行熵编解码的方法和装置
CN107836117B (zh) 一种块分割的方法及装置
CN109479137B (zh) 用于彩色视频数据的调色板模式编解码的方法及装置
TWI708502B (zh) 視訊編解碼系統中對具有分割約束的視訊圖像進行編碼或解碼的視訊處理方法
TWI751657B (zh) 具有分割限制條件之小尺寸編碼單元分割方法和裝置
TWI720584B (zh) 視訊處理系統中色度量化參數導出的方法以及裝置
TW201921953A (zh) 在圖像或視頻編碼系統中處理圖像的方法和裝置
US11930174B2 (en) Method and apparatus of luma-chroma separated coding tree coding with constraints
TWI729569B (zh) 帶有約束的亮度-色度單獨的編碼樹編碼的方法和設備
TWI749420B (zh) 在區塊分割中條件式編碼或解碼視訊區塊的方法和裝置
US11785258B2 (en) Methods and apparatus for signaling coding unit partitioning of video data
US20220224890A1 (en) Method and Apparatus of Partitioning Small Size Coding Units with Partition Constraints
TWI737097B (zh) 越界節點視訊資料之處理方法及裝置
CN113906737B (zh) 具有分割限制条件的小尺寸编码单元分割方法和装置
KR20220042243A (ko) 분할 제약을 갖는 소형 크기 코딩 단위의 분할 방법 및 장치
TWI761166B (zh) 圖像和視訊編解碼中發信切片分割資訊之方法和裝置
TW202344053A (zh) 使用梯度和模板改進幀內模式推導和預測的方法和裝置
TW202341732A (zh) 視訊編解碼方法和裝置
TW202344058A (zh) 視頻編解碼系統中解碼器導出幀內預測的改進方法和裝置