TW202135527A - 編碼及解碼影像內容的方法及傳輸影像內容的系統 - Google Patents

編碼及解碼影像內容的方法及傳輸影像內容的系統 Download PDF

Info

Publication number
TW202135527A
TW202135527A TW110101165A TW110101165A TW202135527A TW 202135527 A TW202135527 A TW 202135527A TW 110101165 A TW110101165 A TW 110101165A TW 110101165 A TW110101165 A TW 110101165A TW 202135527 A TW202135527 A TW 202135527A
Authority
TW
Taiwan
Prior art keywords
samples
block
group
sample
predictive coding
Prior art date
Application number
TW110101165A
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 TW202135527A publication Critical patent/TW202135527A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/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/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T9/00Image coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/124Quantisation
    • 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/136Incoming video signal characteristics or properties
    • H04N19/14Coding unit complexity, e.g. amount of activity or edge presence estimation
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/134Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or criterion affecting or controlling the adaptive coding
    • H04N19/157Assigned coding mode, i.e. the coding mode being predefined or preselected to be further used for selection of another element or parameter
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/17Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object
    • H04N19/176Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being an image region, e.g. an object the region being a block, e.g. a macroblock
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/18Methods 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
    • 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/184Methods 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 bits, e.g. of the compressed video stream
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/169Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding
    • H04N19/186Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the coding unit, i.e. the structural portion or semantic portion of the video signal being the object or the subject of the adaptive coding the unit being a colour or a chrominance component
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/42Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation
    • H04N19/436Methods or arrangements for coding, decoding, compressing or decompressing digital video signals characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation using parallelised computational arrangements
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/44Decoders specially adapted therefor, e.g. video decoders which are asymmetric with respect to the encoder
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/625Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using discrete cosine transform [DCT]
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/90Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
    • H04N19/91Entropy coding, e.g. variable length coding [VLC] or arithmetic coding

Landscapes

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

Abstract

本發明揭露一種從包含複數個區塊的編碼位元流中解碼影像內容的方法,其包含:將包含影像內容的一或多個分量的區塊劃分為對應於一個分量的N個單樣本及M個樣本組,其中N及M大於或等於1;使用符號可變長度代碼(Symbol Variable Length Code,SVLC)解碼N個單樣本中的每一個以產生一或多個解碼單樣本;使用通用前置熵代碼(Common Prefix Entropy Code,CPEC)解碼M個樣本組中的每一個以產生一或多個解碼樣本組,M個樣本組中的每一個包含一可變長度前綴及一或多個代表複數個樣本的固定長度後綴;序連解碼單樣本及解碼樣本組為殘差區塊;以及,基於先前重組的影像內容的相鄰區塊以及殘差區塊重組影像內容。

Description

