TW201909633A - 在上下文自適應二元算術編解碼中範圍獲取之方法與裝置 - Google Patents
在上下文自適應二元算術編解碼中範圍獲取之方法與裝置 Download PDFInfo
- Publication number
- TW201909633A TW201909633A TW107124272A TW107124272A TW201909633A TW 201909633 A TW201909633 A TW 201909633A TW 107124272 A TW107124272 A TW 107124272A TW 107124272 A TW107124272 A TW 107124272A TW 201909633 A TW201909633 A TW 201909633A
- Authority
- TW
- Taiwan
- Prior art keywords
- probability
- range
- current
- index
- value
- Prior art date
Links
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/10—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding
- H04N19/102—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using adaptive coding characterised by the element, parameter or selection affected or controlled by the adaptive coding
- H04N19/13—Adaptive entropy coding, e.g. adaptive variable length coding [AVLC] or context adaptive binary arithmetic coding [CABAC]
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N19/00—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals
- H04N19/90—Methods or arrangements for coding, decoding, compressing or decompressing digital video signals using coding techniques not provided for in groups H04N19/10-H04N19/85, e.g. fractals
- H04N19/91—Entropy coding, e.g. variable length coding [VLC] or arithmetic coding
Landscapes
- Engineering & Computer Science (AREA)
- Multimedia (AREA)
- Signal Processing (AREA)
- Compression Or Coding Systems Of Tv Signals (AREA)
- Compression, Expansion, Code Conversion, And Decoders (AREA)
Abstract
本發明提供一種使用CABAC之編解碼符號的熵編解碼方法與裝置。依據本發明,使用一算術等式來計算LPS範圍,以獲取1的範圍的值與0的範圍的值。舉例來說,LPS範圍係使用一或者複數個算術操作來獲取,該一或者複數個算術操作包含計算第一值與第二值的乘積,其中該第一值與 (2 *該LPS概率索引+ 1)或者LPS概率索引相關,而該第二值與(2 *該範圍索引+ 1)或者該範圍索引相關。此外,該LPS範圍可使用查閱資料表來獲取,該查閱資料表包含表格內容,該表格內容對應與一組LPS概率索引相關的LPS範圍的值以及一組範圍索引,來編碼或者解碼該黨前位元組之二進制值。
Description
本發明係關於熵編解碼技術,用於圖像與視訊之編解碼。具體來說,本發明係關於用於圖像與視訊編解碼之上下文參考之自適應二元算術編解碼(Context-Based Adaptive Binary Arithmetic Coder)之範圍獲取(range derivation)。
算術編解碼係一種有效的資料壓縮方式,並且在編解碼標準中廣泛地應用,包含JBIG、JPEG2000、H.264/AVC、與高效視訊編碼(High-Efficiency Video Coding, HEVC)。在H.264/AVC與HEVC測試模式版本16.0(HM-16.0)中,上下文參考之自適應二元算術編碼被採用作為在視訊編解碼系統中的熵編解碼。 旁通
如第1(a)圖所示,CABAC編碼器包含三部分:二值化單元(binarization unit)110、上下文模型單元(context modelling unit)120與二元算術編碼單元130。CABAC編碼過程包含二值化步驟、上下文模型步驟與二元算術編碼步驟。在二值化步驟中,每一個語法元素唯一映射至一位元元字串(二進制位(bin)或者複數個二進制位(bins))。在上下文模型步驟中,針對每一二進制位元選擇一概率模型(概率模型)。該對應概率模型係基於先前編解碼的語法元素、二進制位元索引(bin index)與邊側訊息(side information)。在二進制化與設定上下文模型完成之後,一二進位值與其對應的模型一同傳輸至二進位算術編碼單元130來產生位元流(bitstream)。在另一個方面,一CABAC解碼器接收該位元流,並且執行對應上述CABCA編碼過程之一CABAC解碼過程至該位元流,從而獲得語法元素之值。如第1(b)圖所示,一CABAC解碼器包含三個部分:去-二值化單元(de-binarization unit)150、上下文模型單元160與二元算術解碼單元140。該CABAC解碼過程包含二元算術解碼步驟、去-二值化步驟以及上下文模型步驟。在去-二值化步驟與上下文模型步驟中,依據該目標解碼語法元素,針對每一二進制位元選擇一概率模型。對應的概率模型可依賴於先前解碼的語法元素、二進制位元索引與旁側資訊。依據概率模型,二進制位元值被二元算術解碼單元140解析。語法元素被去-二值化單元150解碼。
在130中的二元算術編碼係遞歸區間-分割(interval-subdividing)程式。輸出位元流係指向編解碼區間之最終概率之指針。編碼區間的概率T由範圍(以下可表示為range)和編碼區間的下限(low boundary)(在下文中用“low”表示)來指定。該範圍是編解碼區間的可能範圍。根據當前符號(symbol)是否是最大概率符號(most probable symbol,MPS)或者最小概率符號(least probable symbol,LPS),相應地將下一編解碼區間更新為兩個子區間中一個,相應地將下一編解碼區間更新為兩個子區間中一個,如公式(1)和⑵所示。其中範圍LPS(以下簡寫為rangeLPS)是編解碼LPS時的估計範圍。
第2圖示出了二元算術編解碼的概念。開始時,如概率數值範圍(probability scale)210表示,概率範圍(即range0
)為1,並且下限(即low0
)為0。如果第一符號為MPS,概率數值範圍210的較低部分中的指針可以用於發信MPS符號之事件。range1
表示用於處理下一符號的概率數值範圍220。將概率數值範圍220劃分成分別用於MPS和LPS的兩部分。如果第二符號係LPS,選擇LPS1
的範圍作為用於下一符號的概率數值範圍230。每當編解碼新的符號時,相應的範圍將變得更小。當範圍變得太小時,範圍可以重新歸一化(re-normalized)處理,以形成具有更大範圍的概率數值範圍240。
在現代算術編碼中,通常根據模型來完成概率更新。例如,在技術出版物 (“Context-Based Adaptive Binary Arithmetic Coding in the H.264/AVC Video Compression Standard”,IEEE Transactions on Circuits and Systems for Video Technology, Vol. 13, No. 7, pp. 620-636, July 2003)中由Marpe等描述了一种方法,其中,使用如下公式:pnew
= (1- a)×y
+ a×pold
. (3)
在上式公式中,若當前符號為最大概率字元(MPS),則y等於0,否則y等於1。該公式提供用於最小概率符號(LPS)的概率的估計值。根據下面公式獲取權重α: a = (min_prob / 0.5)(1/state_number)
, (4) 其中min_prob對應於CABAC的最小概率符號的最小概率,state_number對應于用於概率值估計的上下文狀態的數量。
對於HEVC之CABAC,存在64個概率狀態(probability state) 。min_prob 為 0.01875,state_number為63。每個狀態具有概率值,其表示選擇最小概率符號的概率。通過下面遞歸公式,獲取用於最小概率符號的64個代表性的概率值,, 其中(5)
狀態σ 之rangeLPS值係通過如下等式獲得:(6)
為了降低獲取LPS的範圍(以下簡寫為rangeLPS)所需的計算量,可以預先計算每個rangeLPS的結果,並存儲到查閱資料表(lookup table,以下可簡稱為LUT)中。在H.264/AVC和HEVC中,如資料查閱表1所示,為了減小表格尺寸,採用4列已預先計算的rangeLPS表格。 該範圍被劃分成四段。在每段中,預先定義了每個概率狀態σ (p σ
)的rangeLPS。換言之,概率狀態σ的rangeLPS被量化成四個值。所選擇的rangeLPS依賴於該範圍所屬的段(segment)。 資料查閱表1 .
在資料查閱表1中,“>>”表示右移操作。在JCTVC-F254 (Alshin et al.,複數參數 probability up-date for CABAC
, 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, Document: JCTVC-F254)中,Alshin等公開了用於HEVC標準的CABAC的多參數概率更新。參數N
=1/(1–a)是對之前已編碼的二進位位元的數量(即“視窗尺寸”)的近似測量,之前已編碼的二進位位元對當前二進位位元有很大影響。參數N的選擇決定模型的靈敏度。靈敏的系統將對即時變化快速反應。另一方面,不靈敏的模型將不會對雜訊和隨機錯誤進行反應。這兩個屬性是有用但卻相互矛盾的。因此,Alshin等公開了用不同的a i
同時計算復數個值的方法:pi
_new
= (1-a i
) y
+a i pi
_old
(7)並使用加權平均作為下一位元概率預測:pnew
=S( b i × pi
_new
), (8)其中b i
係與a i
相關之加權因子。
Alshin等使用了具有非乘法公式(multiplication free formula)的顯式計算以用於概率更新,而不是AVC標準的CABAC中所使用的狀態轉換查閱資料表(state transition lookup 查閱資料表)( m_aucNextStateMPS與m_aucNextStateLPS)。假設概率pi被表示為從0至2k
(即 pi
= Pi
/ 2k
)的整數Pi
,並且ai
由2冪分之一來表示(即ai
=1/2Mi
),可獲得如下所示之用於概率更新之非乘法公式:Pi
= (Y
>>Mi
) +P
– (Pi
>>Mi
). (9)
該公式預測下一二進位位元將為“1”的概率,其中若最後一個編解碼二進位位元是“1”,則Y = 2k
,若最後一個二進位位元是“0”,則Y=0,並且“>>Mi
”對應於向右移位Mi
位的操作。
為了保持複雜度增加和性能改善之間的平衡,考慮僅由兩個參數組成的用於概率估計的線性組合:P0
= (Y
>>4) +P0
– (P0
>>4), (10)P1
= (Y
>>7) +P1
– (P0
>>7), and (11)P
=(P0
+ P1
+1)>>1. (12)
對應於用於AVC CABAC的概率的浮點值總通常係小於或者等於1/2。若該概率超過該界限,LPS將變成MPS,以使得概率在上述的區間之內。當MPS/LPS的概率大於0.5時,需要進行MPS/LPS轉換。Alshin等提出(以浮點值的形式)將概率的容許水準增加到1,以避免MPS/LPS轉換。因此,獲得了用於存儲RangeOne或者RangeZero的一個查閱資料表。
在VCEG-AZ07 (Chen, et al., “Further improvements to HMKTA-1.0”, ITU-T Video Coding Experts Group (VCEG) meeting, Warsaw, Poland, IT, 19–26 June 2015, Document: VCEG-AZ07), 中,Chen等提出了使用單個參數的CABAC。概率的取得方式與JCTVC-F254中相同,即使用公式(9)來獲得為1或者0的概率。對於每一上下文,僅使用一個更新速度,意味著對每一上下文而言,僅使用一個N。但是,不同的上下文可以利用不同的N取值。N的範圍從4到7,並且使用2位元(2-bit)變數來表示特定的上下文模型的概率更新速度。編碼器側確定該N值,並被發信在位元流中。
在JCTVC-F254與VCEG-AZ07中,1的範圍(以下簡寫為RangeOne)或者0的範圍(以下簡稱為RangeZero)的查閱資料表係512行(row)乘64列(column)的表格。該查閱資料表的輸入為當前範圍(current range)和當前概率 (current probability)。該當前範圍的有效範圍為從256到510。將當前範圍劃分成64段, 其中每段包括當前範圍的4個值(例如,256至259、260至263等)。可以由以下公式獲得範圍的段索引(the section index of range): rangeIdx = (range>>2) – 64, 或 (13) rangeIdx = (range>>2) & 63 (14)
當前概率(即P)的有效範圍從0到2k – 1。在JCTVC-F254和VCEG-AZ07中,k為15。將該當前概率劃分成512段,其中每段包括當前概率的64個值(例如,0到63、64到127等)。可以由以下公式獲得概率的段索引(the section index of probability):
probIdx = (P>>6). (15)
藉由查閱資料表來獲得RangeOne值,例如 RangeOne=RangeOne之查閱資料表[rangeIdx][probIdx] (16)
在JCTVC-F254 與VCEG-AZ07中,RangeOne的查閱資料表係512行(row)乘64列(column)乘9位元的表格。RangeOne的查閱資料表覆蓋了從0.0至1.0之概率。該查閱資料表之尺寸將變得很大。其需要294912位元之記憶體。需要不降低編解碼性能或者不顯著增加計算複雜度並且克服該問題之技術方案。
提供一種使用上下文參考自適應二元算術編碼(CABAC)之編解碼符號之熵編解碼方法與裝置。依據本發明,上下文餐卡自適應算術編碼或者解碼係依據與上下文自適應算術編碼或解碼之一當前狀態相關之一當前位元組之一二進制值之一當前概率以及一當前範圍,應用該上下文自適應算術編碼或者解碼至一當前編解碼符號之一二進制資料之該當前位元組,其中該當前概率係依據在該當前編解碼符號之前之一或複數個已編解碼的符號來產生。基於該當前位元組之該二進制值之該當前概率是否大於0.5,獲取對應於一逆當前概率或者該當前概率之一LPS概率索引。獲取用於標識包含該當前範圍之一範圍區間之範圍索引。使用一或者複數個算術操作來獲取一LPS範圍,該算術操作包含計算一第一值與一第二值之乘積,該第一值與(2 * 該LPS概率索引+ 1)或者該LPS概率索引相關,該第二值與(2 *該範圍索引 + 1)或者該範圍索引相關,或者使用一查閱資料表來獲取該LPS範圍,該查閱資料表包含表格內容,該表格內容對應於與用於編碼或者解碼該當前位元組之一二進制值之與一組LPS概率索引相關之LPS範圍之值以及一組範圍索引,其中該範圍索引對應於該當前範圍右移mm之結果,並且mm係一非負整數,以及LPS範圍之每一值對應(2 *一LPS概率索引+ 1)以及(2 *一範圍索引+ 1)之乘積,或者對應一偏移值以及一LPS概率索引與一範圍索引之一乘積。
在一實施例中,當該當前位元組之該二進制值之該當前概率大於0.5,一LPS概率係設置為等於(1 –該當前概率),否則該LPS概率設置為等於該當前概率;並且該LPS概率索引係基於指示包含該當前概率之一概率區間之一目標索引來決定。
在另一實施例中,其中當該當前位元組之該二進制值之該當前概率大於2 k – 1
或者大於或等於2 k – 1
,一LPS概率係設置為等於(2k – 1
– 該當前概率)以及該LPS概率索引係設置為等於(2n+1
– 1)減去該當前概率右移(k-n-1)位元之一結果;否則該LPS概率係設置為等於該當前概率並且該LPS概率索引係設置為等於該當前概率右移(k-n-1)位元之結果;並且其中該當前概率係由k-位元值代表,n與k係正整數。該LPS範圍係藉由(2 *該LPS概率索引+ 1)與(2 *該範圍索引+ 1)相乘而獲取之一乘積、並且將該乘積右移x位元而獲取,其中x係一正整數。 舉例來說,k等於15,n等於5並且x等於3.在另一個例子中,該LPS範圍係藉由該LPS概率索引與該範圍索引相乘而獲取之一乘積、並且將該乘積右移x位元加上一偏移值而獲取,其中x係一正整數,該偏移值係一整數。 舉例來說,k可以等於15,n等於1,x等於1,並且該偏移值等於2、3或4。
該查閱資料表對應於一二維查閱資料表,該二維資料查閱表在第一維度上具有LPS概率索引作為一第一查閱資料表索引,以及在第二維度上具有一裁切的範圍索引作為一第二查閱資料表索引,其中該裁切的範圍索引對應該範圍索引。該LPS概率索引具有一從0至31之第一值。該裁切的範圍索引具有從0至7至一第二值,並且該LPS範圍具有從大於或者等於0至小於或者等於255之一第三值範圍。
在一實施例中,LPS概率設置為等於針對(當前概率 >> (k-1))的值與當前概率進行逐位元排除或異或之結果,或者該LPS概率索引設置為等於針對(當前概率 >> (k-1))的值與(當前概率 >> (k-n-1))的值進行逐位元排除或異或之結果;以及其中該當前概率係由k-位元值來表示,n與k係正整數。
該方法進一步包含:從該當前範圍獲取針對該當前位元組分別具有1的值與0的值的一1的範圍的值與一0的範圍的值,其中如果該當前位元組之該二進制值之該當前概率大於0.5或者大於等於0.5,該1的範圍的值設定為(該當前範圍–該LPS範圍),並且該0的範圍設定為該LPS範圍;否則該0的範圍設定為(該當前範圍– 該LPS範圍)並且該1的範圍設定為該LPS範圍。
以下描述為實施本發明的較佳方式。本文僅用來舉例闡釋本發明的基本原理,並非用以限定本發明。本發明的保護範圍應當視所請求保護範圍所界定為准。
在JCTVC-F254與VCEG-AZ07中,RangeOne查閱資料表覆蓋從0.0至1.0的概率。JCTVC-F254之LUT係HEVC之LUT之144倍,其實施時在硬體上成本過大。此外,由於RangeOne或者RangeZero的輸入值係從最小範圍(MinRange)(即,等式17)獲得,如果使用一降採樣之LUT,則編碼效率將顯著下降。
BAC
參數初始化
在JCTVC-F254中之複數參數CABAC能夠增進熵編解碼之編解碼效率。然而在等式(10)與(11)中,參數被固定於4與7。在VCEG-AZ07中,參數被發信以適應目標語法之目標內容之概率轉換。然而,最佳參數可針對不同的內容而不同,也可針對不同的片段(slice)與不同的QP而不同。因此,本發明針對不同的QP或者不同的片段之不同的內容,設定不同的參數。
複數參數CABAC可重新公式化,如等式(19)至(21): P0
= (Y>>α) + P0
– (P0
>>α) 或 P0
= P0
+ ((Y-P0
)>>α), (19) P1
= (Y>>β) + P1
– (P1
>>β) 或 P1
= P1
+ ((Y-P1
)>> β), (20) P = (P0
+ P1
+1)>>1 (21)
針對在不同QP之不同上下文,α與β可不同。α與β可在上下文初始程序中初始化,其在編碼/解碼一片段之初始發生。α與β可通過一預先定義等式以及一或者複數個初始值來獲得。該複數個初始值可預先在標準中定義。在本發明中,提出一些參數初始化方法。
方法 -1: 單獨等式
α = ((m0*QP + n0) >> o0) + ((p0*q0)>>r0) + s0 (22) β = ((m1*QP + n1) >> o1) + ((p1*q1)>>r1) + s1 (23)
在上述等式中,QP係片段QP,m0、n0、o0、p0、q0、r0、s0、m1、n1、o1、p1、q1、r1與s1係整數值。須注意到,如果一可變Y係一負值,(X>>Y)表示(X << (-Y))。如果獲取的α或者β並非係一整數值,其將取整為一整數值。並且,所獲取的α或者β將裁切至一預定範圍。
在一實施例中,m0、p0、m1、p1係作為針對不同上下文之初始值來儲存,而n0、o0、q0、r0、s0、n1、o1、q1、r1與s1係固定值並且可以係0。
方法 -2: α 與 delta 值
α = ((m0*QP + n0) >> o0) + ((p0*q0)>>r0) + s0 (24) delta = ((m1*QP + n1) >> o1) + ((p1*q1)>>r1) + s1 (25) β = α + delta (26)
在一實施例中,QP係片段QP,m0、n0、o0、p0、q0、r0、s0、m1、n1、o1、p1、q1、r1與s1係整數值。須注意的是,如果一變量Y係負值,(X>>Y)表示(X << (-Y))。如果獲取的α、β或delt並非整數值,其將取整為整數值。並且,獲取的α或者β將裁切至一預定範圍。
在一實施例中,m0、p0、m1、p1係針對不同的上下文而儲存為初始值,而n0、o0、q0、r0、s0、n1、o1、q1、r1與s1係固定值並且可以是0。在另一個實施例中,m0、p0、m1係針對不同的上下文而儲存為初始值,而n0、o0、q0、r0、s0、n1、o1、p1、q1、r1與s1係固定值並且可以為0,。在另一個實施例中,m0、p0、p1係針對不同的上下文而儲存為初始值,而n0、o0、q0、r0、s0、m1、n1、o1、q1、r1與s1係固定值並且可以為0 。
方法
-3:
成對索引
α與β之組合可分類為複數個參數對。一索引指派至一參數對。所選擇的成對索引(pair index)可藉由一預定定義之等式以及一或者複數個初始值來獲取。舉例來說,如果α與β的範圍係在3至8中,其具有15對,對應於: #1: [3, 4], #2: [3, 5], #3: [3, 6], #4: [3, 7], #5: [3, 8], #6: [4, 5], #7: [4, 6], #8: [4, 7], #9: [4, 8], #10: [5, 6], #11: [5, 7], #12: [5, 8], #13: [6, 7], #14: [6, 8], #15: [7, 8] 或 #1: [3, 4], #2: [4, 5], #3: [5, 6], #4: [6, 7], #5: [7, 8], #6: [3, 5], #7: [4, 6], #8: [5, 7], #9: [6, 8], #10: [3, 6], #11: [4, 7], #12: [5, 8], #13: [3, 7], #14: [4, 8], #15: [3, 8].
所選擇的成對索引可獲取為: 索引 = ((m0*QP + n0) >> o0) + ((p0*q0)>>r0) + s0 (27)
在上述等式中,QP係片段QP,m0、n0、o0、p0、q0、r0與s0係整數值。需注意,如果一變量Y係負值,(X>>Y)表示(X << (-Y))。如果獲取的索引並非整數值,其將取整為整數值。
在一個實施例中,m0與p0係針對不同的上下文而儲存為初始值,而n0、o0、q0、r0、s0係固定值並且可以係0。
在上述方法中,複數個初始值可封包至一初始值。舉例來說,在方法-2中,m0、p0、m1、p1可封包為一初始值。
在上述方法中,針對一上下文,複數個初始值可針對不同的片段而不同,或者針對不同的片段係相同。舉例來說,一初始值或值集合係針對I-片段而設定,一初始值或值集合係針對P-片段而設定,一初始值或值集合係針對B-片段而設定。在另一實施例中,一初始值或值集合係針對I-片段而設定,一初始值或值集合係針對P-片段與B-片段而設定。
rangeLPS
的獲取
在CABAC編碼器與解碼器中,一遞歸區間-分割程式(recursive interval-subdividing procedure) 在二元算術編碼單元130以及二元算術解碼單元140中執行。在區間-分割中,獲取rangeLPS、RangeOne或者RangeZero。在JCTVC-F254與VCEG-AZ07中,RangeOne從查閱資料表導出。RangeOne的查閱資料表覆蓋從0.0至1.0的概率。然而,其使得LUT過大,以使得硬體成本過高。其LUT係HEVC之LUT之144倍。然而,由於RangeOne或者RangeZero的輸入值係從rangeMin(即,等式17)獲取,如果採用降採樣之LUT,則編解碼效率將顯著下降。
因此,在本發明中,提出僅儲存從0.0至0.5之概率範圍。在另一半查閱資料表中的值可使用“範圍– rangeLPS”來獲取。行(row)之數量定義了概率之解析度。舉例來說,設計一針對概率範圍等於0.5至0.0之具有64行rangeLPS的查閱資料表。每一行代表1/64之概率範圍之LPS之範圍。rangeLPS之值係藉由(範圍A) * (概率B)來獲取。舉例來說,查閱資料表2展示具有4列與64行之rangeLPS之查閱資料表。第一行代表概率為63/128至64/128之間的4個不同範圍段之rangeLPS。在查閱資料表2中,範圍A係range Mid(以下簡稱為range Mid)並且概率B係最大概率(以下簡稱為Prob Max)。rangeLPS的值係藉由(range Mid) * (Prob Max)來導出。在JCTVC-F254與VCEG-AZ07中,針對查閱資料表2,如果1的概率大於0.5(例如0.64),其表示0的概率係0.36。將使用0.36(在第18行)來尋找RangeZero。RangeOne將藉由 (範圍 – RangeZero)來獲取。查閱資料表 2. 針對具有( range Mid ) * ( Prob Max )之一定概率之 rangeLPS 之 查閱資料表
查閱資料表3表示另一值獲取方法,其rangeLPS可藉由具有32x8查閱資料表之(range Mid) * (Prob Mid)來獲取,其中range Mid 表示範圍中值,Pro Mid表示概率中值。查閱資料表3之列與行索引可分別為(範圍>>5)&7以及(概率>>9),其中概率係藉由15-位元值來表示。如果(概率>>9)係大於31,(63 – (概率>>9))的值係用來表示查閱資料表之列索引(probIdx)。舉例來說,如果對應二進制位值概率之概率等於1,該概率係使用15-位元值表示,並且如果(概率>>9)小於32,(概率>>5)&7以及(概率>>9)係用於查閱資料表查找。所導出的值係RangeOne,並且RangeZero以(範圍 – RangeOne)來導出。如果(Prob>>9)等於或者大於32(即概率≥16384),(範圍>>5)&7 以及(63 – (概率>>9)) (即(32767 – P)>>9)被用於查閱資料表查找。所導出的值係RangeZero,並且RangeOne係從(範圍–RangeZero)導出。查閱資料表 3. 針對具有( ( range Mid ) * ( Prob Mid ) 之一定概率之 rangeLPS 之 查閱資料表
查閱資料表亦可藉由使用(rangeMin) * (Prob Max)來獲取,如查閱資料表4所示。查閱資料表 4. 針對具有( rangeMin ) * ( Prob Max )之一定概率之 rangeLPS 之 查閱資料表
在一導出RangeOne(或者RangeZero)的實施例中,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,LPS的概率(以下簡稱為probLPS)可依據probLPS = (P >= 2k-1
) ? 2k
–1–P : P來計算。probIdx可藉由probLPS >> (k-n-1)來獲取,其中rangeLPS之查閱資料表具有2n
行。rangeIdx係以(範圍>>(8–m))- (256>>m)、((範圍–256)>>(8–m))或者(範圍>>(8–m))&(2m
–1)來獲取,其中rangeLPS查閱資料表具有2m
列。rangeLPS可依據rangeLPS = rangeLPS之查閱資料表[probIdx][rangeIdx]來計算。如果P等於或者大於2k-1
(即,P之第k-位元等於1),rangeOne與rangeZero可依據rangeOne=範圍–rangeLPS以及rangeZero = rangeLPS來分別計算。否則(即P小於2k-1
),rangeOne與rangeZero可依據rangeOne = rangeLPS以及rangeZero =範圍–rangeLPS來分別計算。
在JCTVC-F254與VCEG-AZ07之例子中,k係15,probLPS、probIdx與rangeIdx可依據probLPS = (P >= 16384) ? 32767–P: P、probIdx = probLPS>>8以及rangeIdx = (range>>6)&3來分別計算。如果P等於或者大於16384,rangeOne與rangeZero可依據rangeOne=範圍–rangeLPS以及rangeZero= rangeLPS來分別計算。否則(即P小於16384),rangeOne與rangeZero可依據rangeOne = rangeLPS以及rangeZero =範圍–rangeLPS來分別計算。
rangeLPS之值可藉由計算(range Min) * (Prob Max)、(range Min) * (Prob Mid)、(range Min) * (Prob Min)、(range Mid) * (Prob Max)、(range Mid) * (Prob Mid)、(range Mid) * (Prob Min)、(range Max) * (Prob Max)、(range Max) * (Prob Mid)或(range Max) * (Prob Min)來獲取。rangeLPS之查閱資料表之輸入值可使用乘法器來獲取。
舉例來說,如果rangeLPS之查閱資料表係使用(range Min) * (Prob Max)來導出,其輸入值可藉由一等式來獲取。舉例來說,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,LPS的概率(以下簡稱為probLPS)可依據probLPS = (P >= 2k-1
) ? 2k
– 1 – P : P來計算。probIdx可藉由probLPS >> (k-n-1)來獲取。rangeIdx以(範圍>>(8–m))來獲取。rangeLPS可依據rangeLPS = ((probIdx+1) * rangeIdx)>> (k-n-m-6)、((probIdx) * rangeIdx + rangeIdx )>> (k-n-m-6)、(((probIdx) * rangeIdx)>> (k-n-m-6)) + ((rangeIdx)>> (k-n-m-6))或 (((probIdx + 偏移值1) * rangeIdx + 偏移值2) >> (k-n-m-6)) + 偏移值3來計算,其中偏移值1、偏移值2與偏移值3係整數。舉例來說,偏移值1與偏移值2可以是0,偏移值3可以是2、3或者4。
在一實施例中,k係15並且如果n係5以及m係3,probLPS、probIdx與rangeIdx可依據probLPS = (P >= 16384) ? 32767 – P : P、probIdx = probLPS>>9與rangeIdx = (range>>5)來分別計算。rangeLPS可依據rangeLPS = ((probIdx+1) * rangeIdx)>> 1、或((probIdx * rangeIdx)>> 1) + ( rangeIdx >> 1)、或((probIdx * rangeIdx)>> 1) + 4來記算。如果P等於或者大於16384,rangeOne與rangeZero可分別依據rangeOne = 範圍– rangeLPS與rangeZero = rangeLPS來計算。否則(即小於16384),rangeOne與rangeZero可依據rangeOne = rangeLPS與rangeZero = 範圍 – rangeLPS來分別計算。
rangeLPS之值可預先計算並且儲存在查閱資料表中。舉例來說,查閱資料表4係藉由針對查閱資料表使用probIdx與rangeIdx之“rangeLPS = ((probIdx+1) * rangeIdx)>> 1”之結果。查閱資料表5係藉由針對查閱資料表使用probIdx與rangeIdx之“rangeLPS = ((probIdx * rangeIdx)>> 1) + ( rangeIdx >> 1)”之結果。查閱資料表 5. 具有 (range Min) * (Prob Max) 之一定概率之 rangeLPS 之 查閱資料表
在另一實施例中,如果rangeLPS查閱資料表係藉由使用(range Min) * (Prob Max)來獲取,輸入值可藉由使用一等式來獲得。舉例來說,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx可依據probIdx = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) : (P>>(k-n-1)) + 1來計算,rangeIdx以(range>>(8–m))來導出。rangeLPS = (probIdx * rangeIdx)>> (k-n-m-6)。
在JCTVC-F254與VCEG-AZ07的例子中,k係15,並且如果n係5以及m係3,probIdx與rangeIdx可依據probIdx = (P >= 16384) ? 64 – (P>>9) : (P>>9)+1與rangeIdx = (range>>5)來分別計算。rangeLPS可依據rangeLPS = (probIdx * rangeIdx)>> 1來計算。如果P等於或者大於16384,rangeOne與rangeZero可依據rangeOne=範圍–rangeLPS以及rangeZero=rangeLPS來分別計算。否則(即P小於16384),rangeOne與rangeZero可依據rangeOne = rangeLPS以及rangeZero =範圍–rangeLPS來分別計算。
在另一實施例中,如果rangeLPS查閱資料表係藉由一等式來獲取,輸入值可藉由使用一等式來獲取。舉例來說,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx可依據probIdx = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) : max(1,(P>>(k-n-1)))或probIdx = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) - 1 : max(1,(P>>(k-n-1)))來計算,其中rangeLPS查閱資料表具有2n
行。rangeIdx以(範圍>>(8–m))來導出,其中rangeLPS查閱資料表具有2m
列。rangeLPS可依據rangeLPS = (probIdx * rangeIdx)>> (k-n-m-6)來計算,其中k可以係15、n可以係5,並且m可以係3。
在另一實施例中,如果rangeLPS查閱資料表係藉由(range mid) * (Prob Max)來獲取,輸入值可藉由使用一等式來獲得。舉例來說,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx可依據probIdx = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) : (P>>(k-n-1)) + 1來計算。rangeIdx以2*(range>>(8–m))+1來導出。rangeLPS可依據rangeLPS = (probIdx * rangeIdx)>> (k-n-m-6+1)來計算,其中k可以係15、n可以係5,並且m可以係3。
在另一實施例中,如果rangeLPS查閱資料表係藉由(range min) * (Prob mid)來獲取,輸入值可藉由使用一等式來獲得。舉例來說,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx’可依據probIdx’ = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) - 1 : (P>>(k-n-1))來計算。probIdx係依據probIdx = 2*probIdx’ + 1來計算。 rangeIdx以(range>>(8–m))來導出。rangeLPS可依據rangeLPS = (probIdx * rangeIdx)>> (k-n-m-6+1)來計算,其中k可以係15、n可以係5,並且m可以係3。我們可以使用一8-位元*(1<<m)*(1<<n)之查閱資料表 來儲存該預算計算之rangeLPS值。舉例來說,如果n係5並且m係4,在查閱資料表6中,藉由使用probIdx’ and (range>>(8–m))&( (1<<m)-1),8-位元*16*32之查閱資料表可用來獲取rangeLPS值。舉例來說,如果n係5並且m係3,在查閱資料表-7、藉由使用probIdx’ and (range>>(8–m))& ((1<<m)-1),一8-位元*8*32查閱資料表可用於獲取rangeLPS值。查閱資料表 6. 具有 (range min) * (Prob Mid) 之一定概率之 rangeLPS 之 查閱資料表 查閱資料表 7. 具有 (range min) * (Prob Mid) 之一定概率之 rangeLPS 之 查閱資料表
在另一實施例中,如果rangeLPS之查閱資料表係使用(range mid) * (Prob mid)來獲取,其輸入值可使用一等式來獲取。舉例來說,針對k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx’可依據probIdx’ = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) - 1 : (P>>(k-n-1))或probIdx’ = (P >= 2k-1
) ? (2k
– P – 1)>>(k-n-1) : (P>>(k-n-1))計算。probIdx依據probIdx = 2*probIdx’ + 1計算。rangeIdx以2*(range>>(8–m))+1來獲取。rangeLPS依據rangeLPS = (probIdx * rangeIdx)>> (k-n-m-6+2)來獲取,k可以係15,n係5並且m係3。舉例來說,probIdx’可依據probIdx’ = (P >= 16384) ? (32767 – P) >> 9 : P>> 9或probIdx’ = (P >= 16384) ? 63 – (P>>9) : (P>>9)來計算。probIdx可依據probIdx = 2*probIdx’ + 1來計算。rangeIdx以2*(range>>5)+1來獲取。rangeLPS可依據rangeLPS = (probIdx * rangeIdx)>> 3來獲取。可使用一8-位元*(1<<m)*(1<<n)之查閱資料表來儲存該預先計算之rangeLPS值。舉例來說,如果n係5並且m係3,在查閱資料表8中,一8-位元*8*32查閱資料表可用於藉由使用probIdx’與(range>>(8–m))&( (1<<m)-1)來獲取rangeLPS值。舉例來說,為了獲取RangeOne (或RangeZero),probIdx’可依據probIdx’=(P >= 2k-1
) ? (2k
– 1 – P) >> (k-n-1) : P>> (k-n-1)或者probIdx’=(P >= 2k-1
) ? 2n+1
–(P>>(k-n-1)) - 1 : (P>>(k-n-1))來計算。rangeIdx’以(range>>(8–m))–(256>>m)、((range–256)>>(8–m))或(range>>(8–m))&(2m
–1)來獲取。rangeLPS可依據rangeLPS=rangeLPS查閱資料表[probIdx’][rangeIdx’]來獲取。如果P等於或者大於2k-1
(即,P之第k位元等於1),rangeOne與rangeZero可依據rangeOne = range – rangeLPS與rangeZero = rangeLPS來分別計算。否則(即P小於2k-1
),rangeOne與rangeZero可分別依據rangeOne = rangeLPS與rangeZero = range – rangeLPS來計算。舉例來說,如果k係15並且如果n係5以及m係3,probIdx’可依據probIdx’ = (P >= 16384) ? (32767 – P) >> 9 : P>> 9或probIdx’ = (P >= 16384) ? 63 – (P>>9) : (P>>9)來計算。rangeIdx’以(range>>5)&7來獲取。rangeLPS可依據rangeLPS = rangeLPS查閱資料表[probIdx’][rangeIdx’]來計算。如果P等於或者大於16384,rangeOne與rangeZero可依據rangeOne = range – rangeLPS與rangeZero = rangeLPS來分別計算。否則,(即P小於16384),rangeOne與rangeZero可依據rangeOne = rangeLPS與rangeZero = range – rangeLPS來計算。查閱資料表 8. 具有 (range Mid) * (Prob Mid) 之一定概率之 rangeLPS 之 查閱資料表
通常而言,針對一k-位元概率(2k
> P > 0)以及一9-位元範圍,probIdx’可依據probIdx’ = (P >= 2k-1
) ? 2n+1
– (P>>(k-n-1)) - 1 : (P>>(k-n-1))來計算。probIdx可依據probIdx = a*probIdx’ + b來計算。rangeIdx係以c*(range>>(8–m))+d來獲取。rangeLPS可依據 rangeLPS = ((probIdx * rangeIdx + e)>> (k-n-m-6))/a/c + f來計算。a、b、c、d、e、f係預先定義整數值或者已獲取值,k可係15、n可係5、m可係3。
對於上述通常情形,如果f係0(即不增加偏移),提出一些方式來避免所獲取的rangeLPS之值過小。在一方法中,使用了裁切(clip)。如果rangeLPS小於一閾值,rangeLPS值設定為該閾值。該閾值可以係2、3或4。在另一方法中,rangeLPS係一具有一數值之“位元運算子 (bit-wise or) ”。該數值可以係2、3或4。舉例來說,rangeLPS = (rangeLPS |數值),或者rangeLPS = (rangeLPS OR 數值).
舉例來說,a與c等於1,b、c、d與e等於0,f等于4。如果使用16-位元概率(216
> P > 0)與9-位元範圍,n係5,m係3,並且probIdx = (P >= 16384) ? 63 – (P>>9) : (P>>9)。rangeIdx以(range>>5)來獲取。rangeLPS = ((probIdx * rangeIdx)>> 1) + 4。可使用一8-位元*(1<<m)*(1<<n)查閱資料表來儲存該預先計算之rangeLPS值。舉例來說,如果n係5並且m係3,在查閱資料表9中,可使用一8-位元*8*32查閱資料表來獲取rangeLPS值。
在另一實施例中,如果16-位元概率(216
> P > 0)與9-位元範圍,n係5,m係3,並且probIdx = (P >= 16384) ? 63 – (P>>9) : (P>>9)。rangeIdx以(range>>5)來獲取。The rangeLPS = ((probIdx * rangeIdx)>> 1) | 4。可使用一8-位元*(1<<m)*(1<<n)查閱資料表來儲存該預先計算之rangeLPS值。在另一實施例中,如果((probIdx * rangeIdx)>> 1) < 4,rangeLPS設置為等於4。否則,rangeLPS設置為等於((probIdx * rangeIdx)>> 1)。查閱資料表 9. 具有 ((probIdx * rangeIdx)>> 1) + 4 之一定概率之 rangeLPS 之 查閱資料表
針對已獲取之rangeLPS,其數值將以一閾值來裁切。該閾值可為一固定值、一預先定義值、一信令值(在序列/圖像/片段/切片-等級發信)、或對應至該當前範圍(或範圍索引)或者當前概率(或概率索引、LPS概率、LPS概率索引)之一適應性數值。在一舉例中,該閾值等於在該範圍索引-128的最小範圍、或該範圍索引-2q-2的最小範圍,其中q係用於該當前範圍之位元。舉例來說,如果使用9-位元並且rangeIdx係以(range>>5)來獲取,在該rangeIdx之最小範圍係等於(rangeIdx<<5)。該閾值等於(rangeIdx<<5)–128。如果該rangeLPS大於該閾值,rangeLPS設定為等於該閾值;否則,該rangeLPS不改變。查閱資料表10表示該修正的查閱資料表8,該查閱資料表8中考量到了最大reangeLPS約束。在另一個實施例中,該閾值等於當前範圍–128或者當前範圍–2q-2,其中q係用於當前範圍之位元數。舉例來說,如果使用一9-位元範圍,該閾值等於範圍–128,如果rangeLPS大於該閾值,rangeLPS設定為等於該閾值;否則,rangeLPS不變。查閱資料表 10. 具有 (range Mid) * (Prob Mid) 之一定概率之 rangeLPS 之 查閱資料表
需注意,由於2k
– 1在二進制表達中係完全為1,因此2k
– 1 – P針對最低有效位LSB(less significant bit)之k-1位元僅做逐位元取逆。在硬體實現中,可針對P之第k位元以及P之第k-1位元實施逐位元排除或者異或(XOR)來獲取probLPS或probIdx。
在上述實施例中,rangeLPS查閱資料表之尺寸可顯著減小。與在JCTVC-F254與VCEG-AZ07中所使用的資料查閱表相比較,當前應用可使用一較小查閱資料表,該尺寸係JCTVC-F254與VCEG-AZ07中所使用之資料查找表之1/72、1/144或1/288。此外,在rangeLPS查閱資料表之輸入值可使用乘法器來獲取,其藉由使用硬體描述語言(例如Verilog)而容易實現。從查閱資料表中獲取之值與藉由使用乘法器獲取之值相同。設計者可選擇合適的實施方案來獲取rangeLPS、rangeOne或rangeZero。該方式提供實施之設計靈活性。
MV
儲存準確性
在HEVC中,運動向量準確性(MV precision,以下簡稱為MV準確性)係四分之一像素(quarter-pel)解決方案。MV儲存在一16-位元緩衝器中,其定義MV範圍係-215
至215
– 1。有效MV範圍係在[-8192.00, 8191.75] (單位係像素)。
在下一代視訊編解碼中,優選較高MV準確性。MV準確性可以為1/8像素(1/8-pel)、1/16像素(1/16-pel)或者更優。如果MV位元-寬度係固定或者MV緩衝器尺寸係固定,有兩種方式來在不同的MV準確性下儲存MV。
A.
以最高準確性儲存所有的
MV
如果一系統具有不同的MV解析度,其以最高準確性來儲存所有的MV。低準確性MV係左移(left-shift)並且裁切(clip),以成為一高準確性MV。該裁切係限制最大有效MV範圍。舉例來說,如果MV位元-寬度係16位元並且準確性係1/16像素,有效MV範圍係在[-2048.00, 2047.09375](以像素為單位)。較低準確性MV左移至相同的準確性,在範圍[-2048.00, 2047.09375]內裁切並且儲存。在另一個實施例中,較低準確性MV係以低準確性在範圍[-2048.00, 2047.09375]內裁切並且左移至高準確性。
B.
以低準確性儲存所有的
MV
如果一系統具有不同的MV解析度,針對MV參考,其以最低準確性來儲存所有的MV。但在中間過程中,例如在運動補償、放射運動向量獲取(affine MV derivation),使用最高準確性MV來處理。在該過程之後,MV以低準確性儲存。
C.
以不同的準確性儲存
MV
針對每一MV,使用一MV解析度索引來代表MV之MV準確性。不同的MV解析度可具有不同的有效MV範圍。
D. 針對時域同位MV之具有低MV準確性之A/C方法
在該實施例中,方法A與/或C可用於在當前圖像中儲存MV。然而,MV以低準確性儲存在MV緩衝器中,用於時域同位MV參考。
MVP
獲取
在JVET-J0058 (Ye等., “Merge mode modification on top of Tencent’s software in response to CfP”,Joint Video Experts Team (JVET) of ITU-T SG 16 WP 3 and ISO/IEC JTC 1/SC 29/WG 11, 10th Meeting: San Diego, US, 10–20 Apr. 2018, Document: JVET-J0058)中,公開一種修正的混合候選獲取方法。不僅相鄰4x4MV用於混合候選列表獲取,並且4x4MV與其左側96像素以及上部96像素亦用於混合候選列表獲取,如第3圖所示。在第3圖中,相鄰區塊E係位於當前區塊310之上-左角,相鄰區塊B與C位於當前區塊310之上側以及上-右位置,並且相鄰區塊A與D位於當前區塊310之左側以及左-右位置。依據JVET-J0058,增加的混合候選係由擴展區塊B與C垂直使用320,由區塊A與D水平使用320330、以及由區塊E對角線使用340,其位於具有與當前區塊尺寸相同的網格尺寸之均分網格(block grid)。因此,需要儲存複數個MV至儲存器中,以實現混合候選列表獲取。
在本發明中,提出在不同的編碼單元(以下簡稱為CU)存取已編解碼的MV資訊,如第4圖所示。依據本發明,用於定位擴展的相鄰區塊之網格係基於包含該相鄰區塊之區塊尺寸。舉例來說,在編解碼區塊420中的相鄰區塊C以及相鄰區塊C1用於擴展混合候選。更進一步,區塊C1係包含在編解碼區塊422中,並且相鄰區塊C2係用於擴展混合候選。針對相鄰區塊D與B,兩者皆包含在編解碼區塊430中,並且區塊D1與B1用來作為擴展混合候選。更進一步,相鄰區塊D1與B1係包含在編解碼區塊432中,並且區塊D2與B2用作擴展混合候選。針對相鄰區塊E,區塊包含在編解碼區塊440中,並且在區塊440之上之區塊E1用作擴展混合候選。更進一步,區塊E1包含在編解碼區塊442中,並且區塊E2用作擴展混合候選。與JVET-J0058中所提出之方法相比較,所存取的區塊之位置並非係固定的位置。其基於已編解碼的CU尺寸來決定。舉例來說,在較上圖示中,區塊B、B’、與B’之間的距離係相同的,其等於CU高度。在較下圖示中,B、B1、與B2依賴於包含區塊B、B1與B2之複數個CU之CU高度。換言之,其沿一些方向或者一些規則提取不同CU之複數個MV資訊。所提取區塊之最大距離可控制在一範圍內。舉例來說,一、兩、三個CTU寬度以及/或者CTU高度,或者不超出當前CTU行(row)。
第5圖係依據本發明之實施例之CABAC之示例性流程圖。在該流程圖中所示之步驟,以及在本發明中所提及之其他流程,可在編碼器端以及/或者解碼器端之一或者複數個處理器(例如一或者複數個CPU)上執行之程序代碼來實現。在該流程圖中所示之步驟可基於硬體,例如安排來執行該流程圖中多個步驟之一或者複數個電子裝置或者處理器,來實現。依據本發明之實施例,上下文適應性算術編碼或者解碼係依據當前位元組之一二進制值之一當前概率以及與該算術編解碼器當前狀態相關之一當前範圍,應用於一當前編解碼符號之一二進制資料之當前位元組,其中該當前概率係依據在該當前編解碼符號之前之一或者複數個先前已編解碼符號來產生,在步驟510中。針對一視訊編解碼系統,該編解碼符號對應變換的以及量化的預測殘差、幀間預測區塊之運動向量以及多種編解碼參數(例如編解碼模式)。編解碼符號二值化以產生一二進位字串。CABAC編解碼可應用至該二進位字串。在步驟520,依據該當前位元組之該二進制值之該當前概率是否大於0.5(或者2k-1
,如果當前概率係以k-位元值表示)來獲取對應於一逆當前概率(inverted current probability)或者當前概率之LPS概率索引 。在本發明中公開了多種獲取LPS概率索引之方法。舉例來說,如果該當前位元組之該二進制值之該當前概率大於0.5,一LPS概率係設置為等於(1 – 該當前概率),否則,LPS概率設置為等於該當前概率;並且該LPS概率索引係基於指示包含該當前概率之一概率區間之一目標索引來決定。在步驟530中,獲取用於指示包含該當前範圍之一範圍區間之範圍索引。在步驟540中,使用一或者複數算術操作來獲取一LPS範圍,該算術操作包含計算一第一值與一第二值之乘法,該第一值與(2 * LPS概率索引+ 1)或者LPS概率索引相關,該第二值與(2 *範圍索引 + 1)或者範圍索引相關,或者使用一查閱資料表來獲取該LPS範圍,該查閱資料表包含表格內容,該表格內容對應於與用於編碼或者解碼該當前位元組之二進制值之與一組LPS概率索引以及一組範圍索引相關之LPS範圍之值,其中該範圍索引對應於該當前範圍右移mm之結果,並且mm係一非負整數,以及LPS範圍之每一值對應(2 *LPS概率索引+ 1)以及(2 * 範圍索引+ 1)之乘積,或者對應一偏移值以及一LPS概率索引以及一範圍索引之一乘積。
上述流程僅僅為提供依據本發明進行視頻編碼的舉例說明。本領域具有通常知識者可修正每一步驟、重新安排該些步驟、拆分一步驟、或者組合步驟來實現本發明,但不背離本發明的精神。在上述說明中,具體語法以及語義僅僅用來解釋說明本發明之示例。本領域具有通常知識者可使用等同的語法及語義來替換該些語法及語義,而不背離本發明的精神。
提供上述說明以使得本領據具有通常知識者能夠實現本發明之具體應用。本領據具有通常知識者可了解所描述之實施例之多種變型,上述通常原則也適用於其他實施例。因此,本發明之範圍並不局限於如上所述的舉例實施例,而應包含具有本發明精神以及創新性特點的最廣範圍。在上述具體說明中,多種具體細節僅僅提供來方便理解本發明。本領域具有通常知識者可了解本發明可具體實施。
本發明可使用多種硬體、軟體、或者兩者的組合來實現。舉例來說,本發明的實施例可以是整合至視頻壓縮芯片的一或多電路,或者是整合至視頻壓縮軟件的程序化代碼來實現本發明。本發明的實施例亦可以是程序化代碼,在數位訊號處理器(Digital Signal Processor,DSP)上執行,來執行上述發明。本發明亦涉及藉由計算機處理器、數位訊號處理器、微處理器、現場可編程門陣列(Field programmable gate array,FPGA)所執行之多種功能。該些處理器藉由執行依據本發明之實施例所定義的機器可讀軟體代碼或者韌體代碼能夠設置為依據本發明執行多種任務。軟體代碼或者韌體代碼能夠以不同的編碼語言或者不同的格式或者規格所開發。軟體代碼亦適應不同的平台。然而,依據本發明執行本發明之任務之軟體代碼以及其他設置代碼的不同代碼格式、規格以及語言皆不背離本發明之主旨精神。
本發明能夠以其他具體的形式實現而不背離本發明的精神與特點。所描述的實施例僅僅用來舉例說明,而並非是本發明的限制。本發明的範圍,由請求保護的範圍所指示,而並非僅限於上述實施例。與請求保護的範圍等同含義的變型皆包含在其範圍之內。
110‧‧‧二值化單元
120、160‧‧‧上下文模型單元
130‧‧‧二元算術編碼單元
140‧‧‧二元算術解碼單元
150‧‧‧去-二值化單元
210、220、230、240‧‧‧概率數值範圍
310‧‧‧當前區塊
320‧‧‧垂直使用
330‧‧‧水平使用
340‧‧‧對角線使用
420、422、430、432、440、442‧‧‧編解碼區塊
510-540‧‧‧步驟
第1(a)圖與第1(b)圖係上下文自適應二元算術編碼之編碼器與解碼器之基本結構。 第2圖係二元算術編解碼之內容之舉例說明,其中如概率尺度所示,初始時概率範圍(即range0
)係1並且下限(即low0
)為0。 第3圖係依據JVET-J0058之使用擴展相鄰區塊以混合候選獲取之舉例說明。 第4圖是根據本發明一實施例的使用擴展相鄰區塊以混合候選獲取之舉例說明。 第5圖是根據本發明一實施例的上下文參考自適應二元算術編解碼之示例性流程圖
Claims (27)
- 一種編解碼符號之熵編解碼方法,該方法包含: 依據一當前位元組之一二進制值之一當前概率以及與上下文自適應算術編碼或解碼之一當前狀態相關之一當前範圍,應用該上下文自適應算術編碼或者解碼至一當前編解碼符號之一二進制資料之該當前位元組,其中該當前概率係依據在該當前編解碼符號之前之一或複數個已編解碼的符號來產生; 基於該當前位元組之該二進制值之該當前概率是否大於0.5,獲取對應於一逆當前概率或者該當前概率之一最小概率符號概率索引; 獲取用於標識包含該當前範圍之一範圍區間之範圍索引;以及 使用一或者複數個算術操作來獲取一LPS範圍,該算術操作包含計算一第一值與一第二值之乘積,該第一值與(2 * 該最小概率符號概率索引+ 1)或者該最小概率符號概率索引相關,該第二值與(2 *該範圍索引 + 1)或者該範圍索引相關,或者使用一查閱資料表來獲取該最小概率符號範圍,該查閱資料表包含表格內容,該表格內容對應於最小概率符號範圍之值,該最小概率符號範圍之值與用於編碼或者解碼該當前位元組之一二進制值之與一組最小概率符號概率索引以及一組範圍索引相關,其中該範圍索引對應於該當前範圍右移mm之結果,並且mm係一非負整數,以及最小概率符號範圍之每一值對應(2 *一最小概率符號概率索引+ 1)以及(2 *一範圍索引+ 1)之乘積,或者對應一偏移值以及一最小概率符號概率索引與一範圍索引之一乘積。
- 如申請專利範圍第1項所述之方法,其中當該當前位元組之該二進制值之該當前概率大於0.5時,一最小概率符號概率係設置為等於(1–該當前概率),否則該最小概率符號概率設置為等於該當前概率;並且該最小概率符號概率索引係基於指示包含該當前概率之一概率區間之一目標索引來決定。
- 如申請專利範圍第1項所述之方法,其中當該當前位元組之該二進制值之該當前概率大於2k – 1 或者大於或等於2k – 1 ,一最小概率符號概率係設置為等於(2k – 1 – 該當前概率)以及該最小概率符號概率索引係設置為等於(2n+1 – 1)減去該當前概率右移(k-n-1)位元之一結果;否則該最小概率符號概率係設置為等於該當前概率並且該最小概率符號概率索引係設置為等於該當前概率右移(k-n-1)位元之結果;並且其中該當前概率係由k-位元值代表,n與k係正整數。
- 如申請專利範圍第3項所述之方法,其中k等於15,n等於5。
- 如申請專利範圍第3項所述之方法,其中該最小概率符號範圍係藉由(2 *該最小概率符號概率索引+ 1)與(2 *該範圍索引+ 1)相乘而獲取之一乘積、並且將該乘積右移x位元而獲取,其中x係一正整數。
- 如申請專利範圍第5項所述之方法,其中x等於3。
- 如申請專利範圍第3項所述之方法,其中該最小概率符號範圍係藉由該最小概率符號概率索引與該範圍索引相乘而獲取之一乘積、並且將該乘積右移x位元加上一偏移值而獲取,其中x係一正整數,該偏移值係一整數。
- 如申請專利範圍第7項所述之方法,其中x等於1,並且該偏移值等於2、3或4。
- 如申請專利範圍第1項所述之方法,其中該查閱資料表對應於一二維查閱資料表,該二維資料查閱表在第一維度上具有最小概率符號概率索引作為一第一查閱資料表索引,以及在第二維度上具有一裁切的範圍索引作為一第二查閱資料表索引,其中該裁切的範圍索引對應該範圍索引。
- 如申請專利範圍第9項所述之方法,其中該最小概率符號概率索引具有一從0至31之第一值,該裁切的範圍索引具有從0至7至一第二值,並且該最小概率符號範圍具有從大於或者等於0至小於或者等於255之一第三值範圍。
- 如申請專利範圍第10項所述之方法,其中該查閱資料表對應於:
- 如申請專利範圍第10項所述之方法,其中該查閱資料表對應:
- 如申請專利範圍第1項所述之方法,其中該最小概率符號概率設置為等於針對(當前概率 >> (k-1))的值與當前概率進行逐位元排除或異或之結果,或者該最小概率符號概率索引設置為等於針對(當前概率 >> (k-1))的值與(當前概率 >> (k-n-1))的值進行逐位元排除或異或之結果;以及其中該當前概率係由k-位元值來表示,n與k係正整數。
- 如申請專利範圍第1項所述之方法,其中進一步包含:從該當前範圍獲取針對該當前位元組分別具有1的值與0的值的一1的範圍的值與一0的範圍的值,其中如果該當前位元組之該二進制值之該當前概率大於0.5或者大於等於0.5,該1的範圍的值設定為(該當前範圍–該最小概率符號範圍),並且該0的範圍設定為該最小概率符號範圍;否則該0的範圍設定為(該當前範圍– 該最小概率符號範圍)並且該1的範圍設定為該最小概率符號範圍。
- 一種一圖像之熵編解碼裝置或者視訊編解碼或者解碼器,該熵編解碼裝置包含: 依據一當前位元組之一二進制值之一當前概率以及與上下文自適應算術編碼或解碼之一當前狀態相關之一當前範圍,應用該上下文自適應算術編碼或者解碼至一當前編解碼符號之一二進制資料之該當前位元組,其中該當前概率係依據在該當前編解碼符號之前之一或複數個已編解碼的符號來產生; 基於該當前位元組之該二進制值之該當前概率是否大於0.5,獲取對應於一逆當前概率或者該當前概率之一最小概率符號概率索引; 獲取用於標識包含該當前範圍之一範圍區間之範圍索引;以及 使用一或者複數個算術操作來獲取一LPS範圍,該算術操作包含計算一第一值與一第二值之乘積,該第一值與(2 * 該最小概率符號概率索引+ 1)或者該最小概率符號概率索引相關,該第二值與(2 *該範圍索引 + 1)或者該範圍索引相關,或者使用一查閱資料表來獲取該最小概率符號範圍,該查閱資料表包含表格內容,該表格內容對應於最小概率符號範圍之值,該最小概率符號範圍之值與用於編碼或者解碼該當前位元組之一二進制值之與一組最小概率符號概率索引以及一組範圍索引相關,其中該範圍索引對應於該當前範圍右移mm之結果,並且mm係一非負整數,以及最小概率符號範圍之每一值對應(2 *一最小概率符號概率索引+ 1)以及(2 *一範圍索引+ 1)之乘積,或者對應一偏移值以及一最小概率符號概率索引與一範圍索引之一乘積。
- 如申請專利範圍第15項所述之熵編解碼裝置,其中,當該當前位元組之該二進制值之該當前概率大於0.5,一最小概率符號概率係設置為等於(1 –該當前概率),否則該最小概率符號概率設置為等於該當前概率;並且該最小概率符號概率索引係基於指示包含該當前概率之一概率區間之一目標索引來決定。
- 如申請專利範圍第15項所述之熵編解碼裝置,其中當該當前位元組之該二進制值之該當前概率大於2k–1或者大於或等於2k–1,一最小概率符號概率係設置為等於(2k – 1 – 該當前概率)以及該最小概率符號概率索引係設置為等於(2n+1 – 1)減去該當前概率右移(k-n-1)位元之一結果;否則該最小概率符號概率係設置為等於該當前概率並且該最小概率符號概率索引係設置為等於該當前概率右移(k-n-1)位元之結果;並且其中該當前概率係由k-位元值代表,n與k係正整數。
- 如申請專利範圍第17項所述之熵編解碼裝置,其中,k等於15,n等於5。
- 如申請專利範圍第18項所述之熵編解碼裝置,其中,該最小概率符號範圍係藉由(2 *該最小概率符號概率索引+ 1)與(2 *該範圍索引+ 1)相乘而獲取之一乘積、並且將該乘積右移x位元而獲取,其中x係一正整數。
- 如申請專利範圍第19項所述之熵編解碼裝置,其中,x等於3。
- 如申請專利範圍第17項所述之熵編解碼裝置,其中,該最小概率符號範圍係藉由該最小概率符號概率索引與該範圍索引相乘而獲取之一乘積、並且將該乘積右移x位元加上一偏移值而獲取,其中x係一正整數,該偏移值係一整數。
- 如申請專利範圍第21項所述之熵編解碼裝置,其中,x等於1,並且該偏移值等於2、3或4。
- 如申請專利範圍第15項所述之熵編解碼裝置,其中,該查閱資料表對應於一二維查閱資料表,該二維資料查閱表在第一維度上具有最小概率符號概率索引作為一第一查閱資料表索引,以及在第二維度上具有一裁切的範圍索引作為一第二查閱資料表索引,其中該裁切的範圍索引對應該範圍索引。
- 如申請專利範圍第23項所述之熵編解碼裝置,其中,該最小概率符號概率索引具有一從0至31之第一值,該裁切的範圍索引具有從0至7至一第二值,並且該最小概率符號範圍具有從大於或者等於0至小於或者等於255之一第三值範圍。
- 如申請專利範圍第15項所述之熵編解碼裝置,其中,該最小概率符號概率設置為等於針對(當前概率 >> (k-1))的值與當前概率進行逐位元排除或異或之結果,或者該最小概率符號概率索引設置為等於針對(當前概率 >> (k-1))的值與(當前概率 >> (k-n-1))的值進行逐位元排除或異或之結果;以及其中該當前概率係由k-位元值來表示,n與k係正整數。
- 如申請專利範圍第15項所述之熵編解碼裝置,其中進一步包含:從該當前範圍獲取針對該當前位元組分別具有1的值與0的值的一1的範圍的值與一0的範圍的值,其中如果該當前位元組之該二進制值之該當前概率大於0.5或者大於等於0.5,該1的範圍的值設定為(該當前範圍–該最小概率符號範圍),並且該0的範圍設定為該最小概率符號範圍;否則該0的範圍設定為(該當前範圍– 該最小概率符號範圍)並且該1的範圍設定為該最小概率符號範圍。
- 一種非暫態計算機可讀介質,儲存程序指令使得一裝置之一處理電路來執行視訊編解碼方法,該方法包含:依據一當前位元組之一二進制值之一當前概率以及與上下文自適應算術編碼或解碼之一當前狀態相關之一當前範圍,應用該上下文自適應算術編碼或者解碼至一當前編解碼符號之一二進制資料之該當前位元組,其中該當前概率係依據在該當前編解碼符號之前之一或複數個已編解碼的符號來產生; 基於該當前位元組之該二進制值之該當前概率是否大於0.5,獲取對應於一逆當前概率或者該當前概率之一最小概率符號概率索引; 獲取用於標識包含該當前範圍之一範圍區間之範圍索引;以及 使用一或者複數個算術操作來獲取一LPS範圍,該算術操作包含計算一第一值與一第二值之乘積,該第一值與(2 * 該最小概率符號概率索引+ 1)或者該最小概率符號概率索引相關,該第二值與(2 *該範圍索引 + 1)或者該範圍索引相關,或者使用一查閱資料表來獲取該最小概率符號範圍,該查閱資料表包含表格內容,該表格內容對應於最小概率符號範圍之值,該最小概率符號範圍之值與用於編碼或者解碼該當前位元組之一二進制值之與一組最小概率符號概率索引以及一組範圍索引相關,其中該範圍索引對應於該當前範圍右移mm之結果,並且mm係一非負整數,以及最小概率符號範圍之每一值對應(2 *一最小概率符號概率索引+ 1)以及(2 *一範圍索引+ 1)之乘積,或者對應一偏移值以及一最小概率符號概率索引與一範圍索引之一乘積。
Applications Claiming Priority (10)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201762532389P | 2017-07-14 | 2017-07-14 | |
US62/532,389 | 2017-07-14 | ||
US201862670614P | 2018-05-11 | 2018-05-11 | |
US62/670,614 | 2018-05-11 | ||
US201862678343P | 2018-05-31 | 2018-05-31 | |
US62/678,343 | 2018-05-31 | ||
US201862693497P | 2018-07-03 | 2018-07-03 | |
US62/693,497 | 2018-07-03 | ||
WOPCT/CN2018/095419 | 2018-07-12 | ||
PCT/CN2018/095419 WO2019011292A1 (en) | 2017-07-14 | 2018-07-12 | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201909633A true TW201909633A (zh) | 2019-03-01 |
TWI694712B TWI694712B (zh) | 2020-05-21 |
Family
ID=65001091
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107124272A TWI694712B (zh) | 2017-07-14 | 2018-07-13 | 編解碼符號之熵編解碼方法與裝置 |
Country Status (6)
Country | Link |
---|---|
US (2) | US11006117B2 (zh) |
EP (1) | EP3652937A4 (zh) |
CN (1) | CN110915213B (zh) |
CA (1) | CA3069635C (zh) |
TW (1) | TWI694712B (zh) |
WO (1) | WO2019011292A1 (zh) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10757412B2 (en) * | 2017-01-03 | 2020-08-25 | Avago Technologies International Sales Pte. Limited | Architecture flexible binary arithmetic coding system |
WO2019011292A1 (en) * | 2017-07-14 | 2019-01-17 | Mediatek Inc. | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
CN116347099A (zh) | 2018-06-19 | 2023-06-27 | 北京字节跳动网络技术有限公司 | 没有运动矢量预测截断的选择的运动矢量差精度 |
KR20240005178A (ko) | 2018-09-19 | 2024-01-11 | 베이징 바이트댄스 네트워크 테크놀로지 컴퍼니, 리미티드 | 적응적 움직임 벡터 해상도를 가지는 어파인 모드에 대한 구문 재사용 |
CN118118659A (zh) * | 2019-01-31 | 2024-05-31 | 北京字节跳动网络技术有限公司 | 记录仿射模式自适应运动矢量分辨率的上下文 |
CN113366851A (zh) | 2019-01-31 | 2021-09-07 | 北京字节跳动网络技术有限公司 | 对称运动矢量差编解码模式的快速算法 |
US11350108B2 (en) * | 2019-03-18 | 2022-05-31 | Tencent America LLC | Affine inter prediction refinement with optical flow |
CN113489979A (zh) * | 2021-05-28 | 2021-10-08 | 杭州博雅鸿图视频技术有限公司 | 熵编码方法、装置、电子设备及存储介质 |
US20230254489A1 (en) * | 2022-02-07 | 2023-08-10 | Tencent America LLC | Adaptive context-based adaptive binary arithmetic coding (cabac) initial state selection from coded pictures |
Family Cites Families (19)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JPH11112355A (ja) * | 1997-10-08 | 1999-04-23 | Canon Inc | 符号化及び復号方法とその装置、それを適用した画像処理装置 |
US6680366B1 (en) | 1999-02-22 | 2004-01-20 | Institut Pasteur | Nucleotide sequence encoding a modulator of NF-κB |
US7379608B2 (en) * | 2003-12-04 | 2008-05-27 | Fraunhofer-Gesellschaft Zur Foerderung Der Angewandten Forschung, E.V. | Arithmetic coding for transforming video and picture data units |
US8184710B2 (en) | 2007-02-21 | 2012-05-22 | Microsoft Corporation | Adaptive truncation of transform coefficient data in a transform-based digital media codec |
JP5278827B2 (ja) | 2007-09-06 | 2013-09-04 | 日本電気株式会社 | 映像符号化装置、映像復号装置、映像符号化方法、映像復号方法、映像符号化あるいは復号プログラム |
CN102223149A (zh) | 2010-04-14 | 2011-10-19 | 朱洪波 | 基于概率聚合的算术编码器 |
CN105007486B (zh) | 2011-03-07 | 2018-06-05 | 杜比国际公司 | 编码和解码图像的方法、编码和解码设备 |
US9871537B2 (en) | 2011-10-27 | 2018-01-16 | Qualcomm Incorporated | Mapping states in binary arithmetic coder for video coding |
US20140092985A1 (en) | 2012-09-28 | 2014-04-03 | Sharp Laboratories Of America, Inc. | Content initialization for enhancement layer coding |
CN103227924B (zh) | 2013-05-07 | 2016-08-03 | 北京大学 | 一种算术编码器及编码方法 |
US9425822B2 (en) | 2014-08-05 | 2016-08-23 | Broadcom Corporation | Simplified range and context update for multimedia context-adaptive binary arithmetic coding design |
CN104394418B (zh) | 2014-09-23 | 2018-06-05 | 清华大学 | 一种视频数据编码、解码的方法及装置 |
US10225555B2 (en) | 2015-05-19 | 2019-03-05 | Mediatek Inc. | Method and apparatus for multi-table based context adaptive binary arithmetic coding |
US10334248B2 (en) | 2015-05-29 | 2019-06-25 | Qualcomm Incorporated | Coding data using an enhanced context-adaptive binary arithmetic coding (CABAC) design |
US10368072B2 (en) * | 2015-05-29 | 2019-07-30 | Qualcomm Incorporated | Advanced arithmetic coder |
CN104918049A (zh) * | 2015-06-03 | 2015-09-16 | 复旦大学 | 适用于hevc标准的二进制算术编码模块 |
US11265561B2 (en) | 2017-01-06 | 2022-03-01 | Mediatek Inc. | Method and apparatus for range derivation in context adaptive binary arithmetic coding |
US10499074B2 (en) * | 2017-01-09 | 2019-12-03 | Qualcomm Incorporated | Binary arithmetic coding with small tables or short-operand multiplications for video coding |
WO2019011292A1 (en) * | 2017-07-14 | 2019-01-17 | Mediatek Inc. | METHOD AND APPARATUS FOR RANGE CALCULATION IN CONTEXT-ADAPTIVE BITARY ARITHMETIC ENCODING SYSTEM |
-
2018
- 2018-07-12 WO PCT/CN2018/095419 patent/WO2019011292A1/en unknown
- 2018-07-12 US US16/629,440 patent/US11006117B2/en active Active
- 2018-07-12 CA CA3069635A patent/CA3069635C/en active Active
- 2018-07-12 CN CN201880047646.1A patent/CN110915213B/zh active Active
- 2018-07-12 EP EP18831707.7A patent/EP3652937A4/en active Pending
- 2018-07-13 TW TW107124272A patent/TWI694712B/zh active
-
2021
- 2021-05-11 US US17/316,930 patent/US11425386B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
EP3652937A1 (en) | 2020-05-20 |
CN110915213A (zh) | 2020-03-24 |
WO2019011292A1 (en) | 2019-01-17 |
CA3069635A1 (en) | 2019-01-17 |
CN110915213B (zh) | 2021-11-02 |
US20210266555A1 (en) | 2021-08-26 |
TWI694712B (zh) | 2020-05-21 |
CA3069635C (en) | 2022-06-14 |
US11425386B2 (en) | 2022-08-23 |
US20200186802A1 (en) | 2020-06-11 |
EP3652937A4 (en) | 2021-01-13 |
US11006117B2 (en) | 2021-05-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI694712B (zh) | 編解碼符號之熵編解碼方法與裝置 | |
JP7134200B2 (ja) | デジタルイメージ再圧縮 | |
US10742984B2 (en) | Method and apparatus for multi-table based context adaptive binary arithmetic coding | |
CN108028942B (zh) | 像素预测方法、编码方法、解码方法及其装置、存储介质 | |
RU2708967C2 (ru) | Кодирование коэффициентов преобразования | |
US11265561B2 (en) | Method and apparatus for range derivation in context adaptive binary arithmetic coding | |
TW201838412A (zh) | 用於視訊寫碼之低複雜度符號預測 | |
US20060262982A1 (en) | Image encoding apparatus and method, computer program, and computer-readable storage medium | |
KR20170135940A (ko) | 비디오 코딩에서의 팔레트 모드 콘텍스트 코딩 및 이진화를 위한 방법 | |
JP2014523186A (ja) | エントロピー符号化/復号化方法及びその装置 | |
US11259045B2 (en) | Image encoding device, image decoding device and program | |
JP6698142B2 (ja) | ビデオデータを符号化するための方法及び装置 | |
CN110545437B (zh) | 系数编码、解码方法、电子设备及介质 | |
US11503299B2 (en) | Systems and methods for performing binary arithmetic coding in video coding | |
JP6719538B2 (ja) | ビデオデータを符号化するための方法及び装置 | |
JP2017228827A (ja) | イントラ予測器、画像符号化装置、画像復号装置およびプログラム | |
Kuroki et al. | Adaptive arithmetic coding for image prediction errors | |
JP2005039723A (ja) | 画像符号化装置及び画像符号化方法 |