TW202406351A - 圖像解碼方法、編碼方法及裝置 - Google Patents

圖像解碼方法、編碼方法及裝置 Download PDF

Info

Publication number
TW202406351A
TW202406351A TW112127959A TW112127959A TW202406351A TW 202406351 A TW202406351 A TW 202406351A TW 112127959 A TW112127959 A TW 112127959A TW 112127959 A TW112127959 A TW 112127959A TW 202406351 A TW202406351 A TW 202406351A
Authority
TW
Taiwan
Prior art keywords
pixel
value
prediction
reconstructed
target
Prior art date
Application number
TW112127959A
Other languages
English (en)
Inventor
魏亮
陳方棟
王莉
武曉陽
Original Assignee
大陸商杭州海康威視數字技術股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 大陸商杭州海康威視數字技術股份有限公司 filed Critical 大陸商杭州海康威視數字技術股份有限公司
Publication of TW202406351A publication Critical patent/TW202406351A/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/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/182Methods 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 pixel
    • 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/124Quantisation

Landscapes

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

Abstract

本申請公開一種圖像解碼方法、編碼方法及裝置。該圖像解碼方法包括:根據第一像素點的預測方式,確定第一像素點的預測殘差值;預測殘差值用於反映第一像素點的梯度;預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;第一像素點為當前編碼塊中的任意一個像素點;根據第一像素點的預測殘差值,確定第一像素點的目標量化參數QP值;根據第一像素點的目標QP值,對第一像素點進行反量化。

Description