編碼及解碼影像內容的方法及傳輸影像內容的系統
相關申請案之交互參照
本申請主張於2020年1月13日在美國專利及商標局提交的第62/960,517號美國臨時申請案之優先權及權益,其全部內容透過引用合併於此。
本揭露的實施例的多個態樣涉及一種可擴縮吞吐量熵編碼器的系統及方法,且具體涉及一種編碼及解碼影像內容的方法及傳輸影像內容的系統。
資料壓縮與編碼資訊相關,其中編碼資訊相較於資訊的原始表示法使用較少的位元。無損資料壓縮可以透過移除原始表示法的統計冗餘以進行編碼。因此,在無損資料壓縮中,不會有資料的損失並且資訊的原始表示法可以透過解碼器或解壓縮器重組。換句話說,有損資料壓縮透過刪除非必要的或者較不重要的資訊以減少所使用位元。因此,在許多情況下,無法從使用有損壓縮演算法壓縮的資料中完美地重組資訊的原始表示法。
熵編碼(entropy coding或entropy encoding)為一種資料壓縮的形式,其使用較少的位元對最可能的符號進行編碼,而使用較多的位元對最不可能的符號進行編碼。換句話說,在熵編碼系統中,用於表示符號的位元數可以基於符號將出現在的原始表示法中的可能性而改變。熵編碼的範例包含霍夫曼編碼及摩斯電碼(例如,其中單個位元用於編碼英語中最常見的字母「E」及「T」,而四個位元用於表示不常見的字母,例如「Q」及「Z」)。
本揭露的多個態樣涉及一種可擴縮吞吐量熵編碼器的系統及方法。
根據本揭露的一實施例,一種從包含複數個區塊的編碼位元流中解碼影像內容的方法包含:透過解碼器電路將包含影像內容的一或多個分量的區塊劃分為對應於一或多個分量中的一個的N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1;透過解碼器電路,使用符號可變長度代碼(Symbol Variable Length Code,SVLC)解碼N個單樣本中的每一個以產生一或多個解碼單樣本;透過解碼器電路,使用通用前置熵代碼(Common Prefix Entropy Code,CPEC)解碼M個樣本組中的每一個以產生一或多個解碼樣本組,M個樣本組中的每一個包含一可變長度前綴及一或多個代表複數個樣本的固定長度後綴;透過解碼器電路,序連(concatenate)解碼單樣本及解碼樣本組為殘差區塊;以及透過解碼器電路,基於先前重組的影像內容的相鄰區塊以及殘差區塊重組影像內容。
N及M可以基於目標解碼器吞吐量以透過以下方式設定:基於區塊的樣本的數量以及最高可用吞吐量以計算M的上限;基於區塊的樣本的數量以及目標解碼器吞吐量以計算可變長度代碼的數量;以及基於可變長度代碼的數量以及M的上限以計算N。
此區塊的M個樣本組中的每一個可以具有相同數量的固定長度後綴。此區塊可以以變換跳躍區塊預測模式(transform skip, block prediction mode)進行預測編碼。
此區塊的至少兩個M樣本組可以具有不同數量的固定長度後綴。此區塊可以以變換跳躍區塊預測模式(transform skip, block prediction mode)進行預測編碼。
此區塊可以包含影像內容的複數個分量。
編碼位元流可以進一步包含分量跨躍旗標(component skip flag),其指示編碼位元流的區塊的對應分量的複數個樣本中的所有樣本皆為零。
編碼位元流可以進一步包含一組跨越旗標(group skip flag),其指示M個樣本組中的一組的所有樣本皆為零。
根據本揭露的一實施例,一種編碼影像內容的方法包含:透過編碼器電路劃分所接收的影像內容為一或多個區塊,一或多個區塊中的每一個包含來自影像內容的一或多個分量的複數個樣本;透過編碼器電路對各區塊進行預測編碼以產生殘差區塊;透過編碼器電路將各殘差區塊分割為N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1;透過編碼器電路使用符號可變長度代碼編碼N個單樣本中的每一個以產生一或多個符號可變長度代碼編碼樣本;透過編碼器電路使用通用前置熵代碼編碼M個樣本組中的每一個以產生一或多個通用前置熵代碼編碼樣本,M個樣本組中的每一個包含一可變長度前綴及一或多個固定長度後綴;以及,透過編碼器電路組合符號可變長度代碼編碼樣本及通用前置熵代碼編碼樣本以輸出編碼位元流。
N及M可以基於目標解碼器吞吐量以透過以下方式設定:基於一或多個區塊的每區塊樣本數以及最高可用吞吐量以計算M的上限;基於每區塊樣本數以及目標解碼器吞吐量以計算可變長度代碼的數量;以及基於可變長度代碼的數量以及M的上限以計算N。
分割各預測編碼區塊可以包含使用均勻分割以劃分預測編碼區塊中的至少一個預測編碼區塊,其中至少一個預測編碼區塊的M個樣本組中的每一個具有相同數量的固定長度後綴。至少一個預測編碼區塊可以以變換跳躍區塊預測模式進行預測編碼。
分割各預測編碼區塊可以包含使用非均勻分割以劃分預測編碼區塊中的至少一個預測編碼區塊,其中至少一個預測編碼區塊中的至少兩個M個樣本組具有不同數量的固定長度後綴。至少一個預測編碼區塊可以以變換模式或變換跳躍區塊預測模式進行預測編碼。
各區塊可以包含影像內容的複數個分量。
編碼位元流可以進一步包含分量跨越旗標,其指示區塊的至少一個對應通道的複數個樣本中的所有樣本皆為零。
編碼位元流可以進一步包含組跨越旗標,其指示M個樣本組中的一組的複數個樣本中的所有樣本皆為零。
根據本揭露的一實施例,一種傳輸影像內容的系統包含:編碼器電路,係配置為:劃分所接收的包含複數個分量的影像內容為一或多個區塊,一或多個區塊中的每一個包含來自複數個分量中的一個的複數個樣本;預測編碼各區塊已產生預測編碼區塊;分割各預測編碼區塊為N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1;使用符號可變長度代碼編碼N個單樣本中的每一個以產生一或多個符號可變長度代碼編碼樣本;使用通用前置熵代碼編碼M個樣本組中的每一個以產生一或多個通用前置熵代碼編碼樣本,M個樣本組中的每一個包含一可變長度前綴及一或多個固定長度後綴;以及組合符號可變長度代碼編碼樣本及通用前置熵代碼編碼樣本以輸出編碼位元流;以及解碼器電路,係配置為:從編碼器電路接收編碼位元流;劃分編碼器位元流的區塊為N個單樣本及M個樣本組;使用符號可變長度代碼解碼N個單樣本中的每一個以產生解碼單樣本;使用通用前置熵代碼解碼M個樣本組中的每一個以產生解碼樣本組;根據解碼單樣本及解碼樣本組重組預測編碼區塊;應用預測編碼以解碼預測編碼區塊;以及解碼來自解碼的預測編碼區塊的影像內容。
N及M可以基於目標解碼器吞吐量以透過以下方式設定:基於區塊的樣本的數量以及最高可用吞吐量以計算M的上限;基於區塊的樣本的數量以及目標解碼器吞吐量以計算可變長度代碼的數量;以及基於可變長度代碼的數量及M的上限以計算N。
編碼器電路可以進一步配置為:檢測至少一個編碼器電路或解碼器電路所運行的通訊環境的一或多個因素;以及基於一或多個因素動態更新N及M的值。
一或多個因素可以包含一或多個下列要素:功率、處理器能力、在解碼器電路中共同運作的解碼器數量、內部頻寬、解碼器電路的溫度條件或編碼器電路及解碼器電路之間的實體媒體中的噪聲。
在下文的詳細說明中,僅透過說明的方式示出及說明了本發明的部分例示性實施例。本領域具有通常知識者可以理解的是,本揭露可以以各種不同的形式實施,並且不應將其解釋為限定於在此明確說明的實施例。相反地,所提供這些實施例作為示例將使得本揭露更為透徹及完整,並且將向本領域具有通常知識者充分傳達本揭露的態樣及特徵。因此,可能不會說明對於本領域具有通常知識者完全理解本揭露的態樣及特徵而言不必要的過程、元件及技術。除非另有說明,在整個附圖及說明中相似的元件符號表示相似的元件,且因此將不重複其說明。
壓縮可以在廣泛的內文中應用於資料儲存及資料轉換,例如資料歸檔以及透過電腦網路與區域性連接進行的有線及無線資料通訊。區域性連接可以包含,例如沿在計算裝置內的資料匯流排的資料傳輸(例如,智慧型手機、平板電腦、筆記型電腦及桌上型電腦)及/或與外部裝置的連接,例如透過數位顯示介面(例如,顯示埠(DisplayPort,DP)或顯示串聯介面(Display Serial Interface,DSI))的有線連接。
為了方便起見,本文將在數位顯示資料的背景下呈現本揭露的實施例,更具體的,將在顯示裝置的顯示面板上顯示影像內容。然而,本揭露的實施例不限定於此,在本文所說明的發明概念可以應用在其他應用程式中以提供可擴縮吞吐量熵編碼器。
第1圖為包含編碼器及解碼器的系統的方塊圖,其中編碼器係配置為對影像內容進行編碼,並且解碼器係配置為對影像內容進行解碼以在顯示裝置上顯示。如第1圖所示,影像內容10(例如,單個影像或影像的單幀或多幀的點陣圖表示法)供應至主機1的應用處理器100(Application Processor,AP)(例如,中央處理器(Central Processing Unit,CPU)、場域可程式閘陣列(Field Programmable Gate Array,FPGA)、特殊應用積體電路(Application Specific Integrated Circuit,ASIC)及/或圖像處理器(Graphics Processing Unit,GPU)),其中應用處理器100可以包含編碼器110。編碼器110係配置為將影像內容10的原始表示法編碼(或壓縮)為位元流30。編碼(或壓縮)位元流30可以接續透過有線或無線連接以傳輸。在此所說明的實施例中,說明了透過有線連接的傳輸,但本文中所述的技術同樣可以應用於透過無線連接的傳輸的實施方式中。在第1圖所示的實施例中,編碼(或壓縮)位元流30可以透過實體媒體50(例如,透過諸如資料匯流排或電纜或其他連接器的導線,或者透過無線連接)傳輸至顯示裝置2(例如,外部監視器、電視或智慧型手機、平板電腦或筆記型電腦的整合式顯示面板)的顯示驅動積體電路200(Display Driver Integrated Circuit,DDIC)。顯示驅動積體電路200包含碼框緩衝器202(frame buffer,例如,諸如動態隨機存取記憶體的隨機存取記憶體),其用於在編碼位元流30透過實體鏈接50抵達時接收並儲存編碼位元流30,以及編碼器,其配置為將來自碼框緩衝器202的編碼(或壓縮)位元流30解碼為解碼表示法18。在無損編碼的情況下,解碼表示法18可以實質上相似於(例如,視覺上相似於)影像內容10的原始表示法,使得所得到的資料在視覺上看起來無損。顯示驅動積體電路200可以接續控制顯示面板20以顯示影像內容10的解碼表示法18,例如透過供應驅動波形至顯示面板20,以基於影像內容10的解碼表示法18控制顯示面板20的個別像素的亮度。
顯示驅動積體電路200可以包含或可以連接至一組件,其用以解調(demodulate)透過實體媒體50所接收的訊號(例如,從施加至實體媒體50的電壓以產生位元流30的數位表示法)。同樣地,應用處理器100可以包含或可以連接至一組件,其用以基於編碼位元流30調變訊號,以應用於實體媒體50。
根據本揭露的各種實施例,編碼器及解碼器可以分別稱作編碼電路及解碼電路,並且可以使用各種類型的處理電路實施,如同本領域具有通常知識者所理解的,並且編碼器電路可以使用與解碼器電路不同類型的處理電路實施。這些處理電路的種類可以包含,例如中央處理器(CPU)、圖像處理器(GPU)、數位訊號處理器(Digital Signal Processor,DSP)、場域可程式閘陣列(FPGA)、特殊應用積體電路(ASIC)或其組合(例如,使用不同類型的處理電路以實現編碼或解碼過程或作業管線的不同部分)。此外,如同本領域具有通常知識者可以理解的,各種處理電路可以為同一個積體電路的組件(例如,作為晶片或系統單晶片(System on a Chip,SoC)上同一系統的組件)或可以為透過印刷電路板上的引腳及線連接的不同的積體電路的組件。
通常來說,影像資料或影像內容係透過點陣圖表示,其中點陣圖中的每個位置對應於個別像素。為了清楚起見,術語「像素」將在本文中用於表示具有多個分量(或通道)的影像元件。例如,在紅綠藍(RGB)色彩空間中,這些組件包含紅色分量(或紅色通道)、綠色分量(或綠色通道)及藍色分量(或藍色通道)。作為另一實施例,在YCbCr色彩空間中,這些組件可以包含亮度(Y) 分量、藍色色度(Cb) 分量及紅色色度(Cr) 分量。作為另一實施例,在YCoCg色彩空間中,這些分量可以包含亮度(Y)分量、綠色色度(Cg)分量及橙色色度(Co)分量。在點陣圖中各個位置的值表示在此位置的分量的程度(例如,灰階)。相應地,影像內容或影像資料可以視為表示影像中各個位置的顏色及亮度。
為了在本文中進行說明,影像內容10的各通道將被獨立處理。如同本領域具有通常知識者通常所理解的,術語「樣本(sample)」表示與影像內容10的一個像素的一個分量相關聯的數位值(例如,「樣本」可以為純量值),術語「區塊(block)」表示樣本的集合(例如,對應於影像內容10的連續部分的樣本),並且各區塊可以被劃分為一或多個樣本「組(groups)」。第2圖為鳥的影像(影像內容10)的一個區塊12的示意圖,其中此區塊12具有8×2的尺寸(16個樣本14)並且被劃分成四個組16A、16B、16C及16D,各組分別具有四個樣本。
可以使用影像內容10內的空間預測對區塊進行編碼(例如,可以基於對來自影像中相鄰樣本,例如影像中像素上方及左側的像素,的樣本值進行的預測以對樣本的值進行編碼)。可以使用重組值進行預測以取代使用原始相鄰值。樣本的預測值與樣本的實際值之間的差異稱為量化殘差,並且這些量化殘差可以進一步用於表示在影像內容10的編碼表示法中的樣本。
對於各個區塊,可以使用複數個不同的預測編碼模式中的一個,其中可以基於測試來選擇特定的預測模式,以確定在受到速率控制約束的影響下哪個模式產生的失真量最少。換句話說,受到速率失真損耗的影響,速率與對區塊進行編碼的模式所需的資料量有關,並且失真表示編碼後的品質損失(例如,解碼後輸入區塊與編碼區塊之間的差異的大小)。這些預測編碼模式可以包含:「變換模式(transform mode)」,其包含可能更適合自然內容的轉換(例如,到頻率域);以及「變換跳躍區塊預測模式(transform skip, block prediction mode)」,其跳過(或排除)變換並執行區塊預測操作,並且其可以用於人造或圖示的圖形內容。對於各個區塊,多種模式可以用於對區塊進行編碼,並且編碼器可以選擇對於區塊而言最好的模式(或選項)。
當以變換模式運行時,在一些實施例中,編碼器針對各區塊測試一組內部預測因子(在本文中標記為
Figure 02_image001
),以確定哪個內部預測因子所產生速率失真損耗最小。所選擇的內部預測模式在位元流中被顯性地傳訊,使得解碼器僅需要分析資訊並執行單個解碼操作。在區塊
Figure 02_image001
在RGB色彩空間的情況下,此資料可以被轉換為YCoCg色彩空間。在部分情況下,如果區塊
Figure 02_image001
在YCoCg色彩空間中,則不施加色彩空間轉換,並且在YCbCr色彩空間中繼續此過程。
在一些實施例中,編碼器從給定的一組內部預測模式中計算出用於變換空間的內部預測區塊。此內部預測的輸出為殘差區塊
Figure 02_image003
,其為區塊
Figure 02_image001
與內部預測區塊
Figure 02_image005
之間的差。在一些實施例中,將應用離散餘弦變換(Discrete Cosine Transform,DCT)於殘差區塊
Figure 02_image003
,以產生變換係數
Figure 02_image007
的區塊。變換係數
Figure 02_image007
接續被量化以產生量化變換係數
Figure 02_image009
的區塊。這些量化變換係數QT為在位元流中傳輸的值,且嵌入至熵編碼組中。應用逆量化(
Figure 02_image011
)及逆變換(
Figure 02_image013
),使得可以在殘差區塊
Figure 02_image003
與重組殘差區塊
Figure 02_image015
之間計算失真(相同的逆量化及逆變換操作可以透過解碼器執行)。根據上述的速率及失真以計算各模式的速率失真損耗資訊。
當以變換跳躍區塊預測(Block Prediction,BP)模式運行時,在一些實施例中,當前區塊是根據一組重組的相鄰樣本(區塊預測搜尋範圍)以在空間上預測的。在預測之前,當前區塊被劃分為一組子區塊(例如,在8×2區塊的情況下被劃分為四個2×2子區塊)。
根據一實施例,使用2×2分割或一對2×1分割以從區塊預測搜尋範圍預測各個子區塊。在前一種情況下,2×2子區塊由單區塊預測向量(Single Block Prediction Vector,BPV)表示,其將從搜尋範圍產生2×2預測區塊。在選擇一對2×1分割的情況下,子區塊將以兩個不同的BPV表示。第一BPV將為子區塊中的前兩個樣本產生2×1預測子區塊,同時第二BPV將為後兩個樣本產生2×1預測子區塊。編碼器執行搜尋以找到使當前區塊內各2×2及2×1分割的失真為最小的BPV。其結果是用於兩種分割類型的一組BPV及預測區塊
Figure 02_image005
。接下來,以
Figure 02_image017
計算殘差。如同分割類型有兩個選項,因此將計算兩個殘差區塊;其中一個關於2×2分割且另一個關於2×1分割。可以以下文中所述的方式接續處理兩個殘差區塊(例如,並行地):首先,在所有剩餘的樣本上執行正量化,並且量化殘差
Figure 02_image019
用於計算各2×2子區塊的熵編碼損耗;執行第二反量化以獲得重組殘差
Figure 02_image015
,從中可以計算各子區塊的失真。最後,對於各2×2子區塊,編碼器可以基於速率/失真權衡(rate/distortion tradeoff)以在2×2分割與2×1分割之間做選擇。區塊預測模式的語法包括BPV組以及三個顏色分量的熵編碼量化殘差。
根據一個實施例,編碼器從位元流接收包含量化殘差的BP編碼區塊。具體來說,解碼器應用熵解碼器以解碼量化殘差,同時直接分析BPV及分割結構。BP搜尋範圍在編碼器與解碼器之間是相同的,因為其包含因果可用的重組樣本。分割結構及BPV用於產生預測區塊
Figure 02_image005
,同時對量化殘差進行逆量化以獲得重組殘差
Figure 02_image015
。最後,預測區塊
Figure 02_image005
及重組殘差
Figure 02_image015
被添加在一起以產生重組區塊,其在必要時可以進行顏色轉換。對於RGB來源內容而言,將在YCoCg色彩空間中計算BP如果來源內容為YCbCr,將在YCbCr中本地的計算BP。
當以變換模式運行時,將諸如離散餘弦變換(Discrete Cosine Transform,DCT)的變換進一步應用於殘差,並且此變換的係數表示為區塊中的值。在的另一情況下,諸如變換跳躍區塊預測模式(transform skip, block prediction mode),將省略變換並且將殘差本身表示為區塊中的數值。在部分情況下,當使用無損壓縮時可以省略變換模式,並且當使用有損壓縮時,對變換係數或殘差進行量化(分別在變換模式或變換跳躍預測模式的情況下)。
通用前置熵代碼(Common Prefix Entropy Code,CPEC)為一種用於對一組N個樣本進行熵編碼的技術(例如,在有損壓縮的情況下的量化殘差及量化變換係數),其中單個前綴與N個後綴一起使用。在CPEC中,使用表示用於對N個後綴中的每一個進行編碼的位元數的可變長度代碼(例如,一元代碼)以對前綴進行編碼。N個後綴中的每一個以相同位元數進行編碼(例如,固定長度編碼)。第3圖為用於具有N=4個樣本的組的CPEC結構的示意圖。因此,如第3圖所示,通用CPEC結構300包含一個前綴302及四個後綴304A、304B、304C及304D。
熵解碼器可能需要一個完整的時脈週期以分析CPEC編碼組的前綴,因為此前綴具有可變長度。然而,一旦表示各後綴中的位元數的前綴被解碼,N個後綴可以移位至另一個緩衝區中以分析各個樣本,而不會佔用熵解碼器的額外時間,並且熵解碼器可以在碼框緩衝器(frame buffer)中前跳(例如,透過將解碼的位元數乘以N)以解碼下一組。
關於熵編碼的額外資訊可以在諸如Jacobson、Natan等人的文章中找到。「VESA正在的開發一種新的顯示流壓縮標準(A new display stream compression standard under development in VESA)」。XL的數位影像處理應用(Applications of Digital Image Processing XL ),10396卷,國際光學及光子學會,2017年。
熵編碼器及通用前置熵代碼(CPEC)用於諸如顯示流壓縮(Display Stream Compression,DSC)的標準中,第4圖為在顯示流壓縮中使用的增量單位可變長度編碼(Delta Size Unit-Variable Length Coding DSU-VLC)的情況下,使用通用前置熵代碼(CPEC)的3×1區塊及其編碼形式的示意圖。如第4圖中所示,可以使用具有一個前綴402(p0)及三個後綴404A、404B及404C(後綴0、後綴1及後綴2)的CPEC對一個組中區塊尺寸為3×1的區塊(例如,一個列的三個相鄰樣本:S0、S1及S2)進行熵編碼。相應地,由於可變長度前綴402(p0)的分析可能需要一個完整的時脈週期,而三個後綴可以在沒有額外時脈的情況下從熵編碼器進行解碼,例如,由於每三個樣本(S0、S1及S2,分別由後綴0、後綴1及後綴2表示)中的每一個都具有一個可變長度二進制字組(Variable Length Binary word,VLB)(在前綴402中),因此可以實現3個樣本/時脈的吞吐量。
作為另一個實施例,在VDC-M(VESA Display Compression-M)的情況下,所使用的區塊尺寸為8×2,其中區塊的各分量被劃分為四個組。在一些模式中,8×2區塊被劃分為均勻的組。第5A圖為將8×2區塊510劃分為四個均勻尺寸的組的為示意圖,其標記為組0、組1、組2及組3。區塊510中的十六個樣本被標記為S0至S15。如第5A圖中所示,使用具有對應的可變長度前綴及四個後綴的CPEC對各組進行熵編碼,以產生對應的熵編碼組520、521、522及523。具體來說,組0包含表示樣本S0、S1、S8及S9的符號,並且使用前綴P0作為熵編碼組520以進行熵編碼。組1包含表示樣本S2、S3、S10及S11的符號,並且使用前綴P1作為熵編碼組521以進行熵編碼。組2包含表示樣本S4、S5、S12及S13的符號,並且使用前綴P2作為熵編碼組522以進行熵編碼。以及,組3包含表示樣本S6、S7、S14及S15的符號,並且使用前綴P3作為熵編碼組523以進行熵編碼。第5A圖使用不同寬度的方塊繪示了前綴P0、P1、P2及P3,以暗示這些可變長度前綴可以具有不同的長度(例如,對用於編碼其各自組中的各後綴的位元數進行編碼)。同樣地,各組的後綴的長度可以基於其對應的前綴所編碼的值而改變。
在其他模式中,8×2區塊被劃分為非均勻的組。第5B圖為將8×2區塊530劃分為四個非均勻尺寸的組的示意圖,其標記為組0、組1、組2及組3。區塊510中的十六個樣本被標記為S0至S15。在第5B圖所示的佈置中,組0具有1個樣本的尺寸,組1具有3個樣本的尺寸,組2具有5個樣本的尺寸,以及組3具有7個樣本的尺寸。具體來說,組0包含表示樣本S0的符號,並且使用前綴P0作為熵編碼組540以進行熵編碼,組1包含表示樣本S1、S2及S8的符號,並且使用前綴P1作為熵編碼組541以進行熵編碼,組2包含表示樣本S3、S4、S9、S10及S11的符號,並且使用前綴P2作為熵編碼組542以進行熵編碼,以及組3包含表示樣本S5、S6、S7、S12、S13、S14及S15的符號,並且使用前綴P3作為熵編碼組543以進行熵編碼。如第5A圖中所示,第5B圖同樣使用不同寬度的方塊繪示了前綴P0、P1、P2及P3,以暗示這些可變長度前綴可以具有不同的長度(例如,對用於編碼其各自組中的各後綴的位元數進行編碼)。同樣地,各組的後綴的長度可以基於其對應的前綴所編碼的值而變化。
當在VDC-M中同時使用均勻組及非均勻組時,CPEC將依照各組進行應用。相應地,在VDC-M中可以實現4樣本/時脈的平均吞吐量,舉例來說,因為在兩種情況下皆使用四個時脈週期以解碼四個組的可變長度前綴,這四個前綴共同對區塊的十六個樣本進行編碼(例如16/4 = 4)。
不同的應用程式可以施加不同的設計限制,例如實體媒體50上的可用頻寬、影像內容10的影像解析度、影像內容10的框速率、解碼器時脈速率及功率需求及限制(例如,相較於諸如筆記型電腦的較大的行動裝置以及諸如電視的插入至輸電網的裝置,對諸如智慧型手機的手持移動設備的功耗的限制更加嚴格)。例如,在許多情況下,相較於諸如應用處理器100或實現編碼器110的其他組件,顯示裝置2的顯示驅動積體電路200明顯較慢或其可能基於較老舊的技術構成。當設計用於各種應用程式的通訊通道時,可以在吞吐量(Throughput,TP)及壓縮效率(Compression Efficiency,CE)之間進行一個設計權衡,其中較高的吞吐量通常對應於較低的壓縮效率,而較高的壓縮效率通常對應於較低的吞吐量。如上所述,DSC的DSU-VLC編碼在每三個樣本中使用一個可變長度代碼,從而實現三個樣本/時脈的吞吐量,而VDC-M編碼在十六個樣本的每個區塊中使用四個可變長度代碼,從而實現四個樣本/時脈的吞吐量。儘管DSC及VDC-M使用的這些方法使得系統能夠實現特定的吞吐量,但其不允許調整編碼方案以改變吞吐量進而滿足特定應用程式的設計限制(例如,壓縮效率需求、解碼時脈速度及功率需求)。
相應地,本揭露的實施例的態樣涉及用於熵編碼方法及/或協定的系統及方法,其可以透過控制協定的設計參數以調整熵編碼方法的吞吐量。如上所述,以解碼器的每個時脈的樣本數為單位的解碼器的吞吐量係基於需要針對每個樣本區塊進行分析的可變長度代碼的數量而受到限制。相應地,本揭露的實施例的一些態樣涉及透過設定在對多個樣本進行編碼時所使用的可變長度代碼的數量(例如,用於對十六個樣本的區塊進行編碼的可變長度代碼的數目)以控制吞吐量。
更詳細地,本揭露的實施例的一些態樣涉及一種混合熵編碼方案,其以對區塊的一或多個樣本獨立地進行編碼的方式對區塊的各分量(例如,在紅色、綠色及藍色分量中的分量,或者在亮度或色度分量中的分量)進行使用符號可變長度代碼進行編碼,並將區塊的殘差樣本劃分為組,並使用CPEC進行編碼,CPEC為各分量分配一個可變長度二進制字組。符號可變長度代碼(Symbol Variable Length Dodes,SVLCs)的實施例包含:一元編碼、霍夫曼編碼、指數哥倫布編碼、萊斯編碼及指數哥倫布編碼與萊斯編碼的序連等。在下面的討論中,區塊可以被稱為具有使用SVLC編碼的
Figure 02_image021
個樣本及使用CPEC編碼的
Figure 02_image023
個樣本,其中
Figure 02_image021
Figure 02_image023
大於或等於零。本揭露的一些實施例涉及
Figure 02_image021
Figure 02_image023
兩者皆大於或等於1的區塊。
相應地,在根據本揭露的實施例的混合編碼方法中,每區塊的每分量的可變長度二進制字組(VLBs)的總數可以透過參數
Figure 02_image021
Figure 02_image023
控制,從而允許對每時脈的樣本中的解碼器吞吐量進行設計控制。
更詳細地,解碼器吞吐量取決於區塊中每分量的樣本數及區塊中的可變長度二進制字組的總數:
Figure 02_image025
Figure 02_image027
其中,
Figure 02_image029
區塊中每個組件使用的可變長度二進制字組的總數取決於使用SVLC進行編碼的樣本數N及使用CPEC編碼組進行編碼的樣本數M:
Figure 02_image031
第6圖為根據本揭露的一個實施例的用於給定的目標解碼器吞吐量計算使用SVLC編碼的樣本的數量N及樣本的數量M的方法的流程圖。在一些實施例中,第6圖中所示的方法是使用適當的計算裝置以實現的,例如包括處理器及記憶體的電腦系統,其中記憶體儲存指令,當處理器執行指令時使得處理器執行與第6圖相關聯的方法的操作,並且輸出計算後的設計參數N及M。
在操作610中,根據一實施例的電腦系統計算CPEC編碼組的數量
Figure 02_image023
的上限。這可以透過將吞吐量設定為估計的最高可用值
Figure 02_image033
以進行計算,其可以取決於可用的技術。
Figure 02_image035
舉例來說,在一些情況下,
Figure 02_image037
4,即每時脈四個樣本,表示性能及復雜性(或壓縮效率)之間的良好權衡:
Figure 02_image039
然而,本揭露的實施例不限定於最高可用吞吐量
Figure 02_image041
為每時脈4個樣本的情形。例如,半導體技術及壓縮的改進可能導致
Figure 02_image041
的值高於每時脈4個樣本的情形,其表示在性能與復雜性之間具有很好的權衡。
在操作630中,計算系統計算實現輸入目標解碼器吞吐量
Figure 02_image043
所需的可變長度二進制字組的數量(
Figure 02_image045
):
Figure 02_image047
在操作650中,計算系統根據先前計算的所需VLB數量(
Figure 02_image045
)及先前計算的
Figure 02_image023
值計算SVLC編碼值的數量
Figure 02_image021
,以實現解碼器吞吐量:
Figure 02_image049
Figure 02_image051
相應地,上述參照圖6說明的方法提供了一種基於目標解碼器吞吐量的用於計算設計參數
Figure 02_image021
Figure 02_image023
的方法。
舉例來說,假設每分量的區塊大小為8×2個樣本,並且假設
Figure 02_image053
,則
Figure 02_image055
Figure 02_image057
的值可以透過下列方式計算:
對於每時脈2個樣本的目標吞吐量,每次的操作610:
Figure 02_image059
Figure 02_image061
Figure 02_image063
每次的操作630:
Figure 02_image065
Figure 02_image067
以及每次的操作650:
Figure 02_image069
Figure 02_image071
Figure 02_image063
對於每時脈3個樣本的目標吞吐量,每次的操作610:
Figure 02_image059
Figure 02_image061
Figure 02_image063
每次的操作630:
Figure 02_image073
Figure 02_image075
以及每次的操作650:
Figure 02_image069
Figure 02_image077
Figure 02_image079
對於每時脈4個樣本的目標吞吐量,每次的操作610:
Figure 02_image059
Figure 02_image061
Figure 02_image063
每次的操作630:
Figure 02_image081
Figure 02_image063
以及每次的操作650:
Figure 02_image069
Figure 02_image083
Figure 02_image085
對於每時脈1個樣本的目標吞吐量,每次的操作610:
Figure 02_image059
Figure 02_image061
Figure 02_image063
每次的操作630:
Figure 02_image087
Figure 02_image089
以及每次的操作650:
Figure 02_image069
Figure 02_image091
Figure 02_image093
在本揭露的一些實施例中,代替計算參數
Figure 02_image095
以實現特定的輸入目標解碼器吞吐量
Figure 02_image097
,計算系統根據特定目標壓縮效率以計算參數
Figure 02_image057
Figure 02_image055
。更詳細地,壓縮效率可能取決於:1)壓縮比; 2)吞吐量; 3)編解碼器的複雜度(其也可能取決於吞吐量)。對於編解碼器的給定複雜度(例如,維持編解碼器的複雜度不變),較高的壓縮率將折衷吞吐量,以獲得與具有較低壓縮率及高吞吐量的方案相同的性能。(例如,假設有兩個編解碼器A及B,其複雜度及性能大致相同,則編解碼器A可以以6:1的壓縮比運作,且吞吐量為1像素/時脈,而編解碼器B可以以壓縮率4:1的壓縮比運作,且吞吐量為4像素/時脈。)
根據一些實施例,在系統的設計階段期間選擇這些設計參數,並且其被固定以用於成品的生產。然而,本揭露的實施例不限定於此,在一些實施例中,在系統使用期間響應於變化的條件以動態地設定控制SVLC樣本及CPEC組的數量的參數
Figure 02_image057
Figure 02_image055
(例如,由於在不斷變化的通訊環境中需要額外的錯誤校正碼,因此吞吐量可能會降低)。
根據本揭露的一個實施例,編碼器110及/或解碼器210(例如,編碼器110或解碼器210中的一個或編碼器110及解碼器210兩者)基於與編碼器110或解碼器210中的至少一個所運行的通訊環境相關的某些因子,以動態地確定目標吞吐量或壓縮效率,並根據這些因素(例如,根據基於這些因素更新的目標解碼器吞吐量)以相應地設定協定的參數
Figure 02_image023
Figure 02_image021
。在一些實施例中,這些因素包括功率(例如,裝置為插入至外部電源或是以電池供電)、處理器能力(例如,由於熱條件及/或功耗設定而引起的節流)、並行工作的解碼器的數量、內部頻寬、解碼器的熱或溫度條件以及編碼器與解碼器之間的實體媒體50中的噪聲或干擾。
為了使編碼器110基於這些因素以配置或設置參數
Figure 02_image023
Figure 02_image021
進而確定目標吞吐量或壓縮效率,本揭露的一些實施例提供了一種用於回饋編碼器110的機制。在一些實施例中,其為即時執行的(例如,在即時串流中,目標可以改變中間流),或者當編碼器110首次開始為特定解碼器210進行編碼時執行(並且,編碼器可以考量解碼器210或其他因素,並使用這些規範以設定目標)。回饋的種類的示例包含解碼器210的時脈頻率、解碼器210的當前溫度、包含解碼器210的系統的電力條件(例如,電池電量或外部電源條件)及用於供編碼器110及解碼器210進行通訊的實體媒體50的當前條件(例如,有線或無線連接,以及由於干擾而導致的實體媒體50的可用頻寬或吞吐量)。此反饋可以為,例如直接從DDIC 200至應用處理器100(例如,經由實體媒體50),或者可以經由第三系統(例如,監視裝置,其配置為監視DDIC 200的條件,例如溫度及功率條件,並且配置為向應用處理器100提供表示所監視條件的資訊)間接提供。
根據本揭露的一些實施例,解碼器210也可以根據編碼器110對參數進行的更改以動態地更新編碼方案的參數(
Figure 02_image023
Figure 02_image021
的值),因此其可以實現合適的解碼方案。在一些實施例中,編碼器110明確地向解碼器210指示改變(當改變發生時,或者改變將在時間T發生),並且可以在頻內(例如,在作為編碼影像內容的編碼位源流30內)或者頻外(例如,在同一實體媒體50或不同的實體媒體上的單獨通道中,例如與編碼位元流30並行的單獨通訊流中)提供外顯指示。
第7圖為根據本揭露的一個實施例的編碼影像內容的方法的流程圖。根據一些實施例,解碼器210執行參照第7圖所說明的操作,以基於所提供的影像內容10產生編碼位元流30。在操作710中,影像內容的各通道被劃分為複數個連續樣本的區塊(例如,來自相鄰像素區域的樣本)。在一些實施例中,影像內容在不同的色彩空間之間轉換,例如從RGB至YCoCg或YCbCr。在操作730中,編碼器110對各區塊進行預測編碼,其中預測編碼可以為變換模式編碼、變換跳躍區塊預測模式編碼等。更詳細地,在操作730中的預測編碼可以包含基於來自相鄰區塊(例如,影像內容的前一列及/或前一行)的重組取樣值以使用預測子預測區塊的各分量(例如,Y、Cb及Cr分量)的數值。編碼器110接續基於預測值與實際值之間的差異以計算殘差。在一些實施例中,當使用有損編碼方案時,對殘差進行量化以產生量化殘差區塊。如上所述,相同的影像內容中的不同的區塊可以應用不同類型的預測編碼(例如,一些區塊可以使用變換模式,而來自同一影像的其他區塊可以使用變換跳躍區塊預測模式。在一些實施例中,在編碼器110處,將各預測編碼模式應用於各區塊以產生複數個編碼區塊,並且各個不同模式中的一個可以使編碼器110輸出具有最低速率失真損耗的編碼區塊)。在操作750中,編碼器110將各編碼區塊劃分為
Figure 02_image021
個單樣本及
Figure 02_image023
個樣本組(例如,編碼器110從區塊中取出
Figure 02_image021
個樣本,並將剩餘的樣本分成
Figure 02_image023
個組,其中,
Figure 02_image023
個組中的每一個包含一或多個樣本,並且區塊中的各樣本在
Figure 02_image021
個單樣本及
Figure 02_image023
個樣本組中僅出現一次)。舉例來說,在一些實施例中,解碼器210將區塊的前N個樣本(例如,樣本S0至S(N-1))作為N個單樣本,並將剩餘的樣本劃分為M個樣本組。
在操作770中,編碼器110將熵編碼應用於殘差。在操作772中,編碼器110使用基於符號的可變長度代碼(SVLC),例如一元編碼、霍夫曼編碼、指數哥倫布編碼、萊斯編碼及指數哥倫布編碼與萊斯編碼的序連等,以對N個單樣本中的每一個進行編碼,進而產生編碼單樣本。同樣地,在操作774中,編碼器110使用通用前置熵編碼(CEPC)(或一些其他的代碼,其中的一或多個樣本正好使用一個可變長度前綴及一或多個固定長度後綴進行編碼)以對M個樣本組進行編碼,進而產生編碼樣本組。
在操作790中,編碼器110結合(例如,序連)編碼單樣本與編碼樣本組以產生資料流(例如,編碼位元流30)。
第8圖為根據本揭露一個實施例的解碼影像內容的方法的流程圖。根據部分實施例,解碼器210執行參照第8圖所說明的操作,以基於所接收的編碼位元流30產生重組影像內容。特定的預測編碼技術(例如,變換模式與區塊預測、變換跳躍模式)可以根據由編碼器110所選擇的技術(例如,根據最小化速率失真消耗)而在區塊與區塊之間改變。相應地,在一些實施例中,編碼器110在編碼位元流30中產生對預測編碼模式的明確指示(例如,旗標),並且在一些實施例中,解碼器210從編碼為源流30中自動確定預測編碼模式。在操作806中,解碼器210確定編碼位元流30的當前區塊的預測編碼模式,例如透過確定此區塊所指示的編碼模式為複數個不同的編碼模式中的哪一種,或者,例如透過在編碼位元流30中旗標或其他標識符號。在操作810中,解碼器將所接收的編碼位元流劃分為
Figure 02_image021
個單樣本及
Figure 02_image023
個樣本組(例如,前
Figure 02_image021
個VLBs可以作為
Figure 02_image021
個單樣本,並且剩餘的資料可以被分析為CPEC編碼樣本組)。如上所述,為了接收單個區塊,操作810可以採用與用於對此區塊進行編碼的可變長度二進制字組(VLBs)的數量相等的時脈數量,因為各VLB皆需要一個時脈週期以進行分析,但是如果VLB作為一個組(例如,樣本組)的前綴,則可以將固定長度的後綴移到另一個緩衝區以進行進一步處理,而不會減慢解碼器210的速度。
在操作830中,解碼器210對殘差進行熵編碼。在操作832中,解碼器210使用SVLC代碼以解碼N個單樣本中的每一個,如上所述(例如,一元代碼或霍夫曼編碼),並且在操作834中,使用CPEC以解碼M個樣本組中的每一個,其中可以透過在操作806中確定的區塊的預測編碼模式以確定M個樣本組中的每一個樣本組中的樣本數(例如,是否使用均勻或非均勻組以編碼M個樣本組,如下文中參照第9A圖及第9B圖的更詳細的說明)。在一些情況下,N為零並且省略了操作832。解碼器210可以接續將來自N個單樣本及M個樣本組的樣本序連為操作850中的殘差區塊,並且接續應用對應的預測編碼(例如,編碼器110所執行的操作的適當逆運算)以重組操作870中的區塊的各分量(例如,分量Y、Cb及Cr)。一般來說,重組過程為上述參照第7圖說明的編碼過程的逆過程,並且包括執行熵解碼、逆量化以產生重組殘差、執行逆變換(如果在此區塊中使用了變換模式)、計算基於相鄰樣本(例如,先前重組的相鄰區塊,諸如影像內容的前一列及/或前一行的區塊)的預測樣本,並且將殘差添加至預測器的輸出。
根據本揭露實施例的資料的區塊的編碼示例,將在下文的關於每個時脈的16個樣本的8×2區塊及每個時脈的2個樣本的目標吞吐量
Figure 02_image043
的內容中更詳細地說明。然而,本揭露的實施例不限定於在下文所呈現的特定內容。例如,本揭露的實施例可以進一步應用於不同大小及/或尺寸的區塊,例如3×1、4×8及8×8等,並且可以如同上述參照第6圖說明的,透過選擇參數
Figure 02_image021
Figure 02_image023
以應用於不同的目標吞吐量
Figure 02_image043
值,例如每個時脈3個樣本。此外,可以使用2的補碼或符號數值表示法以對樣本進行編碼。
熵編碼組的一個實施例CPEC輸出具有4個樣本,其樣本值分別為
Figure 02_image099
。在本實施例中,二的補碼表示用於產生熵編碼組中的樣本值的位元。忠實重建此組所需的位元數為2。具體來說,以二的補碼表示,需要n個位元以表示
Figure 02_image101
範圍內的資料。各樣本值皆以2的補碼表示法以2位元表示。因此,前綴將表示2的值。對於一組樣本值
Figure 02_image099
,CPEC操作所輸出的位元將為前綴1 1 0(一元代碼為2)及四個後綴,其中各樣本皆使用2位元進行編碼,例如「01 10 11 00」。在本實施例中,CPEC操作的輸出僅是說明性的,CPEC操作的實際輸出可能會根據實際執行而有所不同。
當使用符號數值表示法時,各樣本需要n個位元,其中組中所有樣本的絕對值(或大小)在
Figure 02_image103
的資料範圍內。在符號數值表示法中,僅針對非零值發訊符號位元。舉例來說,對於樣本值
Figure 02_image105
的輸入組,以符號數值表示法表示的CPEC操作的輸出將為前綴1 1 0(一元代碼2),並接續為以2位元編碼個樣本的絕對值的後綴,例如「01 10 01 00」,並且最後符號位元為「1 0 0」,使用1表示正號(對於第一值1),使用0表示負號(對於第二值及第三值-2及-1)(注意,在本實施例中,符號0的符號值沒有被發訊)。在一些實施例中,0用於表示正號,而1用於表示負號。
可以以均勻或非均勻的方式將區塊分割為
Figure 02_image023
個組。在均勻分割中,
Figure 02_image023
個組中每一個的樣本數(或固定長度後綴數)是相同的。在非均勻分割中,樣本數在一個組與另一個組之間變化(例如,
Figure 02_image023
個組中的至少兩個具有不同樣本數)。可以基於用於對區塊進行編碼的預測編碼模式以選擇分割為均勻組或是非均勻組。例如,使用變換模式編碼的區塊通常較適合非均勻組。
第9A圖為根據本揭露一實施例的使用均勻的組以對區塊進行編碼的示意圖。在第9A圖中所示的特定實施例中,區塊910表示取自輸入影像的一個分量的樣本的8×2矩形(例如,從影像內容10的一個分量中取出)。當根據變換跳躍區塊預測模式對區塊910進行預測編碼時,可以應用均勻組(例如,在區塊910的符號S0至S15處表示影像的分量的底層樣本的量化殘差,而非變換係數,例如影像的一部分的DCT)。
在第9A圖所示的實施例中,編碼方案設計為每個時脈2個樣本的吞吐量。因此,參照上文中第6圖說明的計算,使用符號可變長度代碼(SVLC)編碼的樣本的數量N為4,並且樣本組的數量M同樣為4。M個樣本組中的每一個包含一個前綴及三個後綴。這樣一來,每個16個樣本的區塊(
Figure 02_image107
)在位元流中總共有8個(
Figure 02_image109
)可變長度二進制字組(VLBs),其提供了每時脈2個樣本的目標吞吐量(16個樣本/8個時脈)。使用SVLC編碼的N個樣本在第9A圖中標記為組0 920,並且M個樣本組標記為組1 921、組2 922、組3 923及組4 924。在下列的表1中總結了第9A圖中所示的五個組,以及它們對應的編碼方法及各組中的可變長度二進制字組(VLBs)的總數。 1
組別 編碼方法 樣本數 VLB 總數
組0 SVLC 4 4
組1 CPEC 3 1
組2 CPEC 3 1
組3 CPEC 3 1
組4 CPEC 3 1
在第9A圖及表1所示的佈置中,由於各樣本都被編碼為VLB,而導致符號之間的邊界是未知的或模糊的,所以組0 920中的樣本S0、S1、S8及S9的位元表示法B0、B1、B8及B9被依序地解碼。在第9A圖中使用不同寬度的方塊繪示了樣本S0、S1、S8及S9的位元表示法B0、B1、B8及B9,以暗示這些SVLC編碼符號具有不同的長度。根據第9A圖中所示的編碼方案的實施例,組0 920表示樣本S0、S1、S8及S9。然而,本揭露的實施例不限定於此,並且SVLC編碼樣本的組可以表示區塊910的不同樣本。
第9A圖使用不同寬度的方塊繪示了前綴P1、P2、P3及P4,以暗示這些可變長度前綴可以具有不同的長度(例如,對用於編碼其各自組中的各後綴的位元數進行編碼)。同樣地,各組的後綴的長度可以根據其相應前綴所編碼的值而有所不同。一旦分析了組1、組2、組3及組4各自的VLB前綴P1、P2、P3及P4,就可以並行分析組1、組2、組3及組4中的每一個的三個後綴。根據第9A圖所示的編碼方案的實施例,組1 921表示樣本S2、S3及S10,組2 922表示樣本S4、S11及S12,組3 923表示樣本S5、S6及S13,以及組4 924 表示樣本S7、S14及S15。然而,本揭露的實施例不限定於此,樣本組可以表示區塊910的不同樣本。
第9B圖為根據本揭露一實施例的使用非均勻的組以對區塊進行編碼的示意圖。在第9A圖所示地特定實施例中,區塊930表示取自輸入影像的一個分量的樣本的8×2矩形(例如,從影像內容10的一個分量中取出)。當根據變換模式對區塊930進行預測編碼時,可以應用非均勻組(例如,在區塊930的符號S0至S15處表示區塊的量化殘差的變換的量化係數,例如空間頻域,例如離散餘弦變換(DCT))。
第9B圖所示的實施例中,編碼方案設計為每個時脈2個樣本的吞吐量。因此,參照上文中第6圖說明的計算,使用符號可變長度碼(SVLC)編碼的樣本的數量N為4,並且樣本組的數量M同樣為4。使用SVLC編碼的四個樣本在第9B圖中標記為組0 940,並且四個樣本組標記為組1 941、組2 942、組3 943及組4 944。
Figure 02_image055
個樣本組中的每一個皆包含一個前綴和不同數量的後綴。可以在編碼方案的設計期間設定後綴的數量(例如,根據目標吞吐量以及區塊的大小選擇參數
Figure 02_image057
Figure 02_image055
)。在第9B圖所示的特定實施例中,組1 941包含一個前綴P1及僅一個後綴,並且組2 942包含一個前綴P2及僅一個後綴(例如,組1 941及組2 942各自僅包含一個值)。組3 943一個前綴P3及四個後綴,以及組4 944一個前綴P4及六個後綴。這樣一來,每個16個樣本的區塊(
Figure 02_image111
)在位元流中總共有8個(
Figure 02_image113
)可變長度二進制字組(VLBs),其提供了每時脈2個樣本的目標吞吐量(16個樣本/8個時脈)。在下列的表2中總結了第9B圖中所示的五個組,以及它們對應的編碼方法及各組中的可變長度二進制字組(VLBs)的總數。 2
組別 編碼方法 樣本數 VLB 總數
組0 SVLC 4 4
組1 CPEC 1 1
組2 CPEC 1 1
組3 CPEC 4 1
組4 CPEC 6 1
在第9B圖及表2所示的佈置中,由於各樣本都被編碼為VLB,而導致符號之間的邊界是未知的或模糊的,所以組0 940中的樣本S0、S1、S2及S8的位元表示法B0、B1、B2及B8被依序地解碼。在第9B圖中使用不同寬度的方塊繪示了樣本S0、S1、S2及S8的位元表示法B0、B1、B2及B8,以暗示這些SVLC編碼符號具有不同的長度。根據第9B圖中所示的編碼方案的實施例,組0 940表示樣本S0、S1、S2及S8。然而,本揭露的實施例不限定於此,並且SVLC編碼樣本的組可以表示區塊930的不同樣本。
如同第9A圖,第9B圖使用不同寬度的方塊繪示了前綴P1、P2、P3及P4,以暗示這些可變長度前綴可以具有不同的長度(例如,對用於編碼其各自組中的各後綴的位元數進行編碼)。同樣地,各組的後綴的長度可以根據其相應前綴所編碼的值而有所不同。一旦分析了組1、組2、組3及組4各自的VLB前綴P1、P2、P3及P4,就可以並行分析組1、組2、組3及組4中的每一個的後綴。根據第9B圖所示的編碼方案的實施例,組1 941表示樣本S3,組2 942表示樣本S4,組3 943表示樣本S5、S9、S10及S11,以及組4 944 表示樣本S6、S7、S12、S13、S14及S15。然而,本揭露的實施例不限定於此,樣本組可以表示區塊930的不同樣本。
在本揭露的一些實施例中,僅包含一個樣本的CPEC編碼組改為使用SVLC編碼。舉例來說,參照第9B圖,組1及組2各自僅包含一個樣本。相應地,可以使用SVLC直接對這兩個樣本進行編碼,而不是使用相應的可變長度前綴(分別為P1和P2)及後綴以對其中的每一個進行編碼(例如,參照第9C圖,如下所述)。本揭露的實施例的一些態樣涉及一種編碼器在使用SVLC或具有單個值的CPEC組之間進行選擇以對單個樣本進行編碼的方法。例如,SVLC或CPEC之間的選擇可以取決於樣本分佈及SVLC編碼方法。作為一個示例,假設樣本值為-1。使用CPEC編碼及二進制補碼,可以使用值為1的單個位元表示-1的值。因此,指定後綴的長度為1時,CPEC組的前綴為「10」,並且後綴的值為1,如上所述,共3位元。另一方面,當使用SVLC時,例如霍夫曼編碼,可能會發現在給定環境中-1是非常不可能的樣本值,因此用於此環境的特定碼本將使用多於3位元以表示-1的樣本值。另一方面,當在某些情況下,樣本值可能具有很高的機率在霍夫曼編碼中以很短的表示法表示,但是其可能需要更多的位元才能使用二進制補碼及CPEC表示。在此情況下,SVLC可能為用於編碼此樣本值的更有效方法。因此,在本揭露的一些實施例中,編碼器110基於使用兩種不同技術以基於對資料進行編碼的效率以動態地選擇使用SVLC或是使用CPEC對單樣本進行編碼,並且編碼器可以將所選擇的選項包含在位元流中。在一些實施例中,SVLC或CPEC的選擇是基於包含在位元流30中的旗標,其作為在操作806中確定區塊的預測編碼模式的一部分,並且在一些實施例中,用於指示使用SVLC或CPEC對單樣本進行編碼的旗標位於編碼位元流30的其他部分,例如緊接在M個樣本組之前。在下列的表3中總結了根據本實施例的第9B圖中所示的編碼的修改版本: 3
組別 編碼方式 樣本數 VLB 總數
組0 SVLC 4 4
組1 SVLC 1 1
組2 SVLC 1 1
組3 CPEC 4 1
組4 CPEC 6 1
此外,在本揭露的一些實施例中,當使用變換跳躍區塊預測模式對區塊進行編碼時,同樣將區塊劃分成多個非均勻組。第9C圖為根據本揭露一實施例的使用非均勻的組以對轉換跳躍及區塊預測編碼區塊進行編碼的示意圖。在第9C圖中所示的特定實施例中,區塊950表示取自輸入影像中的一個分量的樣本的8×2矩形(例如,從影像內容10的一個分量中取出)。當根據變換跳躍區塊預測模式對區塊950進行預測編碼時,也可以應用非均勻組。
在第9C圖所示的實施例中,編碼方案設計為每個時脈2個樣本的吞吐量。因此,參照上文中第6圖說明的計算,使用符號可變長度碼(SVLC)編碼的樣本的數量N為4,並且樣本組的數量M同樣為4。使用SVLC編碼的四個樣本在第9C圖中標記為group0 960,並且四個樣本組標記為組1 961、組2 962、組3 963及組4 964。
Figure 02_image023
個樣本組中的每一個皆包含一個前綴和不同數量的後綴。可以在編碼方案的設計期間設定後綴的數量(例如,根據目標吞吐量以及區塊的大小選擇參數
Figure 02_image021
Figure 02_image023
)。在第9C圖所示的特定實施例中,組1 961包含一個前綴P1及僅一個後綴,並且組2 962包含一個前綴P2及僅一個後綴(例如,組1 961及組2 962各自僅包含一個值)。相應地,如上述第9C圖中所示的,在第9C圖所示的一些實施例中,可以使用CPEC對這些樣本進行編碼,而非使用SVLC。組3 963一個前綴P3及五個後綴,以及組4 964一個前綴P4及五個後綴。這樣一來,每個16個樣本的區塊(
Figure 02_image115
)在位元流中總共有8個(
Figure 02_image109
)可變長度二進制字組(VLBs),其提供了每時脈2個樣本的目標吞吐量(16個樣本/8個時脈)。在下列的表4中總結了第9B圖中所示的五個組,以及它們對應的編碼方法及各組中的可變長度二進制字組(VLBs)的總數。 4
組別 編碼方法 樣本數 VLB 總數
組0 SVLC 4 4
組1 SVLC 1 1
組2 SVLC 1 1
組3 CPEC 5 1
組4 CPEC 5 1
在第9C圖及表4所示的佈置中,由於各樣本都被編碼為VLB,而導致符號之間的邊界是未知的或模糊的,所以組0 960中的樣本S0、S1、S8及S9的位元表示法B0、B1、B8及B9被依序地解碼。在第9C圖中使用不同寬度的方塊繪示了樣本S0、S1、S8及S9的位元表示法B0、B1、B8及B9,以暗示這些SVLC編碼符號具有不同的長度。根據第9C圖中所示的編碼方案的實施例,組0 960表示樣本S0、S1、S8及S9。然而,本揭露的實施例不限定於此,並且SVLC編碼樣本的組可以表示區塊950的不同樣本。
第9C圖使用不同寬度的方塊繪示了前綴P0、P1、P2及P3,以暗示這些可變長度前綴可以具有不同的長度(例如,對用於編碼其各自組中的各後綴的位元數進行編碼)。同樣地,各組的後綴的長度可以根據其相應前綴所編碼的值而有所不同。一旦分析了組1、組2、組3及組4各自的VLB前綴P1、P2、P3及P4,就可以並行分析組1、組2、組3及組4中的每一個的後綴。根據第9C圖所示的編碼方案的實施例,組1 961表示樣本S2,組2 962表示樣本S10,組3 963表示樣本S3、S11、S4、S12及S5,以及組4 964 表示樣本S7、S12、S13、S14及S15。然而,本揭露的實施例不限定於此,樣本組可以表示區塊950的不同樣本。由於第9C圖繪示了使用變換跳躍區塊預測模式編碼的區塊,所以將這些組選擇為連續的組。
在一些實施例中,當組內或分量內的所有樣本值皆為零時,將使用跨越旗標以發出訊號。在一些實施例中,當一個區塊的一個分量中的所有樣本皆為零時,將使用分量跨越旗標(例如,YCoCg或YCbCr色彩空間中的橙色色彩分量或綠色色彩分量,因為亮度分量Y很少全為零)。
在一些實施例中,當一個組內的所有樣本皆為零時,將使用組跨越旗標。在一些實施例中,使用SVLC編碼的樣本被劃分為一或多個組,並且組跨越旗標可以應用於SVLC編碼樣本組中的所有樣本。在一些實施例中,組跨越旗標與CPEC編碼組一起使用。在一些實施例中,組跨越旗標僅與CPEC編碼組一起使用,而不與諸如SVLC編碼組的其他組一起使用。當使用變換模式對區塊進行編碼時,通常會出現包含全零的組,這是因為,例如,具有低空間頻率的區塊可能導致許多係數為零。
本揭露的實施例的一些態樣涉及調整編碼佈置以適應不同的取樣格式。舉例來說,在4:2:2色度格式中,由於水平次取樣,色度區塊(例如YCbCr格式的Cb及Cr分量)所包含的取樣數是亮度(Y)分量區塊的一半。作為另一個實施例,在4:2:0色度格式中,由於水平及垂直次採樣,色度區塊包含作為亮度(Y)分量區塊的樣本數量的四分之一。
相應地,本揭露的實施例的一些態樣涉及對於4:2:2及4:2:0色度格式維持相同的解碼吞吐量。在一些實施例中,計算組
Figure 02_image023
的總數及單個值
Figure 02_image021
的數量,以使色度分量的VLBs總數不大於亮度分量的VLBs數量的一半(在4:2:2色度格式的情況下)或四分之一(在4:2:0色度格式的情況下)。例如,參照上述例示性實施例,對於總共16個樣本的區塊大小為8×2,對於4:2:2的內容,亮度樣本的數量為16且色度樣本的數量為8,且因此,在亮度區塊的4:2:2的位元流中使用CPEC編碼的M的上限為4 (16 / 4 = 4),在色度區塊為2 (8 / 4 = 2)。在內容為4:2:0的情況下,亮度樣本的數量為16,色度樣本的數量為4,因此在亮度區塊的4:2:0的位元流中M的上限為4 (16 / 4 = 4),在色度區塊為1 (4 / 4 = 1)。
因此,本揭露的實施例的態樣涉及用於實現編碼方法的系統及方法,其中,以編碼協定的吞吐量(以每個解碼器時脈的符號為單位進行測量)是可調整的。本揭露的實施例的一些態樣涉及透過修改用於對編碼位源流中給定區塊進行編碼的可變長度二進制字組(VLBs)的數量以調整吞吐量。更詳細地,假設解碼器使用了一個完整的時脈週期以分析給定的VLB,因此可以透過將每個區塊的樣本數除以目標吞吐量以達到目標吞吐量,進而達到每個區塊的VLBs的目標數量。可以透過以下方式控制VLBs的目標數量,使用符號可變長度代碼(SVLCs)對一些樣本進行編碼,並且一些樣本使用一種代碼,其中單個可變長度代碼與使用固定長度代碼編碼的多個樣本共享(例如,通用前置熵碼或CPEC)。相應地,本揭露的實施例的態樣使得協定或協定的類別能夠調整,以滿足特定應用程式的目標吞吐量,從而當在吞吐量及壓縮效率之間進行權衡時允許更多的設計靈活性。
儘管已經結合部分例示性實施例以說明本揭露,但是應當理解的是,本揭露不限定於所說明的實施例,相反地,本揭露旨在涵蓋包含在所附申請專利範圍及其等同物中的精神及範圍內的各種修改及等效佈置。
1:主機 2:顯示裝置 10:影像內容 12:區塊 14:樣本 16A,16B,16C,16D:組 18:解碼表示法 20:顯示面板 30:位元流 50:實體媒體 100:應用處理器 110:編碼器 200:顯示驅動積體電路 202:碼框緩衝器 210:解碼器 300:通用CPEC結構 302,402,P0,P1,P2,P3,P4:前綴 304A,304B,304C,304D,404A,404B,404C:後綴 510,530,910,930,950:區塊 520,521,522,523,540,541,542,543:熵編碼組 920,940,960:組0 921,941,961:組1 922,942,962:組2 923,943,963:組3 924,944,964:組4 S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15:樣本 B0,B1,B2,B8,B9,B10:位元表示法 610,630,650,710,730,750,770,772,774,790,806,810,830,832,834,850,870:操作
附圖與本說明書一同示出了本揭露的例示性實施例,並且與本說明書一同用於解釋本發明概念。 第1圖為包含編碼器及解碼器的系統的方塊圖,其中編碼器係配置為對影像內容進行編碼並且解碼器係配置為對影像內容進行解碼以在顯示裝置上顯示。 第2圖為影像的一個區塊的示意圖,其中此區塊具有8×2的尺寸並且被劃分成具有四個樣本的四個組。 第3圖為用於具有N=4個樣本的組的通用前置熵代碼(Common Prefix Entropy Code,CPEC)結構的示意圖。 第4圖為在顯示流壓縮(Display Stream Compression,DSC)的情況下的3x1區塊及其使用通用前置熵代碼編碼的示意圖。 第5A圖為將8×2區塊劃分為尺寸一致的四個組的示意圖(各組為對應於四個樣本的區塊的2×2部分)。 第5B圖為將8×2區塊劃分為尺寸不一致的四個組的示意圖。 第6圖為根據本揭露的一實施例的用於針對給定的目標解碼器吞吐量來計算使用符號可變長度代碼(Symbol Variable Length Code,SVLC)編碼的樣本的數字N及樣本的數量M的方法流程圖。 第7圖為根據本揭露一實施例的對影像內容進行編碼的方法的流程圖。 第8圖為根據本揭露一實施例的對影像內容進行解碼的方法的流程圖。 第9A圖為根據本揭露一實施例的使用均勻的組以對區塊進行編碼的示意圖。 第9B圖為根據本揭露一實施例的使用非均勻的組以對區塊進行編碼的示意圖。 第9C圖為根據本揭露一實施例的使用非均勻的組以對轉換跳躍及區塊預測編碼區塊進行編碼的示意圖。
510:區塊
520,521,522,523:熵編碼組
S0,S1,S2,S3,S4,S5,S6,S7,S8,S9,S10,S11,S12,S13,S14,S15:樣本
P0,P1,P2,P3:前綴

