TWI658702B - 資料編碼及解碼 - Google Patents

資料編碼及解碼 Download PDF

Info

Publication number
TWI658702B
TWI658702B TW103112703A TW103112703A TWI658702B TW I658702 B TWI658702 B TW I658702B TW 103112703 A TW103112703 A TW 103112703A TW 103112703 A TW103112703 A TW 103112703A TW I658702 B TWI658702 B TW I658702B
Authority
TW
Taiwan
Prior art keywords
data
value
range
bit
significant
Prior art date
Application number
TW103112703A
Other languages
English (en)
Other versions
TW201511480A (zh
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 TW201511480A publication Critical patent/TW201511480A/zh
Application granted granted Critical
Publication of TWI658702B publication Critical patent/TWI658702B/zh

Links

Classifications

    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04NPICTORIAL COMMUNICATION, e.g. TELEVISION
    • H04N19/00Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
    • H04N19/10Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
    • H04N19/102Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
    • H04N19/13Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/3068Precoding preceding compression, e.g. Burrows-Wheeler transformation
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4006Conversion to or from arithmetic code
    • H03M7/4012Binary arithmetic codes
    • H03M7/4018Context adapative binary arithmetic codes [CABAC]
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4043Adaptive prefix coding
    • H03M7/4068Parameterized codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4081Static prefix coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • H03M7/4031Fixed length to variable length coding
    • H03M7/4037Prefix coding
    • H03M7/4087Encoding of a tuple of symbols
    • 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
    • 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/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
    • 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/46Embedding additional information in the video signal during the compression process
    • H04N19/463Embedding additional information in the video signal during the compression process by compressing encoding parameters before transmission
    • 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/60Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding
    • H04N19/63Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets
    • H04N19/64Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission
    • H04N19/647Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using transform coding using sub-band based transform, e.g. wavelets characterised by ordering of coefficients or of bits for transmission using significance based coding, e.g. Embedded Zerotrees of Wavelets [EZW] or Set Partitioning in Hierarchical Trees [SPIHT]
    • 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
    • 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/93Run-length coding
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/40Conversion to or from variable length codes, e.g. Shannon-Fano code, Huffman code, Morse code
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/30Compression; Expansion; Suppression of unnecessary data, e.g. redundancy reduction
    • H03M7/46Conversion to or from run-length codes, i.e. by representing the number of consecutive digits, or groups of digits, of the same kind by a code word and a digit indicative of that kind

Abstract

一種影像資料編碼方法,包括下述步驟:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及,根據輸入影像資料的位元深度,選取轉換矩陣的最大動態範圍及/或資料精度。

Description

資料編碼及解碼
本發明係關於資料編碼及解碼。
此處提供之「先前技術」說明是為了大致地呈現揭示的內容。在本先前技術一節中所說明的範圍內,目前提及的發明人之工作、以及在申請時在其它情形中可能未被視為先前技術之說明的範疇,既未明確地也未隱含地被視為否定本發明。
有數種關於視頻資料壓縮及解壓縮系統,它們涉及轉換視頻資料至頻域表示、量化頻域係數、然後應用某形式的熵編碼至量化的係數。
在本文中,熵可被視為代表資料符號或符號系列的資訊內容。熵編碼的目的是使用(理想地)代表資料符號系列的資訊內容之最小數目的編碼資料位元而以無損失方式來將資料符號系列編碼。實際上,使用熵編碼以將量化係數編碼,以致於編碼資料小於原始量化係數的資料大小(以其位元數目觀點而言)。更有效率的熵編碼處理對相 同的資料大小可給予較小的輸出資料大小。
用於熵編碼視頻資料的一技術是稱為CABAC(內容適應二進位算術編碼)技術。
本發明提供根據申請專利範圍第1項之資料編碼方法。
其它各別態樣及特點界定於後附的申請專利範圍中。
要瞭解,前述一般說明及下述詳細說明是本發明的舉例說明,但不是限制性的。
20‧‧‧壓縮裝置
30‧‧‧傳輸路由
40‧‧‧解壓縮裝置
60‧‧‧壓縮裝置
70‧‧‧解壓縮裝置
110‧‧‧解壓縮裝置
120‧‧‧顯示器
140‧‧‧壓縮裝置
150‧‧‧儲存裝置
160‧‧‧解壓縮裝置
310‧‧‧加法器
320‧‧‧預測器
340‧‧‧轉換單元
350‧‧‧量化器
360‧‧‧掃描單元
370‧‧‧熵編碼器
400‧‧‧逆掃描單元
410‧‧‧熵解碼器
420‧‧‧逆量化器
430‧‧‧逆轉換單元
450‧‧‧加法器
500‧‧‧多工化器
520‧‧‧內模式選取器
530‧‧‧內影像預測器
540‧‧‧動作補償預測器
550‧‧‧動作評估器
560‧‧‧濾波器單元
570‧‧‧影像儲存器
580‧‧‧內插濾波器
600‧‧‧乘法器
610‧‧‧向右偏移器
700‧‧‧最大編碼單元
710‧‧‧編碼單元
720‧‧‧編碼單元
730‧‧‧編碼單元
900‧‧‧轉換器
910‧‧‧開關
920‧‧‧旁通編碼器
930‧‧‧開關
940‧‧‧開關
950‧‧‧編碼器
960‧‧‧編碼器
1120‧‧‧碼值導出單元
1130‧‧‧碼產生單元
1140‧‧‧範圍重設單元
1150‧‧‧歸一化器
1220‧‧‧碼值導出單元
1230‧‧‧編碼應用單元
1240‧‧‧範圍重設單元
1250‧‧‧歸一化器
當配合附圖考慮時,參考實施例的詳細說明,將更佳容易完整瞭解本發明及其很多優點,其中:圖1示意性顯示使用視頻資料壓縮及解壓縮之音頻/視頻(A/V)資料傳輸及接收系統;圖2示意性顯示使用視頻資料解壓縮之視頻顯示系統;圖3示意性顯示使用視頻資料壓縮及解壓縮之音頻/視頻儲存系統;圖4示意性顯示使用視頻資料壓縮的攝影機;圖5提供視頻資料壓縮及解壓縮裝置的概要視圖;圖6示意性顯示預測影像的產生;圖7示意性顯示最大的編碼單元(LCU); 圖8示意性顯示四個編碼單元(CU)組;圖9及10示意性顯示圖8的編碼單元被次分割成更小的編碼單元;圖11示意性顯示預測單元(PU)陣列;圖12示意性顯示轉換單元(TU)陣列;圖13示意性顯示部份編碼的影像;圖14示意性顯示可能的預測方向組;圖15示意性顯示預測模式組;圖16示意性顯示鋸齒形掃描;圖17示意性顯示CABAC熵編碼器;圖18A至18D示意性顯示CABAC編碼及解碼操作的態樣;圖19示意性顯示CABAC編碼器;圖20示意性顯示CABAC解碼器;圖21顯示編碼系統的概要;圖22是位元速率相對於量化參數(QP)之圖形;圖23是在轉換跳過模式致能時對於六測試位元深度之位元速率相對於綠頻道PSNR之圖形;圖24是在轉換跳過模式禁能時對於六測試位元深度之位元速率相對於綠頻道PSNR之圖形;圖25是在14位元轉換矩陣時對於六測試位元深度之位元速率相對於綠頻道PSNR之圖形;圖26是針對一測試序列比較不同的精準DCT矩陣之PSNR相對於位元速率的圖形; 圖27是針對一測試序列顯示使用旁通固定位元編碼之PSNR相對於位元速率之圖形;圖28是提供編碼設定檔的實例之表格;圖29至31是示意性流程圖,分別顯示部份CABAC處理的版本;圖32A-F是顯示不同CABAC對齊架構的示意圖;圖33至35是示意性流程圖,分別顯示CABAC處理的終止階段的版本;圖36是流程圖,示意性顯示編碼技術;圖37是流程圖,示意性顯示適應技術;以及圖38及39是示意性流程圖,顯示用於選取轉換動態範圍及資料精準參數之處理。
現在參考圖式,圖1-4顯示利用與實施例相關而於下說明的壓縮及/或解壓縮之裝置或系統。
要於下說明的所有資料壓縮及/或解壓縮裝置可以以硬體、在例如一般用途電腦等一般用途資料處理裝置上運行的軟體、例如特定應用積體電路(ASIC)或現場可編程閘陣列(FPGA)等可編程硬體、或這些的組合來實施。在實施例由軟體及/或韌體實施的情形中,將瞭解這些軟體及/或韌體、及儲存有這些軟體及/或韌體等等的非暫態機器可讀取資料儲存媒體是被視為實施例。
圖1顯示使用視頻資料壓縮及解壓縮之音頻/視頻 (A/V)資料傳輸及接收系統。
輸入音頻/視頻訊號10供應至視頻資料壓縮裝置20,資料壓縮裝置20將音頻/視頻訊號10的至少視頻成分壓縮,以用於沿著例如纜線、光纖、無線鏈路等傳輸路由30傳輸。壓縮的訊號由解壓縮裝置40處理以提供輸出音頻/視頻訊號50。對於返回路徑,壓縮裝置60將音頻/視頻訊號壓縮以用於沿著傳輸路由30傳輸至解壓縮裝置70。
壓縮裝置20及解壓縮裝置70因而形成傳輸鏈路的一節點。解壓縮裝置40及解壓縮裝置60形成傳輸鏈路的另一節點。當然,在傳輸鏈路是單向的情形中,僅有一節點要求壓縮裝置,而其它節點僅要求解壓縮裝置。
圖2顯示使用視頻資料解壓縮的視頻顯示系統。特別地,壓縮的音頻/視頻訊號100由解壓縮裝置110處理,以提供能顯示於顯示器120上的解壓縮訊號。解壓縮裝置110可以實施成顯示器120的整合部份,舉例而言,與顯示裝置設於相同機殼內。替代地,解壓縮裝置110可以設置成(舉例而言)所謂的機上盒(STB),值得注意的是「機上」一詞並未意指盒子要以相對於顯示器120的特定方向或位置設置;其單純的是此技藝中使用的術語,以表示可以連接至顯示器作為週邊裝置的裝置。
圖3顯示使用視頻資料壓縮及解壓縮的音頻/視頻儲存系統。輸入的音頻/視頻訊號130供應至壓縮裝置140,壓縮裝置140產生壓縮訊號用於由例如磁碟裝置、光碟裝 置、磁帶裝置、例如半導體記憶體等固態儲存裝置或其它裝置等儲存裝置150儲存。為了播放,從儲存裝置150讀出壓縮資料並將其遞送至解壓縮裝置160以用於解壓縮而提供輸出音頻/視頻訊號170。
將瞭解,壓縮或編碼訊號、儲存該訊號的儲存媒體或是資料載體被視為實施例。
圖4顯示使用視頻資料壓縮的攝影機。在圖4中,例如電荷耦合裝置(CCD)影像感測器及相關的控制和讀出電子機構等攝影裝置180會產生視頻訊號,視頻訊號被遞送至壓縮裝置190。麥克風(或是多個麥克風)200產生要遞送給壓縮裝置190的音頻訊號。壓縮裝置190產生要儲存及/或傳送的音頻/視頻訊號210(一般地顯示為示意性階段220)。
下述要說明的技術主要關於視頻資料壓縮。將瞭解很多現有的技術可以用於與將說明的視頻資料壓縮技術相結合的音頻資料壓縮,以產生壓縮的音頻/視頻訊號。因此,將不提供音頻資料壓縮的分別說明。也將瞭解,與視頻資料相關連的,特別是與廣播品質視頻資料相關連的資料速率一般而言遠高於與音頻資料相關連(不論經過壓縮或未壓縮)的資料速率。因此,將瞭解,未經過壓縮的音頻資料可以伴隨壓縮的視頻資料以形成壓縮的音頻/視頻訊號。又將瞭解,雖然本實例(圖1-4中所示)關於音頻/視頻資料,但是,下述要說明的技術可以在單純地處理(亦即,壓縮、解壓縮、儲存、顯示及/或傳送)視頻資 料的系統中找到用途。也就是說,實施例可以應用至視頻資料壓縮而完全不必具有任何相關連的音頻資料處理。
圖5提供視頻資料壓縮及解壓縮裝置的概要。
輸入的視頻訊號300的連續影像供應至加法器310以及影像預測器320。將參考圖6,於下述中更詳細地說明影像預測器320。由於加法器310在「+」輸入端接收輸入的視頻訊號300以及在「-」輸入端接收影像預測器320的輸出,所以,加法器310事實上執行減法(負加法)操作,以致於預測的影像從輸入影像減掉。結果是產生所謂的餘留影像訊號330,代表真正及投影影像之間的差異。
產生餘留影像訊號的一理由如下所述。要說明的資料編碼技術,也就是將應用至餘留影像訊號的技術,當要被編碼的影像中有較少「能量」時有助於更有效率地工作。此處,「有效率地」一詞意指小量編碼資料的產生;對於特定影像品質等級,希望(且被視為「有效率的」)產生實際上儘可能少的資料。關於餘留影像中的「能量」係關於含在餘留影像中的資訊量。假使預測影像是要與真實影像相同時,則二者之間的差異(亦即,餘留影像)含有零資訊(零能量)且將非常容易編碼成小量的編碼資料。一般而言,假使能使預測處理相當良好地工作,則期望餘留影像資料將比輸入影像含有較少資訊(較少能量)且因而將更容易編碼成小量編碼資料。
餘留影像資料330供應給轉換單元340,轉換單元340產生餘留影像資料的離散餘弦轉換(DCT)表示。 DCT技術本身是習知的且此處將不詳細說明。但是,本裝置中用使的技術有多種觀點,於下述中將更詳細說明,特別是關於應用DCT操作的不同資料區塊的選擇。在下述中,將參考圖7-12以作說明。
注意,在某些實施例中,使用離散正弦轉換(DST)取代DCT。在其它實施例中,可以不使用轉換。這可以選擇性地達成,以致於在例如「轉換跳過」命令或模式的控制之下有效地繞過轉換階段。
轉換單元340的輸出,亦即,用於各轉換的影像資料區塊之轉換係數組,供應至量化器350。視頻資料壓縮領域中熟知的各種量化技術從簡單乘以量化比例因數到在量化參數的控制之下應用查詢表。一般目的是有兩部分的。 首先,量化處理降低轉換資料的可能值的數目。其次,量化處理增加轉換資料的值為零之可能性。這二者都能使下述說明的熵編碼處理在產生小量的壓縮視頻資料時更有效率地工作。
由掃描單元360施加資料掃描處理。掃描處理的目的是將量化轉換資料重排序以致將儘可能多的非0量化轉換係數收集在一起,當然因而將儘可能多的零值係數收集在一起。這些特點允許所謂的運行長度編碼(run-length coding)或類似的技術被有效率地應用。因此,根據「掃描次序」以致於(a)所有係數被選取一次作為掃描的一部份、及(b)掃描傾向於提供所需的再排序,則掃描處理可從量化轉換資料選取係數,特別從對應於已被轉換及 量化的影像資料區塊的係數區塊中選取。於下將說明用於選取掃描次序的技術。有助於提供有用的結果之一舉例說明的掃描次序是所謂的鋸齒形掃描次序。
掃描係數接著遞送給熵編碼器(EE)370。再者,可以使用各種形式的熵編碼。下述將說明的二實例是所謂的CABAC(內容適應二進位算術編碼)變異系統及所謂的CAVLC(內容適應可變長度編碼)系統。一般而言,CABAC被視為提供更佳的效率,以及,在某些研究中已顯示,相較於CAVLC,對於類似的影像品質,可降低編碼輸出資料數量10-20%。但是,CAVLC被視為比CABAC代表更加低度的複雜性(以實施的觀點而言)。下述將參考圖17以說明CABAC技術,下述將參考圖18及19,說明CAVLC技術。
注意,掃描處理及熵編碼處理顯示為分別的處理,但是,事實上可以相結合或被視為一起。亦即,將資料讀入熵編碼器中可發生在掃描次序中。對應的考慮可以應用至下述說明之各別的逆處理。
熵編碼器370的輸出伴隨其它資料(上述及/或於下說明的),例如界定預測器320產生預測影像的方式,提供壓縮的輸出視頻訊號380。
但是,由於預測器320本身的操作取決於壓縮輸出資料的解壓縮版本,所以,也提供返回路徑。
此特點的理由如下所述。在解壓縮處理(於下說明)中的適當階段,產生餘留資料的解壓縮版本。此解壓縮餘 留資料必須被加至預測影像以產生輸出影像(由於原始的餘留資料是輸入影像與預測影像之間的差異)。為了此處理是同等的,例如在壓縮側與解壓縮側,由預測器320產生的預測影像在壓縮處理期間與解壓縮處理期間應相同。當然,在解壓縮時,裝置不存取原始輸入影像而僅存取解壓縮影像。因此,在壓縮時,預測器320是根據其對壓縮影像的解壓縮版本的預測(至少對於影像間編碼)。
由熵編碼器370執行的熵編碼處理被視為「無損失的」,亦即,其可逆轉而達到與第一次供應給熵編碼器370的資料正好相同。因此,在熵編碼階段之前可以實施返回路徑。事實上,由掃描單元360執行的掃描處理也被視為無損失的,但是,在本實施例中,返回路徑390是從量化器350的輸出至互補逆量化器420的輸入。
一般而言,熵解碼器410、逆掃描單元400、逆量化器420及逆轉換單元430提供熵編碼器370、掃描單元360、量化器350及轉換單元340之各別的逆功能。現在,將繼續說明壓縮處理;將輸入的壓縮視頻訊號解壓縮的處理將於下分別說明。
在壓縮處理中,掃描係數由返回路徑390從量化器350遞送至執行掃描單元360的逆操作之逆量化器420。由單元420、430執行逆量化及逆轉換處理以產生壓縮-解壓縮餘留影像訊號440。
在加法器450,將影像440加至預測器320的輸出以產生重建的輸出影像460。如下將說明般,這形成影像預 測器320的一輸入。
現在轉至要施加至收到的壓縮視頻訊號470的處理,訊號在由加法器450加到影像預測器320的輸出之前,被供應給熵解碼器410,以及自此被供應至逆掃描單元400、逆量化器420及逆轉換單元430的串鏈。直言之,加法器450的輸出460形成輸出的解壓縮視頻訊號480。實際上,在訊號輸出之前可以施加進一步的濾波。
圖6顯示預測影像的產生,特別是影像預測器320的操作。
有二種基本預測模式:所謂的影像內預測及所謂的影像間、或動作補償(MC)預測。
影像內預測根據對來自相同影像內的資料之影像區塊的內容之預測。這相當於其它視頻壓縮技術中所謂的I-框編碼。與I-框編碼相比,整個影像是內編碼,在本實施例中,以一區塊接一區塊為基礎而在內編碼與編碼間之間作選擇,但是,在其它實施例中仍然以一影像接一影像為基礎作選擇。
動作補償預測利用目前影像中要被編碼的影像細節的另一相鄰或接近的影像中嘗試界定來源的動作資訊。因此,在理想的實例中,在相鄰影像中相同或稍微不同的位置處,在預測影像中影像資料區塊的內容可以被很單純地編碼作為指向對應的區塊之參考(動作向量)。
回至圖6,顯示二影像預測配置(對應於影像內及影像間預測),在模式訊號510的控制之下由多工器500選 取它們的結果,以提供預測影像區塊而供應至加法器310及450。取決於給予最低「能量」(如上所述般被視為資訊內容要求編碼)的選取而作出選擇,選擇會被發訊給編碼的輸出資料串流內的編碼器。在此脈絡中,藉由例如執行從輸入影像試驗減掉二版本的預測影像的面積、將差異影像的各像素值平方、將平方值加總、以及辨識二版本中何者產生與該影像面積相關連的差異影像的最小均方值,以偵測影像能量。
在內編碼系統中根據收到作為訊號460的一部份之影像區塊而作出真正的預測,也就是說,預測是根據編碼-解碼影像區塊,以便在解壓縮裝置作出正好相同的預測。但是,由內模式選取器520從輸入的視頻訊號300導出資料,以控制影像內預測器530的操作。
為了影像內預測,動作補償(MC)預測器540使用動作資訊,舉例而言,動作資訊由動作評估器550從輸入視頻訊號300導出之動作向量。那些動作向量由動作補償預測器540施加至重建的影像460的處理版本,以產生影像間預測區塊。
現在將說明施加至訊號460的處理。首先,訊號由濾波器單元560濾波。這涉及施加「解區塊」濾波器以移除或至少傾向於降低轉換單元340執行的區塊為基礎的處理及後續操作之效應。而且,使用藉由處理重建訊號460及輸入的視頻訊號300而導出的係數,施加適應迴路濾波器。適應迴路濾波器是使用已知技術施加適應濾波器係數 至要被濾波的資料之濾波器型式。亦即,濾波器係數視不同因素而變。界定那些濾波器係數要使用的資料被包含作為編碼的輸出資料串流的一部份。
來自濾波器單元560的濾波輸出事實上形成輸出的視頻訊號480。其也被緩衝在一或更多影像儲存器570中;連續影像的儲存是動作補償預測處理的要求,特別是動作向量的產生。為了保存或儲存要求,在影像儲存器570中的儲存影像是以壓縮形式保存,然後被解壓縮以用於產生動作向量。為了此特別目的,可以使用任何已知的壓縮/解壓縮系統。儲存的影像被傳送至內插濾波器580,內插濾波器580產生更高解析度版本的儲存影像;在本實例中,產生中間取樣(次取樣)以致於由內插濾波器580輸出之內插影像的解析度是儲存在影像儲存器570中的影像的解析度的8倍(在各維度)。內插影像作為輸入傳遞至動作評估器550,也傳遞至動作補償預測器540。
在實施例中,提供進一步的選項階段,其使用乘法器600(有效地使資料值向左偏移二位元)以將輸入的視頻訊號的資料值乘以四的因數,以及,使用向右偏移器610而在裝置的輸出施加對應的除法操作(向右偏移二位元)。所以,純粹為了裝置的內部操作,向左及向右偏移會改變資料。由於任何資料捨入誤差的效果降低,所以,此方式在裝置內提供更高的計算準確度。
現在將說明為了壓縮處理以分割影像之方式。在基本階段,要被壓縮的影像被視為取樣區塊的陣列。為了本發 明的目的,考慮的最大此區塊是所謂的最大編碼單元(LCU)700(圖7),其代表64×64取樣的方形陣列。此處,討論是關於亮度取樣。取決於色度模式,例如4:4:4、4:2:2、4:2:0、或4:4:4:4(GBR加上鍵資料),會有對應於此亮度區塊之不同數目的對應色度取樣。
將說明三種基本型式的區塊:編碼單元、預測單元及轉換單元。一般而言,LCU的遞迴次分割允許以區塊尺寸及區塊編碼參數(例如預測或餘數編碼模式)根據要編碼的影像的特定特徵而設定之方式,來分割輸入圖像。
LCU被次分割成所謂的編碼單元(CU)。編碼單元總是方形的且具有在8×8取樣與LCU 700的全尺寸之間的尺寸。編碼單元配置成一種樹結構,以致於發生如圖8所示的第一次分割,產生32×32取樣的編碼單元710;然後,以選擇性為基礎,發生後續的次分割,以造成16×16取樣的某些編碼單元720(圖9)以及潛在的8×8取樣的某些編碼單元730(圖10)。整體而言,此處理提供CU區塊的內容適應編碼樹結構,各CU區塊可以如LCU一般大或是如8×8取樣一般小。輸出的視頻資料的編碼根據編碼單元結構而發生。
圖11顯示預測單元(PU)陣列。預測單元是用於攜帶關於影像預測處理的資訊之基本單元,或者,換言之,加至熵編碼餘留影像資料以形成來自圖5的裝置之輸出視頻訊號之添加資料。一般而言,預測單元在形狀上不限於方形。它們可以採取其它形狀,特別是形成方形編碼單元 中之一的一半之長方形,只要編碼單元大於最小(8×8)尺寸即可。目的是要允許相鄰的預測單元的邊界符合(儘可能地接近)圖像中真實物件的邊界,以致於不同的預測參數可以應用至不同的真實物件。各編碼單元含有一或更多預測單元。
圖12顯示轉換單元(TU)陣列。轉換單元是轉換及量化處理的基本單元。轉換單元總是方形的並採用4×4至32×32取樣的尺寸。各編碼單元含有一或更多轉換單元。圖12中的縮寫字SDIP-P代表所謂的短距離內部預測分割。在此配置中,僅有一維轉換被使用,以致於4×N區塊通過N次轉換,而輸入至轉換的資料是根據目前SDIP-P之內的先前解碼的鄰近區塊及先前解碼的鄰近行。
現在將說明影像內預測處理。一般而言,內預測涉及從相同影像中先前編碼及解碼取樣來產生取樣的目前區塊的預測(預測單元)。圖13顯示部份編碼影像800。此處,以LCU為基礎,將影像從左上方至右下方編碼。經由整體影像的操作而部份地編碼的LCU實例顯示為區塊810。區塊810的上方及左方之陰影區820已被編碼。區塊810的內容的影像內預測利用任何陰影區820,但是未利用其下方的非陰影區。
區塊810代表LCUP;如上所述,為了影像內預測處理的目的,這可以次分割成較小的預測單元。預測單元830的實例顯示於LCU 810之內。
影像內預測考慮目前LCU 810上方及/或左方的取 樣。所要求的影像是從取樣源被預測,取樣源位於相對於LCU 810之內目前預測單元的不同位置或方向。為了決定哪一方向對目前的預測單元是適當的,比較根據各候選方向之試驗預測的結果以便看看哪一候選方向造成最接近輸入影像的對應區之結果。選取造成最接近的結果之候選方向作為用於該預測單元的預測方向。
圖像也以「切片」(slice)為基礎編碼。在一實例中,切片是水平相鄰的LCU組。但是,更一般而言,整個餘留影像形成切片,或是,切片可為單一LCU,或是切片可為LCU列,等等。當切片被編碼成獨立單元時,它們可以對錯誤給予某些恢復。在切片邊界,編碼器及解碼器狀態被完全重設。舉例而言,影像內預測不會跨越切片邊界執行;為此目的,切片邊界被當作影像邊界。
圖14示意性圖示可能的(候選的)預測方向組。34個候選方向的完整組可供8×8、16×16、或32×32取樣的預測單元利用。4×4及64×64取樣的預測單元尺寸的特別情形具有它們可利用的縮減候選方向組(分別為17個候選方向及5個候選方向)。方向是由相對於目前區塊位置的水平及垂直位置所決定,但是,方向被編碼為預測「模式」,其集合顯示於圖15中。注意,所謂的DC模式代表週圍上方及左方取樣的簡單算術平均。
圖16示意性圖示鋸齒形掃描,其是可由掃描單元360施加的掃描圖案。在圖16中,圖案顯示為用於8×8轉換係數的範例區塊,以DC係數位於區塊的左上方位置 840,以及,增加的水平及垂直空間頻率由從左上方位置840向下且向右增加的距離處的係數所表示。
注意,在某些實施例中,以相反次序掃描係數(使用圖16的排序標記,從右下方至左上方)。而且,應述明在某些實施例中,在執行餘留的係數之鋸齒掃描之前,掃描可以從左至右通過一些(舉例而言,在1與3之間)最上方的水平列。
圖17示意性圖示CABAC熵編碼器的操作。
在具此特性及根據實施例之內容適應編碼中,以代表資料位元將是1或0之期望或預測之機率模型、或是內容,將資料位元編碼。為達成此點,輸入的資料位元被指定給碼值範圍之二(或更一般而言,眾多)互補的子範圍中之選取的一子範圍之內的碼值,而子範圍的各別尺寸(在實施例中,相對於碼值組之子範圍的各別比例)由內容界定(接著由與輸入值相關連或是相對的內容變數所界定)。下一步驟是修改整體範圍,也就是說碼值組(與下一輸入資料位元或值有關之使用),以回應指定的碼值及選取的子範圍之目前尺寸。假使修改的範圍小於代表預定的最小尺寸之臨界值(舉例而言,原始範圍尺寸的一半),則例如藉由使修改範圍加倍(向左偏移)而使其尺寸增加,假使需要時,加倍處理可以連續地(多於一次)執行,直到範圍具有至少預定的最小尺寸。在此點,產生輸出編碼資料位元以表示發生加倍(或是假使多於一次時每一加倍)或尺寸增加操作。進一步的步驟是修改內容 (亦即,在實施例中修改內容變數)以與下一輸入資料位元或值一起或相關地使用(或者,在某些實施例中,與要編碼之下一資料位元或值組相關地)。藉由使用目前的內容及目前「最可能的符號」(1或0,由內容標示目前具有大於0.5的機率任一者)之識別作為進入新內容值的查詢表的索引、或是作為可導出新的內容變數之適當的數算公式的輸入,以執行此點。在實施例中,內容變數的修改增加被選取用於目前的資料值之子範圍中碼值組的比例。
CABAC編碼器與二進位資料有關地操作,亦即,儘由二符號0及1代表的資料。編碼器利用所謂的內容模型化處理,根據先前編碼資料而選取用於後續資料的「內容」或機率模型。以決定型方式執行內容的選取,以致於根據先前解碼資料之相同決定可以在解碼器執行,而不需要進一步的資料(指定內容)被加至遞送給解碼器之編碼資料串流。
參考圖17,假使要編碼的資料尚未處於二進位形式,則將其傳遞給二進位轉換器900;假使資料處於二進位形式,則繞過(藉由開關910)轉換器900。在本實施例中,藉由將量化轉換係數資料表示成二進位「映射圖」系列(稍後將進一步說明),以真正地執行二進位形式轉換。
二進位資料接著由二處理路徑「正常」及「旁通」路徑(大略地顯示為分別的路徑,但是,在下述實施例中,事實上由相同的處理階段實施,只是使用稍微不同的參 數)中之一處理。旁通路徑使用所謂的旁通編碼器920,不必利用與正常路徑相同形式的內容模型化。在CABAC編碼的某些實例中,假使需要特別快速的分批資料處理,可以選取此旁通路徑,但是,在本實施例中,述明所謂的「旁通」資料的二特點:首先,旁通資料由CABAC編碼器(950,960)處理,僅使用代表50%機率之固定內容模型;其次,旁通資料關於某些類別的資料,一特別實例是係數正負號資料。在其它情形中,由開關930、940選取正常路徑。這涉及由編碼引擎960跟隨在後的內容模型化器950處理之資料。
假使區塊完全由0值資料形成,則圖17中所示的熵編碼器將資料區塊(亦即,舉例而言,對應於與餘留影像區塊相關的係數區塊之資料)編碼作為單一值。對於未落在此類別中的各區塊,亦即,含有至少某些非0資料的區塊,則製備「重要性映射圖」。重要性映射圖標示對於要編碼的資料區塊中的各位置,區塊中的對應係數是非0。重要映射圖資料是二進位形式,其本身是CABAC編碼。由於對於具有重要性映射圖標示為零之量值的係數,沒有資料需要被編碼,所以,重要性映射圖的使用有助於壓縮。而且,重要性映射圖包含特別碼,以標示區塊中最後的非0係數,以致於所有的最後高頻率/尾隨的0係數可以從編碼省略。在編碼串中,界定由重要性映射圖指定之非0係數的值之資料跟隨在重要性映射圖之後。
亦製備並CABAC編碼進一步等級的映射圖資料。一 實例是將在重要性映射圖標示為「非0」的映射圖位置之係數資料是否真正地具有「1」的值界定為二進位值(1=是,0=否)。另一映射圖指明在重要性映射圖標示為「非0」的映射圖位置的係數資料是否真正地具有「2」的值。又有映射圖標示對於重要性映射圖標示係數資料為「非0」的映射圖位置,資料是否具有「大於2」的值。另一映射圖對於被辨視為「非0」的資料再度標示資料值的正負號(使用預定的二進位標記,例如1代表+,0代表-,當然有其它方式)。
在實施例中,重要性映射圖及其它映射圖由例如掃描單元360從量化轉換係數產生,以及,在接受CABAC編碼之前,接受鋸齒形掃描處理(或是根據影像內預測模式之選自鋸齒形、水平光柵及重直光柵掃描的掃描處理)。
在某些實施例中,使用下述處理,HEVC CABAC熵編碼器將語法要素編碼:在TU中的最後重要係數的位置(依掃描次序)編碼。
對於各4×4係數組(被以逆掃描次序處理的組),重要係數組旗標被編碼,以標示組是否含有非0係數。對於含有最後重要係數的組,這並非所需,而且,對於左上組(含有DC係數),這被假定為1。假使旗標是1,則與組有關的下述語法要素緊隨其後被編碼:
重要性映射圖(Significant map):
對於在組中的各係數,旗標被編碼,以標示係數是否 是重要的(具有非0值)。對於最後有效位置標示的係數,不需要旗標。
大於1映射圖(Greater-than-one map):
對於多達八個具有重要性映射圖值為1(從組的尾端往回計數)的係數,這標示量值是否大於1。
大於2旗標(Greater-than-two flag):
對於多達一個具有大於1映射圖值為1的係數(最接近組尾端者),這標示量值是否大於2。
正負號位元(Sign bits):
對於所有非0係數,正負號位元被編碼為機率相等的CABAC箱(bin),當使用正負號位元隱藏時,最後正負號位元(依逆掃描次序)可能是從同位替代地推論而得的。
跳脫碼(Escape codes):
對於量值未由較早的語法元素完全地說明之任何係數,餘留部份被編碼為跳脫碼。
一般而言,根據其它先前編碼資料,對於要編碼的下一位元,CABAC編碼涉及預測內容、或是機率模型。假使下一位元與被機率模型識別為「最可能的」的位元相同,則「下一位元符合機率模型」之資訊的編碼可以非常 有效率地編碼。將「下一位元未符合機率模型」編碼是較無效率的,以致於內容資料的衍生對於編碼器的良好操作是重要的。「適應」一詞意指在嘗試提供下一資料(尚未編碼)良好匹配時,編碼期間機率模型的內容是適應化的、或變化的。
使用簡單的類比,在書寫的英語中,字母「U」是相當不常見的。但是,緊跟在字母「Q」之後字母位置中,其事實上是很常見的。所以,機率模型可以將「U」的機率設定為很低的值,但是,假使目前的字母是「Q」,則用於「U」作為下一字母的機率模型可以設定於非常高的機率值。
在本配置中,至少對重要性映射圖及標示非0值為1或2的映射圖,使用CABAC編碼。旁通處理在本實施例中同於CABAC編碼但是機率模型固定在1及0之均等(0.5:0.5)機率分佈,以旁通處理用於至少正負號資料及標示值是否>2的映射圖。對於被辨識為>2的這些資料位置,使用分別的所謂跳脫資料編碼以將資料的真正值編碼。這包含Golomb-Rice編碼技術。
在WD4:Working Draft 4 of High-Efficiency Video Coding,JCTVC-F803_d5,Draft ISO/IEC 23008-HEVC;201x(E)2011-10-28中,更詳細地說明CABAC內容模型及編碼處理。
現在將稍微詳細地說明CABAC處理。
CABAC至少目前用於已提出的HEVC系統,其涉及 導出與要編碼的下一位元相關之「內容」或機率模型。由內容變數或CV界定的內容接著影響位元如何被編碼。一般而言,假使內容位元與CV界定作為期望的更多機率值之值相同時,則以降低界定該資料位元所需的輸出位元數目之觀點而言,是有優點的。
編碼處理涉及將要編碼的位元映射至碼值範圍內的位置。碼值範圍於圖18A中顯示為從下限m_Low延伸至上限m_high的相鄰整數數字系列。這二個限制值之間的差是m_range,其中,m_range=m_high-m_Low。藉由下述各種技術,在基本的CABAC系統中,m_range侷限在128與254之間;在使用更大數目的位元以代表m_range之另一實施例中,m_range在256與510之間。m_Low可為任意值。其可從(例如)零開始,但是可以隨著要說明的編碼處理的部份而變。
碼值的範圍m_range由邊界(boundary)1100被分為二個子範圍,以內容變數界定如下:boundary=m_Low+(CV * m_range)
所以,內容變數將整個範圍分成碼值組的二個互補的子範圍或是子部份,指派給各子範圍的組的比例是由變數CV決定,一子範圍是與0的(下一資料位元的)的值相關連,而另一子範圍是與1的(下一資料位元的)值相關連。範圍的分割代表因用於要編碼的下一位元的二位元值的CV產生而假定的機率。所以,假使與值零相關連的子範圍小於全範圍的一半時,則此表示0被視為比1更不可 能作為下一符號。
有各種不同的技術用於界定子範圍應用至可能的資料位元值之方式。在一實施例中,範圍的下方區(亦即,從m_Low至邊界)傳統上界定為與0的資料位元值相關連。
假使多於一個位元以單一操作編碼,則提供二個以上的子範圍,以給予對應於要編碼的輸入資料的各可能值之子範圍。
編碼器及解碼器維持那一資料位元值的記錄是較不可能(通常以「最不可能符號」或LPS一詞稱之)。CV指出LPS,以致於CV總是代表在0與0.5之間的值。
下一位元現在映射至範圍m_range,如同邊界所分割般。使用下述更詳細說明的技術,在編碼器及解碼器以決定方式來執行此點。假使下一位元為0,則代表從m_Low至邊界的子範圍之內的位置之特別碼值被指派給該位元。假使下一位元是1時,則從邊界1100至m_high的子範圍中特別碼值被指派給該位元。這代表一技術的實例,藉由此技術,實施例可以根據目前的輸入資料位元的值而選取碼值組的眾多子範圍中之一,以及,這也代表一技術的實例,實施例藉此將目前的輸入資料值指派給選取的子範圍之內的碼值。
下限m_Low及範圍m_range接著重新界定,以視指派的碼值(舉例而言,指定的碼值落入那一子範圍)及選取的子範圍的尺寸而修改碼值組。假使正編碼的位元是0 時,則m_Low未改變但是m_range重新界定為等於m_range*CV。假使正編碼的位元是1,則m_Low被移至邊界位置(m_Low+(CV*m_range))及m_range重新界定為邊界與m_high之間的差(亦即,(1-CV)*m_range)。
在此修改之後,偵測碼值組是否小於預定的最小尺寸(舉例而言,m_range至少是128)。
這些替代顯示於圖18B及18C中。
在圖18B中,資料位元是1,m_Low因而被移至達到先前的邊界位置。此提供修正或修改的碼值組以用於下一位元編碼序列。注意,在某些實施例中,為了下一位元編碼而改變CV的值,至少部份地在正編碼的位元的值上。這是為何此技術指向「適應性」內容。修正的CV值用以產生新的邊界1100’。
在圖18C中,0值被編碼,因此m_Low維持不變但m_high移至先前的邊界位置。值m_range被重新界定或修改為新的m_high-m_Low值。
在本實例中,這造成落在其最小可允許值(例如128)之下的m_range。當偵測到此結果時,將值m_range再歸一化或增加尺寸(在本實施例中這以m_range加倍表示,亦即向左偏移一位元)多次,如同m_range恢復至要求的範圍128至256所需的次數一般多。這個的實例顯示於圖18D中,其代表圖18C的範圍加倍以符合要求的限制。新的邊界1100”從下一CV值及修改的m_range導出。注意,無論何時m_range再歸一化,m_Low也類似 地再歸一化。完成此點以在m_Low與m_range之間維持相同的比例。
無論何時,範圍依此方式必須乘以2,產生輸出的編碼資料位元,對每一再歸一化階段為一。
依此方式,取決於CV值的適應(可在解碼器再生)及編碼的位元串,連續地修改及再歸一化間隔m_range及下限m_Low。在將一系列位元編碼之後,造成的間隔及再歸一化階段的數目獨特地界定編碼位元串。知道此最後間隔的解碼器原則上能夠重建編碼資料。但是,基本的數學顯示並非真正地需要界定至解碼器的間隔,而僅是界定該間隔內的一位置。這是被維持在編碼器及將資料編碼結束時傳送至解碼器之指派的碼值的目的。
以簡化的實例而言,考慮分割成100個間隔的機率空間。在此情形中,m_Low將代表機率空間的底部,以及0及m_range將代表其尺寸(100)。為了本實例的目的,假定內容變數設定在0.5(當其與旁通路徑有關時),則機率空間是要被用以以50%的固定機率來將二進位位元編碼。但是,假使使用內容變數的適應值時,相同的原理可以應用,以致於在編碼器及解碼器發生相同的適應處理。
對於第一位元,各符號(0或1)將具有50的符號範圍,以輸入符號0被指定(例如)為值0至49(含),及輸入符號1被指定(例如)為值50至99(含)。假使1是要被編碼的第一位元,則串流的最後值必須在50至99的範圍中,因此,m_Low變成50及m_Range變成 50。
為了將第二位元編碼,範圍進一步次分割成25的符號範圍,以0的輸入符號採取值50至74以及1的輸入符號採取值75至99。如同所見,無論那一符號被編碼作為第二位元,最後的值仍然在50與99之間,保留第一位元,但是,現在第二位元已編碼成為相同數目。類似地,假使第二位元是要使用與第一位元不同的機率模型,則由於被次分割的範圍仍然是50至99,所以,其仍然不會影響第一位元的編碼。
在需要時,舉例而言,為了回應m_Range下降至50之下,在編碼器側對各輸入位元繼續再歸一化(舉例而言,加倍)m_Range及m_Low。在編碼處理結束之前(當串流終止時),最終值已寫至串流。
在解碼器側,從串流讀取最終值(因此名稱為m_Value),舉例而言,值為68。解碼器將相同的分出符號範圍應用至初始機率空間以及比較其值以看看其位於那一符號範圍。看到68位於50至99的範圍,其將1解碼成用於其第一位元的符號。以同於編碼器的方式,應用分出的第二範圍,可以看到68在50至74範圍中以及將0解碼作為第二位元、等等。
在真實實施時,如編碼器般,藉由從m_Value減掉各解碼的符號範圍的底部值(在此情形中,從m_Value減掉50而留下18),解碼器避免必須維持m_Low。符號範圍接著總是0至(m_range-1)範圍的次分割(所以,50至 74範圍變成0至24)。
重要的是瞭解,假使僅有二個位元以此方式編碼,則編碼器可以選取50至74範圍內的任何最終值且它們將都解碼成相同的二位元「10」(0跟在1之後)。假使另外的位元要編碼時,僅需要更多精度,事實上,HEVC編碼器將總是選取範圍的底值50。本申請案中所述的實施例藉由找到當適當設定時無論其它位元的值為何仍能確保最終值將正確地解碼之某些位元、釋放那些餘留位元用於載送其它資訊,而尋求利用未被使用的範圍。舉例而言,在上述所述的取樣編碼中,假使第一位數設定於6(或5),則無論第二位數為何,最終值將總是在50至74範圍中;因此,第二位數可以用以載送其它資訊。
如同所見,使用相同的機率範圍(假定無限精度分數),將其重複地次分割,可以將無窮盡的位元流編碼。但是,事實上,無限精度是不可能的且非整數的數目是要避免的。基於此目的,使用再歸一化。假使50至74範圍是要被用以將第三位元編碼,則符號範圍一般必須是均為12.5間隔,但是,替代地,m_Range及m_Low可以分別加倍(或者是乘以共同因數)至50及100,以及,符號範圍現在將是100至149範圍的次分割,亦即,均為25間隔。此操作等同於使初始機率空間的尺寸從100追溯加倍至200。由於解碼器維持相同的m_Range,所以,其能以同於編碼器的次數施加再歸一化。
內容變數CV被界定為具有(在舉例說明的實施例 中)64個可能的狀態,連續地標示不同的機率,從在CV=63的下限(例如1%)至在CV=0的50%機率。
在適應性系統中,根據視要編碼的資料之區塊尺寸而不同之各種已知因素,CV從一位元改變或修改成下一位元。在某些情形中,鄰近的及先前的影像區塊的狀態可以列入考慮。所以,此處所述的技術實例是修改內容變數,以與下一輸入資料值相關地使用,以致增加被選取用於目前資料值的子範圍中的碼值組的比例。
選取子範圍、指派目前位元給碼值、修改碼值組、偵測組是否小於最小尺寸、及修改內容變數之功能都可由一起作動的內容模型器950及編碼引擎執行。所以,雖然為了簡明起見,它們在圖17中繪製成分開的項目,但是,它們一起作動以提供內容模型化以及編碼功能。但是,為了更加清楚起見,參考圖19,其更詳細地顯示這些操作及功能。
從表格中產生指派的碼值,所述表格是對各可能的CV值及m_range的位元6和7的各可能的值(注意,由於m_range的尺寸的限制,m_range的位元8總是1)界定新近編碼的位元應被分配相關的子範圍中的碼值之位置組中的位置。
圖19示意性圖示使用上述技術之CABAC編碼器。
CV由CV導出單元1120初始化(在第一CV的情形中)或修改(在後續CV的情形中)。編碼產生器1130根據CV而分割目前的m_range、選取子範圍及例如使用 上述表格以在適當的子範圍內產生指派的資料碼。範圍重設單元1140將m_range重設至選取的子範圍之m_range以致如上所述地修改碼值組。歸一化器1150偵測m_range的結果值是否在最小可允許值之下,假使需要時,將m_range再歸一化一或多次、為各此再歸一化操作輸出輸出的編碼資料。如上所述,在處理結束時,也輸出指派的碼值。
在解碼器中,如圖20所示,由CV導出單元1220初始化CV(在第一CV的情形中)或修改(在後續的CV的情形中),導出單元1220以同於編碼器中的單元1120的方式操作。編碼應用單元1230根據CV以偵測目前的m_range以及偵測資料碼在那一子範圍中。範圍重設單元1240將m_range重設至選取的子範圍之m_range以致視指派的碼值及選取的子範圍的尺寸而修改碼值組。假使需要時,歸一化器1250將m_range再歸一化以回應收到的資料位元。
實施例提供終止CABAC串流的技術。將依舉例說明的系統之脈絡,說明實施例,在系統中,碼值範圍具有最大值512(取代上述的128)以及侷限於此範圍的上半部,亦即,從256至510。
技術可以產生平均1.5位元的損失(也就是說,比先前串流終止技術造成的損失更加小的損失)。也提供第二替代方法,其產生平均1位元的損失。已建議這些技術的應用在送出IPCM(非頻率分開)資料之前包含CABAC 串流的終止、以及用於每一切片的列之串流終止。技術是根據CABAC變數被設定於終止時正確的範圍之內的任何值之認知。所以,CABAC變數被設定於具有尾隨(最低有效位元)0之數目之值,以致於當值湧入資料流時,這些0可以被有效地忽略。
在目前的技術中,CABAC串流使得8位元流入資料流(亦即,損失或浪費)。以一實例說明此技術,在實例中,在各LCU或影像切片之後(亦即,在將代表與特定各別的影像子區域有關的資料值的資料值組編碼之後)內部格終止,允許係數旁通資料(正負號位元/跳脫碼)以原始格式置於位元流中。
在各切片結束時及在IPCM資料之前,施加處理以終止CABAC串流。在實施例中,此處理假定(為了說明)串流要終止的機率是固定在0.54%的平均。(當資料值(1或0)被編碼時,目前的m_range被次分割成二符號範圍,分別代表1或0的機率)。對於特別的「串流結束旗標」值,用於1的符號範圍總是2。因此,資料值為1的機率是取決於目前m_range的值。在某些實施例中,如先前所述般,m_range在256與516之間變化,所以,終止機率因而在2/510=0.3922%與2/256=0.7813%之間變化)。
對於編碼器,此處理是:‧假使串流不是要終止時,則CABAC範圍m_range減2,以及,假使需要時,CABAC以1處再歸一 化(亦即,m_Low及m_Range被再歸一化);對目前CABAC串流的處理繼續。
‧假使串流是要終止時,則CABAC「m_Low」增加「小於2的範圍」,m_range設定於2,以及,CABAC以7處再歸一化,接著輸出進一步的位元「1」。(亦即,m_Low及m_Range被再歸一化)。此處理等同於8處再歸一化,其中,被歸一化的值被強迫為奇數。
有很多情形是上述處理並不理想-亦即,在串流的機率是可變時、或是固定在較高的百分比時,或甚至是確定時(機率為1)。
實施例提供方法,因而僅以2再歸一化即可立即終止CABAC串流,而損失為1.5位元(平均)且對解碼器及編碼器的複雜度的衝擊是可忽略的。替代方法也顯示能降低冗餘工作至僅1位元,但是,以CABAC解碼器複雜度增加為代價。假使有終止的可變機率時,則這二方法都配合適應性內容變數而被使用,或者,配合固定的百分比機制(類似非適應性內容變數)而被使用。
注意,如上所述般,m_Low及m_Range一起再歸一化。
1.演算法 1.1方法
編碼器的步驟如下: m_Low=(m_Low+128)&~127{或者m_Low=(m_Low+127)&~127}強度m_Low的2階段再歸一化以及呼叫test_write_out( )[將值寫至串流]在將下一CABAC串流編碼之前,設定m_Range=510,m_Low=0。
標記:&是及(AND)操作,~表示二進位倒數(所以,~127表示對應於十進位127的二進位值的二進位倒數,所以,與例如十進位127的數目之二進位倒數(具有眾多最低有效位元或LSB等於1)的AND操作等於將結果值的LSB數目設定為零)。函數test_write_out( )檢查在m_Low的頂部(MSB端)是否有任何位元可合格被送至輸出串流,假使為是,則寫將它們寫入。在上述虛擬碼的情形中,由「強制再歸一化」產生的新位元將由此操作寫入。
解碼器的步驟如下:使輸入串流倒轉7位元(亦即,使讀取位置回移7位元)。
在將下一CABAC串流解碼之前,設定m_Range=0,以及從位元串流讀取m_value。
此方法對於解碼器及編碼器具有低度處理衝擊。
關於m_Low,注意,編碼器藉由重複地加至m_Low而產生串流。藉由從編碼器的最終結果開始及重複地從其中扣除,解碼器讀取該串流。解碼器呼叫讀自串流「m_uiValue」(或是本說明的標記法中的m_value)的位元而不是m_Low,且它是應從位元串流被讀取的。在某些實施例要求解碼器維持m_Low以及m_uiValue,所以它知道編碼器正在進行之情形中,這是有意義的。在該情形 中,以與編碼器的m_Low正好相同的方式,在解碼器產生m_Low。
替代方法
本方法由於要求解碼器維持m_Low,所以增加目前的解碼器的複雜度。假使其它的提議要求維持m_Low,則此增加的複雜度再度最小化。
編碼器的步驟如下:令test256=(m_Low+255)&~255假使(test256+256<m_Low+m_Range)m_Low=m_test256強迫m_Low的1階段再歸一化以及呼叫test_write_out( ).其它(如前)m_Low=(m_Low+128)&~127 {或者m_Low=(m_Low+127)&~127}強迫m_Low的2階段再歸一化以及呼叫test_write_out( ).在將下一CABAC串流編碼之前,設定m_Range=510,m_Low=0.
解碼器的步驟如下:令test256=(m_Low+255)&~255假使(test256+256<m_Low+m_Range)使串流倒轉8位元其它(如前)使串流倒轉7位元在將下一CABAC串流解碼之前,設定m_Range=0,以及設定m_Low=0及從位元串流讀取m_value。
理論
對於CABAC編碼器,寫至串流(或被緩衝)的資料與m_Low連成一串,是表示最終輸出是最低值的n位元值low。最高值high是low及m_Range的總合,變數由編碼器維持在範圍256(含)至511(未含)之內。在串流結束時,在low(含)與high(未含)之間的任何值被選取作為最終輸出值,而不會影響解碼。假使解碼發生而 不取決於值的n個LSB,則n個LSB可以由來自下一位元串流選取的資料取代。
令v是在low與high之間的值,其中,n個LSB為0,以及,其中,假使最後n個LSB是1,則結果值V將仍然小於high。由於「high-low」至少是256,所以,接著總是有在low與high之間的值V,其具有至少7個為0的LSB,亦即,值V是在low與high之間除以128而無餘數的第一值。
達成此點的最簡單方式是標準的2的冪次對齊常數,亦即:v=(low+127)&~127
但是,由於範圍至少是256,則:v=(low+128)&~127
也是足夠的(以及造成稍微較小的編碼器)。
對於目前的部份位元串流,編碼器將輸出值「v」,但底部7個位元除外,藉由以2處再歸一化m_Low而達成此點。在位元串流結束時,解碼器將從位元串流的下一區讀取7個位元,因而將必須使位元串流「倒轉」7個位元。
有些情形是未要求底部8位元以將串流完全地解碼,最簡單的說明是「m_Low=0」,且這些是由替代演算法探索。在此替代演算法中,計算在low與high之間具有8個0的LSB之值v,然後作測試以檢查是否有對應的值V。決定處理要求對low及high測試,因此,解碼器必須 也作出相同的決定,解碼器將需要追蹤m_Low。
在這二個版本的編碼器演算法中,有7位元路徑的選擇,將造成不同的位元串流,但將可由相同的解碼器解碼。
參考上述圖19,單元1120及1130代表用以選取碼值組的眾多互補子範圍中之一的選取器、以及用以指派目前的輸入值給碼值的資料指派單元之實施例。單元1140代表資料修改單元的實施例。單元1150代表用於偵測碼值組是否小於最小尺寸及因而執行偵測器的其它功能之偵測器的實施例。單元1150也代表藉由執行上述及下述的資料終止功能以及特別是藉由決定何時終止串流之資料終止器的實施例。
參考上述圖20,單元1220、1230、1240、1250總體地代表指標器控制器及設定單元的實施例,它們是可操作以執行與這些單元有關的上述功能。
應用
1.用於切片之最後編碼的LCU之終止,特別是在「每一切片的列」型的配置中,其中,機率可以顯著地高於0.54%;在本配置中,實施例提供資料編碼方法,以用於將代表視頻資料的連續輸入資料值編碼,方法包括下述步驟:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,子範圍相對於碼值組的比例由與該輸入資料值相關連的內容變數界定;將目前的輸入資料值指派給 選取的子範圍之內的碼值;視指派的碼值及選取的子範圍之尺寸而修改碼值組;偵測碼值組是否小於預定的最小尺寸,假使為是,則連續地增加碼值組的尺寸直到其具有至少預定的最小尺寸為止;以及,輸出編碼資料位元以回應各此子尺寸增加操作;修改內容變數,以與下一輸入資料位元或值相關地使用,以增加被選取用於目前資料值的子範圍中的碼值組的比例;以及,在將對應於未參考其它視頻資料而被編碼之視頻資料片內的視頻資料區塊組之輸入資料值組編碼之後,藉由下述以終止輸出資料:將界定碼值組的尾端之值設定於具有眾多等於0之最低有效位元的值;增加碼值組的尺寸;以及,將界定碼值組的尾端之值寫至輸出資料。
2.用於切片的最後可能的LCU之終止,當在切片的最後可能的LCU之後的終止是確定的;在本配置中,實施例提供資料編碼方法,用於將代表視頻資料的連續輸入資料值編碼,方法包括下述步驟:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,子範圍相對於碼值組的比例由與該輸入資料值相關連的內容變數界定;將目前的輸入資料值指派給選取的子範圍之內的碼值;視指派的碼值及選取的子範圍之尺寸而修改碼值組;偵測碼值組是否小於預定的最小尺寸,假使為是,則連續地增加碼值組的尺寸直到其具有至少預定的最小尺寸為止;以及,輸出編碼資料位元以回應各此子尺寸增加操作;修改內容變數,以與下一輸入資料位元或值相關地使用,以增 加被選取用於目前資料值的子範圍中的碼值組的比例;以及,在將未參考其它視頻資料而被編碼之視頻資料片的整體之輸入資料值組編碼之後,藉由下述以終止輸出資料:將界定碼值組的尾端之值設定於具有眾多等於0之最低有效位元的值;增加碼值組的尺寸;以及,將界定碼值組的尾端之值寫至輸出資料。
3.在IPCM資料之前終止,可能配合內容變數;在本配置中,實施例提供資料編碼方法,以用於將代表頻率分開的視頻資料的連續輸入資料值編碼,方法包括下述步驟:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,子範圍相對於碼值組的比例由與該輸入資料值相關連的內容變數界定;將目前的輸入資料值指派給選取的子範圍之內的碼值;視指派的碼值及選取的子範圍之尺寸而修改碼值組;偵測碼值組是否小於預定的最小尺寸,假使為是,則連續地增加碼值組的尺寸直到其具有至少預定的最小尺寸為止;以及,輸出編碼資料位元以回應各此子尺寸增加操作;修改內容變數,以與下一輸入資料位元或值相關地使用,以增加被選取用於目前資料值的子範圍中的碼值組的比例;以及,在將輸入資料值組編碼以致於要編碼的下一資料值組代表非頻率分開的視頻資料之後,藉由下述以終止輸出資料:將界定碼值組的尾端之值設定於具有眾多等於0之最低有效位元的值;增加碼值組的尺寸;以及,將界定碼值組的尾端之值寫至輸出資料。
4.串流的終止以防止「位元突出」機制變得太長:在本配置中,實施例提供資料編碼方法,以用於將連續輸入資料值編碼,方法包括下述步驟:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,子範圍相對於碼值組的比例由與該輸入資料值相關連的內容變數界定;將目前的輸入資料值指派給選取的子範圍之內的碼值;視指派的碼值及選取的子範圍之尺寸而修改碼值組;偵測碼值組是否小於預定的最小尺寸,假使為是,則連續地增加碼值組的尺寸直到其具有至少預定的最小尺寸為止;以及,輸出編碼資料位元以回應各此子尺寸增加操作;修改內容變數,以與下一輸入資料位元或值相關地使用,以增加被選取用於目前資料值的子範圍中的碼值組的比例;偵測要由不同的編碼術編碼的資料值組是否超過預定尺寸,假使為是,則藉由下述以終止輸出資料:將界定碼值組的尾端之值設定於具有眾多等於0之最低有效位元的值;增加碼值組的尺寸;以及,將界定碼值組的尾端之值寫至輸出資料。
後續的說明部份與延伸編碼器及解碼器的操作有關,例如上述以較高視頻解析度及對應的低(包含負的)QP來操作之操作。假使編解碼是真正地支援高位元深度,則可需要低操作QP。將討論例如由HEVC界定的存在於編碼器及解碼器中的內部準確度限制所造成的可能誤差源。對於這些準確度的某些改變能減輕誤差並藉以延伸HEVC的操作範圍。此外,呈現對於熵編碼的改變。
在申請本申請案時,HEVC版本1說明8及10位元編解碼;版本2是包含12及14位元操作。雖然已撰寫測試或展示軟體以允許輸入資料位元深度達到14,但是,將14位元編碼之編解碼能力不必對應於編解碼處理8或10位元解析度資料之方式。在某些情形中,內部處理會導入雜訊,這會導致解析度的有效損失。舉例而言,假使對於14位元輸入資料的峰值訊號對雜訊比(PSNR)是如此低,以致於最低有效二位元被有效地降低至雜訊,則編解碼有效地僅以12位元解析度操作。因此以朝向具有內部操作功能的系統為目的是適當的,內部操作功能允許使用更高解析度的輸入資料(舉例而言,12或14位元解析度輸入資料)而不導入如此多的雜訊、誤差或其它假影,以致降低輸出資料的有效(有用的)解析度。
此處使用「位元深度」一詞及可變bitDepth以標示輸入資料的解析度及/或在編解碼之內執行的資料處理的解析度(根據組織內容)(使用HEVC軟體展示模型術語,後者也稱為「內部位元深度」)。舉例而言,對於14位元資料處理,bitDepth=14。
在8及10位元編解碼的情形中,討論正範圍(QP>0)中的量化參數(QP)。但是,對於輸入資料的解析度中的各增加的位元(超過8位元),最小的可允許QP(minQP)低於0,或者,換言之:minQP=-6*(bitDepth-8)
變數「PSNR」或峰值SNR界定為均方誤差(MSE) 及位元深度的函數:PSNR=10 * log10(((2bitDepth)-1)2/MSE)
如同下述要討論之圖23中所見般,無論舉例說明的編解碼實施的內部處理位元深度的值為何,一般的趨勢是PSNR曲線峰值在約90dB;對於更多的負QP(相較於對應於PSNR曲線的峰值之QP),PSNR性能真正地變差。
使用用於PSNR的等式,可以導出下述用於給定的位元深度及MSE之PSNR的表格:
假使14位元編解碼僅能夠取得72.2dB的PSNR,則各輸出值僅在對應的原始值的±4的範圍之內是準確的。二個最低有效位元因而是有效的雜訊,以致於編解碼真正地等同於12位元編解碼而以二個增加的隨機位元加至輸出。(重要的是說明此分析是根據平均值,事實上在圖像的某些部份中,可以取得更佳或更差的品質。
延伸此議題,當以此純數值方式比較PSNR時,會認為最佳的系統因此事實上是具有無損失編碼的8位元系統,取得無限PSNR(MSE=0)。但是,這並未將視頻從n位元(其中,n原始上高於8)初始地捨入或截短而下 降至8位元時的損失列入考慮。根據下述實例而概述此方式:‧假使可利用無損失(n-1)位元系統來編碼n位元資料,則在輸出端,觀察到的n位元MSE將為(0+12)/2=0.5。
‧假使可利用無損失(n-2)位元系統來編碼n位元資料,則在輸出端,觀察到的n位元MSE將為(0+12+22+12)/4=1.5。
‧假使可利用無損失(n-3)位元系統來編碼n位元資料,則在輸出端,觀察到的n位元MSE將為(0+12+22+32+42+32+22+12)/8=5.5。
‧假使可利用無損失(n-4)位元系統來編碼n位元資料編碼,則在輸出端,觀察到的n位元MSE將為(0+12+22+32+42+52+62+72+82+72+62+52+42+32+22+12)/16=21.5。
因此,返回至具體實例,假使14位元系統未達到21.5或更低的MSE(等同於71.0dB)以及假使無損失的10位元系統的位元速率類似時,則以數值而言,僅有10位元被有效地編碼。
考慮具有「m」的MSE之有損失、低位元深度(n-r)位元系統,假使使用此系統來編碼更高位元深度n位元資料,則其MSE將因而為(2r)2m。
舉例而言,對於有損失的(n-1)位元系統,在n位元系統中的MSE將為4m;對於有損失的(n-2)位元系 統,在n位元系統中的MSE將是16m;對於有損失的(n-3)位元系統,在n位元系統中的MSE將是64m;以及,對於有損失的(n-4)位元系統,在n位元系統中的MSE將是256m。
因此,對於有損失的較低位元深度系統將更高的(n位元)位元深度資料編碼之情形,它們的損失一般是n位元域中觀察到的MSE之主要貢獻者,所以,可以使用簡單的PSNR圖作為品質的直接比較。
HEVC編碼器(在申請時)的實施峰值在90dB(如圖23所示);這可以被視為適合將11位元資料編碼,但是,在此操作點,將於下述說明是否能取得任何進一步的改良之情事。
首先,將討論潛在的誤差源。
核心HEVC系統(版本1)已設計用於8及10位元操作。隨著位元數目的增加,系統的一些部份的內部準確度對於導致整體解析度有效損失之潛在的誤差、雜訊或假影源是關係重大的。
圖21顯示經過例如HEVC編碼器等上述型式的編碼器之資料流動的簡化圖。以圖21中所示的形式概述處理之目的是要表示系統內操作解析度的潛在限制。注意,基於此理由,並非所有編碼器功能顯示於圖21中。也注意,圖21提供用於將資料組的輸入資料值(可為視頻資料值)編碼之裝置。此外,注意,(如上所述)在例如圖21中所示的順向編碼路徑中使用的技術也用於編碼器的 互補逆解碼路徑中以及也用於解碼器的順向解碼路徑。
某位元深度的輸入資料1300供應至預測級1310,預測級1310執行內部預測或互相預測,以及從真實的輸入影像中減掉預測版本,產生某位元深度的剩餘資料1320。所以,級1300大致上對應於圖5的項目320及310。
剩餘資料1320由轉換級1330頻率轉換,轉換級1330涉及多級的轉換處理(標記為級1及級2),對應於2D轉換等式中的左及右矩陣相乘,以及根據具有某分解之一或更多組轉換矩陣1340而操作(轉換由矩陣乘法處理實施)。轉換處理的最大動態範圍1350稱為MAX_TR_DYNAMIC_RANGE,其應用至本處理中使用的計算。轉換級的輸出是根據MAX_TR_DYNAMIC_RANGE之轉換係數組1360。轉換級1330大致上對應於圖5的轉換單元340。
係數1360接著傳送至大致上對應於圖5的量化器350之量化級1370。量化級可以使用在量化係數及比例清單1380的控制之下的乘法-偏移機制,包含剪(clip)至最大動態範圍ENTROPY_CODING_DYNAMIC_RANGE(在實施例中,與MAX_TR_DYNAMIC_RANGE相同)。
量化級的輸出是根據
ENTROPY_CODING_DYNAMIC_RANGE的量化係數組1390,其接著(在完全編碼器中,此處未顯示)被傳送至例如由圖5的掃描單元360及熵編碼器370所代表的熵編 碼級。
使用與圖21有關之標記,於下說明HEVC中的主要計算雜訊源,忽略(為了說明之目的)各種預測及RQT(餘數四倍樹)和RDOQ(速率失真最佳化量化)決定處理造成的雜訊整形。
轉換矩陣係數值
理想上,施加至轉換係數之逆轉換將再生原始輸入值。但是,這被計算的整數本質限制。在HEVC中,轉換矩陣係數具有6個分數位元(亦即,它們具有固有的6的左偏移)。
在各級轉換後至 MAX_TR_DYNAMIC_RANGE 的偏移結果 順向轉換將造成尺寸上為bitDepth+log2(尺寸)之值。在第一級轉換之後,依位元計的係數寬度應該是至少bitDepth+log2(尺寸)(雖然增加的位元將有助於維持更高準確度)。但是,在HEVC中,這些中間值在順向(僅編碼器)轉換中偏移,以致於它們絕不會超過MAX_TR_DYNAMIC_RANGE;第二級也類似。在逆轉換中,在各級的輸出之值夾至MAX_TR_DYNAMIC RANGE。
假使MAX_TR_DYNAMIC_RANGE小於bitDepth+log2(尺寸),則出自順向轉換的值在量化級中將真正地向左偏移(而非向右),然後夾至15位元的( ENTROPY_CODING_DYNAMIC_RANGE)。事實上,假使ENTROPY_CODING_DYNAMIC_RANGE小於bitDepth+log2(尺寸)+1,則當QP小於(4-(6*(bitDepth-8)))時,剪截(clipping)將發生。
在HEVC中,雖然對於QP<-8,32×32區塊中的係數可以被嵌夾,但是15的ENTROPY_CODING_DYNAMIC_RANGE及MAX_TR_DYNAMIC_RANGE可以用於高達10位元的操作。此外,缺乏用於內部準確度的淨空對於低QP也會導入誤差。
在量化期間增加的雜訊
雖然編碼器和解碼器的量化器及逆量化器當量化時會添加雜訊,但是,當應用比例清單時,會不慎地加入增加的雜訊,以及,因為在陣列「quantScales」及「invQuantScales」中界定的量化係數不一定是完美的倒數。
於下說明轉換矩陣精度及MAX_TR_DYNAMIC_RANGE的效果。
藉由來自所謂的SVT測試組(在16位元1920×1080 50p,從4K視頻縮小)之五個視頻序列的碼之分析(在所謂的內部編碼設定檔),取得經驗資料。在這些序列,僅有前150格被用於測試。第六個序列稱為Traffic_RGB(在12位元2560×1600 30p),其由在本申請案申請時 可應用至HEVC之標準的範圍擴充測試條件所界定。
在經驗測試中,假使檔案(輸入資料)深度小於被測試的內部位元深度(編解碼的輸入位元深度),則取樣被填塞(以LSB設定於0);假使檔案位元大於內部位元深度,則取樣被比例化及捨入。
在下述說明中,使用bitDepth以說明內部位元深度而不是輸入資料的位元深度。考慮具有高達16的內部位元深度(bitDepth)之系統。
圖22是位元速率相對於量化參數(QP)的圖形,其顯示在一些內部位元深度之圖21的編碼器系統之經驗性能。圖23是用於綠頻道(以較容易取得一通道的經驗資料為基礎,以及,綠色對於觀視者對輸出視頻的感知貢獻最多的頻道)相對於QP之PSNR圖形。圖22的圖形是由用於16位元(QP-48至-26)、14位元(QP-24至-14)、12位元(QP-12至-2)、10位元(QP 0至10)及8位元(QP 12至22)處理的資料之複合所形成。垂直線1400標示位元深度改變的點。圖22中的多個曲線對應由具有不同的各別測試序列取得的結果。
圖22顯示位元速率大致上隨著QP單調地改變。
參考圖23,對於bitDepth=8及bitDepth=10,PSNR在4及以下的QP急遽地增加(在各曲線的最右方的三資料點)。在QP4,8位元的量化因數是1(對於10位元為QP-8),留下DCT與IDCT之間以及量化與反量化係數之間的失配作為唯一可能的誤差源。隨著系統傾向於無損 失處理,MSE接近零及SNR向上突起。圖24是在不同的內部位元深度(8,10,12,14,16)系列之一測試序列之PSNR相對於位元速率的圖形。五個曲線彼此覆蓋幾乎正好是它們大部份的範圍,所以,不易分辨。
在相同操作點的10位元系統具有主要在二最低有效位元之誤差,意指當僅考慮8位元準確度時,其也近似無損失處理,但是,如本說明書中它處所示般,也必須考慮轉換10位元視頻至8位元視頻的動作。這將添加1.5的MSE,當考慮較低準確度時,1.5的MSE是隱藏的(也就是說,在這些經驗測試中未明確顯示為結果,但仍然造成更高的整體SNR)。
在不被內部準確度限制於峰值SNR的系統中,隨著QP掉至(4-(6*(bitDepth-8)))之下,可看到對於各bitDepth之朝向無損失處理的此增加。這顯示於圖25中,圖25是在具有MAX_TR_DYNAMIC_RANGE=21之位元深度範圍(8,10,12,14,16)、ENTROIPY_CODING_DYNAMIC_RANGE=21及14位元轉換矩陣、RDOQ禁能及轉換跳過禁能時,綠頻道PSNR相對於位元速率的圖形。五條曲線彼此重疊,但是部份1420(8位元曲線的)、部份1430(10位元曲線的)、部份1440(12位元曲線的)、部份1450(14位元曲線的)、及部份1460(16位元曲線的)除外。可以看到對於相同數目的位元,可以取得顯著地高於圖24所示的SNR。
經驗結果顯示在本發明的實施例中,轉換矩陣精度應至少為bitDepth-2。圖26是bitDepth=10及MAX_TR_DYNAMIC_RANGE=17時一測試序列的綠頻道之PSNR相對於位元速率的圖形,比較不同的精度DCT矩陣。
在實施例中,MAX_TR_DYNAMIC_RANGE應至少為5(這是log2(尺寸)的最小值)。增加的準確度已顯示進一步增進編碼效率。
在實施例中,ENTROPY_CODING_DYNAMIC_RANGE應至少為6,大於bitDepth(對於由小於(4-(6 *(bitDepth-8)))加上對於log2(尺寸)的最大值之5的QP所施加的「量化」因數為1)。在其它不考慮最低QP值的剪截(clipping)的實施例中,ENTROPY_CODING_DYNAMIC_RANGE應至少為5(log2(尺寸)的最小值),大於bitDepth。
對於16位元系統,轉換矩陣精度應設定於14,MAX_TR_DYNAMIC_RANGE應設定於21以及ENTROPY_CODING_DYNAMIC_RANGE應設定於22。由於具有更多的內部準確度幾乎不被視為有害的,所以,這些參數也在不同的bitDepth被測試,產生的結果顯示對於相同數目的位元,可以取得顯著較高的SNR,以及,增加準確度的系統具有適於高達16之bitDepth的PSNR/MSE操作點。
假使範圍擴充(Range Extension)是要對所有位元深度產生單一的新設定檔,則上述系統是適當的。但是,假使對不同的最大bitDepth說明不同的設定檔,則具有不同參數值可以用於降低未要求最高設定檔的系統的硬體複雜度。在某些實施例中,不同的設定檔對轉換矩陣精度界定不同的值,MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE。
在其它實施例中,設定檔將允許某些或所有轉換矩陣精度的值MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE,由編碼器從可允許值的清單中選取(實施成本是選取準則)、或者是例如bitDepth等側資訊的功能。但是,假使轉換矩陣精度是要變化時,這會要求多組轉換矩陣,基於此理由,在另外的實施例中,僅有一轉換矩陣精度被界定用於設定檔,該轉換矩陣精度對應於設定檔被設計所針對之最大位元深度的推薦值。參考圖28之下述中提出可能的設定檔組。
轉換矩陣精度(Transform Matrix Precision)、MAX_TR_DYNAMIC_RANGE,ENTROPY_CODING_DYNAMIC_RANGE及bitDepth的實例值顯示於下表中:
在表中,以「*」標示的值是剪截至最小值15,符合HEVC的目前說明。以「」及「」標示的值大於HEVC 目前說明指定的值,它們分別是15及6。
假使不同的設定檔要被使用時,則在本發明的實施例中,這些規格可作為最小值(注意,HEVC版本1,10位元系統未要求符合這些目標)。使用小於這些標示的最小值之值是可能的,但是,對於更高的位元速率(較低的QP),這將使PSNR變差。
因此,上述表格給出了配置實施,其中,根據視頻資料的位元深度而設定一或更多編碼(及互補解碼)級的精度及/或動態範圍。
但是,在某些實施例中,亮度及色度資料具有不同的位元深度。
因此,在這些情形中,雖然精度及/或動態範圍值可以不同地設定(例如在亮度與色度資料之間),以致於一值組被用於亮度資料,而另一可能不同的值組用於色度資料,本發明的實施例以不同方式處理此事。
某些實施例認知到從實施效率的觀點而言,對亮度及色度資料使用相同精度及/或動態範圍值但仍然能維持根據位元深度而改變這些值的能力,將是有利的。在亮度及色度資料之間使用相同的參數允許建立用於亮度及色度資料的單一編碼路徑,避免需要設定(以軟體或硬體實施)二不同的、分別可編程或可控制的路徑。
要使用的參數組之選取可以根據預定規則。舉例而言,選取關於亮度資料的參數。替代地,授予增進的操作彈性,可以選取根據多個視頻成分中具有最大的位元深度 之視頻成分的參數(舉例而言,亮度、色度)。所以,舉例而言,使用上述表格,假使亮度位元深度是(例如)16及色度位元深度是(例如)14,則與16的位元深度有關之參數行將用於亮度及用於色度處理。
上述位元深度及/或位元深度對參數的關係及/或例如上述參數表的索引可以由視頻資料的一或更多「參數組」界定。在最高等級的是視頻參數組(VPS),接著是(依降低等級,對應於更多粒度)序列參數組(SPS),其中,序列含有一或更多圖像、圖像參數組(PPS)、及切片參數組,其中,圖像含有一或更多切片。關係或位元深度或精度及/或動態範圍值由這些中的任意者界定,但是,在某些實施例中,它們由SPS界定。
因此,在剛剛所述的實施例中,用於一或更多編碼之精度及/或動態範圍值配置成根據視頻位元深度而變化,以致於假使位元深度在視頻成分之間(舉例而言,在亮度與色度資料之間)不同時,則使用預定規則以選取單組精度及/或動態範圍值以與所有視頻成分一起使用。類似的考慮也適用於影像資料(視頻資料之外)。類似的原理應用在編碼器及解碼器。因此,這些配置也提供配置實例,其中,對於具有不同位元深度的影像成分之輸入或輸出的影像資料,選取單組之轉換矩陣的最大動態範圍及/或資料精準度以與所有影像成分一起使用。
在某些實施例中,選取單組之轉換矩陣的最大動態範圍及/或資料精度,以作為與具有最大位元深度的影像成 分中之一有關的值。
注意,在解碼器側,以及在編碼器的反向路徑中,在某些實施例中,相同的(或是相同中之一或二者)轉換矩陣之最大動態範圍及/或資料精準度可以作為在編碼器側使用的轉換矩陣之最大動態範圍及/或資料精準度。在其它實施例中,逆(解碼器側)轉換矩陣的資料精準度設定於例如6等預定值。
將於參考圖38及39的下述中,進一步說明這些配置的實例。
現在轉至CABAC系統,如上所述,這提供涉及下述之編碼技術的實例:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,碼值組是由範圍變數界定;將目前的輸入資料值指派給選取的子範圍之內的碼值;視指派的碼值及選取的子範圍之尺寸而修改碼值組;以及,偵測界定碼值組的範圍變數是否小於預定的最小尺寸,假使為是,則連續地增加範圍變數以致增加碼值組的尺寸直到其具有至少預定的最小尺寸為止;以及,輸出編碼資料位元以回應各此子尺寸增加操作。在實施例中,子範圍相對於碼值組的比例由與輸入資料值相關連的內容變數界定。CABAC配置的實施例涉及:跟隨輸入資料值的編碼,修改內容變數,以與下一輸入資料值相關地使用,以致增加被選取用於目前輸入資料值的子範圍中的碼值組。
也如上所述,在某些實施例中,HEVC CABAC熵編碼器使用下述處理以將語法要素編碼: 在TU中的最後重要係數的位置(依掃描次序)被編碼。
對於各4×4係數組(被以逆掃描次序處理的組),重要係數組旗標被編碼,以標示組是否含有非0係數。對於含有最後重要係數的組,這並非所需,而且,對於左上組(含有DC係數),這被假定為1。假使旗標是1,則與組有關的下述語法要素緊隨其後被編碼:重要性映射圖;大於1映射圖;大於2旗標;正負號位元;及跳脫碼。
此配置顯示於圖29中。在步驟1500,CABAC編碼器檢查目前組是否含有最後顯著係數。假使為是,則處理結束。假使為否,則處理繼續進行至步驟1510,在步驟1510,編碼器檢查目前組是否是含有DC係數的左上方組。假使為是,則控制通過至步驟1530。假使為否,則在步驟1520,編碼器偵測目前組是否含有非0係數。假使為否,則處理結束。假使為是,則在步驟1530,產生重要性映射圖。在步驟1540,產生a>1映射圖,其標示對於從組的尾端往回計數之高達8個具有重要性映射圖值1的係數而言量值是否大於1。在步驟1550,產生a>2映射圖。對於達到具有1之>1映射圖值的1係數(最接近組的尾端之一係數),這標示量值是否大於2。在步驟1560,產生正負號位元,在步驟1570,針對量值完全未由較早的語法要素(也就是說,在步驟1530-1560中任何步驟產生的資料)說明之任何係數產生跳脫碼。
對於在MSE小於1(典型上QP分別在-34、-22及 -10)的操作點之16位元、14位元或甚至12位元的系統,系統典型上造成很小的壓縮(對於16位元,其真正地使源資料擴大)。係數一般是大數目,因此,幾乎總是以跳脫碼編碼。基於該理由,對於熵編碼器作出二個提出的改變,藉由將固定數目的LSB、BF置於用於各係數的位元串中,而允許更高的位元深度。基本上,藉由有效地將例如16位元等更高位元系統轉換成例如10位元的較低位元系統,而以替代路徑用於增加的準確度,這些設計允許為了8及10位元操作而開發之目前的HEVC CABAC熵編碼器以其原先被設計所針對的原始的bitDepth操作。由於較低位元系統值顯著地更可預測的並因而適用於以更複雜的編碼設計來編碼,所以,有助於採用分裂方法之有效性,然而,由更高位元系統要求的增加的準確度因而較不可壓縮的以及複雜編碼設計較不有效的。舉例而言,16位元系統將BF規劃成8。
固定位元設計的使用由編碼器標示在位元串流中,以及,當使用設計時,決定固定位元的數目之手段將由編碼器標示給解碼器。那些手段是將數目直接編碼,或是標示如何從存在於位元串流(包含QP、位元深度、及/或設定檔)中已在位元串流中編碼的參數、或其組合,導出值BF。使用相同的手段、或是藉由將差值標示給為了序列、圖像、切片或在前的CU而導出之BF值,編碼器也具有選擇以標示用於不同的圖像、切片及CU之不同的BF值。BF值也被規劃成對於不同的轉換單元區塊尺寸、不 同的預測型式(之間/內部)、及不同的顏色頻道而不同,其中,在選擇不同參數時,視頻源的本質將操控編碼器。
根據QP之BF推導實例如下所述:BF=max(0,int(QP/-6))
根據位元深度之BF推導實例如下所述:BF=bitDepth-8
根據轉換單元區塊尺寸及QP之BF推導實例如下所述:BF=max(0,int(QP/-6)+2-log2(尺寸))
各種BF值可以在使用預編碼器(嘗試)的編碼器中決定,或是被規劃成遵循預定規則。
熵編碼實施例1
為允許以更高位元深度的處理,HEVC熵編碼器的處理被改變成用於小於bitDepth的固定位元BF之下述:在TU中的最後重要係數的位置(依掃描次序)編碼。
對於各4×4係數組(被以逆掃描次序處理的組),各係數C分裂成最高有效部份CMSB及最低有效部份CLSB,其中,C MSB =abs(C)>>B F C LSB =abs(C)-(C MSB <<B F )以及,BF是要使用的固定位元的數目,如同從位元串列決定般。
所述之CMSB及CLSB之產生提供從輸入資料值、各別的互補最高有效資料部份及最低有效資料部份產生的實例(關於資料值序列的編碼技術),以致於值的最高有效部份代表該值的眾多最高有效位元,以及,各別最低有效資料部份代表該值之其餘的最低有效位元。
重要係數組旗標被編碼,標示組是否含有CMSB的非0值。對於含有最後重要係數的組,這並非所需,而且,對於左上組(含有DC係數),這被假定為1。假使旗標是1,則與組有關的下述語法要素緊隨其後被編碼:重要性映射圖(Significance map):對於在組中的各係數,旗標被編碼,以標示CMSB的值是否是重要的(具有非0值)。對於最後重要位置標示的係數,旗標被編碼。
大於1映射圖(Greater-than one map):
對於多達八個具有重要性映射圖值1(從組的尾端往回計數)的係數,這標示CMSB是否大於1。
大於2旗標(Greater-two map):
對於達到一個具有大於1映射圖值1的係數(最接近組尾端者),這標示CMSB是否大於2。
固定位元(Fixed bits):
對於組中的各係數,使用等機率CABAC箱,將CLSB 的值編碼作為旁通資料。
正負號位元(Sign bits):
對於所有非0係數,正負號位元被編碼為機率相等的CABAC箱,當使用正負號位元隱藏時,最後正負號位元(依逆掃描次序)可能是從同位替代地推論而得的。
跳脫碼(Escape codes):
對於量值未由較早的語法要素完全地說明之任何係數,餘留部份被編碼為跳脫碼。
但是,在重要係數組旗標是0的情形中,則與組有關的下述語法要素緊隨其後被編碼:
固定位元(Fixed bits):
對於組中的各係數,將CLSB的值編碼作為等機率CABAC箱。
正負號位元(Sign bits):
對於所有非0係數,正負號位元被編碼為機率相等的CABAC箱,當使用正負號位元隱藏時,最後正負號位元(依逆掃描次序)可能是從同位替代地推論而得的。
一或更多這些映射圖及旗標的產生提供產生一或更多標示預定量值的最高有效資料部份的相對於值的陣列之位置的資料組的實例。使用CABAC的一或更多映射圖的編 碼提供藉由使用二進位編碼以將資料組編碼至輸出資料串流的實例。使用等機率CABAC箱的其它資料的編碼提供將包含界定較不重要部份的資料包含在輸出資料串流中的實例,或是(使用其它術語)將界定較不重要資料部份之資料包含在輸出資料串流中的實例包括使用算術編碼以將最低有效資料部份編碼,其中,根據編碼值範圍的各別部份以將代表最低有效資料部份的符號編碼,其中,用於說明最低有效資料部份之各符號的編碼值範圍的各別部份具有相等尺寸。但是,關於等機率CABAC編碼的替代,將界定較不重要資料部份之資料包含在輸出資料串流中的步驟包括將最低有效資料部份直接包含在輸出資料串流中作為原始資料。
本揭示的實施例改變重要係數組旗標的解譯,以標示任何係數是否為非0(不僅它們的CMSB的配對物)。在此情形中,含有逆掃描次序中最後係數的係數組將不需要被標示(例如其為1),以及,當重要係數組旗標為0時,增加的語法要素不需被編碼。這提供一實例,其重要性映射圖包括旗標,所述旗標標示具有非0值的最高有效資料部份的最後者之根據值陣列的預定排序的位置。
此後一配置顯示於圖30中,圖30在很多方面對應於圖29。比較此二圖,將看到圖30未具有圖29的步驟1500的等同部份,相當於即使對含有最後重要係數的組,處理仍然發生之事實。步驟1610及1620大致上對應於圖29的步驟1510及1520。在新近介紹的步驟1625 中,係數如上所述地分裂成MSB及LSB部份。步驟1630、1640及1650大致上對應於圖29的各別步驟1530、1540及1550,但是它們僅對分裂係數的MSB部份作用除外。新近介紹的步驟1655涉及如上所述般地將分裂係數的LSB部份編碼作為固定位元。步驟1660及1670大致上對應於圖29的步驟1560及1570。
此修改有效地產生系統,其中,藉由選取BF以致於等於編碼器的設計位元深度之MSB的數目通過CABAC編碼,而以較高的位元深度的LSB(最不可預測及因而最不可壓縮的)被旁通編碼,CABAC熵編碼器能以其被設計的原始bitDepth操作。舉例而言,假使編碼器是8或10位元深度編碼器,則BF等於8或10。這提供系統實例,其中,資料值序列代表具有影像資料位元深度的影像資料;以及,方法包括將要作為各最高有效資料部份中的眾多最高有效位元的位元數目設定為等於影像資料位元深度。
如同所述,這些技術可以(在某些實施例中)應用至資料值序列包括頻率轉換影像係數序列的配置。但是,可以使用其它型式的資料(例如,音頻或簡單的數值資料)。此提議的結果見於圖27,圖27是具有根據位元深度之DCT矩陣精度及MAX_TR_DYNAMIC_RANGE組之一測試序列的PSNR相對於QP的圖形,顯示具有(曲線1680)及不具有(曲線1690)旁通固定位元編碼的等效操作。對於具有固定位元的系統之位元速率的節省(相對 於不具有固定位元的系統)從在QP-0的5%至在QP-48的的37%。BF的最佳值將是序列相依的。如上所述,BF的實例是8或10。
熵編碼實施例2
在其它實施例下的類似設計應用很多相同的處理步驟,但是保持重要性映射圖的原始功能-其中,0的值標示0的係數值(而非-如同熵編碼實施例1中-用於係數的MSB部份之0的值)。當考慮(典型上平滑化)電腦產生的視頻時(其中,預期0是更常見的),這更有用。此熵編碼實施例包括小於bitDepth之用於固定位元BF的數目之下述處理步驟:在TU中的最後重要係數的位置(依掃描次序)被編碼。
對於各4×4係數組(被以逆掃描次序處理的組),重要係數組旗標被編碼,以標示組是否含有非0係數。對於含有最後重要係數的組,這並非所需,而且,對於左上組(含有DC係數),這被假定為1。假使旗標為1,則各係數C分裂成最高有效部份CMSB及最低有效部份CLSB,其中,C MSB =(abs(C)-1)>>B F C LSB =(abs(C)-1)-(C MSB <<B F )
所述之CMSB及CLSB之產生提供從輸入資料值、各別的互補最高有效資料部份及最低有效資料部份產生的實例 (關於資料值序列的編碼技術),以致於值的最高有效部份代表該值的眾多最高有效位元,以及,各別最低有效資料部份代表該值之其餘的最低有效位元。
與組有關的下述語法要素緊隨其後被編碼:
重要性映射圖(Significance map):
對於在組中的各係數,旗標被編碼,以標示係數C是否重要(具有非0值)。對於最後重要位置標示的係數,不需要旗標。
大於1映射圖(Greater-than-one map):
對於多達八個具有重要性映射圖值1(從組的尾端往回計數)的係數,這標示CMSB是否大於或等於1。
大於2旗標(Greater-than-two map):
對於達到一個具有大於1映射圖值1的係數(最接近組尾端者),這標示CMSB是否大於或等於2。
正負號位元(Sign bits):
對於所有非0係數,正負號位元被編碼為機率相等的CABAC箱,當使用正負號位元隱藏時,最後正負號位元(依逆掃描次序)可能是從同位替代地推論而得的。
固定位元(Fixed bits):
對於組中的各非0係數,將CLSB的值編碼。
跳脫碼(Escape codes):
對於量值未由較早的語法要素完全地說明之任何係數,餘留部份被編碼為跳脫碼。
一或更多這些映射圖及旗標的產生提供產生一或更多標示預定量值的最高有效資料部份的相對於值的陣列之位置的資料組的實例。使用CABAC的一或更多映射圖的編碼提供藉由使用二進位編碼以將資料組編碼至輸出資料串流的實例。使用等機率CABAC箱的其它資料的編碼提供將包含界定較不重要部份的資料包含在輸出資料串流中的實例。
注意,對於輸出串流中資料的這些各種不同成分的次序,有各種選擇。舉例而言,參考正負號位元、固定位元及跳脫碼,用於(例如)n個係數(其中,舉例而言,n可能是16)的組之次序可為:n×正負號位,然後,n×組的固定位元元,然後,n×跳脫碼;或者n×正負號位元,然後,n×(用於一係數的固定位元及跳脫碼)。
此配置顯示於圖31的流程圖中。此處,除非指明不同處,否則,步驟1700、1770依下述方式對應於圖31及32的各別步驟。注意,步驟1755跟隨圖31中的步驟1760(在圖30中類似步驟1655在步驟1660之前)。
步驟1700大致上對應於圖29的步驟1500。假使這不是含有最後重要係數的組,則控制通至步驟1710。步 驟1710及1720對應於圖30的步驟1610及1620。在步驟1725分裂的係數對應於圖30的步驟1625。但是,在步驟1730,與先前所述的步驟1630的配置相對地,在重要性步驟的衍生中使用整個係數(現在,忽略步驟1725中執行的分裂)。步驟1740及1750僅對分裂係數的MSB部份作用以及在功能上對應於步驟1640和1650。除了步驟的排序在圖32及33中顯示為(舉例說明)稍微不同之外,步驟1755、1760及1770對應於步驟1655、1660及1670的功能。
比較這二個熵編碼實施例的結果見於圖28中。圖28是圖形,顯示對於六個序列中的各序列,熵編碼實施例2相對於熵編碼實施例1的取得結果(以其它相同參數)之位元速率百分比的增進。
熵編碼實施例2顯示為比熵編碼實施例1對於某些源材料而言在負QP時平均1%較無效率,而在正QP時上升至約3%。但是,對於某些較軟的源材料,由於係數中存在增加的0,觀察到相反結果。在實施例中,編碼器將能夠選擇任一熵編碼方法及將選擇發訊給解碼器。
由於相較於對於負QP的節省而言,對於正QP的節省是小的,所以,僅當QP為負時,才使熵編碼修改賦能。考慮熵編碼實施例1顯示對於負QP時位元節省達到37%,所以,當相較於具有無熵編碼修改的系統時,在這二熵編碼實施例之間會有些微的差異。
因此,在舉例說明的實施例中,其中,頻率轉換輸入 影像係數是根據選自可利用的量化參數範圍中的可變量化參數之量化頻率轉換輸入影像係數,技術包括對於使用可利用的量化參數範圍的第一預定子範圍中的量化參數而產生的係數,根據最高有效資料部份及最低有效資料部份,而將頻率轉換輸入影像係數的陣列編碼;以及,對於使用未在可利用的量化參數範圍的第一預定子範圍中的量化參數而產生的係數,將頻率轉換輸入影像係數陣列編碼,以致於在各最高有效資料部份中的位元數目等於該係數的位元數目,以及各別的最低有效資料部份未含有位元。
由於被編碼的資料的數量有點高於對標準HEVC版本1操作點觀察到的數量,所以,增加的級是或者都可以應用至這二個提出的系統,且事實上將配合本發明的另外實施例以說明先前提出的系統無法被賦能之系統。
在將用於各係數組之旁通資料編碼之前,此增加的級使得CABAC串流被位元對齊。由於值現在自串流中被直接地讀出,而當解碼旁通箱時不再要求長分割,所以,這允許旁通資料更快(及平行地)解碼。
達成此點的一機制是應用上述先前存在的CABAC終止法。
但是,在現在說明的實施例中,取代終止位元串流,CABAC狀態對齊至位元邊界。
在實施例中,CABAC碼值組比較從0至範圍變數界定的上值,上值是在預定的最小尺寸(舉例而言,256)與第二預定值(舉例而言,510)之間。
為了將串流位元地對齊,在編碼器及解碼器中,都將m_Range簡單地設定於256。這顯著地簡化編碼及解碼處理,允許二進位資料以原始形式自m_Value中直接讀出,因此,很多位元可以由解碼器一次同時處理。
注意,設定m_Range於256的動作會造成平均0.5位元的損失(假使m_Range已經是256時,則沒有損失;假使m_Range是510時,則損失約1位元;m_Range的所有有效值的平均是0.5位元)。
有一些方法可以用以減輕這些技術造成的損失或潛在成本。圖33至35是流程圖,分別顯示當由CABAC編碼器執行時CABAC處理的終止級的版本。
根據圖33,取決於旁通編碼資料的預期數量的評估(舉例而言,根據大於1旗標的數目等於1),決定是否選取位元對齊。假使預期少量旁通資料,則位元對齊是昂貴的(由於其每一對齊平均浪費0.5位元),以及,由於位元速率可能較低的,所以,也是不必要的。因此,在圖33中,步驟1800藉由偵測已被設定之大於1旗標的數目以及比較該數目與臨界值Thr,而偵測旁通編碼資料的評估數量。假使評估超過臨界值Thr,則控制進至步驟1810,在步驟1810,選取位元對齊模式。否則,控制進至步驟1820,在步驟1820,選取非位元對齊模式。舉例而言,每一TU中每一子組,重複圖33的步驟。這提供實例,將代表資料組中未被代表的係數之資料編碼作為旁通資料;偵測與目前陣列相關連的旁通資料的數量;以 及,假使旁通資料的數量超過臨界量時,施加設定步驟,但其它情形不施加設定步驟。
參考圖34,在用於TU的CABAC箱資料之後,用於TU的所有旁通資料可以一起編碼,而非將在各係數組的尾端之旁通資料編碼。損失因而是每一編碼的TU為0.5位元,而非每一係數組0.5位元。因此,在圖34中的步驟1830,施加測試以偵測目前組是否在編碼TU結束時。假使為否,則不施加位元對齊(標示為步驟1840)及控制返回至步驟1830。但是,假使為是,則在步驟1850施加位元對齊。這提供配置實例,其中,輸入資料值代表影像資料;以及,其中,影像資料被編碼作為包括眾多係數陣列的轉換單元,方法包括在轉換單元編碼結束時施加設定步驟。
在以等機率機制編碼之串流中的其它或所有資料之前,也使此對齊機制,雖然這會降低效率,但是可以簡化串流的編碼。
關於替代對齊,參考圖35,m_Range可設定於數目N之預定值中之一而不是單純256(384,舉例而言,將對齊半位元)。由於對齊值必須小於或等於m_Range的原始值(由於除了經由再歸一化外,範圍無法增加),所以,對於規律間隔的值,每一對齊的損失是(0.5/N)。此方法將仍然要求將256以外的值分割,但是,分母將可事先知道,因此,使用查詢表,可以評估分割。因此,在步驟1860(應用於位元對齊的情形),偵測m_range的 值,以及,在步驟1870,根據用於位元對齊處理的m_range,選取對齊值。
關於此替代對齊方法的進一步精化,使用(不相等的)2的冪次方之符號範圍,將緊隨在對齊之後的箱(或多個箱)編碼。依此方式,對於後續箱的分割的所有要求可以移除,而不會有超過(0.5/N)位元效率的進一步損失。
舉例而言,當對齊至384時,對於後續箱的[0,1]之符號範圍可為[256,128]。
假使0被編碼時,m_Range設定於256,造成將箱編碼的成本為0.5位元。
假使1被編碼時,m_Range設定於128(且m_Value加上256),系統再歸一化(再度地,m_Range變成256),使得將箱編碼的成本為1.5位元。
由於以相等的機率預期0及1,所以,緊隨在對齊之後將箱編碼的平均成本仍然是1位元。對於N=2及二對齊點是256和384的情形,方法將是選取小於或等於目前的m_Range之最大對齊點。假使對齊點是256,則m_Range剛好設定於256以對齊CABAC引擎;假使對齊點是384,則需要上述處理,這將要求一符號的編碼。
這顯示於圖32A及B中,以及,N=4的另一實例顯示在圖32C至32F中。
為了說明對齊CABAC引擎的優點,將等機率(EP)箱解碼而無此對齊級之方法可以如下所述: 假使(m_Value>=m_Range/2)解碼EP值為1。使m_Value減量m_Range/2其他解碼EP值為0。然後,從位元串流讀取下一位元:m_Value=(m_Value*2)+next_bit_in_stream
然後,這個的工作實例接著是:令m_Range=458及m_Value=303以及假定位元串流中的下二個位元是1循環1:m_Value>=229,所以下一碼化的EP值是1。m_Value=74然後,從位元串流讀取下一位元:m_Value=74*2+1=149循環2:m_Value<229,所以EP值是0(m_Value未改變)然後,從位元串流讀取下一位元:m_Value=149*2+1=299
解碼的等機率箱等同於一級長除法,以及,將要求算術以測試不等性。為了將二箱解碼,則將使用此處理實例二次,實施二級長除法處理。
但是,假使施加對齊級時,造成最大有效的2的冪次方(例如,用於9位元HEVC CABAC熵編碼器之256)之m_Range,則上述處理被簡化。
碼化EP值是m_Value的最高有效位元更新m_Value藉由將其視為移位暫存器,將串流中的下一位元移位至最低有效位置
因此,m_Value基本上變成移位暫存器,以及,從最高有效位置讀取EP箱,而位元串流移位至最低有效位置中。因此,藉由將更多位元簡單地偏離m_Value的頂部,可讀取多個EP位元。
此對齊情形的工作實例是: 令m_Range=256,m_Value=189以及位元串流中的下一位元是1循環1:下一碼化EP值是m_Value的位元7,其為1。藉由移出位元7,以及從位元串流中移入1至最低有效位置中而更新m_Value;m_Value變成123。循環2:下一碼化EP值是m_Value的位元7,其為0。藉由移出位元7,以及從位元串流中移入1至最低有效位置中而更新m_Value;m_Value變成247。
被選取之對齊點的數目N可視為實施的複雜度與對齊的位元成本之間的交易。對於每一對齊點有很多EP箱之操作點,則浪費是較不顯著的,以及,具有較少點的對齊系統即足夠。相反地,對於有每一對齊點有較少的EP箱之操作點,則浪費是更顯著,具有更多點的對齊系統是較佳的;對於使對齊演算法完全禁能的某些操作點可以是較佳的。編碼器,因而位元串流,可以標示要由解碼器使用的對齊點數目,可以根據用於資料串流的該選取之操作點而選取對齊點數目。標示之此數目可以從存在於位元串流中之例如設定檔或是等級等其它資訊替代地推論而得。
使用多個對齊位置,在對齊位置正好是256及384的簡單情形中: 對齊假使m_Range<384,僅設定m_Range=256,參考上述用於解碼的工作實例其他設定m_Range=384,以及下述處理用於將下一EP箱編碼:m_Range=384=256+128。為了要編碼的下一EP箱,指派256的符號範圍給0的值以及指派128給1的值假使m_Value>=256,則 (MSB位元測試操作)下一EP值是1。m_Value-=256 (事實上是位元清除操作)m_Range=128。再歸一化(由於m_Range<256):m_Range=256 m_Value=(m_Value*2)+next_bit_in_stream其他下一EP值是0。m_Range=256。然後,m_Range=256,以及,上述簡單處理可以用於所有後續的EP箱。
圖29顯示剛剛討論之具有CABAC位元對齊機制的熵編碼實施例1的結果,圖29是對於具有及不具有N=1的位元對齊機制之六個序列,位元速率差相對於QP的圖形。正位元速率差(在垂直軸上)表示具有位元對齊的系統產生比不具有位元對齊機制的設計更高的位元速率。各序列的位元速率差約為每秒一千個係數組數目的0.5倍(傳輸量是2560×1600 30 p=11520,所有其它的是1920×1080 50 p=9720)。
上述對齊技術是實例:在將輸入資料值組編碼之後,將範圍變數設定於選自可利用的範圍變數值之預定子集合的值,子集合中的各值具有等於0的至少一最低有效位元。子集合包含最小尺寸(舉例而言,256)。子集合包括在預定最小尺寸(例如256)與第二預定值(例如510)之間的二或更多值。根據範圍變數的目前值,選取值。實施例涉及假使範圍變數的目前值在特定值與小於子集合中的下一較高值之值之間的範圍時從子集合選取特定值(如同所示,舉例而言,在圖32A-32)。在特定實例中,可利用的值之子集合包括256、320、384及448組成的集合;設定範圍變數的步驟包括根據範圍變數的目前值而從子集合中選取值,以致於假使範圍變數的目前值是在256與319之間時,則範圍變數設定於256,假使範圍變數的目前值是在320與383之間時,範圍變數設定於320,假使範圍變數的目前值是在384與447之間時,範圍變數設定於384,假使範圍變數的目前值是在448與510之間時,範圍變數設定於448。在另一實例中,設定範圍變數的步驟包括根據範圍變數的目前值而從子集合中選取值,以致於假使範圍變數的目前值是在256與383之間時,則範圍變數設定於256,以及假使範圍變數的目前值是在384與510之間時,範圍變數設定於384。
提出圖30中顯示的選項作為設定檔。
假使僅要求高(High)設定檔支元高達14的bitDepth,則建議轉換矩陣係數精度、 MAX_TR_DYNAMIC_RANGENTROPY_CODING_DYNAMIC_RANGE分別設定於12、19及20。
除了這些設定檔之外,唯內部主要(Main)/擴充(Extended)設定檔可以被界定,但是由於僅有內部解碼器比內部/之間解碼器顯著地不複雜,所以,此處僅說明高內部設定檔。
除了這些設定檔之外,在類似的脈絡中,可以界定以不同色度格式來將靜態影像編碼的Extended/High設定檔。
較低的設定檔需要使用同於其它更高設定檔所使的矩陣精度、MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE,由二設定檔產生的位元串流不相符。
現在將說明各種選項:
在此選項中,位元深度將標示轉換矩陣精度、 MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE。這意指需要支援位元深度達到16的解碼器將需要以不同組的矩陣來處理13位元資料,以及,雖然解碼器具有支援高達21的能力,但是,內部準確度將限於對於MAX_TR_DYNAMIC_RANGE僅有18位元。但是,使用高設定檔編碼的12位元資料可由符合較低設定檔的解碼器解碼。
在此選項中,用於重疊的位元深度之位元參數由較低的設定檔決定,藉以使用符合擴充設定檔的解碼器,而將使用高設定檔可解碼所編碼的12位元資料解碼。此外,13位元資料的內部準確度將同於16位元資料。此外,比起選項1,需要支援一些矩陣精度。
在本文中,儲存單組轉換矩陣值,以及,從此導出所有其它值。
注意,假使轉換矩陣具有14位元的初始精度,則一 般而言,可以藉由除以二及捨入而導出較低的精度。
使用此一般規則以從較高精度矩陣導出較低精度矩陣將導致:
實例1
選項1:High 4:4:4 界定轉換矩陣精度=14從14導出轉換矩陣精度=13... Ext 4:4:4 界定轉換矩陣精度=14從14導出轉換矩陣精度=10...亦即,以"高(High)"精度儲存
實例2
選項1:High 4:4:4 界定轉換矩陣精度=10從10導出轉換矩陣精度=14... Ext 4:4:4 界定轉換矩陣精度=10從14導出轉換矩陣精度=10...亦即,以"擴充(Extended)"精度儲存
為了更佳的品質,「實例1」是較佳的。但是,實例2能導致降低的儲存要求。
注意-替代的當然是儲存用於各精度的轉換矩陣。「實例1」及「實例2」規則也用於「選項2」。
由於目標是增加品質及也分裂成多個設定檔,所以,假使以一精度從單組導出各轉換矩陣時,將有比例誤差。
在「實例1」的情形中,系統將轉換矩陣從14位元縮小,以及,在「實例2」的情形中,系統從將轉換矩陣從10位元放大及縮小。
亦即,將12位元的視頻之位元深度編碼成「High 4:4:4」或是「Ext 4:4:4」,但是,僅有High 4:4:4解碼器能夠將使用High 4:4:4設計編碼的串流解碼。
亦即,「High 4:4:4」設定檔必須支援較低的「Ext 4:4:4設定檔」,根據此「選項4」,對於如何編碼12位元視頻,僅有一選擇。
在此選項中,矩陣精度受限於每一設定檔僅1值,降低編碼器的冗餘工作。此外,MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE由位元深度標示,因此,僅要求編碼13位元資料的編碼器將不需包含使用增加的內部計算準確度的實施冗餘工作。
選項6類似於選項5,但是,僅有擴充的設定檔被界定用於編碼12位元資料。
總而言之,根據本發明的不同實施例提供的改變是:為了更高的準確度,使用至少一增加的轉換矩陣。
較佳的是具有用於所有更高的準確度之單組,以簡化 多設定檔編碼器/解碼器。
提出的轉換矩陣用於轉換矩陣精度7至14-請參見下述說明。
由於14位元準確度的轉換矩陣在用於軟體之16位元資料型式內可以合適,所以,建議使用14位元準確度的轉換矩陣,以及,將提供足夠的準確度以允許未來擴充至16位元視頻。
轉換矩陣精度的選擇可以由輸入資料及設定檔的深度來規劃,或者,由在序列、圖像或切片等級指定的參數替代地決定。
為了更高的準確度,可以改變MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE(亦即,它們中之一或二者)。
MAX_TR_DYNAMIC_RANGE及ENTROPY_CODING_DYNAMIC_RANGE的多個值不應出現多設定檔編碼器/解碼器的問題。
建議導出MAX_TR_DYNAMIC_RANGE=bitDepth+5及ENTROPY_CODING_DYNAMIC_RANGE=bitDepth+6。
對於視頻材料的很多情形及型式,使用MAX_TR_DYNAMIC_RANGE=bitDepth+5會是適當的。但是,現在將說明這個的變異可能的需求。
經驗測試顯示在某些情形中,對於視頻序列的子集 合,特別是某些具有低雜訊內容的視頻序列,使用MAX_TR_DYNAMIC_RANGE=bitDepth+5將引起不是單調的響應曲線(給予輸出位元速率及量化參數之間的關係)。
一般而言,此響應曲線在輸出位元速率與量化參數之間是單調的,以致於較粗糙的量化會造成較低的輸出位元速率,以及,較不粗糙的量化給予更高的輸出位元速率。此單調關係形成速率控制演算法的基礎,以致於速率控制系統調整量化參數以將輸出位元速率保持在所需範圍內或是在所需臨界值之下。
但是,在使用MAX_TR_DYNAMIC_RANGE=bitDepth+5某些情形中,發現單調關係失效,以致於,舉例而言,對於較不粗糙的量化之改變事實上造成較低的輸出位元速率,或甚至對於特定的輸出位元速率有二個可能的圖像SNR值。這些失序會使得速率控制演算法掙扎或甚至無法達到所需位元速率。
在經驗測試中,發現藉由使用MAX_TR_DYNAMIC_RANGE=bitDepth+6可以克服這些問題。因此,在某些實施例中,使用bitDepth與MAX_TR_DYNAMIC_RANGE之間的此關係。
在32×32 DCT矩陣的特定實例中,DCT處理將傾向於要求超過bitDepth之log2(32)位元,這是bitDepth+5的值如何被導出的。假使提供此增加的位元作為DCT處理中的額外準確度,則至少對於某些視頻材料,可以取得 顯著較佳的結果。
但是,在實驗測試中也發現此問題,因此,使用MAX_TR_DYNAMIC_RANGE=bitDepth+6的解決之道僅對於較大的DCT矩陣尺寸是重要的。允許MAX_TR_DYNAMIC_RANGE與bitDepth之間不同的關係的優點是在未要求增加的準確度之情形中,這可以避免不必要的處理冗餘工作。
特別地,在本實例中,上述列出的問題、及提出的解決之道對於32×32的DCT矩陣尺寸是重要的。對於較小的矩陣,使用MAX_TR_DYNAMIC_RANGE=bitDepth+5的關係。
更一般而言,使用MAX_TR_DYNAMIC_RANGE與bitDepth之間的關係的適應變化,以致於偏移(加至biDepth以產生MAX_TR_DYNAMIC_RANGE的值)會根據矩陣尺寸而變。所以,MAX_TR_DYNAMIC-RANGE=bitDepth+偏移,其中,偏移是矩陣尺寸的函數。在實例中,如下所述地選取偏移值:
在另一實例中,使用進步的關係而知道隨著更高的矩陣尺寸而需要更高的準確度,隨著更小的矩陣尺寸而需要更低的準確度。
在偏移與矩陣尺寸之間的關係應與編碼器的反向(解碼)路徑與解碼器的解碼路徑之間的關係相同。因此,需要在這三個技術領域之間建立或傳送關係。
在實例中,關係可以建立為在編碼器及解碼器之預定的、硬編碼關係。
在另一實例中,關係可以明確地傳遞為編碼的視頻資料的一部份或是關連性。
在另一實例中,在編碼器及解碼器都從與編碼視頻資料相關連的「設定檔」之識別而推導出關係。此處,如同本說明書中它處所述般,設定檔是用於編碼或解碼視頻資料的參數組的識別。藉由設定檔識別之設定檔識別與真實參數組之間的比對預儲存在編碼器及解碼器。舉例而言,設定檔識別可以執行作為編碼資料的一部份。
但是,一般而言,偏移(在某些實例中稱為第二偏移)值取決於轉換矩陣的矩陣尺寸。
與轉換矩陣精度一樣,MAX_TR_DYNAMIC_RANGE及/或ENTROPY_CODING_DYNAMIC_RANGE的選擇可以由輸入資料及設定檔的位元深度規劃,或者由在序列、圖像或切片等級(與選取DCT矩陣之參數可能相同的參數)指定的參數替代地決定。
這些矩陣配置提供實例:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及,根據輸入影像資料的位元深度,選取轉換矩陣的最大動態範圍及/或資料精度。
在實施例中,可將轉換矩陣的資料精度設定為小於輸入影像資料的位元深度之第一偏移位元數目(例如2);以及,可將轉換資料的最大動態範圍設定於大於輸入影像資料的位元深度之第二偏移位元數目(例如5)。
熵編碼可以改變成包含某些固定位元處理(請參見熵編碼實施例1及2)以增加在低QP的壓縮。
固定位元的存在可以在序列等級規劃。
固定位元BF的數目可以在序列、圖像(雖然這會因為圖像參數不知道序列等級設定而是困難的)、切片或CU等級(可能藉由從用於先前序列/圖像/切片/CU之固定位元數目、雙親實體或設定檔定義而發出差值之訊息)規劃。
熵編碼可以改變以包含CABAC位元對齊而允許不使用長除法即可從串流取出旁通位元(其也可操作以施加一或更多上述位元損失減輕法)。
本發明的實施例因而提供內部準確度增加以容納Range Extension命令的要求,而允許通過HEVC的更高位元深度。已研究不同的錯誤源及作出建議。此外,已提出增進編碼效率的改變,以及也提出增進總工作量的改 變。
增加精度轉換矩陣
此部份的說明將詳述不同等級的精度之轉換矩陣。
4×4 DST
轉換矩陣具有下述形式:
其中,在柵中的值由根據下述表格(為了比較而包含6位元HEVC版本1矩陣值)之矩陣係數精度界定:
合併DCT矩陣
為了易於實施,說明單一32×32 DCT矩陣M32,根據下述,經由次取樣而從此矩陣導出各較小的N×N DCT矩陣MN(從各別不同資料精度之源轉換矩陣,導出所需資料精度的轉換矩陣之實例):M N [x][y]=M 32 [x][(2(5-log2(N)))y]對於x,y=0..(N-1)。
合併矩陣M32具有下述形式:
在柵中的值由根據下述表格(為了比較而包含6位元HEVC版本1矩陣值)之矩陣係數精度界定:
為了提供資訊,此處展示從32×32矩陣導出的較小矩陣。在各柵中的值由根據上述表格的矩陣係數精度界定。
4×4 DCT
矩陣M4定義為合併矩陣M32的每第8列的前4個係數。
8×8 DCT
矩陣M8定義為合併矩陣M32的每第4列的前8個係數。
16×16 DCT
矩陣M16定義為合併矩陣M32的每偶數列的前16個係數。
將參考圖36及37,說明與固定位元編碼的實施例有關的進一步技術或相關技術。
首先,將說明用以將跳脫碼編碼之技術。
所謂的Golomb-Rice碼將值v編碼作為有k位元字尾跟隨在後的一元編碼字首(可變數目的1後面跟隨0,反之亦然)。
令prefix_length是一元編碼字首中1的總數。令K是最低有效k位元的值。
v=(prefix_length<<k)+K
(其中,<<n表示向左偏移n位元;類似的符號>>n代表向右偏移n位元)
位元的總數等於prefix_length+1+k。
接著,將說明所謂的指數Golomb k階碼。在此類碼中,要編碼的數目分成可變長度一元編碼字首及可變長度字尾。字尾位元的數目=prefix_length+k。此處, prefix_length再一次是一元編碼中1的數目。
編碼中的位元總數=prefix_length+1+prefix_length+k
令K為最後k個位元的值
當prefix_length為0時,v將等於K。
當prefix_length為1時,v將在(1<<k)+K及(3<<k)+K之間及(排他的)。
當prefix_length為2時,v將在(3<<k)+K及(7<<k)+K之間及(排他的)。
當prefix_length為3時,v將在(7<<k)+K及(15<<k)+K之間及(排他的)。
因此v=(2^prefix_length-1)<<k)+字尾
在HEVC中,使用Golomb-Rice及指數Golomb碼。假使prefix_length小於3,則碼被解譯為Golomb-Rice碼。但是,假使prefix_length大於或等於3,則碼被解譯為k階的指數Golomb碼。
字首(在任一系統中)是一元編碼的實例。字尾是非一元編碼的實例。二系統是二部份可變長度碼的實例。
在此情形中,用以將指數Golomb碼解碼的prefix_length的值縮小3,以及,由於這是使用Golomb-Rice碼無法代表的最小值,所以導因於解碼操作的值增加(3<<k)。
用於HEVC Escspe及Escspe-Escspe碼的值「k」會變化。對於各個16個係數的組,值k始於0,且無論何時係數值的量值大於3<<k時會增加。為回應此情形,使 k增量(亦即,為回應目前資料值的量值)至最大值4。注意,說明係關於係數量值,而代表係數的正負號之正負號位元分開傳送。
圖36是流程圖,顯示如上所述的產生跳脫碼之處理。流程圖中的數個步驟類似先前所述且不再詳述。
方法可對包括(例如)頻率轉換影像係數的序列或是該序列的非0組成或是各資料值的量值已減少1之該序列的非0組成之資料值組操作(在此最後情形中,首先產生重要性映射圖,以致於因為重要性映射圖說明1的值,所以,在進一步處理之前各係數減少1)。
在步驟2000,設定k的初始值。在一般HEVC系統中,k初始地設定於0。步驟2010、2020、2030、2040、2050及2060對應於圖29-31的流程圖中的類似步驟,此處將不再說明。注意,在圖29-31以及圖36中,在HEVC的某些實例實施中,並不需要對各係數產生所有映射圖。舉例而言,在(例如)具有16個係數的組中,會有一或更多係數未對其產生映射圖。
在步驟2070,假使需要跳脫碼時,使用剛說明的技術,根據k的目前值,產生它。特別地,使用重要性映射圖及選擇性地一或更多其它映射圖,首先處理要求使用跳脫碼的係數。注意,在需要跳脫編碼的係數之情形中,被使用之任何重要性、>1及>2映射圖將被標註旗標「1」。這是因為要求跳脫編碼的任何係數在定義上是大於使用無論那一個與該係數有關之可利用的映射圖而編碼 的值。
假使目前資料值未被完全地編碼,則需要跳脫碼。此處,「完全地」編碼一詞意指資料值減掉已編碼的值(舉例而言,藉由映射圖,或是映射圖加上固定位元)為零。換言之,假使考量已產生的成分該資料值的餘留量為零,則由這些成分完全地編碼資料值。
所以,假使對於係數而言,重要性映射圖及>1及>2映射圖是可用的,這些映射圖的各者將被標註與該係數有關旗標「重要的」、「>1」及「>2」。
這意指(在本實例中)係數必須是至少3。
因此,在跳脫編碼之前,3的值可以從係數扣除,而不會損失資訊。3的值(或者更一般而言,標示數字範圍的變數base_level是由應用至該係數的映射圖界定)在解碼時被復原。
以十進位15(二進位1111)的係數為例,重要性映射圖是「1」,>1映射圖是「1」及>2映射圖是「1」。值base_level是3。從係數值減掉base_level而產生十進位12(二進位1100)的值,對於跳脫編碼,此值是通過的。
值k(請參考上述)現在界定字尾位元的數目,在減掉base_level之後,從係數值的最低有效位元取得字尾位元。假使(舉例而言)k=2,則餘留值1100的二最低有效位元被視為字尾位元,亦即,在本實例中的字尾位元是00。餘留的位元(在本實例中為11)被處理編碼作為字 首。
所以,總結而言,與跳脫碼相關連的處理涉及:產生界定係數的一或更多最低有效位元的一或更多映射圖,以致於(假使要求跳脫碼時)係數必須具有至少base_level的值;係數減掉base_level;將係數的餘留部份的最低有效k位元編碼作為字尾位元;以及將係數的餘留部份的餘留之最高有效k位元編碼作為字首。
然後,使用上述測試,假使k的值需要改變時,則在步驟2080實施改變以及新的k值提供給步驟2070的下一操作。
提供類似效果給固定位元的使用者之跳脫碼技術的修改(圖30及31)是施加偏移至界定跳脫碼中使用的字尾位元的數目之值k。
舉例而言,在HEVC系統中的值k具有0至4的範圍,以及從0的啟始點至最大值4的轉變(與係數組有關)。在本技術的實施例中,偏移加至此k值。舉例而言,偏移可以預定為值param_offset,例如3,以致於用於在編碼係數組的過程中改變k之現有的技術將取代將k從k=0至k=4改變,而將其從k=param_offset至k=4+param_offset改變。
值param_offset可以預定在編碼器與解碼器之間。
或者,值param_offset從編碼器及解碼器傳送作為例如串流、圖像、切片或區塊(例如TU)標頭的一部份。
或者,在編碼器及解碼器處導出值param_offset以作為視頻資料的位元深度的預定函數,例如(舉例而言):對於bit_depth10,param_offset=0對於bit_depth>10,param_offset=bit_depth-10
或者,在編碼器及解碼器處導出值param_offset以作為可應用至區域或係數組的量化(QP)的程度之預定函數。
或者,值param_offsetm可以取決於(舉例而言,以預定方式)視頻成分正被編碼的一或更多、區塊尺寸、模式(舉例而言,損失或無損失)、圖像型式等等。
或者,以適應性為基礎,在編碼器及解碼器處導出值param_offset,取得預定啟始點,或是在標頭中傳送的啟始點、或是從(舉例而言)bit_depth導出啟始點。於下將參考圖37,說明此適應處理的實例。
或者,這些準則中一個以上的準則可以應用。特別地,在值param_offset取決於另一參數(例如區塊尺寸)及如圖37中的下述所述般適應地變化之情形中,則適應性變化將分別地施加至各可能的param_offset值(亦即,對各區塊尺寸分開地)。
注意,任何或所有這些相依性可以與圖30和31的配置中使用的固定位元數目有關地應用。
以與圖30及31的關係,比較此述此修改技術及固定位元技術,可見: (a)在圖30及31的固定位元技術中,在產生任何映射圖之前,將係數分成較重要及較不重要的部份,然後從較重要的部份產生一或更多映射圖,以及,將較不重要部份直接編碼(否則,如上所述地處理);但是,(b)在使用param_offset產生跳脫碼時,首先產生一或更多映射圖,然後,處理係數值的餘留部份(小於值base_level)作為字尾或字首,字尾與字首之間的邊界取決於k+param_offset,以及,字尾代表餘留部份的最低有效位元。
在任一情形中,與固定位元編碼相關連的參數,或是值param_offset以適應方式變化。現在將參考圖37,說明如何達成此點的實例。在圖37中,類似的技術應用至上述說明中的固定位元的數目(在圖37中稱為「NFB」,以及,代表分別在圖30及31步驟1625或1725導出的最低有效部份的位元的數目)或者值param_offset(在圖37中縮寫為「offset」)。
在下述實例配置的說明中,假定以逐片(slice-by-slice)為基礎而執行偏移或NFB值的適應。注意,於系統之HEVC列內可界定切片為從一LCU直到整個畫面的任何事物,但是,切片的基本特點是其編碼獨立於施加至任何其它切片的編碼,以致於個別切片可以被解碼而不用參考另一切片。但是,當然適應化可以以逐區塊或是逐圖像為基礎來發生。
注意,圖37的處理在編碼器處發生,以及,在解碼 器處也以互補的解碼形式發生,以致於偏移/NFB變數的值在編碼器與解碼器之間相等地追蹤。
在步驟2100,切片處理開始。
在步驟2110,重設偏移/NFB值。這涉及將值重設至例如0等固定值。在替代配置中,值被重設至從與一或更多先前切片有關的偏移/NFB變數的最終值導出之啟始值。在此情形中,為了維持獨立地解碼各切片之能力,本技術的實施例提供切片標頭中偏移/NFB變數的啟始值的標示。注意,可以取得用於取得此啟始值之各種不同的技術。舉例而言,假使用於先前切片的該變數之最終值未超過2,則偏移/NFB變數的啟始值可以設定於0,其它情形可以設定於1。類似配置可以應用至從與在前的圖像有關的所有切片取得之變數的平均最終值。習於此技藝者將瞭解,有各種不同的其它可能可供利用。當然,假使使用預定的啟始值,則這可以由可以應用至編碼器及解碼的標準定義預先同意,或是在圖像或圖像標頭中指定預定的啟始值。
關於標頭資料,旗標可以包含在串流、圖像或切片表頭內,以標示圖37的適應處理是否要與該串流、圖像或切片相關地發生。
在步驟2120,第一轉換單元(TU)的處理開始。如同早先所述般,切片的處理以逐TU為基礎來進行。
在步驟2130,另外三個變數此次被重設至0。這些變數被稱為under、over及total。於下將說明這些變數的目 的。
在TU之內,接著將各係數編碼。在步驟2140,將下一係數編碼。在利用在處理的該階段可應用之偏移或NFB值的各情形中,係數的編碼可以依循圖30/31的流程圖或是圖36的流程圖。當然,對於要編碼的第一係數,offset/NFB值等於在步驟2110的該組。對於在後的係數,使用偏移/NFB的目前值。
與步驟2140的編碼的結果相關地施加測試。取決於測試的結果,控制前進至步驟2150、2160或2170或直接至步驟2180。首先,將說明測試。注意,取決於是否使用圖30/31的固定位元系統或是圖37的para_offset系統及伴隨的說明,測試會稍微不同。
固定位元測試
在固定位元系統的情形中,無論固定位元組何時被編碼(無論何時執行步驟1655或步驟1775),則變數「total」增量。因此,由於變數「total」是在固定位元已被編碼時最後被重設的,所以,變數「total」與狀況的數目有關。
然後,測試導出變數remaining_magnitude,其被界定為未被編碼作為固定位元的係數量值的一部份,以致於:remaining_magnitude=(magnitude-1)>>NFB
另一值base_level被界定(如上所述)為不使用跳脫碼即可被說明的最高量值。此處,要指出,特定係數可以 具有與該係數有關地編碼的映射圖登錄或是一、二或三個旗標。以:若係數具有>2旗標,則base_level=3;其它若係數具有>1旗標,則base_level=2;其它base_level=1
接著,相對於base_level,測試值remaining_magnitude。
假使((remaining_magnitude)>>1)base_level),則變數「under」增量。在圖37中,這相當於步驟2150。此步驟的基本意義是偵測到所謂的不足量以致於固定位元(NFB)的數目不足以將目前係數編碼。在測試中向右偏移(>>1)的重要性是假使變數NFB不足二個或更多位元時,不足量僅被以旗標標示為值得注意的不足量。
類似地,假使((NFB>0)及((remaining_magnitude)<<1)),則變數(over)增量。在圖37中,這對應於步驟2160。此步驟的基本意義是假使即使以一個更少的固定位元(由上述說明中的<<1偏移偵測到)偵測到超量,則固定位元成分將能夠將係數的整個量值編碼。換言之,固定位元的數目顯著地超過將該係數編碼所需的數目。
將瞭解,這些測試中使用的不同參數,特別是施加的位元偏移數目,可以根據習於此技藝者的設計技術而變。
假使既未滿足不足量測試也未滿足超量測試,但是,固定位元被編碼,則控制前進至步驟2170,在此,僅有 變數「total」增量。
為了完整起見,說明控制直接通至圖37的步驟2180,其中,固定位元操作未被賦能,以致於未改變任何變數:under、over及total。
Param_Offset測試
在根據param_offset的系統之情形中,基本的原理是類似的,但是,某些細節與上述不同。
無論何時跳脫值被編碼,則變數「total」增量。
相對於參數k,測試係數值,如上所述地,參數k被界定為將偏移param_offset的效果列入考慮。
假使(係數>(3<<k)),則變數「under」增量。這相當於圖37的步驟2150,以及,如上所述地標示不足量情形。換言之,將param_offset列入考慮的變數k不足以將跳脫碼編碼作為字尾。
在其它情形中,假使((係數*3)<(1<<k)),則變數「over」增量。這相當於圖37中的步驟2160。這代表超量情形中,其中,將param_offset列入考慮的變數k提供更多的跳脫碼編碼所需的字尾位元。
假使既未滿足不足量測試也未滿足超量測試,但是,跳脫碼被編碼,則控制前進至步驟2170,在此,僅有變數「total」增量。
再度地,要說明的是控制直接通至圖37的步驟2180,於其中,跳脫碼未被編碼,以致於未改變任何下述 參數:under、over及total。
注意,在任一組測試中,假使NFB或param_offset分別甚至更高或甚至更低,藉由檢查不足量或超過量是否發生,而檢查不足量或超過量是否顯著。但是,並未要求此額外的餘裕-測試可以單純地是「發生不足(超過)量嗎?」。
在步驟2180,假使在該TU有另一係數可供編碼,則控制返回至步驟2140。否則,控制前進至步驟2190,在各TU結束時,但是在下一TU被編碼之前,步驟2190被執行。在此步驟2190,變數偏移/NFB根據變數不足、超過及全部而潛在地適應地改變。此處,相同的適應可以施加至偏移值或NFB值,以致於:假使(under* 4)>total,則偏移/NFB值增量(1);以及假使((over * 2)>total,則偏移/NFB值減量(1),受限於最小值0。
注意,假使與單一TU有關的這二個測試通過,則param_offset或NFB的值將維持相同。
注意,以切片分割,然後以TU分割,並非必要的-以此方式處理任何值組(甚至可以不是視頻資料值),以及,將值組次分割成子集合以取代此說明中的TU分割。
假使遭受25%以上的不足量,這等同於使偏移/NFB增量,但是,假使有多於50%以上的超過量,使偏移/NFB減量。所以,用於不足量的測試之比例低於用於超過量的 測試之比例。此不對稱性的理由是由於在不足量的情形中使用的跳脫編碼方法的本質而使不足量比超過量產生更多的無效率。但是,將瞭解可以使用相同的臨界值,或是使用不同的值。
最後,在步驟2200,假使在切片中有另一TU,則控制返回至步驟2120。假使在切片中沒有另外的TU,則控制返回至步驟2100。注意,如上所述,選加地,根據剛剛完成的編碼處理期間取得的結果,設定偏移/NFB的啟始點(用於步驟2120的下一情形,用於下一或未來的切片)。
在解碼側(或是在編碼器的解碼路徑)執行互補步驟。舉例而言,解碼方法包括,將來自標示預定量值範圍的第一部份及使用二進位編碼而編碼至輸入資料串流之一或更多資料組的各資料值的第一部份解碼;將至少未由資料組完全編碼的那些資料值的第二部份解碼,第二部份的位元數目取決於值n,其中,n是整數,界定第二部份的資料包含在輸入資料串流中,以及,假使資料值未由各別的第一及第二部份完全解碼時,則將來自輸入資料串流的資料值的餘留的第三部份解碼;對於具有二或更多資料值的子集合,偵測(i)第三部份被編碼且仍將被要求使用更高的n值之資料值的情形的數目,以及(ii)第二部份被編碼但n的值使得資料值由第一及第二部份使用較低的n值來完全編碼之一些資料值的情形的數目;以及,在將資料值的子集合解碼之後,根據偵測步驟的結果,改變n 以與後續的資料值相關地使用。
上述步驟由熵編碼器370及熵解碼器410執行(在編碼處理的情形中)或是僅由熵解器410執行(在解碼處理的情形中)。處理可以以硬體、軟體、可編程硬體等等實施。注意,熵編碼器370因而作為編碼器、產生器、及處理器以實施編碼技術。熵解碼器410因而作為一或更多解碼器、偵測器、及處理器以實施此處所述的解碼技術。
因此,上述配置代表用於將資料值(舉例而言,影像資料)組(舉例而言,切片)解碼的資料解碼方法的實例,方法包括下述步驟:將來自標示預定量值範圍的第一部份及使用二進位編碼而編碼至輸入資料串流之一或更多資料組的各資料值的第一部份解碼;將至少未由資料組完全編碼的那些資料值的第二部份解碼,第二部份的位元數目取決於值n,其中,n是整數,界定第二部份的資料包含在輸入資料串流中,以及,假使資料值未由各別的第一及第二部份完全解碼時,則將來自輸入資料串流的資料值的餘留的第三部份解碼(此處,舉例而言,第二部份代表固定位元或字尾部份;值n代表固定位元的數目或字尾長度(以Golomb-Rice編碼)或者如上所述的指數Golomb編碼的階;第三部份代表Golomb-Rice或指數Golomb系統中的字首、或是固定位元實例中的跳脫碼);對於具有二或更多資料值的子集合,偵測(i)第三 部份被編碼且仍將被要求使用更高的n值之資料值的情形的數目(舉例而言,變數「under」),以及(ii)第二部份被編碼但n的值使得資料值由第一及第二部份使用較低的n值來完全編碼之資料值的情形的數目(舉例而言,變數「under」);以及,在將資料值的子集合解碼之後,根據偵測步驟的結果,改變(舉例而言,增量或減量)n以與後續的資料值相關地使用。
變數「total」代表偵測到之第二部份被編碼之與資料值的該子集合相關的的情形的總數之實例。
上述實施例也代表資料編碼方法的實例,用於將資料值陣列編碼作為資料組,及為未由資料組編碼的值編碼跳脫碼,跳脫碼包括一元編碼部份及非一元編碼部份,方法包括下述步驟:設定界定非一元編碼部份的最小數目的位元之編碼參數(舉例而言,param_offset)(依Golomb-Rice或指數Golomb,k界定最小的字尾長度或階),編碼參數是在0與預定上限之間;將1或更大的偏移值(在實例中為param_offset)加至編碼參數以界定最小的最低有效資料部份尺寸;產生標示預定量值範圍的資料值之相對於資料值的陣列之位置的一或更多資料組(舉例而言,重要性映射圖,>1、>2組),以致於將各資料值的至少一最低有效位元的值編碼; 從至少部份未由一或更多資料組編碼的各資料值,產生代表各別的互補最高有效資料部份及最低有效資料部份,以致於值的最高有效資料部份代表該部份的0或是更多最高有效位元,以及各別的最低有效資料部份代表該部份的最低有效位元的數目,最低有效位元的數目大於或等於最小的最低有效資料部份尺寸;將資料組編碼至輸出資料串流(舉例而言,作為二進位編碼資料);將最高有效資料部份編碼至輸出資料串流(舉例而言,作為字首);以及將最低有效資料部份編碼至輸出資料串流(舉例而言,作為字尾)。
注意,在產生重要性映射圖之後,執行上述處理(在某些實施例中),以致於藉由下述而從各別輸入值產生資料值(處理是對其執行):產生另外的資料組,另外的資料組是標示非0輸入值的相對於輸入值陣列的位置之重要性映射圖;以及,從各輸入值減掉1以產生各別的資料值。
圖38及圖39是流程圖,顯示用於選取轉換動態範圍及資料精度參數的處理。
參考圖38,及如上所述般,在步驟2410,根據各影像或視頻成分的位元深度,選取例如轉換矩陣的最大動態範圍及/或資料精度等參數。在步驟2410,對於具有不同位元深度的影像或視頻成分之輸入或輸出影像資料,選 取單組的轉換矩陣的最大動態範圍及/或資料精度,以與所有影像或視頻成份一起使用。
參考圖39,步驟2420類似於步驟2410,但是包含另外的特徵,另外的特徵係單組的轉換矩陣的最大動態範圍及/或資料精度被選取作為與具有最大位元深度的影像或視頻成分中之一相關的那些值。
本發明的實施例是與取決於頻率轉換輸入影像係數的陣列之輸入資料值的序列有關地操作。
如上所述的實施例由下述條列子句界定:
1.一種資料編碼方法,用於資料值序列編碼,該方法包括下述步驟:從輸入資料值產生各別的互補最高有效資料部份及最低有效部份,以致於值的最高有效資料部份代表該值的多個最高有效位元,以及,該各別的最低有效資料部份代表該值的其餘最低有效位元;產生標示預定量值的最高有效資料部份之相對於值的陣列之位置的一或更多資料組;使用二進位編碼,將該資料組編碼至輸出資料串流;以及包含界定該輸出資料串流中的最低有效部份之資料。
2.如第1條之方法,其中,該多個資料組之一是標示非0的最高有效資料部份的相對於資料值陣列的位置之重要性映射圖。
3.如第2條之方法,其中,該重要性映射圖包括資料 旗標,該旗標標示該具有非0值的多個最高有效資料部份中最後部份之根據相對於該資料值陣列的預定排序的位置。
4.如第2或3條之方法,其中,該資料組包括:大於1映射圖,標示大於1的最高有效資料部份之相對於該值陣列的位置;以及大於2映射圖,標示大於2的最高有效資料部份之相對於該值陣列的位置。
5.如第1條之方法,其中,該資料組包括:大於1映射圖,標示大於或等於1的最高有效資料部份之相對於該值陣列的位置;以及大於2映射圖,標示大於或等於2的最高有效資料部份之相對於該值陣列的位置。
6.如第5條之方法,包括產生另外的資料組之步驟,該另外資料組是標示非0值之相對於該值陣列的位置之重要性映射圖。
7.如第6條之方法,其中,該重要性映射圖包括資料旗標,該資料旗標標示該具有非0值的多個值中的最後值之根據該值陣列的預定排序之位置。
8.如上述任一條之方法,其中,包含界定輸出資料串流中最低有效資料部份之資料的該步驟包括使用算術編碼以將該最低有效資料部份編碼,其中,根據編碼值範圍的各別部份,將代表最低有效資料部份的符號編碼,其中,用於說明最低有效資料部份之各符號的該編碼值範圍的各 別部份是相等尺寸。
9.如第1至7條中任一條之方法,其中,包含界定輸出資料串流中最低有效資料部份之資料的該步驟包括在該輸出資料串流中直接包含最低有效資料部份作為原始資料。
10.如上述任一條之方法,其中,該資料值序列代表具有影像資料位元深度的影像資料;以及該方法包括將作為各最高有效資料部份中多個最高有效位元的位元數目設定為等於該影像資料位元深度。
11.如前述任一條之方法,其中,該資料值序列包括頻率轉換影像係數序列。
12.如第11條之方法,其中,該頻率轉換輸入影像係數是根據選自可利用的量化參數範圍之可變量化參數之量化頻率轉換輸入影像係數,該方法包括:對於使用可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,根據最高有效資料部份及最低有效資料部份,將頻率轉換輸入影像係數陣列編碼;以及對於使用未在可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,將該頻率轉換輸入影像係數陣列編碼,以致於各最高有效資料部份中的位元數目等於該係數的位元數目,以及,該各別的最低有效資料部份未含有位元。
13.如第11或12條之方法,包括下述步驟: 根據該轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及根據該輸入影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
14.如第13條之方法,其中,該選取步驟包括:將該轉換矩陣的資料精度設定於小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定於大於該輸入影像資料的該位元深度之第二偏移位元數目。
15.如第14條之方法,其中,該第一偏移位元數目等於2及第二偏移位元數目等於5。
16.如第13至15條之方法,包括下述步驟:從不同資料精度之各別的源轉換矩陣,導出所需的資料精度之轉換矩陣。
17.如前述任一條之方法,其中,該編碼步驟包括:根據用於編碼的資料組之目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,該碼值組是由範圍變數界定;將目前的輸入資料值指派給該選取的子範圍之內的碼值;視該指派的碼值及該選取的子範圍之尺寸而修改該碼值組;偵測界定該碼值組的該範圍變數是否小於預定的最小 尺寸,假使為是,則連續地增加該範圍變數以致於增加該碼值組的尺寸直到其具有至少該預定的最小尺寸;以及,輸出編碼資料位元以回應各此子尺寸增加操作;以及在將輸入資料值組編碼之後,將該範圍變數設定於選自可利用的範圍變數值的預定子集合之值,在具有至少一最低有效位元之該子集合中的各值等於0。
18.如第7條之方法,其中:相對於該碼值組之該子範圍的比例由與該輸入資料值相關連的內容變數界定。
19.如第18條之方法,包括下述步驟:跟隨資料值的編碼,修改該內容變數,以與下一輸入資料值相關地使用,以致於增加被選取用於該目前資料值的該子範圍中的碼值組的比例。
20.如第17至19條中任一條之方法,其中:該碼值組包括從0至該範圍變數界定的上值,該上值是在256與510之間。
21.如第20條之方法,其中:該範圍變數的該可利用值子集合包括值256。
22.如第20條之方法,其中:該可利用值子集合包括256及384組成的組;設定範圍變數的該步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於假使該範圍變數的目前值是在256與383之間時,該範圍變數設定於256,以及,假使該範圍變數的目前值是在384與510之間時,該範圍 變數設定於384。
23.如第20條之方法,其中:該可利用值的子集合包括256、320、384及448組成的組;設定範圍變數的該步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於假使該範圍變數的目前值是在256與319之間時,該範圍變數設定於256,假使該範圍變數的目前值是在320與383之間時,該範圍變數設定於320,假使該範圍變數的目前值是在384與447之間時,該範圍變數設定於384,以及,假使該範圍變數的目前值是在448與510之間時,該範圍變數設定於448。
24.如第17至23條之方法,包括:將代表資料組中未被代表的值之資料編碼作為旁通資料;偵測與目前陣列相關連的旁通資料的數量;以及假使旁通資料的數量超過臨界量,則施加該設定步驟,其它情形則不施加該設定步驟。
25.如第17至24條之方法,其中,該資料被編碼成為包括多個資料值陣列之轉換單元,該方法包括在轉換單元編碼結束時施加該設定步驟。
26.一種影像資料編碼方法,包括下述步驟:根據該轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及 根據該輸入影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
27.一種由根據上述任一條之編碼方法編碼的影像資料。
28.一種資料載體,儲存根據第17條之視頻資料。
29.一種資料解碼方法,用於將資料解碼以提供資料值組,該方法包括下述步驟:將該資料值的最低有效資料部份及一或更多編碼資料組與輸入資料串流分開;使用二進位解碼,將該資料組解碼以產生該資料值的最高有效資料部份;以及將該最高有效資料部份及該最低有效資料部份相結合以形成該資料值,以致於對資料值而言,該各別的最高有效資料部份代表該資料值的眾多最高有效位元,以及,該各別的最低有效資料部份代表該資料值的眾多其餘的該最低有效位元。
30.一種影像資料解碼方法,包括下述步驟:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及根據該輸出影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
31.一種電腦軟體,當由電腦執行時,促使該電腦執行根據上述任一條之方法。
32.一種非暫時的機器可讀取的儲存媒體,儲存根據第31條之電腦軟體。
33.一種資料編碼裝置,用於資料值序列編碼,該裝置包括:產生器,配置成從輸入資料值產生各別的互補最高有效資料部份及最低有效部份,以致於值的最高有效資料部份代表該值的多個最高有效位元,以及,該各別的最低有效資料部份代表該值的其餘最低有效位元,以及,配置成產生標示預定量值的最高有效資料部份之相對於值的陣列之位置的一或更多資料組;以及編碼器,配置成使用二進位編碼,將該資料組編碼至輸出資料串流,以及,包含界定該輸出資料串流中的最低有效部份之資料。
34.一種資料編碼裝置,用於將影像資料編碼,該裝置包括:頻率轉換器,根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及選取器,根據該輸入影像資料的位元深度,選取該轉換矩陣的最大動態範圍及/或該資料精度。
35.一種資料解碼裝置,用於將資料解碼以提供資料值陣列,該裝置包括:資料分離器,配置成將該資料值的最低有效資料部份及一或更多編碼資料組與輸入資料串流分開; 解碼器,配置成使用二進位解碼,將該資料組解碼以產生該資料值的最高有效資料部份;以及合併器,將該最高有效資料部份及該最低有效資料部份相結合以形成該資料值,以致於對資料值而言,該各別的最高有效資料部份代表該資料值的眾多最高有效位元,以及,該各別的最低有效資料部份代表該資料值的眾多其餘的該最低有效位元。
36.一種影像資料解碼裝置,包括:頻率轉換器,配置成根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及選取器,根據該輸出影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或該資料精度。
37.一種視頻資料擷取、傳輸、顯示及/或儲存裝置,包括如第33至36條中任一條之裝置。
另有實施例由下述條列子句界定:
1.一種資料編碼方法,將用於編碼的資料組的輸入資料值編碼,該方法包括下述步驟:根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,該碼值組是由範圍變數界定;將目前的輸入資料值指派給該選取的子範圍之內的碼值;視該指派的碼值及該選取的子範圍之尺寸而修改該碼 值組;偵測界定該碼值組的該範圍變數是否小於預定的最小尺寸,假使為是,則連續地增加該範圍變數以致於增加該碼值組的尺寸直到其具有至少該預定的最小尺寸;以及,輸出編碼資料位元以回應各此子尺寸增加操作;以及在將輸入資料值組編碼之後,將該範圍變數設定於選自可取得的範圍可變值的預定子集合之值,在具有至少一最低有效位元之該子集合中的各值等於0。
2.如第1條之方法,其中:相對於該碼值組之該子範圍的比例由與該輸入資料值相關連的內容變數界定。
3.如第2條之方法,包括下述步驟:跟隨輸入資料值的編碼,修改該內容變數,以與下一輸入資料值相關地使用,以致於增加被選取用於該目前資料值的該子範圍中的碼值組的比例。
4.如第1至3條中任一條之方法,其中:該碼值組包括從0至該範圍變數界定的上值,該上值是在該預定最小尺寸與第二預定值之間。
5.如第4條之方法,其中:該預定最小尺寸是256以及第二預定值是510。
6.如第1至5條中任一條之方法,其中:該範圍變數的該可利用值子集合包括該預定最小尺寸。
7.如第1至5條中任一條之方法,其中:該子集合包 括在該預定最小尺寸與該第二預定值之間的二或更多值。
8.如第7條之方法,其中,該設定步驟包括根據該範圍變數的目前值而從該子集合中選取值。
9.如第8條之方法,其中,該設定步驟包括假使該範圍變數的目前值是在特定值與小於該子集合中的下一較高值之值之間時,從該子集合選取該特定值。
10.如上述任一條之方法,包括:將代表資料組中未被代表的值之資料編碼作為旁通資料;偵測與目前陣列相關連的旁通資料的數量;以及假使旁通資料的數量超過臨界量,則施加該設定步驟,其它情形則不施加該設定步驟。
11.如上述任一條之方法,其中:該輸入資料值代表影像資料;該資料被編碼成為包括多個係數陣列之轉換單元,該方法包括在轉換單元編碼結束時施加該設定步驟。
12.一種由根據上述任一條之編碼方法編碼的資料。
13.一種資料載體,儲存根據第12條之視頻資料。
14.一種資料編碼裝置,將用於編碼的資料組的輸入資料值編碼,該裝置包括:選取器,根據目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,該碼值組是由範圍變數界定,以及,將該目前的輸入資料值指派給該選取的子範圍之內的碼值; 修改器,配置成視該指派的碼值及該選取的子範圍之尺寸而修改該碼值組;偵測器,配置成偵測界定該碼值組的該範圍變數是否小於預定的最小尺寸,假使為是,則連續地增加該範圍變數以致於增加該碼值組的尺寸直到其具有至少該預定的最小尺寸;以及,輸出編碼資料位元以回應各此子尺寸增加操作;以及範圍變數設定器,配置成在將輸入資料值組編碼之後,將該範圍變數設定於選自可利用的範圍變數值的預定子集合之值,在具有至少一最低有效位元之該子集合中的各值等於0。
15.一種視頻資料擷取、傳輸、顯示及/或儲存裝置,包括如第14條之裝置。
另有實施例由下述條列子句界定:
1.一種資料編碼方法,用於資料值陣列編碼,該方法包括下述步驟:從輸入資料值產生各別的互補最高有效資料部份及最低有效部份,以致於值的最高有效資料部份代表該值的多個最高有效位元,以及,該各別的最低有效資料部份取決於該值的其餘最低有效位元;產生標示預定量值範圍的最高有效資料部份之相對於值的陣列之位置的一或更多資料組;使用二進位編碼,將該資料組編碼至輸出資料串流;以及 包含界定該輸出資料串流中的最低有效部份之資料。
2.如第1條之方法,其中,該多個資料組之一是標示非0的最高有效資料部份的相對於資料值陣列的位置之重要性映射圖。
3.如第2條之方法,其中,該重要性映射圖包括資料旗標,該旗標標示該具有非0值的多個最高有效資料部份中最後部份之根據相對於該資料值陣列的預定排序的位置。
4.如第2或3條之方法,其中,該資料組包括:大於1映射圖,標示大於1的最高有效資料部份之相對於該值陣列的位置;以及大於2映射圖,標示大於2的最高有效資料部份之相對於該值陣列的位置。
5.如第1條之方法,其中,該資料組包括:大於1映射圖,標示大於或等於1的最高有效資料部份之相對於該資料值陣列的位置;以及大於2映射圖,標示大於或等於2的最高有效資料部份之相對於該資料值陣列的位置。
6.如第5條之方法,包括藉由下述步驟以從各別輸入值產生該資料值的步驟:產生另外的資料組,該另外資料組是標示非0值之相對於該輸入值陣列的位置之重要性映射圖。
7.如第5或6條之方法,其中,該重要性映射圖包括資料旗標,該資料旗標標示該具有非0值的多個值中的最 後值之根據該輸入值陣列的預定排序之位置。
8.如上述任一條之方法,其中,包含界定輸出資料串流中最低有效資料部份之資料的該步驟包括使用算術編碼以將該最低有效資料部份編碼,其中,根據編碼值範圍的各別部份,將代表最低有效資料部份的符號編碼,其中,用於說明最低有效資料部份之各符號的該編碼值範圍的各別部份是相等尺寸。
9.如第1至8條中任一條之方法,其中,包含界定輸出資料串流中最低有效資料部份之資料的該步驟包括在該輸出資料串流中直接包含最低有效資料部份作為原始資料。
10.如上述任一條之方法,其中,該資料值序列代表具有影像資料位元深度的影像資料;以及該方法包括將作為各最高有效資料部份中多個最高有效位元的位元數目設定為等於該影像資料位元深度。
11.如前述任一條之方法,其中,該資料值序列包括頻率轉換影像係數序列。
12.如第11條之方法,其中,該頻率轉換輸入影像係數是根據選自可取得的量化參數範圍之可變量化參數之量化頻率轉換輸入影像係數,該方法包括:對於使用可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,根據最高有效資料部份及最低有效資料部份,將頻率轉換輸入影像係數陣列編碼;以及 對於使用未在可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,將該頻率轉換輸入影像係數陣列編碼,以致於各最高有效資料部份中的位元數目等於該係數的位元數目,以及,該各別的最低有效資料部份未含有位元。
13.如第11條之方法,包括下述步驟:根據該轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及根據該輸入影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
14.如第13條之方法,其中,該選取步驟包括:將該轉換矩陣的資料精度設定於小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定於大於該輸入影像資料的該位元深度之第二偏移位元數目。
15.如第14條之方法,其中,該第一偏移位元數目等於2及第二偏移位元數目等於5。
16.如第14條之方法,其中,該第一偏移位元數目等於2及該第二偏移位元數目等於6。
17.如第14條之方法,其中,該第二偏移位元數目取決於該轉換矩陣的矩陣尺寸。
18.如第13至17條中任一條之方法,包括下述步驟: 從不同資料精度之各別的源轉換矩陣,導出所需的資料精度之轉換矩陣。
19.一種資料編碼方法,用於將資料值陣列編碼作為資料組以及為未由該資料組編碼的值編碼跳脫碼,跳脫碼包括一元編碼部份以及非一元編碼部份,該方法包括下述步驟:設定界定非一元編碼部份的最小數目的位元之編碼參數,該編碼參數是在0與預定上限之間;將1或更大的偏移值加至編碼參數以界定最小的最低有效資料部份尺寸;產生標示預定量值範圍的資料值之相對於資料值的陣列之位置的一或更多資料組,以致於將各資料值的至少一最低有效位元的值編碼;從至少部份未由該一或更多資料組編碼的各資料值,產生代表各別的互補最高有效資料部份及最低有效資料部份,以致於值的最高有效資料部份代表該部份的0或是更多最高有效位元,以及各別的最低有效資料部份代表該部份的最低有效位元的數目,最低有效位元的數目大於或等於最小的最低有效資料部份尺寸;將該資料組編碼至輸出資料串流;將該最高有效資料部份編碼至該輸出資料串流;以及將該最低有效資料部份編碼至該輸出資料串流。
20.如第19條之方法,其中:將該最高有效資料部份編碼至該輸出資料串流之該步 驟包括使用一元碼以將該最高有效資料部份編碼至該輸出資料串流;以及將該最低有效資料部份編碼至該輸出資料串流之該步驟包括使用非一元碼以將該最低有效資料部份編碼至該輸出資料串流。
21.如第19或20條之方法,其中,將該資料組編碼至輸出資料串流之該步驟包括使用二元碼以將該資料組編碼至輸出資料串流。
22.如第19至21條中任一條之方法,其中,該設定步驟包括視該陣列中目前資料值的量值而使該編碼參數增量。
23.如第20至22條中任一條之方法,其中,將該最高有效資料部份及該最低有效資料部份編碼之該步驟包括使用Golomb-Rice碼或指數Golomb碼,將該最高有效資料部份及該最低有效資料部份編碼。
24.如第23條之方法,其中,該Golomb-Rice的字尾長度等於該最小的最低有效資料部份尺寸;以及該指數Golomb碼具有等於該最小的最低有效資料部份尺寸之階。
25.如第19至24條中任一條之方法,包括視該資料值陣列的參數而產生該偏移值。
26.如第25條之方法,其中,該資料值陣列的參數包括選自下述組成的清單之一或更多: 在該陣列中的資料值數目;由資料值代表的資料型式;可應用至該資料值陣列的量化參數;以及編碼模式。
27.如第19至26條中任一條之方法,包括將資料包含在界定該偏移值的資料標頭中的步驟。
28.如第1條之方法,其中,該編碼步驟包括:根據用於編碼的資料組之目前輸入資料值的值,選取碼值組的眾多互補子範圍中之一,該碼值組是由範圍變數界定;將該目前的輸入資料值指派給該選取的子範圍之內的碼值;視該指派的碼值及該選取的子範圍之尺寸而修改該碼值組;偵測界定該碼值組的該範圍變數是否小於預定的最小尺寸,假使為是,則連續地增加該範圍變數以致於增加該碼值組的尺寸直到其具有至少該預定的最小尺寸;以及,輸出編碼資料位元以回應各此子尺寸增加操作;以及在將輸入資料值組編碼之後,將該範圍變數設定於選自可利用的範圍變數值的預定子集合之值,在具有至少一最低有效位元之該子集合中的各值等於0。
29.如第28條之方法,其中:相對於該碼值組之該子範圍的比例由與該輸入資料值相關連的內容變數界定。
30.如第29條之方法,包括下述步驟:跟隨資料值的編碼,修改該內容變數,以與下一輸入資料值相關地使用,以致於增加被選取用於該目前資料值的該子範圍中的碼值組的比例。
31.如第28至30條中任一條之方法,其中:該碼值組包括從0至該範圍變數界定的上值,該上值是在256與510之間。
32.如第31條之方法,其中:該範圍變數的該可利用值子集合包括值256。
33.如第31條之方法,其中:該可利用值子集合包括256及384組成的組;設定範圍變數的該步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於假使該範圍變數的目前值是在256與383之間時,該範圍變數設定於256,以及,假使該範圍變數的目前值是在384與510之間時,該範圍變數設定於384。
34.如第31條之方法,其中:該可利用值的子集合包括256、320、384及448組成的組;設定範圍變數的該步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於假使該範圍變數的目前值是在256與319之間時,該範圍變數設定於256,假使該範圍變數的目前值是在320與383之間時,該範圍變數設定於320,假使該範圍變數的目前值是在384與447之間 時,該範圍變數設定於384,以及,假使該範圍變數的目前值是在448與510之間時,該範圍變數設定於448。
35.如第28至34條之方法,包括:將代表資料組中未被代表的值之資料編碼作為旁通資料;偵測與目前陣列相關連的旁通資料的數量;以及假使旁通資料的數量超過臨界量,則施加該設定步驟,其它情形則不施加該設定步驟。
36.如第28至35條之方法,其中,該資料被編碼成為包括多個資料值陣列之轉換單元,該方法包括在轉換單元編碼結束時施加該設定步驟。
37.一種影像資料編碼方法,包括下述步驟:根據該轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及根據該輸入影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
38.如第37條之方法,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取步驟包括選取單組的最大動態範圍及/或該轉換矩陣的資料精度以與所有的影像成分一起使用。
39.如第38條之方法,其中,該選取步驟包括選取與具有最大的位元深度之多個影像成分中之一相關的那些值以作為單組最大動態範圍及/或該轉換矩陣的資料精度。
40.一種由根據上述任一條之編碼方法編碼的影像資料。
41.一種資料載體,儲存根據第40條之影像資料。
42.一種資料解碼方法,用於將資料解碼以提供資料值陣列,該方法包括下述步驟:將該資料值的最低有效資料部份及一或更多編碼資料組與輸入資料串流分開;使用二進位解碼,將該資料組解碼以產生該資料值的最高有效資料部份;以及將該最高有效資料部份及該最低有效資料部份相結合以形成該資料值,以致於對資料值而言,該各別的最高有效資料部份代表該資料值的眾多最高有效位元,以及,該各別的最低有效資料部份取決於該資料值的其餘的最低有效位元。
43.一種資料解碼方法,用於將輸入資料值解碼以提供資料組陣列,該輸入資料值被編碼作為資料組以及為未由該資料組編碼的值編碼跳脫碼,跳脫碼包括一元編碼部份以及非一元編碼部份,該方法包括下述步驟:設定界定非一元編碼部份的最小數目的位元之編碼參數,該編碼參數是在0與預定上限之間;將1或更大的偏移值加至編碼參數以界定最小的最低有效資料部份尺寸;將標示預定量值範圍的資料值之相對於資料值的陣列之位置的一或更多資料組解碼,以致於將各資料值的至少 一最低有效位元的值解碼;從各別的互補最高有效資料部份及最低有效資料部份的一元編碼部份及非一元編碼部份,將至少部份未由該一或更多資料組編碼的各資料值解碼,以致於值的最高有效資料部份代表該部份的0或更多最高有效位元,以及各別的最低有效資料部份代表該部份的最低有效位元的數目,最低有效位元的數目大於或等於最小的最低有效資料部份尺寸。
44.一種影像資料解碼方法,包括下述步驟:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及根據該輸出影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或資料精度。
45.如第44條之方法,其中:對於具有不同位元深度的影像成分之輸入影像資料,該選取步驟包括選取單組最大動態範圍及/或該轉換矩陣的資料精度,以與所有影像成分一起使用。
46.如第45條之方法,其中,該選取步驟包括選取與具有最大的位元深度之多個影像成分中之一相關的那些值以作為單組最大動態範圍及/或該轉換矩陣的資料精度。
47.一種電腦軟體,當由電腦執行時,促使該電腦執行根據第1至39條及42至46條中任一條之方法。
48.一種非暫時的機器可讀取的儲存媒體,儲存根據 第47條之電腦軟體。
49.一種資料編碼裝置,用於資料值序列編碼,該裝置包括:產生器,配置成從輸入資料值產生各別的互補最高有效資料部份及最低有效部份,以致於值的最高有效資料部份代表該值的多個最高有效位元,以及,該各別的最低有效資料部份取決於該值的其餘最低有效位元,以及,配置成產生標示預定量值的最高有效資料部份之相對於值的陣列之位置的一或更多資料組;以及編碼器,配置成使用二進位編碼,將該資料組編碼至輸出資料串流,以及,包含界定該輸出資料串流中的最低有效部份之資料。
50.一種資料編碼裝置,用於將資料值陣列編碼作為資料組以及為未由該資料組編碼的值編碼跳脫碼,跳脫碼包括一元編碼部份以及非一元編碼部份,該裝置包括:處理器,配置成:設定界定非一元編碼部份的最小數目的位元之編碼參數,該編碼參數是在0與預定上限之間;將1或更大的偏移值加至編碼參數以界定最小的最低有效資料部份尺寸;產生標示預定量值範圍的資料值之相對於資料值的陣列之位置的一或更多資料組,以致於將各資料值的至少一最低有效位元的值編碼;以及從至少部份未由該一或更多資料組編碼的各資料值, 產生代表各別的互補最高有效資料部份及最低有效資料部份,以致於值的最高有效資料部份代表該部份的0或是更多最高有效位元,以及各別的最低有效資料部份代表該部份的最低有效位元的數目,最低有效位元的數目大於或等於最小的最低有效資料部份尺寸;以及,編碼器,配置成:將該資料組編碼至輸出資料串流;將該最高有效資料部份編碼至該輸出資料串流;以及將該最低有效資料部份編碼至該輸出資料串流。
51.一種資料編碼裝置,用於將影像資料編碼,該裝置包括:頻率轉換器,根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及選取器,根據該輸入影像資料的位元深度,選取該轉換矩陣的最大動態範圍及/或該資料精度。
52.如第51條之裝置,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取器配置成選取單組的最大動態範圍及/或該轉換矩陣的資料精度以與所有的影像成分一起使用。
53.如第52條之裝置,其中,該選取器配置成選取與具有最大的位元深度之多個影像成分中之一相關的那些值以作為單組最大動態範圍及/或該轉換矩陣的資料精度。
54.一種資料解碼裝置,用於將資料解碼以提供資料 值陣列,該裝置包括:資料分離器,配置成將該資料值的最低有效資料部份及一或更多編碼資料組與輸入資料串流分開;解碼器,配置成使用二進位解碼,將該資料組解碼以產生該資料值的最高有效資料部份;以及合併器,將該最高有效資料部份及該最低有效資料部份相結合以形成該資料值,以致於對資料值而言,該各別的最高有效資料部份代表該資料值的眾多最高有效位元,以及,該各別的最低有效資料部份代表該資料值的眾多其餘的該最低有效位元。
55.一種資料解碼裝置,用於將輸入資料值解碼以提供資料組陣列,該輸入資料值被編碼作為資料組以及為未由該資料組編碼的值編碼跳脫碼,跳脫碼包括一元編碼部份以及非一元編碼部份,該裝置包括:處理器,可操作以設定界定非一元編碼部份的最小數目的位元之編碼參數,該編碼參數是在0與預定上限之間;將1或更大的偏移值加至編碼參數以界定最小的最低有效資料部份尺寸;將標示預定量值範圍的資料值之相對於資料值的陣列之位置的一或更多資料組解碼,以致於將各資料值的至少一最低有效位元的值解碼;從各別的互補最高有效資料部份及最低有效資料部份的一元編碼部份及非一元編碼部份,將至少部份未由該一 或更多資料組編碼的各資料值解碼,以致於值的最高有效資料部份代表該部份的0或更多最高有效位元、以及各別的最低有效資料部份代表該部份的最低有效位元的數目,最低有效位元的數目大於或等於最小的最低有效資料部份尺寸。
56.一種影像資料解碼裝置,包括:頻率轉換器,配置成根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及選取器,根據該輸出影像資料的該位元深度,選取該轉換矩陣的最大動態範圍及/或該資料精度。
57.如第56條之裝置,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取器配置成選取單組的最大動態範圍及/或該轉換矩陣的資料精度以與所有的影像成分一起使用。
58.如第57條之裝置,其中,該選取器配置成選取與具有最大的位元深度之多個影像成分中之一相關的那些值以作為單組最大動態範圍及/或該轉換矩陣的資料精度。
59.一種視頻資料擷取、傳輸、顯示及/或儲存裝置,包括如第49至58條中任一條之裝置。
如上所述,將瞭解上述條列子句的裝置特徵可由先前所述的編碼器或解碼器的各別特徵實施。

Claims (43)

  1. 一種影像資料編碼方法,包括下述步驟:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及根據該輸入影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或資料精度;其中,該選取步驟包括:將該等轉換矩陣的資料精度設定為小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定為大於該輸入影像資料的該位元深度之第二偏移位元數目,其中該第二偏移位元數目取決於該等轉換矩陣的矩陣尺寸。
  2. 如申請專利範圍第1項之方法,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取步驟包括選取單組的最大動態範圍及/或該等轉換矩陣的資料精度以與所有的影像成分一起使用。
  3. 如申請專利範圍第2項之方法,其中,該選取步驟包括選取與該等影像成分中具有最大位元深度之一者相關的那些值,作為該單組的最大動態範圍及/或該等轉換矩陣的資料精度。
  4. 如申請專利範圍第1項之方法,取決於該頻率轉換輸入影像係數陣列可對輸入資料值序列操作,該方法包括下述步驟:從該等輸入資料值產生各別的互補最高有效資料部份及最低有效資料部份,使得一值的最高有效資料部份代表該值的多個最高有效位元,以及,該各別的最低有效資料部份取決於該值的其餘最低有效位元;產生一或更多資料組,標示預定量值範圍的最高有效資料部份之相對於該等值的陣列之位置;使用二進位編碼,將該等資料組編碼至輸出資料串流;以及包含界定該輸出資料串流中的最低有效部份之資料。
  5. 如申請專利範圍第4項之方法,其中,該等資料組之一是重要性映射圖,標示非0的最高有效資料部份的相對於資料值陣列的位置。
  6. 如申請專利範圍第5項之方法,其中,該重要性映射圖包括資料旗標,標示該等最高有效資料部份中具有非0值的最後部份之根據相對於該資料值陣列的預定排序的位置。
  7. 如申請專利範圍第5項之方法,其中,該等資料組包括:大於1(greater-than-one)映射圖,標示大於1的最高有效資料部份之相對於該資料值陣列的位置;以及大於2(greater-than-two)映射圖,標示大於2的最高有效資料部份之相對於該資料值陣列的位置。
  8. 如申請專利範圍第4項之方法,其中,該資料組包括:大於1(greater-than-one)映射圖,標示大於或等於1的最高有效資料部份之相對於該資料值陣列的位置;以及大於2(greater-than-two)映射圖,標示大於或等於2的最高有效資料部份之相對於該資料值陣列的位置。
  9. 如申請專利範圍第8項之方法,包括藉由下述步驟以從各別輸入值產生該等資料值的步驟:產生另外資料組,該另外資料組是標示非零輸入值之相對於該輸入值陣列的位置之重要性映射圖;以及各輸入值減1以產生各別資料值。
  10. 如申請專利範圍第9項之方法,其中,該重要性映射圖包括資料旗標,標示該等輸入值中具有非0值的最後值之根據該輸入值陣列的預定排序之位置。
  11. 如申請專利範圍第4項之方法,其中,包含界定該輸出資料串流中最低有效資料部份之資料的該步驟包括使用算術編碼以將該最低有效資料部份編碼,其中,根據編碼值範圍的各別部份,將代表最低有效資料部份的符號編碼,其中,用於說明該最低有效資料部份之符號的各者的該編碼值範圍的各別部份具有相等尺寸。
  12. 如申請專利範圍第4項之方法,其中,包含界定輸出資料串流中最低有效資料部份之資料的該步驟包括在該輸出資料串流中直接包含該最低有效資料部份作為原始資料。
  13. 如申請專利範圍第4項之方法,其中,該資料值序列代表具有影像資料位元深度的影像資料;以及該方法包括將作為各最高有效資料部份中該多個最高有效位元的位元數目設定為等於該影像資料位元深度。
  14. 如申請專利範圍第4項之方法,其中,該資料值序列代表頻率轉換影像係數序列。
  15. 如申請專利範圍第14項之方法,其中,該頻率轉換輸入影像係數是根據選自可利用的量化參數範圍之可變量化參數之量化頻率轉換輸入影像係數,該方法包括:對於使用該可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,根據最高有效資料部份及最低有效資料部份,將該頻率轉換輸入影像係數陣列編碼;以及對於使用未在該可利用的量化參數範圍的第一預定子範圍中的量化參數所產生的係數,將該頻率轉換輸入影像係數陣列編碼,使得各最高有效資料部份中的位元數目等於該係數的位元數目,且該各別的最低有效資料部份未含有位元。
  16. 如申請專利範圍第1項之方法,其中,該第一偏移位元數目等於2及第二偏移位元數目等於5。
  17. 如申請專利範圍第1項之方法,其中,該第一偏移位元數目等於2及第二偏移位元數目等於6。
  18. 如申請專利範圍第1項之方法,包括下述步驟:從不同資料精度之各別的源轉換矩陣導出所需的資料精度之轉換矩陣。
  19. 如申請專利範圍第4項之方法,其中,該編碼步驟包括:根據用於編碼的資料組之目前輸入資料值的值,選取碼值組的多個互補子範圍中之一,該碼值組是由範圍變數界定;將該目前輸入資料值指派給該選取的子範圍之內的碼值;視該指派的碼值及該選取的子範圍之尺寸而修改該碼值組;偵測界定該碼值組的該範圍變數是否小於預定的最小尺寸,假使為是,則連續地增加該範圍變數以致於增加該碼值組的尺寸直到其具有至少該預定的最小尺寸;以及,輸出編碼資料位元以回應各個此尺寸增加操作;以及在編碼輸入資料值組之後,將該範圍變數設定為選自可利用的範圍變數值的預定子集合之值,該子集合中的各個值具有至少一個最低有效位元等於0。
  20. 如申請專利範圍第19項之方法,其中:相對於該碼值組之該子範圍的比例由與該輸入資料值相關連的上下文變數(context variable)界定。
  21. 如申請專利範圍第20項之方法,包括下述步驟:跟隨資料值的編碼,修改該上下文變數(用於與下一輸入資料值相關之使用),以致於增加被選取用於該目前資料值的該子範圍中的碼值組的比例。
  22. 如申請專利範圍第19項之方法,其中:該碼值組包括從0至該範圍變數界定的上值,該上值是在256與510之間。
  23. 如申請專利範圍第22項之方法,其中:該範圍變數的可利用值之子集合包括值256。
  24. 如申請專利範圍第23項之方法,其中:該可利用值之子集合包括256及384組成的組;該設定範圍變數的步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於若該範圍變數的目前值介於256與383之間時,該範圍變數被設定為256,以及,若該範圍變數的目前值介於384與510之間時,該範圍變數被設定為384。
  25. 如申請專利範圍第22項之方法,其中:該可利用值的子集合包括256、320、384及448組成的組;該設定範圍變數的步驟包括根據該範圍變數的目前值而從該子集合中選取值,以致於若該範圍變數的目前值介於256與319之間時,該範圍變數被設定為256,若該範圍變數的目前值介於320與383之間時,該範圍變數被設定為320,若該範圍變數的目前值介於384與447之間時,該範圍變數被設定為384,以及,若該範圍變數的目前值介於448與510之間時,該範圍變數被設定為448。
  26. 如申請專利範圍第19項之方法,包括:將代表資料組中未被代表的值之資料編碼為旁通資料;偵測與目前陣列相關連的旁通資料的數量;以及假使旁通資料的數量超過臨界量,則施加該設定步驟,其它情形則不施加該設定步驟。
  27. 如申請專利範圍第19項之方法,其中,該資料被編碼成為包括多個資料值陣列之轉換單元,該方法包括在轉換單元編碼結束時施加該設定步驟。
  28. 一種影像資料結構產品,其中由根據申請專利範圍第1項之編碼方法編碼影像資料。
  29. 一種資料載體,儲存根據申請專利範圍第28項之影像資料結構產品。
  30. 一種影像資料解碼方法,包括下述步驟:根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及根據該輸出影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或資料精度;其中,該選取步驟包括:將該等轉換矩陣的資料精度設定為小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定為大於該輸入影像資料的該位元深度之第二偏移位元數目,其中該第二偏移位元數目取決於該等轉換矩陣的矩陣尺寸。
  31. 如申請專利範圍第30項之方法,其中:對於具有不同位元深度的影像成分之輸出影像資料,該選取步驟包括選取單組的最大動態範圍及/或該等轉換矩陣的資料精度,以與所有影像成分一起使用。
  32. 如申請專利範圍第31項之方法,其中,該選取步驟包括選取與該等影像成分中具有最大的位元深度之一者相關的那些值,作為該單組的最大動態範圍及/或該等轉換矩陣的資料精度。
  33. 一種電腦程式,當由電腦執行時,促使該電腦執行根據申請專利範圍第1項之方法。
  34. 一種非暫態的機器可讀取的儲存媒體,其上儲存有根據申請專利範圍第33項之電腦程式。
  35. 一種資料編碼裝置,用於將影像編碼,該裝置包括:頻率轉換器,組態以根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及選取器,組態以根據該輸入影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或該資料精度;其中該選取器被組態成:將該等轉換矩陣的資料精度設定為小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定為大於該輸入影像資料的該位元深度之第二偏移位元數目,其中該第二偏移位元數目取決於該等轉換矩陣的矩陣尺寸。
  36. 如申請專利範圍第35項之裝置,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取器組態成選取單組的最大動態範圍及/或該等轉換矩陣的資料精度,以與所有影像成分一起使用。
  37. 如申請專利範圍第36項之裝置,其中,該選取器組態成選取該等影像成分中與具有最大的位元深度之一者相關的那些值作為該單組的最大動態範圍及/或該等轉換矩陣的資料精度。
  38. 一種影像資料解碼裝置,包括:頻率轉換器,組態成根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及選取器,組態成根據該輸出影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或資料精度;其中該選取器被組態成:將該等轉換矩陣的資料精度設定為小於該輸入影像資料的位元深度之第一偏移位元數目;以及將該轉換資料的最大動態範圍設定為大於該輸入影像資料的該位元深度之第二偏移位元數目,其中該第二偏移位元數目取決於該等轉換矩陣的矩陣尺寸。
  39. 如申請專利範圍第38項之裝置,其中:對於具有不同位元深度的影像成分之輸出影像資料,該選取器組態成選取單組的最大動態範圍及/或該等轉換矩陣的資料精度,以與所有影像成分一起使用。
  40. 如申請專利範圍第39項之裝置,其中,該選取器組態成選取該等影像成分中與具有最大的位元深度之一者相關的那些值作為該單組的最大動態範圍及/或該等轉換矩陣的資料精度。
  41. 一種視頻資料擷取、傳輸、顯示及/或儲存裝置,包括根據申請專利範圍第38項之裝置。
  42. 一種資料編碼裝置,用於將影像編碼,該裝置包括:頻率轉換器,組態以根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入影像資料頻率轉換,以產生頻率轉換輸入影像係數陣列;以及選取器,組態以根據該輸入影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或該資料精度,其中,對於具有不同位元深度的影像成分之輸入影像資料,該選取器組態成選取單組的最大動態範圍及/或該等轉換矩陣的資料精度,以與所有影像成分一起使用。
  43. 一種影像資料解碼裝置,包括:頻率轉換器,組態成根據轉換資料的最大動態範圍及使用具有資料精度的轉換矩陣,以矩陣乘法處理,將輸入的頻率轉換影像資料頻率轉換,以產生輸出影像資料陣列;以及選取器,組態成根據該輸出影像資料的位元深度,選取該等轉換矩陣的最大動態範圍及/或資料精度,其中,對於具有不同位元深度的影像成分之輸出影像資料,該選取器組態成選取單組的最大動態範圍及/或該等轉換矩陣的資料精度,以與所有影像成分一起使用。
TW103112703A 2013-04-08 2014-04-07 資料編碼及解碼 TWI658702B (zh)

Applications Claiming Priority (8)

Application Number Priority Date Filing Date Title
GB1306335.9A GB2513111A (en) 2013-04-08 2013-04-08 Data encoding and decoding
??1306335.9 2013-04-08
??1307121.2 2013-04-19
GB1307121.2A GB2513186A (en) 2013-04-08 2013-04-19 Data encoding and decoding
??1312330.2 2013-07-09
GB1312330.2A GB2512955A (en) 2013-04-08 2013-07-09 Data encoding and decoding
GB1320775.8A GB2512966A (en) 2013-04-08 2013-11-25 Data encoding and decoding
??1320775.8 2013-11-25

Publications (2)

Publication Number Publication Date
TW201511480A TW201511480A (zh) 2015-03-16
TWI658702B true TWI658702B (zh) 2019-05-01

Family

ID=48483538

Family Applications (2)

Application Number Title Priority Date Filing Date
TW103112704A TWI685245B (zh) 2013-04-08 2014-04-07 資料編碼及解碼
TW103112703A TWI658702B (zh) 2013-04-08 2014-04-07 資料編碼及解碼

Family Applications Before (1)

Application Number Title Priority Date Filing Date
TW103112704A TWI685245B (zh) 2013-04-08 2014-04-07 資料編碼及解碼

Country Status (12)

Country Link
US (4) US10097834B2 (zh)
EP (2) EP2984828B1 (zh)
JP (3) JP6636909B2 (zh)
CN (3) CN105103548B (zh)
AU (1) AU2014252876B2 (zh)
BR (1) BR112015025478B1 (zh)
CA (2) CA3096273A1 (zh)
GB (5) GB2513111A (zh)
MX (1) MX352879B (zh)
RU (2) RU2637879C2 (zh)
TW (2) TWI685245B (zh)
WO (2) WO2014167298A1 (zh)

Families Citing this family (46)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
GB2517416A (en) 2013-08-15 2015-02-25 Sony Corp Data encoding and decoding
US9521423B2 (en) 2014-06-26 2016-12-13 Sony Corporation Data encoding and decoding apparatus, method and storage medium
CN105592313B (zh) * 2014-10-21 2018-11-13 广东中星电子有限公司 一种分组自适应熵编码压缩方法
FR3029333A1 (fr) * 2014-11-27 2016-06-03 Orange Procede de codage et decodage d'images, dispositif de codage et decodage et programmes d'ordinateur correspondants
TW201711475A (zh) * 2015-09-02 2017-03-16 矽創電子股份有限公司 哥倫布-萊斯編碼電路與解碼電路
US11223852B2 (en) 2016-03-21 2022-01-11 Qualcomm Incorporated Coding video data using a two-level multi-type-tree framework
US11368720B2 (en) 2016-05-13 2022-06-21 Sony Corporation Image processing apparatus and method
US9705521B1 (en) * 2016-07-27 2017-07-11 Silicon Laboratories Inc. Noise shaping signed digital-to-analog converter
CN107801033B (zh) * 2016-09-06 2021-05-11 联发科技股份有限公司 应用于数字音视频编解码技术标准系统的解码方法及解码装置
US10848788B2 (en) * 2017-01-06 2020-11-24 Qualcomm Incorporated Multi-type-tree framework for video coding
DE102017204946A1 (de) * 2017-03-23 2018-09-27 Volkswagen Aktiengesellschaft Verfahren zur Bestimmung eines Wertes einer Integer-Skalierung in einer Verknüpfung von Eingangsmengen zu Ausgangsmengen und Computerprogrammprodukt
CN107181963B (zh) * 2017-03-31 2019-10-22 武汉斗鱼网络科技有限公司 一种视频压缩方法及装置
CN107094022B (zh) * 2017-04-25 2023-02-10 福州大学 一种用于VLSI设计的Huffman编码系统的实现方法
KR102395669B1 (ko) * 2017-12-05 2022-05-09 한국전자통신연구원 오류 벡터 크기 계산을 기반으로 한 데이터 압축 및 복원 장치와 그 방법
GB2570711B (en) 2018-02-05 2023-04-05 Sony Corp Data encoding and decoding
GB2570710B (en) * 2018-02-05 2022-10-12 Sony Corp Data encoding and decoding
US11109046B2 (en) * 2018-02-14 2021-08-31 Sony Corporation Image processing apparatus and image processing method
TWI714153B (zh) * 2018-06-29 2020-12-21 大陸商北京字節跳動網絡技術有限公司 零單元的定義
US10812102B2 (en) 2018-06-29 2020-10-20 Apple Inc. Efficient data encoding
US10922026B2 (en) * 2018-11-01 2021-02-16 Fungible, Inc. Data processing unit having hardware-based range encoding and decoding
US10880354B2 (en) 2018-11-28 2020-12-29 Netflix, Inc. Techniques for encoding a media title while constraining quality variations
US10841356B2 (en) * 2018-11-28 2020-11-17 Netflix, Inc. Techniques for encoding a media title while constraining bitrate variations
US10606775B1 (en) 2018-12-28 2020-03-31 Micron Technology, Inc. Computing tile
US11477486B2 (en) * 2019-01-02 2022-10-18 Qualcomm Incorporated Escape coding for coefficient levels
US11012701B2 (en) * 2019-02-22 2021-05-18 Tencent America LLC Residual coding for transform skip mode and block differential pulse-code modulation
JP7277599B2 (ja) 2019-03-08 2023-05-19 北京字節跳動網絡技術有限公司 映像処理におけるモデルベース再整形に対する制約
US10587286B1 (en) * 2019-03-18 2020-03-10 Blackberry Limited Methods and devices for handling equiprobable symbols in entropy coding
CN110109615B (zh) * 2019-03-28 2022-08-30 西南电子技术研究所(中国电子科技集团公司第十研究所) 字节流转义字符硬件处理方法
CN110110535B (zh) * 2019-04-24 2021-01-01 湖北工业大学 一种基于像素矩阵的低失真隐写方法
CN117478908A (zh) 2019-06-22 2024-01-30 北京字节跳动网络技术有限公司 色度残差缩放的语法元素
GB2585044A (en) * 2019-06-25 2020-12-30 Sony Corp Image data encoding and decoding
US11218700B2 (en) * 2019-07-01 2022-01-04 Qualcomm Incorporated Minimum allowed quantization parameter for transform skip mode and palette mode in video coding
CN114128280B (zh) 2019-07-07 2023-11-14 北京字节跳动网络技术有限公司 色度残差缩放的信令通知
GB2589066B (en) * 2019-10-24 2023-06-28 Advanced Risc Mach Ltd Encoding data arrays
US20230042018A1 (en) * 2020-02-12 2023-02-09 Google Llc Multi-context entropy coding for compression of graphs
JP2021150788A (ja) * 2020-03-18 2021-09-27 キヤノン株式会社 画像符号化装置、画像符号化方法及びプログラム、画像復号装置、画像復号方法及びプログラム
GB2593778A (en) * 2020-04-03 2021-10-06 Sony Group Corp Video data encoding and decoding
US11523137B2 (en) * 2020-06-09 2022-12-06 FG Innovation Company Limited Device and method for decoding video data using general constraints information
CN111681192B (zh) * 2020-06-09 2022-08-02 天津大学 一种基于残差图像条件生成对抗网络的比特深度增强方法
GB2599447A (en) * 2020-10-05 2022-04-06 Sony Group Corp Data encoding and decoding
US20220086445A1 (en) * 2020-12-03 2022-03-17 Intel Corporation Methods, apparatus, and articles of manufacture for multi-symbol equiprobable mode entropy coding
US20240064303A1 (en) * 2021-04-26 2024-02-22 Yue Yu Bypass alignment in video coding
US11818353B2 (en) * 2021-05-13 2023-11-14 Qualcomm Incorporated Reduced complexity transforms for high bit-depth video coding
US20230101542A1 (en) * 2021-09-29 2023-03-30 Tencent America LLC Techniques for constraint flag signaling for range extension with coding for last significant coefficient
CN115002461B (zh) * 2022-08-03 2023-08-11 杭州微帧信息科技有限公司 一种视频编码量化方法、装置、电子设备和存储介质
CN117498873B (zh) * 2023-11-07 2024-03-29 东莞市杜氏诚发精密弹簧有限公司 一种血管栓塞弹簧组件智能加工系统

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093452A1 (en) * 2001-08-23 2003-05-15 Minhua Zhou Video block transform
CN103026705A (zh) * 2010-05-14 2013-04-03 三星电子株式会社 用于对视频信号进行编码的方法和设备以及用于对视频信号进行解码的方法和设备

Family Cites Families (56)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7095783B1 (en) * 1992-06-30 2006-08-22 Discovision Associates Multistandard video decoder and decompression system for processing encoded bit streams including start codes and methods relating thereto
US5784631A (en) * 1992-06-30 1998-07-21 Discovision Associates Huffman decoder
IL129725A (en) 1999-05-02 2011-06-30 Nds Ltd Watermark system
US6396422B1 (en) * 1999-06-09 2002-05-28 Creoscitex Corporation Ltd. Methods for quantizing and compressing digital image data
JP2001298739A (ja) * 2000-04-14 2001-10-26 Canon Inc 符号化装置及びその方法
JP4086424B2 (ja) * 1999-08-31 2008-05-14 キヤノン株式会社 符号化装置
GB0007781D0 (en) * 2000-03-30 2000-05-17 Sony Uk Ltd Data compression
US6744387B2 (en) * 2002-07-10 2004-06-01 Lsi Logic Corporation Method and system for symbol binarization
WO2006004847A2 (en) * 2004-06-30 2006-01-12 Comet Video Technology Method of data compression including compression of video data
US7620103B2 (en) * 2004-12-10 2009-11-17 Lsi Corporation Programmable quantization dead zone and threshold for standard-based H.264 and/or VC1 video encoding
WO2006084503A1 (en) 2005-02-08 2006-08-17 Telefonaktiebolaget Lm Ericsson (Publ) On-demand multi-channel streaming session over packet-switched networks
JP4468858B2 (ja) * 2005-06-01 2010-05-26 オリンパスイメージング株式会社 データ符号化装置、データ符号化方法、プログラム
GB0524983D0 (en) * 2005-12-07 2006-01-18 Imagination Tech Ltd Recompression and decompression of a data stream for rate smoothing
US7778472B2 (en) * 2006-03-27 2010-08-17 Qualcomm Incorporated Methods and systems for significance coefficient coding in video compression
US7884742B2 (en) * 2006-06-08 2011-02-08 Nvidia Corporation System and method for efficient compression of digital data
KR100831959B1 (ko) 2006-07-31 2008-05-23 티유미디어 주식회사 채널 전환 화면을 제공하는 디지털 방송 시스템 및 그 방법
US7885473B2 (en) * 2007-04-26 2011-02-08 Texas Instruments Incorporated Method of CABAC coefficient magnitude and sign decoding suitable for use on VLIW data processors
CN101127910B (zh) * 2007-10-08 2013-01-02 威盛电子股份有限公司 编码图块标志参数运算方法和装置
TWI433545B (zh) * 2007-10-30 2014-04-01 Nippon Telegraph & Telephone 影像編碼裝置及影像解碼裝置
JP2011519227A (ja) * 2008-04-25 2011-06-30 トムソン ライセンシング 奥行き信号の符号化
JP4918103B2 (ja) * 2009-01-09 2012-04-18 日本電信電話株式会社 符号化方法、復号方法、それらの装置、プログラム及び記録媒体
KR20100136890A (ko) * 2009-06-19 2010-12-29 삼성전자주식회사 컨텍스트 기반의 산술 부호화 장치 및 방법과 산술 복호화 장치 및 방법
US8615043B2 (en) * 2010-03-04 2013-12-24 Texas Instruments Incorporated Fixed length coding based image data compression
JP2011193335A (ja) * 2010-03-16 2011-09-29 Sony Corp 画像符号化装置および方法、画像復号化装置および方法、並びにプログラム
WO2011126272A2 (en) * 2010-04-05 2011-10-13 Samsung Electronics Co., Ltd. Method and apparatus for encoding video by using dynamic-range transformation, and method and apparatus for decoding video by using dynamic-range transformation
US9049450B2 (en) * 2010-04-05 2015-06-02 Samsung Electronics Co., Ltd. Method and apparatus for encoding video based on internal bit depth increment, and method and apparatus for decoding video based on internal bit depth increment
EP2445214A1 (en) * 2010-10-19 2012-04-25 Fraunhofer-Gesellschaft zur Förderung der angewandten Forschung e.V. Video coding using temporally coherent dynamic range mapping
JP2012129827A (ja) 2010-12-15 2012-07-05 Sony Corp 送信装置、送信方法、受信装置および受信方法
US8437581B2 (en) * 2011-03-04 2013-05-07 General Instrument Corporation Method and system for interpolating fractional video pixels
RS64604B1 (sr) 2011-06-16 2023-10-31 Ge Video Compression Llc Entropijsko kodiranje razlika vektora kretanja
CN105554510B (zh) * 2011-06-28 2019-06-28 三星电子株式会社 对视频进行解码的方法和设备
US9167253B2 (en) 2011-06-28 2015-10-20 Qualcomm Incorporated Derivation of the position in scan order of the last significant transform coefficient in video coding
US9055304B2 (en) * 2011-07-01 2015-06-09 Qualcomm Incorporated Reduced resolution pixel interpolation
AU2012285851B2 (en) * 2011-07-15 2015-11-12 Ge Video Compression, Llc Sample array coding for low-delay
WO2013012819A2 (en) * 2011-07-15 2013-01-24 General Instrument Corporation Context modeling techniques for transform coefficient level coding
US9363535B2 (en) * 2011-07-22 2016-06-07 Qualcomm Incorporated Coding motion depth maps with depth range variation
US9338389B2 (en) 2011-10-20 2016-05-10 Dolby Laboratories Licensing Corporation Method and system for video equalization
CA2826423C (en) * 2011-11-07 2020-03-24 Panasonic Corporation Image coding method, image coding apparatus, image decoding method, and image decoding apparatus
US20140301450A1 (en) * 2011-11-07 2014-10-09 Samsung Electronics Co., Ltd. Inverse transformation method for clipping data of inverse quantization, inverse transformation during video decoding step, and device therefor
GB201119180D0 (en) 2011-11-07 2011-12-21 Sony Corp Data encoding and decoding
GB2496201A (en) 2011-11-07 2013-05-08 Sony Corp Context adaptive data encoding and decoding
US9357185B2 (en) * 2011-11-08 2016-05-31 Qualcomm Incorporated Context optimization for last significant coefficient position coding
US9154792B2 (en) * 2011-11-08 2015-10-06 Qualcomm Incorporated Progressive coding of position of last significant coefficient
CN104185991B (zh) * 2011-11-09 2018-07-06 弗劳恩霍夫应用研究促进协会 不同动态采样值范围的层之间的层间预测
JP6480186B2 (ja) * 2012-01-19 2019-03-06 ヴィド スケール インコーポレイテッド ビデオコーディング量子化およびダイナミックレンジ制御のシステムおよび方法
US9743116B2 (en) * 2012-01-19 2017-08-22 Huawei Technologies Co., Ltd. High throughput coding for CABAC in HEVC
US9036710B2 (en) * 2012-03-08 2015-05-19 Blackberry Limited Unified transform coefficient encoding and decoding
US9584802B2 (en) * 2012-04-13 2017-02-28 Texas Instruments Incorporated Reducing context coded and bypass coded bins to improve context adaptive binary arithmetic coding (CABAC) throughput
GB2501535A (en) 2012-04-26 2013-10-30 Sony Corp Chrominance Processing in High Efficiency Video Codecs
CN102801974B (zh) * 2012-07-19 2014-08-20 西安电子科技大学 基于cabac的图像压缩熵编码器
GB2521828A (en) * 2013-12-23 2015-07-08 Sony Corp Data encoding and decoding
US10241715B2 (en) * 2014-01-31 2019-03-26 Hewlett Packard Enterprise Development Lp Rendering data invalid in a memory array
JP5836424B2 (ja) 2014-04-14 2015-12-24 ソニー株式会社 送信装置、送信方法、受信装置および受信方法
WO2015174026A1 (ja) 2014-05-16 2015-11-19 パナソニックIpマネジメント株式会社 変換方法および変換装置
JP2015217628A (ja) * 2014-05-20 2015-12-07 セイコーエプソン株式会社 液体噴射装置
US9942551B2 (en) * 2015-01-30 2018-04-10 Qualcomm Incorporated Palette index grouping for video coding

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20030093452A1 (en) * 2001-08-23 2003-05-15 Minhua Zhou Video block transform
CN103026705A (zh) * 2010-05-14 2013-04-03 三星电子株式会社 用于对视频信号进行编码的方法和设备以及用于对视频信号进行解码的方法和设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
A. Fuldseth, G. Bjøntegaard, M. Sadafale, M. Budagavi,"CE10: Core transform design for HEVC", Joint Collaborative Team on Video Coding (JCT-VC) of ITU-T SG16 WP3 and ISO/IEC JTC1/SC29/WG11, 6th Meeting: Torino, IT, 14-22 July, 2011 *

Also Published As

Publication number Publication date
RU2751570C2 (ru) 2021-07-15
CA3096273A1 (en) 2014-10-16
RU2637879C2 (ru) 2017-12-07
CN105103549B (zh) 2019-03-12
WO2014167298A1 (en) 2014-10-16
RU2017141156A3 (zh) 2020-10-23
US20160353109A1 (en) 2016-12-01
GB2513186A (en) 2014-10-22
GB201320775D0 (en) 2014-01-08
RU2017141156A (ru) 2019-02-13
EP2984829B1 (en) 2019-10-30
CA2908301C (en) 2020-10-27
GB201306335D0 (en) 2013-05-22
CA2908301A1 (en) 2014-10-16
GB2513111A (en) 2014-10-22
RU2015147886A (ru) 2017-05-15
GB201312330D0 (en) 2013-08-21
US10097834B2 (en) 2018-10-09
GB2512965A (en) 2014-10-15
EP2984829A1 (en) 2016-02-17
EP2984828B1 (en) 2021-06-16
JP2017184239A (ja) 2017-10-05
WO2014167297A1 (en) 2014-10-16
CN109889835B (zh) 2021-10-29
TWI685245B (zh) 2020-02-11
US20190014322A1 (en) 2019-01-10
AU2014252876B2 (en) 2016-09-22
EP2984828A1 (en) 2016-02-17
JP6134055B2 (ja) 2017-05-24
TW201511480A (zh) 2015-03-16
GB201320767D0 (en) 2014-01-08
CN105103549A (zh) 2015-11-25
JP6655579B2 (ja) 2020-02-26
CN109889835A (zh) 2019-06-14
US11463698B2 (en) 2022-10-04
TW201505423A (zh) 2015-02-01
US11039142B2 (en) 2021-06-15
US10136136B2 (en) 2018-11-20
US20160050427A1 (en) 2016-02-18
MX2015014134A (es) 2016-04-07
CN105103548B (zh) 2019-03-15
MX352879B (es) 2017-12-13
US20190089959A1 (en) 2019-03-21
GB201307121D0 (en) 2013-05-29
BR112015025478A2 (pt) 2017-07-18
AU2014252876A1 (en) 2015-09-10
JP6636909B2 (ja) 2020-01-29
GB2512955A (en) 2014-10-15
JP2016519514A (ja) 2016-06-30
BR112015025478B1 (pt) 2022-12-06
JP2016519515A (ja) 2016-06-30
GB2512966A (en) 2014-10-15
CN105103548A (zh) 2015-11-25

Similar Documents

Publication Publication Date Title
TWI658702B (zh) 資料編碼及解碼
US11671599B2 (en) Data encoding and decoding
JP6400092B2 (ja) データ符号化及び復号化
CN111083476B (zh) 编码和解码视频数据的方法及视频数据编码器和解码器
KR20100027385A (ko) 적응적 이진화를 이용한 영상 부호화, 복호화 방법 및 장치
WO2013068733A1 (en) Context adaptive data encoding
WO2013068732A1 (en) Context adaptive data encoding