TWI678104B - 影像編解碼方法、影片編解碼器及影片編解碼系統 - Google Patents

影像編解碼方法、影片編解碼器及影片編解碼系統 Download PDF

Info

Publication number
TWI678104B
TWI678104B TW107110717A TW107110717A TWI678104B TW I678104 B TWI678104 B TW I678104B TW 107110717 A TW107110717 A TW 107110717A TW 107110717 A TW107110717 A TW 107110717A TW I678104 B TWI678104 B TW I678104B
Authority
TW
Taiwan
Prior art keywords
leaf node
node
division
leaf
dividing
Prior art date
Application number
TW107110717A
Other languages
English (en)
Other versions
TW201904301A (zh
Inventor
趙寅
Yin ZHAO
楊海濤
Haitao Yang
高山
Shan Gao
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 TW201904301A publication Critical patent/TW201904301A/zh
Application granted granted Critical
Publication of TWI678104B publication Critical patent/TWI678104B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/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/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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30003Arrangements for executing specific machine instructions
    • G06F9/3005Arrangements for executing specific machine instructions to perform operations for flow control
    • G06F9/30058Conditional branch instructions
    • 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/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/189Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding
    • H04N19/192Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the adaptation method, adaptation tool or adaptation type used for the adaptive coding the adaptation method, adaptation tool or adaptation type being iterative or recursive
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Multimedia (AREA)
  • Signal Processing (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Compression Or Coding Systems Of Tv Signals (AREA)

Abstract

本發明涉及影片編解碼技術,公開了一種影像解碼方法和影片解碼器,影像編碼方法和影片編碼器,以及影片編解碼系統。其中,所述影像解碼方法包括:獲取以編碼樹單元為根節點進行劃分得到的第一葉節點的訊息;當第一葉節點的訊息滿足劃分條件時,獲取第一葉節點的劃分指示訊息;當第一葉節點的劃分指示訊息指示對第一葉節點進行劃分時,獲取以第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;根據第二葉節點對應的編碼訊息,生成第二葉節點對應的重建影像。

Description

影像編解碼方法、影片編解碼器及影片編解碼系統
本發明是有關於影片編解碼技術領域,且特別是有關於一種影像解碼方法和影片解碼器,一種影像編碼方法和影片編碼器,以及一種影片編解碼系統。
影片編碼的意義就是用盡可能小的頻寬傳送高質量的影片數據。從MPEG-1到MPEG-2,H.263、H.264、H.265到聯合探索模型(Joint Exploration Model,簡稱JEM),各種影片編碼標準的提出均是為了讓碼流更優化、編碼效率更高。
在上述標準中,H.265在H.264基礎上引入了影像塊自適應四叉樹劃分,較大幅度提升了影像平坦區域的壓縮能力;而JEM又在H.265四叉樹劃分基礎上增加了二叉樹劃分,使得編碼單元(Codeing Unit,簡稱CU)可以為正方形或矩形,由於編碼單元的形狀更加多樣,因此可以更好地適應局部影像的內容。
以JEM為例,在實現本發明過程中,發明人發現現有技術中至少存在如下問題:在JEM中,不同四叉樹層級的四叉樹葉節點經過二叉樹劃分後能夠形成的CU的尺寸不同,四叉樹層級較小的四叉樹葉節點通過二叉樹劃分所形成的CU普遍尺寸偏大;這種情況下,如果這些尺寸偏大的CU對應的影像紋理複雜,則編碼效率較低。要解決這個問題,使得四叉樹層級較小的四叉樹葉節點能夠通過二叉樹劃分形成更小尺寸的CU,可以採用將最大二叉樹層級這個參數增大的方法。然而這種方法將導致出現如下兩個問題:
1)最大二叉樹層級增大將增加影片編碼器需要嘗試的二叉樹劃分種數,從而增加編碼複雜度;
2)最大二叉樹層級增大將增加二叉樹節點對應的劃分指示訊息,從而降低編碼效率。例如,最大二叉樹層級為3時,對二叉樹層級為3的節點,該節點將默認不能被劃分,此時不需要在碼流中加入其是否被劃分的位元(即劃分指示訊息);而當最大二叉樹層級增加到4時,對二叉樹層級為3的節點,它還有可能被劃分為二叉樹層級為4的節點,此時需要在碼流中加入指示其是否被繼續劃分的位元,由此降低了二叉樹層級為3的節點的編碼效率。
綜上所述,現有技術存在無法兼顧編碼複雜度和編碼效率的問題。
本文描述了一種影像解碼方法和影片解碼器,一種影像編碼方法和影片編碼器,以及一種影片編解碼系統,以兼顧編碼複雜度和編碼效率。
一方面,本發明實施例提供一種影像解碼方法。影片解碼器在獲取到編碼樹單元(Coding Tree Unit,簡稱CTU)對應的碼流後,首先獲取以CTU為根節點進行劃分得到的第一葉節點(如二叉樹葉節點,三叉樹葉節點等)的訊息;然後判斷第一葉節點的訊息是否滿足預設的劃分條件,在滿足劃分條件的情況下,從碼流中獲取第一葉節點的劃分指示訊息;當第一葉節點的劃分指示訊息指示對第一葉節點進行劃分時,獲取以第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;接下來,影片解碼器再根據第二葉節點對應的編碼訊息,生成第二葉節點對應的重建影像,從而獲得編碼樹單元對應的重建影像。通過本發明實施例提供的影像解碼方法,使得在不改變原有最大劃分層級限制的前提下,還能夠對尺寸較大的CU繼續進行劃分;因此,可以有效兼顧編碼效率及編碼複雜度。
所述第一葉節點是指現有技術下劃分得到的CTU的葉節點,也可稱為第一級葉節點或第一種葉節點,例如JEM中採用QTBT劃分方式得到的葉節點。所述第二葉節點是指以第一葉節點為根節點、對該節點繼續劃分得到的葉節點,也可稱為第二級葉節點或第二種葉節點。
所述第一葉節點的訊息可包括第一葉節點對應影像的寬度、高度、坐標等影像相關數據,還可包括第一葉節點的劃分層級訊息,例如JEM中採用QTBT劃分方式對CTU劃分得到的第一葉節點的劃分層級訊息包括四叉樹劃分層級訊息(即節點的四叉樹層級)和/或二叉樹劃分層級訊息(即節點的二叉樹層級)。
在一種可能的設計中,所述第一葉節點為以CTU為根節點進行二叉樹劃分,或者基於四叉樹和二叉樹級聯方式進行劃分得到的二叉樹葉節點;所述第二葉節點為以第一葉節點為根節點進行四叉樹劃分得到的四叉樹葉節點。
以第一葉節點為基於二叉樹劃分、或基於四叉樹和二叉樹級聯方式對CTU劃分得到的葉節點為例,通過本發明實施例提供的影像解碼方法,使得在不改變最大二叉樹劃分層級的前提下,還能夠對尺寸較大的CU繼續進行劃分。在二叉樹葉節點滿足於預設的劃分條件時,獲取二叉樹葉節點的節點劃分指示訊息, 當二叉樹葉節點的劃分指示訊息指示對二叉樹葉節點進行劃分時,對二叉樹葉節點繼續劃分,形成較小尺寸的四叉樹葉節點;這種處理方式,既可以提高編碼效率,又不會對編碼複雜度產生較大影響;因此,可以有效兼顧編碼效率及編碼複雜度。
在一種可能的設計中,以第一葉節點為二叉樹葉節點,所述預設的劃分條件包括但不限於以下條件的至少一項:第一葉節點對應影像的形狀為方形,第一葉節點的二叉樹層級大於或者等於第一預設閥值,第一葉節點對應影像的邊長或者以2為底的邊長的對數大於第二預設閥值。所述預設的劃分條件既可以是上述任一項條件,也可以是上述條件的任意組合。
其中,對方形二叉樹葉節點增加額外的四叉樹劃分,其原因在於:根據統計數據,在基於率失真優化的劃分決策下,非方形節點劃分為四個非方形節點的概率低於方形節點劃分成四個方形節點的概率,非方形節點使用四叉樹劃分的效率提升不大。基於該原因,本發明實施例對方形二叉樹葉節點允許繼續使用四叉樹劃分;這種處理方式,只增加了少量的編碼複雜度,並提高了方形二叉樹葉節點的編碼效率。
所述第一預設閥值可在影片解碼器中進行設置(如設置為常數2或4等值),也可從碼流中解析得到。通過將劃分條件設置為所述第一葉節點的二叉樹層級大於或者等於第一預設閥值,使得只允許對二叉樹層級大於或者等於第一預設閥值的第一葉節點繼續進行劃分;這種處理方式,可控制可繼續劃分的第一葉節點的數量;因此,可以只增加了少量的編碼複雜度,並提高了方形二叉樹葉節點的編碼效率。
所述第二預設閥值可在影片解碼器中進行設置(如設置為常數或最小CU邊長等),也可從碼流中解析得到。通過將劃分條件設置為所述第一葉節點對應影像的邊長或者以2為底的邊長的對數大於第二預設閥值,使得只允許對影像邊長或者以2為底的邊長的對數大於第二預設閥值的第一葉節點繼續進行劃分;這種處理方式,可以有效避免劃分出尺寸過小的CU。
當然,可以理解,在第一葉節點為二叉樹葉節點時,影片解碼器也可以對二叉樹葉節點使用三叉樹等方式進行劃分,還可以對非方形的二叉樹葉節點繼續劃分,以減小CU尺寸。在第一葉節點為三叉樹葉節點時,可以對三叉樹葉節點使用二叉樹或四叉樹等方式進行劃分;在第一葉節點為四叉樹葉節點時,可以對四叉樹葉節點使用二叉樹或三叉樹等方式進行劃分等。
在一種可能的設計中,當第一葉節點的劃分指示訊息指示不對第一葉節點進行劃分時、或者當第一葉節點的訊息不滿足預設的劃分條件時,第一葉節點就是CU;這種情況下,影片解碼器獲取第一葉節點對應的編碼訊息,並根據第一葉節點對應的編碼訊息,生成第一葉節點對應的重建影像。
在一種可能的設計中,影片解碼器獲取對第一葉節點作一層劃分得到的第二葉節點對應的編碼訊息;這種處理方式,使得只對第一葉節點作一層劃分,將對第一葉節點劃分後形成的第一葉節點的子節點作為CU;因此,只增加了少量的編碼複雜度,並提高了二叉樹葉節點的編碼效率。
在一種可能的設計中,影片解碼器獲取對第一葉節點作至少兩層劃分得到的第二葉節點對應的編碼訊息;這種處理方式,使得可對第一葉節點作至少兩層劃分,允許將第一葉節點的子節點進一步劃分成多個更小的CU;因此,對紋理複雜區域可以進一步提高編碼效率。
在一種可能的設計中,在影片解碼器允許對第一葉節點作至少兩層劃分時,可採用如下步驟獲取第二葉節點對應的編碼訊息:獲取對第一葉節點作一層劃分得到的當前節點的劃分指示訊息;在當前節點的劃分指示訊息指示對當前節點進行劃分時,獲取對當前節點進行劃分得到的第二葉節點對應的編碼訊息。在對第一葉節點進行劃分的過程中,對於第一葉節點的各層子節點,均可在該子節點的劃分指示訊息指示對該子節點進行劃分時,對該子節點進行進一步的劃分,直至獲得第二葉節點對應的編碼訊息。
在一種可能的設計中,在對第一葉節點作一層劃分得到的當前節點的訊息滿足預設的遞迴劃分條件時,影片解碼器獲取當前節點的劃分指示訊息。在對第一葉節點進行劃分的過程中,對於第一葉節點的各層子節點,均可在該子節點的訊息滿足遞迴劃分條件時,獲取該子節點的劃分指示訊息。
在一種可能的設計中,所述預設的遞迴劃分條件包括但不限於以下條件的至少一項:當前節點的遞迴劃分層級小於第三預設閥值,當前節點對應影像的邊長或者以2為底的邊長的對數大於第四預設閥值。所述預設的遞迴劃分條件既可以是上述任一項條件,也可以是上述條件的任意組合。
所述第三預設閥值可在影片解碼器中進行設置(如設置為常數2等值),也可從碼流中解析得到。通過將遞迴劃分條件設置為所述當前節點的遞迴劃分層級小於第三預設閥值,使得只允許對遞迴劃分層級小於第三預設閥值的當前節點繼續進行劃分;這種處理方式,只增加了少量的編碼複雜度,並提高編碼效率。
所述第四預設閥值可在影片解碼器中進行設置(如設置為常數或最小CU邊長等),也可從碼流中解析得到。通過將劃分條件設置為所述當前節點對應影像的邊長或者以2為底的邊長的對數大於第四預設閥值,使得只允許對影像邊長大於第四預設閥值的當前節點繼續進行劃分;這種處理方式,可以有效避免劃分出尺寸過小的CU。
另一方面,本發明實施例提供了一種影片解碼器,其包括用於執行上述影像解碼方法設計中影片解碼器行為相對應的模組。所述模組可以是軟體和/或硬體。
在一種可能的設計中,影片解碼器包括處理器和儲存器,所述處理器被配置為支持影片解碼器執行上述影像解碼方法中相應的功能。所述儲存器用於與處理器耦合,其保存影片解碼器必要的程式指令和數據。
在一種可能的設計中,影片解碼器包括:第一葉節點訊息獲取單元,用於獲取以編碼樹單元為根節點進行劃分得到的第一葉節點的訊息;劃分指示訊息獲取單元,用於在所述第一葉節點的訊息滿足劃分條件時,獲取所述第一葉節點的劃分指示訊息;編碼訊息獲取單元,用於在所述第一葉節點的劃分指示訊息指示對所述第一葉節點進行劃分時,獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;重建影像生成單元,用於根據所述第二葉節點對應的編碼訊息,生成所述第二葉節點對應的重建影像。
又一方面,本發明實施例提供了一種影像編碼方法。影片編碼器首先以待編碼影像的CTU為根節點進行劃分得到第一葉節點,然後判斷第一葉節點的訊息是否滿足預設的劃分條件;在滿足劃分條件的情況下,再確定是否對第一葉節點進行劃分;當確定對第一葉節點進行劃分時,以第一葉節點為根節點進行劃分得到第二葉節點;接下來,影片編碼器再根據第二葉節點的影像數據,生成CTU對應的碼流。其中,CTU對應的碼流包括第二葉節點對應的編碼訊息和第一葉節點的劃分指示訊息,該第一葉節點的劃分指示訊息指示對第一葉節點進行劃分。
以第一葉節點為基於二叉樹劃分、或基於四叉樹和二叉樹級聯方式對CTU劃分得到的葉節點為例,通過本發明實施例提供的影像編碼方法,使得在不改變最大二叉樹劃分層級的前提下,還能夠對尺寸較大的影像繼續進行劃分。在二叉樹葉節點滿足於預設的劃分條件時,將二叉樹葉節點繼續劃分,形成較小尺寸的影像;這種處理方式,既可以提高部分二叉樹葉節點的編碼效率,又不會對編碼複雜度產生較大影響;因此,可以有效兼顧編碼效率及編碼複雜度。
在一種可能的設計中,預設的劃分條件包括以下條件的至少一項:第一葉節點對應影像的形狀為方形,第一葉節點的二叉樹層級大於或者等於第一預設閥值,第一葉節點對應影像的邊長或者以2為底的邊長的對數大於第二預設閥值。
在一種可能的設計中,第二葉節點為以第一葉節點為根節點進行四叉樹劃分得到的葉節點。
在一種可能的設計中,當確定不對第一葉節點進行劃分時,根據第一葉節點的影像數據,生成CTU對應的碼流,所述CTU對應的碼流包括第一葉節點對應的編碼訊息和第一節點的劃分指示訊息,該第一葉節點的劃分指示訊息指示不對第一葉節點進行劃分。
在一種可能的設計中,當第一葉節點的訊息不滿足預設的劃分條件時,根據第一葉節點的影像數據,生成CTU對應的碼流,所述CTU對應的碼流包括第一葉節點對應的編碼訊息。
在一種可能的設計中,影片編碼器可對第一葉節點進行一層劃分得到第二葉節點,也可對第一葉節點進行至少兩層劃分得到第二葉節點。
在一種可能的設計中,在影片編碼器允許對第一葉節點作至少兩層劃分時,可採用如下步驟將第一葉節點劃分得到第二葉節點:對第一葉節點作一層劃分得到的當前節點,確定是否對當前節點進行劃分;當確定對當前節點進行劃分時,對當前節點進行劃分得到第二葉節點。
在一種可能的設計中,在對第一葉節點作一層劃分得到的當前節點的訊息滿足遞迴劃分條件時,確定是否對當前節點進行劃分。
在一種可能的設計中,所述預設的遞迴劃分條件包括但不限於以下條件的至少一項:當前節點的遞迴劃分層級小於第三預設閥值,當前節點對應影像的邊長或者以2為底的邊長的對數大於第四預設閥值。所述預設的遞迴劃分條件既可以是上述任一項條件,也可以是上述條件的任意組合。
在一種可能的設計中,確定是否對第一葉節點進行劃分可採用如下步驟:獲取第一葉節點在劃分前的第一率失真代價;以及,獲取第一葉節點在劃分後的第二率失真代價; 若第一率失真代價小於等於第二率失真代價,則確定對第一葉節點進行劃分;否則,確定不對第一葉節點進行劃分。
又一方面,本發明實施例提供了一種影片編碼器,其包括用於執行上述影像編碼方法設計中影片編碼器行為相對應的模組。所述模組可以是軟體和/或硬體。
在一種可能的設計中,影片編碼器包括處理器和儲存器,所述處理其被配置為支持影片編碼器執行上述影像編碼方法中相應的功能。所述儲存器用於與處理器耦合,其保存影片編碼器必要的程式指令和數據。
在一種可能的設計中,影片編碼器包括:第一劃分單元,用於以編碼樹單元為根節點進行劃分得到第一葉節點;第二劃分確定單元,用於在第一葉節點的訊息滿足劃分條件時,確定是否對第一葉節點進行劃分;第二劃分單元,用於在確定對第一葉節點進行劃分時,以第一葉節點為根節點進行劃分得到第二葉節點;碼流生成單元,用於根據第二葉節點的影像數據,生成CTU對應的碼流;其中,CTU對應的碼流包括第二葉節點對應的編碼訊息和第一葉節點的劃分指示訊息,所述第一葉節點的劃分指示訊息指示對第一葉節點進行劃分。
又一方面,本發明實施例提供了一種影片編解碼系統,該系統包括上述方面所述的影片編碼器和影片解碼器。
再一方面,本發明實施例提供了一種計算機可讀存儲介質,所述計算機可讀存儲介質中儲存有指令,當其在計算機上運行時,使得計算機執行上述各方面所述的方法。
再一方面,本發明實施例提供了一種包括指令的計算機程式產品,當其在計算機上運行時,使得計算機執行上述各方面所述的方法。
相較于現有技術,本發明提供的方案可以兼顧編碼效率和編碼複雜度。
下面將結合附圖,對本發明的應用場景及實施例中的技術方案做說明。
圖1是根據本發明實施例的影片編解碼系統10的示意性方塊圖。如圖1所示,影片編解碼系統10包含源裝置12及目的地裝置14。源裝置12產生經編碼影片數據。因此,源裝置12可被稱作影片編碼裝置或影片編碼設備。目的地裝置14可解碼由源裝置12產生的經編碼影片數據。因此,目的地裝置14可被稱作影片解碼裝置或影片解碼設備。源裝置12及目的地裝置14可為影片編解碼裝置或影片編解碼設備的實例。源裝置12及目的地裝置14可包括廣泛範圍的裝置,包含桌上型電腦、行動計算裝置、筆記型(例如,膝上型)電腦、平板電腦、機上盒、智慧型手機等手持機、電視、相機、顯示裝置、數位媒體播放器、影片遊戲控制台、車用電腦,或其類似者。
目的地裝置14可經由通道16接收來自源裝置12的編碼後的影片數據。通道16可包括能夠將經編碼影片數據從源裝置12移動到目的地裝置14的一個或多個媒體及/或裝置。在一個實例中,通道16可包括使源裝置12能夠實時地將編碼後的影片數據直接發射到目的地裝置14的一個或多個通訊媒體。在此實例中,源裝置12可根據通訊標準(例如,無線通訊協議)來調製編碼後的影片數據,且可將調製後的影片數據發射到目的地裝置14。所述一個或多個通訊媒體可包含無線及/或有線通訊媒體,例如射頻(RF)頻譜或一根或多根物理傳輸線。所述一個或多個通訊媒體可形成基於封包的網絡(例如,局域網路、廣域網路或全球網絡(例如,網際網路))的部分。所述一個或多個通訊媒體可包含路由器、交換器、基地台,或促進從源裝置12到目的地裝置14的通訊的其它設備。
在另一實例中,通道16可包含儲存由源裝置12產生的編碼後的影片數據的儲存媒體。在此實例中,目的地裝置14可經由磁盤存取或卡存取來存取儲存媒體。儲存媒體可包含多種本地存取式數據儲存媒體,例如藍光光碟、DVD、CD-ROM、快閃記憶體,或用於儲存經編碼影片數據的其它合適數位儲存媒體。
在另一實例中,通道16可包含文件伺服器或儲存由源裝置12產生的編碼後的影片數據的另一中間儲存裝置。在此實例中,目的地裝置14可經由串流或下載來存取儲存於文件伺服器或其它中間儲存裝置處的編碼後的影片數據。文件伺服器可以是能夠儲存編碼後的影片數據且將所述編碼後的影片數據發射到目的地裝置14的伺服器類型。實例文件伺服器包含web伺服器(例如,用於網站)、文件傳送協議(FTP)伺服器、網路附加儲存(NAS)裝置,及本地磁碟驅動器。
目的地裝置14可經由標準數據連接(例如,網際網路連接)來存取編碼後的影片數據。數據連接的實例類型包含適合於存取儲存於文件伺服器上的編碼後的影片數據的無線通道(例如,Wi-Fi連接)、有線連接(例如,DSL、纜線調制解調器等),或兩者的組合。編碼後的影片數據從文件伺服器的發射可為串流、下載傳輸或兩者的組合。
本發明的技術不限於無線應用場景,示例性的,可將所述技術應用于支持以下應用等多種多媒體應用的影片編解碼:空中電視廣播、有線電視發射、衛星電視發射、串流影片發射(例如,經由網際網路)、儲存於數據儲存媒體上的影片數據的編碼、儲存於數據儲存媒體上的影片數據的解碼,或其它應用。在一些實例中,影片編解碼系統10可經配置以支持單向或雙向影片發射,以支持例如影片串流、影片播放、影片廣播及/或影片電話等應用。
在圖1的實例中,源裝置12包含影片源18、影片編碼器20及輸出介面22。在一些實例中,輸出介面22可包含調製器/解調器(調制解調器)及/或發射器。影片源18可包含影片擷取裝置(例如,影片相機)、含有先前擷取的影片數據的影片存檔、用以從影片內容提供者接收影片數據的影片輸入介面,及/或用於產生影片數據的計算機圖形系統,或上述影片數據源的組合。
影片編碼器20可編碼來自影片源18的影片數據。在一些實例中,源裝置12經由輸出介面22將編碼後的影片數據直接發射到目的地裝置14。編碼後的影片數據還可儲存於儲存媒體或文件伺服器上以供目的地裝置14稍後存取以用於解碼及/或播放。
在圖1的實例中,目的地裝置14包含輸入介面28、影片解碼器30及顯示裝置32。在一些實例中,輸入介面28包含接收器及/或調制解調器。輸入介面28可經由通道16接收編碼後的影片數據。顯示裝置32可與目的地裝置14整合或可在目的地裝置14外部。一般來說,顯示裝置32顯示解碼後的影片數據。顯示裝置32可包括多種顯示裝置,例如液晶顯示器(LCD)、等離子體顯示器、有機發光二極體(OLED)顯示器或其它類型的顯示裝置。
影片編碼器20及影片解碼器30可根據影片壓縮標準(例如,高效率影片編解碼H.265標準)而操作,且可遵照HEVC測試模型(HM)。H.265標準的文本描述ITU-TH.265(V3)(04/2015)於2015年4月29號發佈,可從http://handle.itu.int/11.1002/1000/12455下載,所述文件的全部內容以引用的方式併入本文中。
或者,影片編碼器20及影片解碼器30可根據其它專屬或行業標準而操作,所述標準包含ITU-TH.261、ISO/IECMPEG-1Visual、ITU-TH.262或ISO/IECMPEG-2Visual、ITU-TH.263、ISO/IECMPEG-4Visual,ITU-TH.264(還稱為ISO/IECMPEG-4AVC),包含可分級影片編解碼(SVC)及多視圖影片編解碼(MVC)擴展。應理解,本發明的技術不限於任何特定編解碼標準或技術。
此外,圖1僅為實例且本發明的技術可應用於未必包含編碼裝置與解碼裝置之間的任何數據通訊的影片編解碼應用(例如,單側的影片編碼或影片解碼)。在其它實例中,從本地儲存器檢索數據,經由網路串流傳輸數據,或以類似方式操作數據。編碼裝置可編碼數據且將所述數據儲存到儲存器,及/或解碼裝置可從儲存器檢索數據且解碼所述數據。在許多實例中,通過彼此不進行通訊而僅編碼數據到儲存器及/或從儲存器檢索數據及解碼數據的多個裝置執行編碼及解碼。
影片編碼器20及影片解碼器30各自可實施為多種合適電路中的任一者,例如一個或多個微處理器、數位信號處理器(DSP)、特殊應用積體電路(ASIC)、現場可程式邏輯門陣列(FPGA)、離散邏輯、硬體或其任何組合。如果技術部分地或者全部以軟體實施,則裝置可將軟體的指令儲存於合適的非暫態計算機可讀儲存媒體中,且可使用一個或多個處理器執行硬體中的指令以執行本發明的技術。可將前述各者中的任一者(包含硬體、軟體、硬體與軟體的組合等)視為一個或多個處理器。影片編碼器20及影片解碼器30中的每一者可包含於一個或多個編碼器或解碼器中,其中的任一者可整合為其它裝置中的組合式編碼器/解碼器(編解碼器(CODEC))的部分。
本發明大體上可指代影片編碼器20將某一訊息“用訊號發送”到另一裝置(例如,影片解碼器30)。術語“用訊號發送”大體上可指代語法元素及/或表示編碼後的影片數據的傳達。此傳達可實時或近實時地發生。或者,此通訊可在一時間跨度上發生,例如可在編碼時以編碼後得到的二進制數據將語法元素儲存到計算機可讀儲存媒體時發生,所述語法元素在儲存到此媒體之後接著可由解碼裝置在任何時間檢索。
以上對本發明的應用場景作了說明。為了便於理解本發明的技術方案,下面對提出本發明涉及的相關概念及技術作簡要說明。
在影片編碼階段,通過影片編碼器20對一幀影像編碼後,一幅影像由多個CTU構成。一個CTU通常對應於一個方形影像區域,可包含這個影像區域中的亮度像素和色度像素,也可以只包含亮度像素,還可以只包含色度像素。此外,CTU中還包含語法元素,語法元素指示如何將CTU劃分成至少一個CU,語法元素還可指示解碼每個CU得到重建影像的方法。
CU通常對應於一個A×B的矩形區域,包含A×B亮度像素和它對應的色度像素。其中,A為矩形的寬,B為矩形的高,A和B可以相同也可以不同,A和B的取值通常為2的整數次冪,例如,256、128、64、32、16、8、4等。一個CU可通過解碼處理得到一個A×B的矩形區域的重建影像,解碼處理通常包括預測、反量化、反變換等處理,產生預測影像和殘差,預測影像和殘差疊加後得到重建影像。
下面以H.265影片編碼標準為例,對CTU的劃分技術作簡要說明。
H.265標準將一幀影像分割成互不重疊的CTU,CTU的大小可設置為64×64。64×64的CTU包含64列、每列64個像素的矩形像素點陣。當然,CTU的大小也可設置為其它值,例如,JVET(Joint Exploration team on Future Video Coding,未來影片編碼聯合探索組)參考軟體JEM可將CTU大小設置為128×128或256×256。
H.265標準使用基於四叉樹(quad-tree,簡稱QT)的CTU劃分方法,將CTU作為四叉樹的根節點,按照四叉樹的劃分方式,將CTU遞迴劃分成若干個葉節點。一個節點對應於一個影像區域,節點如果不劃分,則節點稱為葉節點。葉節點對應的影像區域形成一個CU。如果節點繼續劃分,則節點對應的影像區域劃分成四個相同大小的區域(其長和寬各為被劃分區域的一半),每個區域對應一個節點,需要分別確定這些節點是否還會劃分。一個節點是否劃分由碼流中這個節點對應的劃分標誌位(如split_cu_flag)指示。根節點的四叉樹層級(簡稱QT層級)為0,子節點的QT層級為父節點的QT層級+1。四叉樹結構使得CTU能夠根據影像局部特點劃分成合適大小的一組CU,例如,平滑區域劃分成較大的CU,而紋理豐富區域劃分為較小的CU。為方便描述,本申請中,將節點對應的影像區域的大小和形狀簡稱為節點的大小和形狀。
例如,對64×64的CTU節點(四叉樹層級為0),根據該節點對應的split_cu_flag,可選擇不劃分,成為1個64×64的CU,或者選擇劃分為4個32×32的節點(四叉樹層級為1)。這四個32×32的節點中的每一個節點,又可以根據其對應的split_cu_flag,選擇繼續劃分或者不劃分。如果一個32×32的節點繼續劃分,則產生四個16×16的節點(四叉樹層級為2)。以此類推,直到所有節點都不再劃分,這樣一個CTU就被劃分成一組CU。CU的最小尺寸在序列參數集(Sequence Parameter Set ,簡稱SPS)中標識,如8×8為最小CU。在上述遞迴劃分過程中,如果一個節點的尺寸等於最小CU尺寸,這個節點預設為不再劃分,同時也不需要在碼流中包含它的劃分標誌位。
當解析到一個節點為葉節點後,此葉節點為一個CU,進一步解析CU對應的編碼訊息(包括CU的預測模式、變換係數等訊息,如H.265中的coding_unit()語法結構體),然後按照這些編碼訊息對CU進行預測、反量化、反變換、環路濾波等解碼處理,產生這個CU對應的重建影像。
一種CTU劃分成一組CU的劃分方式對應於一個劃分樹。CTU應當採用何種劃分樹,通常通過影片編碼器的率失真優化(rate distortion optimization, 簡稱RDO)技術來確定。影片編碼器嘗試多種CTU劃分方式,每一種劃分方式對應於一個率失真代價(RD cost),編碼器比較各種嘗試過的劃分方式的率失真代價,找到率失真代價最小的劃分方式,作為該CTU最優的劃分方式,用於該CTU的實際編碼。編碼器嘗試的各種CTU劃分方式均需要符合影片解碼器規定的劃分規則,這樣才能夠被解碼器正確識別。
由於本發明的實施例以JVET參考軟體JEM為例進行說明,因此,下面再對JEM中CTU的劃分技術作簡要說明。
在JEM中加入了基於二叉樹(binary tree,簡稱BT)的編碼劃分方式,即一個節點可以以二叉樹的方式繼續劃分成兩個節點。具體的二叉樹劃分方式有兩種:
1)“水平劃分”,將節點對應的區域劃分成上、下兩個相同大小的區域(即寬不變,高變為劃分前區域的一半),每個區域對應於一個節點。
2)“豎直劃分”,將節點對應的區域劃分成左、右兩個相同大小的區域(即高不變,寬變為劃分前區域的一半)。
與四叉樹相似的,節點在二叉樹上的層級稱為二叉樹層級(簡稱BT層級)。採用二叉樹劃分形成的子節點的BT層級為其父節點的BT層級+1。如果一個節點的BT層級等於最大BT層級時,這個節點將被預設為不再劃分。最大BT層級可在SPS中標識。
在實際應用中,二叉樹劃分和四叉樹劃分可採用級聯的方式,簡稱為QTBT劃分方式,例如,CTU先按照QT劃分,QT的葉節點允許繼續使用BT劃分,如圖2所示。其中,圖2右圖中每個端點表示一個節點,一個節點連出四根實線表示四叉樹劃分,一個節點連出兩根虛線表示二叉樹劃分,a到m為13個葉節點,每個葉節點對應1個CU;二叉樹節點上的1表示豎直劃分,0表示水平劃分;一個CTU按照右圖的劃分,成為a到m這13個CU,如圖2左圖所示。QTBT劃分方式中,每個CU具有QT層級和BT層級,QT層級表示CU所屬的QT葉節點CU的QT層級,BT層級表示CU所屬BT葉節點的BT層級,如圖2中a和b的QT層級為1,BT層級為2;c、d、e的QT層級為1,BT層級為1;f、k、l的QT層級為2,BT層級為1;i、j的QT層級為2,BT層級為0;g、h的QT層級為2,BT層級為2;m的QT層級為1,BT層級為0。如果CTU只劃分成一個CU,則此CU的QT層級為0,BT層級為0。
在QT劃分上引入BT劃分,這種方式的優點為CU形狀更加多樣,從而更好地適應局部影像的內容。H.265標準中基於QT的劃分使得所有CU都只能是正方形,即CU的寬度等於高度。CU的寬度即CU包含的像素的列數,CU的高度即為CU包含的像素的行數。引入BT劃分後,CU的寬度和高度可以不相同,例如,寬高比為2、4、8、16、1/2、1/4、1/8或者1/16。QTBT劃分方式下,所有CU的寬度和高度都不能小於最小CU的邊長。
需要注意的是,如果採用JEM 4.0進行影片編碼,I幀(即關鍵幀)中的CTU的亮度像素和色度像素分別使用獨立的QTBT樹,I幀亮度像素的QTBT樹的最大BT層級可由MaxBTDepthISliceL參數表示,I幀色度像素QTBT樹的最大BT層級可由MaxBTDepthISliceC參數表示;非I幀中的CTU的亮度像素和色度像素使用共同的QTBT樹,最大BT層級可由MaxBTDepth參數表示。上述三種最大BT深度層級均可在SPS中標識。這種方式下,I幀內所有亮度CU的最大BT層級相同,所有色度CU的最大BT層級相同;非I幀內所有CU的最大BT層級相同。
為了便於理解現有技術存在的問題,下面再對問題的產生作簡要說明。在採用QTBT劃分方式時,不同QT層級的四叉樹葉節點經過BT劃分能夠形成的最小CU不同,例如,CTU設置為64×64大小,最大BT層級設置為3時,QT層級為0的四叉樹葉節點(大小為64×64)經過BT劃分可形成的最小CU包含512個像素(如32×16、16×32、8×64、64×8等);QT層級為1的四叉樹葉節點(大小為32×32)經過BT劃分可形成的最小CU包含128個像素;QT層級為2的四叉樹葉節點(大小為16×16)經過BT劃分可形成的最小CU包含32個像素。
下面將基於上面所述的本發明設計的共性方面,對本發明實施例進一步詳細說明。本發明實施例以第一葉節點為二叉樹葉節點為例進行說明。
本發明的一個實施例提供一種影像解碼方法及影片解碼器,一種影像編碼方法及影片編碼器,以及一種影片編解碼系統。所述影片解碼器在獲取到CTU對應的碼流後,首先獲取以CTU為根節點進行劃分得到的二叉樹葉節點的訊息;然後判斷二叉樹葉節點的訊息是否滿足預設的劃分條件,在滿足劃分條件的情況下,從碼流中獲取二叉樹葉節點的劃分指示訊息;當二叉樹葉節點的劃分指示訊息指示對二叉樹葉節點進行劃分時,獲取以二叉樹葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;接下來,影片解碼器再根據第二葉節點對應的編碼訊息,生成第二葉節點對應的重建影像,從而獲得CTU對應的重建影像。其中,第二葉節點是指以二叉樹葉節點為根節點進行劃分得到的葉節點,對二叉樹葉節點劃分可基於四叉樹劃分方式,也可以基於三叉樹等劃分方式,本發明中以四叉樹為例進行說明。
通過本發明實施例提供的方案,使得在不改變最大二叉樹劃分層級的前提下,還能夠對尺寸較大的CU繼續進行劃分。在二叉樹葉節點滿足於預設的劃分條件時,根據碼流中攜帶的節點劃分指示訊息, 對節點繼續劃分,形成較小尺寸的編碼單元;這種處理方式,既可以提高部分二叉樹葉節點的編碼效率,又不會對整體編碼複雜度產生較大影響;因此,可以有效兼顧編碼效率及編碼複雜度。
下面結合附圖3,對本發明的一種影像解碼方法的實施例進行說明。
在301部分,影片解碼器獲取待解碼CTU對應的碼流。
一個影片碼流包括多個幀影像分別對應的碼流,一個幀碼流又可包括多個CTU對應的碼流。在對一個CTU進行解碼生成其對應的重建影像後,接下來就要對下一個CTU進行解碼,本發明的實施例將當前需要進行解碼處理的CTU稱為待解碼CTU。
所述CTU對應的劃分樹至少包括二叉樹節點。CTU劃分樹的樹形可以為二叉樹,也可以為四叉樹與二叉樹的級聯,例如,JEM下的劃分樹的樹形即為四叉樹與二叉樹級聯的樹形。
在302部分,獲取以待解碼CTU為根節點進行劃分得到的第一葉節點的訊息。
在獲取到待解碼CTU對應的碼流後,影片解碼器解析該碼流中關於CTU劃分方式的訊息,找到以CTU為根節點進行劃分得到的第一葉節點,並進一步獲取第一葉節點的訊息。
所述第一葉節點包括但不限於採用BT劃分或QTBT劃分等方式得到的葉節點。採用BT劃分或QTBT劃分下,第一葉節點均為二叉樹葉節點;QTBT劃分下,四叉樹葉節點不再通過二叉樹劃分時,此四叉樹葉節點也可以認為是一個二叉樹葉節點。所述第二葉節點包括以第一葉節點為根節點進行劃分得到的葉節點。
如果CTU對應的劃分樹是採用BT劃分方式形成的劃分樹,則查找第一葉節點的處理過程參見圖4;如果CTU對應的劃分樹的樹形為四叉樹與二叉樹的級聯,該處理過程參見圖5。
下面將結合附圖4對從基於BT劃分形成的CTU中解析獲得CTU的第一葉節點的實施例做進一步說明。
如圖4所示,首先將CTU作為二叉樹的根節點,根節點的BT層級為0。然後,根據碼流中節點對應的二叉樹劃分訊息,對節點按照二叉樹遞迴式地進行劃分,每個節點可選擇以下三種方式之一確定節點的劃分:
1)當二叉樹劃分訊息指示第一種劃分方式時,選擇不劃分,將此節點確定為二叉樹葉節點,即第一葉節點。
2)當二叉樹劃分訊息指示第二種劃分方式時,選擇水平二分,將此節點A劃分成兩個相同大小的子節點。劃分出的兩個子節點的寬度與其父節點的寬度相同,高度為父節點高度的一半,BT層級為父節點的BT層級+1。
3)當二叉樹劃分訊息指示第三種劃分方式時,選擇豎直二分,將此節點A劃分成兩個相同大小的節點。劃分出的兩個子節點的高度與其父節點的高度相同,寬度為父節點寬度的一半,BT層級為父節點的BT層級+1。
上述根據碼流中的二叉樹劃分訊息確定節點的二叉樹劃分方式的處理稱為二叉樹劃分確定處理。當節點允許繼續劃分成兩個節點時,依次分別對這兩個節點中的每一個節點進行二叉樹劃分確定處理。以此類推,直至找到二叉樹葉節點,即第一葉節點。二叉樹劃分訊息可用一個三值的語法元素來表示,如JEM中的BTSplitMode。
下面將結合附圖5對從基於QTBT劃分形成的CTU中解析獲得CTU的第一葉節點的實施例做進一步說明。
如圖5所示,首先將CTU作為四叉樹的根節點,根節點的QT層級為0。然後,根據碼流中節點對應的四叉樹劃分訊息(如JEM中的QTSplitMode),對節點按照四叉樹遞迴式地進行劃分,每個節點可選擇以下兩種方式中的對應一種進行劃分:
1)當四叉樹劃分訊息指示第一種劃分方式時,選擇不劃分,此節點確定為四叉樹葉節點。
2)當四叉樹劃分訊息指示第二種劃分方式時,選擇四分,此節點劃分成四個相同大小的子節點。劃分出的四個子節點的寬度為父節點寬度的一半,高度為父節點高度的一半,四叉樹層級為父節點的四叉樹層級+1。
上述根據碼流中的四叉樹劃分訊息確定節點的四叉樹劃分方式的處理稱為四叉樹劃分確定處理。當節點允許繼續劃分成四個節點時,依次分別對這四個節點中的每一個節點進行四叉樹劃分確定處理。此次類推,直至找到四叉樹葉節點。對於找到的四叉樹葉節點,將其作為二叉樹根節點,BT層級設為0。根據碼流中節點對應的二叉樹劃分訊息(如JEM中的BTSplitMode),對節點按照二叉樹遞迴式地進行劃分,從而找到二叉樹葉節點,即:第一葉節點。二叉樹葉節點的QT層級等於二叉樹根節點的QT層級。
在找到第一葉節點後,就可以獲取第一葉節點的訊息。所述第一葉節點的訊息可包括第一葉節點對應影像的寬度、高度、坐標等影像相關數據,還可包括第一葉節點的劃分層級訊息,例如JEM中採用QTBT劃分方式對CTU劃分得到的第一葉節點的劃分層級訊息包括QT層級和BT層級。
所述第一葉節點訊息,可在查找第一葉節點的過程中,通過逐層傳遞參數的方式計算獲得。例如,CTU的大小為64×64,對其進行二叉樹劃分得到第一葉節點,當根節點的二叉樹劃分訊息指示水平二分時,將根節點劃分成兩個相同大小的第一層子節點,劃分出的兩個第一層子節點的寬度與根節點的寬度相同(即寬度為64),高度為根節點高度的一半(即高度為32),BT層級為1,同時還可通過計算獲得兩個第一層子節點的坐標位置;在對這兩個第一層子節點進一步劃分(即獲得CTU的第二層子節點)時,依據第一層子節點的訊息可計算獲得第二層子節點的訊息,如第一層子節點的二叉樹劃分訊息指示垂直二分時,將第一層子節點劃分成兩個相同大小的第二層子節點,劃分出的兩個第二層子節點的高度與第一層子節點的高度相同(即為32),寬度為第一層子節點寬度的一半(即為32),BT層級為2,同時還可通過計算獲得兩個第二層子節點的坐標位置;在劃分過程中逐層計算各層節點的訊息並作為參數向下傳遞,直至找到第一葉節點,即可根據第一葉節點的父節點的訊息計算獲得第一葉節點的訊息。
在303部分,當第一葉節點的訊息滿足預設的劃分條件時,從碼流中獲取第一葉節點的劃分指示訊息。
對於找到的各個第一葉節點,首先要判斷第一葉節點的訊息是否滿足預設的劃分條件,如果不滿足預設的劃分條件,則將該節點確定為一個CU,並根據該CU中的編碼訊息,生成該節點的重建影像;如果第一葉節點滿足預設的劃分條件,則可通過解析CTU包括的語法元素的方式,獲得第一葉節點的劃分指示訊息。
在本實施例中,第一葉節點為二叉樹葉節點。所述預設的劃分條件包括但不限於以下條件的至少一項:二叉樹葉節點對應影像的形狀為方形,二叉樹葉節點的BT層級大於或者等於第一預設閥值,二叉樹葉節點對應影像的邊長或者以2為底的邊長的對數大於第二預設閥值。
方形影像的寬度等於高度。方形的編碼單元可包含N行N列的亮度像素、或者包含N行N列的色度像素、或者包含N行N列的亮度像素以及N/2行N/2列的色度像素(如YUV420格式)、或者包含N行N列的亮度像素以及N行N列的色度像素(如YUV444格式)、或者包含N行N列的RGB像素(如RGB格式)。
需要說明的是,如果CU包含亮度像素,則CU的寬和高可以用CU包含的亮度編碼塊的寬和高分別來表示;如果CU僅包含色度像素,則CU的寬和高可以用CU包含的色度編碼塊的寬和高分別來表示。
所述第一預設閥值及所述第二預設閥值,均可以設置為常數,例如,將第一預設閥值設置為2或4,將第二預設閥值設置為4。所述第一預設閥值及所述第二預設閥值,可以在影片解碼器中預先設定,也可以從碼流中解析得到,例如可在SPS中標識第一預設閥值、第二預設閥值。所述第二預設閥值也可設置為CU邊長的最小值(也稱最小CU邊長,minimum CU size)。
在304部分,當第一葉節點的劃分指示訊息指示對第一葉節點進行劃分時,獲取以第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息。
在本實施例中,第一葉節點為二叉樹葉節點。對二叉樹葉節點劃分的方式可以採用四叉樹劃分或三叉樹劃分等。具體實施時優選四叉樹劃分方式。
下面將結合圖6對本發明在對二叉樹葉節點最多作一層劃分時的實施例做進一步說明。
在601部分,判斷二叉樹葉節點的訊息是否滿足預設的劃分條件;若是,則進入602部分進行處理,否則進入605部分進行處理。
在本實施例中,所述預設的劃分條件為:二叉樹葉節點對應影像的形狀為方形、且二叉樹葉節點對應影像的寬度大於預設的最小CU寬度。影片解碼器針對二叉樹葉節點的訊息做兩方面判斷,一方面是判斷該節點對應影像的寬度是否等於高度,從而判斷該節點對應影像的形狀是否為方形;另一方面是判斷該節點對應影像的寬度是否大於第二預設閥值TX。只有在這兩方面判斷結果均為是的情況下,才判定二叉樹葉節點的訊息滿足預設的劃分條件。
在602部分,解析碼流,獲取二叉樹葉節點的第一劃分標誌位,第一劃分標誌位包括節點的劃分指示訊息。
從碼流中解析獲得該二叉樹葉節點對應的第一劃分標誌位,如果第一劃分標誌位為第一預設值(如0),則確定該二叉樹葉節點不再劃分,該節點即為一個CU;如果第一劃分標誌位為第二預設值(如1),則將該二叉樹葉節點按照四叉樹劃分方式劃分成四個相同大小的四叉樹葉節點,每個四叉樹葉節點為一個CU。
所述第一劃分標誌位可為一個二值的標誌位,例如,命名為sQtSplitFlag,其值為1(或0)時指示節點按照四叉樹劃分成4個節點,其值為0(或1)時指示節點不再劃分。第一劃分標誌位可出現在表示二叉樹劃分訊息的語法元素BtSplitMode之後。
所述第一劃分標誌位可使用基於上下文的適應性二元算術編碼(Context-based Adaptive Binary Arithmetic Coding,簡稱CABAC)方式解析得到。該算法的上下文模型可以有多種實施方式,可以只對應一個上下文模型,也可以為根據節點的二叉樹層級使用相應的上下文模型,還可以根據節點的四叉樹層級和二叉樹層級使用相應的上下文模型,又可以根據節點的尺寸使用相應的上下文模型。
在603部分,判斷第一劃分標誌位是否為1;若是,則進入604部分進行處理,否則進入605部分進行處理。
在604部分,按照四叉樹劃分方式,將二叉樹葉節點劃分為四個四叉樹葉節點對應的CU。
在605部分,確定節點不再劃分,將該節點作為一個編碼單元,並獲取該CU對應的編碼訊息。
將圖4與圖6相結合,或者將圖5與圖6相結合,即可實現從CTU根節點到找到第二葉節點的整個處理過程。如圖7所示,該圖中CTU是採用BT劃分方式形成的CTU,對二叉樹葉節點最多作一層劃分。
為了能夠更加直觀的說明圖7所示的實施方式,下面結合表1和表2對這種實施方式進行進一步說明。 表1:二叉樹劃分語法結構體語法示例表
表1給出了一種包含四叉樹劃分訊息sQtSplitFlag的二叉樹劃分語法結構體的語法表示例。在這種語法組織下,如果由二叉樹劃分得到的方形節點且節點的寬度大於第二預設閥值TX,則會在碼流中出現一個四叉樹劃分標識符sQtSplitFlag。當sQtSplitFlag為0時,表示該二叉樹葉節點不再劃分(即該節點是以二叉樹葉節點為根節點的四叉樹上的葉節點),確定為一個CU;當sQtSplitFlag為1時,表示該節點以四叉樹劃分為四個葉節點,各確定為一個CU。
表1中的coding_binarytree()為二叉樹劃分語法結構體,描述二叉樹上的節點按照二叉樹劃分的具體方式。其中,x0、x1、cuWidth、cuHeight、btDepth為變量;x0和x1分別表示節點左上角(即節點對應影像區域的左上角)相對于CTU左上角的水平偏移和豎直偏移(以1像素為單位),cuWidth和cuHeight分別表示CU的寬度和高度(以1像素為單位),btDepth表示CU的BT層級,“…”表示其它可能需要的變量,例如,當CTU採用QTBT方式劃分時,此處還可能包括節點在以CTU為根節點的四叉樹上的QT層級。條件condA表示碼流中出現二叉樹劃分訊息語法元素BtSplitMode的條件,例如條件condA為btDepth < MaxBTDepth && (cuWidth > minBTSize || cuHeight > minBtSize) && (cuWidth <= maxBTSize && cuHeight <= maxBTSize),其中MaxBTDepth為預設參數,表示最大二叉樹層級,其取值為大於0的整數(如2或3或4),可預先設定或從SPS中解析得到;minBTSize為預設參數,表示二叉樹節點邊長的最小值,其取值為大於0的整數(如為4或8),可預先設定或從SPS中解析得到;maxBTSize為預設參數,表示二叉樹節點邊長的最大值,其取值為大於minBTSize的整數(例如為64或128),可預先設定或從SPS中解析得到;“&&”表示邏輯“與”運算符,“||”表示邏輯“或”運算符。“X >> Y” 表示將X右移Y位;ae(v)表示使用CABAC解碼。
在本實施例中,BtSplitMode的值為0、1、或2,其中,BtSplitMode為1表示使用水平二分將節點劃分成2個節點,這2個節點的劃分仍不確定,繼續按照coding_binarytree()的語法分別解析這兩個節點的劃分;BtSplitMode為2表示使用豎直二分將此節點劃分成2個節點,它們的劃分仍不確定,繼續按照coding_binarytree()的語法分別解析這兩個節點的劃分。BtSplitMode為0(即表1中它即不為1也不為2的情況)表示此節點不再按照二叉樹進行劃分,該節點即為二叉樹葉節點(也即第一葉節點),在這種情況下,可以有兩種分支進行處理:
分支一:如果滿足“節點的寬度和高度相等,且節點的寬度大於第二預設閥值TX”,則從碼流中解析語法元素sQtSplitFlag[x0][y0]。如果sQtSplitFlag[x0][y0]為1,則按照四叉樹劃分將節點劃分成4個相同大小的節點(即第二葉節點),且這4個節點確定為不再劃分,每個四叉樹節點對應於一個CU,對這4個CU依次分別解析它們各自的CU語法結構體coding_unit()獲得預測模式、變換係數等編碼訊息,4個CU的解析處理次序可以為按照左上CU、右上CU、左下CU、右下CU的Z字掃描順序;如果sQtSplitFlag[x0][y0]為0,則節點確定為不再劃分,對應於一個CU,對此CU解析它的語法結構體coding_unit(),以獲得該CU的編碼訊息。
分支二:如果不滿足“節點的寬度和高度相等,且節點的寬度大於第二預設閥值TX”,則節點確定為不劃分,該節點即第二葉節點,對應於一個CU,對此CU解析它的語法結構體coding_unit(),以獲得該CU的編碼訊息。
上述coding_unit()描述一個CU的編碼訊息(如預測模式、殘差等),根據這些訊息可以對CU進行解碼,重建得到CU的重建像素。當BtSplitMode不在碼流中出現時,其值默認為0,即該二叉樹節點不再劃分,該節點為二叉樹葉節點(也即第一葉節點);當sQtSplitFlag不在碼流中出現時,其值預設為0,即該二叉樹葉節點不再按照四叉樹進行劃分。
具體實施時, cuWidth和cuHeight通常為2的整數次冪,即cuWidth=2^log2CuWidth, cuHeight = 2^log2CuHeight,“X^Y”表示X的Y次冪;如果用log2CuWidth和log2CuHeight作為變量分別替換cuWidth和cuHeight,則表1可改寫為表2。 表2:又一種二叉樹劃分語法結構體語法示例表
表2中,“X << Y”表示X向左移Y位操作, log2TX為以2為底的第二預設閥值的對數,其值為正整數,例如2或3,或者為對最小CU邊長取以2為底的對數的結果。
作為一種可選的實施方式,如果二叉樹葉節點(第一葉節點)在編碼階段是按照四叉樹遞迴式劃分進行劃分的,則影片解碼器需將二叉樹葉節點作為四叉樹的根節點,並從碼流中解析四叉樹劃分語法結構體,獲得四叉樹葉節點,即第二葉節點。該實施方式與上述對二叉樹葉節點最多作一層劃分的實施方式的不同之處在於:對二叉樹葉節點作至少兩層劃分得到第二葉節點。對二叉樹葉節點劃分得到的四個四叉樹節點不一定是第二葉節點,允許將這些四叉樹節點進一步按照四叉樹劃分方式劃分成多個更小的CU;這種處理方式,使得進一步支持劃分出較小尺寸的編碼單元;因此,對紋理複雜區域可以進一步提高編碼效率。
在四叉樹劃分語法結構體中包含第二劃分標誌位,如果第二劃分標誌位為第三預設值(如0),則確定該四叉樹節點不再劃分,形成一個CU,並解析該CU的編碼訊息;如果第二劃分標誌位為第四預設值(如1),則將該四叉樹節點進一步按照四叉樹劃分方式劃分成四個相同大小的四叉樹節點,每個四叉樹節點繼續解析四叉樹劃分語法結構體,確定其劃分方式,直至找到第二葉節點為止。
上述“將二叉樹葉節點作為四叉樹的根節點,並從碼流中解析四叉樹劃分語法結構體,獲得四叉樹葉節點”的步驟,可採用如下方式實現:首先,將二叉樹葉節點作為四叉樹的根節點,將其層級設為0;然後,對層級為0的節點,解析該節點對應的第二劃分標誌位,如命名為lQtSplitFlag,如果第二劃分標誌位的值為0,則節點不再劃分;否則,將層級為0的節點劃分為四個層級為1的節點,其寬和高均為上一層級節點(即其父節點)的一半。如果對層級為0的節點進行劃分,則對劃分得到的每一個層級為1的節點,再進一步分別解析該節點對應的第二劃分標誌位,確定該節點是不劃分,還是使用四叉樹劃分成四個層級為2的節點;如果對層級為1的節點進行劃分,則再對劃分得到的每個層級為2的節點,分別解析它對應的第二劃分標誌位,確定它是不劃分,還是使用四叉樹劃分成四個層級為3的節點;按照這種四叉樹遞迴結構,依次類推,直到所有節點不再劃分。
需要注意的是,如果編碼階段採用“當節點不滿足預設的遞迴劃分條件時,預設節點不再劃分,不在碼流中寫入該節點對應的第二劃分標誌位”的實施方式,則在上述節點劃分解析過程中,如果要判斷一個節點是否會繼續劃分,則可首先判斷該節點是否滿足預設的遞迴劃分條件,當判定節點不滿足預設的遞迴劃分條件時,可直接確定該節點不再劃分,而無需從碼流中解析該節點對應的第二劃分標誌位,再根據第二劃分標誌位確定該節點是否繼續劃分;當判定節點滿足預設的遞迴劃分條件時,再從碼流中解析該節點對應的第二劃分標誌位。
所述預設的遞迴劃分條件包括但不限於以下條件:節點的遞迴劃分層級小於第三預設閥值,節點對應影像的邊長大於第四預設閥值,節點的遞迴劃分層級小於第三預設閥值且節點對應影像的邊長大於第四預設閥值。
所述第三預設閥值可設置為大於等於0的整數。所述第三預設閥值,可以為影片解碼器預先設置好的常數(如2或3),也可以通過解析碼流獲得,還可以根據節點的BT層級確定。
要通過解析碼流得到第三預設閥值,影片編碼器要在編碼階段將所述第三預設閥值對應的語法元素寫在SPS、PPS(Picture Parameter Set,影像參數集)、slice header(條帶頭)或slice segment header(條帶片段頭)等語法結構體中。相應的,影片解碼器要在解碼階段在包括該語法元素的語法結構體中解析該語法元素,根據該語法元素的值獲得所述第三預設閥值,例如,第三預設閥值對應的語法元素的值為0、1、2分別表示第三預設閥值為0、1、2,或者分別表示第三預設閥值為1、2、3。
要根據節點的二叉樹層級確定所述第三預設閥值,需要預先設定所述節點的二叉樹層級與所述第三預設閥值之間的映射關係,例如,如果節點的二叉樹層級小於等於第五預設閥值,則第三預設閥值為2,否則第三預設閥值為1;或者,如果節點的二叉樹層級大於等於第六預設閥值,則第三預設閥值為1,否則第三預設閥值為0。其中,所述第五預設閥值和所述第六預設閥值,均可設置為大於等於0的整數,例如,2、3、4。
與所述第三預設閥值相同,所述第四預設閥值也可設置為大於等於0的整數。同樣的,所述第四預設閥值既可以為影片解碼器預先設置好的常數(如4或8),也可以等於預設的最小編碼單元邊長,也可以通過解析碼流獲得,例如,影片編碼器在編碼階段在SPS中設置語法元素B的值,解碼器在解碼階段解析語法元素B的值,語法元素B的值為0、1、2分別表示第四預設閥值為最小編碼單元邊長、最小編碼單元邊長的2倍、最小編碼單元邊長的4倍。
為了能夠更加直觀的說明上述“將二叉樹葉節點作為四叉樹的根節點,並從碼流中解析四叉樹劃分語法結構體,獲得四叉樹葉節點”的步驟,下面結合表3和表4對這種實施方式進行說明。 表3、又一種二叉樹劃分語法結構體語法示例表 表4、四叉樹劃分語法結構體語法表
表3給出上述可選實施方式對應的二叉樹劃分語法結構體coding_binarytree()語法表的示例,表4給出上述可選實施方式對應的四叉樹劃分語法結構體coding_binarytree()語法表的示例。表3中的coding_binarytree()與表2中的coding_binarytree()相似,但表3調用表4所表示的四叉樹劃分語法結構體coding_lquadtree(),coding_lquadtree()中包含了指示是否進行四叉樹劃分的第二劃分標誌位,即lQtSplitFlag。
表4中,log2CbSize表示節點的寬度,depth為節點的遞迴劃分層級。預設的遞迴劃分條件condB為假時,節點預設為不再劃分,碼流中不出現lQtSplitFlag;condB為真時,需要解析節點對應的lQtSplitFlag來確定節點是否進行四叉樹劃分。如果節點進行四叉樹劃分時,則劃分得到的每一個下一層級的節點的劃分仍不確定,需要遞迴式繼續對每一個下一層級節點解析它的四叉樹劃分語法結構體,確定它的劃分方式。
在305部分,根據第二葉節點對應的編碼訊息,生成第二葉節點對應的重建影像。
第二葉節點作為CU,根據其編碼訊息對其進行解碼以生成對應的重建影像。CTU包括的各個編碼單元分別對應的重建影像形成CTU的重建影像。
對編碼單元進行解碼的過程,可包括熵解碼、反量化、反變換、預測、環路濾波等處理步驟。在本實施例中,解碼過程如下所述:1)通過熵解碼獲得編碼單元的預測模式、量化參數、變換係數、變換模式等編碼訊息;2)根據預測模式,選用幀內預測或幀間預測,得到編碼單元的預測像素;3)如果編碼單元存在變換係數,則根據量化參數和變換模式,對變換係數進行反量化和反變換處理,得到編碼單元的重建殘差;如果編碼單元不存在變換係數,則編碼單元的重建殘差為0,即編碼單元中各像素的重建殘差值均為0;4)將預測像素和重建殘差相加後進行環路濾波處理,得到編碼單元的重建像素。
從上述實施例可以看出,本發明實施例提供的影像解碼方法,使得在不改變最大二叉樹劃分層級的前提下,還能夠對尺寸較大的CU繼續進行劃分。在二叉樹葉節點滿足於預設的劃分條件時,根據碼流中攜帶的節點劃分指示訊息, 對節點繼續劃分,形成較小尺寸的編碼單元;這種處理方式,既可以提高部分二叉樹葉節點的編碼效率,又不會對編碼複雜度產生較大影響;因此,可以有效兼顧編碼效率及編碼複雜度。
圖8示出了上述實施例中所涉及的影片解碼器的涉及的方塊圖。
所述影片解碼器包括處理器801和儲存器802。處理器801執行圖3至圖7中涉及影片解碼器的處理過程和/或用於本申請所描述的技術的其他過程。儲存器802用於儲存影片解碼器的程式碼和數據。
可選的,所述影片解碼器還可包括接收器。所述接收器用於接收影片編碼器發送的待解碼CTU對應的碼流,以及將該碼流傳送至處理器801,以生成CTU對應的重建影像。
可以理解的是,圖8僅僅是處理影片解碼器的簡化設計。可以理解的是,影片解碼器可以包含任意數量的處理器,儲存器,接收器等。
與本發明的一種影像解碼方法相對應,本發明還提供了一種影像編碼方法。
下面結合附圖9,對本發明的一種影像編碼方法的實施例進行說明。
在901部分,以編碼樹單元為根節點進行劃分得到第一葉節點。
在本實施例中,第一葉節點為二叉樹葉節點。所述二叉樹葉節點可以是由CTU通過二叉樹(BT)劃分得到的二叉樹葉節點,也可以是CTU通過四叉樹級聯二叉樹(QTBT)劃分得到的二叉樹葉節點。四叉樹級聯二叉樹劃分產生的四叉樹葉節點如果不再繼續按照二叉樹進行劃分,它即為一個二叉樹葉節點。
要以編碼樹單元為根節點進行劃分得到第一葉節點,首先需要從多種CTU劃分方式中選擇一種包含二叉樹劃分的CTU劃分方式。所述包含二叉樹劃分的CTU劃分方式可基於BT劃分或基於QTBT劃分。
要從多種CTU劃分方式中選擇一種包含二叉樹劃分的CTU劃分方式,可採用如下步驟實現:1)根據每一種CTU劃分,將CTU劃分成一組CU,對各CU進行編碼,得到這種CTU劃分下的CTU的率失真代價;2)選擇率失真代價最小的CTU劃分作為最優CTU劃分。
一種CTU劃分對應的率失真代價為這種CTU劃分下得到的所有CU的率失真代價之和;一個CU的率失真代價計算方法為現有技術,它通常為CU包含的像素的重建失真的平方誤差總和(sum of squared errors, 簡稱SSE)與CU對應碼流的位元數估算值的加權和,也可簡化為只與CU包含的像素的重建失真有關而與CU的位元數無關。
在確定CTU劃分方式後,就可以根據該劃分方式以編碼樹單元為根節點進行劃分得到第一葉節點。
在902部分,當第一葉節點的訊息滿足劃分條件時,確定是否對第一葉節點進行劃分。
在以CTU為根節點進行劃分得到第一葉節點之後,就可以根據預設的劃分條件從中找到滿足預設的劃分條件的第一葉節點。本實施例的第一葉節點為二叉樹葉節點,相應的,預設的劃分條件可包括以下條件的至少一項:二叉樹葉節點對應影像的形狀為方形,二叉樹葉節點的二叉樹層級大於或者等於第一預設閥值,二叉樹葉節點對應影像的邊長或者以2為底的邊長的對數大於第二預設閥值。在上述實施例一中已對劃分條件作了詳細說明,此處不在贅述,請參見實施例一的相關說明。
從CTU對應的劃分樹中找到滿足預設的劃分條件的二叉樹葉節點之後,依次對每一個符合條件的二叉樹葉節點,比較按照四叉樹劃分一層和不劃分這兩種方式下此CU編碼的率失真代價,根據比較結果確定是否對該節點繼續進行劃分。
具體實施時,確定是否對第一葉節點進行劃分的過程,可包括如下步驟:1)獲取二叉樹葉節點在劃分前的率失真代價,作為第一率失真代價;2)將該節點按照四叉樹繼續劃分成4個下一層級節點,對這4個下一層級節點依次進行編碼,並計算各自的率失真代價的總和,作為二叉樹葉節點在劃分後的第二率失真代價;3)如果第一率失真代價小於等於第二率失真代價,則確定該二叉樹葉節點不再劃分;否則,確定將該節點按照四叉樹繼續劃分成4個葉節點。
在903部分,當確定對第一葉節點進行劃分時,以第一葉節點為根節點進行劃分得到第二葉節點。
在本實施例中,第二葉節點為以第一葉節點為根節點進行四叉樹劃分得到的葉節點。具體實施時,也可以採用三叉樹或八叉樹等劃分方式,以第一葉節點為根節點進行劃分得到第二葉節點。
在實現以第一葉節點為根節點進行劃分得到第二葉節點時,可採用以下兩種方式:1)對第一葉節點進行一層劃分得到第二葉節點;2)對第一葉節點進行至少兩層劃分得到第二葉節點。
要實現對第一葉節點進行至少兩層劃分得到第二葉節點,可採用如下步驟進行處理:首先,對第一葉節點作一層劃分得到當前節點;然後依次確定是否對各個當前節點繼續進行劃分;當確定對當前節點進行劃分時,對當前節點進行劃分得到第二葉節點。
在確定是否對當前節點繼續進行劃分時,仍可通過對比劃分前和劃分後的率失真代價的方式進行確定。此外,可在當前節點的訊息滿足預設的遞迴劃分條件的前提下,再執行確定是否對當前節點進行劃分的步驟;這種處理方式,使得在當前節點的訊息不滿足預設的遞迴劃分條件時,無需在碼流中設置該節點的劃分指示訊息,因此可以進一步提高編碼效率。
所述預設的遞迴劃分條件可包括以下條件的至少一項:當前節點的遞迴劃分層級小於第三預設閥值,當前節點對應影像的邊長或者以2為底的邊長的對數大於第四預設閥值。在上述實施例一中已對遞迴劃分條件作了詳細說明,此處不在贅述,請參見實施例一的相關說明。
在904部分,根據第二葉節點的影像數據,生成編碼樹單元對應的碼流。
將CTU劃分為第二葉節點後,第二葉節點作為CU,就可以根據CU的影像數據生成對應的編碼訊息,多個CU的編碼訊息構成CTU對應的碼流。所述CTU對應的碼流不僅包括第二葉節點對應的編碼訊息,還包括第一葉節點的劃分指示訊息。當確定對第一葉節點進行劃分時,該第一葉節點的劃分指示訊息指示對第一葉節點進行劃分。
當第一葉節點的訊息滿足預設的劃分條件、但902部分確定不對第一葉節點進行劃分時,將第一葉節點作為CU,根據第一葉節點的影像數據生成對應的編碼訊息。在這種情況下,CTU對應的碼流包括第一葉節點對應的編碼訊息和第一節點的劃分指示訊息,該第一葉節點的劃分指示訊息指示不對第一葉節點進行劃分。
其中,第一葉節點的劃分指示訊息,具體可根據表1、表2或表3、表4所描述語法組織方式進行組織。
當第一葉節點的訊息不滿足於預設的劃分條件時,將第一葉節點作為CU,根據第一葉節點的影像數據生成對應的編碼訊息。在這種情況下,CTU對應的碼流包括第一葉節點對應的編碼訊息,但可不包括第一葉節點的劃分指示訊息,即:當第一葉節點的訊息不滿足於預設的劃分條件時,無需設置第一葉節點的劃分指示訊息。
對CU進行編碼的過程可包括預測、變換、量化、熵編碼等處理步驟。在本實施例中,處理過程包括如下步驟:1)根據預測模式,選用幀內預測或幀間預測,得到CU的預測像素;2)將CU的原始像素和預測像素之間的殘差進行變化和量化,得到變換係數;對變換係數進行反量化、反變換得到重建殘差;3)將CU的預測像素和重建殘差相加後進行環路濾波處理,得到CU的重建像素;4)對CU的預測模式、變換係數等訊息進行熵編碼,產生CU的碼流,最後,CTU對應的碼流包括各CU的碼流。
從上述實施例可以看出,本發明實施例提供的影像編碼方法,使得在不改變最大二叉樹劃分層級的前提下,還能夠對尺寸較大的影像(CU)繼續進行劃分。在二叉樹葉節點滿足於預設的劃分條件時,將二叉樹葉節點對應的影像繼續劃分,形成較小尺寸的影像;這種處理方式,既可以提高部分二叉樹葉節點的編碼效率,又不會對編碼複雜度產生較大影響;因此,可以有效兼顧編碼效率及編碼複雜度。
圖10示出了上述實施例中所涉及的影片編碼器的涉及的方塊圖。
所述影片編碼器包括處理器1001和儲存器1002。處理器1001執行圖9中涉及影片編碼器的處理過程和/或用於本申請所描述的技術的其他過程。儲存器1002用於儲存影片編碼器的程式碼和數據。
可選的,所述影片編碼器還可包括發送器。所述發送器用於向上述實施例中的所述的影片解碼器發送處理器1001輸出的CTU對應的碼流。
可以理解的是,圖10僅僅是處理影片編碼器的簡化設計。可以理解的是,影片解碼器可以包含任意數量的處理器,儲存器,發送器等。
在上述實施例中,可以全部或部分地通過軟體、硬體、固件或者其任意組合來實現。當使用軟體實現時,可以全部或部分地以計算機程式產品的形式實現。所述計算機程式產品包括一個或多個計算機指令。在計算機上加載和執行所述計算機程式指令時,全部或部分地產生按照本發明實施例所述的流程或功能。所述計算機可以是通用計算機、專用計算機、計算機網路、或者其他可程式化裝置。所述計算機指令可以儲存在計算機可讀儲存介質中,或者從一個計算機可讀儲存介質向另一個計算機可讀儲存介質傳輸,例如,所述計算機指令可以從一個網站站點、計算機、伺服器或數據中心通過有線(例如同軸電纜、光纖、數位用戶線(DSL))或無線(例如紅外、無線、微波等)方式向另一個網站站點、計算機、伺服器或數據中心進行傳輸。所述計算機可讀儲存介質可以是計算機能夠存取的任何可用介質或者是包含一個或多個可用介質集成的服務器、數據中心等數據儲存設備。所述可用介質可以是磁性介質,(例如,軟盤、硬盤、磁帶)、光介質(例如,DVD)、或者半導體介質(例如固態硬盤solid state disk (SSD))等。
本說明書中各個實施例之間相同相似的部分互相參見即可。尤其,對於影片解碼器和影片編碼器的實施例而言,由於其基本相似於方法實施例,所以描述的比較簡單,相關之處參見方法實施例中的說明即可。
以上所述的本發明實施方式並不構成對本發明保護範圍的限定。
10‧‧‧影片編解碼系統
12‧‧‧源裝置
14‧‧‧目的地裝置
16‧‧‧通道
18‧‧‧影片源
20‧‧‧影片編碼器
22‧‧‧輸出介面
28‧‧‧輸入介面
30‧‧‧影片解碼器
32‧‧‧顯示裝置
301、302、303、304、305、601、602、603、604、605‧‧‧影像解碼方法的部分
801、1001‧‧‧處理器
802、1002‧‧‧儲存器
901、902、903、904‧‧‧影像編碼方法的部分
圖1為本發明實施例提供的影片編解碼系統的結構示意圖; 圖2為本發明實施例提供的CTU劃分方式的示意圖; 圖3為本發明實施例提供的一種影像解碼方法的流程示意圖; 圖4為本發明實施例提供的一種影像解碼方法的查找第一葉節點的流程示意圖; 圖5為本發明實施例提供的一種影像解碼方法的查找第一葉節點的又一流程示意圖; 圖6為本發明實施例提供的一種影像解碼方法的304部分的流程示意圖; 圖7為本發明實施例提供的一種影像解碼方法的具體流程示意圖; 圖8為本發明實施例提供的一種影片解碼器的結構示意圖; 圖9為本發明實施例提供的一種影像編碼方法的流程示意圖; 圖10為本發明實施例提供的一種影片編碼器的結構示意圖。