Claims (22)

  1. 一種從包含複數個區塊的一編碼位元流中解碼一影像內容的方法,該方法包含: 透過一解碼器電路,將包含該影像內容的一或多個分量的一區塊劃分為對應於該一或多個分量中的一個的N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1; 透過該解碼器電路,使用符號可變長度代碼(Symbol Variable Length Code,SVLC)解碼該N個單樣本中的每一個以產生一或多個解碼單樣本; 透過該解碼器電路,使用通用前置熵代碼(Common Prefix Entropy Code,CPEC)解碼該M個樣本組中的每一個以產生一或多個解碼樣本組,該M個樣本組中的每一個包含一可變長度前綴及代表複數個樣本的一或多個固定長度後綴; 透過該解碼器電路,序連該解碼單樣本及該解碼樣本組為一殘差區塊;以及 透過該解碼器電路,基於先前重組的該影像內容的相鄰區塊以及該殘差區塊重組該影像內容。
  2. 如請求項1所述之方法,其中N及M係基於一目標解碼器吞吐量以透過以下方式設定: 基於該區塊的樣本的數量以及最高可用吞吐量以計算M的一上限; 基於該區塊的樣本的數量以及該目標解碼器吞吐量以計算可變長度代碼的數量;以及 基於可變長度代碼的數量及M的該上限以計算N。
  3. 如請求項1所述之方法,其中該區塊的該M個樣本組中的每一個具有相同數量的固定長度後綴。
  4. 如請求項3所述之方法,其中該區塊以一變換跳躍區塊預測模式(transform skip, block prediction mode)進行預測編碼。
  5. 如請求項1所述之方法,其中該區塊的該M個樣本組中的至少兩個具有不同數量的固定長度後綴。
  6. 如請求項5所述之方法,其中該區塊以變換模式或變換跳躍區塊預測模式進行預測編碼。
  7. 如請求項1所述之方法,其中該區塊包含該影像內容的複數個分量。
  8. 如請求項1所述之方法,其中該編碼位元流進一步包含一分量跨躍旗標(component skip flag),其指示該編碼位元流的該區塊的對應分量的複數個樣本中的所有樣本皆為零。
  9. 如請求項1所述之方法,其中該編碼位元流進一步包含一組跨越旗標(group skip flag),其指示該M個樣本組中的一組的所有樣本皆為零。
  10. 一種編碼影像內容的方法,其包含: 透過一編碼器電路,劃分所接收的影像內容為一或多個區塊,一或多個該區塊中的每一個包含來自該影像內容的一或多個分量的複數個樣本; 透過該編碼器電路,對各該區塊進行預測編碼以產生一殘差區塊; 透過該編碼器電路,將各該殘差區塊分割為N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1; 透過該編碼器電路,使用符號可變長度代碼編碼該N個單樣本中的每一個以產生一或多個符號可變長度代碼編碼樣本; 透過該編碼器電路,使用通用前置熵代碼編碼該M個樣本組中的每一個以產生一或多個通用前置熵代碼編碼樣本,該M個樣本組中的每一個包含一可變長度前綴及一或多個固定長度後綴;以及 透過該編碼器電路,組合該符號可變長度代碼編碼樣本及該通用前置熵代碼編碼樣本以輸出一編碼位元流。
  11. 如請求項10所述之方法,其中N及M係基於一目標解碼器吞吐量以透過以下方式設定: 基於一或多個區塊的一每區塊樣本數以及最高可用吞吐量以計算M的一上限; 基於該每區塊樣本數以及該目標解碼器吞吐量以計算可變長度代碼的數量;以及 基於可變長度代碼的數量及M的該上限以計算N。
  12. 如請求項10所述之方法,其中分割各預測編碼區塊包含使用均勻分割以劃分該預測編碼區塊中的至少一個預測編碼區塊,其中至少一個該預測編碼區塊的該M個樣本組中的每一個具有相同數量的固定長度後綴。
  13. 如請求項12所述之方法,其中至少一個預測編碼區塊以變換跳躍區塊預測模式進行預測編碼。
  14. 如請求項10所述之方法,其中分割各預測編碼區塊包含使用非均勻分割以劃分該預測編碼區塊中的至少一個預測編碼區塊,其中至少一個該預測編碼區塊的至少兩個該M個樣本組具有不同數量的固定長度後綴。
  15. 如請求項14所述之方法,其中至少一個該預測編碼區塊以變換模式或變換跳躍區塊預測模式進行預測編碼。
  16. 如請求項14所述之方法,其中各該區塊包含該影像內容的複數個分量。
  17. 如請求項10所述之方法,其中該編碼位元流進一步包含一分量跨越旗標,其指示該區塊的至少一個對應通道的複數個樣本中的所有樣本皆為零。
  18. 如請求項10所述之方法,其中該編碼位元流進一步包含一組跨越旗標,其指示該M個樣本組中的一組的複數個樣本中的所有樣本皆為零。
  19. 一種傳輸影像內容的系統,其包含: 一編碼器電路,係配置為: 劃分所接收的包含複數個分量的一影像內容為一或多個區塊,一或多個該區塊中的每一個包含來自該複數個分量中的一個的複數個樣本; 預測編碼各該區塊已產生一預測編碼區塊; 分割各該預測編碼區塊為N個單樣本及M個樣本組,其中N大於或等於1且M大於或等於1; 使用符號可變長度代碼編碼該N個單樣本中的每一個以產生一或多個符號可變長度代碼編碼樣本; 使用通用前置熵代碼編碼該M個樣本組中的每一個以產生一或多個通用前置熵代碼編碼樣本,該M個樣本組中的每一個包含一可變長度前綴及一或多個固定長度後綴;以及 組合該符號可變長度代碼編碼樣本及該通用前置熵代碼編碼樣本以輸出一編碼位元流;以及 一解碼器電路,係配置為: 從該編碼器電路接收該編碼位元流; 劃分該編碼位元流的區塊為該N個單樣本及該M個樣本組; 使用符號可變長度代碼解碼該N個單樣本中的每一個以產生一或多個解碼單樣本; 使用通用前置熵代碼解碼該M個樣本組中的每一個以產生一或多個解碼樣本組; 根據該解碼單樣本及該解碼樣本組重組該預測編碼區塊; 應用預測編碼以解碼該預測編碼區塊;以及 解碼來自解碼的該預測編碼區塊的該影像內容。
  20. 如請求項19所述之系統,其中N及M係基於一目標解碼器吞吐量以透過以下方式設定: 基於該區塊的樣本的數量以及最高可用吞吐量以計算M的一上限; 基於該區塊的樣本的數量以及該目標解碼器吞吐量以計算可變長度代碼的數量;以及 基於可變長度代碼的數量以及M的該上限以計算N。
  21. 如請求項20所述之系統,其中該編碼器電路進一步配置為: 檢測至少一個該編碼器電路或該解碼器電路所運行的通訊環境的一或多個因素;以及 基於一或多個該因素動態更新N及M的值。
  22. 如請求項21所述之系統,其中一或多個該因素包含一或多個下列要素:功率、處理器能力、在解碼器電路中共同運作的解碼器數量、內部頻寬、解碼器電路的溫度條件或編碼器電路及解碼器電路之間的物理介質中的噪聲。
