交叉引用
本發(fā)明主張在2015年2月17日提出的申請?zhí)枮?2/117,106的美國臨時專利申請的優(yōu)先權(quán);主張在2015年2月24日提出的申請?zhí)枮?2/119,946的美國臨時專利申請的優(yōu)先權(quán);主張在2015年4月8日提出的申請?zhí)枮?2/144,520的美國臨時專利申請的優(yōu)先權(quán)。因此在全文中合并參考這些專利申請案。
本發(fā)明是有關(guān)于視頻數(shù)據(jù)的調(diào)色板編碼,特別是有關(guān)于視頻和圖像壓縮中的單色格式(monochromeformat)的視頻數(shù)據(jù)的調(diào)色板編碼。
背景技術(shù):
高效率視頻編碼(hevc)是近年來開發(fā)的新的編碼標(biāo)準(zhǔn)。在高效率視頻編碼(hevc)系統(tǒng)中,h.264/avc的固定大小的宏塊被稱為編碼單元(codingunit,以下簡稱為cu)的靈活塊代替。cu中的像素共享相同的編碼參數(shù),以提高編碼效率。cu可以以最大的cu(largestcu,lcu)開始,也被稱為hevc中的編碼樹單元(codedtreeunit,ctu)。除了編碼單元的概念,預(yù)測單元(predictionunit,pu)的概念也在hevc中引入。一旦完成了cu分層樹的分割,根據(jù)預(yù)測類型和pu分區(qū),每個葉cu進一步分為一個或多個預(yù)測單元。
伴隨著高效率視頻編碼(hevc)標(biāo)準(zhǔn)的開發(fā),開始hevc的擴展。hevc擴展包括屏幕內(nèi)容編碼(screencontentcoding,scc)。由于屏幕內(nèi)容的具體特點,編碼工具已被開發(fā)出來,并且在編碼效率方面取得了顯著的進步。其中,顏色索引編碼(又稱,基于主要顏色的編碼)技術(shù)利用調(diào)色板(主要顏色)的索引表示像素塊,并通過利用空間冗余來編碼調(diào)色板和索引。雖然可能的顏色組合的總數(shù)是巨大的,但是對于典型的屏幕內(nèi)容,圖片區(qū)域中的顏色數(shù)量通常非常有限。因此,顏色索引編碼對于屏幕內(nèi)容材料變得非常有效。有關(guān)的關(guān)鍵顏色索引編碼技術(shù)簡要回顧如下。
基于主要顏色的屏幕內(nèi)容編碼
基于主要顏色的屏幕內(nèi)容編碼公開在jctvc-o0108中(guo等人,“rce4:test1.major-color-basedscreencontentcoding”,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,16thmeeting:sanjose,ca,usa,jan.9-17,2014,document:jctvc-p0108)。以cu為基礎(chǔ)進行基于主要顏色的屏幕內(nèi)容編碼。編碼過程如下:
選擇主要顏色
基于算法的簡單但有效的直方圖可用于分類像素。具體來說,直方圖中最顯著的l個峰值被選為主要顏色,接近主要顏色的像素值將被量化為主要顏色。不屬于任何主要顏色集合的其他像素是轉(zhuǎn)義像素(escapepixels),這也將在編碼之前進行量化。對于無損編碼,不使用量化處理。對于每個像素,分配顏色索引以指示其屬于哪個顏色集。當(dāng)術(shù)語不會引起任何混淆時,為求方便顏色索引也可被稱為索引。
如果使用l個主要顏色,則主要顏色0至主要顏色l-1的值被發(fā)送以用于l個主要顏色集,以及主要顏色n的值被發(fā)送以用于轉(zhuǎn)義像素集。
編碼顏色索引
在分類之后,塊的像素可以根據(jù)所選擇的主要顏色集被轉(zhuǎn)換成顏色索引。一種預(yù)測編碼方法應(yīng)用于索引,其中像素線可以通過三種不同的模式來預(yù)測,包括水平模式(即復(fù)制索引模式(copyindexmode)),垂直模式(即復(fù)制上方模式(copyabovemode))和正常模式(即,轉(zhuǎn)義模式(escapemode))。
復(fù)制索引模式
在復(fù)制索引模式中,從第一像素開始,從第一像素復(fù)制一個或多個連續(xù)的索引。發(fā)送第一個像素的索引。
復(fù)制上方模式
在該模式中,從上方的像素行復(fù)制一個或多個連續(xù)索引。
轉(zhuǎn)義模式
當(dāng)遇到轉(zhuǎn)義像素(由主要顏色集中的最大索引發(fā)送)時,其對應(yīng)的像素值在索引之后被編碼。cu中可能有超過1個轉(zhuǎn)義像素和不同的顏色值。對于不同的轉(zhuǎn)義像素位置,轉(zhuǎn)義像素的像素值可能不同。
調(diào)色板模式編碼
jctvc-p0198中公開了一種基于調(diào)色板的編碼技術(shù)(guo等人,“rce4:resultsoftest2onpalettemodeforscreencontentcoding”,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,16thmeeting:sanjose,ca,usa,jan.9-17,2014,document:jctvc-p0198)。基于調(diào)色板的編碼是以cu為基礎(chǔ)進行的。編碼過程如下:
調(diào)色板的傳輸:調(diào)色板大小首先被傳送,隨后是調(diào)色板元素。最大調(diào)色板尺寸設(shè)置為24。
像素值的傳輸:以光柵掃描順序?qū)u中的像素進行編碼。對于每個位置,首先發(fā)送標(biāo)志以指示是否正在使用“復(fù)制模式(runmode)”(即,本公開中的“復(fù)制索引模式(copy-indexmode)”)或“復(fù)制上方模式”。
“復(fù)制模式”:在“復(fù)制模式”(即,本公開中的“復(fù)制索引模式”)中,首先發(fā)出調(diào)色板索引,之后是“palette_run”(例如,m)。由于它們具有被發(fā)送的相同的調(diào)色板索引,因此不需要為當(dāng)前位置和隨后m個位置發(fā)送進一步的信息。如果顏色空間對應(yīng)于yuv,調(diào)色板索引(例如,i)由所有三個顏色分量共享,這意味著重建像素值為(y,u,v)=(調(diào)色板y[i],調(diào)色板u[i],調(diào)色板v[i])。
“復(fù)制上方模式”:在“復(fù)制上方模式”中,值“copy_run”(例如,n)被發(fā)送以指示對于以下n個位置(包括當(dāng)前的一個),調(diào)色板索引等于到上方行中相同位置處像素的調(diào)色板索引。
殘差的傳輸:所發(fā)送的調(diào)色板索引被轉(zhuǎn)換回到像素值并用作預(yù)測。殘差信息使用hevc殘差編碼傳輸,并被添加到重建的預(yù)測中。
自先前行復(fù)制
在jctvc-r0202中,揭示另一索引編碼模式,也稱為“自先前行復(fù)制(copyfrompreviousrow)”(zou等人,“non-scce3:copyfrompreviousrowmodeforpalettecoding”,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,18thmeeting:sapporo,japan,june30–july9,2014,document:jctvc-r0202)。該方法能夠復(fù)制自當(dāng)前編碼單元上方行之上的先前已編碼行。為了實現(xiàn)更好的編碼效率,根據(jù)jctvc-r0202,所有先前的編碼行都可以作為參考。因此,該模式稱為“自先前行復(fù)制”。此模式將添加到可用的調(diào)色板模式候選列表中。當(dāng)當(dāng)前字符串選擇“自先前行復(fù)制”模式時,編碼行索引信息。行索引使用截斷二進制碼字(truncatedbinarycodeword)進行編碼。基本上,為靠近當(dāng)前行的行設(shè)計了較短的碼字。與其他模式類似,匹配長度被編碼在比特流中。
在jctvc-o0108和jctvc-p0198中,公開了類似的基于調(diào)色板的編碼方法。這些引用對相關(guān)參數(shù)使用略有不同的術(shù)語。在本公開中,jctvc-o0108中的術(shù)語“調(diào)色板”和jctvc-p0198中的術(shù)語“主要顏色組”被稱為“主要顏色表”。jctvc-o0108中的術(shù)語“調(diào)色板索引”和jctvc-p0198中的術(shù)語“顏色索引”在本公開中被稱為“顏色索引”。與當(dāng)前編碼單元相關(guān)的顏色索引被稱為“索引圖”。
對于索引圖中的索引的復(fù)制,需要發(fā)送幾個元素,包括:
1)復(fù)制類型:是復(fù)制上方(copyaboverun)或復(fù)制索引(copyindexrun)。
2)調(diào)色板索引:在復(fù)制索引復(fù)制中,發(fā)送用于此復(fù)制的索引。
3)復(fù)制長度:復(fù)制上方和復(fù)制索引類型的復(fù)制長度。
4)轉(zhuǎn)義像素:如果復(fù)制過程中有n(n>=1)個轉(zhuǎn)義像素,則需要n個像素值被發(fā)送以用于這n個轉(zhuǎn)義像素。
在jctvc-t0065中(karczewicz等人,nonce1:groupingpaletteindicesatfront,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,20thmeeting:geneva,ch,10–18feb.2015,document:jctvc-t0065),公開了一種語法信令,其中所有調(diào)色板索引被分組在一起。調(diào)色板索引的數(shù)量首先被發(fā)送,隨后是調(diào)色板索引。
hevc屏幕內(nèi)容編碼規(guī)范中的調(diào)色板索引復(fù)制類型和復(fù)制長度的編碼(joshi等人,highefficiencyvideocoding(hevc)screencontentcoding:draft2,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,19thmeeting:strasbourg,fr,17–24oct.2014,document:jctvc-s1005)如下:
表1
如表1所示,如注釋(1-1)和注釋(1-2)所示,調(diào)色板復(fù)制類型(即palette_run_type_flag[xc][yc])和調(diào)色板索引(即palette_index_idc)的語法元素被并入以用于每次出現(xiàn)。如表1中注釋(1-3)和注釋(1-4)所示,兩個語法元素palette_run_msb_id_plus1和palette_run_refinement_bits用于分別發(fā)送對應(yīng)于最高有效位(mostsignificantbit,msb)部分和精處理(refinement)部分的復(fù)制長度。
在屏幕內(nèi)容編碼(screencontentcoding,scc)開發(fā)過程中,已經(jīng)描述了各種視頻編碼工具,包括“幀內(nèi)圖像塊復(fù)制”(intrapictureblockcopy,intrabc)技術(shù)。intrabc技術(shù)首先在jctvc-m0350中被揭示(budagavi等人,ahg8:videocodingusingintramotioncompensation,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg1113thmeeting:incheon,kr,18–26apr.2013,document:jctvc-m0350)。根據(jù)jctvc-m0350的例子如圖1所示,其中使用幀內(nèi)運動補償(motioncompensation,mc)對當(dāng)前編碼單元(cu,110)進行編碼。預(yù)測塊(120)通過當(dāng)前編碼單元和位移矢量(112)而定位。在該示例中,搜索區(qū)域限于當(dāng)前編碼樹單元(codingtreeunit,ctu),左側(cè)ctu和左側(cè)第二個ctu。從已重建區(qū)域獲得預(yù)測塊。然后,對位移矢量(也稱為運動矢量(motionvector,mv)或塊矢量(blockvector,bv))和用于當(dāng)前編碼單元的殘差進行編碼。眾所周知,hevc采用ctu和cu塊結(jié)構(gòu)作為編碼視頻數(shù)據(jù)的基本單元。每張圖片被劃分為ctu,以及每個ctu被劃分為cu。在預(yù)測期間,每個cu可以被劃分為多個塊(稱為預(yù)測單元(predictionunits,pus)),用于執(zhí)行預(yù)測處理。
在jctvc-m0350中,在以下方面,intrabc與用于幀間預(yù)測的運動補償不同:
·對于intrabc,塊向量被限制為1維(即,水平或垂直),而inter預(yù)測使用2維運動估計。
·用于intrabc的二值化是固定長度,而幀間預(yù)測使用指數(shù)哥倫布碼(exponential-golomb)。
·intrabc引入了一個新的語法元素來發(fā)送塊向量是水平還是垂直。
基于jctvc-m0350,pang等人在non-rce3中做了一些修改(intramotioncompensationwith2-dmvs,jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,14thmeeting:vienna,at,25july–2aug.2013,document:jctvc-n0256)(在下文中稱為jctvc-n0256)。首先,intrabc擴展到支持2維運動向量,使得水平和垂直運動分量可以同時為0。這為intrabc提供了比原始方法更多的靈活性,其中運動向量被限制為嚴(yán)格的水平或垂直。
在jctvc-n0256中,公開了兩種塊向量編碼方法:
方法1-塊向量預(yù)測。選擇左側(cè)或上方塊向量作為塊向量預(yù)測子,并且對所得到的運動矢量差(motionvectordifference,bvd)進行編碼。一個標(biāo)志用于指示bvd是否為零。當(dāng)bvd不為零時,使用3階的指數(shù)哥倫布碼來編碼bvd的剩余絕對水平。另一標(biāo)志用于編碼符號。
·方法2:無塊向量預(yù)測。塊向量使用在hevc中用于bvd的指數(shù)哥倫布碼進行編碼。
jctvc-n0256中公開的另一個差異在于,二維intrabc進一步與管線友好地相結(jié)合:
1.不使用插值濾波器。
2.塊向量搜索區(qū)域被限制。兩個情況揭示如下:
a.搜索區(qū)域為當(dāng)前ctu和左側(cè)ctu,或者
b.搜索區(qū)域為當(dāng)前ctu和左側(cè)ctu的最右邊4列采樣。
在jctvc-n0256中提出的方法中,在hevcscc標(biāo)準(zhǔn)草案中已經(jīng)采用了2維intrabc,去除插值濾波器、以及搜索區(qū)域限制為當(dāng)前ctu和左ctu。
根據(jù)jctvc-r1005的解碼和解析過程簡要描述如下。
1.調(diào)色板的信令:
1.1首先發(fā)送“調(diào)色板共享標(biāo)志”,以指示調(diào)色板預(yù)測子用作當(dāng)前調(diào)色板。如果是,則跳過步驟1.2至步驟1.4中的以下過程。
1.2發(fā)送“重用標(biāo)志”,以指示調(diào)色板預(yù)測子中的哪一個元素用于當(dāng)前調(diào)色板中。
1.3發(fā)送“非預(yù)測元素數(shù)”,以指示當(dāng)前調(diào)色板中有多少元素不從調(diào)色板預(yù)測子而被預(yù)測。
1.4發(fā)送每個非預(yù)測元素的值。
2.發(fā)送顏色索引圖:
2.1塊中的像素可以以水平光柵掃描順序,垂直光柵順序,水平遍歷掃描順序和垂直遍歷順序進行編碼。
2.2對于每個位置,首先發(fā)送一個標(biāo)志,以指示使用“復(fù)制上方模式”和“新復(fù)制模式”之間的哪個預(yù)測模式。
2.3當(dāng)使用“復(fù)制上方模式”時,“復(fù)制(run)次數(shù)”跟隨上述標(biāo)志。對于復(fù)制次數(shù),索引與沿掃描順序的上方行索引相同
2.4當(dāng)使用“新復(fù)制模式”時,在該標(biāo)志之后發(fā)送“索引”。
2.4.1當(dāng)“索引”為“轉(zhuǎn)義”時,像素值本身被發(fā)送。
2.4.2當(dāng)“索引”在調(diào)色板表中時,發(fā)送“復(fù)制次數(shù)”。對于給定的復(fù)制次數(shù),其索引值與發(fā)送的索引值相同。
在現(xiàn)有的調(diào)色板編碼實踐中,調(diào)色板編碼總是應(yīng)用于具有諸如yuv或rgb的多顏色格式的底層視頻數(shù)據(jù)。沒有提到關(guān)于單色視頻數(shù)據(jù)的調(diào)色板編碼。期望開發(fā)用于單色視頻數(shù)據(jù)的調(diào)色板編碼技術(shù)。
技術(shù)實現(xiàn)要素:
根據(jù)本發(fā)明的實施方式,揭示了一種用于具有包括單色格式的顏色格式的視頻數(shù)據(jù)的調(diào)色板編碼的方法和裝置。在一個實施例中,系統(tǒng)確定視頻數(shù)據(jù)是單色還是非單色。如果視頻數(shù)據(jù)是單色的,那么對應(yīng)于一個或多個調(diào)色板編碼參數(shù)的一個或多個單分量值,在視頻比特流中被解析或被發(fā)送,以用于輸入單色視頻數(shù)據(jù)的單色分量。然后使用調(diào)色板編碼參數(shù)將調(diào)色板解碼應(yīng)用于輸入單色視頻數(shù)據(jù)的單顏色分量。如果視頻數(shù)據(jù)是非單色的,則對應(yīng)于一個或多個調(diào)色板編碼參數(shù)的一個或多個多分量值,在視頻比特流中被解析或被發(fā)送,以用于輸入非單色視頻數(shù)據(jù)的多個顏色分量的。使用調(diào)色板編碼參數(shù)將調(diào)色板解碼應(yīng)用于輸入非單色視頻數(shù)據(jù)的多顏色分量。顏色格式語法元素可以自視頻比特流而被解析或被發(fā)送于視頻比特流中,以識別視頻數(shù)據(jù)是單色還是非單色。
在一個示例中,調(diào)色板編碼參數(shù)對應(yīng)于調(diào)色板表的調(diào)色板條目。調(diào)色板條目可以在編碼單元(cu)中被解析或被發(fā)送。顏色格式語法元素可用于確定對應(yīng)的單分量值或?qū)?yīng)的多分量值是否被解析或被發(fā)送以用于每個調(diào)色板條目。顏色格式語法元素可以對應(yīng)于語法元素chroma_format_idc,從中導(dǎo)出顏色格式參數(shù)chromaarraytype并用于指示當(dāng)前視頻序列的顏色格式。此外,基于chromaarraytype,指示被發(fā)送以用于每一個調(diào)色板條目的顏色分量值的數(shù)目的變量被導(dǎo)出。如果chromaarraytype具有指示單色格式的值,則變量設(shè)置為1,如果chromaarraytype具有指示一個非單色格式的值,則變量設(shè)置為3。
在另一示例中,調(diào)色板編碼參數(shù)對應(yīng)于不屬于調(diào)色板表的像素的轉(zhuǎn)義值。每個轉(zhuǎn)義值可以從cu中被解析或在cu中被發(fā)送。顏色格式語法元素可以用于確定一個對應(yīng)的單分量值或一個對應(yīng)的多分量值是否被解析以用于每一個轉(zhuǎn)義值。
在另一示例中,調(diào)色板編碼參數(shù)對應(yīng)于用于編碼單元的調(diào)色板表的預(yù)測編碼的調(diào)色板預(yù)測子。調(diào)色板預(yù)測子可自圖像參數(shù)集(pictureparameterset,pps)或序列參數(shù)集(sequenceparameterset,sps)而被解析。顏色格式語法元素可對應(yīng)于從pps或sps中被解析或被發(fā)送的語法元素monochrome_palette_flag。指示被發(fā)送以用于每一個調(diào)色板條目的顏色分量值的數(shù)目的變量基于monochrome_palette_flag而被導(dǎo)出。若monochrome_palette_flag具有指示單色格式的值,則變量設(shè)置為1;若monoch_palette_flag具有指示非單色格式的值,則將變量設(shè)置為3。
附圖說明
圖1示出了用于屏幕內(nèi)容編碼(screencontentcoding,scc)的幀內(nèi)塊復(fù)制(intrablockcopy,intrabc)編碼的示例。
圖2示出了包含本發(fā)明實施例的用于調(diào)色板編碼的視頻解碼器的示例性流程圖。
圖3示出了包含本發(fā)明的實施例的用于調(diào)色板編碼的視頻編碼器的示例性流程圖。
具體實施方式
以下描述是實施本發(fā)明的最佳實施方式。這一描述是為了說明本發(fā)明的一般原理,而不應(yīng)被認(rèn)為是限制性的。本發(fā)明的范圍最好通過所附權(quán)利要求書來確定。
單色調(diào)色板編碼模式
當(dāng)視頻的顏色格式是單色(monochrome)時,在本公開中也稱為黑白顏色(monochromecolor),在每個像素位置中僅具有一個分量時,公開了用于發(fā)送單色調(diào)色板信息的各種語法表,以處理使用調(diào)色板編碼模式編碼的此種視頻。
實施例1:當(dāng)顏色格式為單色時,沒有調(diào)色板模式。
示例性語法表如表2所示。如表2所示,如果如注釋(2-1)所示顏色格式為單色(即,chromaarraytype=0),則如注釋(2-2)所示調(diào)色板標(biāo)志palette_mode_flag[x0][y0]將不會發(fā)送。
表2
如表3所示上述語法表可以被添加到編碼單元語法中。表4示出了對于單色視頻禁用調(diào)色板模式的另一個編碼單元語法表。然而,附加條件被添加至測試以用于允許調(diào)色板模式,其中,如注釋(4-1)所示,添加附加條件對應(yīng)于當(dāng)前亮度編碼塊的大小小于64(即,log2cbsize<6)。
表3
表4
實施例2:色度位置的填充。
對于單色視頻序列,亮度像素位置不具有其對應(yīng)的色度分量。為了利用基于調(diào)色板編碼的3個分量,每個像素位置的兩個色度位置被一個值所填充。在一個實施例中,圖像的所有色度像素位置使用單個值n,其中n可以是任何像素值。在解碼器處,在將基于調(diào)色板索引的3個分量的轉(zhuǎn)換回像素之后,丟棄兩個色度像素分量。
例如,發(fā)送調(diào)色板條目的語法不需要被改變以用于單色內(nèi)容,色度像素可以用0或其他固定值填充單色內(nèi)容。結(jié)合上述實施例的調(diào)色板條目的示例性語法表如表5所示。
表5
包括上述實施例的用于轉(zhuǎn)義像素的示例性語法表如表6所示。
表6
實施例3:不發(fā)送用于轉(zhuǎn)義像素的色度分量。
當(dāng)發(fā)送轉(zhuǎn)義像素時,需要對所有三個分量中的像素值進行編碼。對于使用調(diào)色板模式的單色視頻編碼,根據(jù)本實施例,不會對轉(zhuǎn)義像素的色度分量進行編碼。表7中顯示了一個示例性語法表。如表7所示,如果如注釋(7-1)所示顏色格式為單色,則色度分量的轉(zhuǎn)義像素值palette_escape_val(由注釋(7-2)所示))將不會被發(fā)送。在本實施例中,僅發(fā)送用于單色內(nèi)容的轉(zhuǎn)義像素的亮度值。
表7
實施例4:不發(fā)送新調(diào)色板條目的色度分量。
當(dāng)新的調(diào)色板條目不在當(dāng)前調(diào)色板預(yù)測子中時,其所有分量的像素值需要被編碼。對于使用調(diào)色板編碼模式的單色視頻編碼,根據(jù)本實施例,新調(diào)色板條目的色度分量將不被編碼。在解碼器側(cè),用于色度位置的建議的填充值n用于將該新調(diào)色板條目重建為3分量像素。
示例性語法表如表8所示。如表8所示,如果如注釋(8-1)所示顏色格式是單色(即,chromaarraytype=0),像素條目palette_entry(由注釋(8-2)所示)將被發(fā)送以用于亮度分量(即,cidx=0)。
表8
實施例5:將當(dāng)前調(diào)色板編碼方案的使用擴展到單色格式。
單色內(nèi)容的調(diào)色板編碼語法表
根據(jù)該實施例,現(xiàn)有的調(diào)色板編碼方案可以應(yīng)用于單色格式。結(jié)合該實施例的示例性語法表如表9所示,其中如注釋(9-1)所示省略了顏色格式檢查(即,chromaarraytype)。換句話說,調(diào)色板編碼是允許用于所有顏色格式,包括單色。表10示出了與表9類似的另一個編碼單元語法表。然而,附加條件被添加到用于允許調(diào)色板模式的測試中,其中如注釋(10-1)所示附加條件對應(yīng)于當(dāng)前亮度編碼塊的大小小于64(即,log2cbsize<6)。
表9
表10
編碼過程
包括該實施例的示例性編碼處理被揭示如下所示?,F(xiàn)有scc草案標(biāo)準(zhǔn)中的調(diào)色板使用三分量條目表。換句話說,每個顏色索引與三個值相關(guān)聯(lián),表示為y,cb和cr。對于單色格式,cb和cr值不存在。為了將3分量條目表擴展為單色格式,所有cb和cr值都被設(shè)置為固定的非負(fù)整數(shù)。該整數(shù)可以是任何有效的像素值,具體取決于位深度。例如,對于8比特內(nèi)容,該值應(yīng)大于或等于零且小于256。對于10比特內(nèi)容,該值應(yīng)大于或等于零且小于1024。例如,對于8比特數(shù)據(jù),所有cb和cr值被設(shè)置為128。在另一個示例中,所有cb和cr值都被設(shè)置為0。之后,使用y-cb-cr組合值來導(dǎo)出調(diào)色板,然后調(diào)色板編碼處理。當(dāng)一個像素決定被編碼為轉(zhuǎn)義索引時,只有y值被發(fā)送。偽碼cb和cr的值不被發(fā)送。
表11中示出了一個示例性語法表。如表11所示,如注釋(11-1)所示就像它是一個3分量顏色格式一樣,轉(zhuǎn)義值palette_escape_val如注釋(11-2)所示以相同的方式而被發(fā)送以用于單色格式。
表11
在另一示例中,當(dāng)內(nèi)容是單色時,亮度分量需要被發(fā)送以用于調(diào)色板條目。偽碼cb和cr值不被發(fā)送。表12中示出了另一個示例性語法表,其中當(dāng)如注釋(12-1)所示顏色格式為單色時(即,chromaarraytype==0),如注釋(12-2)所示調(diào)色板條目palette_entry被發(fā)送僅用于亮度分量(即,ctdx==0)。
表12
表13中示出了另一個示例性語法表,其中如注(13-1)所示,對于單色格式(即,chromaarraytype==0)將顏色分量的數(shù)量(即,numcomps)被設(shè)置為1,并且對于3分量顏色格式,顏色分量的數(shù)量被設(shè)置為3。根據(jù)注釋(13-2)所示的顏色分量的數(shù)量,如注釋(13-3)表示調(diào)色板條目palette_entry被發(fā)送。
表13
用于單色內(nèi)容的調(diào)色板條目信令的另一示例中,偽cb和cr值可以被設(shè)置為固定值。因此,亮度分量和調(diào)色板表的偽碼cb和cr值利用現(xiàn)有的語法表而被發(fā)送。
解碼和重建過程
調(diào)色板解碼和解析過程可以與現(xiàn)有的scc草案標(biāo)準(zhǔn)中相同。每個索引與y,cb和cr值相關(guān)聯(lián)。然而,只有y值用于重建,而cb和cr值被忽略。當(dāng)對像素進行轉(zhuǎn)義編碼時,僅將y值被解碼并用于解碼圖像的重建。
調(diào)色板預(yù)測子更新過程
根據(jù)本發(fā)明的實施例,僅更新調(diào)色板預(yù)測子的y分量。單色內(nèi)容的示例性更新處理如下所示。
變量previouspalettesize被設(shè)置為currentpalettesize。當(dāng)currentpalettesize大于0時,變量predictorpalettesize和predictorpaletteentries被修改如下:
如上述用于調(diào)色板更新的偽代碼所示,僅針對單色內(nèi)容更新y分量(即,cidx==0&&chromaarraytype==0)。更新過程的另一個例子如下所示。
變量numcomps導(dǎo)出如下:
numcomps=(chromaarraytype==0)?1:3
變量predictorpalettesize和predictorpaletteentries被修改如下。
如上述用于調(diào)色板更新的偽代碼所示,根據(jù)過程“numcomps=(chromaarraytype==0)?1:3”,顏色分量的數(shù)量(即,numcomps)被設(shè)置為1,以用于單色格式(即,chromaarraytype==0),并且顏色分量的數(shù)量被設(shè)置為3,以用于3分量顏色格式。更新過程將僅更新單色內(nèi)容的y分量。
現(xiàn)有的調(diào)色板預(yù)測子更新過程也可以用于單色和非單色格式。當(dāng)前調(diào)色板預(yù)測子更新過程不需要更改。
用于單色格式的當(dāng)前調(diào)色板的推導(dǎo)被揭示。變量currentpaletteentries[cidx][i]指定顏色分量cidx的當(dāng)前調(diào)色板中的第i個元素。根據(jù)本發(fā)明的實施例的用于單色格式的當(dāng)前調(diào)色板推導(dǎo)的示例性偽碼如下所示。
首先,表示顏色分量的數(shù)量的變量numcomps是根據(jù)下式導(dǎo)出的:“numcomps=(chromaarraytype==0)?1:3”。因此,對于單色格式(即chromaarraytype==0),numcomps等于1。否則,numcomps等于3。因此,以下偽代碼將僅為y分量分配一個調(diào)色板值(即,cidx=0)以用于單色格式,并分別分配三個調(diào)色板值給三個分量以用于非單色格式。
實施例6:在sps中禁止單色格式的調(diào)色板編碼。
sps中的標(biāo)志“palette_mode_enabled_flag”可以被發(fā)送,以指定是否為當(dāng)前視頻序列啟用調(diào)色板編碼。當(dāng)序列是單色時,標(biāo)記可被推斷為0,即chromaarraytype等于零。因此,不需要發(fā)送標(biāo)志以用于單色內(nèi)容。或者,標(biāo)志仍然被發(fā)送。然而,當(dāng)序列為單色格式時,標(biāo)志被強制為零。
實施例7:用于單色的調(diào)色板預(yù)測子初始化。
在現(xiàn)有的hevcscc草案標(biāo)準(zhǔn)中,語法元素palette_entry指定用于當(dāng)前調(diào)色板的調(diào)色板條目中的分量的值。
變量predictorpaletteentries[cidx][i]指定顏色分量cidx的預(yù)測子調(diào)色板中的第i個元素。變量currentpaletteentries[cidx][i]指定顏色分量cidx的當(dāng)前調(diào)色板中的第i個元素,并導(dǎo)出如下:
在常規(guī)方法中,調(diào)色板預(yù)測子初始化表達式(palettepredictorinitializer)在pps級被通知,這意味著調(diào)色板預(yù)測子信息被發(fā)送以用于每一個圖像。為了提高編碼效率,sps級調(diào)色板預(yù)測子初始化表達式被揭示。在一個實施例中,sps級調(diào)色板預(yù)測子的值被發(fā)送,并且可以由序列中的視頻數(shù)據(jù)使用以用作調(diào)色板預(yù)測子。表14中顯示了一個示例性的sps_scc_extension()語法表,其中如注釋(14-1)所示語法元素sps_palette_predictor_initializer_present_flag被發(fā)送以指示調(diào)色板預(yù)測子初始化表達式是否存在于spsscc擴展語法表中。如果如注釋(14-2)所示語法元素sps_palette_predictor_initializer_present_flag等于1,如注釋(14-3)至注釋(14-4)所示與調(diào)色板預(yù)測子初始化表達式相關(guān)的參數(shù)和調(diào)色板預(yù)測子初始化表達式的值被發(fā)送。與調(diào)色板預(yù)測子初始化表達式相關(guān)的參數(shù)包括參數(shù)“sps_luma_bit_depth_entry_minus8”,“sps_chroma_bit_depth_entry_minus8”和“sps_num_palette_predictor_initializer_minus1”。一組初始調(diào)色板預(yù)測子的值由“sps_palette_predictor_initializers[][]”而被發(fā)送。雖然在表14中使用了特定的語法元素,但是這些語法元素用于解釋本發(fā)明的實施例的目的,并不應(yīng)被解釋為對本發(fā)明的限制。
表14
在目前的scm4.0中(jctvc-t1014:joshi等人,screencontentcodingtestmodel4(scm4),jointcollaborativeteamonvideocoding(jct-vc)ofitu-tsg16wp3andiso/iecjtc1/sc29/wg11,20thmeeting:geneva,ch,10–18feb.2015,document:jctvc-t1014)。調(diào)色板預(yù)測子初始化過程如下。此過程的輸出是初始化的調(diào)色板預(yù)測子變量predictorpalettesize和predictorpaletteentries。predictorpalettesize的推導(dǎo)如下所示:
陣列predictorpaletteentries的推導(dǎo)如下所示:
本發(fā)明的實施例公開了單色格式的調(diào)色板預(yù)測子的初始化。當(dāng)視頻數(shù)據(jù)是單色格式時,調(diào)色板表中的色度值不被發(fā)送。此外,沒有發(fā)送chroma_bit_depth_entry_minus8。pps_scc_extensions()的一個示例性語法表如表15所示。在表15中,如注釋(15-1)所示,發(fā)送標(biāo)志monochrome_palette_flag,以指示視頻數(shù)據(jù)是否為單色。當(dāng)注釋(15-2)所示視頻數(shù)據(jù)不是單色時,如注釋(15-3)所示參數(shù)chroma_bit_depth_entry_minus8被發(fā)送。換句話說,如果視頻數(shù)據(jù)是單色,參數(shù)chroma_bit_depth_entry_minus8不被發(fā)送。如注釋(15-4)所示顏色分量numcomps的數(shù)量被確定。如通過注釋(15-5)至注釋(15-6)的語法行所指示,根據(jù)顏色分量的數(shù)量,一個預(yù)測子的值或三個預(yù)測子的值被發(fā)送。
表15
調(diào)色板預(yù)測子變量的初始化過程
公開了根據(jù)本發(fā)明實施例的調(diào)色板預(yù)測子的初始化過程。此過程的輸出是初始化的調(diào)色板預(yù)測子變量predictorpalettesize和predictorpaletteentries。predictorpalettesize的推導(dǎo)如下所示:
代表顏色分量的數(shù)目的變量numcomps的推導(dǎo)如下所示,
numcomps=(chromaarraytype==0)?1:3
陣列predictorpaletteentries的推導(dǎo)如下所示:
如上所示,根據(jù)顏色分量的數(shù)量,一個預(yù)測子或三個預(yù)測子的值自pps級的調(diào)色板預(yù)測子的每一個條目(即,palette_predictor_initializers[i][comp])至當(dāng)前調(diào)色板預(yù)測子的條目(即predictorpaletteentries[i][comp])而被復(fù)制。
對于sps調(diào)色板初始化信令,需要如表16所示修改語法表以用于單色格式。如表16所示,如果如注釋(16-1)所示sps級調(diào)色板預(yù)測子存在標(biāo)志等于1,則亮度分量參數(shù)sps_luma_bit_depth_entry_minus8始終如注釋(16-2)所示被發(fā)送。另一方面,只要視頻數(shù)據(jù)如注釋(16-3)所示不是單色時,色度相關(guān)參數(shù)sps_chroma_bit_depth_entry_minus8如注釋(16-4)所示被發(fā)送。顏色分量的數(shù)量(即numcomps)根據(jù)注釋(16-5)所示的chromaarraytype來確定。如從注釋(16-6)到注釋(16-7)的語法行所示,根據(jù)顏色分量的數(shù)量,一個預(yù)測子的值或三個預(yù)測子的值被發(fā)送以用于每一個sps調(diào)色板預(yù)測子。
表16
也可以使用表14中的sps級語法表。
對于pps調(diào)色板初始化表達式信令,如表17所示的示范性語法表用于單色格式。如表17所示,如果如注釋(17-1)所示pps級調(diào)色板預(yù)測子存在標(biāo)志等于1,則亮度分量參數(shù)monochrome_palette_flag如注釋(17-2)所示被發(fā)送。只有如注(17-3)所示視頻數(shù)據(jù)不是單色(即,!monoch_palette_flag等于1)時,色度相關(guān)參數(shù)pps_chroma_bit_depth_entry_minus8如注釋(17-4)所示被發(fā)送。如注釋(17-5)所示,顏色分量的數(shù)量(即numcomps)根據(jù)chromaarraytype來確定。如從注釋(17-6)至注釋(17-7)的語法行所示,根據(jù)顏色分量的數(shù)量,一個預(yù)測子的值或三個預(yù)測子的值被發(fā)送以用于每一個pps調(diào)色板預(yù)測子條目。
表17
sps和pps中具有初始化表達式的調(diào)色板預(yù)測子變量的初始化過程
該過程的輸出是初始化的調(diào)色板預(yù)測變量predictorpalettesize和predictorpaletteentries。predictorpalettesize的推導(dǎo)如下所示:
變量numcomps的推導(dǎo)如下所示:
numcomps=(chromaarraytype==0)?1:3
陣列predictorpaletteentries的推導(dǎo)如下所示:
intrabc存儲帶寬減少的考慮
在本發(fā)明的另一方面,解決了intrabc存儲器帶寬減少的問題。下面公開了幾個實施例。
實施例1:cu或ctu級的intrabc參考標(biāo)志
在具有調(diào)色板編碼模式的hevc標(biāo)準(zhǔn)中,重建塊的未過濾版本被存儲并作為參考數(shù)據(jù)來使用以用于intrabc編碼塊。然而,對于在幀間/幀內(nèi)預(yù)測模式中已編碼的塊,重建塊的已濾波版本(即,通過去塊和采樣自適應(yīng)偏移)被存儲并作為參考數(shù)據(jù)。因此,可能需要存儲重建數(shù)據(jù)的過濾版本和未過濾版本。對于每個編碼單元(cu)或編碼樹單元(ctu),使用標(biāo)志來指示該塊是否被intrabc模式中編碼的后續(xù)塊作為參考塊。如果沒有,則不需要存儲該塊的重建采樣的未濾波版本。這樣的標(biāo)記可以在切片頭中組合在一起。當(dāng)解析切片頭時,關(guān)于當(dāng)前切片中的所有cu或ctu是否用于intrabc參考的狀態(tài)是已知的。
在該方法中,可以使用具有上下文建模的上下文自適應(yīng)二進制算術(shù)編碼(context-adaptivebinaryarithmeticcoding,cabac)或者不使用上下文建模的旁路編碼來對這組標(biāo)志進行熵編碼。當(dāng)使用上下文時,這些標(biāo)志中的每一個可以取決于其用于上下文建模的左側(cè)和/或上方相鄰標(biāo)志的值。它也可能取決于最后編碼標(biāo)志的值。
在實施例1的變型中,根據(jù)標(biāo)志的狀態(tài),cu或ctu將僅存儲重建采樣的一個版本。如果它被標(biāo)記為用于intrabc參考,則不會使用濾波操作,如去塊或sao。
實施例2:在切片級中的intrabc參考標(biāo)志
切片級標(biāo)志被用于發(fā)送此切片的cu或ctu中的intrabc參考標(biāo)志是否存在。類似地,intrabc參考標(biāo)志控制可以在圖像級或序列級中被發(fā)送以指示此圖像或序列的cu或ctu中的intrabc參考標(biāo)志是否存在。
實施例3:cu或ctu的估計的intrabc參考的使用
根據(jù)本實施例,估計當(dāng)前圖像中的cu或ctu是否用于intrabc參考。例如,先前編碼圖像中的cu或ctu的狀態(tài)可用于預(yù)測當(dāng)前圖像中的cu或ctu是否將用于intrabc參考。當(dāng)當(dāng)前圖像和并置圖像(thecollocatedpicture)都具有類似的“預(yù)測機制”時,這種預(yù)測是有效的??梢赃x擇具有與當(dāng)前圖像的最小圖像順序計數(shù)(pictureordercount,poc)差值的先前編碼圖像作為先前編碼圖像。關(guān)于并置的cu或ctu是否用于intrabc參考的并置的cu或ctu的狀態(tài)被檢查并被用于預(yù)測或估計當(dāng)前圖像的cu或ctu的狀態(tài)。例如,如果在前一圖像中具有空間位置(x,y)的ctu(x,y)中的一些像素用于intrabc參考,則當(dāng)前圖像中相同位置的ctu的標(biāo)志被設(shè)置為“用于intrabc參考”。在另一示例中,當(dāng)前圖像和先前圖像可以共享類似的預(yù)測模式,例如兩個圖像具有幀間參考圖像或intrabc參考圖像。
以intrabc為參考的cu或ctu中的像素數(shù)目所使用的標(biāo)準(zhǔn)可以基于閾值。當(dāng)在先前編碼圖像的cu或ctu中參考的intrabc的像素數(shù)目超過閾值時,預(yù)測當(dāng)前圖像的cu或ctu以用于intrabc參考。該閾值可以取決于一些編碼參數(shù),例如qp(量化參數(shù)),cu或ctu大小。
根據(jù)該實施例,先前編碼圖像中的像素與當(dāng)前圖像的cu或ctu中的像素之間的對應(yīng)關(guān)系不一定是精確地并置。例如,可以使用由先前編碼圖像中的并置cu或ctu居中的空間窗口來收集用于intrabc參考的像素數(shù)量的統(tǒng)計。在另一示例中,可以使用包含多于一個先前編碼的圖像的時間窗口。在又一示例中,可以使用空間和時間相鄰像素。
圖2示出了包含本發(fā)明實施例的調(diào)色板編碼的視頻解碼器的示例性流程圖。在步驟210中,系統(tǒng)接收與視頻數(shù)據(jù)相關(guān)聯(lián)的視頻比特流。在步驟220中檢查視頻數(shù)據(jù)是否為單色。如果視頻數(shù)據(jù)是單色的(即“是”路徑),則執(zhí)行步驟230和步驟240。否則(即“否”路徑),執(zhí)行步驟250和260。在步驟230中,對于一個或多個調(diào)色板編碼參數(shù)的一個或多個單分量值自輸入單色視頻數(shù)據(jù)的單顏色分量的視頻比特流而被解析。在步驟240中,使用該一個或多個調(diào)色板編碼參數(shù),將調(diào)色板解碼應(yīng)用于輸入單色視頻數(shù)據(jù)的單顏色分量。在步驟250中,對應(yīng)于一個或多個調(diào)色板編碼參數(shù)的一個或多個多分量值自輸入的非單色視頻數(shù)據(jù)的多個顏色分量的視頻比特流而被解析。在步驟260中,使用所述一個或多個調(diào)色板編碼參數(shù),將調(diào)色板解碼應(yīng)用于輸入非單色視頻數(shù)據(jù)的多個顏色分量。
圖3示出了包含本發(fā)明的實施例的調(diào)色板編碼的視頻編碼器的示例性流程圖。在步驟310中,系統(tǒng)確定視頻數(shù)據(jù)的顏色格式。在步驟320中檢查視頻數(shù)據(jù)是否為單色。如果視頻數(shù)據(jù)是單色(即,“是”路徑),則執(zhí)行步驟330和340。否則(即,“否”路徑),執(zhí)行步驟350和360。在步驟330中,調(diào)色板編碼被應(yīng)用于輸入單色視頻數(shù)據(jù)的單顏色分量。在步驟340中,對應(yīng)于一個或多個調(diào)色板編碼參數(shù)的一個或多個單一分量值被發(fā)送以用于輸入單色視頻數(shù)據(jù)的單顏色分量。在步驟350中,調(diào)色板編碼被應(yīng)用于輸入非單色視頻數(shù)據(jù)的多個顏色分量。在步驟360中,對應(yīng)于一個或多個調(diào)色板編碼參數(shù)的一個或多個多分量值被發(fā)送以用于輸入非單色視頻數(shù)據(jù)的多顏色分量。
所示的流程圖旨在說明根據(jù)本發(fā)明的調(diào)色板編碼的示例。在不脫離本發(fā)明的精神的情況下,本領(lǐng)域技術(shù)人員可以修改每個步驟,重新排列步驟,拆分步驟或組合步驟來實施本發(fā)明。在本公開中,已經(jīng)使用具體的語法和語義來說明實現(xiàn)本發(fā)明的實施例的示例。本領(lǐng)域技術(shù)人員可以在不脫離本發(fā)明精神的前提下,用相同的語法和語義來代替語法和語義來實踐本發(fā)明。
呈現(xiàn)上述描述以使本領(lǐng)域技術(shù)人員能夠在特定應(yīng)用及其要求的上下文中實施本發(fā)明。對所描述的實施例的各種修改對于本領(lǐng)域技術(shù)人員將是顯而易見的,并且本文定義的一般原理可以應(yīng)用于其他實施例。因此,本發(fā)明并不限于所示出和描述的具體實施例,而應(yīng)符合與本文所公開的原理和新穎特征相一致的最廣范圍。在上述詳細描述中,示出了各種具體細節(jié)以便提供對本發(fā)明的透徹理解。然而,本領(lǐng)域技術(shù)人員將理解,可以實施本發(fā)明。
以上描述的本發(fā)明的實施方式可在各種硬件、軟件編碼或兩者組合中進行實施。例如,本發(fā)明的實施方式可為集成入視頻壓縮芯片的電路或集成入視頻壓縮軟件以執(zhí)行上述過程的程序代碼。本發(fā)明的實施方式也可為在數(shù)據(jù)信號處理器(digitalsignalprocessor,dsp)中執(zhí)行上述程序的程序代碼。本發(fā)明也可涉及計算機處理器、數(shù)字信號處理器、微處理器或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)執(zhí)行的多種功能??筛鶕?jù)本發(fā)明配置上述處理器執(zhí)行特定任務(wù),其通過執(zhí)行定義了本發(fā)明揭示的特定方法的機器可讀軟件代碼或固件代碼來完成。可將軟件代碼或固件代碼發(fā)展為不同的程序語言與不同的格式或形式。也可為了不同的目標(biāo)平臺編譯軟件代碼。然而,根據(jù)本發(fā)明執(zhí)行任務(wù)的軟件代碼與其他類型配置代碼的不同代碼樣式、類型與語言不脫離本發(fā)明的精神與范圍。
在不脫離本發(fā)明精神或本質(zhì)特征的情況下,可以其他特定形式實施本發(fā)明。描述示例被認(rèn)為僅在所有方面進行說明并且不是限制性的。因此,本發(fā)明的范圍由權(quán)利要求書指示,而非前面描述。所有在權(quán)利要求等同的方法與范圍中的變化都屬于本發(fā)明的涵蓋范圍。