Claims (37)

  1. 一種影像解碼方法,包括: 獲取以編碼樹單元為根節點進行劃分得到的第一葉節點的訊息; 當所述第一葉節點的訊息滿足劃分條件時,獲取所述第一葉節點的劃分指示訊息; 當所述第一葉節點的劃分指示訊息指示對所述第一葉節點進行劃分時,獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;以及 根據所述第二葉節點對應的編碼訊息,生成所述第二葉節點對應的重建影像。
  2. 如申請專利範圍第1項所述的方法,其中所述第一葉節點為以所述編碼樹單元為根節點進行二叉樹劃分,或者基於四叉樹和二叉樹級聯方式進行劃分得到的葉節點;所述劃分條件包括以下條件的至少一項: 所述第一葉節點對應影像的形狀為方形,所述第一葉節點的二叉樹層級大於或者等於第一預設閥值,所述第一葉節點對應影像的邊長或者以2為底的所述邊長的對數大於第二預設閥值。
  3. 如申請專利範圍第1項所述的方法,其中所述第二葉節點為以所述第一葉節點為根節點進行四叉樹劃分得到的葉節點。
  4. 如申請專利範圍第1項所述的方法,其中所述獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息,包括: 獲取對所述第一葉節點作一層劃分得到的所述第二葉節點對應的編碼訊息。
  5. 如申請專利範圍第1項所述的方法,更包括: 當所述第一葉節點的劃分指示訊息指示不對所述第一葉節點進行劃分時,獲取所述第一葉節點對應的編碼訊息,並根據所述第一葉節點對應的編碼訊息,生成所述第一葉節點對應的重建影像。
  6. 如申請專利範圍第1項所述的方法,其中所述獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息,包括: 獲取對所述第一葉節點作至少兩層劃分得到的所述第二葉節點對應的編碼訊息。
  7. 如申請專利範圍第1項所述的方法,其中所述獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息,包括: 獲取對所述第一葉節點作一層劃分得到的當前節點的劃分指示訊息;以及 當所述當前節點的劃分指示訊息指示對所述當前節點進行劃分時,獲取對所述當前節點進行劃分得到的所述第二葉節點對應的編碼訊息。
  8. 如申請專利範圍第7項所述的方法,其中所述獲取對所述第一葉節點作一層劃分得到的當前節點的劃分指示訊息,包括: 當所述當前節點的訊息滿足遞迴劃分條件時,獲取對所述第一葉節點作一層劃分得到的當前節點的劃分指示訊息。
  9. 如申請專利範圍第8項所述的方法,其中所述遞迴劃分條件包括以下條件的至少一項: 所述當前節點的遞迴劃分層級小於第三預設閥值,所述當前節點對應影像的邊長或者以2為底的所述邊長的對數大於第四預設閥值。
  10. 如申請專利範圍第1項所述的方法,更包括: 當所述第一葉節點的訊息不滿足所述劃分條件時,獲取所述第一葉節點對應的編碼訊息,根據所述第一葉節點對應的編碼訊息,生成所述第一葉節點對應的重建影像。
  11. 一種影片解碼器,包括: 至少一個儲存器;以及 耦合到所述至少一個儲存器的至少一個處理器,所述至少一個處理器配置為:獲取以編碼樹單元為根節點進行劃分得到的第一葉節點的訊息;當所述第一葉節點的訊息滿足劃分條件時,獲取所述第一葉節點的劃分指示訊息;當所述第一葉節點的劃分指示訊息指示對所述第一葉節點進行劃分時,獲取以所述第一葉節點為根節點進行劃分得到的第二葉節點對應的編碼訊息;根據所述第二葉節點對應的編碼訊息,生成所述第二葉節點對應的重建影像。
  12. 如申請專利範圍第11項所述的影片解碼器,其中所述至少一個處理器配置為: 獲取對所述第一葉節點作一層劃分得到的所述第二葉節點對應的編碼訊息。
  13. 如申請專利範圍第11項所述的影片解碼器,其中所述至少一個處理器配置為: 當所述第一葉節點的劃分指示訊息指示不對所述第一葉節點進行劃分時,獲取所述第一葉節點對應的編碼訊息,並根據所述第一葉節點對應的編碼訊息,生成所述第一葉節點對應的重建影像。
  14. 如申請專利範圍第12項所述的影片解碼器,其中所述至少一個處理器配置為: 獲取對所述第一葉節點作至少兩層劃分得到的所述第二葉節點對應的編碼訊息。
  15. 如申請專利範圍第14項所述的影片解碼器,其中所述至少一個處理器配置為: 獲取對所述第一葉節點作一層劃分得到的當前節點的劃分指示訊息;當所述當前節點的劃分指示訊息指示對所述當前節點進行劃分時,獲取對所述當前節點進行劃分得到的所述第二葉節點對應的編碼訊息。
  16. 如申請專利範圍第15項所述的影片解碼器,其中所述至少一個處理器配置為: 當所述當前節點的訊息滿足遞迴劃分條件時,獲取對所述第一葉節點作一層劃分得到的當前節點的劃分指示訊息。
  17. 如申請專利範圍第11項所述的影片解碼器,其中所述至少一個處理器配置為: 當所述第一葉節點的訊息不滿足所述劃分條件時,獲取所述第一葉節點對應的編碼訊息,根據所述第一葉節點對應的編碼訊息,生成所述第一葉節點對應的重建影像。
  18. 一種影片編碼方法,包括: 以編碼樹單元為根節點進行劃分得到第一葉節點; 當所述第一葉節點的訊息滿足劃分條件時,確定是否對所述第一葉節點進行劃分; 當確定對所述第一葉節點進行劃分時,以所述第一葉節點為根節點進行劃分得到第二葉節點;以及 根據所述第二葉節點的影像數據,生成所述編碼樹單元對應的碼流,其中所述編碼樹單元對應的碼流包括所述第二葉節點對應的編碼訊息和所述第一葉節點的劃分指示訊息,所述第一葉節點的劃分指示訊息指示對所述第一葉節點進行劃分。
  19. 如申請專利範圍第18項所述的方法,其中所述第一葉節點為以所述編碼樹單元為根節點進行二叉樹劃分,或者基於四叉樹和二叉樹級聯方式進行劃分得到的葉節點;所述劃分條件包括以下條件的至少一項: 所述第一葉節點對應影像的形狀為方形,所述第一葉節點的二叉樹層級大於或者等於第一預設閥值,所述第一葉節點對應影像的邊長或者以2為底的所述邊長的對數大於第二預設閥值。
  20. 如申請專利範圍第18項所述的方法,其中所述第二葉節點為以所述第一葉節點為根節點進行四叉樹劃分得到的葉節點。
  21. 如申請專利範圍第18項所述的方法,其中所述以所述第一葉節點為根節點進行劃分得到第二葉節點,包括: 對所述第一葉節點進行一層劃分得到所述第二葉節點。
  22. 如申請專利範圍第18項所述的方法,更包括: 當確定不對所述第一葉節點進行劃分時,根據所述第一葉節點的影像數據,生成所述編碼樹單元對應的碼流,所述編碼樹單元對應的碼流包括所述第一葉節點對應的編碼訊息和所述第一節點的劃分指示訊息,所述第一葉節點的劃分指示訊息指示不對所述第一葉節點進行劃分。
  23. 如申請專利範圍第18項所述的方法,其中所述以所述第一葉節點為根節點進行劃分得到第二葉節點,包括: 對所述第一葉節點進行至少兩層劃分得到所述第二葉節點。
  24. 如申請專利範圍第18項所述的方法,其中所述以所述第一葉節點為根節點進行劃分得到第二葉節點,包括: 對所述第一葉節點作一層劃分得到的當前節點,確定是否對所述當前節點進行劃分;以及 當確定對所述當前節點進行劃分時,對所述當前節點進行劃分得到所述第二葉節點。
  25. 如申請專利範圍第24項所述的方法,其中所述確定是否對所述當前節點進行劃分,包括: 當所述當前節點的訊息滿足遞迴劃分條件時,確定是否對所述當前節點進行劃分。
  26. 如申請專利範圍第25項所述的方法,其中所述遞迴劃分條件包括以下條件的至少一項: 所述當前節點的遞迴劃分層級小於第三預設閥值,所述當前節點對應影像的邊長或者以2為底的所述邊長的對數大於第四預設閥值。
  27. 如申請專利範圍第18項所述的方法,其中所述確定是否對所述第一葉節點進行劃分,包括: 獲取所述第一葉節點在劃分前的第一率失真代價;以及,獲取所述第一葉節點在劃分後的第二率失真代價; 若所述第一率失真代價小於等於所述第二率失真代價,則確定對所述第一葉節點進行劃分; 若所述第一率失真代價大於所述第二率失真代價,則確定不對所述第一葉節點進行劃分。
  28. 如申請專利範圍第18項所述的方法,更包括: 當所述第一葉節點的訊息不滿足所述劃分條件時,根據所述第一葉節點的影像數據,生成所述編碼樹單元對應的碼流,所述編碼樹單元對應的碼流包括所述第一葉節點對應的編碼訊息。
  29. 一種影片編碼器,包括: 至少一個儲存器;以及 耦合到所述至少一個儲存器的至少一個處理器,所述至少一個處理器配置為:以編碼樹單元為根節點進行劃分得到第一葉節點;當所述第一葉節點的訊息滿足劃分條件時,確定是否對所述第一葉節點進行劃分;當確定對所述第一葉節點進行劃分時,以所述第一葉節點為根節點進行劃分得到第二葉節點;根據所述第二葉節點的影像數據,生成所述編碼樹單元對應的碼流,所述編碼樹單元對應的碼流包括所述第二葉節點對應的編碼訊息和所述第一節點的劃分指示訊息,所述第一葉節點的劃分指示訊息指示對所述第一葉節點進行劃分。
  30. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 對所述第一葉節點進行一層劃分得到所述第二葉節點。
  31. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 當確定不對所述第一葉節點進行劃分時,根據所述第一葉節點的影像數據,生成所述待編碼影像對應的碼流,所述待編碼影像對應的碼流包括所述第一葉節點對應的編碼訊息和所述第一節點的劃分指示訊息,所述第一葉節點的劃分指示訊息指示不對所述第一葉節點進行劃分。
  32. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 對所述第一葉節點進行至少兩層劃分得到所述第二葉節點。
  33. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 對所述第一葉節點作一層劃分得到的當前節點,確定是否對所述當前節點進行劃分;當確定對所述當前節點進行劃分時,對所述當前節點進行劃分得到所述第二葉節點。
  34. 如申請專利範圍第33項所述的影片編碼器,其中所述至少一個處理器配置為: 當所述當前節點的訊息滿足遞迴劃分條件時,確定是否對所述當前節點進行劃分。
  35. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 獲取所述第一葉節點在劃分前的第一率失真代價;以及,獲取所述第一葉節點在劃分後的第二率失真代價;若所述第一率失真代價小於等於所述第二率失真代價,則確定對所述第一葉節點進行劃分;若所述第一率失真代價大於所述第二率失真代價,則確定不對所述第一葉節點進行劃分。
  36. 如申請專利範圍第29項所述的影片編碼器,其中所述至少一個處理器配置為: 當所述第一葉節點的訊息不滿足所述劃分條件時,根據所述第一葉節點的影像數據,生成所述待編碼影像對應的碼流,所述待編碼影像對應的碼流包括所述第一葉節點對應的編碼訊息。
  37. 一種影片編解碼系統,包括如申請專利範圍第11項至第17項中任一項所述的影片解碼器以及如申請專利範圍第29項至第36項中任一項所述的影片編碼器。
