TWI882775B - 視頻圖像解碼方法及裝置、視頻圖像編碼方法及裝置、電子設備以及存儲介質 - Google Patents
視頻圖像解碼方法及裝置、視頻圖像編碼方法及裝置、電子設備以及存儲介質 Download PDFInfo
- Publication number
- TWI882775B TWI882775B TW113114738A TW113114738A TWI882775B TW I882775 B TWI882775 B TW I882775B TW 113114738 A TW113114738 A TW 113114738A TW 113114738 A TW113114738 A TW 113114738A TW I882775 B TWI882775 B TW I882775B
- Authority
- TW
- Taiwan
- Prior art keywords
- group
- coding
- unit
- coefficient
- decoded
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/103—Selection of coding mode or of prediction mode
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/119—Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/124—Quantisation
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/129—Scanning of coding units, e.g. zig-zag scan of transform coefficients or flexible macroblock ordering [FMO]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods 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/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/134—Methods 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/136—Incoming video signal characteristics or properties
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/174—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a slice, e.g. a line of blocks or a group of blocks
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/17—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
- H04N19/176—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/169—Methods 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/18—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a set of transform coefficients
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/44—Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/60—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
Abstract
本發明提供一種視頻編解碼方法及裝置,涉及影像處理技術領域,解決了現有技術中視頻編解碼性能較低,或編解碼演算法複雜度較高的問題。該方法包括:解碼端獲取待解碼單元的碼流;確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式;根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊;根據所述待解碼單元的所述掃描方式,逐個將每個組所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
Description
本發明涉及影像處理技術領域,尤其涉及一種視頻編解碼方法及裝置。
在電腦視覺領域中,為了有效存儲和傳輸視頻,通常需要通過視頻編碼來進行圖像壓縮,主要包括失真壓縮和無失真壓縮。其中,無失真壓縮是利用圖像資料的統計冗餘進行圖像壓縮,可完全恢復原始圖像資料而不引起任何失真;另外,如果重建圖像和原始圖像存在誤差,而誤差被限制在一定的範圍內就稱作近無失真壓縮。近無失真壓縮雖然存在一定失真,但對於視覺影像來說可以忽略不計,因此近無失真壓縮也可以認為是無失真壓縮。
目前的無失真壓縮(包括近無失真壓縮)的編解碼方案中,例如,前文參考之可適性算術編碼(Context-based Adaptive Binary Arithmetic Coding,CABAC)壓縮技術涉及到諸多的概率模型以及上下文建模、二進位算術編碼等演算法,處理過程較為複雜。另外,基於哥倫布編碼的Golomb-Rice編碼,其編碼過程中存在冗餘計算,編解碼性能不高。因此,亟需提出一種編解碼效率較高,且演算法複雜度較低的視頻編解碼方法。
本發明提供一種視頻編解碼方法及裝置,解決了現有技術中
視頻編解碼性能較低,或編解碼演算法複雜度較高的問題。
為達到上述目的,本發明採用如下技術方案:
第一方面,提供一種視頻編解碼方法,該方法包括:解碼端獲取待解碼單元的碼流;確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式;根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊;根據所述待解碼單元的所述掃描方式,逐個將每個組所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,重建資料塊為待解碼圖像的原始像素值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
在一種實施方式中,確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式,具體包括:根據編碼端以及解碼端的預先約定或者上下文資訊,確定所述待解碼單元的掃描方式、分組方式以及每一組對應的編碼方式中的至少一個;或者,根據所述碼流解析得到所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式中的至少一個;或者,根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述分組方式。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據編碼演算法解碼得到每個組的組參數;根據每個組的所述組參數,根據所述半定長編碼演算法解碼
得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,根據編碼演算法解碼得到每個組的組參數,具體包括:根據以下至少一種編碼方式對應的解碼方式進行解碼得到每個組的組參數:一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼或哥倫布-萊斯編碼。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據定長編碼演算法解碼得到每個組的組萊斯參數,或者,根據上下文模型得到每個組的組萊斯參數;根據每個組的所述組萊斯參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據上下文模型得到每個組的組萊斯參數;根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據每個組的所述組萊斯參數和所述組參數偏差得到每個組的組參數;根據每個組的所述組參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據定長編碼演算法解碼得到每個組的階數k,或者,根據上下文模型得到每個組的階數k;根據每個組的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據上下文模型得到每個組的階數k;根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據所述組參數偏差更新每個組的階數k;根據每個組更新後的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待
解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊,具體包括:根據已經解碼得到的一個或多個組的係數、預測方式、量化方式或者變換方式中的至少一個,確定當前組的編碼方式;根據所述當前組的編碼方式對應的解碼方式進行解碼得到所述當前組的係數,其中,所述當前組的編碼方式是哥倫布-萊斯編碼、k階指數哥倫布編碼或者半定長編碼方式中的幾種編碼方式的組合。
在一種實施方式中,編碼單元的多個分組中,至少兩個分組的編碼方式不同。
在一種實施方式中,若所述待解碼單元的解碼方式為哥倫布-萊斯編碼或者k階指數哥倫布編碼中的任一項,則所述確定所述待解碼單元的分組方式,具體包括:根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述待解碼單元的分組方式。
通過本發明的上述實施方式,解碼端可以根據不同的預測方式,匯出不同的掃描方式,同時匯出係數分組方式,這樣的係數分組結合了預測的資訊,使得分組後的係數更加統一,編碼端對於變化很小的係數,可以分配較小的碼字進行編碼,從而編碼方式較靈活,提高編碼性能。此外,通過設計多種固定分組模式可以更好的適應於半定長編碼方式,可以靈活地為每個編碼塊選擇更好的二值化方法,編碼演算法複雜度較低。
第二方面,提供一種視頻編解碼方法,該方法包括:編碼端將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;確定每組待編碼子序列對應的係數編碼方式,並逐個進行編碼得到已編碼碼流。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍
夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,待編碼資料塊為待編碼圖像的原始像素值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
第三方面,提供一種視頻解碼裝置,該裝置包括收發模組和處理模組,收發模組用於獲取待解碼單元的碼流;處理模組用於確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式;根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊;根據所述待解碼單元的所述掃描方式,逐個將每個組所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,重建資料塊為待解碼圖像的原始像素值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
在一種實施方式中,處理模組具體用於:根據編碼端以及解碼端的預先約定或者上下文資訊,確定所述待解碼單元的掃描方式、分組方式以及每一組對應的編碼方式中的至少一個;或者,根據所述碼流解析
得到所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式中的至少一個;或者,根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述分組方式。
在一種實施方式中,處理模組具體用於:根據編碼演算法解碼得到每個組的組參數;根據每個組的所述組參數,根據所述半定長編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組具體用於:根據以下至少一種編碼方式對應的解碼方式進行解碼得到每個組的組參數:一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼或哥倫布-萊斯編碼。
在一種實施方式中,處理模組具體用於:根據定長編碼演算法解碼得到每個組的組萊斯參數,或者,根據上下文模型得到每個組的組萊斯參數;根據每個組的所述組萊斯參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組具體用於:根據上下文模型得到每個組的組萊斯參數;根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據每個組的所述組萊斯參數和所述組參數偏差得到每個組的組參數;根據每個組的所述組參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組具體用於:根據定長編碼演算法解碼得到每個組的階數k,或者,根據上下文模型得到每個組的階數k;根據每個組的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組具體用於:根據上下文模型得到每個組的階數k;根據定長編碼演算法或者截斷一元碼解碼得到每個組的
組參數偏差;根據所述組參數偏差更新每個組的階數k;根據每個組更新後的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組具體用於:根據已經解碼得到的一個或多個組的係數、預測方式、量化方式或者變換方式中的至少一個,確定當前組的編碼方式;根據所述當前組的編碼方式對應的解碼方式進行解碼得到所述當前組的係數,其中,所述當前組的編碼方式是哥倫布-萊斯編碼、k階指數哥倫布編碼或者半定長編碼方式中的幾種編碼方式的組合。
在一種實施方式中,編碼單元的多個分組中,至少兩個分組的編碼方式不同。
在一種實施方式中,若所述待解碼單元的解碼方式為哥倫布-萊斯編碼或者k階指數哥倫布編碼中的任一項,則處理模組具體用於:根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述待解碼單元的分組方式。
第四方面,提供一種視頻編碼裝置,該裝置包括收發模組和處理模組,處理模組用於將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;確定每組待編碼子序列對應的係數編碼方式,並逐個進行編碼得到已編碼碼流。收發模組用於將已編碼碼流發送至解碼端。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,待編碼資料塊為待編碼圖像的原始像素
值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
第五方面,提供一種編解碼系統,該編解碼系統包括如第三方面任一項所述的裝置和如第四方面中任一項所述的裝置。
第六方面,提供一種視頻編解碼裝置,所述裝置包括處理器,所述處理器與記憶體耦合;記憶體,用於存儲電腦程式或指令;處理器,用於執行所述記憶體中存儲的電腦程式或指令,以使得所述裝置執行如第一方面中任一項所述的方法。
第七方面,提供一種視頻編解碼裝置,所述裝置包括處理器,所述處理器與記憶體耦合;記憶體,用於存儲電腦程式或指令;處理器,用於執行所述記憶體中存儲的電腦程式或指令,以使得所述裝置執行如第二方面中任一項所述的方法。
第八方面,提供一種電子設備,所述電子設備用於執行如第一方面中任一項所述的方法。
第九方面,提供一種電子設備,所述電子設備用於執行如第二方面中任一項所述的方法。
第十方面,提供一種可讀存儲介質,包括程式或指令,當所述程式或指令被處理器運行時,如第一方面中任意一項所述的方法被執行。
第十一方面,提供一種可讀存儲介質,包括程式或指令,當所述程式或指令被處理器運行時,如第二方面中任意一項所述的方法被執行。
第十二方面,提供一種電路,用於執行第一方面中任一項所述方法。
第十三方面,提供一種電路,用於執行第二方面中任一項所述方法。
第十四方面,提供一種電腦應用程式,當所述電腦應用程式在電腦或處理器上運行時,使得所述電腦或所述處理器執行如第一方面中
任一項所述方法。
第十五方面,提供一種電腦應用程式,當所述電腦應用程式在電腦或處理器上運行時,使得所述電腦或所述處理器執行如第二方面中任一項所述方法。
可以理解地,上述提供的任一種視頻編解碼的裝置、視頻編解碼系統、電腦可讀存儲介質或電腦程式產品,均可以由上文所提供的對應的方法來實現,因此,其所能達到的有益效果可參考上文所提供的對應的方法中有益效果,此處不再贅述。
1:並行編碼單元
10:編解碼系統
1000:裝置
1001:收發模組
1002:處理模組
11:源設備
111:圖像前置處理器
1110:處理器
112:編碼器
1120:電腦可讀存儲介質
113,121:通信介面
12:目的設備
122,30:解碼器
123:圖像後處理器
2:並行編碼單元
20:編碼器
201,304:預測處理單元
202:殘差計算單元
203:變換處理單元
204:量化單元
205:熵編碼單元
206,302:反量化單元
207,303:反變換處理單元
208,305:重構單元
209,306:濾波器單元
301:熵解碼單元
401,402,403,404,405,406,407:步驟
Cb,Cr:色度
k:階數
Y:亮度
圖1為本發明實施例提供的一種編解碼系統的架構圖;圖2為本發明實施例提供的一種編碼器的內部架構圖;圖3為本發明實施例提供的一種解碼器的內部架構圖;圖4A為本發明實施例提供的一種視頻編解碼流程示意圖;圖4B為本發明實施例提供的一種視頻編解碼方法的流程示意圖;圖5為本發明實施例提供的一種視頻編解碼方法中待解碼單元的示意圖;圖6為本發明實施例提供的一種視頻編解碼方法中分組及掃描的示意圖;圖7為本發明實施例提供的一種視頻編解碼方法中待解碼單元中的資料部分示意圖;圖8為本發明實施例提供的一種視頻編解碼方法中待解碼單元的分組方式示意圖;圖9為本發明實施例提供的一種視頻編解碼方法中待解碼單元的分組方式示意圖;圖10為本發明實施例提供的一種視頻編解碼裝置的結構示意圖。
圖11為本發明實施例提供的一種電子設備的硬體結構圖。
以下,術語“第一”、“第二”僅用於描述目的,而不能理解為指示或暗示相對重要性或者隱含指明所指示的技術特徵的數量。由此,限
定有“第一”、“第二”的特徵可以明示或者隱含地包括一個或者更多個該特徵。在本實施例的描述中,除非另有說明,“多個”的含義是兩個或兩個以上。
需要說明的是,本發明中,“示例性的”或者“例如”等詞用於表示作例子、例證或說明。本發明中被描述為“示例性的”或者“例如”的任何實施例或設計方案不應被解釋為比其他實施例或設計方案更優選或更具優勢。確切而言,使用“示例性的”或者“例如”等詞旨在以具體方式呈現相關概念。
下面將結合本發明實施例中的圖式,對本發明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發明一部分實施例,而不是全部的實施例。基於本發明中的實施例,本領域普通技術人員在沒有做出創造性勞動前提下所獲得的所有其他實施例,都屬於本發明保護的範圍。
首先,對本發明實施例涉及的技術術語進行介紹:視頻序列/圖像序列:視頻中完整的圖像通常被稱為“幀”,由許多幀按照時間順序組成的視頻被稱為視頻序列(Video Sequence),或者可以稱為圖像序列。
視頻編碼技術:視頻序列存在空間冗餘、時間冗餘、視覺冗餘、資訊熵冗餘、結構冗餘、知識冗餘、重要性冗餘等一系列的冗餘資訊。為了盡可能的去除視頻序列中的冗餘資訊,減少表徵視頻的資料量,提出了視頻編碼(Video Coding)技術,以達到減小存儲空間和節省傳輸頻寬的效果。視頻編碼技術也稱為視頻壓縮技術。
視頻編碼的過程通常包括預測、變換、量化、熵編碼等過程,通過熵編碼可以對量化後的變換係數進行編碼。具體的過程將在下文進行描述,此處不再贅述。
在國際通用範圍內,視頻壓縮編碼標準,例如:由運動圖像專家組(Motion Picture Experts Group,MPEG)制定的MPEG-2和MPEG-4標準中第10部分的高級視頻編解碼(Advanced Video Coding,AVC),由國際電信聯盟標準化組(International Telecommunication Union-Telecommunication Standardization Sector,ITU-T)制定的H.263、H.264和H.265(又稱高效率視頻編碼(High Efficiency Video Coding standard,
HEVC))。
需要說明的是,在基於混合編碼架構的編碼演算法中,上述壓縮編碼方式可以被混合使用。
殘差:在視頻編碼過程中,需要經過預測過程去除空域和時域冗餘,編碼器經過預測得到預測值,將原始像素值減去預測值得到殘差值。殘差塊是變換、量化、熵編碼的基本單元。
變換:在視頻編碼過程中,變換是指將以空間域中像素形式描述的圖像轉換至變換域的圖像,並以變換係數的形式來表示。由於絕大多數圖像都含有較多平坦區域和緩慢變化的區域,因此,適當的變換過程,可以使圖像能量在空間域的分散分佈,轉換為在變換域的相對集中分佈,從而能夠去除信號之間的頻域相關性,配合量化過程,可以有效壓縮碼流。變換過程能夠將時域的像素值轉換到頻域,由於實際殘差塊中,低頻分量占比較大,通過變換將能量集中到低頻區域,即變換後的低頻係數的值較大,高頻係數的值較小。
變換係數:殘差塊經過變換、量化後的係數稱為變換係數。殘差塊中的像素值稱為係數,殘差經過變換後,左上角的為低頻係數,右下角的為高頻係數。從左上角到右下角,頻率越來越大。
二值化:也叫二進位化,對需要編碼的符號或係數進行二值化,經過二值化後的符號或係數轉化為二元字串,不同的二值化方法對相同的係數進行編碼得到的二元字串可能具有不同的二元概率模型,以及不同的字串長度。
上下文:一般情況下,不同的語法元素之間並不完全獨立,且相同語法元素自身也具有一定的記憶性。因此,根據條件熵的理論,利用其他已編碼的語法元素進行條件編碼,相對於獨立編碼或者無記憶編碼能夠進一步提高編碼性能。這些用來作為條件的已編碼符號資訊稱為上下文。
上下文模型:在視頻編解碼中,基於上下文更新符號概率的過程稱為上下文模型,並且根據具體應用條件,同一個語法元素可以使用的多個上下文模型來自我調整的更新當前條件下的符號概率,從而進一步
壓縮碼率。
熵編碼:是指按照資訊熵的原理進行的無損編碼方式,它處於視頻壓縮的最後一個處理模組,把一系列用來表示視頻序列的元素符號轉變為一個用來傳輸或存儲的二進位碼流,熵編碼模組的輸出資料即原始視頻壓縮後的最終碼流。熵編碼可以有效地去除這些視頻元素符號的統計冗餘,是保證視頻編碼壓縮效率的重要工具之一。
光柵掃描:是指將二維矩形光柵映射到一維光柵,一維光柵的入口從二維光柵的第一行開始,然後掃描第二行、第三行,依次類推。光柵中的行從左到右掃描。
右上對角掃描:是指從係數塊右下方最後一個係數開始掃描,終止於係數塊左上方第一個係數,在每個小塊內的掃描順序都是按照右下-右上-左下-左上的順序,其他小塊於此相同,塊之間的掃描順序與係數之間的掃描順序一樣,也為右下-右上-左下-左上。
水平往返掃描:是指將二維矩形映射到一維串,一維串的入口從二維矩形的起始行開始,逐行掃描整個二維矩形。起始行的行掃描方向是從左到右,起始行的相鄰行的行掃描方向是從右到左,任意兩個相鄰行具有相反的行掃描方向。
逆水平掃描:是指從係數塊右下方最後一個係數開始掃描,終止於係數塊左上方第一個係數,在每個係數塊內從右到左,從下到上掃描,塊之間的掃描順序為右下塊-右上塊-左下塊-左上塊的順序。
逆垂直掃描:是指從係數塊右下方最後一個係數開始掃描,終止於係數塊左上方第一個係數,在每個小塊內從下到上,從右到左掃描。
Z-掃描:是指對於任何一個邊長為偶數的正方形來說,都先掃描左上角,再掃描右上角,然後是掃描左下角,最後是掃描右下角。
一元碼:是一種簡單的二值化方法。具體的,對於非負整數N,其一元碼表示為N個1加1個0。
截斷一元碼:是一元碼的變體。具體的,在已知待編碼符號的最大值為N_max的情況下,假設當前待編碼符號為非負整數N,若N<N_max,則截斷一元碼即為一元碼;若N=N_max,則截斷一元碼為N
個1。
截斷二元碼:計算val的相關變數(stage,num0,num1以及thd等),對於0~(thd-1),其二元符號串長度為stage的定長碼,對於thd~val,其二元符號串長度為(stage+1)的定長碼。
游程編碼:通過記錄每個值連續出現的次數,作為編碼值。例如:0001110011010100001100,壓縮之後輸出:33221111422。
定長編碼:使用固定碼長對待編碼係數進行編碼,例如使用8位元二進位數字進行編碼的ASCII碼。
半定長編碼:是指將待編碼係數按照預測方向,以及殘差大小進行分組,編碼分組模式,每個組編碼一個碼長,對同一個組內的係數使用相同的定長進行編碼。
k階指數哥倫布編碼:k階指數哥倫布編碼包括首碼prefix和尾碼suffix兩部分,編碼方法包括以下步驟:1)將數位X以二進位形式寫出,去掉最低的k個比特,之後加1,求得T;2)計算T的比特數,前面需要補T-1個零;3)將去掉的最低k個比特位補回比特串尾部。
截斷萊斯編碼:截斷萊斯碼編碼包括首碼prefix和尾碼suffix兩部分,已知最大上限值cMax,萊斯參數cRice,對待編碼符號cVal進行編碼。
霍夫曼編碼:統計所有係數出現的頻率,構建霍夫曼樹,為概率較大的係數分配較短碼字,為概率較小的係數分配較長碼字。
哥倫布-萊斯編碼:Golomb-Rice是Golomb編碼的一個變種,相比Golomb編碼區別是,參數m的限制條件為,m必須是2的次冪。具體的,初始化參數m,m必須為2的次冪;計算q和r,其中,q=N/m;r=N&(m-1);使用一元編碼編碼q,取r的二進位位元的低log2(m)位作為r的碼字。
下面,結合JPEG-LS編碼模型介紹下哥倫布-萊斯編碼演算法。
在JPEG-LS編碼演算法中,利用周圍重建像素值計算某一方向的像素梯度,可以根據當前像素的預測方向計算一個梯度值,或者根據經驗,計算水平垂直方向的梯度值,對梯度進行量化。
按照JPEG-LS計算梯度的門限參數T1,T2和T3。
maxval=2n-1
factor=(maxval+128)>>8
其中,Di表示梯度計算值。i表示多個方向。根據量化後的梯度,得到對應的上下文索引: Q=(Q 1 * 9+Q 2 )* 9+Q 3 。
根據索引值Q的符號sign以及殘差修正值C[Q](根據上下文重建像素殘差累計計算得到)進行自我調整誤差修正:(有些像SAO,修正的是預測值): if(sign==1)Px=Px+c[Q];else Px=Px-c[Q];if(Px>Maxval)Px=Maxval;else if(Px<0)Px=0;為了使得殘差值Errval的幅值進一步縮小,近無失真壓縮量化公式為:
其中,sign表示索引值Q的符號sign,此時預測誤差的取值範圍是:±(range-1)。
Range0=(2n-1)原來像素範圍;Range0=±range預測殘差範圍;range1=-(range0-Near)/(2Near+1)量化後的極小值;range2=(range0+Near)/(2Near+1)量化後的極大值;range=range2+1。
為了將誤差值的範圍再次壓縮,當預測誤差Errval小於-range/2,便將預測誤差Errval加上range值。在完成這步處理後,若預測誤差Errval大於等於(1+range)/2,則需要將預測誤差Errval減去range值。經過處理後,所有預測誤差Errval的值的絕對值都不會大於(range+1)/2。模減的公式如下:
最後,根據上下文估計哥倫布編碼的k值。
A上下文殘差絕對值累加器(即前n個已編碼的殘差值的絕對值之和),B+=Errval*(2Near+1)上下文重建值殘差累加器(即前n個已編碼重建值之和),用於計算預測誤差修正參數C(Q)。N是對應上下文環境的計數器,保存的是該上下文環境出現的次數。每當B/N的值(修正殘差平均值)增加0.5或更多時,C[Q]的值將會自增1,反之B/N的值減小0.5或更多時,C[Q]的值會自減1。同時,為了使得計算更符合局部特徵,可以設置一個閾值N0,當N大於N0的時候,N和A的值減半,同時B和C[Q]的值也減半。
其中,K的計算是假設當前殘差分佈符合幾何分佈的條件
下匯出的的期望值。以正整數m為參數,對n進行哥倫布編碼,分為兩部分:n%m的二進位碼和n/m的一元碼。對幾何分佈的被編碼變數,總存在一個m使得編碼後的平均碼長最短。當m的取值為2^k時的哥倫布編碼叫做哥倫布-萊斯編碼。其中,K=min{k1|2k1N>=A}。
對Merrval使用哥倫布-萊斯編碼。
同時,對於平坦區域,即Di=0,直接使用游程編碼。當檢測到相鄰像素a=b=c=d時,即g1=g2=g3=0時,說明編碼進行到了一個很平坦的區域,則會進入游程編碼模式。在游程模式中,會繼續檢測當前像素x後面的像素是否和x相等(在進無損模式則判斷是否和x的差值在一個允許的範圍內),如果滿足,則繼續往後檢測,然後將相同值的個數(包括x在內)記錄下來,即游程長度。
現有技術中,SRCC編碼技術主要針對與有損編碼中,存在較多殘差值為0的係數進行的編碼,不適用於無損編碼或近無損編碼。前文參考之可適性算術編碼(Context-Based Adaptive Binary Arithmetic Coding,CABAC)技術過程較為複雜,會帶來編解碼複雜度的增加,因此不宜使用於近無失真壓縮。現有的Golomb-Rice編碼和半定長編碼較使用於無損和近無損編碼有較好的效果,但是,Golomb編碼的碼長依賴於選定的階數k,若k值不準確,會導致二值化後的碼長很長,因此一般只適用於逐點編碼,快速更新k值。半定長編碼可以將碼長有效的控制在一定的範圍之內,但是其在編碼每個係數之前,需要先編碼這些係數的碼長,因此這個方法一般適用於分組編碼,若組內係數個數太少,這個方法會增加平均碼長,但增加編碼係數的個數,往往會帶來係數值的範圍增大,由於組內每個係數使用相同的碼長,當組內最大值越大,那麼平均碼長就會增大。鑒於這兩種方案都存在一些不足,因此因此結合這兩種的編碼方式,提出一種基於
無損和近無損編碼的係數編碼方案。
接下來,對本發明實施例的實施環境和應用場景進行簡單介紹。本發明提供的視頻編解碼方法可以適用於如圖1所示的視頻編解碼系統。
下面描述本發明實施例所應用的系統架構。參見圖1,給出了本發明實施例所應用的編解碼系統(也可以稱為編碼及解碼系統)10的架構示意圖。如圖1所示,編解碼系統10可以包括源設備11和目的設備12,源設備11用於對圖像進行編碼,因此,源設備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,用於接收經預處理的圖像,採用相關預測模式(如本文各個實施例中的預測模式)對經預處理的圖像進行處理,從而提供經編碼圖像資料。在一些實施例中,編碼器112可以用
於執行下文中所描述的各個實施例中的圖像編碼過程。通信介面113,可用於將經編碼圖像資料傳輸至目的設備12或任何其它設備(如記憶體),以用於存儲或直接重構,其它設備可為任何用於解碼或存儲的設備。通信介面113也可以將經編碼圖像資料封裝成合適的格式之後再傳輸。
可選地,上述圖像前置處理器111、編碼器112以及通信介面113可能是源設備11中的硬體部件,也可能是源設備11中的軟體程式,本發明實施例不做限定。
繼續如圖1所示,目的設備12包括解碼器122,可選地,目的設備12還可以包括通信介面121、圖像後處理器123。其中,通信介面121可用於從源設備11或任何其它源設備接收經編碼圖像資料,該任何其它源設備例如為存放裝置。通信介面121還可以解封裝通信介面113所傳輸的資料以獲取經編碼圖像資料。解碼器122,用於接收經編碼圖像資料並輸出經解碼圖像資料(也稱為經重構圖像資料或已重構圖像資料)。在一些實施例中,解碼器122可以用於執行下文中所描述的各個實施例所述的解碼過程。
圖像後處理器123,用於對經解碼圖像資料執行後處理,以獲得經後處理像資料。圖像後處理器123執行的後處理可以包括:色彩格式轉換(例如,從YUV格式轉換為RGB格式)、調色、整修或重採樣,或任何其它處理,還可用於將經後處理圖像資料傳輸至顯示裝置進行顯示。
同理,可選地,上述通信介面121、解碼器122以及圖像後處理器123可能是目的設備12中的硬體部件,也可能是目的設備12中的軟體程式,本發明實施例不做限定。
下面對圖1中的編碼器和解碼器的結構進行簡單介紹。
參見圖2,圖2示出用於實現本發明實施例的編碼器20的實例的示意性框圖。在圖2中,編碼器包括預測處理單元201、殘差計算單元202、變換處理單元203、量化單元204、熵編碼單元205、反量化單元(也可以稱為逆量化單元)206、反變換處理單元(也可以稱為逆變換處理單元207)、重構單元(或者稱為重建單元)208以及濾波器單元209。可選地,
編碼器20還可以包括緩衝器、經解碼圖像緩衝器,其中,緩衝器用於緩存重構單元208輸出的重構圖像塊,經解碼圖像緩衝器用於緩存濾波器單元209輸出的濾波後的圖像塊。
編碼器20的輸入為圖像(可以稱為待編碼圖像)的圖像塊,圖像塊也可以稱為當前圖像塊或待編碼圖像塊,編碼器20中還可以包括分割單元(圖2中未示出),該分割單元用於將待編碼圖像分割成多個圖像塊。編碼器20用於逐塊編碼從而完成對待編碼圖像的編碼,例如,對每個圖像塊執行編碼過程。
預測處理單元201,用於接收或獲取圖像塊(當前待編碼圖像的當前待編碼圖像塊,也可以稱為當前圖像塊,該圖像塊可以理解為圖像塊的真實值)和已重構圖像資料,基於已重構圖像資料中的相關資料對當前圖像塊進行預測,得到當前圖像塊的預測塊。可選地,預測處理單元201可以包含幀間預測單元、幀內預測單元和模式選擇單元,模式選擇單元用於選擇幀內預測模式或者幀間預測模式,若選擇幀內預測模式,則由幀內預測單元執行預測過程,若選擇幀間預測模式,則由幀間預測單元執行預測過程。
殘差計算單元202用於計算圖像塊的真實值和該圖像塊的預測塊之間的殘差,得到殘差塊,例如,通過逐像素將圖像塊的像素值減去預測塊的像素值。
變換處理單元203用於對殘差塊進行例如離散餘弦變換(Discrete Cosine Transform,DCT)或離散正弦變換(Discrete Sine Transform,DST)的變換,以在變換域中獲取變換係數,變換係數也可以稱為變換殘差係數,該變換殘差係數可以在變換域中表示殘差塊。
量化單元204用於通過應用標量量化或向量量化來量化變換係數,以獲取經量化變換係數,經量化變換係數也可以稱為經量化殘差係數。量化過程可以減少與部分或全部變換係數有關的位元深度。例如,可在量化期間將n位變換係數向下捨入到m位變換係數,其中n大於m。可通過調整量化參數(Quantization Parameter,QP)修改量化程度。例如,對於標量量化,可以應用不同的標度來實現較細或較粗的量化。較小量化步
長對應較細量化,而較大量化步長對應較粗量化。可以通過量化參數(Quantization Parameter,QP)指示合適的量化步長。
熵編碼單元205用於對上述經量化殘差係數進行熵編碼,以經編碼位元流的形式輸出的經編碼圖像資料(即當前待編碼圖像塊的編碼結果),然後可以將經編碼位元流傳輸到解碼器,或將其存儲起來,後續傳輸至解碼器或用於檢索。熵編碼單元205還可用於對當前圖像塊的其它語法元素進行熵編碼,例如將預測模式熵編碼至碼流等。熵編碼演算法包括但不限於可變長度編碼(Variable Length Coding,VLC)演算法、適應性VLC(Context Adaptive VLC,CAVLC)演算法、算術編碼演算法、前文參考之可適性算術編碼(Context Adaptive Binary Arithmetic Coding,CABAC)演算法、基於語法的上下文自我調整二進位算術編碼(Syntax-Based Context-Adaptive Binary Arithmetic Coding,SBAC)演算法、概率區間分割熵(Probability Interval Partitioning Entropy,PIPE)演算法。
反量化單元206用於對上述經量化係數進行反量化,以獲取經反量化係數,該反量化是上述量化單元204的反向應用,例如,基於或使用與量化單元204相同的量化步長,應用量化單元204應用的量化方案的逆量化方案。經反量化係數也可以稱為經反量化殘差係數。
反變換處理單元207用於對上述反量化係數進行反變換,應理解,該反變換是上述變換處理單元203的反向應用,例如,反變換可以包括逆離散餘弦變換(Discrete Cosine Transform,DCT)或逆離散正弦變換(Discrete Sine Transform,DST),以在像素域(或者稱為樣本域)中獲取逆變換塊。逆變換塊也可以稱為逆變換經反量化塊或逆變換殘差塊。
重構單元208用於將逆變換塊(即逆變換殘差塊)添加至預測塊,以在樣本域中獲取經重構塊,重構單元208可以為求和器,例如,將殘差塊的樣本值(即像素值)與預測塊的樣本值相加。該重構單元208輸出的重構塊可以後續用於預測其他圖像塊,例如,在幀內預測模式下使用。
濾波器單元209(或簡稱“濾波器”)用於對經重構塊進行濾波以獲取經濾波塊,從而順利進行像素轉變或提高圖像品質。濾波器單元
可以為環路濾波器單元,旨在表示一個或多個環路濾波器,例如去塊濾波器、樣本自我調整偏移(Sample-Adaptive Offset,SAO)濾波器或其它濾波器,例如雙邊濾波器、自我調整環路濾波器(Adaptive Loop Filter,ALF),或銳化或平滑濾波器,或協同濾波器。可選地,該濾波單元209輸出的經濾波塊可以後續用於預測其他圖像塊,例如,在幀間預測模式下使用。
具體的,在本發明實施例中,編碼器20用於實現後文實施例中描述的視頻編解碼方法。
參見圖3,圖3示出用於實現本發明實施例的解碼器30的實例的示意性框圖。視頻解碼器30用於接收例如由編碼器20編碼的經編碼圖像資料(即經編碼位元流,例如,包括圖像塊的經編碼位元流及相關聯的語法元素),以獲取經解碼圖像。解碼器30包括熵解碼單元301、反量化單元302、反變換處理單元303、預測處理單元304、重構單元305、濾波器單元306。在一些實例中,解碼器30可執行大體上與圖2的編碼器20描述的編碼遍次互逆的解碼遍次。可選地,解碼器30還可以包括緩衝器、經解碼圖像緩衝器,其中,緩衝器用於緩存重構單元305輸出的重構圖像塊,經解碼圖像緩衝器用於緩存濾波器單元306輸出的濾波後的圖像塊。
熵解碼單元301用於對經編碼圖像資料執行熵解碼,以獲取經量化係數和/或經解碼的編碼參數(例如,解碼參數可以包括幀間預測參數、幀內預測參數、濾波器參數和/或其它語法元素中的任意一個或全部)。熵解碼單元301還用於將上述經解碼的編碼參數轉發至預測處理單元304,以供預測處理單元根據編碼參數執行預測過程。
反量化單元302的功能可與編碼器20的反量化單元206的功能相同,用於反量化(即,逆量化)在由熵解碼單元301解碼的經量化係數。
反變換處理單元303的功能可與編碼器20的反變換處理單元207的功能相同,重構單元305(例如求和器)的功能可與編碼器20的重構單元208的功能相同,用於對上述經量化係數進行逆變換(例如,逆DCT、逆整數變換或概念上類似的逆變換過程),得到逆變換塊(也可以稱為逆變換殘差塊),該逆變換塊即為當前圖像塊在像素域中的殘差塊。
預測處理單元304,用於接收或獲取經編碼圖像資料(例如當前圖像塊的經編碼位元流)和已重構圖像資料,預測處理單元304還可以從例如熵解碼單元301接收或獲取預測相關參數和/或關於所選擇的預測模式的資訊(即經解碼的編碼參數),並且基於已重構圖像資料中的相關資料和經解碼的編碼參數對當前圖像塊進行預測,得到當前圖像塊的預測塊。可選地,預測處理單元304可以包含幀間預測單元、幀內預測單元和模式選擇單元,模式選擇單元用於選擇幀內預測模式或者幀間預測模式,若選擇幀內預測模式,則由幀內預測單元執行預測過程,若選擇幀間預測模式,則由幀間預測單元執行預測過程。
重構單元305用於將逆變換塊(即逆變換殘差塊)添加到預測塊,以在樣本域中獲取經重構塊,例如將逆變換殘差塊的樣本值與預測塊的樣本值相加。
濾波器單元306用於對經重構塊進行濾波以獲取經濾波塊,該經濾波塊即為經解碼圖像塊。
具體的,在本發明實施例中,解碼器30用於實現後文實施例中描述的視頻解碼方法。
應當理解的是,在本發明實施例的編碼器20和解碼器30中,針對某個環節的處理結果也可以經過進一步處理後,輸出到下一個環節,例如,在插值濾波、運動向量推導或濾波等環節之後,對相應環節的處理結果進一步進行Clip或移位shift等操作。
本發明實施例提供的視頻解碼方法、視頻編碼方法可以由電子設備來執行,該電子設備可以具有對任意圖像或者視頻圖像進行壓縮編碼或者解碼的功能。在一些實施例中,該電子設備可以為筆記型電腦、平板電腦、桌上型電腦、可攜式計算機等等,本發明實施例對此不做限定。
下面在圖1~圖3所示出的視頻編解碼系統的基礎上,本發明提供一種可能的視頻編/解碼實現方式,如圖4A所示,圖4A為本發明提供的一種視頻編/解碼的流程示意圖,該視頻編/解碼實現方式包括過程至過程,過程至過程可以由上述的編碼器20、解碼器30、源設備11或目的設備12中的任意一個或多個執行。
例如,獨立編碼單元的寬為w_lcu,高為h_lcu。若並行編碼單元劃分成一個獨立編碼單元,則獨立編碼單元的尺寸與並行編碼單元完全相同;否則,則獨立編碼單元的寬應大於高(除非是邊緣區域)。
通常的,獨立編碼單元可為固定的w_lcu×h_lcu,w_lcu和h_lcu均為2的N次方(N0),如獨立編碼單元的尺寸為: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)和量化組(Quantization Group,QG)可以相同。
下面以半定長編碼方式對殘差係數編碼的部分進行示例性說明。首先,將一個RB塊內殘差絕對值的最大值定義為修整最大值(modified maximum,mm)。其次,確定該RB塊內殘差係數的編碼比特數(同一個RB塊內殘差係數的編碼比特數一致)。例如,若當前RB塊的關鍵限值(Critical 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位元。
另外,對於某些特殊的情況,視頻編碼器也可以直接編碼圖像的原始值,而不是殘差值。
基於前述的問題,本發明針對無損與近無損的壓縮編碼框架,提出一種視頻編解碼方法,可以對原始像素(量化/非量化)的值、或預測後(量化/非量化)的殘差係數、或變換後(量化/非量化)的變換係數進行如下編碼:(1)考慮到原始像素,殘差係數以及變換係數之間,資料分佈的不同,對於不同的資料,根據其分佈特點使用不同的編碼方法。
(2)同時可以對資料設計不同的掃描方式,掃描的方式要考慮資料的分佈,盡可能使幅值相近的係數分佈在一起。
(3)對於掃描後得到的資料,可以對其進行分組,分組方式可以根據資料的分佈進行不規則分組,也可以直接進行固定分組,資料的具體分組情況可以編解碼約定一致,或者根據上下文匯出(包括根據已編碼資料匯出,根據預測係數匯出,根據已編碼的參數匯出),或者由編碼端傳參的方式得到。
(4)對於不同的資料分佈,可以選擇直接根據待編碼資料進行編碼,也可以根據上下文進行參數估計,估計待編碼係數的編碼範圍,或直接估計相關的待編碼係數值,然後可以根據估計值的範圍,計算得到一個參數糾正值,可以選擇是否再傳遞一個參數糾正值,使得估計參數更加準確。
(5)對於不同的資料分佈,可以根據上下文進行參數估計,估計下一組(每組係數個數可以是大於等於1)編碼係數的數值範圍,根據估計值選擇對下一組係數的編碼方式。
(6)對於不同的資料分佈,可以根據上下文進行參數估計,然後從碼流中解析一個參數糾正值,得到下一組編碼參數的數值範圍,根據數值範圍根據選擇對下一組係數的編碼方式,可以根據係數不同範圍選擇不同的編碼方案和編碼方式。
(7)由於時域上的資料分佈與頻域上的資料分佈不同,時域上的資料分佈較為均勻,而頻域上的資料較大的能量會分佈在低頻資訊上,因此對變換係數的編碼,可以根據考慮對變換後係數的位置進行特殊分組。
(8)對係數進行編碼的時候,可以選擇一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、游程編碼、k階指數哥倫布編碼、截斷萊斯編碼、哥倫布-萊斯編碼、霍夫曼編碼、算術編碼或者自我調整變長編碼等。可以使用其中一種或結合多種編碼方式,對係數進行編碼。
在具體的實施方式中,對編碼係數的掃描方式可以選擇光柵掃描、塊掃描、水平掃描、垂直掃描、往返(水平/垂直)掃描、對角(左上,右上,左下,右下)掃描、逆對角線掃描、逆水平掃描、逆垂直掃描或者基於一個固定的掃描範本進行掃描等。
整體來說,本發明實施例提供的總體編碼流程與解碼流程的過程一致,對於需要寫入碼流的參數,可以經過在編碼端的位元速率失真優化(Rate Distortion Optimization,RDO)得到,也可以估計得到。本發明實施例提供的視頻編解碼流程主要包括分組編碼流程以及無需分組編碼流程。
1、分組編碼流程:首先將係數變為一維向量,若待編碼區域是三維圖像,先將三維圖像劃分為1個或多個二維繫數塊,若待編碼區域是二維繫數塊,將待編碼塊使用某一種掃描順序,將二維繫數塊掃描為成一維繫數向量。
其次將係數向量按照係數大小進行分組,將幅值相近的係數分為同一個組,根據幾種固定的分組方式,將一維繫數進行分組,然後將具體的分組資訊編碼,或者根據預測方式,變換方式,匯出一維繫數分組方式,同一組內編碼係數可以使用一個參數group_param,這個參數可以指導後面所有係數的編碼。參數group_param可以用定長碼編碼,也可以使用一元碼或截斷一元碼編碼。然後根據group_param使用某一種編碼方式編碼組內每一個係數。
2、無需分組編碼流程:類似分組方案,去除分組方法,逐個係數進行編碼,對於每個待編碼係數,可以基於上下文匯出待編碼係數的取值範圍,基於這個範圍選擇一種編碼方式對其進行編碼。
下面,簡單介紹本發明實施例總體解碼流程:a)確定對係數的掃描方法;b)確定係數類型(原始值,變換係數,預測後的殘差係數);c)確定係數編碼方法;d)根據編碼方法從碼流中解碼出每個係數,或每組係數所需參數;e)根據係數編碼方法確定是否需要根據上下文資訊匯出預測參數;f)若存在預測參數,則根據預測參數以及碼流中解析的參數,按照係數編碼方式進行相應的解碼,否則,直接根據預測參數以及碼流中解析的參數,按照係數編碼方式進行相應的解碼;g)若存在分組,則根據碼流將每組內的解碼係數按照順序放回原來係數位置,否則直接解碼得到所有係數值。
其中,解碼端的步驟a)、b)和c)中確定的方式可以由碼
流解析,也可以由編解碼端約定,或者解碼端匯出(根據當前塊的大小或預測方式,變換方式等參數確定)的方法確定。
1、分組解碼的流程主要包括:首先,確定該塊的掃描方式;其次,確定掃描後的係數的分組劃分方式;然後,使用某一種解碼每個組參數group_param,根據group_param,使用某一種解碼方法解碼組內每個係數值;最後根據掃描方式,將改編碼塊內係數恢復為原來的排布。
2、無需分組解碼的流程主要包括:首先,確定該塊的掃描方式;根據上下文進行預測當前編碼係數範圍,根據係數的取值範圍,選擇一中解碼方法進行解碼。
接下來將結合圖式對本發明實施例提供的視頻解碼方法、視頻編碼方法進行詳細介紹。
本發明提供一種視頻解碼方法,請參考圖4B,為本發明實施例提供的一種視頻編解碼方法的流程圖。該方法中的編碼過程可以由前述的編碼器來執行,解碼過程可以由前述的解碼器來執行,該方法可以包括如下幾個步驟。
步驟401:編碼端將原始圖像資料中的待編碼單元根據第一掃描方式進行掃描得到係數序列。
在一種實施方式中,編碼端對原始資料塊進行掃描,可以基於不同的掃描方式得到待編碼的係數。具體的,第一掃描方式可以包括一下任一種:光柵掃描、塊掃描、水平掃描、垂直掃描、往返(水平/垂直)掃描、對角(左上,右上,左下,右下)掃描、逆水平掃描、逆垂直掃描、希爾伯特掃描或者其他的基於一個固定的掃描範本進行的掃描等。其中,每種掃描方式的具體掃描過程可以參照相關的技術說明,本發明中對此不做過多限定。
編碼端可以根據當前係數的預測方式或變換方式等匯出其中一種或多種掃描方式。或者,編碼端可以根據編解碼的預先約定,對所有係數選擇一種掃描方式,從而解碼端也可以根據預先約定確定該掃描方式。
在一種實施方式中,本發明實施例中的視頻編解碼方式可以
適用於,對原始像素的編碼、或對原始像素值進行預測得到殘差值的編碼、或對原始像素值進行預測得到殘差值再進行量化後的係數進行編碼、或對預測後的殘差值經變換後得到的變換係數進行編碼、或對預測後殘差值經變換後得到變換係數並進行量化後的係數進行編碼等。以上幾種資料的編碼都可以通過本發明提供的實施方式進行編碼壓縮。
也就是說,本發明實施例中所指的原始資料塊、待編碼單元或解碼得到的重建資料塊,可以為待編碼圖像的原始像素值組成的資料塊,或者,是對原始像素值進行預測得到的殘差值組成的資料塊,或者,是對所述殘差值經量化後的係數組成的資料塊,或者,是對所述殘差值經變換後得到的變換係數組成的資料塊,或者,是對所述殘差值經變換後變換係數再經量化後的係數組成的資料塊。下述的實施例中對此不再重複說明。
在一種實施方式中,本發明實施例中的待編碼的資料序列可以為各種大小的係數塊,例如,可以是m×n的資料塊,其中m和n均小於或等於64,例如待編碼單元為16×4的係數塊、16×1的係數塊、8×4的係數塊、8×2的係數塊或者4×2的係數塊等。
步驟402:編碼端將係數序列按照第一分組方式進行分組,得到多組待編碼子序列。
在一種實施方式中,所述分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。其中,多組待編碼子序列中的係數數量可以相同,也可以不同。後續將基於具體的實施例對具體的分組方式進行介紹,此處不再贅述。
步驟403:編碼端確定每一組待編碼子序列對應的係數編碼方式,並逐個進行編碼,得到已編碼的碼流。
在一種實施方式中,所述編碼方式可以包括前述的一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼等中的至少一種。還可以為上述編碼方式中多種編碼方式的組合,後續將基於具體的實施例進行介紹,此處不再贅述。
在一種實施方式中,針對待編碼子序列確定的編碼方式可以相同,也可以不同。後續將基於具體的實施例對具體的編碼方式進行介紹,此處不再贅述。
步驟404:編碼端向解碼端逐個傳輸碼流。
步驟405:解碼端獲取碼流,確定待解碼單元的掃描方式、分組劃分方式以及每一組對應的編碼方式。
解碼端獲取已編碼的碼流,可以逐段進行解碼。其中,待解碼單元可以為已編碼的碼流中解碼端進行解碼處理的資料單元。
在一種實施方式中,解碼端可以根據編解碼端的預先約定或者上下文資訊,確定該待解碼單元所用的掃描方式、分組劃分方式以及每一組對應的編碼方式中的至少一種。或者,解碼端還可以根據碼流解析出該待解碼單元所用的掃描方式、分組劃分方式以及每一組對應的編碼方式中的至少一種。或者,解碼端還可以根據該待解碼單元的預測方式、量化方式和/或變換方式得到每一組對應的分組方式。後續將基於具體的實施例進行介紹,此處不再贅述。
步驟406:解碼端逐個根據每一組的編碼方式進行解碼,得到待解碼單元對應的係數塊。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據編碼演算法解碼得到每個組的組參數;在一個例子中,在一種實施方式中,組參數的解碼方式具體可以包括:解碼端根據以下至少一種編碼方式對應的解碼方式進行解碼得到每個組的組參數:一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼或哥倫布-萊斯編碼。
2、解碼端根據每個組的所述組參數,根據所述半定長編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據定長編碼演算法解碼得到每個組的組萊斯參數,或者,根據上下文模型得到每個組的組萊斯參數;2、解碼端根據每個組的所述組萊斯參數,根
據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據上下文模型得到每個組的組萊斯參數;2、解碼端根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據每個組的組萊斯參數和組參數偏差得到每個組的組參數;在一個例子中,可以根據組萊斯參數和組參數偏差更新得到每個組的組參數,具體的,組參數=組萊斯參數+組參數偏差。
3、解碼端根據每個組的組參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,待解碼單元對應的係數塊包括每個組中的多個係數值。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據定長編碼演算法解碼得到每個組的階數k,或者,根據上下文模型得到每個組的階數k;2、解碼端根據每個組的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,待解碼單元對應的係數塊包括每個組中的多個係數值。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據上下文模型得到每個組的階數k;2、解碼端根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;然後,根據組參數偏差更新每個組的階數k;在一個例子中,每個組的階數k=組參數偏差+上下文模型得到原階數k。
3、根據每個組更新後的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,解碼過程具體可以包括:1、解碼端根據已經解碼得到的一個或多個組的係數、預測方式、量化方式或者變換方式中的至少一個,確定當前組的編碼方式;2、解碼端根據當前組的編碼方式對應的解碼方式進行解碼得到當前組的係數,其中,當前組的編碼方式可以是哥倫布-萊斯編碼、k階指數哥倫布編碼或者半定長編碼方式中的
幾種編碼方式的組合。後續將基於具體的實施例進行介紹,此處不再贅述。
在一種實施方式中,上述任一種編解碼方式中,編碼單元的多個分組中,至少兩個分組的編碼方式不同。
步驟407:解碼端根據待解碼單元的掃描方式,將待解碼單元的係數塊內係數進行恢復得到重建資料塊。
解碼端逐個將每個組係數塊內係數進行恢復得到待解碼單元對應的重建資料塊。
在一種實施方式中,本發明實施例中適用的掃描方式可以包括光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
通過本發明的上述實施方式,解碼端可以根據不同的預測方式,匯出不同的掃描方式,同時匯出係數分組方式,這樣的係數分組結合了預測的資訊,使得分組後的係數更加統一,編碼端對於變化很小的係數,可以分配較小的碼字進行編碼,從而編碼方式較靈活,提高編碼性能。此外,通過設計多種固定分組模式可以更好的適應於半定長編碼方式,可以靈活地為每個編碼塊選擇更好的二值化方法,編碼演算法複雜度較低。
以下將結合幾個具體的實施例,對本發明實施例的技術方式進行說明。
實施例1:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
其中,所述分組方式可以包括固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
具體的,固定長度的分組方式,如將整個待編碼單元作為一個組,或者,將整個待解碼單元中的每4個係數作為一組,或者,將整個待編碼單元中的每3個係數作為一組。示例性的,待編碼單元為12行4列的資料單元,即12×4的待編碼單元,若根據每4個係數作為一組的分組方式,則可以將12×4的待編碼單元分為12個組;若根據每3個係數作為一
組的分組方式,則可以將12×4的待編碼單元分為16個組;若根據整個待編碼作為一組的分組方式,則可以將該12×4的待編碼單元直接作為1個組。
在一個例子中,分組方式還可以是基於係數排列位置進行分組劃分的方式。具體的,可以將整個待編碼單元中的每個係數按照排列位置均勻劃分為2組、3組或4組等。例如,按照比例均分為2組,示例性的,對於12×4的待編碼單元,若整個待解碼單元係數個數N=48,按照1:1的比例均分為2組,則12×4的待編碼單元中前24個係數為一組,其餘的後24個係數作為另一組。
在一個例子中,還可以將整個待編碼單元中的係數按照位置進行不均勻劃分為2組、3組或4組等。示例性的,不均勻劃分為3組,且劃分的比例可以是2:1:1,即可以將12×4的待編碼單元中按照係數排列位置的1~24係數為1組,25~36係數作為2組,37-48係數作為3組。
在一個例子中,分組方式還可以是基於每個組的係數數量進行分組,例如,將整個待編碼單元中的每2個相鄰係數作為一組,或者每3個相鄰係數作為一組,或每4個相鄰係數作為一組等方式。
在一個例子中,分組方式還可以是基於基於整個待編碼單元中係數排列位置每間隔a個點作為一個組進行劃分。例如,a為1時,即可以將整個待編碼單元中係數位置每隔1個點的係數作為一個組,分為2個組;a為2時,即可以將整個待編碼單元中係數位置每隔2個點的係數作為一個組,分為3個組。
在一個例子中,分組方式還可以是基於待編碼單元中係數值大小進行分組劃分,由於待編碼單元中係數值大小無法預測,因此一般的基於係數值大小進行分組劃分之後的每個組中係數個數不相同,因此,這種劃分方式在本發明中可以稱為半定長分組方式。
示例性的,按照係數值大小分組可以確定待編碼單元中每個係數是否大於n,可以將大於或等於n的係數作為一組,小於n的係數作為一組。或者,可以將大於n的係數作為一組,小於或等於n的係數作為一組。
其中,n的值可以為編碼端和解碼端預先約定的,或者通過資訊交互確定的,或者,還通過碼流解碼確定。
示例性的,編碼端和解碼端可以預先約定一個數值,如n=23。或者,解碼端可以根據已解碼重建值或者預測值進行預測,確定數值n。或者,解碼端可以根據已解碼係數值進行預測,確定數值n。
示例性的,解碼端可以根據已解碼重建值或根據預測值進行預測,確定數值n;再從碼流中解析當前的待解碼單元的每一個組內每個係數值是否大於這個預測值n,然後將大於n的係數作為一組,小於或等於n的係數作為一組。
進一步的,上述的多種分組方式中,在對待編碼單元中的係數進行分組後,若某組內係數個數較多,可以進行二次分組。例如,將待編碼單元中的係數大於n分為一組,該組內的係數個數大於預設的係數個數,則可以對該組進行二次分組,具體的,二次分組的方式可以基於前述任一種的分組方式或者多種分組方式的組合進行分組。
在一個例子中,對於對待編碼單元中的係數為變換係數,則分組方式還可以表示為:將整個待編碼單元中變換系統的直流分量(Direct Current,DC)係數作為一組,交流分量(Alternate Current,AC)係數按照前述的任一種的分組方式或者多種分組方式的組合進行分組。
步驟3、解碼端使用定長碼解碼每個組的參數group_param,然後,逐個根據每個組的參數group_param,使用定長碼解碼每個組內的每個係數值,得到待解碼單元對應的係數塊。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
在一種實施方式中,編碼端和解碼端可以預先約定或者配置有上述幾種分組方式中的一種或多種,在視頻編解碼的過程中,編碼端根據待編碼單元的係數情況選擇其中一種或者幾種分組方式進行分組編碼。解碼端可以通過碼流解析或者與編碼端的信令交互,或者上下文預測、匯出等方式確定分組方式,並基於確定的分組方式對碼流進行分組解析。此外,解碼端還可以是根據待解碼單元內不同像素的預測方向、預測模式、
或變換模式等,匯出當前待解碼單元中係數的分組方式。具體示例將在下文進行描述,此處不再贅述。
在一種實施方式中,基於實例1中的固定長度的分組編碼方式或半定長分組編碼方式,對於每組參數group_param進行編碼和解碼,可以使用以下任一種編碼方式,或者幾種編碼方式進行結合。
1、一元碼:是一種簡單的二值化方法。具體的,對於非負整數N,其一元碼表示為N個1加1個0。
2、截斷一元碼:是一元碼的變體。具體的,在已知待編碼符號的最大值為N_max的情況下,假設當前待編碼符號為非負整數N,若N<N_max,則截斷一元碼即為一元碼;若N=N_max,則截斷一元碼為N個1。
3、截斷二元碼:計算val的相關變數(stage,num0,num1以及thd等),對於0~(thd-1),其二元符號串長度為stage的定長碼,對於thd~val,其二元符號串長度為(stage+1)的定長碼。
4、定長編碼:使用固定碼長對待編碼係數進行編碼,例如使用8位元二進位數字進行編碼的ASCII碼。
5、k階指數哥倫布編碼:k階指數哥倫布編碼包括首碼prefix和尾碼suffix兩部分,編碼方法包括以下步驟:1)將數位X以二進位形式寫出,去掉最低的k個比特,之後加1,求得T;2)計算T的比特數,前面需要補T-1個零;3)將去掉的最低k個比特位補回比特串尾部。
6、截斷萊斯編碼:截斷萊斯碼編碼包括首碼prefix和尾碼suffix兩部分,已知最大上限值cMax,萊斯參數cRice,對待編碼符號cVal進行編碼。
具體編碼過程包括:(1)計算prefix:prefix=cVal>>cRice,對prefix以cMax>>cRice為上限制使用截斷一元碼二值化。(2)計算suffix:如果cVal<cMax:suffix=cVal-prefix<<cRice。如果cVal>=cMax:無尾碼suffix。suffix按定長碼計算,位數為cRice。根據計算過程可以看出,當cRice=0時,截斷萊斯編碼等同於截斷一元碼。其中,符號>>表示為右移運算,<<表示為左移運算。
7、霍夫曼編碼:統計所有係數出現的頻率,構建霍夫曼樹,為概率較大的係數分配較短碼字,為概率較小的係數分配較長碼字。
8、哥倫布-萊斯編碼:Golomb-Rice是Golomb編碼的一個變種,相比Golomb編碼區別是,參數m的限制條件為,m必須是2的次冪。具體的,初始化參數m,m必須為2的次冪;計算q和r,其中,q=N/m;r=N&(m-1);使用一元編碼編碼q,取r的二進位位元的低log2(m)位作為r的碼字。
此外,還可以使用定長編碼與截斷一元碼相結合,從而得到以下幾種組合解碼方案:
方案1:使用類似截斷一元碼的方案,對大於(N-1)>>1的首碼使用以1開始以0結尾的截斷一元碼,對於小於(N-1)>>1的首碼,使用以0開始,以1結尾的截斷一元碼。
方案2:對大於(N-1)>>1的首碼使用以1開始以0結尾的截斷一元碼,對於小於(N-1)>>1的首碼,使用以0開始的定長碼表示。
方案3:對大於(N-1)>>1的首碼使用以1開始的定長碼表示,對於小於(N-1)>>1的首碼,使用以0開始,以1結尾的截斷一元碼表示。
方案4:使用類似截斷一元碼的方案,對大於(N-1)>>1的首碼使用以0開始以1結尾的截斷一元碼,對於小於(N-1)>>1的首碼,使用以1開始,以0結尾的截斷一元碼。
方案5:對大於(N-1)>>1的首碼使用以0開始以1結尾的截斷一元碼,對於小於(N-1)>>1的首碼,使用以1開始的定長碼表示。
方案6:對大於(N-1)>>1的首碼使用以0開始的定長碼表示,對於小於(N-1)>>1的首碼,使用以1開始,以0結尾的截斷一元碼表示。
另外,在一種實施方式中,編碼端還可以基於以上幾種編碼方式對分組方式進行編碼。也就是說,基於實施例1中的多種半定長分組方式,編碼端和解碼端可以配置有n種分組方法,然後編碼端可以根據配置使用其中一種編碼方式對待編碼單元進行編碼,從而解碼端可以基於碼
流匯出待解碼單元所使用的分組方式,進一步基於分組方式進行解碼。
在一種實施方式中,基於上述實施例1中的半定長分組解碼可以結合上下文模型匯出預測值,並進一步解碼。具體的,對於待解碼單元中每組的組參數group_param,可以先由上下文匯出預測值group_param_pred,再使用前述實施方式中的解碼方式,解出真實group_param與預測的group_param_pred的差值group_delta,根據group_param=group_param_pred+group_delta,得到待解碼單元中每一組的組參數group_param。然後再根據組參數以及解碼演算法解碼得到每一組的所有係數。
在一種實施方式中,編碼端對於半定長編碼的係數需要進行定長編碼的情況下,對於較大的係數,編碼端可以直接用定長編碼對原始像素值進行編碼,或者,直接用定長編碼對重建像素值進行編碼。
示例性的,若原始像素值的位元寬為8,當係數組的編碼位元寬group_param>=6,或者,係數組的編碼位元寬group_param>=7,則可以直接用定長碼為8編碼原始像素值,或編碼重建像素值,從而可以提高編解碼的性能。
在一種實施方式中,解碼端確定待解碼單元的分組方式還可以是根據待解碼單元內不同像素的預測方向、預測模式、或變換模式等,匯出當前待解碼單元中係數的分組方式。
具體的,解碼端可以根據預測模式匯出待解碼單元中係數的分組方式及編碼方式。
示例性的,當前第一列使用一個預測模式,後面所有列是水平預測模式。第一個點可以直接傳遞原始值,或由上一個塊重建值預測。如圖5所示,以16×4的待解碼單元為例,若經當前預測方案的殘差由預測後如下圖5所示,第一列的所有殘差值作為1組。剩餘係數塊15×4中每一行殘差值作為1組,第一個組內係數個數較少,不再繼續分組,其餘在每個組內允許更小的分組。
因此,整個塊的掃描順序是,先垂直掃描,得到第一組係數,對其進行編碼;再水平掃描得到第二組係數,第二組係數可以從左到右劃
分為更小的小組,每個小組內可以使用不同的編碼方案。第二組內第一個小組使用半定長編碼,根據第一小組內使用的首碼值的大小,若首碼小於某一個閾值,則使用哥倫布-萊斯編碼後一個小組的係數,若首碼大於某一個閾值,則使用k階哥倫布編碼後一個小組的係數,k值由前一個小組的殘差值匯出。
另外,解碼端可以根據變換模式匯出待解碼單元中係數的分組方式及編碼方式。
示例性的,編碼端可以根據DC係數的具體位置,對變換係數進行編碼。可以將所有DC係數分為一組,將所有AC係數分為一組。當DC係數個數較多時,可以將DC係數組內部再二次分組;當AC係數個數較多時,可以將AC係數組內部再二次分組。
具體的,由於DC係數值在大多數情況下,係數比較大,因此可以對DC係數使用較靈活的編碼方案,例如使用分組較細的k階指數哥倫布編碼。當DC係數幅值值較相近的時候,對DC係數進行係數預測,使用k階指數哥倫布先編碼第一個DC係數,剩餘DC係數只需要編碼DC係數符號,以及與第一個DC係數的差值即可。其中,DC係數差值的編碼可以使用半定長編碼。
具體的,AC係數一般情況下係數值較小,因此可以整個AC係數作為一組,使用半定長編碼;或者,可以將AC係數分成2組(例如,右上角+左下角為一組,右下角為一組),每組使用半定長編碼。但當AC係數幅值較大的時候,可以將右上角、左下角的AC係數進行以2-3個係數為一組,使用哥倫布-萊斯編碼,對右下角使用半定長編碼。
其中,對待編碼單元的掃描順序可以為,先將整個大塊分為DC係數與AC係數。如圖6所示,以16×4的待編碼單元為例,變換後係數分佈可能如圖6所示。在DC係數內,若以整個DC係數為一組編碼,那麼對DC係數使用光柵掃描,否則,使用希爾伯特掃描,將距離較近的係數放在一起編碼。在AC係數中,若所有AC係數作為一組,則對AC係數直接使用光柵掃描,否則,首先按照右上角,左下角,右下角的順序進行掃描,對三個角內部的係數,使用使用光柵掃描順序進行掃描。
在另一個實施例中,以16×4的待編碼單元為例,變換後係數分佈可能如圖7所示。將係數劃分為2個塊,在每個塊內做變換。如圖7所示,若只有兩個DC係數,存在以下分組:1、直接將兩個DC係數作為一組,所有AC係數分為1組;掃描順序為對每個8×4內使用光柵掃描。
2、直接將兩個DC係數作為一組,所有AC係數分為2組,每個8×4為一組(除去DC係數);掃描順序為對每個8×4內使用光柵掃描。
3、直接將兩個DC係數作為一組,所有AC係數分為4組,每個4×4為一組(除去DC係數)在每個4×4內使用光柵掃描。
4、直接將兩個DC係數作為一組,所有AC係數分為8組(8×4內,每兩列為一組)使用垂直掃描。
基於上述任一種分組方式,在一個例子中,編碼端可以對DC係數使用k階指數哥倫布編碼,對AC係數,使用半定長編碼。
實施例2:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端使用定長碼解碼每個組的萊斯參數CRice,然後,使用哥倫布-萊斯解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例3:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端根據上下文估計每個組的萊斯參數CRice,然後,使用哥倫布-萊斯解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例4:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,
解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端根據上下文估計每個組的萊斯參數CRice,再使用定長碼解碼每個組的參數偏差C,將原CRice+C更新為萊斯參數CRice,即CRice+=C。然後,使用哥倫布-萊斯解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例5:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端確定每個組的萊斯參數CRice,然後,使用哥倫布-萊斯編碼解碼組內每個係數值。
其中,解碼端可以基於碼流匯出萊斯參數CRice,其具體的解碼方法可以為前述實施例1中的任一種,如一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼等。解碼端對係數的分組方式可以根據係數值的大小,使用定長碼解碼與截斷一元碼結合,此處不再贅述。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例6:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端根據上下文估計每個組的萊斯參數CRice,再使用定長碼解碼每個組的參數偏差C,萊斯參數CRice+=C,使用哥倫布-萊斯編碼解碼組內每個係數值。
其中參數偏差C的解碼方案可以為前述實施例1中的任一種,如一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼等。解碼端對係數的分組方式可以根據係數值的大小,使用定長碼解碼與截斷一元碼結合,此處不再贅述。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例7:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端使用定長碼解碼每個組的階數k,然後,使用k階指數哥倫布解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例8:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端上下文估計每個組的階數k,然後,使用k階指數哥倫布解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例9:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端上下文估計每個組的階數k,再使用定長碼解碼每個組的參數偏差C,將原階數k+C更新為階數k,即k+=C。然後,使用k階指數哥倫布解碼組內每個係數值。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例10:步驟1、解碼端確定待解碼單元的掃描方式。
步驟2、解碼端根據編解碼端預先配置的n種固定分組方式,解碼端根據碼流解析出待解碼單元的分組方式。
步驟3、解碼端確定每個組的階數k,然後,使用k階指數哥倫布解碼組內每個係數值。
其中,解碼端可以基於碼流匯出階數k,其具體的解碼方法可以為前述實施例1中的任一種,如一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼等。解碼端對係數的分組方式可以根據係數值的大小,使用定長碼解碼與截斷一元碼結合,此處不再贅述。
步驟4、解碼端根據待解碼單元的掃描方式,將該係數塊內係數進行恢復得到原始資料塊。
實施例11:步驟1:解碼端利用周圍重建像素值計算某一方向的像素梯度,可以根據當前像素的預測方向計算一個梯度值,或者根據經驗,計算水平方向的梯度值或者垂直方向的梯度值,並對梯度進行量化。
步驟2:解碼端根據上下文估計當前係數的取值範圍,根據取值範圍估計哥倫布-萊斯的萊斯係數k值,或指數哥倫布的階數k值。
實施例12:步驟1:編碼端根據上下文估計當前係數的取值範圍,根據取值範圍選擇一種編碼方式。
步驟2:編碼端用相應的哥倫布編碼方法對當前係數進行編碼。
示例性的,當估計的係數絕對值取值範圍是大於或等於25時,估計哥倫布-萊斯編碼的k值,然後對當前係數用哥倫布-萊斯編碼進行編碼。當估計的係數絕對值取值範圍是小於25時,估計指數哥倫布的k值,然後對當前係數用指數哥倫布編碼進行編碼。
或者,在一個例子中,當估計的係數絕對值取值範圍是大於25時,估計指數哥倫布編碼的k值,然後對當前係數用指數哥倫布編碼進行編碼。當估計的係數絕對值取值範圍是小於或者等於25時,估計哥倫布-萊斯的k值,然後對當前係數用哥倫布-萊斯編碼進行編碼。
進一步的,係數的取值範圍也可以根據經驗值取其他正整數值,本發明實施例對此不做具體限定。
實施例13:步驟1:編碼端根據上下文估計當前編碼係數的值。
示例性的,若真實值大於當前估計值,則編碼1;否則編碼0。
其中,編碼值0和1分別對應一種編碼方式。
步驟2:編碼端用相應的哥倫布編碼方法對當前係數進行編碼。
示例性的,1對應指數哥倫布編碼,0對應哥倫布-萊斯編碼。當得到編碼值為1時,根據上下文估計指數哥倫布編碼的k值,然後對當前係數用指數哥倫布編碼進行編碼。當得到編碼值為0時,估計哥倫布-萊斯的k值,然後對當前係數用哥倫布-萊斯編碼進行編碼。
或者,在一個例子中,當得到編碼值為0,根據上下文估計哥倫布-萊斯編碼的k值;否則估計指數哥倫布的k值,然後用相應的哥倫布編碼方法對當前係數進行編碼。
實施例14:步驟1:編碼端編碼係數時,根據上下文匯出當前編碼係數的一個估計值n,從碼流中讀出,當前編碼係數是否小於n。
步驟2:編碼端對於小於n的參數,使用定長碼編碼;對於大於n的係數,估計一個k值,使用指數哥倫布或者哥倫布萊斯進行解碼,將解碼後的值加上n。
實施例15:步驟1:編碼端對殘差係數分組編碼時,根據上下文匯出一個估計值n,根據估計值n將待編碼係數的參數分為兩組。
步驟2:對於小於n的參數,編碼端使用定長碼解碼;對於大於n的係數,估計一個k值,使用指數哥倫布或者哥倫布萊斯進行解碼,將解碼後的值加上n。
或者對於小於n的參數,估計一個k,使用指數哥倫布解碼;對於大於n的係數,估計一個k值,使用哥倫布萊斯進行解碼,將解碼後的值加上n。
或者對於小於n的參數,估計一個k,使用哥倫布萊斯解碼;對於大於n的係數,估計一個k值,使用指數哥倫布進行解碼,將解碼後的值加上n。
實施例16:步驟1:編碼端對殘差係數進行分組編碼時,根據上下文匯出一個估計值n,根據碼流中使用截斷一元碼讀出一個糾正值delta,根據delta更新n的值為:n+=delta。根據n的值,將待解碼單元中
係數的參數分為兩組。
步驟2:對於小於n的參數,使用定長碼解碼;對於大於n的係數,估計一個k值,使用指數哥倫布或者哥倫布萊斯進行解碼,將解碼後的值加上n。
或者對於小於n的參數,估計一個k,使用指數哥倫布解碼;對於大於n的係數,估計一個k值,使用哥倫布萊斯進行解碼,將解碼後的值加上n。
或者對於小於n的參數,估計一個k,使用哥倫布萊斯解碼;對於大於n的係數,估計一個k值,使用指數哥倫布進行解碼,將解碼後的值加上n。
實施例17:步驟1:編碼端根據上下文資訊,從碼流中解析是否打開游程編碼模式。
具體的,基於編碼係數、或重建資料中若存在連續多個相等的值,則打開游程編碼模式;否則關閉游程編碼模式,直接使用前述任一種的編碼方案。
示例性的,上下文資訊可以包括如下描述中的一種:a)根據已解碼的重建像素值的各個方向上的梯度或梯度之和的大小;b)根據相鄰預測像素值的各個方向上的梯度或梯度之和的大小;c)根據已解碼的係數在各個方向上的梯度或梯度之和的大小;d)結合a、b或c中2個梯度之和的大小加權;e)結合a、b、或c中3個梯度之和的大小加權。
實施例18:由於半定長編碼的碼長與分組方式以及組內係數的個數有關,編碼端根據不同的預測方案或不同的圖像內容進行編碼的壓縮率或編碼性能都會有較大差異。因此,需要預先約定一個較好的分組方法:如固定大小的分組方式。
對於多種固定塊劃分進行解碼時,可以首先解碼當前編碼單元的塊劃分方法,然後按照固定劃分方法進行解碼。下面將結合圖式以及具體的實施例進行說明。
示例性的,可以將待編碼單元分成多個2×2小塊作為一個編碼組,以16×4的待編碼單元為例,組內共用一個CL。使用半定長編碼,
第一個CL值使用定長編碼,碼長為3或4(與圖像位元寬N相關)。第二個CL值為基於上下文預測得到的CL的差值,使用截斷一元碼編碼。截斷一元碼最長為N-1。
如圖8所示,將16×4的待編碼單元按照固定劃分為2×2小塊的分組方式,分組為如圖8中(1)中所示的16個小塊。每個2×2小塊之間,可以按照希爾伯特掃描方式進行掃描,示例性的,編碼端對待編碼單元掃描順序可以為如圖8中(2)所示的,按照編號順序0~15進行掃描。
其中,每個CL內部可以進行光柵掃描,即每個2×2小塊內部的掃描順序可以為如圖8中(3)所示的,按照編號順序0~3進行掃描。
CL之間可以使用上下文預測,CL 0使用定長碼直接編碼,CL 1=(CL 1-CL 0),使用截斷一元碼編碼,CL n =(CL n -(CL n-2+CL n-1*3>>2)),使用截斷一元碼編碼。
檢測CL n-2與CL n-1的重建值,若CL n-2與CL n-1內部所有重建值相等或幾乎相等,則判斷當前2×2小塊是否直接複用前面CL n-2與CL n-1內部的重建值。在一個例子中,也可以直接使用游程編碼,編碼當前編碼塊內部,直接使用已編碼重建值的2×2小塊的個數。編碼這個個數可以使用定長碼,根據當前編碼單元內未編碼的CL個數,確定定長碼碼長,最多15個未編碼單元,所以定長碼長最大為4比特(bit)。
在另一種實施方式中,如圖9所示,可以將待編碼單元分成多個4×1的小塊。以16×4的待編碼單元為例,可以將16×4的待編碼單元按照固定劃分為4×1小塊的分組方式,分組為如圖9中所示的16個小塊。
其中,圖像資料的多個分量(亮度值或色度值)的編碼方法可以一致,也可以不一致。
在一個例子中,編碼端對待編碼單元的固定塊劃分方式還可以是:2×1、1×2、1×4、2×4、4×2、2×8、2×16、4×4、8×4或16×4等等。本發明對劃分方式不做具體限定。
示例性的,以2×2固定塊劃分解碼為例,解碼端的解碼過程主要包括以下步驟。
1)若當前塊為第一個塊,使用定長碼解碼第0個塊的CL值,
根據CL值,使用定長碼解出4個係數值,將4個殘差值的位置按照光柵掃描順序存放於第一個2×2小塊中。
2)若當前塊並非第一個塊,根據前幾個塊的重建值是否相等,或CL值(前1或2個cl是否為0),若為前2個CL值為0,解析一個flag,即當前塊是否直接使用前一個係數值或者重建值。若是,不再解析當前塊;若否,計入第3步繼續解碼。
3)若當前塊並非第一個塊,使用截斷一元碼解碼出當前塊的CL值與前一個塊CL值的殘差值,得到當前值的CL,使用定長碼解出塊內四個係數值。根據希爾比特掃描順序,將每個2×2小塊按照順序存放。
需要說明的是,16×4的待編碼單元一共需要解析16個2×2小塊。若當前組的CL值大於等於圖像位元寬時,當前組直接編碼原始值,或重建值。
實施例19:對於非固定大小的塊劃分方式進行解碼的情況,下面將結合具體的實施例進行說明。
步驟1、匯出前塊的預測方案,得到當前塊中每個像素的預測模式,根據預測模式進行分組。
步驟2、若當前塊在預測時,對像素進行分組,則按照預測分組方案對當前塊進行分組。否則,若當前塊在做預測時,直接逐點預測,可以按照每個點的預測方向對其進行分組。
步驟3、根據預測順序,對每個組內係數進行解碼,若預測順序為從左上到右下,那麼對分組後的係數按照相同順序解碼,若預測順序為從左到右,也對分組後的係數按照相同順序解碼。
步驟4、匯出每個組是否使用變換編碼。
步驟5、若當前組使用了變換編碼,若當前組為第一個組,根據經驗值,或前一個編碼塊匯出階數k,對DC係數使用k階哥倫布解碼;若當前組不是第一個組,則根據前一個組的DC係數值,估計當前組的DC系參數k,使用k階哥倫布解碼。
1)對於其餘係數,若DC係數值大於閾值,則從碼流中解析當前組的後1/2係數(即高頻部分係數)是否全為0。若是,則判斷當前組
係數除了DC係數,以及為0係數外剩餘係數個數,作為需要編碼的係數個數。
2)若係數個數小於3,則對於其餘係數使用哥倫布-萊斯編碼,第一個編碼的係數根據量化步長,以及DC係數值,匯出萊斯係數C,使用哥倫布-萊斯解碼,其後係數根據前一個係數值的大小匯出匯出萊斯係數C,使用哥倫布-萊斯解碼。否則,係數個數大於3,則使用半定長編碼;若前組的後1/2係數(即高頻部分係數)存在非零,按照2)處理。
3)從碼流中解析當前組的後1/4係數(即高頻部分係數)是否全為0,若全為0,則除了DC係數以及後1/4的係數以外,其餘係數按照2)處理,否則,出DC係數外全部係數按照2)處理。若DC係數值小於閾值,按照3)處理。
步驟6、若當前組內未使用變換編碼,則對於組內係數,匯出當前組內係數的量化步長,根據量化步長,以及前一組時域上的係數值進行解碼。
1)首先估計當前組內係數的絕對值的均值;2)然後,解碼當前組內所有係數絕對值與估計的均值比較結果,根據比較結果進行二次分組,大於均值為一組,小於等於均值為另一組;3)二次分組後,根據組內係數的個數,若小於均值的那一組的係數個數大於等於4,則使用半定長解碼,否則對於小於均值那組使用哥倫布萊斯解碼;對於大於均值那一組係數,若係數個數大於4,且估計的均值小於閾值,則使用半定長解碼,否則,使用k階指數哥倫布解碼。其中k值和C值,可以基於估計的均值進行估計,也可以基於估計的均值以及解碼端解析一個參數得到。
實施例20:步驟1、解碼端確定分組方式後,確定當前組內係數的個數x是否大於一個閾值m。例如m=30,x=32,則確定當前組內係數的個數x大於該閾值m。
步驟2、解碼端從碼流中解析最多n個位置,這個n個位置表示n個異常值(組內幅值較大的係數)點在當前組內的位置(例如n=2),位置編碼使用定長碼解碼,碼長與x值的大小有關(若x=32,碼長為5)。
步驟3、解碼端解碼當前組其他位置係數值。
其中,解碼當前組其他位置的係數值的方法可以是前述的半定長解碼、指數哥倫布解碼、哥倫布-萊斯解碼或者霍夫曼解碼等。
步驟4、解碼端使用k階指數哥倫布解碼解碼異常值,解碼後的幅值加上其餘位置係數值中的最大幅值,作為該異常點的幅值。
實施例21:步驟1、解碼端確定分組方式後,確定當前組內係數的個數x是否大於一個閾值m。例如m=30,x=32,則確定當前組內係數的個數x大於該閾值m。
步驟2、解碼端使用定長碼解碼當前組內的最大幅值,根據最大幅值的取值,使用定長碼解碼當前組內的最小幅值。根據最大幅值和最小幅值的取值範圍,對當前組內所有係數進行解碼。
具體的,若最大幅值等於最小幅值,則整個組的係數無需解碼;若最大幅值與最小幅值之間的差值為1,則整個組每個係數只需要1比特定長碼進行解碼;若最大幅值與最小幅值之間的差值小於n(例如n=15),則當前組內其餘位置的係數可以使用定長碼進行解碼。例如,n=15時可以使用4比特定長碼進行解碼。
若最大幅值與最小幅值之間的差值大於n,則根據差值選擇合適的階數k,使用k階指數哥倫布解碼當前組內係數。
需要說明的是,上述的本發明實施例中的各個實施例之間可以相互結合,例如,實施例1中多種不同的分組方式可以應用於其他實施例中,實施例2中的不同編解碼演算法也可以應用於其他實施例中,並且多種不同的編解碼演算法時間可以根據需要結合使用。
基於上述實施方式,本發明還提供一種視頻編碼裝置,以及對應的一種視頻解碼裝置,本發明中統稱為視頻編解碼裝置。結合前述的圖1至圖3,如圖10所示,該裝置1000可以包括收發模組1001和處理模組1002。
其中,收發模組1001可以用於獲取待解碼單元的碼流。
處理模組1002可以用於確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式;根據每個組的編碼方式進行解碼,得
到所述待解碼單元對應的係數塊;根據所述待解碼單元的所述掃描方式,逐個將每個組所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,重建資料塊為待解碼圖像的原始像素值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
在一種實施方式中,處理模組1002具體可以用於:根據編碼端以及解碼端的預先約定或者上下文資訊,確定所述待解碼單元的掃描方式、分組方式以及每一組對應的編碼方式中的至少一個;或者,根據所述碼流解析得到所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式中的至少一個;或者,根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述分組方式。
在一種實施方式中,處理模組1002具體可以用於:根據編碼演算法解碼得到每個組的組參數;根據每個組的所述組參數,根據所述半定長編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組1002具體可以用於:根據以下至少一種編碼方式對應的解碼方式進行解碼得到每個組的組參數:一元碼、截斷一元碼、截斷二元碼、定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼或哥倫布-萊斯編碼。
在一種實施方式中,處理模組1002具體可以用於:根據定長編碼演算法解碼得到每個組的組萊斯參數,或者,根據上下文模型得到每個組的組萊斯參數;根據每個組的所述組萊斯參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組1002具體可以用於:根據上下文模型得到每個組的組萊斯參數;根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據每個組的所述組萊斯參數和所述組參數偏差得到每個組的組參數;根據每個組的所述組參數,根據哥倫布-萊斯編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組1002具體可以用於:根據定長編碼演算法解碼得到每個組的階數k,或者,根據上下文模型得到每個組的階數k;根據每個組的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組1002具體可以用於:根據上下文模型得到每個組的階數k;根據定長編碼演算法或者截斷一元碼解碼得到每個組的組參數偏差;根據所述組參數偏差更新每個組的階數k;根據每個組更新後的所述階數k,根據k階指數哥倫布編碼演算法解碼得到每個組中的多個係數值,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值。
在一種實施方式中,處理模組1002具體可以用於:根據已經解碼得到的一個或多個組的係數、預測方式、量化方式或者變換方式中的至少一個,確定當前組的編碼方式;根據所述當前組的編碼方式對應的解碼方式進行解碼得到所述當前組的係數,其中,所述當前組的編碼方式是哥倫布-萊斯編碼、k階指數哥倫布編碼或者半定長編碼方式中的幾種編碼方式的組合。
在一種實施方式中,編碼單元的多個分組中,至少兩個分組
的編碼方式不同。
在一種實施方式中,若所述待解碼單元的解碼方式為哥倫布-萊斯編碼或者k階指數哥倫布編碼中的任一項,則處理模組1002具體可以用於:根據所述待解碼單元的預測方式、量化方式和/或變換方式得到所述待解碼單元的分組方式。
相對應的,本發明提供一種視頻編碼裝置,如圖10所示,該裝置1000包括收發模組1001和處理模組1002。
其中,處理模組1002用於將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;確定每組待編碼子序列對應的係數編碼方式,並逐個進行編碼得到已編碼碼流。
收發模組1001用於將已編碼碼流發送至解碼端。
在一種實施方式中,分組方式包括:固定長度的分組方式,或者,基於係數值大小進行分組劃分的半定長分組,或者,基於係數排列位置進行分組劃分中的至少一種。
在一種實施方式中,編碼方式:一元碼、截斷一元碼、截斷二元碼、定長編碼、半定長編碼、k階指數哥倫布編碼、截斷萊斯編碼、霍夫曼編碼、哥倫布-萊斯編碼中的至少一種。
在一種實施方式中,掃描方式包括:光柵掃描、塊掃描、水平掃描、垂直掃描、往返掃描、對角掃描、逆水平掃描、逆垂直掃描或者希爾伯特掃描中的至少一種。
在一種實施方式中,待編碼資料塊為待編碼圖像的原始像素值、對所述原始像素值進行預測得到的殘差值、對所述殘差值經量化後的係數,或者,對所述殘差值經變換後得到的變換係數中的一種組成的資料塊。
具體的,本發明提供的視頻編解碼裝置可以由前述圖2和圖3所示的編碼器和解碼器來實現,組成如圖1所示的編解碼系統。其裝置內部的結構示意圖請參照圖1至圖3所示,此處不再贅述。
針對本發明實施例提供的電子設備,其可以為筆記型電腦、
平板電腦、桌上型電腦、可攜式計算機等等,本發明實施例對此不做限定。
圖11為本發明實施例提供的一種電子設備的硬體結構圖。如圖11所示,該電子設備包括處理器1110和電腦可讀存儲介質1120。電腦可讀存儲介質1120存儲有能夠被處理器1110執行的電腦可執行指令,處理器1110用於執行電腦可執行指令,以實現本發明上述任意實施例公開的方法。
例如,處理器1110用於執行電腦可執行指令,以實現如下步驟:獲取待解碼單元的碼流;確定所述待解碼單元的掃描方式、分組方式以及每個組對應的編碼方式;根據每個組的編碼方式進行解碼,得到所述待解碼單元對應的係數塊;根據所述待解碼單元的所述掃描方式,逐個將每個組所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
例如,處理器1110用於執行電腦可執行指令,以實現如下步驟:將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;確定每組待編碼子序列對應的係數編碼方式,並逐個進行編碼得到已編碼碼流。
在上述實施例中,可以全部或部分地通過軟體、硬體、韌體或者其任意組合來實現。當使用軟體程式實現時,可以全部或部分地以電腦程式產品的形式實現。該電腦程式產品包括一個或多個電腦指令。在電腦上載入和執行該電腦指令時,全部或部分地產生按照本發明實施例中的流程或功能。該電腦可以是通用電腦、專用電腦、電腦網路或者其他可程式設計裝置。該電腦指令可以存儲在電腦可讀存儲介質中,或者從一個電腦可讀存儲介質向另一個電腦可讀存儲介質傳輸,例如,該電腦指令可以從一個網站網站、電腦、伺服器或資料中心通過有線(例如同軸電纜、光纖、數位用戶線(Digital Subscriber Line,DSL))方式或無線(例如紅外、無線、微波等)方式向另一個網站網站、電腦、伺服器或資料中心傳輸。該電腦可讀存儲介質可以是電腦能夠存取的任何可用介質或者是包括一個或多個可用介質集成的伺服器、資料中心等資料存放裝置。該可用介質可
以是磁性介質(例如,軟碟、磁片、磁帶)、光介質(例如,數位影音光碟(Digital Video Disc,DVD))、或者半導體介質(例如固態硬碟(Solid State Drives,SSD))等。
通過以上的實施方式的描述,所屬領域的技術人員可以清楚地瞭解到,為描述的方便和簡潔,僅以上述各功能模組的劃分進行舉例說明,實際應用中,可以根據需要而將上述功能分配由不同的功能模組完成,即將裝置的內部結構劃分成不同的功能模組,以完成以上描述的全部或者部分功能。上述描述的系統,裝置和單元的具體工作過程,可以參考前述方法實施例中的對應過程,在此不再贅述。
在本發明所提供的幾個實施例中,應該理解到,所揭露的系統,裝置和方法,可以通過其它的方式實現。例如,以上所描述的裝置實施例僅僅是示意性的,例如,所述模組或單元的劃分,僅僅為一種邏輯功能劃分,實際實現時可以有另外的劃分方式,例如多個單元或元件可以結合或者可以集成到另一個系統,或一些特徵可以忽略,或不執行。另一點,所顯示或討論的相互之間的耦合或直接耦合或通信連接可以是通過一些介面,裝置或單元的間接耦合或通信連接,可以是電性,機械或其它的形式。
所述作為分離部件說明的單元可以是或者也可以不是物理上分開的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位於一個地方,或者也可以分佈到多個網路單元上。可以根據實際的需要選擇其中的部分或者全部單元來實現本實施例方案的目的。
另外,在本發明各個實施例中的各功能單元可以集成在一個處理單元中,也可以是各個單元單獨物理存在,也可以兩個或兩個以上單元集成在一個單元中。上述集成的單元既可以採用硬體的形式實現,也可以採用軟體功能單元的形式實現。
所述集成的單元如果以軟體功能單元的形式實現並作為獨立的產品銷售或使用時,可以存儲在一個電腦可讀取存儲介質中。基於這樣的理解,本發明的技術方案本質上或者說對現有技術做出貢獻的部分或者該技術方案的全部或部分可以以軟體產品的形式體現出來,該電腦軟體產品存儲在一個存儲介質中,包括若干指令用以使得一台電腦設備(可以是
個人電腦,伺服器,或者網路設備等)或處理器執行本發明各個實施例所述方法的全部或部分步驟。而前述的存儲介質包括:快閃記憶體、移動硬碟、唯讀記憶體、隨機存取記憶體、磁碟或者光碟等各種可以存儲程式碼的介質。
以上所述,僅為本發明的具體實施方式,但本發明的保護範圍並不局限於此,任何在本發明揭露的技術範圍內的變化或替換,都應涵蓋在本發明的保護範圍之內。因此,本發明的保護範圍應以所述請求項的保護範圍為準。
401, 402, 403, 404, 405, 406, 407:步驟
Claims (8)
- 一種視頻圖像解碼方法,由解碼設備執行,包括: 獲取待解碼單元的碼流; 確定所述待解碼單元的掃描方式; 根據所述碼流解析出所述待解碼單元的分組方式; 根據所述碼流解碼得到每個組的組參數;其中,所述根據所述碼流解碼得到每個組的組參數,包括:根據係數值的大小,使用定長碼與截斷一元碼結合的方式對所述碼流進行解碼,得到每個組的組參數; 根據每個組的所述組參數,解碼得到每個組中的多個係數值;其中,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值;其中,所述根據每個組的所述組參數,解碼得到每個組中的多個係數值,包括:根據每個組的所述組參數,根據定長碼解碼得到每個組內的多個係數值; 根據所述待解碼單元的所述掃描方式,將所述待解碼單元對應的所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊。
- 如請求項1所述的方法,其中,所述掃描方式包括垂直掃描。
- 如請求項1所述的方法,其中, 所述分組方式為固定長度的分組方式、或基於係數排列位置的分組方式; 其中,所述固定長度的分組方式包括:將整個待解碼單元作為一個組,或者,將整個待解碼單元中的每4個係數作為一組; 其中,所述基於係數排列位置的分組方式包括:將整個待解碼單元中的係數按照位置進行不均勻分組,或者,將整個待解碼單元中的係數按照位置進行均勻分組。
- 一種視頻圖像編碼方法,由編碼設備執行,包括: 將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;其中,所述第一掃描方式包括垂直掃描; 將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;其中,所述第一分組方式為固定長度的分組方式、或基於係數排列位置的分組方式;所述固定長度的分組方式包括:將整個待編碼資料塊作為一個組,或者,將整個待編碼資料塊中的每4個係數作為一組;所述基於係數排列位置的分組方式包括:將整個待編碼資料塊中的係數按照位置進行不均勻分組,或者,將整個待編碼資料塊中的係數按照位置進行均勻分組; 確定每組待編碼子序列對應的係數編碼方式,並逐個對每組待編碼子序列內的係數值進行編碼得到已編碼碼流;其中,根據每組待編碼子序列的組參數,對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流;其中,所述根據每組待編碼子序列的組參數,對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流,包括:根據每組待編碼子序列的組參數,根據定長碼編碼對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流; 其中,對每組待編碼子序列的組參數進行編碼,所述已編碼碼流包括編碼後的組參數;其中,所述對每組待編碼子序列的組參數進行編碼,包括:根據係數值的大小,使用定長碼與截斷一元碼結合的方式對每組待編碼子序列的組參數進行編碼。
- 一種視頻圖像解碼裝置,包括: 收發模組,用於獲取待解碼單元的碼流; 處理模組,用於確定所述待解碼單元的掃描方式;根據所述碼流解析出所述待解碼單元的分組方式;根據所述碼流解碼得到每個組的組參數;根據每個組的所述組參數,解碼得到每個組中的多個係數值;其中,所述待解碼單元對應的係數塊包括所述每個組中的多個係數值;根據所述待解碼單元的所述掃描方式,將所述待解碼單元對應的所述係數塊內係數進行恢復得到所述待解碼單元對應的重建資料塊; 其中,所述處理模組根據所述碼流解碼得到每個組的組參數時具體用於:根據係數值的大小,使用定長碼與截斷一元碼結合的方式對所述碼流進行解碼,得到每個組的組參數; 其中,所述處理模組根據每個組的所述組參數,解碼得到每個組中的多個係數值時具體用於:根據每個組的所述組參數,根據定長碼解碼得到每個組內的多個係數值。
- 一種視頻圖像編碼裝置,包括: 處理模組,用於將原始圖像中的待編碼資料塊根據第一掃描方式進行掃描得到係數序列;其中,所述第一掃描方式包括垂直掃描;將所述係數序列按照第一分組方式進行分組,得到多組待編碼子序列;其中,所述第一分組方式為固定長度的分組方式、或基於係數排列位置的分組方式;所述固定長度的分組方式包括:將整個待編碼資料塊作為一個組,或者,將整個待編碼資料塊中的每4個係數作為一組;所述基於係數排列位置的分組方式包括:將整個待編碼資料塊中的係數按照位置進行不均勻分組,或者,將整個待編碼資料塊中的係數按照位置進行均勻分組;確定每組待編碼子序列對應的係數編碼方式,並逐個對每組待編碼子序列內的係數值進行編碼得到已編碼碼流; 收發模組,用於將所述已編碼碼流發送至解碼端; 所述處理模組,用於根據每組待編碼子序列的組參數,對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流;其中,所述處理模組根據每組待編碼子序列的組參數,對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流時具體用於:根據每組待編碼子序列的組參數,根據定長碼編碼對每組待編碼子序列中的多個係數值進行編碼得到已編碼碼流; 所述處理模組,用於對每組待編碼子序列的組參數進行編碼,所述已編碼碼流包括編碼後的組參數;其中,所述處理模組對每組待編碼子序列的組參數進行編碼時具體用於:根據係數值的大小,使用定長碼與截斷一元碼結合的方式對每組待編碼子序列的組參數進行編碼。
- 一種電子設備,包括處理器和記憶體,所述記憶體用於存儲電腦指令,所述處理器用於從所述記憶體中調用並運行所述電腦指令,實現請求項1至4任一所述的方法。
- 一種電腦可讀存儲介質,所述存儲介質中存儲有電腦程式或指令,當所述電腦程式或指令被電子設備執行時,實現請求項1至4中任一項所述的方法。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| CN202111333832.1A CN116074499B (zh) | 2021-11-11 | 2021-11-11 | 一种视频编解码方法及装置 |
| CN202111333832.1 | 2021-11-11 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TW202448178A TW202448178A (zh) | 2024-12-01 |
| TWI882775B true TWI882775B (zh) | 2025-05-01 |
Family
ID=86173721
Family Applications (2)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW113114738A TWI882775B (zh) | 2021-11-11 | 2022-11-11 | 視頻圖像解碼方法及裝置、視頻圖像編碼方法及裝置、電子設備以及存儲介質 |
| TW111143289A TWI882262B (zh) | 2021-11-11 | 2022-11-11 | 視頻編解碼方法及裝置、視頻解碼裝置、視頻編碼裝置、編解碼系統、電子設備以及存儲介質 |
Family Applications After (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW111143289A TWI882262B (zh) | 2021-11-11 | 2022-11-11 | 視頻編解碼方法及裝置、視頻解碼裝置、視頻編碼裝置、編解碼系統、電子設備以及存儲介質 |
Country Status (5)
| Country | Link |
|---|---|
| US (1) | US12389014B2 (zh) |
| JP (1) | JP7739618B2 (zh) |
| CN (2) | CN116647673B (zh) |
| TW (2) | TWI882775B (zh) |
| WO (1) | WO2023083225A1 (zh) |
Families Citing this family (2)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN117354534B (zh) * | 2023-12-04 | 2024-02-02 | 上海方诚光电科技有限公司 | 一种自适应图像无损压缩方法、设备及存储介质 |
| CN119229801B (zh) * | 2024-12-03 | 2025-02-07 | 杭州海康威视数字技术股份有限公司 | 一种led显示屏色亮度校正方法和校正系数编、解码方法 |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105812803A (zh) * | 2014-12-31 | 2016-07-27 | 浙江大华技术股份有限公司 | 一种针对变换单元tu的残差舍弃方法及装置 |
| US20190313102A1 (en) * | 2016-11-28 | 2019-10-10 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding/decoding image, and recording medium in which bit stream is stored |
| CN110650343A (zh) * | 2018-06-27 | 2020-01-03 | 中兴通讯股份有限公司 | 图像的编码、解码方法及装置、电子设备及系统 |
Family Cites Families (10)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| KR101539240B1 (ko) * | 2007-06-14 | 2015-07-30 | 삼성전자주식회사 | 영상 데이터의 엔트로피 부호화, 복호화 방법 및 장치 |
| CN101389021B (zh) * | 2007-09-14 | 2010-12-22 | 华为技术有限公司 | 视频编解码方法及装置 |
| CN104093020B (zh) * | 2011-03-10 | 2017-11-17 | 华为技术有限公司 | 变换系数的编码方法、变换系数的解码方法,和装置 |
| CN106851277B (zh) * | 2012-04-13 | 2021-05-07 | 佳能株式会社 | 视频数据的变换单位的子集的编解码的方法、设备和系统 |
| CN104272736B (zh) * | 2013-01-16 | 2018-04-17 | 黑莓有限公司 | 用于对视频进行编码/解码的方法和设备及其处理器可读介质 |
| US9936200B2 (en) * | 2013-04-12 | 2018-04-03 | Qualcomm Incorporated | Rice parameter update for coefficient level coding in video coding process |
| US9930348B2 (en) * | 2014-03-14 | 2018-03-27 | Qualcomm Incorporated | Coefficient level coding in a video coding process |
| EP3484149B1 (en) * | 2015-06-23 | 2020-11-11 | MediaTek Singapore Pte Ltd. | Method and apparatus for transform coefficient coding of non-square blocks |
| EP3777156B1 (en) * | 2018-03-29 | 2025-03-05 | Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. | Transform coefficient block coding |
| EP3664449A1 (en) | 2018-12-05 | 2020-06-10 | InterDigital VC Holdings, Inc. | Method and device for picture encoding and decoding |
-
2021
- 2021-11-11 CN CN202310492992.3A patent/CN116647673B/zh active Active
- 2021-11-11 CN CN202111333832.1A patent/CN116074499B/zh active Active
-
2022
- 2022-11-09 US US18/709,105 patent/US12389014B2/en active Active
- 2022-11-09 JP JP2024527664A patent/JP7739618B2/ja active Active
- 2022-11-09 WO PCT/CN2022/130954 patent/WO2023083225A1/zh not_active Ceased
- 2022-11-11 TW TW113114738A patent/TWI882775B/zh active
- 2022-11-11 TW TW111143289A patent/TWI882262B/zh active
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| CN105812803A (zh) * | 2014-12-31 | 2016-07-27 | 浙江大华技术股份有限公司 | 一种针对变换单元tu的残差舍弃方法及装置 |
| US20190313102A1 (en) * | 2016-11-28 | 2019-10-10 | Electronics And Telecommunications Research Institute | Method and apparatus for encoding/decoding image, and recording medium in which bit stream is stored |
| CN110650343A (zh) * | 2018-06-27 | 2020-01-03 | 中兴通讯股份有限公司 | 图像的编码、解码方法及装置、电子设备及系统 |
Also Published As
| Publication number | Publication date |
|---|---|
| CN116074499A (zh) | 2023-05-05 |
| US12389014B2 (en) | 2025-08-12 |
| CN116647673B (zh) | 2024-10-29 |
| KR20240108465A (ko) | 2024-07-09 |
| TW202327362A (zh) | 2023-07-01 |
| JP7739618B2 (ja) | 2025-09-16 |
| JP2024541756A (ja) | 2024-11-12 |
| TWI882262B (zh) | 2025-05-01 |
| CN116074499B (zh) | 2024-10-29 |
| US20250008119A1 (en) | 2025-01-02 |
| CN116647673A (zh) | 2023-08-25 |
| TW202448178A (zh) | 2024-12-01 |
| WO2023083225A1 (zh) | 2023-05-19 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| TWI750624B (zh) | 編解碼變換係數的方法及裝置 | |
| TWI751633B (zh) | 在視訊編解碼系統中對與預測殘差相對應的變換係數進行編/解碼的方法及裝置 | |
| WO2019135930A1 (en) | Sign prediction in video coding | |
| WO2019086033A1 (zh) | 视频数据解码方法及装置 | |
| WO2019223480A1 (zh) | 视频数据解码方法及装置 | |
| US12132905B2 (en) | Decoding method and coding method for unmatched pixel, decoder, and encoder | |
| TWI882775B (zh) | 視頻圖像解碼方法及裝置、視頻圖像編碼方法及裝置、電子設備以及存儲介質 | |
| JP7764640B2 (ja) | 係数復号方法、装置、画像デコーダ、及び電子デバイス | |
| JP2024502109A (ja) | ビデオコーディング用の残差および係数のコーディング | |
| CN116074531B (zh) | 解码方法、编码方法及装置 | |
| WO2022193394A1 (zh) | 系数的编解码方法、编码器、解码器及计算机存储介质 | |
| CN114979642A (zh) | 视频编解码方法、装置、计算机可读介质及电子设备 | |
| KR102915098B1 (ko) | 비디오 인코딩 및 디코딩 방법 및 장치 | |
| WO2022188239A1 (zh) | 系数的编解码方法、编码器、解码器及计算机存储介质 | |
| HK40092386A (zh) | 一种视频编解码方法及装置 | |
| HK40092386B (zh) | 一种视频编解码方法及装置 | |
| US12231623B2 (en) | Video encoding method and apparatus, video decoding method and apparatus, computer-readable medium, and electronic device | |
| HK40071994B (zh) | 视频解码方法、装置、计算机可读介质及电子设备 | |
| HK40095734B (zh) | 一种系数解码方法、装置、图像解码器及电子设备 | |
| HK40095734A (zh) | 一种系数解码方法、装置、图像解码器及电子设备 | |
| CN116546212A (zh) | 图像解码更新方法、装置、设备及存储介质 | |
| CN117957842A (zh) | 一种视频解码、编码方法及设备、存储介质 | |
| CN115209141A (zh) | 视频编解码方法、装置、计算机可读介质及电子设备 |