圖像解碼方法、編碼方法及裝置
本申請涉及電腦視頻處理技術領域,尤其涉及一種圖像解碼方法、編碼方法及裝置。
在視頻編解碼領域,採用視頻壓縮(即視頻編解碼)技術可以壓縮視頻的資料量,從而實現視頻的高效傳輸或儲存。
對視頻進行編解碼即對視頻中的每一幀圖像進行編解碼。以一幀圖像為例,在編碼端,圖像編碼器對圖像編碼,得到圖像對應的碼流並傳輸碼流至解碼端;在解碼端,圖像解碼器解析碼流,得到圖像。目前,將圖像劃分為一個或多個編碼單元(coding unit,CU),圖像編碼器對每一個CU進行預測、確定對CU的預測值與CU的真實值之間的殘差值、對殘差值依次進行變換、量化、編碼,從而得到碼流。相應的,圖像解碼器對每一個CU進行預測、對CU對應的碼流的解碼結果依次進行反量化、反變換得到該CU對應的殘差值、計算CU的預測值和殘差值之和,從而得到CU的重構值。
在圖像編解碼過程中,量化可以實現信號取值多對一的映射,從而有效減少信號取值空間,獲得更好的壓縮效果。可以理解的,編碼端和解碼端根據量化參數(quantization parameter,QP)執行量化和反量化過程。目前,為一個CU設置一個QP,編碼端獲取每個CU的QP,並依據該QP對CU的殘差值或者變換係數進行量化;相應的,解碼端獲取CU的QP,並根據該QP對從碼流中解析得到的量化係數進行反量化(dequantization)。然而,對一個CU中的所有像素點採用相同的QP進行量化,即對該CU中的所有像素點進行相同程度的量化,這會導致圖像編解碼過程的量化失真(量化失真可以理解為因量化而造成的圖像失真)較大。
本申請提供一種圖像解碼方法、編碼方法及裝置,能夠可以在保證一定壓縮率的情況下,降低圖像幀的解碼失真,能夠提高圖像解碼的真實性和準確性。
為達到上述目的,本申請實施例採用如下技術方案:
第一方面,本申請實施例提供一種圖像解碼方法,該方法由解碼端執行,該方法包括:根據第一像素點的預測方式,確定第一像素點的預測殘差值;預測殘差值用於反映第一像素點的梯度;預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;第一像素點為當前編碼塊中的任意一個像素點;根據第一像素點的預測殘差值,確定第一像素點的目標量化參數QP值;根據第一像素點的目標QP值,對第一像素點進行反量化。
通過本申請實施例中提供的圖像解碼方法,視頻解碼器可以根據編碼塊中每個像素點的預測方式(預測方式用於指示對像素點進行預測時參考的已重建像素點的位置),確定每個像素點的預測殘差值(反映第一像素點的梯度),進而為編碼塊中的像素點確定每個像素點細微性的QP,從而根據每個像素點的QP值對每個像素點進行反量化,即逐像素點進行反量化,如此,可以在保證一定壓縮率的情況下,降低圖像幀的解碼失真,能夠提高圖像解碼的真實性和準確性。
其中,像素點的梯度,用於表示該像素點與其周圍像素點的差異,能夠反映該像素點的複雜度(例如紋理特點等)。
在一種可能的實現方式中,上述第一像素點的預測殘差值包括:目標值或者目標值的平均值;其中,目標值為第一像素點的周圍已重建像素點的梯度;或者,目標值為第一像素點的周圍已重建像素點的梯度的絕對值;或者,目標值為第一像素點的周圍已重建像素點反量化後的殘差值;或者,目標值為第一像素點的周圍已重建像素點反量化後的殘差值的絕對值。
在一種可能的實現方式中,上述預測方式包括:根據像素點的左右兩側的已重建像素點進行預測;和/或,根據像素點的上下兩側的已重建像素點進行預測;和/或,根據像素點的左側的已重建像素點進行預測;和/或,根據像素點的上側的已重建像素點進行預測。
另一種可能的實現方式中,上述第一像素點的預測方式為根據像素點的左右兩側的已重建像素點進行預測;上述根據第一像素點的預測方式,確定第一像素點的預測殘差值,包括:計算第二像素點與第三像素點的像素值之差,作為第一差值;或者,將第二像素點反量化後的殘差值,作為第一差值;第二像素點為第一像素點左側的第一個已重建像素點,第三像素點為第二像素點上側的第一個已重建像素點;計算第四像素點與第五像素點的像素值之差,作為第二差值;或者,將第四像素點反量化後的殘差值,作為第二差值;第四像素點為第一像素點右側的第一個已重建像素點,第五像素點為第四像素點上側的第一個已重建像素點;將第一差值的絕對值與第二差值的絕對值的平均值,作為第一像素點的預測殘差值。
另一種可能的實現方式中,上述第一像素點的預測方式為根據像素點的上下兩側的已重建像素點進行預測;上述根據第一像素點的預測方式,確定第一像素點的預測殘差值,包括:計算第六像素點與第七像素點的像素值之差,作為第三差值;第六像素點為第一像素點上側的第一個已重建像素點,第七像素點為第六像素點左側的第一個已重建像素點;計算第八像素點與第九像素點的像素值之差,作為第四差值;或者,將第八像素點反量化後的殘差值,作為第四差值;第八像素點為第一像素點下側的第一個已重建像素點,第九像素點為第八像素點左側的第一個已重建像素點;將第三差值的絕對值與第四差值的絕對值的平均值,作為第一像素點的預測殘差值。
另一種可能的實現方式中,上述第一像素點的預測方式為根據像素點的左側的已重建像素點進行預測;上述根據第一像素點的預測方式,確定第一像素點的預測殘差值,包括:將第十像素點與第十一像素點的像素值之差的絕對值,作為第一像素點的預測殘差值;第十像素點為第一像素點左側的第一個已重建像素點,第十一像素點為第十像素點左側的第一個已重建像素點;或者,將第十像素點與第十二像素點的像素值之差的絕對值,作為第一像素點的預測殘差值;第十二像素點為第十像素點上側的第一個已重建像素點;或者,將第十像素點反量化後的殘差值的絕對值,作為第一像素點的預測殘差值。
另一種可能的實現方式中,上述第一像素點的預測方式為根據像素點的上側的已重建像素點進行預測;上述根據第一像素點的預測方式,確定第一像素點的預測殘差值,包括:將第十三像素點與第十四像素點的像素值之差的絕對值,作為第一像素點的預測殘差值;第十三像素點為第一像素點上側的第一個已重建像素點,第十四像素點為第十三像素點上側的第一個已重建像素點;或者,將第十三像素點反量化後的殘差值的絕對值,作為第一像素點的預測殘差值。
另一種可能的實現方式中,上述方法還包括:確定第一像素點的預測QP值;第一像素點的預測QP值為當前編碼塊的QP值;上述根據第一像素點的預測殘差值,確定第一像素點的目標量化參數QP值,包括:若第一像素點為當前編碼塊中的目標像素點,根據預測殘差值,調整第一像素點的預測QP值,得到第一像素點的目標QP值;目標像素點為預先設定的調整QP值的像素點;或者,若第一像素點為當前編碼塊中目標像素點之外的像素點,將第一像素點的預測QP值作為目標QP值。
另一種可能的實現方式中,上述根據預測殘差值,調整第一像素點的預測QP值,得到第一像素點的目標QP值,包括:若第一像素點的預測QP值大於或等於第一閾值,且小於或等於第二閾值,並且,第一像素點的預測殘差值小於或等於第三閾值,調整第一像素點的預測QP值,得到目標QP值;目標QP值小於預測QP值;否則,將第一像素點的預測QP值作為第一像素點的目標QP值。
另一種可能的實現方式中,上述第一閾值為人眼恰可察覺失真對應的QP值,第二閾值為可調整的QP最大值。
另一種可能的實現方式中,上述調整第一像素點的預測QP值,得到第一像素點的目標QP值,包括:將預測QP值減去預設偏移量後得到的QP值,與人眼恰可察覺失真對應的QP值中的較大值,作為目標QP值。
另一種可能的實現方式中,上述人眼恰可察覺失真對應的QP值,根據第一像素點在目標通道中的比特深度,或者第一像素點的通道索引確定。
另一種可能的實現方式中,上述可調整的QP最大值,根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,以及碼流緩衝區的充盈程度中的一項或多項確定。
另一種可能的實現方式中,上述第三閾值,根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,以及當前塊的紋理複雜度中的一項或多項確定。
另一種可能的實現方式中,上述預設偏移量,根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,碼流緩衝區的充盈程度,以及當前編碼塊的紋理複雜度中的一項或多項確定。
另一種可能的實現方式中,上述當前編碼塊至少包括第一部分像素點和/或第二部分像素點;其中,第一部分像素點被設置為QP值無需調整的像素點;第二部分像素點被設置為QP值待調整的像素點;第一部分像素點和第二部分像素點根據當前編碼塊的逐點預測模式確定;目標像素點為第二部分像素點中的任意一個或多個像素點。
另一種可能的實現方式中,上述當前編碼塊的逐點預測模式包括:模式一和模式二;模式一為垂直型預測模式,用於處理垂直類型的紋理;模式二為水平型預測模式,用於處理水平類型的紋理;在當前編碼塊的逐點預測模式為模式一的情況下,第二部分像素點包括以下至少一項:第一類像素點、非首行的第四類像素點;第一類像素點為根據像素點的左右兩側的已重建像素點進行預測的像素點;第四類像素點為根據像素點的上側的已重建像素點進行預測的像素點;在當前編碼塊的逐點預測模式為模式二的情況下,第二部分像素點包括以下至少一項:非首列的第二類像素點、非首列的第三類像素點、非首行的第四類像素點;第二類像素點為根據像素點的上下兩側的已重建像素點進行預測的像素點;第三類像素點為根據像素點的左側的已重建像素點進行預測的像素點。
第二方面,本申請實施例提供一種圖像編碼方法,該方法由編碼端執行,該方法包括:根據第一像素點的預測方式,確定第一像素點的預測殘差值;預測殘差值用於反映第一像素點的梯度;預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;第一像素點為當前編碼塊中的任意一個像素點;根據第一像素點的預測殘差值,確定第一像素點的目標量化參數QP值;根據第一像素點的目標QP值,對第一像素點進行量化。
通過本申請實施例中提供的圖像編碼方法,視頻編碼器可以根據編碼塊中每個像素點的預測方式(預測方式用於指示對像素點進行預測時參考的已重建像素點的位置),確定每個像素點的預測殘差值(反映第一像素點的梯度),進而為編碼塊中的像素點確定每個像素點細微性的QP,從而根據每個像素點的QP值對每個像素點進行量化,即逐像素點進行量化,如此,可以在保證一定壓縮率的情況下,降低圖像幀的解碼失真,能夠提高圖像解碼的真實性和準確性。
可以理解的,圖像編碼方法中的各個步驟,為前述圖像解碼方法中的反操作,因此,圖像編碼方法中的各種可能的實現方式,可以參考圖像解碼方法中各種可能的實現方式的描述進行反操作,此處不再贅述。
第三方面,本申請實施例提供一種圖像解碼裝置,該圖像解碼裝置部署於解碼端中,該圖像解碼裝置包括用於實現第一方面及其可能的實現方式中之一的方法的各個模組,例如確定單元和反量化單元。
第三方面的技術方案以及有益效果可以參見第一方面及其可能的實現方式中任意之一的描述,此處不再贅述。圖像解碼裝置具有實現上述第一方面及其可能的實現方式中任意之一的方法實例中行為的功能。功能可以通過硬體實現,也可以通過硬體執行相應的軟體實現。硬體或軟體包括一個或多個與上述功能相對應的模組。
第四方面,本申請實施例提供一種圖像編碼裝置,該圖像編碼裝置部署於編碼端中,該圖像編碼裝置包括用於實現第二方面及其可能的實現方式中之一的方法的各個模組,例如確定單元和量化單元。
第四方面的技術方案以及有益效果可以參見第二方面及其可能的實現方式中任意之一的描述,此處不再贅述。圖像編碼裝置具有實現上述第二方面及其可能的實現方式中任意之一的方法實例中行為的功能。功能可以通過硬體實現,也可以通過硬體執行相應的軟體實現。硬體或軟體包括一個或多個與上述功能相對應的模組。
第五方面,本申請實施例提供一種電子設備,包括處理器和記憶體,記憶體用於儲存電腦指令,處理器用於從記憶體中調用並運行電腦指令,以實現第一方面至第二方面及其可能的實現方式中任意之一的方法。
例如,該電子設備可以是指視頻編碼器,或包括視頻編碼器的編碼端。
又如,該電子設備可以是指視頻解碼器,或包括視頻解碼器的解碼端。
第六方面,本申請實施例提供一種電腦可讀存儲介質,存儲介質中儲存有電腦程式或指令,當電腦程式或指令被計算設備或計算設備所在的儲存系統執行時,以實現第一方面至第二方面及其可能的實現方式中任意之一的方法。
第七方面,本申請實施例提供一種電腦程式產品,該計算程式產品包括指令,當電腦程式產品在計算設備或處理器上運行時,使得計算設備或處理器執行該指令,以實現第一方面至第二方面及其可能的實現方式中任意之一的方法。
第八方面,本申請實施例提供一種裝置,包括記憶體和處理器,記憶體用於儲存電腦指令,處理器用於從記憶體中調用並運行該電腦指令,以實現第一方面至第二方面及其可能的實現方式中任意之一的方法。
第九方面,本申請實施例提供一種視頻譯碼系統,該視頻譯碼系統包括編碼端和解碼端,解碼端用於實現第一方面及其可能的實現方式中任意之一的方法,編碼端用於實現第二方面及其可能的實現方式中任意之一的方法。
本申請實施例在上述各方面提供的實現方式的基礎上,還可以進行進一步組合以提供更多實現方式。
本文中術語“和/或”,僅僅是一種描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。
本申請的說明書以及附圖中的術語“第一”和“第二”等是用於區別不同的物件,或者用於區別對同一物件的不同處理,而不是用於描述物件的特定順序。
此外,本申請的描述中所提到的術語“包括”和“具有”以及它們的任何變形,意圖在於覆蓋不排他的包含。例如包含了一系列步驟或單元的過程、方法、系統、產品或設備沒有限定於已列出的步驟或單元,而是可選的還包括其他沒有列出的步驟或單元,或可選的還包括對於這些過程、方法、產品或設備固有的其它步驟或單元。
需要說明的是,本申請實施例中,“示例性的”或者“例如”等詞用於表示作例子、例證或說明。本申請實施例中被描述為“示例性的”或者“例如”的任何實施例或設計方案不應被解釋為比其它實施例或設計方案更優選或更具優勢。確切而言,使用“示例性的”或者“例如”等詞旨在以具體方式呈現相關概念。
在本申請的描述中,除非另有說明,“多個”的含義是指兩個或兩個以上。
本申請實施例提供的圖像解碼方法、編碼方法也可以用於視頻解碼、視頻編碼,應理解,視頻包括一系列圖像(picture),對視頻進行解碼、解碼實質也是對視頻所包括的所有圖像進行解碼、編碼。
可以理解的,圖像編碼過程中所涉及的量化是指將信號的連續取值(或大量的離散取值)映射為有限多個離散取值的過程,量化可以實現信號取值的多對一的映射。在視頻編碼中,殘差信號經過變換後,變換係數往往具有較大的動態範圍,因此對變換係數進行量化可以有效減少信號取值空間,獲得更好的壓縮效果。但是,由於多對一的映射機制,量化過程不可避免的會引入失真,這是視頻編碼中產生失真的根本原因。
反量化是量化的反過程,反量化指的是將量化後的係數映射為輸入信號空間中的重建信號,重建信號是輸入信號的一個近似。
量化包括標量量化(scalar quantization,SQ)和向量量化。其中,標量量化是最基本的量化方法,標量量化的輸入是一維的標量信號,標量量化過程包括:先將輸入信號空間劃分為一系列互不相交的區間,並且每個區間選取一個代表信號;然後對於每個輸入信號,將該輸入信號標量量化為該輸入信號所在區間的代表信號。其中,區間長度稱為量化步長(quantization step,記為Qstep),區間索引為水平值(Level),即量化後的值,表徵量化步長的參數是量化參數(quantization parameter,QP)。
最簡單的標量量化方法是均勻標量量化,均勻標量量化是將輸入信號空間劃分為等距的區間,每個區間的代表信號是區間中點。
最優標量量化器是Lloyd-Max量化器,Lloyd-Max量化器考慮了輸入信號的分佈情況,區間劃分是非均勻的,每個區間的代表信號是該區間的概率質心,相鄰兩個區間的邊界點是這兩個區間代表信號的中點。
下面描述本申請實施例所應用的系統架構,圖1為本申請提供的一種視頻譯碼系統的示例性框圖,如本文所使用,術語“視頻譯碼器”一般是指視頻轉碼器和視頻解碼器兩者。在本申請中,術語“視頻譯碼”或“譯碼”可一般地指代視頻編碼或視頻解碼。視頻譯碼系統1的視頻編碼器100和視頻解碼器200用於根據本申請提出的多種新的幀間預測模式中的任一種所描述的各種方法實例來預測當前經解碼圖像塊或其子塊的運動資訊,例如運動向量,使得預測出的運動向量最大程度上接近使用運動估算方法得到的運動向量,從而編碼時無需傳送運動向量差值,從而進一步的改善編解碼性能。
如圖1中所示,視頻譯碼系統1包含編碼端10和解碼端20。編碼端10產生經編碼視頻資料。因此,編碼端10可被稱為視頻編碼裝置。解碼端20可對由編碼端10所產生的經編碼的視頻資料進行解碼。因此,解碼端20可被稱為視頻解碼裝置。編碼端10、解碼端20或兩個的各種實施方案可包含一或多個處理器以及耦合到所述一或多個處理器的記憶體。所述記憶體可包含但不限於RAM、ROM、EEPROM、快閃記憶體或可用於以可由電腦存取的指令或資料結構的形式儲存所要的程式碼的任何其它媒體,如本文所描述。
編碼端10和解碼端20可以包括各種裝置,包含桌上型電腦、移動計算裝置、筆記型(例如,膝上型)電腦、平板電腦、機上盒、例如所謂的“智慧”電話等電話手持機、電視機、相機、顯示裝置、數位媒體播放機、視頻遊戲控制台、車載電腦或其類似者。
解碼端20可經由鏈路30從編碼端10接收經編碼視頻資料。鏈路30可包括能夠將經編碼視頻資料從編碼端10傳輸到解碼端20的一或多個媒體或裝置。在一個實例中,鏈路30可包括使得編碼端10能夠即時將經編碼視頻資料直接發射到解碼端20的一或多個通信媒體。在此實例中,編碼端10可根據通信標準(例如無線通訊協定)來調製經編碼視頻資料,且可將經調製的視頻資料發射到解碼端20。所述一或多個通信媒體可包含無線和/或有線通信媒體,例如射頻(radio frequency,RF)頻譜或一或多個物理傳輸線。所述一或多個通信媒體可形成基於分組的網路的一部分,基於分組的網路例如為局域網、廣域網路或全球網路(例如,網際網路)。所述一或多個通信媒體可包含路由器、交換器、基站或促進從編碼端10到解碼端20的通信的其它設備。
在另一實例中,可將經編碼資料從輸出介面140輸出到存儲裝置40。類似地,可通過輸入介面240從存儲裝置40存取經編碼資料。存儲裝置40可包含多種分散式或本地存取的資料存儲媒體中的任一者,例如硬碟驅動器、藍光光碟、數位通用光碟(digital video disc,DVD)、唯讀光碟(compact disc read-only memory,CD-ROM)、快閃記憶體、易失性或非易失性記憶體,或用於儲存經編碼視頻資料的任何其它合適的數位存儲媒體。
在另一實例中,存儲裝置40可對應於檔案伺服器或可保持由編碼端10產生的經編碼視頻的另一中間存儲裝置。解碼端20可經由資料流或下載從存儲裝置40存取所儲存的視頻資料。檔案伺服器可為任何類型的能夠儲存經編碼的視頻資料並且將經編碼的視頻資料發射到解碼端20的伺服器。實例檔案伺服器包含網路服務器(例如,用於網站)、檔案傳輸通訊協定(file transfer protocol,FTP)伺服器、網路附接式儲存(network attached storage,NAS)裝置或本地磁碟機。解碼端20可通過任何標準資料連接(包含網際網路連接)來存取經編碼視頻資料。這可包含無線通道(例如,無線保真(wireless-fidelity,Wi-Fi)連接)、有線連接(例如,數位用戶線路路(digital subscriber line,DSL)、纜線數據機等),或適合於存取儲存在檔案伺服器上的經編碼視頻資料的兩者的組合。經編碼視頻資料從存儲裝置40的傳輸可為資料流、下載傳輸或兩者的組合。
本申請提供的圖像解碼方法可應用於視頻編解碼以支援多種多媒體應用,例如空中電視廣播、有線電視發射、衛星電視發射、串流視頻發射(例如,經由網際網路)、用於儲存於資料存儲媒體上的視頻資料的編碼、儲存在資料存儲媒體上的視頻資料的解碼,或其它應用。在一些實例中,視頻譯碼系統1可用於支援單向或雙向視頻傳輸以支援例如視頻資料流、視頻重播、視頻廣播和/或視頻電話等應用。
圖1中所說明的視頻譯碼系統1僅為實例,並且本申請的技術可適用於未必包含編碼裝置與解碼裝置之間的任何資料通信的視頻譯碼設置(例如,視頻編碼或視頻解碼)。在其它實例中,資料從本機存放區器檢索、在網路上資料流等等。視頻編碼裝置可對資料進行編碼並且將資料儲存到記憶體,和/或視頻解碼裝置可從記憶體檢索資料並且對資料進行解碼。在許多實例中,由並不彼此通信而是僅編碼資料到記憶體和/或從記憶體檢索資料且解碼資料的裝置執行編碼和解碼。
在圖1的實例中,編碼端10包含視頻源120、視頻編碼器100和輸出介面140。在一些實例中,輸出介面140可包含調節器/解調器(數據機)和/或發射器。視頻源120可包括視頻捕獲裝置(例如,攝像機)、含有先前捕獲的視頻資料的視頻存檔、用以從視頻內容提供者接收視頻資料的視頻饋入介面,和/或用於產生視頻資料的電腦圖形系統,或視頻資料的一些來源的組合。
視頻編碼器100可對來自視頻源120的視頻資料進行編碼。在一些實例中,編碼端10經由輸出介面140將經編碼視頻資料直接發射到解碼端20。在其它實例中,經編碼視頻資料還可儲存到存儲裝置40上,供解碼端20以後存取來用於解碼和/或播放。
在圖1的實例中,解碼端20包含輸入介面240、視頻解碼器200和顯示裝置220。在一些實例中,輸入介面240包含接收器和/或數據機。輸入介面240可經由鏈路30和/或從存儲裝置40接收經編碼視頻資料。顯示裝置220可與解碼端20集成或可在解碼端20外部。一般來說,顯示裝置220顯示經解碼視頻資料。顯示裝置220可包括多種顯示裝置,例如,液晶顯示器(liquid crystal display,LCD)、等離子顯示器、有機發光二極體(organic light-emitting diode,OLED)顯示器或其它類型的顯示裝置。
儘管圖1中未圖示,但在一些方面,視頻編碼器100和視頻解碼器200可各自與音訊編碼器和解碼器集成,且可包含適當的多工器-多路分用器單元或其它硬體和軟體,以處置共同資料流程或單獨資料流程中的音訊和視頻兩者的編碼。在一些實例中,如果適用的話,那麼解複用器(MUX-DEMUX)單元可符合ITU H.223多路複用器協議,或例如使用者資料報協定(user datagram protocol,UDP)等其它協議。
視頻編碼器100和視頻解碼器200各自可實施為例如以下各項的多種電路中的任一者:一或多個微處理器、數位訊號處理器(digital signal processor,DSP)、專用積體電路(application-specific integrated circuit,ASIC)、現場可程式設計閘陣列(field programmable gate array,FPGA)、離散邏輯、硬體或其任何組合。如果部分地以軟體來實施本申請,那麼裝置可將用於軟體的指令儲存在合適的非易失性電腦可讀存儲媒體中,且可使用一或多個處理器在硬體中執行指令從而實施本申請技術。前述內容(包含硬體、軟體、硬體與軟體的組合等)中的任一者可被視為一或多個處理器。視頻編碼器100和視頻解碼器200中的每一者可包含在一或多個編碼器或解碼器中,編碼器或解碼器中的任一者可集成為相應裝置中的組合編碼器/解碼器(編碼解碼器)的一部分。
本申請可大體上將視頻編碼器100稱為將某些資訊“發信號通知”或“發射”到例如視頻解碼器200的另一裝置。術語“發信號通知”或“發射”可大體上指代用以對經壓縮視頻資料進行解碼的語法元素和/或其它資料的傳送。此傳送可即時或幾乎即時地發生。替代地,此通信可經過一段時間後發生,例如可在編碼時在經編碼碼流中將語法元素儲存到電腦可讀存儲媒體時發生,解碼裝置接著可在語法元素儲存到此媒體之後的任何時間檢索語法元素。
JCT-VC開發了H.265(HEVC)標準。HEVC標準化基於稱作HEVC測試模型(HEVC model,HM)的視頻解碼裝置的演進模型。H.265的最新標準文檔可從http://www.itu.int/rec/T-REC-H.265獲得,最新版本的標準文檔為H.265(12/16),該標準文檔以全文引用的方式併入本文中。HM假設視頻解碼裝置相對於ITU-TH.264/AVC的現有演算法具有若干額外能力。例如,H.264提供9種幀內預測編碼模式,而HM可提供多達35種幀內預測編碼模式。
JVET致力於開發H.266標準。H.266標準化的過程基於稱作H.266測試模型的視頻解碼裝置的演進模型。H.266的演算法描述可從http://phenix.int-evry.fr/jvet獲得,其中最新的演算法描述包含於JVET-F1001-v2中,該演算法描述文檔以全文引用的方式併入本文中。同時,可從https://jvet.hhi.fraunhofer.de/svn/svn_HMJEMSoftware/獲得JEM測試模型的參考軟體,同樣以全文引用的方式併入本文中。
一般來說,HM的工作模型描述可將視頻幀或圖像劃分成包含亮度及色度樣本兩者的樹塊或最大編碼單元(largest coding unit,LCU)的序列,LCU也被稱為編碼樹單元(coding tree unit,CTU)。樹塊具有與H.264標準的巨集塊類似的目的。條帶包含按解碼次序的數個連續樹塊。可將視頻幀或圖像分割成一個或多個條帶。可根據四叉樹將每一樹塊分裂成編碼單元(coding unit,CU)。例如,可將作為四叉樹的根節點的樹塊分裂成四個子節點,且每一子節點可又為母節點且被分裂成另外四個子節點。作為四叉樹的葉節點的最終不可分裂的子節點包括解碼節點,例如,經解碼視頻塊。與經解碼碼流相關聯的語法資料可定義樹塊可分裂的最大次數,且也可定義解碼節點的最小大小。
CU的大小對應於解碼節點的大小且形狀必須為正方形。CU的大小的範圍可為8×8像素直到最大64×64像素或更大的樹塊的大小。
視頻序列通常包含一系列視頻幀或圖像。圖像群組(group of picture,GOP)示例性地包括一系列、一個或多個視頻圖像。GOP可在GOP的頭資訊中、圖像中的一者或多者的頭資訊中或在別處包含語法資料,語法資料描述包含於GOP中的圖像的數目。圖像的每一條帶可包含描述相應圖像的編碼模式的條帶語法資料。視頻編碼器100通常對個別視頻條帶內的視頻塊進行操作以便編碼視頻資料。視頻塊可對應於CU內的解碼節點。視頻塊可具有固定或變化的大小,且可根據指定解碼標準而在大小上不同。
在本申請中,“N×N”與“N乘N”可互換使用以指依照垂直維度及水平維度的視頻塊的像素尺寸,例如,16×16像素或16乘16像素。一般來說,16×16塊將在垂直方向上具有16個像素(y=16),且在水平方向上具有16個像素點(x=16)。同樣地,N×N塊一般在垂直方向上具有N個像素點,且在水平方向上具有N個像素點,其中N表示非負整數值。可將塊中的像素排列成行及列。此外,塊未必需要在水平方向上與在垂直方向上具有相同數目個像素點。例如,塊可包括N×M個像素點,其中M未必等於N。
在使用CU的幀內/幀間預測性解碼之後,視頻編碼器100可計算CU的殘餘資料。CU可包括空間域(也稱作像素域)中的像素資料,且CU可包括在將變換(例如,離散余弦變換(discrete cosine transform,DCT)、整數變換、離散小波變換或概念上類似的變換)應用於殘餘視頻資料之後變換域中的係數。殘餘資料可對應於未經編碼圖像的像素與對應於CU的預測值之間的像素差。視頻編碼器100可形成包含殘餘資料的CU,且產生CU的變換係數。
在任何變換以產生變換係數之後,視頻編碼器100可執行變換係數的量化。量化示例性地指對係數進行量化以可能減少用以表示係數的資料的量從而提供進一步壓縮的過程。量化過程可減少與係數中的一些或全部相關聯的位深度。例如,可在量化期間將n位值降值舍位到m位值,其中n大於m。
在一些可行的實施方式中,視頻編碼器100可利用預定義掃描次序來掃描經量化變換係數以產生可經熵編碼的序列化向量。在其它可行的實施方式中,視頻編碼器100可執行自我調整性掃描。在掃描經量化變換係數以形成一維向量之後,視頻編碼器100可根據上下文自我調整性可變長度解碼(context-based adaptive variable-length code,CAVLC)、上下文自我調整性二進位算術解碼(context-based adaptive binary arithmetic coding,CABAC)、基於語法的上下文自我調整性二進位算術解碼(syntax-based adaptive binary arithmetic coding,SBAC)、概率區間分割熵(probability interval partitioning entropy,PIPE)解碼或其他熵解碼方法來熵解碼一維向量。視頻編碼器100也可熵編碼與經編碼視頻資料相關聯的語法元素以供視頻解碼器200用於解碼視頻資料。
為了執行CABAC,視頻編碼器100可將上下文模型內的上下文指派給待傳輸的符號。上下文可與符號的相鄰值是否為非零有關。為了執行CAVLC,視頻編碼器100可選擇待傳輸的符號的可變長度碼。可變長度解碼(variable-length code,VLC)中的碼字可經構建以使得相對較短碼對應於可能性較大的符號,而較長碼對應於可能性較小的符號。以這個方式,VLC的使用可相對於針對待傳輸的每一符號使用相等長度碼字達成節省碼率的目的。基於指派給符號的上下文可以確定CABAC中的概率。
在本申請實施例中,視頻編碼器可執行幀間預測以減少圖像之間的時間冗餘。本申請可將視頻解碼器當前在解碼的CU稱作當前CU。本申請可將視頻解碼器當前在解碼的圖像稱作當前圖像。
圖2為本申請提供的一種視頻編碼器的示例性框圖。視頻編碼器100用於將視頻輸出到後處理實體41。後處理實體41表示可處理來自視頻編碼器100的經編碼視頻資料的視頻實體的實例,例如媒體感知網路元件(MANE)或拼接/編輯裝置。在一些情況下,後處理實體41可為網路實體的實例。在一些視頻編碼系統中,後處理實體41和視頻編碼器100可為單獨裝置的若干部分,而在其它情況下,相對於後處理實體41所描述的功能性可由包括視頻編碼器100的相同裝置執行。在某一實例中,後處理實體41是圖1的存儲裝置40的實例。
在圖2的實例中,視頻編碼器100包括預測處理單元108、濾波器單元106、經解碼圖像緩衝器(decoded picture buffer,DPB)107、求和器112、變換器101、量化器102和熵編碼器103。預測處理單元108包括幀間預測器110和幀內預測器109。為了圖像塊重構,視頻編碼器100還包含反量化器104、反變換器105和求和器111。濾波器單元106可以表示一或多個環路濾波器,例如去塊濾波器、自我調整環路濾波器(adaptive loop filter,ALF)和樣本自我調整偏移(sample adaptive offset,SAO)濾波器。儘管在圖2中將濾波器單元106示出為環路內濾波器,但在其它實現方式下,可將濾波器單元106實施為環路後濾波器。在一種示例下,視頻編碼器100還可以包括視頻資料記憶體、分割單元(圖中未示意)。
視頻資料記憶體可儲存待由視頻編碼器100的元件編碼的視頻資料。可從視頻源120獲得儲存在視頻資料記憶體中的視頻資料。DPB 107可為參考圖像記憶體,其儲存用於由視頻編碼器100在幀內、幀間解碼模式中對視頻資料進行編碼的參考視頻資料。視頻資料記憶體和DPB 107可由多種記憶體裝置中的任一者形成,例如包含同步動態隨機記憶體(synchronous dynamic random access memory,SDRAM)的動態隨機存取記憶體(dynamic random access memory,DRAM)、磁阻式RAM(magnetic random access memory,MRAM)、電阻式RAM(resistive random access memory,RRAM),或其它類型的記憶體裝置。視頻資料記憶體和DPB 107可由同一記憶體裝置或單獨記憶體裝置提供。在各種實例中,視頻資料記憶體可與視頻編碼器100的其它元件一起在裝置上,或相對於那些元件在裝置外。
如圖2所示,視頻編碼器100接收視頻資料,並將視頻資料儲存在視頻資料記憶體中。分割單元將視頻資料分割成若干圖像塊,而且這些圖像塊可以被進一步分割為更小的塊,例如基於四叉樹結構或者二叉樹結構的圖像塊分割。此分割還可包含分割成條帶(slice)、片(tile)或其它較大單元。視頻編碼器100通常說明編碼待編碼的視頻條帶內的圖像塊的元件。條帶可分成多個圖像塊(並且可能分成被稱作片的圖像塊集合)。預測處理單元108可選擇用於當前圖像塊的多個可能的解碼模式中的一者,例如多個幀內解碼模式中的一者或多個幀間解碼模式中的一者。預測處理單元108可將所得經幀內、幀間解碼的塊提供給求和器112以產生殘差塊,且提供給求和器111以重構用作參考圖像的經編碼塊。
預測處理單元108內的幀內預測器109可相對於與待編碼當前塊在相同幀或條帶中的一或多個相鄰塊執行當前圖像塊的幀內預測性編碼,以去除空間冗餘。預測處理單元108內的幀間預測器110可相對於一或多個參考圖像中的一或多個預測塊執行當前圖像塊的幀間預測性編碼以去除時間冗餘。
具體的,幀間預測器110可用於確定用於編碼當前圖像塊的幀間預測模式。舉例來說,幀間預測器110可使用碼率-失真分析來計算候選幀間預測模式集合中的各種幀間預測模式的碼率-失真值,並從中選擇具有最佳碼率-失真特性的幀間預測模式。碼率失真分析通常確定經編碼塊與經編碼以產生經編碼塊的原始的未經編碼塊之間的失真(或誤差)的量,以及用於產生經編碼塊的位碼率(也就是說,位數目)。例如,幀間預測器110可確定候選幀間預測模式集合中編碼當前圖像塊的碼率失真代價最小的幀間預測模式為用於對當前圖像塊進行幀間預測的幀間預測模式。
幀間預測器110用於基於確定的幀間預測模式,預測當前圖像塊中一個或多個子塊的運動資訊(例如運動向量),並利用當前圖像塊中一個或多個子塊的運動資訊(例如運動向量)獲取或產生當前圖像塊的預測塊。幀間預測器110可在參考圖像清單中的一者中定位運動向量指向的預測塊。幀間預測器110還可產生與圖像塊和視頻條帶相關聯的語法元素以供視頻解碼器200在對視頻條帶的圖像塊解碼時使用。又或者,一種示例下,幀間預測器110利用每個子塊的運動資訊執行運動補償過程,以生成每個子塊的預測塊,從而得到當前圖像塊的預測塊;應當理解的是,這裡的幀間預測器110執行運動估計和運動補償過程。
具體的,在為當前圖像塊選擇幀間預測模式之後,幀間預測器110可將指示當前圖像塊的所選幀間預測模式的資訊提供到熵編碼器103,以便於熵編碼器103編碼指示所選幀間預測模式的資訊。
幀內預測器109可對當前圖像塊執行幀內預測。明確地說,幀內預測器109可確定用來編碼當前塊的幀內預測模式。舉例來說,幀內預測器109可使用碼率-失真分析來計算各種待測試的幀內預測模式的碼率-失真值,並從待測試模式當中選擇具有最佳碼率-失真特性的幀內預測模式。在任何情況下,在為圖像塊選擇幀內預測模式之後,幀內預測器109可將指示當前圖像塊的所選幀內預測模式的資訊提供到熵編碼器103,以便熵編碼器103編碼指示所選幀內預測模式的資訊。
在預測處理單元108經由幀間預測、幀內預測產生當前圖像塊的預測塊之後,視頻編碼器100通過從待編碼的當前圖像塊減去預測塊來形成殘差圖像塊。求和器112表示執行此減法運算的一或多個組件。殘差塊中的殘差視頻資料可包含在一或多個(transform unit,TU)中,並應用於變換器101。變換器101使用例如離散餘弦變換(discrete cosine transform,DCT)或概念上類似的變換等變換將殘差視頻資料變換成殘差變換係數。變換器101可將殘差視頻資料從像素值域轉換到變換域,例如頻域。
變換器101可將所得變換係數發送到量化器102。量化器102量化變換係數以進一步減小位碼率。在一些實例中,量化器102可接著執行對包含經量化的變換係數的矩陣的掃描。或者,熵編碼器103可執行掃描。
在量化之後,熵編碼器103對經量化變換係數進行熵編碼。舉例來說,熵編碼器103可執行上下文自我調整可變長度編碼(CAVLC)、上下文自我調整二進位算術編碼(CABAC)、基於語法的上下文自我調整二進位算術編碼(SBAC)、概率區間分割熵(PIPE)編碼或另一熵編碼方法或技術。在由熵編碼器103熵編碼之後,可將經編碼碼流發射到視頻解碼器200,或經存檔以供稍後發射或由視頻解碼器200檢索。熵編碼器103還可對待編碼的當前圖像塊的語法元素進行熵編碼。
反量化器104和反變換器105分別應用逆量化和逆變換以在像素域中重構殘差塊,例如以供稍後用作參考圖像的參考塊。求和器111將經重構的殘差塊添加到由幀間預測器110或幀內預測器109產生的預測塊,以產生經重構圖像塊。濾波器單元106可以適用於經重構圖像塊以減小失真,諸如方塊效應(block artifacts)。然後,該經重構圖像塊作為參考塊儲存在經解碼圖像緩衝器107中,可由幀間預測器110用作參考塊以對後續視頻幀或圖像中的塊進行幀間預測。
應當理解的是,視頻編碼器100的其它的結構變化可用於編碼視頻流。例如,對於某些圖像塊或者圖像幀,視頻編碼器100可以直接地量化殘差信號而不需要經變換器101處理,相應地也不需要經反變換器105處理;或者,對於某些圖像塊或者圖像幀,視頻編碼器100沒有產生殘差數據,相應地不需要經變換器101、量化器102、反量化器104和反變換器105處理;或者,視頻編碼器100可以將經重構圖像塊作為參考塊直接地進行儲存而不需要經濾波器單元106處理;或者,視頻編碼器100中量化器102和反量化器104可以合併在一起。
圖3為本申請提供的一種視頻解碼器200的示例性框圖。在圖3的實例中,視頻解碼器200包括熵解碼器203、預測處理單元208、反量化器204、反變換器205、求和器211、濾波器單元206以及DPB 207。預測處理單元208可以包括幀間預測器210和幀內預測器209。在一些實例中,視頻解碼器200可執行大體上與相對於來自圖2的視頻編碼器100描述的編碼過程互逆的解碼過程。
在解碼過程中,視頻解碼器200從視頻編碼器100接收表示經編碼視頻條帶的圖像塊和相關聯的語法元素的經編碼視頻碼流。視頻解碼器200可從網路實體42接收視頻資料,可選的,還可以將視頻資料儲存在視頻資料記憶體(圖中未示意)中。視頻資料記憶體可儲存待由視頻解碼器200的元件解碼的視頻資料,例如經編碼視頻碼流。儲存在視頻資料記憶體中的視頻資料,例如可從存儲裝置40、從相機等本地視頻源、經由視頻資料的有線或無線網路通信或者通過存取物理資料存儲媒體而獲得。視頻資料記憶體可作為用於儲存來自經編碼視頻碼流的經編碼視頻資料的經解碼圖像緩衝器(CPB)。因此,儘管在圖3中沒有示意出視頻資料記憶體,但視頻資料記憶體和DPB 207可以是同一個的記憶體,也可以是單獨設置的記憶體。視頻資料記憶體和DPB 207可由多種記憶體裝置中的任一者形成,例如:包含同步DRAM(SDRAM)的動態隨機存取記憶體(DRAM)、磁阻式RAM(MRAM)、電阻式RAM(RRAM),或其它類型的記憶體裝置。在各種實例中,視頻資料記憶體可與視頻解碼器200的其它元件一起集成在裝置上,或相對於那些元件設置在裝置外。
網路實體42可為伺服器、MANE、視頻編輯器/剪接器,或用於實施上文所描述的技術中的一或多者的其它裝置。網路實體42可包括或可不包括視頻編碼器,例如視頻編碼器100。在網路實體42將經編碼視頻碼流發送到視頻解碼器200之前,網路實體42可實施本申請中描述的技術中的部分。在一些視頻解碼系統中,網路實體42和視頻解碼器200可為單獨裝置的部分,而在其它情況下,相對於網路實體42描述的功能性可由包括視頻解碼器200的相同裝置執行。在一些情況下,網路實體42可為圖1的存儲裝置40的實例。
視頻解碼器200的熵解碼器203對碼流進行熵解碼以產生經量化的係數和一些語法元素。熵解碼器203將語法元素轉發到預測處理單元208。視頻解碼器200可接收在視頻條帶層級和/或圖像塊層級處的語法元素。
當視頻條帶被解碼為經幀內解碼(I)條帶時,預測處理單元208的幀內預測器209可基於發信號通知的幀內預測模式和來自當前幀或圖像的先前經解碼塊的資料而產生當前視頻條帶的圖像塊的預測塊。當視頻條帶被解碼為經幀間解碼(即,B或P)條帶時,預測處理單元208的幀間預測器210可基於從熵解碼器203接收到的語法元素,確定用於對當前視頻條帶的當前圖像塊進行解碼的幀間預測模式,基於確定的幀間預測模式,對當前圖像塊進行解碼(例如執行幀間預測)。具體的,幀間預測器210可確定是否對當前視頻條帶的當前圖像塊採用新的幀間預測模式進行預測,如果語法元素指示採用新的幀間預測模式來對當前圖像塊進行預測,基於新的幀間預測模式(例如通過語法元素指定的一種新的幀間預測模式或預設的一種新的幀間預測模式)預測當前視頻條帶的當前圖像塊或當前圖像塊的子塊的運動資訊,從而通過運動補償過程使用預測出的當前圖像塊或當前圖像塊的子塊的運動資訊來獲取或生成當前圖像塊或當前圖像塊的子塊的預測塊。這裡的運動資訊可以包括參考圖像資訊和運動向量,其中參考圖像資訊可以包括但不限於單向/雙向預測資訊,參考圖像清單號和參考圖像清單對應的參考圖像索引。對於幀間預測,可從參考圖像清單中的一者內的參考圖像中的一者產生預測塊。視頻解碼器200可基於儲存在DPB 207中的參考圖像來建構參考圖像清單,即清單0和列表1。當前圖像的參考幀索引可包含於參考幀列表0和列表1中的一或多者中。在一些實例中,可以是視頻編碼器100發信號通知指示是否採用新的幀間預測模式來解碼特定塊的特定語法元素,或者,也可以是發信號通知指示是否採用新的幀間預測模式,以及指示具體採用哪一種新的幀間預測模式來解碼特定塊的特定語法元素。應當理解的是,這裡的幀間預測器210執行運動補償過程。
反量化器204將在碼流中提供且由熵解碼器203解碼的經量化變換係數逆量化,即去量化。逆量化過程可包括:使用由視頻編碼器100針對視頻條帶中的每個圖像塊計算的量化參數來確定應施加的量化程度以及同樣地確定應施加的逆量化程度。反變換器205將逆變換應用於變換係數,例如逆DCT、逆整數變換或概念上類似的逆變換過程,以便產生像素域中的殘差塊。
在幀間預測器210產生用於當前圖像塊或當前圖像塊的子塊的預測塊之後,視頻解碼器200通過將來自反變換器205的殘差塊與由幀間預測器210產生的對應預測塊求和以得到重建的塊,即經解碼圖像塊。求和器211表示執行此求和操作的組件。在需要時,還可使用環路濾波器(在解碼環路中或在解碼環路之後)來使像素轉變平滑或者以其它方式改進視頻品質。濾波器單元206可以表示一或多個環路濾波器,例如去塊濾波器、自我調整環路濾波器(ALF)以及樣本自我調整偏移(SAO)濾波器。儘管在圖3中將濾波器單元206示出為環路內濾波器,但在其它實現方式中,可將濾波器單元206實施為環路後濾波器。在一種示例下,濾波器單元206適用於重建塊以減小塊失真,並且該結果作為經解碼視頻流輸出。並且,還可以將給定幀或圖像中的經解碼圖像塊儲存在經解碼圖像緩衝器207中,經DPB 207儲存用於後續運動補償的參考圖像。經DPB 207可為記憶體的一部分,其還可以儲存經解碼視頻,以供稍後在顯示裝置(例如圖1的顯示裝置220)上呈現,或可與此類記憶體分開。
應當理解的是,視頻解碼器200的其它結構變化可用於解碼經編碼視頻碼流。例如,視頻解碼器200可以不經濾波器單元206處理而生成輸出視頻流;或者,對於某些圖像塊或者圖像幀,視頻解碼器200的熵解碼器203沒有解碼出經量化的係數,相應地不需要經反量化器204和反變換器205處理。
本申請的技術可通過本申請中所描述的視頻編碼器或視頻解碼器中的任一者進行,如關於圖1到圖3所展示及描述的視頻編碼器100及視頻解碼器200。即,在一種可行的實施方式中,關於圖2所描述的視頻編碼器100可在視頻資料的塊的編碼期間在執行幀間預測時執行下文中所描述的特定技術。在另一可行的實施方式中,關於圖3所描述的視頻解碼器200可在視頻資料的塊的解碼期間在執行幀間預測時執行下文中所描述的特定技術。因此,對一般性“視頻編碼器”或“視頻解碼器”的引用可包含視頻編碼器100、視頻解碼器200或另一視頻編碼或解碼單元。
圖1~圖3僅為本申請實施例提供的示例,在一些示例中,視頻編碼器100、視頻解碼器200以及視頻譯碼系統可以包括更多或更少的部件或單元,本申請對此不予限定。
下面在圖1~圖3所示出的視頻譯碼系統的基礎上,本申請實施例提供一種可能的視頻編/解碼實現方式,如圖4所示,圖4為本申請提供的一種視頻編/解碼過程的流程示意圖,該視頻編/解碼實現方式包括過程①至過程⑤,過程①至過程⑤可以由上述的編碼端10、視頻編碼器100、解碼端20或視頻解碼器200中的任意一個或多個執行。
過程①:將一幀圖像分成一個或多個互相不重疊的並行編碼單元。該一個或多個並行編碼單元間無依賴關係,可完全並行/獨立編碼和解碼,如圖4所示出的並行編碼單元1和並行編碼單元2。
過程②:對於每個並行編碼單元,可再將其分成一個或多個互相不重疊的獨立編碼單元,各個獨立編碼單元間可相互不依賴,但可以共用一些並行編碼單元頭資訊。
例如,獨立編碼單元的寬為w_lcu,高為h_lcu。若並行編碼單元劃分成一個獨立編碼單元,則獨立編碼單元的尺寸與並行編碼單元完全相同;否則,則獨立編碼單元的寬應大於高(除非是邊緣區域)。
通常的,獨立編碼單元可為固定的w_lcu×h_lcu,w_lcu和h_lcu均為2的N次方(N≥0),如獨立編碼單元的尺寸為:128×4,64×4,32×4,16×4,8×4,32×2,16×2或8×2等。
作為一種可能的示例,獨立編碼單元可為固定的128×4。若並行編碼單元的尺寸為256×8,則可將並行編碼單元等分為4個獨立編碼單元;若並行編碼單元的尺寸為288×10,則並行編碼單元劃分為:第一/二行為2個128×4+1個32×4的獨立編碼單元;第三行為2個128×2+1個32×2的獨立編碼單元。
值得注意的是,獨立編碼單元既可以是包括亮度Y、色度Cb、色度Cr三個分量,或紅(red,R)、綠(green,G)、藍(blue,B)三個分量,也可以僅包含其中的某一個分量。若獨立編碼單元包含三個分量,則這三個分量的尺寸可以完全一樣,也可以不一樣,具體與圖像的輸入格式相關。
過程③:對於每個獨立編碼單元,可再將其分成一個或多個互相不重疊的編碼單元,獨立編碼單元內的各個編碼單元可相互依賴,如多個編碼單元可以進行相互參考預編解碼。
若編碼單元與獨立編碼單元尺寸相同(即獨立編碼單元僅分成一個編碼單元),則其尺寸可為過程②的所有尺寸。
若獨立編碼單元分成多個互相不重疊的編碼單元,則其可行劃分例子有:水平等分(編碼單元的高與獨立編碼單元相同,但寬不同,可為其1/2,1/4,1/8,1/16等),垂直等分(編碼單元的寬與獨立編碼單元相同,高不同,可為其1/2,1/4,1/8,1/16等),水平和垂直等分(四叉樹劃分)等,優選為水平等分。
編碼單元的寬為w_cu,高為h_cu,則其寬應大於高(除非是邊緣區域)。通常的,編碼單元可為固定的w_cu x h_cu,w_cu和h_cu均為2的N次方(N大於等於0),如16x4,8x4,16x2,8x2,8x1,4x1等。
作為一種可能的示例,編碼單元可為固定的16x4。若獨立編碼單元的尺寸為64x4,則可將獨立編碼單元等分為4個編碼單元;若獨立編碼單元的尺寸為72x4,則編碼單元劃分為:4個16x4+1個8x4。
值得注意的是,編碼單元既可以是包括亮度Y、色度Cb、色度Cr三個分量(或紅R、綠G、藍B三分量),也可以僅包含其中的某一個分量。若包含三個分量,幾個分量的尺寸可以完全一樣,也可以不一樣,具體與圖像輸入格式相關。
值得注意的是,過程③是視頻編解碼方法中一個可選的步驟,視頻編/解碼器可以對過程②獲得的獨立編碼單元進行殘差係數(或殘差值)進行編/解碼。
過程④:對於編碼單元,可以將其可再將其分成一個或多個互相不重疊的預測組(Prediction Group,PG),PG也可簡稱為Group,各個PG按照選定預測模式進行編解碼,得到PG的預測值,組成整個編碼單元的預測值,基於預測值和編碼單元的原始值,獲得編碼單元的殘差值。
過程⑤:基於編碼單元的殘差值,對編碼單元進行分組,獲得一個或多個相不重疊的殘差小塊(residual block,RB),各個RB的殘差係數按照選定模式進行編解碼,形成殘差係數流。具體的,可分為對殘差係數進行變換和不進行變換兩類。
其中,過程⑤中殘差係數編解碼方法的選定模式可以包括,但不限於下述任一種:半定長編碼方式、指數哥倫布(Golomb)編碼方法、Golomb-Rice編碼方法、截斷一元碼編碼方法、游程編碼方法、直接編碼原始殘差值等。
例如,視頻編碼器可直接對RB內的係數進行編碼。
又如,視頻編碼器也可對殘差塊進行變換,如DCT、DST、Hadamard變換等,再對變換後的係數進行編碼。
作為一種可能的示例,當RB較小時,視頻編碼器可直接對RB內的各個係數進行統一量化,再進行二值化編碼。若RB較大,可進一步劃分為多個係數組(coefficient group,CG),再對各個CG進行統一量化,再進行二值化編碼。在本申請的一些實施例中,係數組(CG)和量化組(QG)可以相同。
下面以半定長編碼方式對殘差係數編碼的部分進行示例性說明。首先,將一個RB塊內殘差絕對值的最大值定義為修整最大值(modified maximum,mm)。其次,確定該RB塊內殘差係數的編碼比特數(同一個RB塊內殘差係數的編碼比特數一致)。例如,若當前RB塊的關鍵限值(critica limit,CL)為2,當前殘差係數為1,則編碼殘差係數1需要2個比特,表示為01。若當前RB塊的CL為7,則表示編碼8-bit的殘差係數和1-bit的符號位。CL的確定是去找滿足當前子塊所有殘差都在[-2^(M-1),2^(M-1)]範圍之內的最小M值。若同時存在-2^(M-1)和2^(M-1)兩個邊界值,則M應增加1,即需要M+1個比特編碼當前RB塊的所有殘差;若僅存在-2^(M-1)和2^(M-1)兩個邊界值中的一個,則需要編碼一個Trailing位來確定該邊界值是-2^(M-1)還是2^(M-1);若所有殘差均不存在-2^(M-1)和2^(M-1)中的任何一個,則無需編碼該Trailing位。
另外,對於某些特殊的情況,視頻編碼器也可以直接編碼圖像的原始值,而不是殘差值。
需要說明的是,本申請實施例中的編碼塊(coding block,CB)對應圖像中的一個圖像塊,編碼塊可以是經上述過程③劃分得到的編碼單元,也可以是編碼單元再經過劃分後的預測組。
結合上述圖1所示的視頻解碼系統、圖2所示的視頻編碼器以及圖3所示的視頻解碼器的框架示意圖,下面對本申請實施例涉及的圖像解碼方法、編碼方法進行詳細描述。
圖5為本申請提供的一種圖像解碼方法的流程示意圖,該圖像解碼方法可應用於圖1所示出的視頻解碼系統,該圖像解碼方法可以由解碼端20執行,具體的,該圖像解碼方法可以由解碼端20包括的視頻解碼器200執行,如圖5所示,本申請實施例提供的圖像解碼方法包括以下步驟。
S501、根據第一像素點的預測方式,確定第一像素點的預測殘差值。
其中,第一像素點是視頻解碼器當前所處理的像素點,第一像素點為當前編碼塊中的任意一個像素點,當前編碼塊為視頻解碼器當前所處理的解碼塊。應理解,對於當前編碼塊中每個像素點,均可以採用本申請提供的方案進行解碼或編碼,本申請實施例僅以對第一像素點的編解碼過程為例進行描述,並不是具體限定。
可以理解的是,對待解碼的視頻流進行解碼可以獲得該視頻流所包含的一個或多個圖像幀。一個圖像幀包括一個或多個圖像塊。本申請實施例中,當前編碼塊對應待處理圖像(待處理圖像為一個或多個圖像幀中的任意一個圖像幀)的一個圖像塊,編碼塊可以為編碼單元(coding unit,CU)。
在一些實施例中,預測殘差值用於反映第一像素點的梯度。其中,像素點的梯度,用於表示該像素點與其周圍像素點的差異,能夠反映該像素點的複雜度(例如紋理特點等)。示例性的,若一個像素點的梯度值越大,則說明該像素點與其周圍像素點之間的差異較大(反映在圖像中,說明當前編碼塊的紋理資訊較多),說明該像素點的複雜度較高;若一個像素點的梯度值越小,則說明該像素點與其周圍像素點之間的差異較小(反映在圖像中,說明當前編碼塊較為平滑),說明該像素點的複雜度較低。
在一些實施例中,第一像素點的預測殘差值由第一像素點的周圍已重建像素點的梯度確定;或者,第一像素點的預測殘差值由第一像素點的周圍已重建像素點反量化後的殘差值確定。可以理解的是,由於第一像素點還未重建,因此無法直接根據第一像素點的像素值計算第一像素點的梯度,由於相鄰像素點的梯度資訊較為接近,因此,可以根據第一像素點的周圍已重建像素點的梯度;或者,第一像素點的周圍已重建像素點反量化後的殘差值(像素點反量化後的殘差值能夠反映像素點的梯度),預測第一像素點的梯度,也即確定第一像素點的預測殘差值。
示例性的,第一像素點的預測殘差值包括:目標值或者目標值的平均值;其中,目標值為第一像素點的周圍已重建像素點的梯度;或者,目標值為第一像素點的周圍已重建像素點的梯度的絕對值;或者,目標值為第一像素點的周圍已重建像素點反量化後的殘差值;或者,目標值為第一像素點的周圍已重建像素點反量化後的殘差值的絕對值。
可選的,如圖6所示,上述步驟S501可以具體實現為以下步驟S5011-S5012。
S5011、獲取第一像素點的參考像素點的資訊。
其中,參考像素點指的是第一像素在進行逐點預測時,參考的周圍已重建像素點。
作為一種可能的實現方式,上述步驟S5011可以實現為以下步驟:
步驟1、獲取第一像素點周圍的已重建像素點的資訊。
其中,第一像素點周圍的已重建像素點可以理解為與該第一像素點的相鄰的已重建像素點,本申請實施例中,第一像素點周圍的已重建像素點包括滿足下述條件的像素點:以第一像素點為中心,邊長為第一預設值的正方形區域中的像素點;或者,以第一像素點為中心,對角線長度為第二預設值的菱形區域中的像素點;或者,以第一像素點為頂點,水平方向長度為第三預設值、豎直方向長度為第四預設值的“L”形區域中的像素點。
可選的,第一預設值、第二預設值、第三預設值和第四預設值可以根據實際需求進行設置,並且第一預設值、第二預設值、第三預設值和第四預設值可以相等也可以不等,例如第一預設值、第二預設值、第三預設值和第四預設值可以為3或5中的一種。
示例性的,圖7中的(a)示出了一種以第一像素點為中心的正方形區域劃分為例的示意,這裡給出了2種可能的情形:情形1,已重建像素點是指以第一像素點為中心,邊長為3的正方形區域中的像素點,如圖7的(a)中所示出的周圍像素點1;情形2,已重建像素點是指以第一像素點為中心,邊長為5的正方形區域中的像素點,如圖7的(a)中所示出的周圍像素點2。
圖7中的(b)示出了一種以第一像素點為中心的菱形區域劃分為例的示意,這裡給出了2種可能的情形:情形1,已重建像素點是指以第一像素點為中心,對角線長度為3的菱形區域中的像素點,如圖7的(b)中所示出的周圍像素點1;情形2,已重建像素點是指以第一像素點為中心,對角線長度為5的菱形區域中的像素點,如圖7的(b)中所示出的周圍像素點2。
圖7中的(c)示出了一種水平方向長度為第三預設值、豎直方向長度為第四預設值的半包圍形區域劃分為例的示意,這裡給出了2種可能的情形:情形1,已重建像素點是指第一像素點的上側水平方向長度為3,以及左側豎直方向長度為3的半包圍形區域中的像素點,如圖7的(c)中所示出的周圍像素點1;情形2,已重建像素點是第一像素點的上側水平方向長度為5,豎直方向長度為2,以及左側豎直方向長度為5,水平方向長度為2的半包圍形區域中的像素點,如圖7的(c)中所示出的周圍像素點2。
需要說明的是,圖7僅為本申請實施例為說明在當前像素點周圍的已重建像素點的示例,不應理解為對本申請的限定。在另一些可能的示例中,當前像素點周圍的已重建像素點還可以是指與該當前像素點上下相鄰、或左右相鄰的一個或兩個像素點。
可選地,第一像素點周圍的已重建像素點的資訊包括下述至少一種資訊:該已重建像素點的像素值、已重建像素點的重建殘差值(重建殘差值包括:反量化後的殘差值,或者重建值與預測值之差)、已重建像素點的梯度值(包括:水平梯度、垂直梯度或平均梯度)、平坦度資訊或紋理度資訊或複雜度資訊、背景亮度、對比度或運動程度(運動程度可以通過運動向量表示)。
進一步,可選地,上述已重建像素點的資訊的值包括下述至少一個種:原始值、絕對值、均值或差值。
步驟2、根據第一像素點的預測方式,以及第一像素點周圍的已重建像素點的資訊,確定第一像素點的參考像素點的資訊。
其中,在一些實施例中,預測方式用於指示對像素點進行預測時參考的已重建像素點的位置。
可選的,預測方式包括:根據像素點的左右兩側的已重建像素點進行預測;和/或,根據像素點的上下兩側的已重建像素點進行預測;和/或,根據像素點的左側的已重建像素點進行預測;和/或,根據像素點的上側的已重建像素點進行預測。
作為一種示例,如圖8所示,以當前編碼塊為16×2(寬度w為16,高度h為2)的編碼塊為例,該編碼塊的預測模式為逐點預測模式,該編碼塊的逐點預測模式包括2種模式,分別為模式一和模式二。其中,如圖8中的(a)所示,模式一為垂直型預測模式,用於處理垂直類型的紋理;如圖8中的(b)所示,模式二為水平型預測模式,用於處理水平類型的紋理。
其中,RL表示當前像素點的預測值為該像素點的左右兩側像素點的重建值的平均值;
TB表示當前像素點的預測值為該像素點的上下兩側像素點的重建值的平均值;
L表示當前像素點的預測值為該像素點的左側像素點的重建值;
T表示當前像素點的預測值為該像素點的上側像素點的重建值。
在一些實施例中,為了便於描述,將依據其左右兩側的已重建像素點進行預測的像素點稱為第一類像素點,將依據其上下兩側已重建像素點進行預測的像素點稱為第二類像素點,將依據其左側已重建像素點進行預測的像素點稱為第三類像素點,將依據其上側已重建像素點進行預測的像素點稱為第四類像素點。
在一些實施例中,首先根據第一像素點的預測方式,從第一像素點周圍的已重建像素點中選取出第一像素點的參考像素點;然後再根據第一像素點周圍的已重建像素點的資訊,確定第一像素點的參考像素點的資訊。
可選的,根據第一像素點的預測方式,從第一像素點周圍的已重建像素點中選取出第一像素點的參考像素點,包括以下幾種情況:
情況一、在第一像素點的預測方式為根據像素點的左右兩側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點左側的已重建像素點和第一像素點右側的已重建像素點。
情況二、在第一像素點的預測方式為根據像素點的上下兩側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點上側的已重建像素點和第一像素點下側的已重建像素點。
情況三、在第一像素點的預測方式為根據像素點的左側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點左側的已重建像素點。
情況四、在第一像素點的預測方式為根據像素點的上側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點上側的已重建像素點。
可選的,根據第一像素點周圍的已重建像素點的資訊,確定第一像素點的參考像素點的資訊,包括以下兩種情況:
情況一、若參考像素點為當前編碼塊中的已重建像素點,則將該參考像素點的資訊作為第一像素點周圍的已重建像素點的資訊。
情況二、若參考像素點為當前編碼塊之外的已重建像素點,則將該參考像素點的資訊與該參考像素點周圍的已重建像素點的資訊的差值或差值的絕對值作為第一像素點周圍的已重建像素點的資訊。
可以理解的是,第一像素點的參考像素點為已重建像素點,該已重建像素點可以是當前編碼塊中的已重建像素點,也可以不是當前編碼塊中的已重建像素點,即是當前編碼塊之外的已重建像素點,例如,預測模式為幀內預測模式時,已重建像素點是當前圖像幀內該編碼塊周圍的像素點,預測模式為幀間預測模式時,已重建像素點可以是當前圖像幀的參考幀上的重建塊。
作為另一種可能的實現方式,上述步驟S5011可以實現為以下步驟:
步驟a1、根據第一像素點的預測方式,確定第一像素點的參考像素點。
作為一種示例,在第一像素點的預測方式為根據像素點的左右兩側的已重建像素點進行預測的情況下,將第一像素點左側的已重建像素點和第一像素點右側的已重建像素點作為第一像素點的參考像素點;在第一像素點的預測方式為根據像素點的上下兩側的已重建像素點進行預測的情況下,將第一像素點上側的已重建像素點和第一像素點下側的已重建像素點作為第一像素點的參考像素點;在第一像素點的預測方式為根據像素點的左側的已重建像素點進行預測的情況下,將第一像素點左側的已重建像素點作為第一像素點的參考像素點;在第一像素點的預測方式為根據像素點的上側的已重建像素點進行預測的情況下,將第一像素點上側的已重建像素點作為第一像素點的參考像素點。
步驟a2、獲取第一像素點的參考像素點的資訊。
作為一種示例,獲取第一像素點的參考像素點的資訊包括以下一項或多項:像素值、平坦度資訊或紋理度資訊或複雜度資訊、背景亮度、對比度或運動程度(運動程度可以通過運動向量表示)等。
進一步,可選地,上述參考像素點的資訊的值包括下述至少一個種:原始值、絕對值、均值或差值。
S5012、根據第一像素點的參考像素點的資訊,確定第一像素點的預測殘差值。
在一些實施例中,在第一像素點的預測方式為根據像素點的左右兩側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點左側的已重建像素點和第一像素點右側的已重建像素點,則確定第一像素點的預測殘差值具有以下兩種方式:
方式一、根據第一像素點的參考像素點的重建值與預測值之差,確定第一像素點的預測殘差值。則上述步驟S5012可以實現為以下步驟:
步驟b1-1、計算第二像素點與第三像素點的像素值之差,作為第一差值。
其中,第二像素點為第一像素點左側的第一個已重建像素點,第三像素點為第二像素點上側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第二像素點在目標通道中的座標為(pic_x-1,pic_y),第三像素點在目標通道中的座標為(pic_x-1,pic_y-1),則第一差值可以滿足:I[pic_y][pic_x–1]–I[pic_y–1][pic_x–1]。其中,I[pic_y][pic_x–1]表示像素點(pic_x–1,pic_y)在目標通道的像素值;I[pic_y–1][pic_x–1]表示像素點(pic_x–1,pic_y-1)在目標通道的像素值。
需要說明的是,對於單個像素點來說,I表示像素點的像素值(對於已重建像素點,I表示的是該像素點重建後的像素值);對於當前編碼塊來說,I表示當前編碼塊中包括的已重建像素點的像素值矩陣。
在一些實施例中,目標通道表示當前編碼塊所在的通道;當前編碼塊所在的通道可以為亮度通道、色度通道中的任意一個通道。可以理解的是,一張圖像通常對應一個亮度通道和兩個色度通道,則靶心圖表像可以是三個通道中的任意一個。
在另一些實施例中,在當前編碼塊所在的通道為色度通道的情況下,目標通道還可以表示為亮度通道。示例型的,假設第一像素點(當前編碼塊中的像素點)所在的通道為色度通道,在獲取第一像素點在色度通道的比特深度時,可以通過獲取第一像素點在亮度通道的比特深度來代替第一像素點在色度通道的比特深度。
步驟b1-2、計算第四像素點與第五像素點的像素值之差,作為第二差值。
其中,第四像素點為第一像素點右側的第一個已重建像素點,第五像素點為第四像素點上側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第四像素點在目標通道中的座標為(pic_x+1,pic_y),第五像素點在目標通道中的座標為(pic_x+1,pic_y-1),則第二差值可以滿足:I[pic_y][pic_x+1]–I[pic_y–1][pic_x+1]。其中,I表示像素點的像素值(對於已重建像素點,I表示的是該像素點重建後的像素值),I[pic_y][pic_x+1]表示像素點(pic_x+1,pic_y)在目標通道的像素值;I[pic_y–1][pic_x+1]表示像素點(pic_x+1,pic_y-1)在目標通道的像素值。
步驟b1-3、將第一差值的絕對值與第二差值的絕對值的平均值,作為第一像素點的預測殘差值。
可以理解的是,上述第一差值表示的是第二像素點的垂直梯度,上述第二差值表示的是第四像素點的垂直梯度,且第二像素點與第四像素點分別為第一像素點左右兩側距離最近的已重建像素點,因此,根據第二像素點的梯度和第四像素點的梯度的平均值,可以確定第一像素點的預測殘差值(即第一像素點的梯度)。
示例性的,第一像素點、第二像素點、第三像素點、第四像素點和第五像素點的位置資訊可以如圖9所示。其中,第一像素點的預測殘差值可以滿足以下公式(1): PredResiTmp=(Abs(I[pic_y][pic_x-1]–I[pic_y-1][pic_x-1])+Abs(I[pic_y][pic_x+1]–I[pic_y-1][pic_x+1])+1)>>1                                       公式(1)
其中,PredResiTmp表示像素點的預測殘差值;Abs表示求絕對值的函數;>>在二進位中表示右移;+1表示四捨五入;>>1在二進位中表示右移1位,在十進位中表示除以2。
方式二、根據第一像素點的參考像素點的反量化後的殘差值,確定第一像素點的預測殘差值。則上述步驟S5012可以實現為以下步驟:
步驟b2-1、計算第二像素點的反量化後的殘差值,作為第一差值。
其中,第二像素點為第一像素點左側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第二像素點在目標通道中的座標為(pic_x-1,pic_y),則第二像素點的反量化後的殘差值可以表示為PointCoeffData[pic_y][pic_x–1]。
需要說明的是,對於單個像素點來說,PointCoeffData表示像素點反量化後的殘差值;對於當前編碼塊來說,PointCoeffData表示當前編碼塊中包括的已重建像素點反量化後的殘差值矩陣。
步驟b2-2、計算第四像素點的反量化後的殘差值,作為第二差值。
其中,第四像素點為第一像素點右側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第四像素點在目標通道中的座標為(pic_x+1,pic_y),則第四像素點的反量化後的殘差值可以表示為PointCoeffData[pic_y][pic_x+1]。
步驟b2-3、將第一差值的絕對值與第二差值的絕對值的平均值,作為第一像素點的預測殘差值。
可以理解的是,上述第一差值表示的是第二像素點的反量化後的殘差值,能夠反映第二像素點的梯度;上述第二差值表示的是第四像素點的反量化後的殘差值,能夠反映第四像素點的梯度,且第二像素點與第四像素點分別為第一像素點左右兩側距離最近的已重建像素點,因此,根據第二像素點的梯度和第四像素點的梯度的絕對值的平均值,可以確定第一像素點的預測殘差值(即第一像素點的梯度的絕對值)。
示例性的,第一像素點、第二像素點和第四像素點的位置資訊可以如圖9所示。其中,第一像素點的預測殘差值還可以滿足以下公式(2): PredResiTmp=(Abs(PointCoeffData[pic_y][pic_x-1])+Abs(PointCoeffData[pic_y][pic_x+1])+1)>>1                                                  公式(2)
在一些實施例中,在第一像素點的預測方式為根據像素點的上下兩側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點上側的已重建像素點和第一像素點下側的已重建像素點,則確定第一像素點的預測殘差值具有以下兩種方式:
方式一、根據第一像素點的參考像素點的重建值與預測值之差,確定第一像素點的預測殘差值。則上述步驟S5012可以實現為以下步驟:
步驟c1-1、計算第六像素點與第七像素點的像素值之差,作為第三差值。
其中,上述第六像素點為第一像素點上側的第一個已重建像素點,上述第七像素點為第六像素點左側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第六像素點在目標通道中的座標為(pic_x,pic_y-1),第七像素點在目標通道中的座標為(pic_x-1,pic_y-1),則第三差值可以滿足:I[pic_y-1][pic_x]–I[pic_y-1][pic_x-1]。其中,I[pic_y-1][pic_x]表示像素點(pic_x,pic_y-1)在目標通道的像素值;I[pic_y-1][pic_x-1]表示像素點(pic_x-1,pic_y-1)在目標通道的像素值。
步驟c1-2、計算第八像素點與第九像素點的像素值之差,作為第四差值。
其中,上述第八像素點為第一像素點下側的第一個已重建像素點,上述第九像素點為第八像素點左側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第八像素點在目標通道中的座標為(pic_x,pic_y+1),第九像素點在目標通道中的座標為(pic_x-1,pic_y+1),則第四差值可以滿足:I[pic_y+1][pic_x]–I[pic_y+1][pic_x-1]。其中,I表示像素點的像素值(對於已重建像素點,I表示的是該像素點重建後的像素值),I[pic_y+1][pic_x]表示像素點(pic_x,pic_y+1)在目標通道的像素值;I[pic_y+1][pic_x-1]表示像素點(pic_x-1,pic_y+1)在目標通道的像素值。
步驟c1-3、將第三差值的絕對值與第四差值的絕對值的平均值,作為第一像素點的預測殘差值。
可以理解的是,上述第三差值表示的是第六像素點的水平梯度,上述第四差值表示的是第八像素點的水平梯度,且第六像素點與第八像素點分別為第一像素點上下兩側距離最近的已重建像素點,因此,根據第六像素點的梯度和第八像素點的梯度的平均值,可以確定第一像素點的預測殘差值(即第一像素點的梯度)。
示例性的,第一像素點、第六像素點、第七像素點、第八像素點和第九像素點的位置資訊可以如圖10所示。其中,第一像素點的預測殘差值可以滿足以下公式(3): PredResiTmp=(Abs(I[pic_y-1][pic_x]–I[pic_y-1][pic_x-1])+Abs(I[pic_y+1][pic_x]–I[pic_y+1][pic_x-1])+1)>>1                                        公式(3)
方式二、根據第一像素點的參考像素點的重建值與預測值之差,以及第一像素點的參考像素點的反量化後的殘差值,確定第一像素點的預測殘差值。則上述步驟S5012可以實現為以下步驟:
步驟c2-1、計算第六像素點與第七像素點的像素值之差,作為第三差值。
其中,上述第六像素點為第一像素點上側的第一個已重建像素點,上述第七像素點為第六像素點左側的第一個已重建像素點。
步驟c2-2、計算第八像素點的反量化後的殘差值,作為第四差值。
其中,第八像素點為第一像素點下側的第一個已重建像素點。
示例性的,假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第八像素點在目標通道中的座標為(pic_x,pic_y+1),則第八像素點的反量化後的殘差值可以表示為PointCoeffData[pic_y+1][pic_x]。
步驟c2-3、將第三差值的絕對值與第四差值的絕對值的平均值,作為第一像素點的預測殘差值。
可以理解的是,由於第六像素點為當前編碼塊外的像素點,因此不能計算第六像素點反量化後的殘差值,因此通過計算第六像素點的重建值與預測值之差(也即第三差值),來表示第六像素點的梯度;上述第四差值表示的是第八像素點的反量化後的殘差值,能夠反映第八像素點的梯度。由於第六像素點與第八像素點分別為第一像素點上下兩側距離最近的已重建像素點,因此,根據第六像素點的梯度和第八像素點的梯度的絕對值的平均值,可以確定第一像素點的預測殘差值(即第一像素點的梯度的絕對值)。
示例性的,第一像素點、第六像素點和第八像素點的位置資訊可以如圖10所示。其中,第一像素點的預測殘差值可以滿足以下公式(4): PredResiTmp=(Abs(I[pic_y-1][pic_x]-I[pic_y-1][pic_x-1])+Abs(PointCoeffData[pic_y+1][pic_x])+1)>>1                                               公式(4)
在一些實施例中,在第一像素點的預測方式為根據像素點的左側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點左側的已重建像素點,則確定第一像素點的預測殘差值具有以下兩種方式:
方式一、根據第一像素點的參考像素點的重建值與預測值之差,確定第一像素點的預測殘差值。
在採用方式一計算第一像素點的預測殘差值的情況下,上述步驟S5012可以具有以下兩種情況:
情況一、當第一像素點在目標通道中水平方向的位置不為5、9或13的情況下,將第十像素點與第十一像素點的像素值之差的絕對值,作為第一像素點的預測殘差值。
其中,上述第十像素點為第一像素點左側的第一個已重建像素點,上述第十一像素點為第十像素點左側的第一個已重建像素點。
可以理解的是,上述第十像素點與第十一像素點的像素值之差表示的是第十像素點的水平梯度,且第十像素點為第一像素點左側距離最近的已重建像素點,因此,根據第十像素點的水平梯度,可以確定第一像素點的預測殘差值(即第一像素點的梯度)。
示例性的,第一像素點、第十像素點和第十一像素點的位置資訊可以如圖11中的(a)所示。假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第十像素點在目標通道中的座標為(pic_x-1,pic_y),第十一像素點在目標通道中的座標為(pic_x-2,pic_y),則第一像素點的預測殘差值可以滿足以下公式(5): PredResiTmp=Abs(I[pic_y][pic_x-1]–I[pic_y][pic_x-2])             公式(5)
其中,I[pic_y][pic_x-1]表示像素點(pic_x-1,pic_y)在目標通道的像素值;I[pic_y][pic_x-2]表示像素點(pic_x-2,pic_y)在目標通道的像素值。
情況二、當第一像素點在目標通道中水平方向的位置為5、9或13的情況下,將第十像素點與第十二像素點的像素值之差的絕對值,作為第一像素點的預測殘差值。
其中,上述第十像素點為第一像素點左側的第一個已重建像素點,上述第十二像素點為第十像素點上側的第一個已重建像素點。
可以理解的是,上述第十像素點與第十二像素點的像素值之差表示的是第十像素點的垂直梯度,且第十像素點為第一像素點左側距離最近的已重建像素點,因此,根據第十像素點的垂直梯度,可以確定第一像素點的預測殘差值(即第一像素點的梯度)。
需要說明的是,如圖8所示,在當前編碼塊的逐點預測模式為模式二的情況下,當前編碼塊中水平方向的第5個像素點、第9個像素點以及第13個像素點的預測方式均“T”,即根據該像素點的上側的已重建像素點進行預測,因此,當前編碼塊中水平方向的第5個像素點、第9個像素點以及第13個像素點,不能獲取該像素點的水平方向的相鄰像素點的資訊,不能計算水平方向梯度,僅能計算垂直方向梯度。
因此,當第一像素點在目標通道中水平方向的位置為5、9或13的情況下,需要將第一像素點左側的第一個已重建像素點(即第十像素點)的垂直梯度,作為第一像素點的預測殘差值。
示例性的,第一像素點、第十像素點和第十二像素點的位置資訊可以如圖11中的(b)所示。假設第一像素點在目標通道中的座標為(pic_x,pic_y),則上述第十像素點在目標通道中的座標為(pic_x-1,pic_y),第十二像素點在目標通道中的座標為(pic_x-1,pic_y-1),則第一像素點的預測殘差值可以滿足以下公式(6): PredResiTmp=Abs(I[pic_y][pic_x-1]–I[pic_y-1][pic_x-1])            公式(6)
其中,I表示像素點的像素值(對於已重建像素點,I表示的是該像素點重建後的像素值),I[pic_y][pic_x-1]表示像素點(pic_x-1,pic_y)在目標通道的像素值;I[pic_y-1][pic_x-1]表示像素點(pic_x-1,pic_y-1)在目標通道的像素值。
方式二、根據第一像素點的參考像素點的反量化後的殘差值,確定第一像素點的預測殘差值。
具體的,上述步驟S5012可以實現為:將第十像素點反量化後的殘差值的絕對值,作為第一像素點的預測殘差值。其中,第十像素點為第一像素點左側的第一個已重建像素點。
可以理解的是,上述第十像素點反量化後的殘差值,能夠反映第十像素點的梯度,且第十像素點為第一像素點左側距離最近的已重建像素點,因此,根據第十像素點的梯度的絕對值,可以確定第一像素點的預測殘差值(即第一像素點的梯度的絕對值)。
示例性的,第一像素點和第十像素點的位置資訊可以如圖11中的(b)所示。假設第一像素點在目標通道中的座標為(pic_x,pic_y),則第十像素點在目標通道中的座標為(pic_x-1,pic_y),則第一像素點的預測殘差值可以滿足以下公式(7): PredResiTmp=Abs(PointCoeffData[pic_y][pic_x–1])              公式(7)
其中,PointCoeffData[pic_y][pic_x–1]表示像素點(pic_x-1,pic_y)反量化後的殘差值。
在一些實施例中,在第一像素點的預測方式為根據像素點的上側的已重建像素點進行預測的情況下,第一像素點的參考像素點為第一像素點上側的已重建像素點,則確定第一像素點的預測殘差值具有以下兩種方式:
方式一、根據第一像素點的參考像素點的重建值與預測值之差,確定第一像素點的預測殘差值。
具體的,上述步驟S5012可以實現為:將第十三像素點與第十四像素點的像素值之差的絕對值,作為第一像素點的預測殘差值。
其中,上述第十三像素點為第一像素點上側的第一個已重建像素點,上述第十四像素點為第十三像素點上側的第一個已重建像素點。
可以理解的是,上述第十三像素點與第十四像素點的像素值之差的絕對值表示的是第十三像素點的垂直梯度,且第十三像素點為第一像素點上側距離最近的已重建像素點,因此,根據第十三像素點的垂直梯度,可以確定第一像素點的預測殘差值(即第一像素點的梯度)。
示例性的,第一像素點、第十三像素點和第十四像素點的位置資訊可以如圖12所示。假設第一像素點在目標通道中的座標為(pic_x,pic_y),則上述第十三像素點在目標通道中的座標為(pic_x,pic_y-1),第十四像素點在目標通道中的座標為(pic_x,pic_y-2),則第一像素點的預測殘差值可以滿足以下公式(8): PredResiTmp=Abs(I[pic_y–1][pic_x]–I[pic_y–2][pic_x])            公式(8)
其中,I[pic_y-1][pic_x]表示像素點(pic_x,pic_y-1)在目標通道的像素值;I[pic_y-2][pic_x]表示像素點(pic_x,pic_y-2)在目標通道的像素值。
方式二、根據第一像素點的參考像素點的反量化後的殘差值,確定第一像素點的預測殘差值。
具體的,上述步驟S5012可以實現為:將第十三像素點反量化後的殘差值的絕對值,作為第一像素點的預測殘差值。其中,第十三像素點為第一像素點上側的第一個已重建像素點。
可以理解的是,上述第十三像素點反量化後的殘差值,能夠反映第十三像素點的梯度,且第十三像素點為第一像素點上側距離最近的已重建像素點,因此,根據第十三像素點的梯度的絕對值,可以確定第一像素點的預測殘差值(即第一像素點的梯度的絕對值)。
示例性的,第一像素點和第十三像素點的位置資訊可以如圖12所示。假設第一像素點在目標通道中的座標為(pic_x,pic_y),則上述第十三像素點在目標通道中的座標為(pic_x,pic_y-1),則第一像素點的預測殘差值可以滿足以下公式(9): PredResiTmp=Abs(PointCoeffData[pic_y–1][pic_x])              公式(9)
其中,PointCoeffData[pic_y–1][pic_x]表示像素點(pic_x,pic_y-1)反量化後的殘差值。
S502、根據第一像素點的預測殘差值,確定第一像素點的目標QP值。
在一些實施例中,結合圖5,如圖13所示,在根據第一像素點的預測殘差值,確定第一像素點的目標QP值之前,上述方法還包括以下步驟S504-S505。
S504、獲取當前編碼塊的QP值。
在一種實現方式中,可以從碼流中解析得到當前編碼塊的QP值。在近無失真壓縮技術中,小QP出現的概率高於大QP,因此,視頻編碼器可以採用截斷一元碼、截斷萊斯碼或者指數哥倫布碼直接編碼一個編碼塊的QP值,從而視頻解碼器解析碼流可以獲得編碼塊的QP值。
在另一種實現方式中,可以通過當前編碼塊的預測QP值與QP偏移量獲取當前編碼塊的QP值。示例性的,可以通過下述方式一或方式二獲取當前編碼塊的QP值。
其中,方式一的過程包括S1-S3。
S1、獲取當前編碼塊的預測QP值。
可選地,可以根據當前編碼塊的周圍塊的QP值計算當前編碼塊的預測QP值。
示例性的,可以根據當前編碼塊左側的已重建塊的QP值和上側的已重建塊的QP值確定當前編碼塊的預測QP值,如:predQP=(QPA+QPB+1)>>1,其中,predQP表示當前編碼塊的預測QP值,QPA表示當前編碼左側的已重建塊,QPB表示當前編碼塊上側的已重建塊,+1表示四捨五入;>>1表示右移一位,即除2運算。
S2、解析碼流以獲得當前編碼塊的QP偏移量。
可以理解的,在視頻編碼過程中,視頻編碼器確定出該當前編碼塊的預測QP,再確定當前編碼塊的真實QP值與該預測QP值得差值,得到當前編碼塊的QP偏移量(可以記為deltaQP),然後採用變長碼編碼QP偏移量,並通過碼流傳輸QP偏移量至視頻解碼器,從而視頻解碼器獲取到碼流之後,可以解析碼流獲得當前編碼塊的QP偏移量。
S3、將當前編碼塊的預測QP值與QP偏移量之和作為當前編碼塊的QP值。
即QP=predQP+deltaQP,其中,QP表示當前編碼的QP值,predQP表示當前編碼塊的預測QP值,deltaQP表示當前編碼塊的QP偏移量。
方式二的過程包括S10-S30。
S10、獲取當前編碼塊的預測QP值。
對於S10的描述可以參考S1的相關描述,此處不再贅述。
S20、根據當前編碼塊的推導資訊,確定當前編碼塊的QP偏移值。
其中,推導資訊包括下述資訊中的至少一種:當前編碼塊的平坦度資訊、碼流緩衝區的剩餘空間或失真約束資訊。
應理解,在視頻編碼過程中,視頻編碼器採用碼控演算法,根據當前編碼塊的推導資訊推導得到當前編碼塊的QP偏移量,但視頻編碼器並不在碼流中傳輸該QP偏移量,如此,在視頻解碼過程中,視頻解碼器採用與視頻編碼器相同的方法推導當前編碼塊的QP偏移量,上述S20中的根據當前編碼塊的平坦度資訊、碼流緩衝區的剩餘空間或失真約束資訊中的至少一種資訊,推導得到當前編碼塊的QP偏移量的過程為現有技術,具體細節可以參考現有的推導QP偏移量的相關內容,本申請實施例不再詳述。
S30、將當前編碼塊的預測QP值與QP偏移量之和作為當前編碼塊的QP值。
本申請實施例中,也可以根據其他更多的資訊得到當前編碼塊的QP偏移量,例如根據當前編碼塊的前一個已編碼塊的QP、前一個已編碼塊的編碼比特數(prevBlockRate)、目的碼率(targetRate)、當前編碼塊的平坦度資訊以及當前碼流緩衝區的充盈程度(rcFullness)推導得到當前編碼塊的QP偏移量。
S505、根據當前編碼塊的QP值,確定第一像素點的預測QP值。
其中,第一像素點的預測QP值為當前編碼塊的QP值。
本申請實施例中,將獲取的當前編碼塊的QP值作為當前編碼塊的每一個像素點的初始QP值(即預測QP值),在此基礎上對該預測QP值進行調整或者不調整,從而得到每一個像素點的QP值。
基於上述S503-S504,如圖14所示,上述根據第一像素點的預測殘差值,確定第一像素點的目標QP值(即S502)具體包括S5021-S5022。
S5021、若第一像素點為當前編碼塊中的目標像素點,根據預測殘差值,調整第一像素點的預測QP值,得到第一像素點的目標QP值。
其中,目標QP值小於預測QP值。
其中,目標像素點為預先設定的調整QP值的像素點。本申請實施例中,目標像素點是當前編碼塊中的一個或多個指定的像素點,這些指定的像素點可以理解為QP值待調整的像素點或者候選像素點,針對候選像素點,執行QP調整策略。
在一個實施例中,當前編碼塊中的所有像素點都可以為目標像素點,即預先設定的調整QP值的像素點。
作為一個示例,當前編碼塊至少包括第一部分像素點和/或第二部分像素點;其中,第一部分像素點被設置為QP值無需調整的像素點;第二部分像素點被設置為QP值待調整的像素點;目標像素點為第二部分像素點中的任意一個或多個像素點。
其中,第一部分像素點和第二部分像素點根據當前編碼塊的逐點預測模式確定。示例性的,如圖15所示,當前編碼塊的逐點預測模式包括:模式一和模式二;具體的,在當前編碼塊的尺寸為16×2的情況下,當前編碼塊的逐點預測模式分別為圖15中的(a)和圖15中的(b)所示;在當前編碼塊的尺寸為8×2的情況下,當前編碼塊的逐點預測模式分別為圖15中的(c)和圖15中的(d)所示;在當前編碼塊的尺寸為8×1的情況下,當前編碼塊的逐點預測模式分別為圖15中的(e)和圖15中的(f)所示;則在當前編碼塊的逐點預測模式分別為模式一和模式二的情況下,當前編碼塊中的第二部分像素點可以如以下表1所示: 表1
逐點預測模 第二部分像素點
模式一 非首行的T,所有的RL
模式二 非首行的T,非首列的TB,非首列的L
從圖15中可以看出,在當前編碼塊的逐點預測模式為模式一的情況下,第二部分像素點包括以下至少一項:第一類像素點(RL)、非首行的第四類像素點(T);第一類像素點為根據像素點的左右兩側的已重建像素點進行預測的像素點;第四類像素點為根據像素點的上側的已重建像素點進行預測的像素點。
在當前編碼塊的逐點預測模式為模式二的情況下,第二部分像素點包括以下至少一項:非首列的第二類像素點(TB)、非首列的第三類像素點(L)、非首行的第四類像素點(T);第二類像素點為根據像素點的上下兩側的已重建像素點進行預測的像素點;第三類像素點為根據像素點的左側的已重建像素點進行預測的像素點。
如此,在確定第一像素點為當前編碼塊中的目標像素點之後,可以根據第一像素點的預測殘差值,調整第一像素點的預測QP值,得到第一像素點的目標QP值。
本申請實施例中,可以為當前編碼塊的第一像素點設置QP調整參數表,示例性的,下述表2示出了調整QP值所需的一些參數。 表2
參數名 含義
info 當前像素點周圍的已重建像素點的資訊
resiThres 已重建像素點的資訊的閾值
adjustMaxQp 可調整的最大QP值
orgQp 當前像素點的原始QP(或預測QP,通常為當前編碼塊的QP值)
jndQp 人眼恰可察覺失真對應的QP
finalQp 調整後的QP,也是當前像素點最終使用的QP
offset QP偏移值,可以為零、正整數或負整數
其中,info可以為當前像素點周圍的已重建像素點的重建殘差值;例如,已重建像素點的重建殘差值包括:已重建像素點反量化後的殘差值;或者,已重建像素點的重建值與預測值之差。
具體的,上述步驟S5021可以實現為以下步驟:
步驟d1、確定第一閾值、第二閾值和第三閾值。
其中,第一閾值為人眼恰可察覺失真對應的QP值(即表2中的jndQp),第二閾值為可調整的QP最大值(即表2中的adjustMaxQp),第三閾值為已重建像素資訊的閾值(即表2中的resiThres)。
可選的,人眼恰可察覺失真對應的QP值(第一閾值),根據第一像素點在目標通道中的比特深度或者第一像素點的通道索引確定。在目標通道為色度通道的情況下,人眼恰可察覺失真對應的QP值(第一閾值)還可以根據第一像素點在亮度通道的比特深度確定。示例性的,人眼恰可察覺失真對應的QP值與第一像素點在目標通道中的比特深度正相關。
可選的,可調整的QP最大值(第二閾值),根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,以及碼流緩衝區的充盈程度中的一項或多項確定。在目標通道為色度通道的情況下,可調整的QP最大值(第二閾值)還可以根據第一像素點在亮度通道的比特深度確定。示例性的,可調整的QP最大值與第一像素點在亮度通道的比特深度正相關,與碼流緩衝區的充盈程度負相關。
可選的,已重建像素資訊的閾值(第三閾值),根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,以及當前塊的紋理複雜度中的一項或多項確定。在目標通道為色度通道的情況下,已重建像素資訊的閾值(第三閾值)還可以根據第一像素點在亮度通道的比特深度確定。示例性的,已重建像素資訊的閾值與第一像素點在亮度通道的比特深度正相關。
作為一種可能的實現方式,首先調整第一像素點在目標通道中的比特深度,確定第一像素點在目標通道中的比特深度索引;進而,根據第一像素點在目標通道中的比特深度索引,分別確定人眼恰可察覺失真對應的QP值、可調整的QP最大值以及已重建像素資訊的閾值。
示例性的,第一像素點在目標通道中的比特深度索引滿足以下公式(10): bdIdx=Clip3(BitDepth[component]–8,0,8)              公式(10)
其中,bdIdx表示第一像素點在目標通道中的比特深度索引,BitDepth[component]表示第一像素點在目標通道中的比特深度,Clip為裁剪函數。
可以理解的是,通過上述公式(10)將第一像素點在目標通道的比特深度的索引值從8至16,調整為0至8,便於處理。
以人眼恰可察覺失真對應的QP值(第一閾值)由第一像素點在目標通道的比特深度確定為例,人眼恰可察覺失真對應的QP值(第一閾值)可以滿足以下公式(11): jndQp=(bdIdx<<2)+16                     公式(11)
其中,<<在二進位中表示左移;<<2在二進位中表示左移2位,在十進位中表示乘以4。
以可調整的QP最大值(第二閾值)由第一像素點在目標通道的比特深度確定為例,則可調整的QP最大值(第二閾值)可以滿足以下公式(12): adjustMaxQp=((bdIdx>>1)<<3)+32          公式(12)
其中,>>在二進位中表示右移;>>1在二進位中表示右移1位,在十進位中表示除以2;<<3在二進位中表示左移3位,在十進位中表示乘以8。
以已重建像素資訊的閾值(第三閾值)由第一像素點在目標通道的比特深度確定為例,已重建像素資訊的閾值(第三閾值)可以滿足以下公式(13): resiThres=10<<(bdIdx>>1)               公式(13)
進而,可以根據第一閾值、第二閾值和第三閾值來確定是否對第一像素點的預測QP值進行調整,具體的如以下步驟d2所示。
步驟d2、若第一像素點的預測QP值大於或等於第一閾值,且小於或等於第二閾值,並且,第一像素點的預測殘差值小於或等於第三閾值,調整第一像素點的預測QP值,得到目標QP值;否則,將第一像素點的預測QP值作為第一像素點的目標QP值。
在一些實施例中,若第一像素點的預測QP值和第一像素點的預測殘差值滿足上述條件的情況下,上述調整第一像素點的預測QP值,得到第一像素點的目標QP值可以實現為:將預測QP值減去預設偏移量後得到的QP值,與人眼恰可察覺失真對應的QP值中的較大值,作為目標QP值。
其中,預設偏移量可以根據第一像素點在目標通道中的比特深度,第一像素點的通道索引,碼流緩衝區的充盈程度,以及當前編碼塊的紋理複雜度中的一項或多項確定。在目標通道為色度通道的情況下,預設偏移量還可以根據第一像素點在亮度通道的比特深度確定。
示例性的,上述第一像素點的目標QP值滿足以下公式(14): PixelQp=Max(QP[component]-offset,jndQp)   公式(14)
其中,PixelQp表示第一像素點的目標QP值(即表2中的finalQp),QP[component]表示第一像素點所在的當前編碼塊的QP值,QP[component]可以作為第一像素點的預測QP值(即表2中的orgQp),offset表示預設偏移量(即QP偏移值),jndQp表示人眼恰可察覺失真對應的QP值,Max表示取最大值。
可以理解的是,由於預測殘差值反映了第一像素點的梯度,也即能夠反映第一像素點的複雜度(例如紋理特點等)。因此,在第一像素點的預測殘差值小於或等於已重建像素資訊的閾值的情況下,說明第一像素點為簡單像素點;在第一像素點的預測QP值大於或等於人眼恰可察覺失真對應的QP值的情況下(QP值反映了像素點空間壓縮的細節資訊,QP值越大說明該像素點的失真越強),說明第一像素點的失真較大;對於簡單像素點來說,可以通過減小QP值來降低失真,因此,本申請實施例根據預測QP值減去預設偏移量後得到的QP值,來確定目標QP值。
同時,為了避免對預測QP值調整的太多,本申請實施例將預測QP值減去預設偏移量後得到的QP值,與人眼恰可察覺失真對應的QP值中的較大值,作為目標QP值,如此,即對預測QP值進行了調整,減小了第一像素點的失真,又能夠避免調整幅度過大的情況出現,降低圖像幀的解碼失真,能夠提升解碼後的圖像的品質。
S5022、若第一像素點為當前編碼塊中目標像素點之外的像素點,將第一像素點的預測QP值作為目標QP值。
本申請實施例中,當前編碼塊中除目標像素點之外的像素點均不做調整,無需執行QP調整策略,對於這些像素點,其QP值即為當前編碼塊的QP值。
可以理解的是,現有技術中,對一個編碼塊(例如上述的當前編碼塊)中的所有像素點都採用相同的QP值,即對當前編碼塊進行反量化的過程中,QP值是編碼塊細微性的QP值,如此,會導致的圖像失真較大;而本申請實施例中,對一個編碼塊(例如上述的當前編碼塊),視頻解碼器為該編碼塊的任意一個像素點確定QP值,即對當前編碼塊進行反量化的過程中,QP值是像素細微性的QP值,充分考慮了同一編碼塊中不同像素點之間的差異,為每個像素點分配合適的QP值,從而降低圖像幀的解碼失真,即可以提升當前編碼塊的反量化效果(反量化效果可以通過解碼得到的圖像的品質來衡量)。
S503、根據第一像素點的目標QP值,對第一像素點進行反量化。
對第一像素點進行反量化具體是對該第一像素點的水平值進行反量化,該第一像素點的水平值是視頻解碼器通過解析碼流獲得。
可以理解的,在編碼過程中,視頻編碼器對當前編碼塊進行預測,從而得到該當前編碼塊的殘差值(該殘差值為當前編碼塊的真實值與當前編碼塊的預測值之差),該殘差值可以稱為當前編碼塊的殘差係數,然後對當前編碼塊的殘差係數進行變換後再量化,得到當前編碼塊的量化係數;或者視頻編碼器對當前編碼塊的殘差係數不進行變換,而是對該殘差係數直接進行量化,得到當前編碼塊的量化係數,該量化係數可以稱為水平值或者經量化殘差係數,本申請實施例中,為了便於描述,將量化後的值統稱為水平值。
本申請實施例中,根據第一像素點的目標QP值,對第一像素點水平值進行反量化具體包括:根據該第一像素點的目標QP值,確定該第一像素點的量化步長Qstep;然後,針對所選擇的量化器組合,採用該第一像素點的Qstep對該第一像素點的水平值進行反量化。
可選地,量化器為均勻量化器或非均勻量化器,量化器組合是通過碼流攜帶的標記資訊確定的。
應理解,視頻解碼器根據QP值,可通過公式推導或查表中的至少一種方式確定Qstep,下面提供了三種可能的實現方法:
方法一: ,其中,a和b是預設的參數,例如a取值為2,b取值為1。
方法二: ,其中,T為與QP相關的整數,例如T=(QP-6)/4。
方法三: ,其中,octave為QP的位階,也即QP的值每增加octave,Qstep的值增加一倍,通常選取octave為6或8,offset為一個整數偏移值。
可選地,可以採用下述的H.265中的傳統標量量化方法實現量化和反量化。
量化:
反量化:
其中,l是量化後得到的水平值,c是待量化的殘差係數(該殘差係數可以是變換域的殘差係數,即經變換的殘差係數;或者該殘差係數可以是像素域的殘差係數,即殘差值),Qstep是量化步長,f是控制舍入的參數, ,sign表示符號函數,floor表示向下取整函數;c'是反量化後的值。
可以理解的是,QP值越大,Qstep值越大,則量化越粗糙,量化帶來的圖像失真越大,係數編碼的碼率越小。
表示量化死區,參數f與量化死區的長度有關,f越小,量化死區越長,量化後的水平值越靠近零點。當f=0.5時,上述量化和反量化公式相當於四捨五入,量化失真最小。當f<0.5時,f越小,量化失真越大,係數編碼的碼率越小。H.265中,對於I幀,選取f=1/3,對於B/P幀,選取f=1/6。
示例性的,均勻量化器其量化或反量化公式可以參考上述量化和反量化公式,參數f有以下取法:
取法一:f取為0.5或其他固定值。
取法二:f可根據QP值、預測模式以及是否做變換來自我調整確定。
綜上,是圖像解碼過程的描述,通過本申請實施例中提供的圖像解碼方法,視頻解碼器可以根據編碼塊中每個像素點的預測方式(預測方式用於指示對像素點進行預測時參考的已重建像素點的位置),確定每個像素點的預測殘差值(反映第一像素點的梯度),進而為編碼塊中的像素點確定每個像素點細微性的QP,從而根據每個像素點的目標QP值對每個像素點進行反量化,即逐像素點進行反量化,如此,可以在保證一定壓縮率的情況下,降低圖像幀的解碼失真,能夠提高圖像解碼的真實性和準確性。
相應的,在圖像編碼方法中,視頻編碼器首先獲取像素點的QP、Qstep和殘差係數;自我調整選擇量化器,對殘差係數進行量化;最後調整量化係數,得到最終的水平值,從而實現圖像幀的編碼。
在圖2示出的視頻編碼器100的基礎上,本申請還提供一種圖像編碼方法,如圖16所示,圖16為本申請提供的一種圖像編碼方法的流程示意圖,該圖像編碼方法可以由視頻編碼器100執行,也可以由支援視頻編碼器100的功能的編碼端(如圖1所示出的編碼端10)執行,這裡以視頻編碼器100實現圖像編碼方法為例進行說明,該圖像編碼方法包括以下步驟。
S601、根據第一像素點的預測方式,確定第一像素點的預測殘差值。
其中,預測殘差值用於反映第一像素點的梯度;預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;第一像素點為當前編碼塊中的任意一個像素點。
需要說明的是,S601中確定第一像素點的預測殘差值的過程,可以參照前述步驟S501的具體實現過程,此處不再贅述。
S602、根據第一像素點的預測殘差值,確定第一像素點的目標QP值。
需要說明的是,S602中確定第一像素點的目標QP值的過程,可以參照前述步驟S502的具體實現過程,此處不再贅述。
S603、根據第一像素點的目標QP值,對第一像素點進行量化。
需要說明的是,圖16示意的量化,是圖5示意的反量化的反過程,關於圖像編碼方法中採用目標QP值的量化,可以參考上述圖5~圖15中圖像解碼方法中的相應過程,此處不予贅述。
綜上,通過本申請實施例中提供的圖像編碼方法,視頻編碼器可以根據編碼塊中每個像素點的預測方式(預測方式用於指示對像素點進行預測時參考的已重建像素點的位置),確定每個像素點的預測殘差值(反映第一像素點的梯度),進而為編碼塊中的像素點確定每個像素點細微性的QP,從而根據每個像素點的QP值對每個像素點進行量化,即逐像素點進行量化,如此,可以在保證一定壓縮率的情況下,降低圖像幀的解碼失真,能夠提高圖像解碼的真實性和準確性。
可以理解的是,為了實現上述實施例中功能,視頻編碼器/視頻解碼器包括了執行各個功能相應的硬體結構和/或軟體模組。本領域技術人員應該很容易意識到,結合本申請中所公開的實施例描述的各示例的單元及方法步驟,本申請能夠以硬體或硬體和電腦軟體相結合的形式來實現。某個功能究竟以硬體還是電腦軟體驅動硬體的方式來執行,取決於技術方案的特定應用場景和設計約束條件。
圖17為本申請實施例提供的一種圖像解碼裝置的結構示意圖,該圖像解碼裝置700包括確定單元701和反量化單元702。圖像解碼裝置700可以用於實現上述圖像解碼方法實施例中視頻解碼器或解碼端的功能,因此也能實現上述圖像解碼方法實施例所具備的有益效果。在本申請實施例中,該圖像解碼裝置700可以是如圖1所示的解碼端20或視頻解碼器200,也可以是如圖3所示的視頻解碼器200,還可以是應用於解碼端20或視頻解碼器200的模組(如裝置)。
確定單元701和反量化單元702,用於實現圖5~圖15中任一實施例提供的圖像解碼方法。有關上述確定單元701和反量化單元702詳細的描述可以直接參考圖5~圖15所示的方法實施例中相關描述直接得到。
例如,所述確定單元701可被配置為:根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點。
所述確定單元701還可被配置為根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值。
所述反量化單元702可被配置為根據所述第一像素點的目標QP值,對所述第一像素點進行反量化。
圖18為本申請提供的一種圖像編碼裝置的結構示意圖,該圖像編碼裝置800包括:確定單元801和量化單元802。圖像編碼裝置800可以用於實現上述圖像編碼方法實施例中視頻編碼器或編碼端的功能,因此也能實現上述圖像編碼方法實施例所具備的有益效果。在本申請實施例中,該圖像編碼裝置800可以是如圖1所示的編碼端10或視頻編碼器100,也可以是如圖2所示的視頻編碼器100,還可以是應用於編碼端10或視頻編碼器100的模組(如裝置)。
確定單元801和量化單元802,用於實現圖16所提供的圖像編碼方法。有關上述確定單元801和量化單元802更詳細的描述可以直接參考圖5~圖16所示的方法實施例中相關描述直接得到。
例如,所述確定單元801可被配置為:根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點。
所述確定單元801還可被配置為根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值。
所述量化單元802可被配置為根據所述第一像素點的目標QP值,對所述第一像素點進行量化。
本申請還提供一種電子設備,如圖19所示,本申請提供的一種電子設備的結構示意圖,電子設備900包括處理器901和通信介面902。處理器901和通信介面902之間相互耦合。可以理解的是,通信介面902可以為收發器或輸入輸出介面。可選的,電子設備900還可以包括記憶體903,用於儲存處理器901執行的指令或儲存處理器901運行指令所需要的輸入資料,或儲存處理器901運行指令後產生的資料。
當電子設備900用於實現圖5~圖15所示的方法時,處理器901和通信介面902用於執行上述確定單元701和反量化單元702的功能。
當電子設備900用於實現圖16所示的方法時,處理器901和通信介面902用於執行上述確定單元801和量化單元802的功能。
本申請實施例中不限定上述通信介面902、處理器901及記憶體903之間的具體連接介質。本申請實施例在圖19中以通信介面902、處理器901以及記憶體903之間通過匯流排904連接,匯流排在圖19中以粗線表示,其它部件之間的連接方式,僅是進行示意性說明,並不引以為限。所述匯流排可以分為位址匯流排、資料匯流排、控制匯流排等。為便於表示,圖19中僅用一條粗線表示,但並不表示僅有一根匯流排或一種類型的匯流排。
記憶體903可用於儲存軟體程式及模組,如本申請實施例所提供的圖像解碼方法或圖像編碼方法對應的程式指令/模組,處理器901通過執行儲存在記憶體903內的軟體程式及模組,從而執行各種功能應用以及資料處理。該通信介面902可用於與其他設備進行信令或資料的通信。在本申請中該電子設備900可以具有多個通信介面902。
可以理解的是,本申請的實施例中的處理器可以是中央處理單元(central processing Unit,CPU)、神經處理器(neural processing unit,NPU)或圖形處理器(graphic processing unit,GPU),還可以是其它通用處理器、數位訊號處理器(digital signal processor,DSP)、專用積體電路(application specific integrated circuit,ASIC)、現場可程式設計閘陣列(field programmable gate array,FPGA)或者其它可程式設計邏輯器件、電晶體邏輯器件,硬體部件或者其任意組合。通用處理器可以是微處理器,也可以是任何常規的處理器。
本申請的實施例中的方法步驟可以通過硬體的方式來實現,也可以由處理器執行軟體指令的方式來實現。軟體指令可以由相應的軟體模組組成,軟體模組可以被存放於隨機存取記憶體(random access memory,RAM)、快閃記憶體、唯讀記憶體(read-only memory,ROM)、可程式設計唯讀記憶體(programmable ROM,PROM)、可擦除可程式設計唯讀記憶體(erasable PROM,EPROM)、電可擦除可程式設計唯讀記憶體(electrically EPROM,EEPROM)、寄存器、硬碟、移動硬碟、CD-ROM或者本領域熟知的任何其它形式的存儲介質中。一種示例性的存儲介質耦合至處理器,從而使處理器能夠從該存儲介質讀取資訊,且可向該存儲介質寫入資訊。當然,存儲介質也可以是處理器的組成部分。處理器和存儲介質可以位於ASIC中。另外,該ASIC可以位於網路設備或終端設備中。當然,處理器和存儲介質也可以作為分立元件存在於網路設備或終端設備中。
在上述實施例中,可以全部或部分地通過軟體、硬體、韌體或者其任意組合來實現。當使用軟體程式實現時,可以全部或部分地以電腦程式產品的形式實現。該電腦程式產品包括一個或多個電腦指令。在電腦上載入和執行該電腦指令時,全部或部分地產生按照本申請實施例中的流程或功能。該電腦可以是通用電腦、專用電腦、電腦網路或者其他可程式設計裝置。該電腦指令可以儲存在電腦可讀存儲介質中,或者從一個電腦可讀存儲介質向另一個電腦可讀存儲介質傳輸,例如,該電腦指令可以從一個網站站點、電腦、伺服器或資料中心通過有線(例如同軸電纜、光纖、數位用戶線路(digital subscriber line,DSL))方式或無線(例如紅外、無線、微波等)方式向另一個網站網站、電腦、伺服器或資料中心傳輸。該電腦可讀存儲介質可以是電腦能夠存取的任何可用介質或者是包括一個或多個可用介質集成的伺服器、資料中心等資料存放裝置。該可用介質可以是磁性介質(例如,軟碟、磁片、磁帶)、光介質(例如,數位視頻光碟(digital video disc,DVD))、或者半導體介質(例如固態硬碟(solid state drives,SSD))等。
通過以上的實施方式的描述,所屬領域的技術人員可以清楚地瞭解到,為描述的方便和簡潔,僅以上述各功能模組的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模組完成,即將裝置的內部結構劃分成不同的功能模組,以完成以上描述的全部或者部分功能。上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本申請所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模組或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本申請各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以儲存在一個電腦可讀取存儲介質中。基於這樣的理解,本申請的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品儲存在一個存儲介質中,包括若干指令用以使得一台電腦設備(可以是個人電腦,伺服器,或者網路設備等)或處理器執行本申請各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:快閃記憶體、移動硬碟、唯讀記憶體、隨機存取記憶體、磁碟或者光碟等各種可以儲存程式碼的介質。
以上所述,僅為本申請的具體實施方式,但本申請的保護範圍並不局限於此,任何在本申請揭露的技術範圍內的變化或替換,都應涵蓋在本申請的保護範圍之內。因此,本申請的保護範圍應以所述請求項的保護範圍為准。
1:視頻譯碼系統 10:編碼端 100:視頻編碼器 101:變換器 102:量化器 103:熵編碼器 104:反量化器 105:反變換器 106:濾波器單元 107:DPB參考圖像 108:預測處理單元 109:幀內預測器 110:幀間預測器 111:求和器 120:視頻源 140:輸出介面 20:解碼端 200:視頻解碼器 203:熵解碼器 204:反量化器 205:反變換器 206:環路濾波器 207:DPB(參考圖像) 208:預測處理單元 209:幀內預測器 210:幀間預測器 220:顯示裝置 240:輸入介面 30:鏈路 40:存儲裝置 41:後處理實體 42:網路實體 S501、S502、S503、S504、S505、S601、S602、S603:步驟 700:解碼裝置 701:確定單元 702:反量化單元 800:編碼裝置 801:確定單元 802:量化單元 901:處理器 902:通信介面 903:記憶體
圖1為本申請實施例提供的一種視頻譯碼系統的示例性框圖; 圖2為本申請實施例提供的一種視頻轉碼器的示例性框圖; 圖3為本申請實施例提供的一種視頻解碼器的示例性框圖; 圖4為本申請實施例提供的一種視頻編/解碼的流程示意圖; 圖5為本申請實施例提供的一種圖像解碼方法的流程示意圖之一; 圖6為本申請實施例提供的一種圖像解碼方法的流程示意圖之二; 圖7為本申請實施例提供的一種像素點的分佈示意圖; 圖8為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之一; 圖9為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之二; 圖10為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之三; 圖11為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之四; 圖12為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之五; 圖13為本申請實施例提供的一種圖像解碼方法的流程示意圖之三; 圖14為本申請實施例提供的一種圖像解碼方法的流程示意圖之四; 圖15為本申請實施例提供的一種逐點預測模式下像素點的劃分示意圖之六; 圖16為本申請實施例提供的一種圖像編碼方法的流程示意圖; 圖17為本申請提供的一種圖像解碼裝置的結構示意圖; 圖18為本申請提供的一種圖像編碼裝置的結構示意圖; 圖19為本申請提供的一種電子設備的結構示意圖。
200:視頻解碼器
S501、S502、S503:步驟