TW107110717A 2017-03-28 2018-03-28 影像編解碼方法、影片編解碼器及影片編解碼系統 TWI678104B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN201710192404.9A CN108668136A (zh) 2017-03-28 2017-03-28 图像编/解码方法、视频编/解码器及视频编解码***
??201710192404.9 2017-03-28

Publications (2)

Publication Number Publication Date
TW201904301A TW201904301A (zh) 2019-01-16
TWI678104B true TWI678104B (zh) 2019-11-21

Family

ID=63675198

Family Applications (1)

Application Number Title Priority Date Filing Date
TW107110717A TWI678104B (zh) 2017-03-28 2018-03-28 影像編解碼方法、影片編解碼器及影片編解碼系統

Country Status (4)

Country Link
US (1) US20200021831A1 (zh)
CN (1) CN108668136A (zh)
TW (1) TWI678104B (zh)
WO (1) WO2018177254A1 (zh)

Families Citing this family (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN108259913A (zh) * 2016-12-29 2018-07-06 北京大学深圳研究生院 一种用于帧间预测帧中的帧内预测方法
US10812827B2 (en) * 2018-05-11 2020-10-20 Panasonic Intellectual Property Corporation Of America Encoder, decoder, encoding method, and decoding method
HUE064218T2 (hu) 2018-08-28 2024-02-28 Huawei Tech Co Ltd Képfelosztási eljárás és eszköz
CN111355951B (zh) * 2018-12-24 2023-11-10 华为技术有限公司 视频解码方法、装置及解码设备
EP3907988A4 (en) * 2019-01-08 2022-06-29 Huawei Technologies Co., Ltd. Image prediction method, device, apparatus and system and storage medium
CN111770337B (zh) * 2019-03-30 2022-08-19 华为技术有限公司 视频编码方法、视频解码方法及相关设备
CN113678449A (zh) * 2019-04-23 2021-11-19 Oppo广东移动通信有限公司 图像解码方法、解码器以及存储介质
US11240499B2 (en) * 2019-05-24 2022-02-01 Tencent America LLC Method and apparatus for video coding
CN110446036B (zh) * 2019-07-29 2021-11-16 中南大学 一种基于多用途编码中帧内编码的编码单元快速划分方法
CN112470469B (zh) * 2020-03-31 2023-07-07 深圳市大疆创新科技有限公司 一种用于点云编码、解码的方法和设备
CN112738520B (zh) * 2020-12-23 2022-07-05 湖北中钰华宸实业有限公司 一种vr全景视频信息处理方法
CN116828180B (zh) * 2023-08-29 2023-11-17 北京中星微人工智能芯片技术有限公司 视频编码方法、装置、电子设备和计算机可读介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120128070A1 (en) * 2009-02-23 2012-05-24 Korean Broadcasting System Video Encoding Method for Encoding Division Block, Video Decoding Method for Decoding Division Block, and Recording Medium for Implementing the Same
CN104853220A (zh) * 2015-05-18 2015-08-19 武汉随锐亿山科技有限公司 一种hevc编码四叉树的递推译码方法
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure

Family Cites Families (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5274718A (en) * 1991-09-30 1993-12-28 At&T Bell Laboratories Image representation using tree-like structures
US8971656B2 (en) * 2009-12-10 2015-03-03 Sk Telecom Co., Ltd. Encoding/decoding method and apparatus using a tree structure
US8964833B2 (en) * 2011-07-19 2015-02-24 Qualcomm Incorporated Deblocking of non-square blocks for video coding
CN102801976B (zh) * 2012-08-03 2014-10-22 山东省科学院情报研究所 基于三维小波视频编码的帧间块模式选择方法
CN103077536B (zh) * 2012-12-31 2016-01-13 华中科技大学 时空变尺度运动目标检测方法
EP3270593A4 (en) * 2015-03-13 2018-11-07 LG Electronics Inc. Method of processing video signal and device for same
CN106210747A (zh) * 2016-07-19 2016-12-07 北京工业大学 一种基于四叉树概率预测的低复杂度视频编码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20120128070A1 (en) * 2009-02-23 2012-05-24 Korean Broadcasting System Video Encoding Method for Encoding Division Block, Video Decoding Method for Decoding Division Block, and Recording Medium for Implementing the Same
WO2016090568A1 (en) * 2014-12-10 2016-06-16 Mediatek Singapore Pte. Ltd. Binary tree block partitioning structure
CN104853220A (zh) * 2015-05-18 2015-08-19 武汉随锐亿山科技有限公司 一种hevc编码四叉树的递推译码方法

Also Published As

Publication number Publication date
US20200021831A1 (en) 2020-01-16
CN108668136A (zh) 2018-10-16
WO2018177254A1 (zh) 2018-10-04
TW201904301A (zh) 2019-01-16

Similar Documents

Publication Publication Date Title
TWI678104B (zh) 影像編解碼方法、影片編解碼器及影片編解碼系統
US11082703B2 (en) Neighbor based signaling of intra prediction modes
US10609414B2 (en) Context modeling for transform coefficient coding
RU2576590C2 (ru) Вывод позиции в порядке сканирования последнего значимого коэффициента преобразования при кодировании видеосигнала
TWI675589B (zh) 一種視頻圖像的編解碼方法及裝置
US11736706B2 (en) Video decoding method and apparatus, and decoding device
US11895297B2 (en) Prediction mode determining method and apparatus, encoding device, and decoding device
WO2020042630A1 (zh) 一种视频图像预测方法及装置
KR102407912B1 (ko) 양방향 인트라 예측 시그널링
CN116156192A (zh) 用于点云数据的点云块数据单元编码和解码
US20210084298A1 (en) Method and apparatus for boundary partition
TW202131697A (zh) 用於視訊編解碼的多重變換集訊號傳遞
WO2020143348A1 (zh) 预测模式确定方法和装置
US11539953B2 (en) Apparatus and method for boundary partition
TW202143708A (zh) 用於圖像和視訊解碼的區塊分割
EP3893505A1 (en) Method and device for determining prediction mode, coding device, and decoding device
CN114071162A (zh) 图像编码方法、图像解码方法及相关装置
WO2020061149A1 (en) Patch orientation derivation and prediction
TWI821013B (zh) 視頻編解碼方法及裝置
CN116965017A (zh) 在跨分量样点自适应偏移中的色度编解码增强
JP2021521676A (ja) 仮想現実アプリケーションにおいて特定のメッセージをシグナリングするためのシステム及び方法