TW110101165A 2020-01-13 2021-01-12 編碼及解碼影像內容的方法及傳輸影像內容的系統 TW202135527A (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US202062960517P 2020-01-13 2020-01-13
US62/960,517 2020-01-13
US16/835,092 US11468601B2 (en) 2020-01-13 2020-03-30 Systems and methods for scalable throughput entropy coder
US16/835,092 2020-03-30

Publications (1)

Publication Number Publication Date
TW202135527A true TW202135527A (zh) 2021-09-16

Family

ID=74104004

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110101165A TW202135527A (zh) 2020-01-13 2021-01-12 編碼及解碼影像內容的方法及傳輸影像內容的系統

Country Status (6)

Country Link
US (3) US11468601B2 (zh)
EP (1) EP3849185A1 (zh)
JP (1) JP2021111975A (zh)
KR (1) KR20210091657A (zh)
CN (1) CN113115049A (zh)
TW (1) TW202135527A (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20230403415A1 (en) * 2022-06-13 2023-12-14 Advanced Micro Devices, Inc Adaptive Decoder-Driven Encoder Reconfiguration

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5381145A (en) 1993-02-10 1995-01-10 Ricoh Corporation Method and apparatus for parallel decoding and encoding of data
WO2011002914A1 (en) 2009-06-30 2011-01-06 Massachusetts Institute Of Technology System and method for providing high throughput entropy coding using syntax element partitioning
PT3349360T (pt) 2011-01-14 2019-12-09 Ge Video Compression Llc Esquema de codificação e descodificação de entropia
CN107529706B (zh) 2011-06-16 2020-11-17 Ge视频压缩有限责任公司 解码器、编码器、解码和编码视频的方法及存储介质
US8885706B2 (en) 2011-09-16 2014-11-11 Google Inc. Apparatus and methodology for a video codec system with noise reduction capability
US9503717B2 (en) 2012-01-09 2016-11-22 Texas Instruments Incorporated Context adaptive binary arithmetic coding (CABAC) with scalable throughput and coding efficiency
US9191670B2 (en) 2012-01-17 2015-11-17 Qualcomm Incorporated Throughput improvement for CABAC coefficient level coding
US9743116B2 (en) 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9571858B2 (en) 2013-07-19 2017-02-14 Futurewei Technologies, Inc. Method and apparatus of derivation for a binary partition pattern
US10743032B2 (en) * 2017-05-24 2020-08-11 Qualcomm Incorporated Substream multiplexing for display stream compression

Also Published As

Publication number Publication date
US20230326087A1 (en) 2023-10-12
US20210217199A1 (en) 2021-07-15
EP3849185A1 (en) 2021-07-14
KR20210091657A (ko) 2021-07-22
US20230008330A1 (en) 2023-01-12
US11468601B2 (en) 2022-10-11
JP2021111975A (ja) 2021-08-02
CN113115049A (zh) 2021-07-13
US11715239B2 (en) 2023-08-01

Similar Documents

Publication Publication Date Title
WO2020253828A1 (zh) 一种编解码方法、装置及存储介质
US9299166B2 (en) Image compression method and apparatus for bandwidth saving
KR102120571B1 (ko) 넌-4:4:4 크로마 서브-샘플링의 디스플레이 스트림 압축 (dsc) 을 위한 엔트로피 코딩 기법들
JP2009010954A (ja) 高速な画像処理方法およびシステム
JP6800991B2 (ja) ディスプレイストリーム圧縮のためのベクトルベースエントロピーコード化のための装置および方法
WO2023236936A1 (zh) 一种图像编解码方法及装置
US20230326087A1 (en) Systems and methods for scalable throughput entropy coders
US11677932B2 (en) Image processing device
TW202013969A (zh) 在顯示介面壓縮技術中形成熵編碼組的方法和系統
WO2024022359A1 (zh) 一种图像编解码方法及装置
CN110708547B (zh) 针对变换模式的有效熵编码组分组方法
EP1579389B1 (en) Run length encoding of a quantized digital image
KR20100013142A (ko) 프레임 메모리 압축방법
TWI795480B (zh) 用於執行資料解壓縮的影像處理裝置及用於執行資料壓縮的影像處理裝置
WO2023185806A9 (zh) 一种图像编解码方法、装置、电子设备及存储介质
WO2010018494A1 (en) Image compression
Chiou et al. Lossless pixel-gradient embedded compression algorithm for the memory bandwidth saving of the larger-sized WRGB OLED applications
KR20190091181A (ko) 이미지 처리 장치
JP2011193192A (ja) データ処理装置