Claims (19)

  1. 一種圖像解碼方法,所述方法由解碼端執行;所述方法包括: 根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點; 根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值; 根據所述第一像素點的目標QP值,對所述第一像素點進行反量化。
  2. 根據請求項1所述的方法,其中,所述預測方式包括: 根據像素點的左右兩側的已重建像素點進行預測; 和/或,根據像素點的左側的已重建像素點進行預測; 和/或,根據像素點的上側的已重建像素點進行預測。
  3. 根據請求項2所述的方法,其中,所述第一像素點的預測方式為根據像素點的左右兩側的已重建像素點進行預測;所述根據第一像素點的預測方式,確定所述第一像素點的預測殘差值,包括: 計算第二像素點與第三像素點的像素值之差,作為第一差值;或者,將所述第二像素點反量化後的殘差值,作為所述第一差值;所述第二像素點為所述第一像素點左側的第一個已重建像素點,所述第三像素點為所述第二像素點上側的第一個已重建像素點; 計算第四像素點與第五像素點的像素值之差,作為第二差值;或者,將所述第四像素點反量化後的殘差值,作為所述第二差值;所述第四像素點為所述第一像素點右側的第一個已重建像素點,所述第五像素點為所述第四像素點上側的第一個已重建像素點; 將所述第一差值的絕對值與所述第二差值的絕對值的平均值,作為所述第一像素點的預測殘差值。
  4. 根據請求項2所述的方法,其中,所述第一像素點的預測方式為根據像素點的左側的已重建像素點進行預測;所述根據第一像素點的預測方式,確定所述第一像素點的預測殘差值,包括: 將第十像素點與第十一像素點的像素值之差的絕對值,作為所述第一像素點的預測殘差值;所述第十像素點為所述第一像素點左側的第一個已重建像素點,所述第十一像素點為所述第十像素點左側的第一個已重建像素點; 或者,將第十像素點與第十二像素點的像素值之差的絕對值,作為所述第一像素點的預測殘差值;所述第十二像素點為所述第十像素點上側的第一個已重建像素點; 或者,將所述第十像素點反量化後的殘差值的絕對值,作為所述第一像素點的預測殘差值。
  5. 根據請求項2所述的方法,其中,所述第一像素點的預測方式為根據像素點的上側的已重建像素點進行預測;所述根據第一像素點的預測方式,確定所述第一像素點的預測殘差值,包括: 將第十三像素點與第十四像素點的像素值之差的絕對值,作為所述第一像素點的預測殘差值;所述第十三像素點為所述第一像素點上側的第一個已重建像素點,所述第十四像素點為所述第十三像素點上側的第一個已重建像素點; 或者,將所述第十三像素點反量化後的殘差值的絕對值,作為所述第一像素點的預測殘差值。
  6. 根據請求項1所述的方法,其中,所述第一像素點的預測殘差值包括: 目標值或者所述目標值的平均值;其中,所述目標值為所述第一像素點的周圍已重建像素點的梯度;或者,所述目標值為所述第一像素點的周圍已重建像素點的梯度的絕對值;或者,所述目標值為所述第一像素點的周圍已重建像素點反量化後的殘差值;或者,所述目標值為所述第一像素點的周圍已重建像素點反量化後的殘差值的絕對值。
  7. 根據請求項1或6所述的方法,其中,進一步包括: 確定所述第一像素點的預測QP值;所述第一像素點的預測QP值為所述當前編碼塊的QP值; 其中,所述第一像素點為所述當前編碼塊中的目標像素點,所述根據所述第一像素點的預測殘差值,確定所述第一像素點的目標QP值包括: 根據所述預測殘差值,調整所述第一像素點的預測QP值,得到所述第一像素點的目標QP值;所述目標像素點為預先設定的調整QP值的像素點。
  8. 根據請求項7所述的方法,其中,所述根據所述預測殘差值,調整所述第一像素點的預測QP值,得到所述第一像素點的目標QP值,包括: 若所述第一像素點的預測QP值大於或等於第一閾值,且小於或等於第二閾值,並且,所述第一像素點的預測殘差值小於或等於第三閾值,調整所述第一像素點的預測QP值,得到所述目標QP值;所述目標QP值小於所述預測QP值; 否則,將所述第一像素點的預測QP值作為所述第一像素點的目標QP值。
  9. 根據請求項8所述的方法,其中,所述第一閾值為人眼恰可察覺失真對應的QP值,所述第二閾值為可調整的QP最大值。
  10. 根據請求項9所述的方法,其中,所述調整所述第一像素點的預測QP值,得到所述第一像素點的目標QP值,包括: 將所述預測QP值減去預設偏移量後得到的QP值,與所述人眼恰可察覺失真對應的QP值中的較大值,作為所述目標QP值。
  11. 根據請求項10所述的方法,其中, 所述人眼恰可察覺失真對應的QP值,根據所述第一像素點在目標通道中的比特深度,或者所述第一像素點的通道索引確定; 所述可調整的QP最大值,根據所述第一像素點在目標通道中的比特深度,所述第一像素點的通道索引,以及碼流緩衝區的充盈程度中的一項或多項確定; 所述第三閾值,根據所述第一像素點在目標通道中的比特深度,所述第一像素點的通道索引,以及當前塊的紋理複雜度中的一項或多項確定; 所述預設偏移量,根據所述第一像素點在目標通道中的比特深度,所述第一像素點的通道索引,碼流緩衝區的充盈程度,以及所述當前編碼塊的紋理複雜度中的一項或多項確定。
  12. 一種圖像編碼方法,所述方法由編碼端執行,所述方法包括: 根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點; 根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值; 根據所述第一像素點的目標QP值,對所述第一像素點進行量化。
  13. 根據請求項12所述的方法,其中,所述第一像素點的預測殘差值包括: 目標值或者所述目標值的平均值;其中,所述目標值為所述第一像素點的周圍已重建像素點的梯度;或者,所述目標值為所述第一像素點的周圍已重建像素點的梯度的絕對值;或者,所述目標值為所述第一像素點的周圍已重建像素點反量化後的殘差值;或者,所述目標值為所述第一像素點的周圍已重建像素點反量化後的殘差值的絕對值。
  14. 根據請求項12或13所述的方法,其中,進一步包括: 確定所述第一像素點的預測QP值;所述第一像素點的預測QP值為所述當前編碼塊的QP值; 其中,所述第一像素點為所述當前編碼塊中的目標像素點,所述根據所述第一像素點的預測殘差值,確定所述第一像素點的目標QP值包括: 根據所述預測殘差值,調整所述第一像素點的預測QP值,得到所述第一像素點的目標QP值;所述目標像素點為預先設定的調整QP值的像素點。
  15. 一種圖像解碼裝置,包括:確定單元和反量化單元; 所述確定單元,用於根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點; 所述確定單元,還用於根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值; 所述反量化單元,用於根據所述第一像素點的目標QP值,對所述第一像素點進行反量化。
  16. 一種圖像編碼裝置,包括:確定單元和量化單元; 所述確定單元,用於根據第一像素點的預測方式,確定所述第一像素點的預測殘差值;所述預測殘差值用於反映所述第一像素點的梯度;所述預測方式用於指示對像素點進行預測時參考的已重建像素點的位置;所述第一像素點為當前編碼塊中的任意一個像素點; 所述確定單元,還用於根據所述第一像素點的預測殘差值,確定所述第一像素點的目標量化參數(QP)值; 所述量化單元,用於根據所述第一像素點的目標QP值,對所述第一像素點進行量化。
  17. 一種視頻解碼系統,包括編碼端和解碼端,所述編碼端與所述解碼端通信連接,所述解碼端用於實現請求項1至11中任一項所述的方法,所述編碼端用於實現請求項12至14中任一項所述的方法。
  18. 一種電子設備,包括處理器和記憶體,所述記憶體用於儲存電腦指令,所述處理器用於從記憶體中調用並運行所述電腦指令,實現請求項1至14中任一項所述的方法。
  19. 一種電腦可讀存儲介質,所述存儲介質中儲存有電腦程式或指令,當所述電腦程式或指令被電子設備執行時,實現請求項1至14中任一項所述的方法。
