TW202348026A - 圖像編解碼方法、裝置、電子設備及儲存媒體 - Google Patents

圖像編解碼方法、裝置、電子設備及儲存媒體 Download PDF

Info

Publication number
TW202348026A
TW202348026A TW112112053A TW112112053A TW202348026A TW 202348026 A TW202348026 A TW 202348026A TW 112112053 A TW112112053 A TW 112112053A TW 112112053 A TW112112053 A TW 112112053A TW 202348026 A TW202348026 A TW 202348026A
Authority
TW
Taiwan
Prior art keywords
block
decoded
residual
pixel
prediction mode
Prior art date
Application number
TW112112053A
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 TW202348026A publication Critical patent/TW202348026A/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/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/103Selection of coding mode or of prediction mode
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • H04N19/159Prediction type, e.g. intra-frame, inter-frame or bidirectional frame prediction
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/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

Abstract

本發明提供一種圖像編解碼方法、裝置、電子設備及儲存媒體,涉及圖像編解碼技術領域。該圖像編碼方法包括:解析待解碼塊的碼流,以確定預測待解碼塊中像素的目標預測模式;基於目標預測模式,確定與目標預測模式對應的目標預測順序;按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素;基於每個像素的預測值對每個像素進行重建,得到待解碼塊的重建塊。藉由該方法,能夠提高圖像編碼的效率。

Description

圖像編解碼方法、裝置、電子設備及儲存媒體
[相關申請]
本發明要求於2022年03月29日提交中國專利局、申請號為202210320915.5發明名稱為“圖像編解碼方法、裝置、電子設備及儲存媒體”的中國專利申請的優先權,其全部內容藉由引用結合在本發明中。
本發明涉及圖像編解碼技術領域,尤其涉及一種圖像編解碼方法、裝置、電子設備及儲存媒體。
視訊中完整的圖像通常被稱為“幀”,由多個幀按照時間順序組成的視訊被稱為視訊序列(video sequence)。視訊序列存在空間冗餘、時間冗餘、視覺冗餘、訊息熵冗餘、結構冗餘、知識冗餘、重要性冗餘等一系列的冗餘訊息。為了盡可能的去除視訊序列中的冗餘訊息,減少表徵視訊的數據量,提出了視訊編碼(video coding)技術,以達到減小儲存空間和節省傳輸頻寬的效果。視訊編碼技術也稱為視訊壓縮技術。
隨著技術的不斷發展,採集視訊數據越來越便捷,所採集的視訊數據的規模也越來越大,因此,如何有效地對視訊數據進行編解碼,成為迫切需要解決的問題。
本發明提供了一種圖像編解碼方法、裝置、電子設備及儲存媒體,該圖像編解碼方法能夠提高圖像編解碼的效率。
為達上述目的,本發明提供如下技術方案。
第一方面,本發明提供了一種圖像解碼方法,該方法包括:解析待解碼塊的碼流,以確定預測待解碼塊中像素的目標預測模式。基於目標預測模式,確定與目標預測模式對應的目標預測順序。按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素。基於每個像素的預測值對每個像素進行重建,得到待解碼塊的重建塊。
藉由本發明提供的圖像解碼方法,解碼端在以目標預測模式對待解碼塊中的像素進行預測時,是以該目標預測模式對應的目標預測順序對待解碼塊中的像素進行預測的。在這一過程中,解碼端預測待解碼塊中的任一個像素時,用於預測該像素的像素均已完成重建。因此,本發明提供的圖像解碼方法按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素,可以並行預測待解碼塊中的部分像素,提高了預測待解碼塊中像素的效率,解碼端在基於預測值和殘差值重獲得重建值時,無需對上述殘差值進行緩存,因此本發明實施例提供的解碼方法不僅可以節約用於緩存殘差值的緩存空間,還能提高解碼效率。
在一種可能的設計方式中,在以上述的目標預測順序預測待解碼塊中的任一像素時,用於預測任一像素的像素已完成重建。使用已完成重建的像素進行像素預測,能夠使得解碼過程中預測所使用的像素與編碼過程預測所使用的像素一致,從而減少解碼誤差,使得解碼過程中像素的預測值更準確,提高解碼的準確度。
在另一種可能的設計方式中,若上述目標預測模式指示以目標預測順序逐點預測待解碼塊中的每個像素,則上述的按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素包括:按照目標預測模式,沿目標預測順序指示的方向逐點預測待解碼塊中的每個像素。其中,當目標預測模式為第一目標預測模式時,目標預測順序為第一預測順序,當目標預測模式為第二目標預測模式時,目標預測順序為第二預測順序,第一預測順序和第二預測順序不同。
換言之,不同的預測模式對應不同的預測順序。這樣在編碼側編碼時針對不同的預測模式選擇與其相適用的預測順序,可以使得待編碼塊中像素與預測值間差異減小,從而使得待編碼塊以更少的位元(bit)被編碼,相應的,在解碼側需要解碼的位元變少,解碼效率得以提高。因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
在另一種可能的設計方式中,對於尺寸為第一尺寸的待解碼塊,在上述目標預測模式下採用第三預測順序對待解碼塊進行預測。對於尺寸為第二尺寸的待解碼塊,在上述目標預測模式下採用第四預測順序對待解碼塊進行預測。其中,第三預測順序和第四預測順序不同。
換言之,在待解碼塊的大小不同時,若採用相同預測模式預測待解碼塊中的像素時,預測順序也可以是不同的。這樣在編碼側編碼時針對不同的待編碼塊大小選擇與其相適用的預測順序,可以使得待編碼塊中像素與預測值間差異減小,從而使得待編碼塊以更少的位元被編碼,相應的,在解碼側需要解碼的位元變少,解碼效率得以提高。因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
在一種可能的設計方式中,若上述目標預測模式指示以待解碼塊中具有預設大小的子塊為單位依次預測待解碼塊中每個子塊的像素,則上述按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素包括:按照目標預測模式,沿目標預測順序指示的方向依次預測待解碼塊中每個子塊中的像素。
在另一種可能的設計方式中,上述目標預測模式包括待解碼塊中每個子塊的預測模式,對於待解碼塊中第一子塊而言,當第一子塊中包括第一像素和第二像素,則第一子塊的預測模式用於根據第一子塊周圍已重建的像素並行的對第一像素和第二像素進行預測。
藉由該兩種可能的設計,解碼端在對一個子塊進行預測時,可以並行的基於該子塊周圍已重建的像素對該子塊內的多個像素進行預測,即這種預測模式能夠進一步提高解碼端預測待解碼塊的效率。解碼端在基於預測值和殘差值獲得重建值時,無需對殘差值進行緩存,因此該兩種可能的設計提供的解碼方法進一步的節約了緩存空間,並提高解碼效率。
在另一種可能的設計方式中,上述的基於每個像素的預測值對每個像素進行重建,得到待解碼塊的重建塊包括:基於解析待解碼塊的碼流得到的待解碼塊中每個像素的反量化參數和反量化預設陣列,對解析待解碼塊的碼流得到的待解碼塊的第一殘差塊進行反量化,得到第二殘差塊。基於上述每個像素的預測值和第二殘差塊對每個像素進行重建,得到重建塊。
藉由該可能的設計,能夠基於預先設定的反量化預設陣列進行反量化,減少反量化過程中的乘法運算。由於乘法運算的耗時較長,所以減少乘法運算,可以提高反量化過程的計算效率,即能夠高效的實現對待解碼塊的第一殘差塊的反量化,因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
在一種可能的設計方式中,上述的解析待解碼塊的碼流包括:採用可變碼長的解碼方式解析待解碼塊的碼流,以得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長(code length;CL)和第一殘差塊。
藉由該可能的設計,待解碼塊的殘差塊和CL在編碼側被以更少的位元被編碼,因此在相應的解碼側需要解碼的位元變少,解碼效率得以提高。因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
第二方面,本發明提供了一種圖像編碼方法,該方法包括:確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的目標預測順序。按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素。基於每個像素的預測值確定待編碼塊的殘差塊。以目標預測順序編碼殘差塊,以得到待編碼塊的碼流。
藉由本發明提供的圖像編碼方法,編碼端在以目標預測模式對待編碼塊中的像素進行預測時,是以該目標預測模式對應的目標預測順序對待編碼塊中的像素進行預測的。在這一過程中,編碼端預測待編碼塊中的任一個像素時,用於預測該像素的像素均已完成重建。因此,本發明提供的圖像編碼方法按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素,可以並行預測待編碼塊中的部分像素,提高了預測待編碼塊中像素的效率,編碼端在基於預測值和殘差值重獲得重建值時,無需對上述殘差值進行緩存,因此本發明實施例提供的編碼方法不僅可以節約用於緩存殘差值的緩存空間,還能提高編碼效率。
在一種可能的設計方式中,在以上述目標預測順序預測待編碼塊中的任一像素時,用於預測任一像素的像素已完成重建。
在另一種可能的設計方式中,若上述的目標預測模式指示以目標預測順序逐點預測編碼塊中的每個像素,則上述的按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素包括:按照目標預測模式,沿目標預測順序指示的方向逐點預測待編碼塊中的每個像素。其中,當目標預測模式為第一目標預測模式時,目標預測順序為第一預測順序,當目標預測模式為第二目標預測模式時,目標預測順序為第二預測順序,第一預測順序和第二預測順序不同。換言之,不同的預測模式對應不同的預測順序。
在另一種可能的設計方式中,對於尺寸為第一尺寸的待編碼塊,在上述目標預測模式下採用第三預測順序對待編碼塊進行預測。對於尺寸為第二尺寸的待編碼塊,在上述目標預測模式下採用第四預測順序對待編碼塊進行預測。其中,第三預測順序和第四預測順序不同。換言之,在待編碼塊的大小不同時,若採用相同預測模式預測待編碼塊中的像素時,預測順序也可以是不同的。
在另一種可能的設計方式中,若上述的目標預測模式指示以待編碼塊中具有預設大小的子塊為單位依次預測待編碼塊中每個子塊的像素,則上述的按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素包括:按照目標預測模式,沿目標預測順序指示的方向依次預測待編碼塊中每個子塊中的像素。
在另一種可能的設計方式中,上述的目標預測模式包括待編碼塊中每個子塊的預測模式,對於待編碼塊中第一子塊而言,如果第一子塊中包括第一像素和第二像素,則第一子塊的預測模式用於根據第一子塊周圍已重建的像素並行的對第一像素和第二像素進行預測。
在另一種可能的設計方式中,在上述的以目標預測順序編碼殘差塊,以得到待編碼塊的碼流之前,上述方法包括:確定待編碼塊中每個像素的量化參數QP。基於每個像素的QP和量化預設陣列,對待編碼的殘差塊進行量化,得到第一殘差塊。這樣的話,則上述的以目標預測順序編碼殘差塊,以得到待編碼塊的碼流包括:以目標預測順序編碼第一殘差塊,以得到待編碼塊的碼流。
在另一種可能的設計方式中,上述的以目標預測順序編碼第一殘差塊,以得到待編碼塊的碼流包括:以目標預測順序、且採用可變碼長的編碼方式對第一殘差塊進行編碼,以得到待編碼塊的碼流。
可以理解,第二方面及其任一種可能的設計方式提供的圖像編碼方法與第一方面及其任一種可能的設計方式提供的圖像解碼方法是對應的,因此,第二方面及其任一種可能的設計方法提供的技術方案的有益效果,均可以參考第一方面中對應的方法的有益效果的描述,不再贅述。
第三方面,本發明提供了一種圖像解碼方法,該方法包括:解析待解碼塊的碼流,得到待解碼塊中每個像素的反量化參數和待解碼塊的第一殘差塊。基於每個像素的反量化參數指示的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊。基於第二殘差塊對待解碼塊進行重建,得到重建塊。
藉由本發明提供的圖像解碼方法,在圖像解碼過程中,基於本發明提供的量化預設陣列所實現的量化處理方式,減少了量化過程中的乘法運算。由於乘法運算佔用的計算資源較高,所以減少乘法運算,可以減少量化過程中佔用的計算資源,從而大大節省了解碼端計算資源,另外,乘法運算的速度慢,因此該圖像解碼方法中的量化處理過程的效率相比現有技術大大提高,進而該圖像解碼方法大大提高了圖像的解碼效率。
在一種可能的設計方式中,上述解析待解碼塊的碼流,得到待解碼塊中每個像素的反量化參數和待解碼塊的第一殘差塊包括:基於待解碼塊的碼流確定預測待解碼塊中像素的目標預測模式和待解碼塊中每個像素的反量化參數;基於目標預測模式,確定與目標預測模式對應的殘差掃描順序;基於殘差掃描順序解析待解碼塊的碼流,得到第一殘差塊。其中,當目標預測模式為第一目標預測模式時,殘差掃描順序為第一掃描順序,當目標預測模式為第二目標預測模式時,殘差掃描順序為第二掃描順序,第一掃描順序和第二掃描順序不同。換言之,不同的預測模式對應不同的殘差掃描順序。
在另一種可能的設計方式中,對於尺寸為第一尺寸的待解碼塊,在上述目標預測模式下採用第三掃描順序解析待解碼塊的碼流。對於尺寸為第二尺寸的待解碼塊,在上述目標預測模式下採用第四掃描順序解析待解碼塊的碼流;其中,第三掃描順序和第四掃描順序不同。換言之,在待解碼塊的大小不同時,若採用相同預測模式預測待解碼塊中的像素時,解析待解碼塊的碼流時的殘差掃描順序也可以是不同的。
基於該兩種可能的設計方式,當基於殘差掃描順序解析得到待解碼的殘差塊時,若以與該殘差掃描順序相同的目標預測順序預測待解碼塊的預測塊,則基於殘差塊和預測塊重建待解碼塊的重建塊的效率能夠得以提高,即該兩種可能的設計方法進一步提高了圖像的解碼效率。另外,在編碼側進行編碼時,可以選擇與目標預測模式相適應的掃描順序,從而在編碼時能夠以較少的位元對殘差塊進行編碼,也就是,待編碼塊以更少的位元被編碼,相應的,在解碼側需要解碼的位元變少,解碼效率得以提高。因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
在另一種可能的設計方式中,在上述的反量化預設陣列中,第1至第n個數中相鄰的兩個數之間的間隔為1,第n+1至第n+m個數中相鄰的兩個數之間的間隔為2,第n+k*m+1至第n+k*m+m個數中相鄰兩個數之間的數值間隔為2 k+1,其中,n、m為大於1的整數,k均為正整數。
在另一種可能的設計方式中,上述的基於每個像素的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊包括:基於每個像素的QP在反量化預設陣列中確定每個像素對應的放大係數。基於每個像素對應的放大係數,對第一殘差塊進行反量化運算,得到第二殘差塊。
在另一種可能的設計方式中,上述的基於每個像素的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊包括:基於每個像素的QP和反量化預設陣列,確定每個像素對應的放大參數和位移參數。基於每個像素對應的放大參數和位移參數,對第一殘差塊進行反量化運算,得到第二殘差塊。其中,每個像素對應的放大參數的值為每個像素的QP與7按位與後的值在反量化預設陣列中對應的值,每個像素對應的位移參數的值為7與每個像素的QP除以2 3的商的差值。
基於上述三種可能的實現方式,能夠基於預先設定的反量化預設陣列,進一步地減少反量化過程中的乘法運算。由於乘法運算佔用的計算資源較高,所以減少乘法運算,可以減少反量化過程中佔用的計算資源,也就是,基於本發明提供的量化預設陣列所實現的反量化處理方式大大節省了解碼端計算資源,另外,乘法運算的速度慢,因此該圖像解碼方法中的反量化處理過程的效率相比現有技術大大提高。因此該可能的設計提供的解碼方法能夠進一步提高圖像解碼的效率。
在另一種可能的設計方式中,上述的基於第二殘差塊對待解碼塊進行重建,得到重建塊包括:對第二殘差塊進行反變換,以重建待解碼塊的殘差值塊。基於殘差值塊對待解碼塊進行重建,得到重建塊。
在另一種可能的設計方式中,上述的基於第二殘差塊對待解碼塊進行重建包括:按照目標預測模式,以與該目標預測模式對應的目標預測順序預測待解碼塊中的每個像素。基於每個像素的預測值和第二殘差塊對待解碼塊進行重建,得到重建塊。
從前面的論述可以得知,基於本發明提供的目標預測模式對待解碼塊進行預測時能夠提高預測效率,因此藉由該可能的設計方式進一步提高了圖像的解碼效率。
在另一種可能的設計方式中,上述的解析待解碼塊的碼流包括:採用可變碼長的解碼方式解析待解碼塊的碼流,以得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL和第一殘差塊。
藉由該可能的設計方式,待解碼塊的殘差塊和CL在編碼側被以更少的位元被編碼,因此在相應的解碼側需要解碼的位元變少,解碼效率得以提高。因此該可能的設計方式提供的解碼方法能夠進一步提高圖像解碼的效率。
第四方面,本發明提供了一種圖像編碼方法,該方法包括:確定待編碼塊的第二殘差塊和待編碼塊中每個像素的量化參數QP。基於每個像素的QP和量化預設陣列,對第二殘差塊進行量化,得到第一殘差塊。編碼第一殘差塊,得到待編碼塊的碼流。
藉由本發明提供的圖像編碼方法,在圖像編碼過程中,基於本發明提供的量化預設陣列所實現的量化處理方式,減少量化過程中的乘法運算。由於乘法佔用的計算資源較高,所以減少乘法運算,就可以減少量化過程中佔用的計算資源,大大節省了編碼端計算資源,又因為乘法運算的耗時較長,所以減少乘法運算,可以提高量化過程的計算效率,進而該圖像編碼方法大大提高了圖像的編碼效率。
在另一種可能的設計方式中,上述的編碼第一殘差塊,得到待編碼塊的碼流包括:確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的殘差掃描順序。以殘差掃描順序編碼殘差塊,得到待編碼塊的碼流。其中,當目標預測模式為第一目標預測模式時,殘差掃描順序為第一掃描順序,當目標預測模式為第二目標預測模式時,殘差掃描順序為第二掃描順序,第一掃描順序和第二掃描順序不同。
在另一種可能的設計方式中,對於尺寸為第一尺寸的待編碼塊,在上述目標預測模式下採用第三掃描順序對待編碼塊進行編碼。對於尺寸為第二尺寸的待編碼塊,在上述目標預測模式下採用第四掃描順序對待編碼塊進行編碼。其中,第三掃描順序和第四掃描順序不同。
在另一種可能的設計方式中,上述的量化預設陣列包括放大參數陣列和位移參數陣列,放大參數陣列和位移參數陣列包括相同數量個數值,對於放大參數陣列的第i個值amp[i]和位移參數陣列中的第i個值shift[i],2 shift[i]與amp[i]的商構成的反量化預設陣列具有以下規律:第1至第n個數中相鄰的兩個數之間的間隔為1,第n+1至第n+m個數中相鄰的兩個數之間的間隔為2,第n+k*m+1至第n+k*m+m個數中相鄰兩個數之間的數值間隔為2 k+1;其中,n、m為大於1的整數,i、k均為正整數。
在另一種可能的設計方式中,上述的基於每個像素的QP和量化預設陣列,對第二殘差塊進行量化,得到第一殘差塊包括:基於每個像素的QP,在放大參數陣列確定每個像素的放大參數,以及在位移參數陣列確定每個像素的位移參數。基於每個像素的放大參數和位移參數,對第二殘差塊進行量化運算,得到第一殘差塊。
在另一種可能的設計方式中,上述的基於每個像素的QP和量化預設陣列,對第二殘差塊進行量化,得到第一殘差塊包括:基於每個像素的QP和量化預設陣列,確定每個像素對應的放大參數和位移參數。基於每個像素對應的放大參數和位移參數,對第二殘差塊進行量化運算,得到第二殘差塊。其中,每個像素對應的放大參數的值為每個像素的QP與7按位與後的值在量化預設陣列中對應的值,每個像素對應的位移參數的值為7與每個像素的QP除以2 3的商的加和值。
在另一種可能的設計方式中,上述的第二殘差塊為待編碼塊的原始殘差值塊,或者,上述的第二殘差塊為殘差值塊經變換後得到的殘差係數塊。
在另一種可能的設計方式中,上述的確定待編碼塊的第二殘差塊包括:按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素。基於待編碼塊中的每個像素的預測值,確定第二殘差塊。
在另一種可能的設計方式中,上述的編碼第一殘差塊,得到待編碼塊的碼流包括:採用可變碼長的編碼方式對第一殘差塊進行編碼,以得到待編碼塊的碼流。
可以理解,第四方面及其任一種可能的設計方式提供的圖像編碼方法與協力廠商面及其任一種可能的設計方式提供的圖像解碼方法是對應的,因此,第四方面及其任一種可能的設計方式提供的技術方案的有益效果,均可以參考協力廠商面中對應的方法的有益效果的描述,不再贅述。
第五方面,本發明提供了一種圖像編碼方法,該方法包括:確定待編碼塊對應的殘差塊。採用可變碼長的編碼方式對殘差塊進行編碼,以得到待編碼塊的碼流。
藉由本發明提供的編碼方法,當編碼端藉由可變碼長的編碼方式,例如,可變換階數的指數哥倫布編碼演算法對待編碼塊的殘差塊進行編碼,可以自我調整的用較少的位元編碼較小的殘差值,從而可以達到節省位元的目的,也即在提高圖像編碼的壓縮率的同時,本發明提供的編碼方法還提高了編碼效率。
在一種可能的設計方式中,上述的可變碼長的編碼方式包括可變換階數的指數哥倫布編碼方式,則上述的採用可變碼長的編碼方式對殘差塊進行編碼,得到待編碼塊的碼流包括:確定待編碼塊中每個像素的屬性類型。對於殘差塊中與待編碼塊的第三像素對應的第一值,基於預設策略和第三像素的屬性類型,確定編碼第一值時的目標階數。採用目標階數的指數哥倫布編碼演算法編碼第一值,得到碼流。
在另一種可能的設計方式中,上述的可變碼長的編碼方式包括預設階數的指數哥倫布編碼方式,採用可變碼長的編碼方式對殘差塊進行編碼,得到待編碼塊的碼流包括:對於殘差塊中與待編碼塊的第三像素對應的第一值,採用預設階數的指數哥倫布編碼演算法編碼第一值,得到碼流。
該兩種可能的設計方式藉由可變或指定階數的指數哥倫布編碼方式,實現了對殘差塊中殘差值的變長編碼,該編碼方式可以自我調整的用較少的位元編碼較小的殘差值,從而可以達到節省位元的目的。
在另一種可能的設計方式中,上述的方法還包括:確定殘差塊對應的語義元素,語義元素包括編碼殘差塊中每個值的編碼碼長CL。採用可變碼長的編碼方式對每個值的CL進行編碼,以得到碼流。
在另一種可能的設計方式中,上述的可變碼長的編碼方式包括可變換階數的指數哥倫布編碼方式,對於殘差塊中的任一值,上述採用可變碼長的編碼方式對每個值的CL進行編碼,以得到碼流包括:確定編碼任一值的CL時的目標階數。採用目標階數的指數哥倫布編碼演算法編碼任一值的CL,以得到碼流。
該兩種可能的設計方式藉由可變或指定階數的指數哥倫布編碼方式,實現了對殘差塊中殘差值的CL的變長編碼,該編碼方式可以自我調整的用較少的位元編碼較小的CL,從而可以達到節省位元的目的。
在另一種可能的設計方式中,對於殘差塊中的任一值,上述的採用可變碼長的編碼方式對每個值的CL進行編碼,以得到碼流包括:當任一值的CL小於等於閾值,採用預設數量個位元編碼任一值的CL,以得到碼流。當任一值的CL大於閾值,採用截斷一元碼編碼任一值的CL,以得到碼流。
該可能的設計方式,藉由定長編碼和截斷一元碼實現了對殘差塊中殘差值的CL的變長編碼,該編碼方式可以自我調整的用較少的位元編碼較小的CL,從而可以達到節省位元的目的。
在另一種可能的設計方式中,上述的殘差塊為待編碼塊的原始殘差值塊;或者,上述的殘差塊為原始殘差值塊經變換後得到的殘差係數塊;或者,上述的殘差塊為殘差係數塊經量化後得到的量化係數塊。
在另一種可能的設計方式中,如果上述的殘差塊為待編碼塊的原始殘差值塊,則上述的確定待編碼塊對應的殘差塊包括:確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的目標預測順序。按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素。基於待編碼塊中的每個像素的預測值,確定殘差塊。
藉由該可能的設計方式,由於基於本發明提供的目標預測模式對待編碼塊進行預測時能夠提高預測效率,因此該可能的設計方式進一步提供了圖像的編碼效率。
在另一種可能的設計方式中,如果上述的殘差塊為殘差係數塊經量化後得到的量化係數塊,則在上述的採用可變碼長的編碼方式對殘差塊進行編碼,以得到待編碼塊的碼流之前,上述方法還包括:確定待編碼塊中每個像素的量化參數QP。基於每個像素的QP和量化預設陣列,對待編碼的殘差值塊進行量化,得到殘差塊。
藉由該可能的設計,能夠以基於更少乘法運算實現對待編碼的殘差值塊的量化,即能夠高效的實現對待編碼的殘差值塊的量化,因此該可能的設計提供的編碼方法能夠進一步提高圖像編碼的效率。
第六方面,本發明提供了一種圖像解碼方法,該方法包括:採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL。基於編碼每個值的CL確定殘差塊。基於殘差塊對待解碼塊進行重建,得到重建塊。
在另一種可能的設計方式中,上述的可變碼長的解碼方式包括可變換階數或預設階數的指數哥倫布解碼方式,則上述的採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL包括:確定解析編碼殘差塊中每個值的CL時的目標階數。採用目標階數的指數哥倫布解碼演算法解析碼流,得到編碼殘差塊中每個值的CL。
在另一種可能的設計方式中,上述的採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL包括:當用於編碼殘差塊中任一值CL的位元數量為預設數量,則基於定長解碼策略解析碼流,以得到編碼任一值的CL。當用於編碼殘差塊中任一值CL的位元數量大於預設數量,則基於截斷一元碼的規則解析碼流,以得到編碼任一值的CL。
在另一種可能的設計方式中,上述的基於編碼每個值的CL確定殘差塊包括:基於編碼每個值的CL在碼流中確定與待解碼塊中每個像素對應的位元組。確定待解碼塊中每個像素的屬性類型。對於與待解碼塊中第三像素對應的第一位元組,基於預設策略和第三像素的屬性類型,確定解析第一位元組的目標階數。採用目標階數的指數哥倫布解碼演算法解析第一位元組,以得到殘差塊。
在另一種可能的設計方式中,上述的基於編碼每個值的CL確定殘差塊包括:基於編碼每個值的CL在碼流中確定與待解碼塊中每個像素對應的位元組。對於與待解碼塊中第三像素對應的第一位元組,採用預設階數的指數哥倫布解碼演算法解析第一位元組,以得到殘差塊。
在另一種可能的設計方式中,上述的基於殘差塊對待解碼塊進行重建,得到重建塊包括:對該殘差塊進行反量化和反變換,或者,對該殘差塊進行反量化,以重建待解碼塊的殘差值塊。基於殘差值塊對待解碼塊進行重建,得到重建塊。
在另一種可能的設計方式中,上述的基於殘差塊對待解碼塊進行重建,得到重建塊包括:基於待解碼塊的碼流確定預測待解碼塊中像素的目標預測模式。基於目標預測模式,確定與目標預測模式對應的目標預測順序。按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素。基於待解碼塊中的每個像素的預測值和殘差塊對待解碼塊進行重建,得到重建塊。
在另一種可能的設計方式中,上述的對殘差塊進行反量化包括:基於解析待解碼塊的碼流得到的待解碼塊中每個像素的反量化參數和反量化預設陣列,對殘差塊進行反量化。
可以理解,第六方面及其任一種可能的是設計提供的圖像解碼方法與第五方面及其任一種可能的設計方式提供的圖像編碼方法是對應的,因此,第六方面及其任一種可能的設計方式提供的技術方案的有益效果,均可以參考第五方面中對應的方法的有益效果的描述,不再贅述。
第七方面,本發明提供了一種圖像解碼裝置。該解碼裝置可以是視訊解碼器或包含視訊解碼器的設備。該解碼裝置包括用於實現第一方面、協力廠商面或第六方面中任一種可能實現方式中方法的各個模組。所述解碼裝置具有實現上述相關方法實例中行為的功能。所述功能可以藉由硬體實現,也可以藉由硬體執行相應的軟體實現。所述硬體或軟體包括一個或多個與上述功能對應的模組。其有益效果可以參見相應方法中的描述,此處不再贅述。
第八方面,本發明提供了一種圖像編碼裝置。該編碼裝置可以是視訊轉碼器或包含視訊轉碼器的設備。該編碼裝置包括用於實現第二方面、第四方面或第五方面中任一種可能實現方式中方法的各個模組。所述編碼裝置具有實現上述相關方法實例中行為的功能。所述功能可以藉由硬體實現,也可以藉由硬體執行相應的軟體實現。所述硬體或軟體包括一個或多個與上述功能對應的模組。其有益效果可以參見相應方法中的描述,此處不再贅述。
第九方面,本發明提供一種電子設備,包括處理器和記憶體,所述記憶體用於儲存電腦指令,所述處理器用於從記憶體中調用並運行所述電腦指令,以實現第一方面至第六方面中任一種實現方式的方法。
例如,該電子設備可以是指視訊轉碼器,或包括視訊轉碼器的設備。
又如,該電子設備可以是指視訊解碼器,或包括視訊解碼器的設備。
第十方面,本發明提供一種電腦可讀儲存媒體,儲存媒體中儲存有電腦程式或指令,當電腦程式或指令被計算設備或計算設備所在的儲存系統執行時,以實現第一方面至第六方面中任一種實現方式的方法。
第十一方面,本發明提供一種電腦程式產品,該計算程式產品包括指令,當電腦程式產品在計算設備或處理器上運行時,使得計算設備或處理器執行該指令,以實現第一方面至第六方面中任一種實現方式的方法。
第十二方面,本發明提供一種晶片,包括記憶體和處理器,記憶體用於儲存電腦指令,處理器用於從記憶體中調用並運行該電腦指令,以實現第一方面至第六方面中任一種實現方式的方法。
第十三方面,本發明提供一種圖像解碼系統,該圖像解碼系統包括編碼端和解碼端,解碼端用於實現第一、第三或第六方面提供的相應的解碼方法,編碼端用於實現與此對應的編碼方法。
本發明在上述各方面提供的實現方式的基礎上,還可以進行進一步組合以提供更多實現方式。或者說,上述任意一個方面的任意一種可能的實現方式,在不衝突的情況下,均可以應用於其他方面,從而得到新的實施例。例如,上述第一、第三以及第六方面提供的任意一種圖像解碼方法,可以在不衝突的情況下兩兩組合、或三個方面進行組合,從而可以得到新的圖像解碼方法。
為了更清楚的理解本發明實施例,下面對本發明實施例中涉及的部分術語或技術進行說明:
(1)、預測模式
預測當前圖像塊(如待編碼圖像塊(以下簡稱待編碼塊)或待解碼圖像塊(以下簡稱待解碼塊))中每個像素的預測值所採用的預測方式的組合稱為預測模式。其中,預測當前圖像塊中的不同像素可以採用不同的預測方式,也可以採用相同的預測方式,預測當前圖像塊中的所有像素所採用的預測方式可以共同稱為該當前圖像塊的(或對應的)預測模式。
可選的,預測模式包括:逐點預測模式、幀內預測模式、塊複製模式和原始值模式(即直接解碼固定位元寬的重建值模式)等。
示例的,逐點預測模式是指將待預測像素周圍相鄰像素的重建值作為待預測像素的預測值的預測模式。逐點預測模式包括垂直預測、水準預測、垂直均值預測和水平均值預測等預測方式中的一種或多種的組合。
其中,垂直預測為用待預測像素上側(既可以是相鄰的上側,也可以是非相鄰但距離較近的上側)像素的重建值來獲得待預測像素的預測值(PointPredData)。在本發明實施例中,將採用垂直預測的預測方式稱為T預測方式。一種示例為:將待預測像素上側相鄰像素的重建值作為待預測像素的預測值。
水準預測為用待預測像素左側(既可以是相鄰的左側,也可以是非相鄰但距離較近的左側)像素的重建值來獲得待預測像素的預測值。在本發明實施例中,將採用水準預測的預測方式稱為L預測方式。一種示例為:將待預測像素左側相鄰像素的重建值作為待預測像素的預測值。
垂直均值預測為用待預測像素上下方像素的重建值來獲得待預測像素的預測值。在本發明實施例中,將採用垂直均值預測的預測方式稱為TB預測方式。一種示例為:將待預測像素垂直上方相鄰像素的重建值和垂直下方相鄰像素的重建值的均值作為待預測像素的預測值。
水平均值預測為用待預測像素左右兩側像素的重建值來獲得待預測像素的預測值。在本發明實施例中,將採用水平均值預測的預測方式稱為RL預測方式。一種示例為:將待預測像素水準左側相鄰像素的重建值和水準右側相鄰像素的重建值的均值作為待預測像素的預測值。
示例的,幀內預測模式是將待預測塊周圍相鄰塊中像素的重建值作為預測值的預測模式。
示例的,塊複製模型是將(解碼)塊(不一定相鄰)像素的重建值作為預測值預測模式。
示例的,原始值模式是直接解碼固定位元寬的重建值模式,即無參考預測模式。
(2)、殘差編碼模式
對當前圖像塊(如待編碼塊或待解碼塊)的殘差(即殘差塊,由當前圖像塊中的每個像素的殘差值構成)進行編碼的方式,被稱為殘差編碼模式。殘差編碼模式可以包括跳過殘差編碼模式和正常殘差編碼模式。
在跳過殘差編碼模式下,無需編碼(解碼)殘差係數,此時當前圖像塊中的像素的殘差值為全0,每個像素的重建值等於該像素的預測值。
在正常殘差編碼模式下,需要編碼(解碼)殘差係數,此時當前圖像塊中的像素的殘差值不全為0,每個像素的重建值可以基於該像素的預測值和殘差值得到。
在一個示例中,像素的殘差係數可以等價於該像素的殘差值;在另一個示例中,像素的殘差係數可以是該像素的殘差值經一定處理得到的。
(3)、量化和反量化
在圖像編碼過程中,為實現對圖像的壓縮,通常會對待編碼塊的殘差塊進行量化,或者對該殘差塊經一定處理後得到的殘差係數塊進行量化,從而使得量化後的殘差塊或殘差係數塊可以以更少的位元進行編碼。可以理解,殘差塊為基於待編碼塊的原始像素塊和預測塊得到的殘差值塊,殘差係數塊為對殘差塊進行一定處理變換後得到的係數塊。
作為示例,以編碼裝置對殘差塊進行量化為例,編碼裝置可以為待編碼塊的殘差塊中的每個殘差值除以量化係數,以縮小該殘差塊中的殘差值。這樣,相比未進行量化的殘差值,量化後被縮小的殘差值即可藉由更少的位元來編碼,這樣即實現了圖像的壓縮編碼。
相應的,為從壓縮編碼後的碼流中重建圖像塊,解碼裝置可以對從碼流中解析到的殘差塊或殘差係數塊進行反量化,從而可以重建圖像塊對應的未被量化的殘差塊或殘差係數塊,進而,解碼裝置根據重建的殘差塊或殘差係數塊對圖像塊進行重建,從而得到圖像的重建塊。
作為示例,以解碼裝置從碼流中解析到待解碼塊經量化後的殘差塊為例,編碼裝置可以對該殘差塊進行反量化。具體的,編碼裝置可以為解析到的殘差塊中的每個殘差值乘以量化係數,以重建待解碼塊對應的未被量化的殘差塊中的殘差值,從而得到重建的殘差塊。其中,量化係數為編碼裝置在編碼待解碼塊時,對待解碼塊的殘差塊進行量化時的量化係數。這樣,解碼裝置基於反量化後重建的殘差塊,即可實現對待解碼塊的重建,並得到待解碼塊的重建塊。
(4)、其他術語
本發明實施例中的術語“至少一個(種)”包括一個(種)或多個(種)。“多個(種)”是指兩個(種)或兩個(種)以上。例如,A、B和C中的至少一種,包括:單獨存在A、單獨存在B、同時存在A和B、同時存在A和C、同時存在B和C,以及同時存在A、B和C。在本發明的描述中,除非另有說明,“/”表示或的意思,例如,A/B可以表示A或B;本文中的“和/或”僅僅是一種描述關聯物件的關聯關係,表示可以存在三種關係,例如,A和/或B,可以表示:單獨存在A,同時存在A和B,單獨存在B這三種情況。“多個”是指兩個或多於兩個。另外,為了便於清楚描述本發明實施例的技術方案,在本發明的實施例中,採用了“第一”、“第二”等字樣對功能和作用基本相同的相同項或相似項進行區分。本領域技術人員可以理解“第一”、“第二”等字樣並不對數量和執行次序進行限定,並且“第一”、“第二”等字樣也並不限定一定不同。
下面描述本發明實施例所應用的系統架構。
參見圖1,圖1示出了本發明實施例所應用的編解碼系統10的架構示意圖。如圖1所示,編解碼系統10可以包括源設備11和目的設備12。其中,源設備11用於對圖像進行編碼,因此,源設備11可被稱為圖像編碼裝置或視訊編碼裝置。目的設備12用於對由源設備11所產生的經編碼的圖像數據進行解碼,因此,目的設備12可被稱為圖像解碼裝置或視訊解碼裝置。
源設備11和目的設備12的具體形態可以為各種裝置,本發明實施例對比不作限定。例如時源設備11和目的設備12可以為桌上型電腦、移動計算裝置、筆記本(例如,膝上型)電腦、平板電腦、機上盒、例如所謂的“智慧型”電話等電話手持機、電視機、相機、顯示裝置、數位媒體播放機、視訊遊戲控制台、車載電腦或其他類似設備等。
可選的,圖1中的源設備11和目的設備12可以是兩個單獨的設備。或者,源設備11和目的設備12為同一設備,即源設備11或對應的功能以及目的設備12或對應的功能可以集成在同一個設備上。
源設備11和目的設備12之間可以進行通訊。例如,目的設備12可從源設備11接收經編碼的圖像數據。在一個示例中,源設備11和目的設備12之間可以包括一個或多個通訊媒體,該一個或多個通訊媒體用於傳輸經編碼的圖像數據。該一個或多個通訊媒體可以包含路由器、交換器、基站或促進從源設備11到目的設備12的通訊的其它設備,本發明實施例對此不作限定。
如圖1所示,源設備11包括編碼器112。可選的,源設備11還可以包括圖像預處理器111以及通訊介面113。其中,圖像預處理器111,用於對接收到的待編碼圖像執行預處理,例如,圖像預處理器111執行的預處理可以包括整修、色彩格式轉換(例如,從RGB格式轉換為YUV格式)、調色或去噪等。編碼器112,用於接收經圖像預處理器111預處理的圖像,採用相關預測模式對預處理後的圖像進行處理,從而提供經編碼的圖像數據。在一些實施例中,編碼器112可以用於執行下文中所描述的各個實施例中的編碼過程。通訊介面113,可用於將經編碼的圖像數據傳輸至目的設備12或任何其它設備(如記憶體),以用於儲存或直接重構,其它設備可為任何用於解碼或儲存的設備。通訊介面113也可以將經編碼的圖像數據封裝成合適的格式之後再傳輸。
可選的,上述圖像預處理器111、編碼器112以及通訊介面113可能是源設備11中的硬體部件,也可能是源設備11中的軟體程式,本發明實施例不作限定。
目的設備12包括解碼器122。可選的,目的設備12還可以包括通訊介面121、圖像後處理器123。其中,通訊介面121可用於從源設備11或任何其它源設備接收經編碼的圖像數據,該任何其它源設備例如為儲存設備。通訊介面121還可以解封裝通訊介面113所傳輸的數據以獲取經編碼的圖像數據。解碼器122,用於接收經編碼的圖像數據並輸出經解碼的圖像數據(也稱為經重構圖像數據或已重構圖像數據)。在一些實施例中,解碼器122可以用於執行下文中所描述的各個實施例所述的解碼過程。圖像後處理器123,用於對經解碼的圖像數據執行後處理,以獲得經後處理的圖像數據。圖像後處理器123執行的後處理可以包括:色彩格式轉換(例如,從YUV格式轉換為RGB格式)、調色、整修或重採樣,或任何其它處理,圖像後處理器123還可用於將經後處理的圖像數據傳輸至顯示設備進行顯示。
可選的,上述通訊介面121、解碼器122以及圖像後處理器123可能是目的設備12中的硬體部件,也可能是目的設備12中的軟體程式,本發明實施例不作限定。
下面對圖1中的編碼器112和解碼器122的結構進行簡單介紹。
參見圖2,圖2示出用於實現本發明實施例方法的編碼器112的實例的示意性框圖。如圖2所示,編碼器112包括預測處理單元201、殘差計算單元202、殘差變換單元203、量化單元204、編碼單元205、反量化單元(也可以稱為逆量化單元)206、殘差逆變換單元207、重構單元(或者稱為重建單元)208以及濾波器單元209。可選的,編碼器112還可以包括緩衝器、經解碼圖像緩衝器。其中,緩衝器用於緩存重構單元208輸出的重構塊(或成為重建塊),經解碼圖像緩衝器用於緩存濾波器單元209輸出的濾波後的圖像塊。
在一個示例中,編碼器112的輸入為待編碼圖像的圖像塊(即待編碼塊或編碼單元。在另一個示例中,編碼器112的輸入為待編碼圖像,編碼器112中可以包括分割單元(圖2中未示出),該分割單元用於將待編碼圖像分割成多個圖像塊。編碼器112用於逐塊編碼從而完成對待編碼圖像的編碼。例如,編碼器112對每個圖像塊執行編碼過程,從而完成對待編碼圖像的編碼。
在一個示例中,一種將待編碼圖像劃分成多個圖像塊的方法可以包括:
步驟1:將一幀圖像分成一個或多個互相不重疊的並行編碼單元,各個並行編碼單元間無依賴關係,可並行/獨立編解碼。
步驟2:對於每個並行編碼單元,編碼端可將其分成一個或多個互相不重疊的獨立編碼單元,各個獨立編碼單元間可相互不依賴,但可以共用該並行編碼單元的一些頭訊息。
步驟3:對於每個獨立編碼單元,編碼端可再將其分成一個或多個互相不重疊的編碼單元。其中,若將獨立編碼單元劃分成多個互相不重疊的編碼單元,則劃分方式可以為水準等分法、垂直等分法或水準垂直等分法。當然具體實現時不限於此。獨立編碼單元內的各個編碼單元可相互依賴,即在執行預測步驟的過程中可以相互參考。
編碼單元的寬為w_cu,高為h_cu,可選的,其寬大於高(除非是邊緣區域)。通常的,編碼單元可為固定的w_cu×h_cu,w_cu和h_cu均為2的N次方(N大於等於0),如16×4,8×4,16×2,8×2,4×2,8×1,4×1等。
編碼單元既可以是包括亮度Y、色度Cb、色度Cr三個分量(或紅R、綠G、藍B三分量),也可以僅包含其中的某一個分量。若包含三個分量,幾個分量的尺寸可以完全一樣,也可以不一樣,具體與圖像輸入格式相關。
如圖3所示,為一種圖像、並行編碼單元、獨立編碼單元和編碼單元之間的對應關係的示意圖。例如,圖3中的並行編碼單元1和並行編碼單元2是按照圖像面積比例3:1對一個圖像進行劃分的,其中,並行編碼單元1包括一個被劃分為4個編碼單元的獨立編碼單元。
預測處理單元201,用於接收或獲取待編碼塊的真實值和已重構圖像數據,基於已重構圖像數據中的相關數據對待編碼塊進行預測,得到待編碼塊的預測塊。
殘差計算單元202用於計算待編碼塊的真實值和待編碼塊的預測塊之間的殘差值,得到殘差塊。例如,藉由逐像素將待編碼塊的真實像素值減去預測塊的像素值得到殘差塊。
在一個示例中,殘差變換單元203用於基於殘差塊確定殘差係數。可選的,在該過程中,可以包括:對殘差塊進行例如離散餘弦轉換(discrete cosine transform,DCT)或離散正弦轉換(discrete sine transform,DST)的變換,以在變換域中獲取變換係數,變換係數也可以稱為變換殘差係數或殘差係數,該殘差係數可以在變換域中表示殘差塊。當然,編碼器112在對待編碼塊進行編碼的過程中也可以不包含殘差變換的步驟。
量化單元204用於藉由應用標量量化或向量量化來量化變換係數或殘差值,以獲取經量化殘差係數(或經量化殘差值)。量化過程可以減少與部分或全部殘差係數有關的位深度(bitdepth)。例如,可在量化期間將p位變換係數向下舍入到q位變換係數,其中p大於q。可藉由調整量化參數(quantization parameter,QP)修改量化程度。例如,對於標量量化,可以應用不同的標度來實現較細或較粗的量化。較小量化步長對應較細量化,而較大量化步長對應較粗量化。可以藉由QP指示合適的量化步長。
編碼單元205用於對上述經量化殘差係數(或經量化殘差值)進行編碼,以經編碼位元流(或稱為碼流)的形式輸出的經編碼的圖像數據(即當前待編碼塊的編碼結果),然後可以將經編碼位元流傳輸到解碼器,或將其儲存起來,後續傳輸至解碼器或用於檢索。編碼單元205還可用於對待編碼塊的語法元素進行編碼,例如將待編碼塊採用的預測模式編碼至碼流等。
在一個示例中,編碼單元205對殘差係數編碼,一種可行方式為:半定長編碼方式。首先將一個殘差小塊(residual block,RB)內殘差絕對值的最大值定義為modified maximum(mm)。根據上述mm確定該RB內殘差係數的編碼位元數(同一個RB內殘差係數的編碼位元數一致),也就是編碼長度CL。例如,若當前RB的CL為2,並且當前殘差係數為1,則編碼殘差係數1需要2個位元,表示為01。在一種特殊情況下,若當前RB的CL為7,則表示編碼8-bit的殘差係數和1-bit的符號位元。其中,CL的確定方式是找滿足當前RB內所有殘差都在[-2^(M-1),2^(M-1)]範圍之內的最小M值,將找到的M作為當前RB的CL。若當前RB內同時存在-2^(M-1)和2^(M-1)兩個邊界值,則M應增加1,即需要M+1個位元編碼當前RB的所有殘差;若當前RB內僅存在-2^(M-1)和2^(M-1)兩個邊界值中的一個,則需要編碼一個Trailing位元(最末位)來確定該邊界值是-2^(M-1)還是2^(M-1);若當前RB內所有殘差均不存在-2^(M-1)和2^(M-1)中的任何一個,則無需編碼該Trailing位元。
當然,也可以採用其他殘差係數編碼方法,如指數Golomb(哥倫布編碼演算法)編碼方法、Golomb-Rice(哥倫布編碼演算法的變種)編碼方法、截斷一元碼編碼方法、游程編碼方法、直接編碼原始殘差值等。
另外,對於某些特殊的情況,編碼單元205也可以直接編碼原始值,而不是殘差值。
反量化單元206用於對上述經量化殘差係數(或經量化殘差值)進行反量化,以獲取經反量化殘差係數(經反量化殘差值),該反量化是上述量化單元204的反向應用,例如,基於或使用與量化單元204相同的量化步長,應用量化單元204應用的量化方案的逆量化方案。
殘差逆變換單元207用於對上述反量化殘差係數逆變換(或反變換),以得到重建的殘差塊。可選的,反變換可以包括逆離散余弦變換(discrete cosine transform,DCT)或逆離散正弦變換(discrete sine transform,DST)。這樣,對上述反量化殘差係數逆變換(或反變換)後得到的逆變換值,即為在像素域(或者稱為樣本域)中重建的殘差值。也即,經反量化的殘差係數塊在經殘差逆變換單元207逆變換後,得到的塊為重建的殘差塊。當然,在編碼器112中不包括上述的殘差變換單元203時,編碼器112也可以不包含反變換的步驟。
重構單元208用於將重建的殘差塊添加至預測塊,以在樣本域中獲取經重構塊,重構單元208可以為求和器。例如,重構單元208將重建的殘差塊中的殘差值與預測塊中對應像素的預測值相加,以得到對應像素的重建值。該重構單元208輸出的重構塊可以後續用於預測其他待編碼的圖像塊。
濾波器單元209(或簡稱“濾波器”)用於對經重構塊進行濾波以獲取經濾波塊,從而順利進行像素轉變,進而提高圖像品質。
在一個示例中,一種編碼過程如圖4所示。具體的,編碼器判斷是否採用逐點預測模式,若採用逐點預測模式,則編碼器基於逐點預測模式對待編碼塊中的像素進行預測以對待編碼塊進行編碼,並對編碼結果執行反量化和重建步驟,從而實現編碼過程;若未採用逐點預測模式,編碼器則判斷是否採用原始值模式。若採用原始值模式,則採用原始值模式編碼;若未採用原始值模式,編碼器則確定採用其他預測模式如幀內預測模式或塊複製模式進行預測並編碼。後續,在確定執行殘差跳過時直接對編碼結果執行重建步驟;在確定不執行殘差跳過時,對編碼結果先執行反量化步驟得到經反量化殘差塊,並判斷是否採用塊複製預測模式。若確定採用塊複製預測模式,則一種情況下,在確定執行變換跳過時,直接對經反量化殘差塊執行重建步驟,在另一種情況下,在確定沒有執行變換跳過時,藉由對經反量化殘差塊執行反變換和重建步驟,實現編碼過程。若確定不採用塊複製模式(該情況下,所採用的一種預測模式為幀內預測模式)時,對經反量化殘差塊執行反變換步驟和重建步驟,從而實現編碼過程。
具體的,在本發明實施例中,編碼器112用於實現後文實施例中描述的編碼方法。
在一個示例中,編碼器112實現的一種編碼過程可以包括以下步驟:
步驟11:預測處理單元201確定預測模式,並基於確定的預測模式和已編碼圖像塊的重構塊對待編碼塊進行預測,得到待編碼塊的預測塊。
其中,已編碼圖像塊的重構塊是反量化單元206、殘差逆變換單元207以及重構單元208依次對該已編碼圖像塊的經量化殘差係數塊處理後得到的。
步驟12:殘差計算單元202基於預測塊和待編碼塊的原始像素值,得到待編碼塊的殘差塊。
步驟13:殘差變換單元203對殘差塊進行變換,得到殘差係數塊。
步驟14:量化單元204對殘差係數塊進行量化,得到經量化殘差係數塊。
步驟15:編碼單元205對經量化殘差係數塊進行編碼,以及對相關語法元素(例如預測模式,編碼模式)進行編碼,得到待編碼塊的碼流。
參見圖5,圖5示出用於實現本發明實施例方法的解碼器122的實例的示意性框圖。解碼器122用於接收例如由編碼器112編碼的圖像數據(即經編碼位元流,例如,包括圖像塊的經編碼位元流及相關聯的語法元素),以獲取經解碼圖像塊。
如圖5所示,解碼器122包括碼流解析單元301、反量化單元302、殘差逆變換單元303、預測處理單元304、重構單元305、濾波器單元306。在一些實例中,解碼器122可執行大體上與圖2的編碼器112描述的編碼過程互逆的解碼過程。可選的,解碼器122還可以包括緩衝器、經濾波圖像緩衝器,其中,緩衝器用於緩存重構單元305輸出的重構圖像塊,經濾波圖像緩衝器用於緩存濾波器單元306輸出的濾波後的圖像塊。
碼流解析單元301用於對經編碼位元流執行解碼,以獲取經量化殘差係數(或經量化殘差值)和/或解碼參數(例如,解碼參數可以包括編碼側執行的幀間預測參數、幀內預測參數、濾波器參數和/或其它語法元素中的任意一個或全部)。碼流解析單元301還用於將上述解碼參數轉發至預測處理單元304,以供預測處理單元304根據解碼參數執行預測過程。
反量化單元302的功能可與編碼器112的反量化單元206的功能相同,用於反量化(即逆量化)經碼流解析單元301解碼輸出的經量化殘差係數。
殘差逆變換單元303的功能可與編碼器112的殘差逆變換單元207的功能相同,用於對上述經反量化殘差係數進行逆變換(例如,逆DCT、逆整數變換或概念上類似的逆變換過程),得到重建的殘差值。逆變換得到塊即為重建的待解碼塊在像素域中的殘差塊。
重構單元305(例如求和器)的功能可與編碼器112的重構單元208的功能相同。
預測處理單元304,用於接收或獲取經編碼圖像數據(例如當前圖像塊的經編碼位元流)和已重構圖像數據,預測處理單元304還可以從例如碼流解析單元301接收或獲取預測模式的相關參數和/或關於所選擇的預測模式的訊息(即上述的解碼參數),並且基於已重構圖像數據中的相關數據和解碼參數對當前圖像塊進行預測,得到當前圖像塊的預測塊。
重構單元305用於將重建的殘差塊添加到預測塊,以在樣本域中獲取待解碼圖像的重構塊,例如將重建的殘差塊中的殘差值與預測塊中的預測值相加。
濾波器單元306用於對經重構塊進行濾波以獲取經濾波塊,該經濾波塊即為經解碼圖像塊。
具體的,在本發明實施例中,解碼器122用於實現後文實施例中描述的解碼方法。
應當理解的是,在本發明實施例的編碼器112和解碼器122中,針對某個環節的處理結果也可以經過進一步處理後,輸出到下一個環節,例如,在插值濾波、運動向量推導或濾波等環節之後,對相應環節的處理結果進一步進行截斷Clip或移位shift等操作。
在一個示例中,解碼器122實現的一種解碼過程可以包括以下步驟:
步驟21:碼流解析單元301解析預測模式和殘差編碼模式;
步驟22:碼流解析單元301基於預測模式和殘差編碼模式解析量化相關值(如near值(一種量化步長表徵值),或QP值等);
步驟23:反量化單元302基於預測模式和量化相關值解析殘差係數;
步驟24:預測處理單元304基於預測模式,獲得當前圖像塊各個像素的預測值;
步驟25:殘差逆變換單元303對殘差係數逆變換,以重建當前圖像塊各個像素的殘差值;
步驟26:重構單元305基於當前編碼單元各個像素的預測值和殘差值,獲得其重建值。
以下,結合圖式,本發明實施例對以下圖像編解碼方法進行說明。
需要說明的是,本發明任一實施例中的編碼端可以是上述圖1或圖2中的編碼器112,也可以是上述圖1中的源設備11。本發明任一實施例中的解碼端可以是上述圖1或圖5中的解碼器122,也可以是上述圖1中的目的設備12,本發明實施例對此不作限定。
參考圖6a,圖6a示出了本發明實施例提供的一種圖像編碼方法的流程示意圖,該方法可以包括如下步驟:
步驟S11、編碼端確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的目標預測順序。
其中,步驟S11的詳細說明可以參考下文S101的描述,不再贅述。
步驟S12、編碼端按照上述的目標預測模式,以上述目標預測順序預測待編碼塊中的每個像素。
其中,步驟S12的詳細說明可以參考下文S102的描述,不再贅述。
步驟S13、編碼端基於待編碼塊中每個像素的預測值確定待編碼塊的殘差塊。
其中,步驟S13的詳細說明可以參考下文S103的描述,不再贅述。
步驟S14(可選的)、編碼端對待編碼塊的殘差塊進行變換處理,得到經變換的殘差係數塊。
步驟S15、編碼端對上述殘差係數塊進行量化處理,得到經量化的殘差係數塊。
可以理解,當編碼端未執行步驟S14時,編碼端可以直接對上述殘差塊進行量化處理,從而得到經量化的殘差塊。
其中,編碼端對殘差塊或殘差係數塊進行量化處理的詳細說明,可以參考下文S301-S302中對殘差塊進行量化的詳細描述,不再贅述。
步驟S16、編碼端編碼上述經量化的殘差係數塊,得到待編碼塊的碼流。
可以理解,當編碼端未執行步驟S14時,編碼端編碼上述經量化的殘差塊,從而得到待編碼塊的碼流。
其中,編碼端編碼經量化的殘差係數塊(或殘差塊)的過程,可以參考下文S502的詳細描述,不再贅述。
需要說明,編碼端編碼殘差係數塊的殘差掃描順序,可以和步驟S11中的目標預測順序相同。這樣的話,在解碼側,解碼端可以以目標預測順序預測待解碼塊中像素的預測值,同時以與該目標預測順序相同的殘差掃描順序解碼待解碼塊的殘差塊,進而能夠高效的得到待解碼塊的重建塊。
在步驟S11-S16所述的圖像編碼方法中,編碼端採用的用於預測待編碼塊中像素的目標預測模式具有較高的預測效率,編碼端採用的用於量化殘差塊或殘差係數塊的量化方法能能夠減少編碼端的乘法運算,即提高了量化效率,並且,編碼端所採用的編碼方法能夠減少用於編碼殘差塊或殘差係數塊的位元數,因此,藉由本發明實施例提供的方法,能夠大大提高編碼端的編碼效率。
參考圖6b,圖6b示出了本發明實施例提供的一種圖像解碼方法的流程示意圖,該方法可以包括如下步驟:
步驟S21、解碼端解析待解碼塊的碼流,以確定預測待解碼塊中像素的目標預測模式。
其中,步驟S21的詳細說明可以參考下文S201的描述,不再贅述。
步驟S22、解碼端基於目標預測模式,確定與目標預測模式對應的目標預測順序。
其中,步驟S22的詳細說明可以參考下文S202的描述,不再贅述。
步驟S23、解碼端按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素,得到該每個像素的預測值。
步驟S24、解碼端採用可變碼長的解碼方式解析待解碼塊的碼流,得到待解碼塊對應的殘差塊中每個值的CL,以及基於該CL、並按照上述殘差掃描順序解析待解碼塊的碼流,得到待解碼塊的第一殘差塊。
其中,殘差掃描順序和上述的目標預測順序可以相同。當殘差掃描順序和上述的目標預測順序相同時,即解碼端以目標預測順序預測待解碼塊中的像素時,解碼端還按照與該目標預測順序相同的殘差掃描順序從待解碼塊的碼流中解析得到待解碼塊的第一殘差塊。這樣可以提高解碼端的解碼效率。
其中,解碼端採用可變碼長的解碼方式解析待解碼塊的碼流,得到待解碼塊對應的殘差塊中每個值的CL的過程,可以參考下文步驟S601的描述。解碼端基於CL確定第一殘差塊的說明,與步驟S602中描述的得到待解碼塊的殘差塊的實現方式相似,不再贅述。
步驟S25、解碼端藉由解析待解碼塊的碼流得到待解碼塊中每個像素的反量化參數。
其中,反量化參數的詳細說明可以參考下文步驟S401中的描述,不再贅述。
步驟S26、解碼端基於待解碼塊中每個像素的反量化參數所指示的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊。
其中,步驟S26的詳細說明可以參考下文步驟S402的描述,不再贅述。
需要說明,本發明實施例對步驟S23和步驟S24-S26的執行順序不作限定,例如可以同時執行步驟S23和步驟S24-S26。
步驟S27(可選的)、解碼端對第二殘差塊進行反變換處理,以得到經反變換的第二殘差塊。
應理解,當圖像編碼過程包括上述的步驟S14時,則解碼端執行步驟S27。
步驟S28、解碼端基於經反變換的第二殘差塊和待解碼塊中每個像素的預測值,對待解碼塊進行重建,得到重建塊。
可以理解,當解碼端未執行步驟S27時,則解碼端直接基於第二殘差塊和待解碼塊中每個像素的預測值,對待解碼塊進行重建,得到重建塊。
需要說明,步驟S21-S28的圖像解碼方法與步驟S11-S16的圖像編碼方法對應。在步驟S21-S28所述的圖像解碼方法,解碼端採用的用於預測待解碼塊中像素的目標預測模式具有較高的預測效率,解碼端採用的用於反量化殘差塊或殘差係數塊的反量化方法能能夠減少解碼端的乘法運算,即提高了反量化效率,並且,解碼端所採用的解碼方法能夠減少用於編碼殘差塊或殘差係數塊的位元數,因此,藉由本發明實施例提供的方法,能夠大大提高解碼端的解碼效率。
實施例一
如圖6c所示,為本發明實施例提供的另一種圖像編碼方法的流程示意圖。圖6c所示的方法包括如下步驟:
步驟S101、編碼端確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的目標預測順序。
具體的,編碼端可以採用不同的預測模式分別對待編碼塊進行預測,並基於不同預測模式下的預測值預測待編碼塊的編碼性能,從而確定目標預測模式。
例如,編碼端可以採用不同的預測模式分別對待編碼塊進行預測,並在基於不同預測模式預測得到預測塊後,編碼端執行上文描述的步驟13-步驟16以得到不同預測模式下的待編碼塊的碼流。編碼端藉由確定在不同預測模式下得到待編碼塊的碼流的時間,並將用時最短的預測模式確定為目標預測模式。換句話說,編碼端將編碼效率最高的預測模式確定為目標預測模式。
除現有的預測模式,本發明實施例還提供了多種預測模式。在本發明實施例提供的預測模式中,編碼端可以藉由預設順序依次預測待編碼塊中的像素。編碼端藉由預設順序依次預測待編碼塊中的像素,是指編碼端以預設軌跡依次預測待編碼塊中的像素。在這一過程中,編碼端預測待編碼塊中的任一個像素時,用於預測該任一像素的像素均已完成重建。其中,本發明實施例所提供的預測模式的詳細說明可以參考下文,這裡不作贅述。
當編碼端基於不同預測模式預測待編碼塊的編碼性能,確定目標預測模式後,即可確定以目標預測模式預測待編碼塊中像素時的目標預測順序。
其中,目標預測順序可以是針對待編碼塊中的像素的預測順序,也可以是針對待編碼塊中子塊的預測順序。
步驟S102、編碼端按照上述的目標預測模式,以上述目標預測順序預測待編碼塊中的每個像素。
可選的,目標預測模式可以用於指示以目標預測順序逐點預測編碼塊中的每個像素。例如,當目標預測模式是下文所述的第一種-第五種預測模式時,目標預測順序即用於指示以目標預測順序指示的軌跡方向逐點預測編碼塊中的每個像素。
這種情況下,編碼端即按照目標預測順序指示的軌跡方向,沿該方向依次逐點預測待編碼塊中的每個像素,以得到每個像素的預測值。
可選的,目標預測模式還可以用於指示以待編碼塊中具有預設大小的子塊為單位依次預測待編碼塊中每個子塊的像素。例如,當目標預測模式是下文所述的第六種預測模式時,目標預測模式即用於指示以待編碼塊中具有預設大小的子塊為單位,依次預測待編碼塊中每個子塊的像素。
這種情況下,目標預測模式包括待編碼塊中每個子塊的預測模式。這樣,編碼端即可按照目標預測模式,沿目標預測順序指示的方向依次預測待編碼塊中每個子塊的像素。並且,在編碼端對待編碼塊的一個子塊進行預測時,編碼端可以基於該子塊周圍已重建的像素,並行的對該子塊內的每個像素進行預測。
步驟S103、編碼端基於待編碼塊中每個像素的預測值確定待編碼塊的殘差塊。
編碼端可以根據待編碼塊中每個像素的預測值和待編碼塊的原始像素值,確定待編碼塊的殘差塊。
例如,編碼端可以藉由圖2所示的殘差計算單元202,對待編碼塊中每個像素的預測值和待編碼塊的原始像素值做差值運算,從而得到待編碼塊的殘差塊。
步驟S104、編碼端以殘差掃描順序編碼上述殘差塊,以得到待編碼塊的碼流。
其中,殘差掃描順序和上述的目標預測模式對應。可選的,殘差掃描順序和上述的目標預測順序可以相同。
例如,當待編碼塊是16×2大小的圖像塊時,如果目標預測模式是下文表1所示的預測模式,則殘差掃描順序可以是圖7a所示預設軌跡指示的順序。如果目標預測模式是下文表2所示的預測模式,則殘差掃描順序可以是圖7b所示預設軌跡指示的順序。如果目標預測模式是下文表3-1所示的預測模式,則殘差掃描順序可以是圖7c-1所示預設軌跡指示的順序。如果目標預測模式是下文表4-1所示的預測模式,則殘差掃描順序可以是圖7d-1所示預設軌跡指示的順序。
再例如,當待編碼塊是8×2大小的圖像塊時,如果目標預測模式是下文表3-2所示的預測模式,則殘差掃描順序可以是圖7c-2所示預設軌跡指示的順序。如果目標預測模式是下文表4-2所示的預測模式,則殘差掃描順序可以是圖7d-2所示預設軌跡指示的順序。
又例如,當待編碼塊是8×1大小的圖像塊時,如果目標預測模式是下文表4-3所示的預測模式,則殘差掃描順序可以是圖7d-3所示預設軌跡指示的順序。如果目標預測模式是下文表5所示的預測模式,則殘差掃描順序可以是圖7e所示預設軌跡指示的順序。
又例如,當待編碼塊是16×2大小的圖像塊時,如果目標預測模式是圖7f所示的預測模式,則殘差掃描順序可以是圖7g所示預設軌跡指示的順序。
可選的,編碼端可以先對待編碼塊的殘差塊進行變換處理,得到待編碼塊的殘差係數塊。編碼端還可以對該殘差係數塊進行量化,得到量化後的殘差係數塊。然後,編碼端以上述的目標預測順序對量化後的殘差係數塊進行編碼,從而得到待編碼塊經編碼後的碼流。
例如,編碼端可以先藉由圖2所示的殘差變換單元203對待編碼塊的殘差塊進行變換處理,得到待編碼塊的殘差係數塊。編碼端還可以藉由圖2所示的量化單元204對該殘差係數塊進行量化,得到量化後的殘差係數塊。然後,編碼端藉由圖2所示的編碼單元205以上述的目標預測順序,對量化後的殘差係數塊進行編碼,從而得到待編碼塊經編碼的碼流。
可選的,編碼端可以直接對待編碼塊的殘差塊進行量化處理,得到量化後的殘差塊。然後,編碼端以上述的目標預測順序對量化後的殘差塊進行編碼,從而得到待編碼塊經編碼的碼流。
例如,編碼端可以直接藉由圖2所示的量化單元204對待編碼塊的殘差塊進行量化處理,得到量化後的殘差塊。然後,編碼端藉由圖2所示的編碼單元205以上述的目標預測順序,對量化後的殘差塊進行編碼,從而得到待編碼塊經編碼的碼流。
可選的,編碼端還對上述的目標預測模式作為待編碼塊的語義元素,或者將上述的目標預測模式和對應的目標預測順序作為待編碼塊的語義元素,並對該語義元素進行編碼。編碼端還可以將編碼後的語義元素數據添加至待編碼塊經編碼的碼流中。
需要說明,本發明實施例對待編碼塊的殘差塊或殘差係數塊進行量化的方式不作具體限定,例如可以採用下述實施例二方案中描述的量化方式對待編碼塊的殘差塊或殘差係數塊進行量化,當然不限於此。
還需要說明,本發明實施例對編碼端編碼量化後的殘差塊或殘差係數、以及編碼相關的語義元素的具體編碼方式不作具體限定,例如可以採用下述實施例三中描述的可變長的編碼方式進行編碼,當然不限於此。
下面對本發明實施例提供的預測模式進行詳細說明。需要預先說明的是,在對一個待編碼塊進行預測的預測模式中,可以包括上文所述的T預測方式、TB預測方式、L預測方式以及RL預測方式中至少一種預測方式。其中,待編碼塊中的一個像素可以藉由T預測方式、TB預測方式、L預測方式或RL預測方式中的任一種預測方式進行預測。
需要說明的是,下述的任一種預測模式可以應用於編碼端對圖像編碼的流程中,也可以應用於解碼端對圖像數據進行解碼的流程中,本發明實施例對此不作限定。
在第一種預測模式中,以待編碼塊的大小為16×2為例,如表1所示,表1示出了一種對大小為16×2的待編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是圖7a所示的預設軌跡指示的順序。也就是說,編碼端以圖7a所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表1所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。
表1
T RL T RL T RL T RL T RL T RL T RL T L
T RL T RL T RL T RL T RL T RL T RL T L
可以理解,表1中的每一格顯示的預測方式,用於預測圖7a所示待編碼塊中對應位置像素的預測值。例如表1中的第1行第1格顯示的T預測方式,用於預測圖7a所示待編碼塊中位元於第1行第1格的像素1-1的預測值。再例如,表1中的第1行第2格顯示的RL預測方式,用於預測圖7a所示待編碼塊中位元於第1行第2格的像素1-2的預測值。又例如,表1中的第2行第1格顯示的T預測方式,用於預測圖7a所示待編碼塊中位元於第2行第1格的像素2-1的預測值。又例如,表1中的第2行第15格顯示的T預測方式,用於預測圖7a所示待編碼塊中位元於第2行第15格的像素1-15的預測值。
還應理解,圖7a所示的兩個大小為16×2的塊表示待編碼圖像中的同一個圖像塊(如待編碼塊)。圖7a中藉由兩個塊表徵待編碼塊,僅為了清楚的展示編碼端對待編碼塊中的像素依次進行預測時的預設軌跡,該預設軌跡即為圖7a中帶箭頭的黑色實線所示的軌跡。其中,原點為該預設軌跡的起點,黑色虛線兩端的像素點為預設軌跡上相鄰的兩個像素點。
這樣,示例性的,在編碼端按照圖7a所示的預設軌跡對待編碼塊進行預測時,編碼端首先對圖7a所示的像素1-1以表1所示的T預測方式進行預測。即,像素1-1的預測值=P T1-1,P T1-1為像素1-1上側像素(例如待編碼塊上側圖像塊中的像素。應理解,待編碼塊的上側圖像塊和左側圖像塊通常早於待編碼塊被執行編碼流程,因此待編碼塊的上側圖像塊和左側圖像塊中的像素值已完成重建)的重建值。應理解,編碼端得到像素1-1的預測值後,即可基於像素1-1的預測值確定像素1-1的重建值(例如在編碼端得到像素1-1的預測值後,藉由執行上文所述的步驟13-步驟16,並藉由執行反量化和反變換重建像素的殘差值,進而基於預測值和重建的殘差值得到像素1-1的重建值)。
又示例性的,按照圖7a所示的預設軌跡,編碼端對像素1-1完成預測後,對圖7a所示的像素2-1以表1所示的T預測方式對其進行預測。即,像素2-1的預測值=P T2-1,P T2-1為像素2-1上側像素(例如已完成重建的像素1-1)的重建值。
再示例性的,按照圖7a所示的預設軌跡,編碼端對像素2-15完成預測後,對圖7a所示的像素1-2以表1所示的RL預測方式進行預測。即,像素1-2的預測值=(P R1-2+ P L1-2+1)>> 1,其中,(P R1-2+ P L1-2+ 1)>> 1表示對(P R1-2+ P L1-2+1)的二進位值右移1位元後得到的值,數學上的效果相當於(P R1-2+ P L1-2+1)除以2 1的值。P R1-2為像素1-2右側像素(例如已完成重建的像素1-3,這是由於像素1-3的預測順序在像素1-2之前)的重建值,P L1-2為像素1-2左側像素(例如已完成重建的像素1-1)的重建值。
在第二種預測模式中,以待編碼塊的大小為16×2為例,如表2所示,表2示出了另一種對大小為16×2的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7b所示的預設軌跡指示的順序。也就是說,編碼端以圖7b所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表2所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表2所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7b中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表2
TB TB TB TB T TB TB TB T TB TB TB T TB TB TB
L L L L T L L L T L L L T L L L
這樣,示例性的,在編碼端按照圖7b所示的預設軌跡對待編碼塊進行預測時,編碼端首先對圖7b所示的像素2-1以表2所示的L預測方式進行預測。即,像素2-1的預測值=P L2-1,P L2-1為像素2-1左側像素(例如待編碼塊左側圖像塊中的像素)的重建值。
再示例性的,按照圖7b所示的預設軌跡,編碼端對像素2-16完成預測後,對圖7b所示的像素1-1以表2所示的TB預測方式進行預測。即,像素1-1的預測值=(P T1-1+ P B1-1+ 1)>> 1。P T1-1為像素1-1上側像素(例如待編碼塊上側圖像塊中的像素)的重建值,P B1-1為像素1-1下側像素(例如已完成重建的像素2-1,這是由於像素2-1的預測順序在像素1-1之前)的重建值。
在第三種預測模式中,以待編碼塊的大小為16×2為例,如表3-1所示,表3-1示出了又一種對大小為16×2的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7c-1所示的預設軌跡指示的順序。也就是說,編碼端以圖7c-1所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表3-1所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表3-1所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7c-1中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表3-1
L L L L T L L L T L L L T L L L
L L L L T L L L T L L L T L L L
在第三種預測模式中,以待編碼塊的大小為8×2為例,如表3-2所示,表3-2示出了一種對大小為8×2的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7c-2所示的預設軌跡指示的順序。也就是說,編碼端以圖7c-2所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表3-2所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表3-2所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7c-2中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表3-2
L L L L T L L L
L L L L T L L L
在第四種預測模式中,以待編碼塊的大小為16×2為例,如表4-1所示,表4-1示出了又一種對大小為16×2的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7d-1所示的預設軌跡指示的順序。也就是說,編碼端以圖7d-1所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表4-1所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表4-1所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7d-1中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表4-1
T T T T T T T T T T T T T T T T
T T T T T T T T T T T T T T T T
在第四種預測模式中,以待編碼塊的大小為8×2為例,如表4-2所示,表4-2示出了另一種對大小為8×2的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7d-2所示的預設軌跡指示的順序。也就是說,編碼端以圖7d-2所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表4-2所示的預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表4-2所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7d-2中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表4-2
T T T T T T T T
T T T T T T T T
在第四種預測模式中,以待編碼塊的大小為8×1為例,如表4-3所示,表4-3示出了又一種對大小為8×1的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7d-3所示的預設軌跡指示的順序。也就是說,編碼端以圖7d-3所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表4-3所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表4-3所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7d-3中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表4-3
T T T T T T T T
在第五種預測模式中,以待編碼塊的大小為8×1為例,如表5所示,表5示出了一種對大小為8×1的編碼塊中每個像素進行預測的預測模式。在該預測模式下,編碼端預測待編碼塊中像素的預測順序可以是以圖7e所示的預設軌跡指示的順序。也就是說,編碼端以圖7e所示的預設軌跡依次逐個預測待編碼塊中的像素時,會以表5所示預測模式中的具體預測方式對待編碼塊中的每個像素進行預測。其中,以表5所示預測方式預測待編碼塊中每個像素的詳細說明,可以參考上文中對以表1所示預測方式預測待編碼塊中每個像素的相關描述,圖7e中顯示的預設軌跡的說明也可以參考圖7a中對預設軌跡的描述,不再贅述。
表5
L L L L T L L L
可以看出,上述的每種預測模式對應不同的預測順序。例如,當預測模式為第一預測模式時,預測順序為第一預測順序,當預測模式為第二預測模式時,預測順序為第二預測順序,其中,第一預測順序和第二預測順序不同。第一預測順序、第二預測順序可以為上文中實例的第一種預測模式到第六種預測模式對應的預測順序中的一種。
還可以看出,在相同的預測模式下,當待編碼塊的尺寸大小不同時,對應的預測順序也是不同的。例如,對於尺寸為第一尺寸的待解碼塊,在預測模式1下採用第三預測順序對待解碼塊進行預測,對於尺寸為第二尺寸的待解碼塊,在預測模式1下採用第四預測順序對待解碼塊進行預測,其中,第三預測順序和第四預測順序不同。例如,對於16×2、8×2和8×1三種不同尺寸的待解碼塊,在上述第四種預測模式下,可以分別採用如圖7d-1、圖7d-2、圖7d-3三種不同的預測順序。
其中,第一預測順序、第二預測順序、第三預測順序和第四預測順序都可以表徵針對待編碼塊中的像素的預測軌跡,也可以表徵針對待編碼塊中子塊的預測軌跡。
在第六種預測模式中,該預測模式用於指示編碼端以待編碼塊中具有預設大小的子塊為單位,沿與該預測模式對應的預測順序所指示的方向依次對待編碼塊中的每個子塊進行預測。並且,在該預測模式下,編碼端在對待編碼塊的任一個子塊進行預測時,可以並行基於該任一個子塊周圍已重建的像素對該任一個子塊內的像素進行預測。
在這種預測模式下,編碼端可以將待編碼塊劃分為具有預設大小的多個不重合的子塊,並將劃分得到的子塊的排列方向作為該預測模式對應的預測順序所指示的方向。
作為示例,參考圖7f,圖7f示出了本發明實施例提供的一種待編碼塊中子塊的示意圖。
如圖7f中的(a)所示,假設具有預設大小的子塊為2×2大小的子塊,則對於16×2的待編碼塊,待編碼塊可以劃分如圖7f中的(a)中黑色粗線框所示的8個不重合的2×2子塊。並且,這8個子塊的排列方向,即作為該預測模式對應的預測順序所指示的方向,例如圖7f中的(a)所示箭頭指向的方向。
如圖7f中的(b)所示,假設具有預設大小的子塊為4×2大小的子塊,則對於16×2的待編碼塊,待編碼塊可以劃分如圖7f中的(b)中黑色粗線框所示的4個不重合的4×2子塊。並且,這4個子塊的排列方向,即作為該預測模式對應的預測順序所指示的方向,例如圖7f中的(b)所示箭頭指向的方向。
如圖7f中的(c)所示,假設具有預設大小的子塊為8×2大小的子塊,則對於16×2的待編碼塊,待編碼塊可以劃分如圖7f中的(c)中黑色粗線框所示的2個不重合的8×2子塊。並且,這2個子塊的排列方向,即作為該預測模式對應的預測順序所指示的方向,例如圖7f中的(c)所示箭頭指向的方向。
具體的,對於待編碼塊中的任一子塊,第六種預測模式指示基於該任一子塊的上側(相鄰或不相鄰)、左側(相鄰或不相鄰)以及斜上側(相鄰或不相鄰)的像素的重建值對該任一子塊內的像素進行預測。需要說明,在該預測模式下,一個子塊內的一個像素不會依賴相同子塊內的其他像素進行預測。為簡單描述,本發明實施例以該預測模式指示基於該任一子塊的上側、左側以及斜上側相鄰的像素的重建值對該任一子塊內的像素進行預測。
以第六種預測模式用於指示以圖7f中的(a)所示的子塊為單位,沿與該預測模式對應的預測順序所指示方向依次對待編碼塊中的每個子塊進行預測為例,如圖7f中的(a)所示,假設上述任一個子塊為子塊a,且圖7f中的(a)所示的灰色方格為子塊a上側、左側以及斜上側相鄰的像素。以子塊a中的像素分別為Y0、Y1、Y2以及Y3,子塊a上側的像素包括為T0和T1,子塊a左側的像素包括為L0和L1,子塊a斜上側的像素為LT為例:
則在一種可能的實現方式中,第六種預測模式具體可以指示:子塊a中Y0的預測值基於T0、L0以及LT得到,子塊a中Y1的預測值基於T1、L0以及LT得到,子塊a中Y2的預測值基於T0、L1以及LT得到,子塊a中Y3的預測值基於T1、L1以及LT得到。
可選的,第六種預測模式具體指示的預測方式1可以是:基於待編碼塊中任一子塊內任一像素的上側像素、左側像素以及斜上方像素的水準梯度或垂直梯度,確定該任一像素的預測值。
參考圖7f中的(a),以子塊a中的像素Y0為例,當編碼端確定Y0的上側像素T0、左側像素L0以及斜上側像素LT的重建值滿足條件1,則將Y0左側像素L0的重建值確定為Y0 預測值。其中,條件1用於表徵Y0周圍像素的水準梯度最小。條件1具體為:|T0重建值- LT重建值|≤|L0重建值- LT重建值| ,且| T0重建值- LT重建值|≤|L 0重建值+ T 0重建值- 2 *LT重建值|。當編碼端確定Y0的上側像素T0、左側像素L0以及斜上側像素LT的重建值滿足條件2,則將Y0上側像素T0的重建值確定為Y0 預測值。其中,條件2用於表徵Y0周圍像素的垂直梯度最小。條件2具體為:| T0重建值- LT重建值|≤|L 0重建值+ T 0重建值- 2 *LT重建值|。當編碼端確定Y0的上側像素T0、左側像素L0以及斜上側像素LT的重建值不滿足上述條件1和條件2時,則將Y0斜上側像素LT的重建值確定為Y0 預測值。
可選的,第六種預測模式具體指示的預測方式2可以是:基於待編碼塊中任一子塊內任一像素的上側像素、左側像素以及斜上方像素的重建值的均值,確定該任一像素的預測值。
繼續參考圖7f中的(a),以子塊a中的像素Y0為例,Y0的預測值可以是:(L0重建值+T0重建值+2*LT重建值)>>2。其中,(L0重建值+T0重建值+2*LT重建值)>>2表示對(L0重建值+T0重建值+2*LT重建值)的二進位值右移2位元後得到的值。
另一種可能的實現方式,第六種預測模式具體可以指示:將位元於待編碼塊中任一子塊內任一像素預測方向的上側像素、左側像素或斜上方像素的重建值,確定為該任一像素的預測值。其中,預測方向可以是該任一像素的左斜向45度方向,或者是右斜向45度方向,本發明實施例對此不作限定。
以第六種預測模式用於指示以圖7f中的(b)所示的子塊為單位,沿與該預測模式對應的預測順序依次對待編碼中的每個子塊進行預測為例,參考圖7f中的(b),假設上述任一個子塊為子塊b,且圖7f中的(b)所示的灰色方格為子塊b上側、左側以及斜上側相鄰的像素。以子塊b中的像素分別為Y0、Y1、Y2、Y3、Y4、Y5、Y6以及Y7,子塊b上側的像素包括為T0、T1、T2、T3、T4以及T5,子塊b左側的像素包括L0和L1,子塊b斜上側的像素為LT:
則當預測方向為待預測像素的左斜向45度方向時,第六種預測模式具體可以指示:將位於子塊b中Y0左斜向45度方向上的LT的重建值確定為Y0的預測值,將位於子塊b中Y1左斜向45度方向上的T0的重建值確定為Y1的預測值,將位於子塊b中Y2左斜向45度方向上的T1的重建值確定為Y2的預測值,將位於子塊b中Y3左斜向45度方向上的T2的重建值確定為Y3的預測值,將位於子塊b中Y4左斜向45度方向上的L0的重建值確定為Y4的預測值,將位於子塊b中Y5左斜向45度方向上的LT的重建值確定為Y5的預測值,將位於子塊b中Y6左斜向45度方向上的T0的重建值確定為Y6的預測值,以及,將位於子塊b中Y7左斜向45度方向上的T1的重建值確定為Y7的預測值。
當預測方向為待預測像素的右斜向45度方向時,第六種預測模式具體可以指示:將位於子塊b中Y0右斜向45度方向上的T1的重建值確定為Y0的預測值,將位於子塊b中Y1右斜向45度方向上的T2的重建值確定為Y1的預測值,將位於子塊b中Y2右斜向45度方向上的T3的重建值確定為Y2的預測值,將位於子塊b中Y3右斜向45度方向上的T4的重建值確定為Y3的預測值,將位於子塊b中Y4右斜向45度方向上的T2的重建值確定為Y4的預測值,將位於子塊b中Y5右斜向45度方向上的T3的重建值確定為Y5的預測值,將位於子塊b中Y6右斜向45度方向上的T4的重建值確定為Y6的預測值,以及,將位於子塊b中Y7右斜向45度方向上的T5的重建值確定為Y7的預測值。
可選的,在目標預測模式包括上述待解碼塊中每個子塊的預測模式的情況下,對於上述待解碼塊中第一子塊,第一子塊中包括第一像素和第二像素,則第一子塊的預測模式用於根據第一子塊周圍已重建的像素並行的對第一像素和第二像素進行預測。
其中,第一子塊為當前進行預測的待解碼塊中的子塊。例如,如圖7f中的(a)所示,解碼塊中每個子塊的大小為2×2,那麼,待解碼塊可以分為8個子塊,當開始對圖7f中的(a)所示的待編碼塊進行預測時,第一子塊為從左到右的第一個子塊,當第一個子塊中的像素完成重建後,可以開始對從左到右的第二個子塊中的像素進行重建,這時第一子塊為上述第二個子塊。第一子塊中包括的第一像素和第二像素可以為第一子塊中的互不重疊的兩組像素,第一像素或第二像素可以包括第一子塊中的一個或多個像素。例如,以圖7f中的(a)中的子塊a為例,一種情況下,子塊a中的第一像素可以包括Y0,子塊a中的第二像素可以包括Y1、Y2和Y3。另一種情況下,子塊a中的第一像素可以包括Y0和Y1,子塊a中的第二像素可以包括Y2和Y3。再一種情況下,子塊a中的第一像素可以包括Y1,子塊a中的第二像素可以包括Y2。
需要說明,當編碼端採用第六種預測模式對待編碼塊中的像素進行預測時,則在編碼端對待編碼塊對應的殘差塊或殘差係數塊進行編碼時,可以以圖7g所示軌跡指示的順序進行編碼。
至此,基於上述步驟S101-S104所述的編碼方法,編碼端在以目標預測模式對待編碼塊中的像素進行預測時,是以該目標預測模式對應的目標預測順序對待編碼塊中的像素進行預測的。在這一過程中,編碼端預測待編碼塊中的任一個像素時,用於預測該像素的像素均已完成重建。因此,本發明實施例提供的編碼方法按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素,可以並行預測待編碼塊中的部分像素,提高了預測待編碼塊中像素的效率,編碼端在基於預測值和殘差值重獲得重建值時,無需對上述殘差值進行緩存,因此本發明實施例提供的編碼方法不僅可以節約用於緩存殘差值的緩存空間,還能提高編碼效率。
此外,當目標預測模式指示以子塊為單位依次對待編碼塊中的每個子塊進行預測時,由於該預測模式下,編碼端在對一個子塊進行預測時,可以並行的基於該子塊周圍已重建的像素對該子塊內的多個像素進行預測,即這種預測模式能夠進一步提高編碼端預測待編碼塊的效率。進而,當編碼端在基於預測值和殘差值重獲得重建值時,編碼端無需對殘差值進行緩存,因此本發明實施例提供的編碼方法進一步的節約了緩存空間,並提高編碼效率。
如圖8所示,為本發明實施例提供的另一種圖像解碼方法的流程示意圖。圖8所示的方法包括如下步驟:
步驟S201、解碼端解析待解碼塊的碼流,以確定預測待解碼塊中像素的目標預測模式。
其中,待解碼塊的碼流可以是解碼端從編碼端接收到的碼流,或者是從其他設備獲取的碼流,例如從儲存設備獲取的碼流,本發明實施例對此不作限定。
其中,目標預測模式用於對待解碼塊中的像素進行預測,以得到待解碼塊中像素的預測值。可以理解,這裡的目標預測模式為編碼端在編碼時用於預測圖像塊中像素的預測模式。
具體的,解碼端可以藉由與編碼端對應的解碼方式,對待解碼塊的碼流進行解析,從而得到目標預測模式。
步驟S202、解碼端基於目標預測模式,確定與目標預測模式對應的目標預測順序。
其中,預測模式、與預測模式對應的預測順序的描述,可以參考上文中的描述,這裡不再贅述。
可選的,解碼端可以預置有多個預測模式及其對應的預測順序的對應關係。這樣,當解碼端確定預測模式為目標預測模式後,即可在預置的對應關係中確定出與目標預測模式對應的目標預測順序。
步驟S203、解碼端按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素,得到該每個像素的預測值。
這裡,基於預測模式,以與預測模式對應的預測順序預測待解碼塊中每個像素的說明,可以參考上文中對預測模式的詳細描述,這裡不再贅述。
步驟S204、解碼端基於待解碼塊中每個像素的預測值對該每個像素進行重建,從而得到待解碼塊的重建塊。
可選的,解碼端可以先藉由解析碼流,得到待解碼塊的殘差塊。然後,解碼端對該殘差塊進行反量化,從而得到重建的待解碼塊的殘差塊。這樣,解碼端可以基於上述得到的待解碼塊中像素的預測值和重建的殘差塊中的殘差值,得到待解碼塊的重建塊。
例如,解碼端可以先藉由圖5所示的碼流解析單元301解析待解碼塊的碼流,得到待解碼塊的殘差塊。然後,解碼端可以藉由圖5所示的反量化單元302對該殘差塊進行反量化,從而得到重建的待解碼塊的殘差塊。這樣,解碼端可以藉由重構單元305,並基於上述得到的待解碼塊中像素的預測值和重建的殘差塊中的殘差值,得到待解碼塊的重建塊。
可選的,解碼端可以先藉由解析碼流,得到待解碼塊的殘差係數塊。然後,解碼端對該殘差塊進行反量化,從而得到反量化的殘差係數塊。接著,解碼端對反量化後的殘差係數塊進行反變換,得到重建的待解碼塊的殘差塊。這樣,解碼端可以基於上述得到的待解碼塊中像素的預測值和重建的殘差塊中的殘差值,得到待解碼塊的重建塊。
例如,解碼端可以先藉由圖5所示的碼流解析單元301解析待解碼塊的碼流,得到待解碼塊的殘差係數塊。然後,解碼端可以藉由圖5所示的反量化單元302對該殘差係數塊進行反量化,從而得到反量化的殘差係數塊。接著,解碼端藉由圖5所示的殘差逆變換單元303對反量化後的殘差係數塊進行反變換,得到重建的待解碼塊的殘差塊。這樣,解碼端可以藉由重構單元305,並基於上述得到的待解碼塊中像素的預測值和重建的殘差塊中的殘差值,得到待解碼塊的重建塊。
其中,解碼端可以藉由與編碼端對應的解碼方式,對待解碼塊的碼流進行解析,從而得到待解碼塊的殘差塊或殘差係數塊。例如,解碼端解碼待解碼塊碼流的殘差掃描順序為上述預測待解碼塊中像素的目標預測順序。其中,目標預測順序與預測待解碼塊的目標預測模式對應。殘差掃描順序的相關說明可以參考上文,這裡不做贅述。
需要說明,圖8所示的圖像解碼方法與圖6c所示的圖像編碼方法對應,因此,該圖像解碼方法有助於提高預測待解碼塊的效率,在基於預測值和殘差值重構待解碼塊以得到待解碼塊的重建值時,能夠節約用於緩存殘差值的緩存空間,並能提高解碼效率。
需要說明,本發明實施例對待解碼塊的殘差塊或殘差係數塊進行反量化的方式不作具體限定,例如可以採用下述實施例二方案中描述的反量化方式對待解碼塊的殘差塊或殘差係數塊進行反量化,當然不限於此。
還需要說明,本發明實施例對解碼端解碼待解碼塊的碼流的方式不作具體限定,例如可以採用下述實施例三中描述的可變長的解碼方式進行解碼,當然不限於此。
實施例二
如圖9a所示,為本發明實施例提供的又一種圖像編碼方法的流程示意圖。圖9a所示的方法包括如下步驟:
步驟S301、編碼端確定待編碼塊的第二殘差塊和待編碼塊中每個像素的量化參數QP。
這裡,第二殘差塊可以是待編碼塊的原始殘差值塊,或者,第二殘差塊也可以是該原始殘差值塊經變換後得到的殘差係數塊。
其中,待編碼塊的原始殘差值塊即為編碼端基於待編碼塊的原始像素值和待編碼塊的預測塊得到的殘差塊。可以理解,編碼端對待編碼塊中的像素進行預測以得到預測塊的過程,可以基於實施例一中所述方法實現,當然也可以基於現有技術中任意能夠得到待編碼塊預測塊的方法得到,本發明實施例對此不作限定。殘差係數塊為編碼端對原始殘差值塊進行變換處理後得到的,本發明實施例對編碼端變換處理原始殘差值塊的過程不作具體限定。
為簡單描述,本發明實施例在下文中以第二殘差塊是待編碼塊的原始殘差值塊為例進行說明。
另外,編碼端在獲得待編碼塊的第二殘差塊之前或之後,還可以確定待編碼塊中每個像素的量化參數QP。例如,編碼端可以讀取預設的量化參數QP。這裡,本發明實施例對編碼端確定待編碼塊中每個像素的量化參數QP的具體過程不作限定。
步驟S302、編碼端基於待編碼塊中每個像素的QP和量化預設陣列,對第二殘差塊進行量化,得到第一殘差塊。
其中,量化預設陣列用於對第二殘差塊中的值進行量化處理。
第一種可能的實現方式中,上述量化預設陣列包括放大參數陣列和位移參數陣列,且放大參數陣列和位移參數陣列包括相同數量個數值。若以amp表示放大參數陣列中的放大參數,以shift表示位移參數陣列中的位移參數,則編碼端可以基於公式(1)對第二殘差塊中每個值進行量化處理:
公式(1)   量化後的殘差值=(量化前的殘差值×amp[QP])>> shift[QP]
其中,amp[QP]表示放大參數陣列中第QP個放大參數,shift[QP] 表示位移參數陣列中第QP個位移參數,(量化前的殘差值×amp[QP])>> shift[QP]表示對(量化前的殘差值×amp[QP])的二進位值右移shift[QP]位。
在本發明實施例中,對於放大參數陣列中的第i個放大參數的值amp[i]和位移參數陣列中的第i個位移參數的值shift[i]而言,2 shift[i]與amp[i]的商構成的反量化預設陣列具有以下規律:該反量化預設陣列中的第1至第n個數中相鄰的兩個數之間的間隔為1,該反量化預設陣列中的第n+1至第n+m個數中相鄰的兩個數之間的間隔為2,該反量化預設陣列中的第n+k*m+1至第n+k*m+m個數中相鄰兩個數之間的數值間隔為2 k+1。其中,n 、m為大於1的整數,i、k均為正整數。
其中,反量化預設陣列用於實現對量化後得到的第一殘差塊進行反量化處理,並且,反量化預設陣列實現的反量化運算與量化預設陣列實現的量化運算互逆。因此,基於具有上述規律的反量化預設陣列,可以反向確定出用於實現量化運算的放大參數陣列和位移參數陣列。
作為示例,假設以mult表示反量化預設陣列中的放大參數,且反量化預設陣列包括42個放大參數,以上述的n取值12,m取值6為例,則基於具有上述規律的反量化預設陣列可以為: mult(42)={ 1,    2,    3,    4,    5,    6, 7,    8,    9,    10,   11,   12, 14,   16,   18,   20,   22,   24, 28,   32,   36,   40,   44,   48, 56,   64,   72,   80,   88,   96, 112,  128,  144,  160,  176,  192, 224,  256,  288,  320,  352,  384} 則放大參數陣列可以為: amp[42] ={ 1, 2048, 2731, 2048, 3277, 2731, 2341, 2048, 3641, 3277, 2979, 2731, 2341, 2048, 3641, 3277, 2979, 2731, 2341, 2048, 3641, 3277, 2979, 2731, 2341, 2048, 3641, 3277, 2979, 2731, 2341, 2048, 3641, 3277, 2979, 2731, 2341, 2048, 3641, 3277, 2979, 2731} 位移參數陣列可以為: shift[42] = { 0, 12, 13, 13, 14, 14, 14, 14, 15, 15, 15, 15, 15, 15, 16, 16, 16, 16, 16, 16, 17, 17, 17, 17, 17, 17, 18, 18, 18, 18, 18, 18, 19, 19, 19, 19, 19, 19, 20, 20, 20, 20}
這樣,編碼端可以基於確定的待編碼塊中每個像素的QP,在上述放大參數陣列中確定該每個像素的放大參數,以及在上述的位移參數陣列確定該每個像素的位移參數。然後,編碼端基於待編碼塊中每個像素對應的放大參數和位移參數,對第二殘差塊進行量化運算,從而得到第一殘差塊。
例如,對於待編碼塊中任一像素而言,編碼端可以基於確定的該任一像素的QP,在上述放大參數陣列中查找,並將放大參數陣列中的第QP個值確定為該任一像素的放大參數,以及在上述的位移參數陣列中查找,並將位移參數陣列中的第QP個值確定該任一像素的位移參數。然後,編碼端基於該任一像素對應的放大參數和位移參數,並藉由上述的公式(1)對第二殘差塊中與該任一像素對應的殘差值進行量化運算,從而得到該任一像素對應的量化後的殘差值。當編碼端對第二殘差塊中的全部殘差值完成量化處理時,即得到第一殘差塊。
藉由該可能的實現方式,編碼端在對第二殘差塊中的殘差值進行量化處理時,最多需要進行6種乘法運算,相比現有技術,該方式大大減少了編碼端的計算量,即該方式大大節省了編碼端的計算資源。
第二種可能的實現方式中,相比上述第一種可能的實現方式,該實現方式中的量化預設陣列可以包括更少的數值。在該實現方式中,編碼端可以基於公式(2)實現對第二殘差塊中每個殘差值的量化處理:
公式(2)  量化後的殘差值=(量化前的殘差值× amp +offset)>> shift
其中,amp為編碼端基於待編碼塊中每個像素的QP和量化預設陣列確定出的該每個像素對應的放大參數,shift為編碼端基於待編碼塊中每個像素的QP和量化預設陣列確定出的該每個像素對應的位移參數。offset為偏移參數,用於實現量化後的殘差值能夠四捨五入取整,(量化前的殘差值× amp +offset)>> shift表示對(量化前的殘差值× amp +offset)的二進位值向右移位元shift位。
具體的,編碼端確定出的待編碼塊中每個像素對應的放大參數amp的值為該每個像素的QP與7按位與後的值在量化預設陣列中對應的值,編碼端確定出的待編碼塊中每個像素對應的位移參數shift的值為7與該每個像素的QP除以2 3的商的加和值。
也即,假設以quant_scal表示量化預設陣列中的值,則放大參數amp可以藉由 quant_scale[QP & 0x07]計算得到,位移參數shift可以藉由7+ (QP >> 3) 計算得到。其中,[QP & 0x07]表示QP的二進位值與7按位元與(相當於QP除以8取餘的數學效果),quant_scale[QP & 0x07]即為量化預設陣列中的第QP & 0x07個數值。QP >> 3表示對QP的二進位值向右移位元3位。
另外,offset可以藉由1 << (shift - 1) 計算得到,1 << (shift - 1) 表示對1的二進位值向左移位元(shift - 1)(數學上的效果為1乘以2的(shift - 1) 次方)。
在本發明實施例中,當編碼端以公式(2)實現第二殘差塊的量化處理時,量化預設陣列可以是:quant_scal[8] = {128, 140, 153, 166, 182, 197, 216, 234}。
這樣,編碼端基於確定的待編碼塊中每個像素的QP和量化預設陣列,計算得到該每個像素對應的放大參數和位移參數。然後,編碼端基於計算得到的待編碼塊中每個像素的放大參數、位移參數以及偏移參數,並藉由公式(2)實現對第二殘差塊的量化,從而得到第一殘差塊。
可以看出,藉由該可能的實現方式,編碼端在對第二殘差塊中的殘差值進行量化處理時,最多需要進行8種乘法運算。相比現有技術,該方式大大減少了編碼端的計算量,即該方式大大節省了編碼端的計算資源。
第三種可能的實現方式中,編碼端可以藉由公式(3)實現對第二殘差塊中每個殘差值的量化處理:
公式(3)  量化後的殘差值=(量化前的殘差值+offset)>> shift
其中,shift表示位移參數,shift的取值為與QP相關、且為單調不遞減的整數。或者可以理解為,在QP遞增的情況下,shift與QP一一對應,且shift的取值為單調不遞減的整數。offset的說明可以參考上文,這裡不再贅述。並且,offset可以藉由 (shift == 0) ? 0 : (1 << (shift - 1))確定,具體為:當shift取值為0時,offset取值為0,當shift取值不為0,則offset取值為(1 << (shift - 1)) (即為對1的二進位值左移(shift - 1)位後得到的值)。
這樣,編碼端基於確定的待編碼塊中每個像素的QP即可確定出該每個像素的位移參數,並進一步確定出對應的偏移參數。然後,編碼端即可基於確定出的待編碼塊中每個像素的位移參數和偏移參數,並藉由公式(3)實現對第二殘差塊的量化,從而得到第一殘差塊。
可以看出,藉由該可能的實現方式,編碼端在對第二殘差塊中的殘差值進行量化處理時,無需進行乘法運算。相比現有技術,在對量化細微性要求不高的編碼場景中,該方式大大減少了編碼端的計算量,即該方式大大節省了編碼端的計算資源。
步驟S303、編碼端編碼第一殘差塊,得到待編碼塊的碼流。
編碼端在得到第一殘差塊後,對其進行編碼,從而得到待編碼塊經編碼的碼流。
可選的,編碼端將上述對第二殘差塊進行量化時的每個像素對應的QP,以及具體採用的量化方式作為待編碼塊的語義元素,並對該語義元素進行編碼。編碼端還可以將編碼後的語義元素數據添加至待編碼塊經編碼的碼流中。
可選的,編碼端編碼第一殘差塊的殘差掃描順序,可以為編碼端預測待編碼塊中像素的目標預測順序。其中,目標預測順序與預測待解碼塊的目標預測模式對應。目標預測模式和目標預測順序的相關說明可以參考上文,這裡不做贅述。
需要說明,本發明實施例對待編碼塊進行預測的具體模式不作具體限定,例如可以採用上文實施例一方案中描述的預測模式對待編碼塊進行預測,當然不限於此。
還需要說明,本發明實施例對編碼端編碼第一殘差塊以及相關的語義元素的具體編碼方式不作具體限定,例如可以採用實施例三中描述的可變長的編碼方式進行編碼。
藉由上述的步驟S301-S303所述的圖像編碼方法,由於在圖像編碼過程中採用了能夠節省編碼端計算資源的量化處理方式,即該圖像編碼方法中的量化處理過程的效率被大大提高,進而該圖像編碼方法大大提高了圖像的編碼效率。
如圖9b所示,為本發明實施例提供的又一種圖像解碼方法的流程示意圖。圖9b所示的方法包括如下步驟:
步驟S401、解碼端解析待解碼塊的碼流,得到待解碼塊中每個像素的反量化參數和待解碼塊的第一殘差塊。
其中,待解碼塊的碼流可以是解碼端從編碼端接收到的碼流,或者是從其他設備獲取的碼流,例如從儲存設備獲取的碼流,本發明實施例對此不作限定。
其中,反量化參數用於指示解碼端採用與該反量化參數對應的反量化方式對第一殘差塊中的殘差值進行反量化處理。反量化參數中可以包括量化參數QP。
具體的,解碼端可以藉由與編碼端對應的解碼方式,對待解碼塊的碼流進行解析,從而得到待解碼塊中每個像素的反量化參數和待解碼塊的第一殘差塊。
例如,解碼端解碼待解碼塊碼流的殘差掃描順序為預測待解碼塊中像素的目標預測順序。其中,目標預測順序與預測待解碼塊的目標預測模式對應。目標預測模式和目標預測順序的相關說明可以參考上文,這裡不做贅述。
可選的,解碼端可以採用可變碼長的解碼方式解析待解碼塊的碼流,以得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL和第一殘差塊。其中,解碼端採用可變碼長的解碼方式解析待解碼塊的碼流,得到待解碼塊對應的殘差塊中每個值的CL的過程,可以參考下文步驟S601的描述。解碼端基於CL確定第一殘差塊的說明,可以參考步驟S602的描述,這裡不再贅述。
步驟S401的其它可能的實現方式將在下文進行說明,這裡暫不贅述。
步驟S402、解碼端基於待解碼塊中每個像素的反量化參數所指示的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊。
第一種可能的實現方式,當解碼端基於待解碼塊中每個像素的反量化參數,確定對第一殘差塊的反量化方式與上述步驟S302中第一種可能的實現方式中描述的量化方式互逆,則反量化預設陣列的說明可以參見上文步驟S302中反量化預設陣列的相關說明,這裡不做贅述。
這種情況下,解碼端可以基於待解碼塊中每個像素的QP,在反量化預設陣列中確定該每個像素對應的放大係數。然後,解碼端可以基於該每個像素對應的放大係數,對第一殘差塊進行反量化處理,從而得到第二殘差塊。
例如,對於待解碼塊中任一像素而言,解碼端可以基於該任一像素的QP,在上述反量化預設陣列中查找,並將反量化預設陣列中的第QP個值確定為該任一像素的放大係數。然後,解碼端基於該任一像素對應的放大係數,對第一殘差塊中與該任一像素對應的殘差值進行乘法運算,從而得到該任一像素對應的反量化後的殘差值。當解碼端對第一殘差塊中的全部殘差值完成反量化處理,即得到第二殘差塊。
可選的,解碼端還可以在確定待解碼塊中每個像素對應的放大係數後,藉由對該每個像素對應的第一殘差塊中的殘差值做向左移位處理,以實現對殘差值和與該殘差值對應的放大係數的乘法運算,本發明實施例對比不作具體限定。
第二種可能的實現方式,當解碼端基於待解碼塊中每個像素的反量化參數,確定對第一殘差塊的反量化方式與上述步驟S302中第二種可能的實現方式中描述的量化方式互逆,則解碼端可以基於上述公式(2)實現對第一殘差塊中每個殘差值的反量化處理,以得到第二殘差塊。
這種情況下,公式(2)中的放大參數mult(和上文量化處理時的amp區分)可以藉由dequant_scale[QP & 0x07]計算得到,dequant_scale[QP & 0x07] 即為反量化預設陣列中的第QP & 0x07個數值。公式(2)中的位移參數shift可以藉由7- (QP >> 3) 計算得到。公式(2)中的偏移參數offset可以藉由 (shift == 0) ? 0 : (1 << (shift - 1))計算得到。
在本發明實施例中,當解碼端以公式(2)實現第一殘差塊的反量化處理時,反量化預設陣列可以是:dequant_scal[8] = {128, 117, 107, 99, 90, 83, 76, 70}。
這樣,解碼端基於待解碼塊中每個像素的QP和反量化預設陣列,計算得到該每個像素對應的放大參數和位移參數。然後,解碼端即可基於計算得到的待解碼塊中每個像素的放大參數、位移參數以及偏移參數,並藉由公式(2)實現對第一殘差塊的反量化,從而得到第二殘差塊。
可以看出,藉由該可能的實現方式,解碼端在對第一殘差塊中的殘差值進行反量化處理時,最多需要進行8種乘法運算。相比現有技術,該方式大大減少了解碼端的計算量,即該方式大大節省了解碼端的計算資源。
第三種可能的實現方式,當解碼端基於待解碼塊中每個像素的反量化參數,確定對第一殘差塊的反量化方式與上述步驟S302中第三種可能的實現方式中描述的量化方式互逆,則解碼端可以基於公式(4)實現對第一殘差塊中每個殘差值的反量化處理,以得到第一殘差塊:
公式(4)反量化後的殘差值=(反量化前的殘差值+offset)<<shift
其中,偏移參數offset和位移參數shift的描述均可以參考步驟S302中第三種可能的實現方式中的描述,這裡不再贅述。
這樣,解碼端基於待解碼塊中每個像素的QP即可確定出該每個像素的位移參數,並進一步確定出對應的偏移參數。然後,解碼端即可基於確定出的待解碼塊中每個像素的位移參數和偏移參數,並藉由公式(4)實現對第一殘差塊的反量化,從而得到第二殘差塊。
可以看出,藉由該可能的實現方式,解碼端在對第一殘差塊中的殘差值進行反量化處理時,無需進行乘法運算。相比現有技術,在對量化細微性要求不高的編碼場景中,該方式大大減少了解碼端的計算量,即該方式大大節省了解碼端的計算資源。
需要說明的是,上述幾種可能的實現方式中的反量化方式,可以應用於編碼端對圖像進行編碼的過程中(例如獲得用於預測圖像塊中像素的重建塊),也可以應用於解碼端對圖像數據進行解碼的過程中,本發明實施例對此不作限定。
步驟S403、解碼端基於第二殘差塊對待解碼塊進行重建,得到重建塊。
可選的,解碼端可以直接對第二殘差塊進行重建,得到待解碼塊的重建塊。具體的,解碼端可以直接根據第二殘差塊以及待解碼塊的預測塊對待解碼塊進行重建,得到待解碼塊的重建塊。例如,解碼端可以藉由對第二殘差塊和待解碼塊的預測塊求和,從而得到待解碼塊的重建塊。
其中,待解碼塊的預測塊可以是解碼端基於預測模式對待解碼塊進行預測得到的。可選的,該預測模式可以是藉由解析待解碼塊的碼流得到的,例如,可以是上述實施例一中的任一種預測模式,或者,該預測模式可以是現有技術中任意的預測模式,本發明實施例對此不作限定。此外,這裡對解碼端預測待解碼塊的預測塊的過程不做詳述。
可選的,解碼端可以按照目標預測模式,以與目標預測模式對應的目標預測順序預測待解碼塊中的每個像素。解碼端基於每個像素的預測值和第二殘差塊對待解碼塊進行重建,得到重建塊。
可選的,解碼端可以先對第二殘差塊進行反變換,以重建待解碼塊的殘差值塊。這種情況下,第二殘差塊實際為殘差係數塊。然後,解碼端可以根據重建的殘差值塊和待解碼塊的預測塊對待解碼塊進行重建,得到待解碼塊的重建塊。例如,解碼端可以藉由對重建的殘差值塊和待解碼塊的預測塊求和,從而得到待解碼塊的重建塊。
其中,待解碼塊的預測塊的說明可以參考上文,不再贅述。此外,本發明實施例中,解碼端對第二殘差塊進行反變換處理的過程不做詳述。
需要說明,圖9b所示的圖像解碼方法與圖9a所示的圖像編碼方法對應,基於上述步驟S401-S403所述的圖像解碼方法,由於在圖像解碼過程中採用了能夠節省解碼端計算資源的反量化處理方式,即該圖像解碼方法中的反量化處理過程的效率被大大提高,進而該圖像解碼方法大大提高了圖像的解碼效率。
還需要說明,本發明實施例對待解碼塊進行預測的具體模式不作具體限定,例如可以採用上文實施例一方案中描述的預測模式對待解碼塊進行預測,當然不限於此。
還需要說明,本發明實施例對解碼端解碼待解碼塊的碼流的方式不作具體限定,例如可以採用下述實施例三中描述的可變長的解碼方式進行解碼,當然不限於此。
下面對步驟S401的可能的實現方式進行說明。
可選的,解碼端基於待解碼塊的碼流確定預測待解碼塊中像素的目標預測模式和待解碼塊中每個像素的反量化參數。解碼端基於目標預測模式,確定與目標預測模式對應的殘差掃描順序。解碼端基於殘差掃描順序解析待解碼塊的碼流,得到第一殘差塊。
其中,當目標預測模式為第一目標預測模式時,殘差掃描順序為第一掃描順序,當目標預測模式為第二目標預測模式時,殘差掃描順序為第二掃描順序,第一掃描順序和第二掃描順序不同。
上述第一掃描順序或第二掃描順序為殘差掃描順序的一種,第一掃描順序或第二掃描順序和上述的目標預測模式對應。例如,第一掃描順序與第一目標預測模式對應,第二掃描順序與第二目標預測模式對應。可選的,殘差掃描順序可以和上述的目標預測順序可以相同。上述第一掃描順序和第二掃描順序用於表徵在不同目標預測模式下的兩種不同的掃描順序。
例如,當待解碼塊是16×2大小的圖像塊時,如果第一目標預測模式是上文表1所示的預測模式,則第一掃描順序可以是圖7a所示預設軌跡指示的順序。如果第二目標預測模式是上文表2所示的預測模式,則第二掃描順序可以是圖7b所示預設軌跡指示的順序。
再例如,如果第一目標預測模式是上文表3-1所示的預測模式,則第一掃描順序可以是圖7c-1所示預設軌跡指示的順序。如果第二目標預測模式是上文表4-1所示的預測模式,則第二掃描順序可以是圖7d-1所示預設軌跡指示的順序。
可見,在不同的預測模式下確定與目標預測模式對應的殘差掃描順序也不同。
可選的,在上述步驟S401的可能的實現方式的基礎上,解碼端還可以在確定目標預測模式的情況下,對於尺寸為第一尺寸的待解碼塊,在目標預測模式下採用第三掃描順序解析待解碼塊的碼流;對於尺寸為第二尺寸的待解碼塊,在目標預測模式下採用第四掃描順序解析待解碼塊的碼流。
其中,所述第三掃描順序和所述第四掃描順序不同。第三掃描順序和第四掃描順序為殘差掃描順序的一種。
另外,第一掃描順序表徵的殘差掃描順序可以與第三掃描順序或第四掃描順序表徵的殘差掃描順序相同,也可以不同。同理,第二掃描順序表徵的殘差掃描順序可以與第三掃描順序或第四掃描順序表徵的殘差掃描順序相同,也可以不同。本發明實施例不對此進行限定。
下面以第一尺寸為8×1、第二尺寸為8×2為例對上述可選的實現方式進行說明。
例如,當目標預測模式為上文表3-2所示或上文表5所表徵的預測模式時,如果解碼塊為第一尺寸,則殘差掃描順序可以是第三掃描順序,如圖7e所示的掃描順序,如果解碼塊為第二尺寸,則殘差掃描順序可以是第四掃描順序,如圖7c-2所示的掃描順序。其中,上文表3-2和上文表5所示的預測模式可以表徵同一種目標預測模式在不同尺寸下的兩種預測模式。
又例如,當目標預測模式為上文表4-2所示或上文表4-3所表徵的預測模式時,如果解碼塊為第一尺寸,則殘差掃描順序可以是第三掃描順序,如圖7d-3所示的掃描順序,如果解碼塊為第二尺寸,則殘差掃描順序可以是第四掃描順序,如圖7d-2所示的掃描順序。其中,上文表4-2和上文表4-3所示的預測模式可以表徵同一種目標預測模式在不同尺寸下的兩種預測模式。
實施例三
如圖10a所示,為本發明實施例提供的又一種圖像編碼方法的流程示意圖。圖10a所示的方法包括如下步驟:
步驟S501、編碼端確定待編碼塊對應的殘差塊。
這裡,該殘差塊可以是待編碼塊的原始殘差值塊,或者,該殘差塊也可以是該原始殘差值塊經變換後得到的殘差係數塊,或者,該殘差塊也可以是編碼端對該殘差係數塊進行量化後得到的經量化的殘差塊,對此不作限定。
其中,待編碼塊的原始殘差值塊即為編碼端基於待編碼塊的原始像素值和待編碼塊的預測塊得到殘差塊。
可以理解,編碼端對待編碼塊中的像素進行預測以得到預測塊的過程,可以基於實施例一中所述方法實現,當然也可以基於現有技術中任意能夠得到待編碼塊預測塊的方法得到,本發明實施例對此不作限定。
殘差係數塊為編碼端對原始殘差值塊進行變換處理後得到的,本發明實施例對編碼端變換處理原始殘差值塊的過程不作具體限定。
編碼端對殘差係數塊進行量化後得到經量化的殘差塊的過程,可以基於實施例二中所述的方法實現,當然也可以基於現有技術中任意能夠實現對殘差塊進行量化的方法得到,本發明實施例對此不作限定。
為簡單描述,本發明實施例在下文中以殘差塊是待編碼塊的殘差係數塊為例進行說明。
步驟S502、編碼端採用可變碼長的編碼方式對待編碼塊的殘差塊進行編碼,以得到待編碼塊的碼流。
可選的,上述的可變碼長的編碼方式可以包括可變換階數的指數哥倫布編碼方式。這樣,編碼端可以先確定出待編碼塊中每個像素的屬性類型。對於待編碼塊的殘差塊中與待編碼塊中第三像素對應的第一值而言,編碼端可以基於預設策略和第三像素的屬性類型,確定用於編碼第一值時的目標階數。然後,編碼端可以採用目標階數的指數哥倫布編碼演算法對待編碼塊的殘差塊中的第一值進行編碼。當編碼端對待編碼塊的殘差塊中的每個值進行編碼,即得到待編碼塊經編碼的碼流。其中,編碼端可以預置有上述預測策略,該預測策略用於指示用於編碼不同屬性類型的像素對應殘差值時的階數。其中,第三像素表徵待編碼塊中的至少一個像素。
應理解,不同階數的指數哥倫布編碼方式的編碼規則不同。參考表6,表6示出了階數k取不同值時指數哥倫布編碼方式的編碼規則(包括碼字結構及對應的編碼範圍)。如表6所示,表6所示的碼字結構中的X可以為0或1。
表6
階數 碼字結構 編碼範圍 階數 碼字結構 編碼範圍
K = 0 1 0 K = 2 1XX 0~3
01X 1~2 01XXX 4~11
001XX 3~6 01XXXX 12~27
0001XXXX 7~14 01XXXXX 28~59
... ... ... ...
K = 1 1X 0~1 K = 3 1XXX 0~7
01XX 2~5 01XXXX 8~23
001XXX 6~13 001XXXXX 24~55
0001XXXX 14~29 0001XXXXXX 56~119
... ... ... ...
這樣,對於待編碼塊的殘差塊中與待編碼塊的第三像素對應的第一值而言,當編碼端基於預設策略和第三像素的屬性類型,確定出用於編碼上述第一值時的目標階數。然後,編碼端可以基於目標階數的指數哥倫布編碼演算法以及第一值的大小,確定用於編碼第一值的碼字結構,並以該碼字結構編碼第一值。類似的,當編碼端對待編碼塊的殘差塊中的每個值進行編碼,即得到待編碼塊經編碼的碼流。
例如,當編碼端基於預設策略和第三像素的屬性類型,確定出編碼第三像素對應的第一值時的目標階數為0。假設第一值的取值為2,則如表6所示,第一值屬於編碼範圍1~2,則編碼端可以基於0階的指數哥倫布編碼演算法以及第一值的大小,確定用於編碼第一值的碼字結構為011(即編碼範圍1~2對應的碼字結構01X)。這樣,編碼端即可以以011編碼第一值。假設第一值的取值為7,則如表6所示,第一值屬於編碼範圍7~14,則編碼端可以基於0階的指數哥倫布編碼演算法以及第一值的大小,確定用於編碼第一值的碼字結構為00010000(即編碼範圍7~14對應的碼字結構0001XXXX)。這樣,編碼端即可以以00010000編碼第一值。當編碼端對待編碼塊的殘差塊中的每個值進行編碼,即得到待編碼塊經編碼的碼流。
可選的,上述的可變碼長的編碼方式還可以包括預設階數的指數哥倫布編碼方式。其中,該預設階數可以是編碼端預先設置的值,例如是0或1(即上述K的取值可以是預設的0或1),本發明實施例對此不作限定。
由表6可以看出,當編碼端預先指定指數哥倫布編碼方式的階數值(即K值),也可以實現對殘差塊中的殘差值(或殘差係數塊中的殘差係數值)的變長編碼。
應理解,編碼端在對待編碼塊的殘差塊編碼後,還可以確定該殘差塊對應的語義元素,例如,該語義元素包括編碼該殘差塊中每個值的編碼碼長(codelength,CL)。
可選的,編碼端可以採用上述的可變換階數的指數哥倫布編碼演算法對CL進行編碼,以實現節省位元的目的,進而實現了在提高圖像編碼的壓縮率的同時,提高編碼效率的目的。
例如,對於待編碼塊的殘差塊中的任一值,編碼端可以基於該任一值的CL確定編碼該CL時的目標階數。然後,編碼端可以採用目標階數的指數哥倫布編碼演算法對該CL進行編碼,並將編碼後的數據添加至待編碼塊經編碼的碼流。
可以看出,當編碼端藉由可變換階數的指數哥倫布編碼演算法對待編碼塊的殘差塊(或殘差塊中殘差值的CL)進行編碼,可以自我調整的用較少的位元編碼較小的殘差值(或CL值),從而可以達到節省位元的目的。也就是,在提高圖像編碼的壓縮率的同時,本發明實施例提供的方法還提高了編碼效率。
可選的,編碼端也可以採用定長編碼和截斷一元碼來編碼待編碼塊的殘差塊中每個值的CL。例如,對於待編碼塊的殘差塊中的任一值,編碼端可以採用定長編碼或截斷一元碼對該該任一值的CL進行編碼。
具體的,當上述任一值的CL小於等於閾值,則編碼端採用預設數量個位元對該任一值的CL進行定長編碼,並將編碼後的數據添加至待編碼塊的碼流。當上述任一值的CL大於前述閾值,則編碼端採用截斷一元碼編碼該任一值的CL,並將編碼後的數據添加至待編碼塊的碼流。其中,本發明實施例對該閾值的具體取值不作限定。
作為示例,以該閾值的取值為2為例,如表7所示,表7示出了編碼端對小於等於2的CL值採用2位元進行定長編碼得到的碼字,表7還示出了編碼端對大於2的CL值採用截斷一元碼編碼得到的碼字。其中,若以CLmax表示最大的CL值,則對於大於2的CL值,CLmax的碼字中包括CLmax-1個1,CLmax-1的碼字包括CLmax-2個1和1個0,…,CLmax-j的碼字包括CLmax-j-1個1和1個0,其中,j是正整數。
表7
CL值 碼字
0 00
1 01
2 10
3 110
4 1110
5 11110
6 111110
CLmax-1 11…110
CLmax 11…111
可以理解,編碼端也可以採用定長編碼和截斷一元碼來編碼待編碼塊的殘差塊中每個值,具體可以參考編碼端採用定長編碼或截斷一元碼來編碼待編碼塊的殘差塊中每個值的CL的描述,不再贅述。
可以看出,當編碼端採用定長編碼和截斷一元碼來編碼CL(或殘差值),可以自我調整的用較少的位元編碼較小的CL值(或殘差值),從而可以達到節省位元的目的。也就是,在提高圖像編碼的壓縮率的同時,還提高了編碼效率。
如圖10b所示,圖10b為本發明實施例提供的又一種圖像解碼方法的流程示意圖。圖10b所示的方法包括如下步驟:
步驟S601、解碼端採用可變碼長的解碼方式解析待解碼塊的碼流,得到待解碼塊對應的殘差塊中每個值的CL。
可選的,上述可變碼長的解碼方式可以是可變換階數的指數哥倫布解碼方式。解碼端可以先從碼流中解析出用於解碼待解碼塊的碼流的目標階數,然後採用目標階數的指數哥倫布解碼演算法解析待解碼塊的碼流,從而得到待解碼塊的殘差塊中每個值的CL。
其中,可變換階數的指數哥倫布解碼方式可以參考上文中可變換階數的指數哥倫布編碼方式的描述。可以理解,解碼為編碼的逆運算,不再贅述。
可選的,上述可變碼長的解碼方式可以是預設階數的指數哥倫布解碼方式。這種情況下,解碼端可以採用該預設階數的指數哥倫布解碼演算法解析待解碼塊的碼流,從而得到待解碼塊的殘差塊中每個值的CL。
可選的,當碼流中用於編碼待解碼塊的殘差塊中任一值CL的位元數量為預設數量時,解碼端還可以基於定長解碼策略解析待解碼塊的碼流,以得到編碼該待解碼塊的殘差塊中任一值的CL。以及,當碼流中用於編碼待解碼塊的殘差塊中任一值CL的位元數量大於預設數量時,解碼端可以基於截斷一元碼的規則解析待解碼塊的碼流,以得到編碼該任一值的CL。其中,具體描述可以參考上文中編碼端以定長編碼和截斷一元碼編碼CL的說明。可以理解,解碼為編碼的逆運算,不再贅述。
步驟S602、解碼端基於上述獲得的CL確定待解碼塊的殘差塊。
編碼端確定待解碼塊的殘差塊中每個值的CL後,即確定了用於編碼該殘差塊中每個值的位元數。這樣,解碼端即可基於編碼該每個值的CL,在待解碼塊的碼流中確定與待解碼塊中每個像素對應的位元組,並確定用於解析每個位元組的目標階數。
一種可能的情況下,解碼端可以在解析出待解碼塊的殘差塊中每個值的CL後,先確定待解碼塊中每個像素的屬性類型。然後,對於與待解碼塊中第三像素對應的第一位元組而言,解碼端可以基於預設策略和第三像素的屬性類型,確定用於解析第一位元組的目標階數。另一種可能的情況下,解碼端預置有與待解碼塊中每個像素對應的位元組的預設階數,則解碼端將與待解碼塊中每個像素對應的位元組的預設階數確定為每個位元組的目標階數。例如,像素的屬性類型可以包括:像素是否有符號、像素的位元數訊息以及像素的格式訊息等。
然後,解碼端採用目標階數的指數哥倫布解碼演算法對與待解碼塊中每個像素對應位元組進行解析,即可得到該每個像素的殘差值,從而得到待解碼塊的殘差塊。
可以理解,解碼端根據待解碼塊的碼流解析得到殘差塊中殘差值的順序,和編碼端編碼殘差塊中殘差值的順序相同。
步驟S603、解碼端基於待解碼塊的殘差塊對待解碼塊進行重建,得到重建塊。
可選的,當待解碼塊的殘差塊為殘差係數塊時,解碼端可以對待解碼塊的殘差塊依次進行反量化和反變換,以得到重建的待解碼塊的殘差值塊。然後,解碼端可以基於重建的殘差值塊對待解碼塊進行重建,從而得到重建塊。例如,解碼端可以藉由對重建的殘差值塊和待解碼塊的預測塊求和,從而得到待解碼塊的重建塊。
可選的,當待解碼塊的殘差塊為殘差值塊時,解碼端可以對待解碼塊的殘差塊進行反量化,以得到重建的待解碼塊的殘差值塊。然後,解碼端可以基於重建的殘差值塊對待解碼塊進行重建,從而得到重建塊。例如,解碼端可以藉由對重建的殘差值塊和待解碼塊的預測塊求和,從而得到待解碼塊的重建塊。
可選的,解碼端還可以基於待解碼塊的碼流,確定用於預測待解碼塊中像素的目標預測模式。解碼端基於目標預測模式,確定與目標預測模式對應的目標預測順序。解碼端按照目標預測模式,以目標預測順序預測待解碼塊中的每個像素。解碼端基於待解碼塊中的每個像素的預測值和殘差塊對待解碼塊進行重建,得到重建塊。具體的,上述可選的實現方式的具體內容可以參考實施例一的描述,這裡不再贅述。
其中,上述的待解碼塊的預測塊可以是基於預測模式對待解碼塊進行預測得到的,其中,上述預測模式可以是解碼端基於解析待解碼塊的碼流得到的。可選的,該預測模式可以是實施例一中的任一種預測模式,或者,該預測模式可以是現有技術中任意的預測模式,本發明實施例對此不作限定。此外,這裡對解碼端預測待解碼塊的預測塊的過程不做詳述。
其中,解碼端對待解碼塊的殘差塊進行反量化的過程,可以基於解析待解碼塊的碼流得到的待解碼塊中每個像素的反量化參數和反量化預設陣列,對上述殘差塊進行反量化。具體的,可以基於實施例二中的方法實現,當然也可以基於現有技術中任意能夠實現對殘差塊進行反量化的方法得到,本發明實施例對此不作限定。
需要說明,圖10b所示的圖像解碼方法與圖10a所示的圖像編碼方法對應,因此該方法可以在提高圖像編碼的壓縮率的同時,提高解碼效率。
還需說明,實施例三提供的可變長的編/解碼方式也可以應用於實施例一和實施例二,或者應用於任意需要進行圖像編/解碼的場景中,本發明實施例對此不作限定。
可以理解的是,為了實現上述實施例中功能,編碼端/解碼端包括了執行各個功能相應的硬體結構和/或軟體模組。本領域技術人員應該很容易意識到,結合本發明中所公開的實施例描述的各示例的單元及方法步驟,本發明能夠以硬體或硬體和電腦軟體相結合的形式來實現。某個功能究竟以硬體還是電腦軟體驅動硬體的方式來執行,取決於技術方案的特定應用場景和設計約束條件。
以下,說明本發明實施例提供的解碼裝置和編碼裝置。
在一個示例中,本發明實施例提供的任一種解碼裝置均可以是圖1中的目的設備12或解碼器122。在另一個示例中,以下提供的任一種編碼裝置均可以是圖1中的源設備11或編碼器112。此處統一說明,下文不再贅述。
圖11為本發明提供的一種解碼裝置1100的結構示意圖,上述任一種解碼方法實施例都可以由該解碼裝置1100執行。該解碼裝置1100包括解析單元1101、確定單元1102、預測單元1103以及重建單元1104。其中,解析單元1101,用於解析待解碼塊的碼流,以確定預測待解碼塊中像素的目標預測模式。確定單元1102,用於基於該目標預測模式,確定與該目標預測模式對應的目標預測順序。預測單元1103,用於按照確定的目標預測模式,以與該目標預測模式對應的目標預測順序預測待解碼塊中的每個像素。重建單元1104,用於基於待解碼塊中的每個像素的預測值對該每個像素進行重建,從而得到待解碼塊的重建塊。
在一個示例中,解析單元1101可以藉由圖5中的碼流解析單元301實現。確定單元1102和預測單元1103可以藉由圖5中的預測處理單元304實現,重建單元1104可以藉由圖5中的重構單元305實現。圖5中的經編碼位元流可以是本發明實施例中的待解碼塊的碼流。
有關上述解析單元1101、確定單元1102、預測單元1103和重建單元1104更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
一種可能的設計中,預測單元1103具體用於在以目標預測順序預測待解碼塊中的任一像素時,用於預測任一像素的像素已完成重建。
另一種可能的設計中,若目標預測模式指示以目標預測順序逐點預測待解碼塊中的每個像素,則預測單元1103具體用於按照目標預測模式,沿目標預測順序指示的方向逐點預測待解碼塊中的每個像素;其中,當目標預測模式為第一目標預測模式時,目標預測順序為第一預測順序,當目標預測模式為第二目標預測模式時,目標預測順序為第二預測順序,第一預測順序和第二預測順序不同。
再一種可能的設計中,對於尺寸為第一尺寸的待解碼塊,預測單元1103具體用於在目標預測模式下採用第三預測順序對待解碼塊進行預測;對於尺寸為第二尺寸的待解碼塊,預測單元1103具體用於在目標預測模式下採用第四預測順序對待解碼塊進行預測;其中,第三預測順序和第四預測順序不同。
又一種可能的設計中,若目標預測模式指示以待解碼塊中具有預設大小的子塊為單位依次預測待解碼塊中每個子塊的像素,則預測單元1103具體用於按照目標預測模式,沿目標預測順序指示的方向依次預測待解碼塊中每個子塊中的像素。
又一種可能的設計中,目標預測模式包括待解碼塊中每個子塊的預測模式,對於待解碼塊中第一子塊,第一子塊中包括第一像素和第二像素,則第一子塊的預測模式用於根據第一子塊周圍已重建的像素並行的對第一像素和第二像素進行預測。
又一種可能的設計中,重建單元1104包括:反量化子單元和重建子單元。其中,反量化子單元,用於基於解析待解碼塊的碼流得到的待解碼塊中每個像素的反量化參數和反量化預設陣列,對解析待解碼塊的碼流得到的待解碼塊的第一殘差塊進行反量化,得到第二殘差塊。重建子單元,用於基於每個像素的預測值和第二殘差塊對每個像素進行重建,得到重建塊。
又一種可能的設計中,上述反量化子單元,具體用於採用可變碼長的解碼方式解析待解碼塊的碼流,以得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL和第一殘差塊。
有關上述可能的設計的更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
圖12為本發明提供的一種編碼裝置1200的結構示意圖,上述任一種編碼方法實施例都可以由該編碼裝置1200執行。該編碼裝置1200包括確定單元1201、預測單元1202以及編碼單元1203。其中,確定單元1201,用於確定待編碼塊的目標預測模式,以及確定與目標預測模式對應的目標預測順序。預測單元1202,用於按照目標預測模式,以目標預測順序預測待編碼塊中的每個像素。確定單元1201,還用於基於該每個像素的預測值確定待編碼塊的殘差塊。編碼單元1203,用於以目標預測順序編碼殘差塊,以得到待編碼塊的碼流。
在一個示例中,確定單元1201和預測單元1202可以藉由圖2中的預測處理單元201實現。確定單元1201還可以藉由圖2中的殘差計算單元202實現。編碼單元1203可以藉由圖2中的編碼單元205實現。圖2中的待編碼塊可以是本發明實施例中的待編碼塊。
有關上述確定單元1201、預測單元1202和編碼單元1203更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
圖13為本發明提供的一種解碼裝置1300的結構示意圖,上述任一種解碼方法實施例都可以由該解碼裝置1300執行。該解碼裝置1300包括解析單元1301、反量化單元1302以及重建單元1303。其中,解析單元1301,用於解析待解碼塊的碼流,得到待解碼塊中每個像素的反量化參數和待解碼塊的第一殘差塊。反量化單元1302,用於基於該每個像素的反量化參數指示的QP和反量化預設陣列,對第一殘差塊進行反量化,得到第二殘差塊。重建單元1303,用於基於第二殘差塊對待解碼塊進行重建,得到重建塊。
在一個示例中,解析單元1301可以藉由圖5中的碼流解析單元301實現。反量化單元1302可以藉由圖5中的反量化單元302實現。重建單元1303可以藉由圖5中的重構單元305實現。圖5中的經編碼位元流可以是本發明實施例中的待解碼塊的碼流。
有關上述解析單元1301、反量化單元1302和重建單元1303更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
一種可能的設計中,解析單元1301具體用於基於待解碼塊的碼流確定預測待解碼塊中像素的目標預測模式和待解碼塊中每個像素的反量化參數;基於目標預測模式,確定與目標預測模式對應的殘差掃描順序;其中,當目標預測模式為第一目標預測模式時,殘差掃描順序為第一掃描順序,當目標預測模式為第二目標預測模式時,殘差掃描順序為第二掃描順序,第一掃描順序和第二掃描順序不同;基於殘差掃描順序解析待解碼塊的碼流,得到第一殘差塊。
另一種可能的設計中,對於尺寸為第一尺寸的待解碼塊,解析單元1301在目標預測模式下採用第三掃描順序解析待解碼塊的碼流;對於尺寸為第二尺寸的待解碼塊,解析單元1301在目標預測模式下採用第四掃描順序解析待解碼塊的碼流;其中,第三掃描順序和第四掃描順序不同。
再一種可能的設計中,在反量化預設陣列中,第1至第n個數中相鄰的兩個數之間的間隔為1,第n+1至第n+m個數中相鄰的兩個數之間的間隔為2,第n+k*m+1至第n+k*m+m個數中相鄰兩個數之間的數值間隔為2 k+1,其中,n、m為大於1的整數,k均為正整數。
又一種可能的設計中,反量化單元1302具體用於基於每個像素的QP在反量化預設陣列中確定每個像素對應的放大係數;基於每個像素對應的放大係數,對第一殘差塊進行反量化運算,得到第二殘差塊。
又一種可能的設計中,反量化單元1302具體用於基於每個像素的QP和反量化預設陣列,確定每個像素對應的放大參數和位移參數;其中,每個像素對應的放大參數的值為每個像素的QP與7按位與後的值在反量化預設陣列中對應的值,每個像素對應的位移參數的值為7與每個像素的QP除以2 3的商的差值;基於每個像素對應的放大參數和位移參數,對第一殘差塊進行反量化運算,得到第二殘差塊。
又一種可能的設計中,重建單元1303具體用於對第二殘差塊進行反變換,以重建待解碼塊的殘差值塊;基於殘差值塊對待解碼塊進行重建,得到重建塊。
又一種可能的設計中,重建單元1303具體用於按照目標預測模式,以與目標預測模式對應的目標預測順序預測待解碼塊中的每個像素;基於每個像素的預測值和第二殘差塊對待解碼塊進行重建,得到重建塊。
又一種可能的設計中,解析單元1301具體用於採用可變碼長的解碼方式解析待解碼塊的碼流,以得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL和第一殘差塊。
有關上述可能的設計的更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
圖14為本發明提供的一種編碼裝置1400的結構示意圖,上述任一種編碼方法實施例都可以由該編碼裝置1400執行。該編碼裝置1400包括確定單元1401、量化單元1402以及編碼單元1403。其中,確定單元1401,用於確定待編碼塊的第二殘差塊和待編碼塊中每個像素的量化參數QP。量化單元1402,用於基於該每個像素的QP和量化預設陣列,對第二殘差塊進行量化,得到第一殘差塊。編碼單元1403,用於編碼第一殘差塊,得到待編碼塊的碼流。
在一個示例中,確定單元1401可以藉由圖2中的殘差計算單元202實現,或者,確定單元1401可以藉由圖2中的殘差計算單元202和殘差變換單元203結合實現。量化單元1402可以藉由圖2中的量化單元204實現。編碼單元1403可以藉由圖2中的編碼單元205實現。圖2中的待編碼塊可以是本發明實施例中的待編碼塊。
有關上述確定單元1401、量化單元1402和編碼單元1403更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
圖15為本發明提供的一種編碼裝置1500的結構示意圖,上述任一種編碼方法實施例都可以由該編碼裝置1500執行。該編碼裝置1500包括確定單元1501和編碼單元1502。其中,確定單元1501,用於確定待編碼塊對應的殘差塊。編碼單元1502,用於採用可變碼長的編碼方式對前述的殘差塊進行編碼,以得到待編碼塊的碼流。
在一個示例中,確定單元1501可以藉由圖2中的殘差計算單元202實現,或者,確定單元1501可以藉由圖2中的殘差計算單元202和殘差變換單元203結合實現,或者,確定單元1501可以藉由圖2中的殘差計算單元202、殘差變換單元203以及量化單元204結合實現。編碼單元1502可以藉由圖2中的編碼單元205實現。圖2中的待編碼塊可以是本發明實施例中的待編碼塊。
有關上述確定單元1501和編碼單元1502更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
圖16為本發明提供的一種解碼裝置1600的結構示意圖,上述任一種解碼方法實施例都可以由該解碼裝置1600執行。該解碼裝置1600包括解析單元1601、確定單元1602以及重建單元1603。其中,解析單元1601,用於採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼待解碼塊對應的殘差塊中每個值的編碼碼長CL。確定單元1602,用於基於編碼每個值的CL確定待解碼塊的殘差塊。重建單元1603,用於基於待解碼塊的殘差塊對待解碼塊進行重建,得到重建塊。
在一個示例中,解析單元1601可以藉由圖5中的碼流解析單元301實現。確定單元1602可以藉由圖5中的反量化單元302實現,或者,確定單元1602可以藉由圖5中的反量化單元302和殘差逆變換單元303結合實現。重建單元1603可以藉由圖5中的重構單元305實現。圖5中的經編碼位元流可以是本發明實施例中的待解碼塊的碼流。
有關上述解析單元1601、確定單元1602和重建單元1603更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
一種可能的設計中,在可變碼長的解碼方式包括可變換階數或預設階數的指數哥倫布解碼方式的情況下,解析單元1601具體用於確定解析編碼所述殘差塊中每個值的CL時的目標階數;採用所述目標階數的指數哥倫布解碼演算法解析所述碼流,得到編碼所述殘差塊中每個值的CL。
另一種可能的設計中,解析單元1601具體用於當用於編碼所述殘差塊中任一值CL的位元數量為預設數量,則基於定長解碼策略解析所述碼流,以得到編碼所述任一值的CL;當用於編碼所述殘差塊中任一值CL的位元數量大於預設數量,則基於截斷一元碼的規則解析所述碼流,以得到編碼所述任一值的CL。
再一種可能的設計中,確定單元1602具體用於基於編碼所述每個值的CL在所述碼流中確定與所述待解碼塊中每個像素對應的位元組;確定所述待解碼塊中每個像素的屬性類型;對於與所述待解碼塊中第三像素對應的第一位元組,基於預設策略和所述第三像素的屬性類型,確定解析所述第一位元組的目標階數;採用所述目標階數的指數哥倫布解碼演算法解析所述第一位元組,以得到所述殘差塊。
又一種可能的設計中,確定單元1602具體用於基於編碼所述每個值的CL在所述碼流中確定與所述待解碼塊中每個像素對應的位元組;對於與所述待解碼塊中第三像素對應的第一位元組,採用預設階數的指數哥倫布解碼演算法解析所述第一位元組,以得到所述殘差塊。
又一種可能的設計中,重建單元1603具體用於對所述殘差塊進行反量化和反變換,或者,對所述殘差塊進行反量化,以重建所述待解碼塊的殘差值塊;基於所述殘差值塊對所述待解碼塊進行重建,得到所述重建塊。
又一種可能的設計中,重建單元1603具體用於基於待解碼塊的碼流確定預測所述待解碼塊中像素的目標預測模式;基於所述目標預測模式,確定與所述目標預測模式對應的目標預測順序;按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素;基於所述待解碼塊中的每個像素的預測值和所述殘差塊對所述待解碼塊進行重建,得到所述重建塊。
又一種可能的設計中,重建單元1603具體用於基於解析所述待解碼塊的碼流得到的所述待解碼塊中每個像素的反量化參數和反量化預設陣列,對所述殘差塊進行反量化。
有關上述可能的設計的更詳細的描述、以及其中各技術特徵更詳細的描述,以及有益效果的描述等,均可以參考上述相應的方法實施例部分,此處不再贅述。
本發明還提供一種電子設備,用於執行上述任意圖像編碼/解碼方法的實施例。如圖17所示,圖17為本發明提供的一種電子設備的結構示意圖,電子設備1700包括處理器1701和通訊介面1702。處理器1701和通訊介面1702之間相互耦合。可以理解的是,通訊介面1702可以為收發器或輸入輸出介面。
在一個示例中,電子設備1700還可以包括記憶體1703,用於儲存處理器1701執行的指令或儲存處理器1701運行指令所需要的輸入數據或儲存處理器1701運行指令後產生的數據。
本發明實施例中不限定上述通訊介面1702、處理器1701以及記憶體1703之間的具體連接媒體。本發明實施例在圖17中以通訊介面1702、處理器1701以及記憶體1703之間藉由匯流排1704連接,匯流排在圖17中以粗線表示,其它部件之間的連接方式,僅是進行示意性說明,並不引以為限。所述匯流排可以分為位址匯流排、數據匯流排、控制匯流排等。為便於表示,圖17中僅用一條粗線表示,但並不表示僅有一根匯流排或一種類型的匯流排。
記憶體1703可用於儲存軟體程式及模組,如本發明實施例所提供的圖像解碼方法或圖像編碼方法對應的程式指令/模組,處理器1701藉由執行儲存在記憶體1703內的軟體程式及模組,從而執行各種功能應用以及數據處理,以實現上文提供的任一種圖像解碼方法或圖像編碼方法。該通訊介面1702可用於與其他設備進行信令或數據的通訊。在本發明中該電子設備1700可以具有多個通訊介面1702。
可以理解的是,本發明的實施例中的處理器可以是中央處理單元(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 video disc,DVD);還可以是半導體媒體,例如,固態硬碟(solid state drive,SSD)。
在本發明的各個實施例中,如果沒有特殊說明以及邏輯衝突,不同的實施例之間的術語和/或描述具有一致性、且可以相互引用,不同的實施例中的技術特徵根據其內在的邏輯關係可以組合形成新的實施例。
可以理解的是,在本發明的實施例中涉及的各種數字編號僅為描述方便進行的區分,並不用來限制本發明的實施例的範圍。上述各過程的序號的大小並不意味著執行順序的先後,各過程的執行順序應以其功能和內在邏輯確定。以上所述僅為本發明的較佳實施例,並不用以限制本發明,凡在本發明的精神和原則之內,所做的任何修改、等同替換、改進等,均應包含在本發明保護的範圍之內。
1、2:並行編碼單元 10:編解碼系統 11:源設備 12:目的設備 111:圖像預處理器 112:編碼器 113、121、1702:通訊介面 122:解碼器 123:圖像後處理器 201、304:預測處理單元 202:殘差計算單元 203:殘差變換單元 204、1402:量化單元 205、1203、1403、1502:編碼單元 206、302、1302:反量化單元 207、303:殘差逆變換單元 208、305:重構單元 209、306:濾波器單元 301:碼流解析單元 1100、1300、1600:解碼裝置 1101、1301、1601:解析單元 1102、1201、1401、1501、1602:確定單元 1103、1202:預測單元 1104、1303、1603:重建單元 1200、1400、1500:編碼裝置 1700:電子設備 1701:處理器 1703:記憶體 1704:匯流排 S11、 S12、S13、S14、S15、S16、S21、S22、S23、S24、S25、S26、S27、S28、S101、S102、S103、S104、S201、S202、S203、S204、S301、S302、S303、S401、S402、S403、S501、S502、S601、S602、S603:步驟
此處所說明的圖式用來提供對本發明的進一步理解,構成本發明的一部分,本發明的示意性實施例及其說明用於解釋本發明,並不構成對本發明的不當限定。
圖1為本發明實施例所應用的編解碼系統10的架構示意圖; 圖2為用於實現本發明實施例方法的編碼器112的實例的示意性框圖; 圖3為本發明實施例提供的一種圖像、並行編碼單元、獨立編碼單元和編碼單元之間的對應關係的示意圖; 圖4為本發明實施例提供的一種編碼過程的流程示意圖; 圖5為用於實現本發明實施例方法的解碼器122的實例的示意性框圖; 圖6a為本發明實施例提供的一種圖像編碼方法的流程示意圖; 圖6b為本發明實施例提供的一種圖像解碼方法的流程示意圖; 圖6c為本發明實施例提供的另一種圖像編碼方法的流程示意圖; 圖7a為本發明實施例提供的一種預測順序的示意圖; 圖7b為本發明實施例提供的另一種預測順序的示意圖; 圖7c-1為本發明實施例提供的又一種預測順序的示意圖; 圖7c-2為本發明實施例提供的又一種預測順序的示意圖; 圖7d-1為本發明實施例提供的又一種預測順序的示意圖; 圖7d-2為本發明實施例提供的又一種預測順序的示意圖; 圖7d-3為本發明實施例提供的又一種預測順序的示意圖; 圖7e為本發明實施例提供的又一種預測順序的示意圖; 圖7f為本發明實施例提供的又一種預測順序的示意圖; 圖7g為本發明實施例提供的又一種編碼順序的示意圖; 圖8為本發明實施例提供的另一種圖像解碼方法的流程示意圖; 圖9a為本發明實施例提供的又一種圖像編碼方法的流程示意圖; 圖9b為本發明實施例提供的又一種圖像解碼方法的流程示意圖; 圖10a為本發明實施例提供的又一種圖像編碼方法的流程示意圖; 圖10b為本發明實施例提供的又一種圖像解碼方法的流程示意圖; 圖11為本發明實施例提供的一種解碼裝置1100的結構示意圖; 圖12為本發明實施例提供的一種編碼裝置1200的結構示意圖; 圖13為本發明實施例提供的一種解碼裝置1300的結構示意圖; 圖14為本發明實施例提供的一種編碼裝置1400的結構示意圖; 圖15為本發明實施例提供的一種編碼裝置1500的結構示意圖; 圖16為本發明實施例提供的一種解碼裝置1600的結構示意圖; 圖17為本發明實施例提供的一種電子設備的結構示意圖。
S101、S102、S103、S104:步驟

Claims (25)

  1. 一種圖像解碼方法,其包括以下步驟: 解析待解碼塊的碼流,以確定預測所述待解碼塊中像素的目標預測模式; 基於所述目標預測模式,確定與所述目標預測模式對應的目標預測順序; 按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素;以及 基於所述每個像素的預測值對所述每個像素進行重建,得到所述待解碼塊的重建塊。
  2. 如請求項1所述的圖像解碼方法,其中,在以所述目標預測順序預測所述待解碼塊中的任一像素時,用於預測所述任一像素的像素已完成重建。
  3. 如請求項2所述的圖像解碼方法,其中,若所述目標預測模式指示以所述目標預測順序逐點預測所述待解碼塊中的每個像素,則所述按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素包括以下步驟: 按照所述目標預測模式,沿所述目標預測順序指示的方向逐點預測所述待解碼塊中的每個像素;其中,當所述目標預測模式為第一目標預測模式時,所述目標預測順序為第一預測順序,當所述目標預測模式為第二目標預測模式時,所述目標預測順序為第二預測順序,所述第一預測順序和所述第二預測順序不同。
  4. 如請求項3所述的圖像解碼方法,其中,對於尺寸為第一尺寸的所述待解碼塊,在所述目標預測模式下採用第三預測順序對所述待解碼塊進行預測;對於尺寸為第二尺寸的所述待解碼塊,在所述目標預測模式下採用第四預測順序對所述待解碼塊進行預測;其中,所述第三預測順序和所述第四預測順序不同。
  5. 如請求項2所述的圖像解碼方法,其中,若所述目標預測模式指示以所述待解碼塊中具有預設大小的子塊為單位依次預測所述待解碼塊中每個子塊的像素,則所述按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素包括: 按照所述目標預測模式,沿所述目標預測順序指示的方向依次預測所述待解碼塊中每個子塊中的像素。
  6. 如請求項5所述的圖像解碼方法,其中,所述目標預測模式包括所述待解碼塊中每個子塊的預測模式,對於所述待解碼塊中第一子塊,所述第一子塊中包括第一像素和第二像素,則所述第一子塊的預測模式用於根據所述第一子塊周圍已重建的像素並行的對所述第一像素和所述第二像素進行預測。
  7. 如請求項1至6中任一項所述的圖像解碼方法,其中,所述基於所述每個像素的預測值對所述每個像素進行重建,得到所述待解碼塊的重建塊包括以下步驟: 基於解析所述待解碼塊的碼流得到的所述待解碼塊中每個像素的反量化參數和反量化預設陣列,對解析所述待解碼塊的碼流得到的所述待解碼塊的第一殘差塊進行反量化,得到第二殘差塊;以及 基於所述每個像素的預測值和所述第二殘差塊對所述每個像素進行重建,得到所述重建塊。
  8. 如請求項7所述的圖像解碼方法,其中,所述解析所述待解碼塊的碼流包括以下步驟: 採用可變碼長的解碼方式解析所述待解碼塊的碼流,以得到編碼所述待解碼塊對應的殘差塊中每個值的編碼碼長CL和所述第一殘差塊。
  9. 一種圖像編碼方法,其包括以下步驟: 確定待編碼塊的目標預測模式,以及確定與所述目標預測模式對應的目標預測順序; 按照所述目標預測模式,以所述目標預測順序預測所述待編碼塊中的每個像素; 基於所述每個像素的預測值確定所述待編碼塊的殘差塊;以及 以所述目標預測順序編碼所述殘差塊,以得到所述待編碼塊的碼流。
  10. 一種圖像解碼方法,其包括以下步驟: 解析待解碼塊的碼流,得到所述待解碼塊中每個像素的反量化參數和所述待解碼塊的第一殘差塊; 基於所述每個像素的反量化參數指示的量化參數QP和反量化預設陣列,對所述第一殘差塊進行反量化,得到第二殘差塊;以及 基於所述第二殘差塊對所述待解碼塊進行重建,得到重建塊。
  11. 如請求項10所述的圖像解碼方法,其中,所述解析待解碼塊的碼流,得到所述待解碼塊中每個像素的反量化參數和所述待解碼塊的第一殘差塊包括以下步驟: 基於所述待解碼塊的碼流確定預測所述待解碼塊中像素的目標預測模式和所述待解碼塊中每個像素的反量化參數; 基於所述目標預測模式,確定與所述目標預測模式對應的殘差掃描順序;其中,當所述目標預測模式為第一目標預測模式時,所述殘差掃描順序為第一掃描順序,當所述目標預測模式為第二目標預測模式時,所述殘差掃描順序為第二掃描順序,所述第一掃描順序和所述第二掃描順序不同;以及 基於所述殘差掃描順序解析所述待解碼塊的碼流,得到所述第一殘差塊。
  12. 如請求項11所述的圖像解碼方法,其中,對於尺寸為第一尺寸的所述待解碼塊,在所述目標預測模式下採用第三掃描順序解析所述待解碼塊的碼流;對於尺寸為第二尺寸的所述待解碼塊,在所述目標預測模式下採用第四掃描順序解析所述待解碼塊的碼流;其中,所述第三掃描順序和所述第四掃描順序不同。
  13. 一種圖像解碼方法,其包括以下步驟: 採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼所述待解碼塊對應的殘差塊中每個值的編碼碼長CL; 基於編碼所述每個值的編碼碼長CL確定所述殘差塊;以及 基於所述殘差塊對所述待解碼塊進行重建,得到重建塊。
  14. 如請求項13所述的圖像解碼方法,其中,所述可變碼長的解碼方式包括可變換階數或預設階數的指數哥倫布解碼方式,所述採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼所述待解碼塊對應的殘差塊中每個值的編碼碼長CL包括以下步驟: 確定解析編碼所述殘差塊中每個值的編碼碼長CL時的目標階數;以及 採用所述目標階數的指數哥倫布解碼演算法解析所述碼流,得到編碼所述殘差塊中每個值的編碼碼長CL。
  15. 如請求項13所述的圖像解碼方法,其中,所述採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼所述待解碼塊對應的殘差塊中每個值的編碼碼長CL包括以下步驟: 當用於編碼所述殘差塊中任一值編碼碼長CL的位元數量為預設數量,則基於定長解碼策略解析所述碼流,以得到編碼所述任一值的編碼碼長CL;以及 當用於編碼所述殘差塊中任一值編碼碼長CL的位元數量大於預設數量,則基於截斷一元碼的規則解析所述碼流,以得到編碼所述任一值的編碼碼長CL。
  16. 如請求項13所述的圖像解碼方法,其中,所述基於編碼所述每個值的編碼碼長CL確定所述殘差塊包括以下步驟: 基於編碼所述每個值的編碼碼長CL在所述碼流中確定與所述待解碼塊中每個像素對應的位元組; 確定所述待解碼塊中每個像素的屬性類型; 對於與所述待解碼塊中第三像素對應的第一位元組,基於預設策略和所述第三像素的屬性類型,確定解析所述第一位元組的目標階數;以及 採用所述目標階數的指數哥倫布解碼演算法解析所述第一位元組,以得到所述殘差塊。
  17. 如請求項13所述的圖像解碼方法,其中,所述基於編碼所述每個值的編碼碼長CL確定所述殘差塊包括以下步驟: 基於編碼所述每個值的編碼碼長CL在所述碼流中確定與所述待解碼塊中每個像素對應的位元組;以及 對於與所述待解碼塊中第三像素對應的第一位元組,採用預設階數的指數哥倫布解碼演算法解析所述第一位元組,以得到所述殘差塊。
  18. 如請求項13至17中任一項所述的圖像解碼方法,其中,所述基於所述殘差塊對所述待解碼塊進行重建,得到重建塊包括以下步驟: 對所述殘差塊進行反量化和反變換,或者,對所述殘差塊進行反量化,以重建所述待解碼塊的殘差值塊;以及 基於所述殘差值塊對所述待解碼塊進行重建,得到所述重建塊。
  19. 如請求項18所述的圖像解碼方法,其中,所述基於所述殘差塊對所述待解碼塊進行重建,得到重建塊包括以下步驟: 基於所述待解碼塊的碼流確定預測所述待解碼塊中像素的目標預測模式; 基於所述目標預測模式,確定與所述目標預測模式對應的目標預測順序; 按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素;以及 基於所述待解碼塊中的每個像素的預測值和所述殘差塊對所述待解碼塊進行重建,得到所述重建塊。
  20. 如請求項18所述的圖像解碼方法,其中,所述對所述殘差塊進行反量化包括以下步驟: 基於解析所述待解碼塊的碼流得到的所述待解碼塊中每個像素的反量化參數和反量化預設陣列,對所述殘差塊進行反量化。
  21. 一種圖像解碼裝置,其包括: 解析單元,用於解析待解碼塊的碼流,以確定預測所述待解碼塊中像素的目標預測模式; 確定單元,用於基於所述目標預測模式,確定與所述目標預測模式對應的目標預測順序; 預測單元,用於按照所述目標預測模式,以所述目標預測順序預測所述待解碼塊中的每個像素;以及 重建單元,用於基於所述每個像素的預測值對所述每個像素進行重建,得到所述待解碼塊的重建塊。
  22. 一種圖像解碼裝置,其包括: 解析單元,用於解析待解碼塊的碼流,得到所述待解碼塊中每個像素的反量化參數和所述待解碼塊的第一殘差塊; 反量化單元,用於基於所述每個像素的反量化參數指示的量化參數QP和反量化預設陣列,對所述第一殘差塊進行反量化,得到第二殘差塊;以及 重建單元,用於基於所述第二殘差塊對所述待解碼塊進行重建,得到重建塊。
  23. 一種圖像解碼裝置,其包括: 解析單元,用於採用可變碼長的解碼方式解析待解碼塊的碼流,得到編碼所述待解碼塊對應的殘差塊中每個值的編碼碼長CL; 確定單元,用於基於編碼所述每個值的編碼碼長CL確定所述殘差塊;以及 重建單元,用於基於所述殘差塊對所述待解碼塊進行重建,得到重建塊。
  24. 一種電子設備,其包括處理器和記憶體,所述記憶體用於儲存電腦指令,所述處理器用於從所述記憶體中調用並運行所述電腦指令,實現如請求項1至20中任一項所述的圖像解碼方法。
  25. 一種電腦可讀儲存媒體,其特徵在於,所述電腦可讀儲存媒體中儲存有電腦程式或指令,當所述電腦程式或指令被電子設備執行時,實現如請求項1至20中任一項所述的圖像解碼方法。
TW112112053A 2022-03-29 2023-03-29 圖像編解碼方法、裝置、電子設備及儲存媒體 TW202348026A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CN2022103209155 2022-03-29
CN202210320915.5A CN116095310A (zh) 2022-03-29 2022-03-29 图像编解码方法、装置、电子设备及存储介质

Publications (1)

Publication Number Publication Date
TW202348026A true TW202348026A (zh) 2023-12-01

Family

ID=86205129

Family Applications (1)

Application Number Title Priority Date Filing Date
TW112112053A TW202348026A (zh) 2022-03-29 2023-03-29 圖像編解碼方法、裝置、電子設備及儲存媒體

Country Status (3)

Country Link
CN (3) CN116095310A (zh)
TW (1) TW202348026A (zh)
WO (1) WO2023185806A1 (zh)

Family Cites Families (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
DE60008716T2 (de) * 2000-07-10 2005-02-10 Stmicroelectronics S.R.L., Agrate Brianza Verfahren zur Kompression digitaler Bilder
KR101379188B1 (ko) * 2010-05-17 2014-04-18 에스케이 텔레콤주식회사 인트라 블록 및 인터 블록이 혼합된 코딩블록을 이용하는 영상 부호화/복호화 장치 및 그 방법
GB2559062B (en) * 2011-10-17 2018-11-14 Kt Corp Video decoding method using transform method selected from a transform method set
WO2019050299A1 (ko) * 2017-09-06 2019-03-14 가온미디어 주식회사 변화계수 서브그룹 스캐닝 방법에 따른 부/복호화 방법 및 장치
CN110650343A (zh) * 2018-06-27 2020-01-03 中兴通讯股份有限公司 图像的编码、解码方法及装置、电子设备及系统
US11245920B2 (en) * 2019-08-23 2022-02-08 Qualcomm Incorporated Escape code coding for motion vector difference in video coding

Also Published As

Publication number Publication date
WO2023185806A9 (zh) 2023-11-16
WO2023185806A1 (zh) 2023-10-05
CN116405664A (zh) 2023-07-07
CN116095310A (zh) 2023-05-09
CN116405663A (zh) 2023-07-07

Similar Documents

Publication Publication Date Title
WO2020253828A1 (zh) 一种编解码方法、装置及存储介质
WO2020125595A1 (zh) 视频译码器及相应方法
WO2023236936A1 (zh) 一种图像编解码方法及装置
WO2023231866A1 (zh) 一种视频译码方法、装置及存储介质
CN113597757A (zh) 具有区域数自适应的几何划分的形状自适应离散余弦变换
TWI705693B (zh) 用於顯示串流壓縮之基於向量之熵寫碼的裝置及方法
WO2023039859A1 (zh) 视频编解码方法、设备、系统、及存储介质
WO2024022359A1 (zh) 一种图像编解码方法及装置
WO2019184489A1 (zh) 图像块编码中的变换方法、解码中的反变换方法及装置
WO2024022039A1 (zh) 一种视频图像解码方法、编码方法、装置及存储介质
WO2012159295A1 (zh) 一种熵解码方法、装置
TW202406351A (zh) 圖像解碼方法、編碼方法及裝置
WO2023185806A9 (zh) 一种图像编解码方法、装置、电子设备及存储介质
WO2022166370A1 (zh) 视频编解码方法、装置、计算机程序产品、计算机可读存储介质及电子设备
CN115866297A (zh) 视频处理方法、装置、设备及存储介质
WO2023131221A2 (zh) 图像编解码的方法、装置及存储介质
WO2023083239A1 (zh) 图像解码方法及装置、图像编码方法及装置
CN104159106A (zh) 视频编码方法和视频解码方法及其装置
TWI829424B (zh) 解碼方法、編碼方法及裝置
TWI821013B (zh) 視頻編解碼方法及裝置
US20220046231A1 (en) Video encoding/decoding method and device
RU2783385C2 (ru) Кодер, декодер и соответствующие способы с использованием компактного mv хранилища
WO2022217447A1 (zh) 视频编解码方法与系统、及视频编解码器
WO2023272533A1 (zh) 编解码方法、编码器、解码器以及存储介质
TW202339500A (zh) 用於編碼、解碼的方法、裝置及其設備