TW112127959A 2022-07-26 2023-07-26 圖像解碼方法、編碼方法及裝置 TW202406351A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
CN2022108862947 2022-07-26
CN202210886294 2022-07-26
CN2022109760781 2022-08-15
CN202210976078.1A CN116071440A (zh) 2022-07-26 2022-08-15 一种图像解码方法、编码方法及装置

Publications (1)

Publication Number Publication Date
TW202406351A true TW202406351A (zh) 2024-02-01

Family

ID=86168790

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112127959A TW202406351A (zh) 2022-07-26 2023-07-26 圖像解碼方法、編碼方法及裝置

Country Status (3)

Country Link
CN (3) CN116489373A (zh)
TW (1) TW202406351A (zh)
WO (1) WO2024022367A1 (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN116489373A (zh) * 2022-07-26 2023-07-25 杭州海康威视数字技术股份有限公司 一种图像解码方法、编码方法及装置

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1953551A (zh) * 2006-11-24 2007-04-25 北京中星微电子有限公司 图像压缩装置及方法
US10136141B2 (en) * 2014-06-11 2018-11-20 Qualcomm Incorporated Determining quantization parameter (QP) values and delta QP values for palette coded blocks in video coding
CN109600609A (zh) * 2018-10-26 2019-04-09 西安科锐盛创新科技有限公司 带宽压缩矩阵量化和反量化方法
CN109361922B (zh) * 2018-10-26 2020-10-30 西安科锐盛创新科技有限公司 预测量化编码方法
CN116489373A (zh) * 2022-07-26 2023-07-25 杭州海康威视数字技术股份有限公司 一种图像解码方法、编码方法及装置

Also Published As

Publication number Publication date
CN116071440A (zh) 2023-05-05
CN116489373A (zh) 2023-07-25
CN116389755A (zh) 2023-07-04
WO2024022367A1 (zh) 2024-02-01

Similar Documents

Publication Publication Date Title
TWI761332B (zh) 從用於視訊寫碼之固定濾波器預測濾波器係數
TWI682661B (zh) 在計算設備中實現的方法
CN110999299A (zh) 在视频译码中跨分量动态范围调整(cc-dra)的系统及方法
US20110317757A1 (en) Intra prediction mode signaling for finer spatial prediction directions
TWI827662B (zh) 用於係數寫碼之規則寫碼位元子之減少
WO2019086033A1 (zh) 视频数据解码方法及装置
KR102453208B1 (ko) 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
WO2024022367A1 (zh) 图像解码方法、编码方法及装置
TW202349950A (zh) 圖像編解碼方法及裝置
KR20190033558A (ko) 인-루프 샘플 프로세싱을 위한 비디오 코딩 툴들
EP4289142A1 (en) Residual and coefficients coding for video coding
WO2024104382A1 (zh) 图像编解码方法、装置及存储介质
WO2024022359A1 (zh) 一种图像编解码方法及装置
WO2024022039A1 (zh) 一种视频图像解码方法、编码方法、装置及存储介质
KR102564189B1 (ko) 4:4:4 크로마 포맷의 비디오 코딩 방법 및 장치
TWI829424B (zh) 解碼方法、編碼方法及裝置
WO2023138562A1 (zh) 图像解码方法、图像编码方法及相应的装置
TWI821013B (zh) 視頻編解碼方法及裝置
WO2022193389A1 (zh) 视频编解码方法与系统、及视频编解码器
KR20230174267A (ko) 비디오 코딩을 위한 잔차 및 계수 코딩
CN116965033A (zh) 用于视频编解码的残差和系数编解码