交叉引用本申請要求主張于2015年2月5日提出的編號為62/112,198且發(fā)明名稱為“用于調(diào)色板(palette)索引(index)掃描及編碼的裝置與方法”的美國臨時申請案、于2015年3月17日提出的編號為62/134,129且發(fā)明名稱為“用于調(diào)色板(palette)索引掃描及旋轉(zhuǎn)(rotation)編碼的裝置與方法”的美國臨時申請案、以及于2015年6月3日提出的編號為62/170,272且發(fā)明名稱為“用于調(diào)色板(palette)語法(syntax)及解碼操作的裝置與方法”的美國臨時申請案的優(yōu)先權(quán),在此加以引用其全部內(nèi)容。本發(fā)明是有關(guān)于圖像和視頻編碼(coding)中的調(diào)色板編碼(palettecoding)技術(shù),更具體地,是有關(guān)于在調(diào)色板模式下對調(diào)色板語法的解碼。
背景技術(shù):
::在最新開發(fā)的編碼標(biāo)準(zhǔn)高效視頻編碼(highefficiencyvideocoding,hevc)系統(tǒng)中,h.264/avc的固定尺寸的宏塊(macroblock,mb)被替代為靈活的塊,稱為“編碼單元(codingunit,cu)”。cu中的多個像素共享多個編碼參數(shù),以改善編碼效率。圖片的分割(partition)是從最大cu(largestcu,lcu)開始的,lcu也稱為編碼樹單元(codedtreeunit,ctu),每個lcu適應(yīng)性地拆分為多個葉(leaf)cu。除了編碼單元的概念之外,hevc中也引入了預(yù)測單元(predictionunit,pu)的概念。一旦cu層次樹(hierarchicaltree)的拆分完成,根據(jù)預(yù)測類型和pu的分割,每個葉cu進(jìn)一步拆分為一個或多個pu。隨著hevc標(biāo)準(zhǔn)的發(fā)展,hevc標(biāo)準(zhǔn)的屏幕內(nèi)容編碼擴(kuò)展(screencontentcodingextension,scc)正在視頻編碼的聯(lián)合協(xié)作組(jointcollaborativeteamonvideocoding,jctvc)的主持下進(jìn)行開發(fā)。由于屏幕內(nèi)容的特定性質(zhì),已開發(fā)了編碼工具,且開發(fā)的編碼工具在編碼效率上展現(xiàn)了顯著效果。在這些編碼工具中,調(diào)色板編碼(又稱為基于主要色彩的編碼(majorcolorbasedcoding))技術(shù)代表使用指向主要色彩的調(diào)色板的索引的像素塊,對主要色彩進(jìn)行編碼,以及代表該塊的已編碼調(diào)色板索引地圖(paletteindexmap)。雖然可能存在的色彩組合的總數(shù)相當(dāng)巨大,而對于典型的屏幕內(nèi)容而言,圖片局部區(qū)域的色彩數(shù)量通常是非常有限的。屏幕內(nèi)容中的多數(shù)對象(objects)具有相對一致的(relativelyuniform)色彩,并以尖銳(sharp)邊緣進(jìn)行區(qū)分。因此,調(diào)色板模式下所使用的調(diào)色板編碼技術(shù)對于屏幕內(nèi)容編碼而言變得非常有效,其中屏幕內(nèi)容編碼包括網(wǎng)頁瀏覽、word文檔編輯、幻燈片(powerpoint)文件、或具有多個應(yīng)用的混合的屏幕抓圖(screencaptures)。調(diào)色板模式下的編碼操作包括兩個步驟:調(diào)色板編碼操作及調(diào)色板索引地圖編碼操作。調(diào)色板表編碼包括從當(dāng)前塊中定位多個主要色彩,并將這些主要色彩映射至(mapto)調(diào)色板索引。當(dāng)前塊中的其他色彩定義為跳出色彩(escapecolor),跳出色彩適用像素值的量化而不使用調(diào)色板索引進(jìn)行編碼。包含多個調(diào)色板索引的調(diào)色板表通過從之前的調(diào)色板編碼塊中查找調(diào)色板色彩來引導(dǎo)預(yù)測編碼。預(yù)測編碼使用調(diào)色板預(yù)測表(palettepredictortable)和調(diào)色板填充(stuffing)來重建該調(diào)色板表。調(diào)色板預(yù)測表是形成用以保持對調(diào)色板編碼塊所使用的主要色彩的追蹤。大概在調(diào)色板模式下選擇當(dāng)前塊進(jìn)行編碼時,調(diào)色板預(yù)測表中的色彩是通過發(fā)送調(diào)色板復(fù)用標(biāo)志(palettereuseflags)流(stream)來預(yù)測當(dāng)前塊的調(diào)色板。圖1為scc草案文本3(sccdrafttext3)所規(guī)定的調(diào)色板重建操作的示意圖。當(dāng)前塊12的調(diào)色板是根據(jù)調(diào)色板復(fù)用標(biāo)志陣列(array)16從調(diào)色板預(yù)測表14中預(yù)測而來的。調(diào)色板復(fù)用標(biāo)志陣列16指示調(diào)色板預(yù)測表14中多個條目(entries)的位置,其中調(diào)色板預(yù)測表14被當(dāng)前塊調(diào)色板12所復(fù)用。在圖1中,調(diào)色板復(fù)用標(biāo)志陣列16中的調(diào)色板復(fù)用標(biāo)志為{1011000100001000000000},指示調(diào)色板預(yù)測表14中的第一條目、第三條目、第四條目、第八條目、及第十三條目為當(dāng)前塊調(diào)色板12的復(fù)用色彩122。調(diào)色板復(fù)用標(biāo)志使用游程長度編碼(run-lengthcoding)進(jìn)行編碼,因此,兩個1之間的0的數(shù)量,即游程值(runvalue),使用語法元素palette_predictor_run進(jìn)行編碼。在解碼器中,當(dāng)對應(yīng)的palette_predictor_run被解析及解碼、且調(diào)色板復(fù)用標(biāo)志所指示的調(diào)色板預(yù)測表14中的色彩包含于當(dāng)前塊12的調(diào)色板中時,將調(diào)色板復(fù)用標(biāo)志設(shè)置為1。當(dāng)所有的palette_predictor_run被解碼后,所有對應(yīng)的調(diào)色板復(fù)用標(biāo)志被設(shè)置,并找到當(dāng)前塊調(diào)色板12的所有復(fù)用色彩122。除復(fù)用色彩122是從調(diào)色板預(yù)測表14中產(chǎn)生之外,當(dāng)前塊調(diào)色板12頁可以包含新的色彩124。新的色彩124直接在比特流中發(fā)送。語法元素num_signalled_palette_entries被發(fā)送以指示當(dāng)前塊調(diào)色板12中新的色彩124的數(shù)量。調(diào)色板索引地圖編碼操作對包含調(diào)色板索引掃描方向(orientation)和調(diào)色板索引地圖的信息進(jìn)行編碼。調(diào)色板索引掃描方向使用轉(zhuǎn)置標(biāo)志(transposeflag)palette_transpose_flag進(jìn)行編碼。調(diào)色板索引地圖指通過將當(dāng)前塊的像素值替換為調(diào)色板索引來表示的塊。幾種調(diào)色板運行類型(runtypes)包括copy_index模式、copy_above模式和escape模式。在copy_index模式中,對調(diào)色板索引值進(jìn)行游程長度編碼,并對調(diào)色板運行類型、調(diào)色板索引及運行長度(run-length)進(jìn)行編碼。在copy_above模式中,拷貝(copy)上一行(aboverow)的調(diào)色板索引,對調(diào)色板運行類型及運行長度進(jìn)行編碼。在escape模式中,使用原本的像素值,并對調(diào)色板運行類型和量化像素值進(jìn)行編碼。根據(jù)轉(zhuǎn)置標(biāo)志,使用調(diào)色板索引地圖對當(dāng)前塊中的像素值以預(yù)定(predetermined)掃描順序進(jìn)行編碼。對于包含一個或多個像素的每個群組而言,確定調(diào)色板運行類型以指示使用的是哪個模式。當(dāng)像素群組在copy_index模式下進(jìn)行編碼時,首先對調(diào)色板索引進(jìn)行解碼,然后對代表運行長度的palette_run進(jìn)行解碼。運行長度palette_run指示使用copy_index模式編碼的樣本(samples)的總數(shù)。當(dāng)像素群組使用copy_above模式進(jìn)行編碼時,對運行長度copy_run進(jìn)行解碼以指示包括當(dāng)前像素在內(nèi)的后續(xù)像素的運行長度,調(diào)色板索引與上一行中對應(yīng)的調(diào)色板索引相同。在scc標(biāo)準(zhǔn)的發(fā)展過程中,調(diào)色板索引地圖編碼操作的變化包括:插入最后一段運行標(biāo)志(lastrunflag)以告知當(dāng)前運行是否為被處理的塊的調(diào)色板索引地圖中最后一段運行。該發(fā)信(signalling)方法稱為運行到底(run-to-the-end)發(fā)信,并當(dāng)最后一段運行很長時特別有用。當(dāng)最后一段運行標(biāo)志為1時,被處理塊的剩余部分使用相同模式,copy_index模式或copy_above模式,因此不再需要告知本段運行中所包含的多個元素的時機(jī)數(shù)量。調(diào)色板索引地圖編碼操作的另一變化包括:對前方的(atfront)調(diào)色板索引分組(grouping),并不發(fā)信告知最后一段運行。將當(dāng)前塊中的所有的調(diào)色板索引聚集在一起,并將這些調(diào)色板索引在調(diào)色板運行類型和調(diào)色板運行長度的語法元素之前發(fā)送。不發(fā)信告知最后一段運行的方法告知調(diào)色板索引的數(shù)量、以及用于指示最后一段調(diào)色板運行類型為copy_above模式還是copy_index模式的標(biāo)志。解碼器從調(diào)色板索引的數(shù)量和最后一段調(diào)色板運行類型標(biāo)志獲知最后一段運行。該最后一段運行的運行長度可以獲知到達(dá)當(dāng)前塊的末尾(end),因而不需要發(fā)信告知該最后一段運行。類似于上述運行到底發(fā)信方法,該不發(fā)信告知最后一段運行發(fā)信的變化在對較長的最后一段運行進(jìn)行編碼時特別有效。當(dāng)在發(fā)信其他語法元素之前發(fā)信所有的調(diào)色板索引時,這些調(diào)色板索引需要被儲存用以重建調(diào)色板索引地圖。調(diào)色板索引在臨時緩沖器中進(jìn)行存儲至少到解析出調(diào)色板運行類型和調(diào)色板運行長度。在用于儲存調(diào)色板索引地圖的緩沖器之外,需要額外的臨時緩沖器,除非復(fù)用調(diào)色板索引地圖緩沖器,以及將調(diào)色板索引數(shù)據(jù)插入調(diào)色板索引地圖緩沖器的末尾。hevcscc測試模型scm-4.0中的調(diào)色板索引地圖語法發(fā)信的順序變?yōu)椋赫{(diào)色板索引的數(shù)量→所有調(diào)色板索引的群組→最后一段調(diào)色板運行類型標(biāo)志→{調(diào)色板運行類型,運行長度}交叉對(interleavedpairs)→所有跳出值(escapevalue)的群組。技術(shù)實現(xiàn)要素:解碼系統(tǒng)中的圖像或視頻解碼的多種裝置和方法,可以當(dāng)對在調(diào)色板模式下進(jìn)行編碼的塊進(jìn)行解碼時防止有可能出現(xiàn)的死機(jī)(crashes)。該解碼系統(tǒng)接收與當(dāng)前塊有關(guān)的輸入數(shù)據(jù),其中該當(dāng)前塊使用調(diào)色板模式進(jìn)行編碼,以及該解碼系統(tǒng)解析調(diào)色板預(yù)測游程(palettepredictorrun)。根據(jù)調(diào)色板預(yù)測游程,計算復(fù)用色彩在調(diào)色板預(yù)測表中的位置。更具體地,這些位置是通過對調(diào)色板預(yù)測游程進(jìn)行解碼來計算的,并將解碼后的調(diào)色板預(yù)測游程加入前一位置。該解碼系統(tǒng)確定調(diào)色板預(yù)測表的尺寸或調(diào)色板復(fù)用標(biāo)志陣列的尺寸,并將該尺寸與根據(jù)調(diào)色板預(yù)測游程計算得到的位置進(jìn)行比較,以獲取比較結(jié)果。根據(jù)比較結(jié)果,該解碼系統(tǒng)對當(dāng)前塊應(yīng)用調(diào)色板解碼。在當(dāng)比較結(jié)果指示根據(jù)調(diào)色板預(yù)測游程計算得到的位置位于該調(diào)色板預(yù)測表內(nèi)時的情形下,解碼系統(tǒng)在調(diào)色板復(fù)用標(biāo)志陣列中對應(yīng)于根據(jù)調(diào)色板預(yù)測游程計算得到的位置設(shè)置一調(diào)色板復(fù)用標(biāo)志,以指示為當(dāng)前塊的調(diào)色板選擇調(diào)色板預(yù)測表中的一復(fù)用色彩。若該比較結(jié)果指示根據(jù)調(diào)色板預(yù)測游程計算得到的位置沒有位于該調(diào)色板預(yù)測表內(nèi),則改變位置至一新的位置,以指示當(dāng)前塊的對應(yīng)復(fù)用色彩,或者終止調(diào)色板預(yù)測復(fù)用標(biāo)志(palettepredictorreuseflags)的解碼操作。在一些實施例中,通過終止該調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作,解碼系統(tǒng)停止對另一調(diào)色板預(yù)測游程的解析,并停止將調(diào)色板預(yù)測表中的其他復(fù)用色彩加入當(dāng)前塊的調(diào)色板。在一實施例中,通過改變位置至一新的位置,解碼系統(tǒng)設(shè)置一調(diào)色板復(fù)用標(biāo)志,對應(yīng)于調(diào)色板預(yù)測表中的最后位置,以指示為當(dāng)前塊的調(diào)色板選擇該調(diào)色板預(yù)測表的最后條目中的復(fù)用色彩。在另一實施例中,通過改變位置至一新的位置,解碼系統(tǒng)設(shè)置一調(diào)色板復(fù)用標(biāo)志,對應(yīng)于調(diào)色板預(yù)測表中緊鄰的下一位置,以指示為當(dāng)前塊的調(diào)色板選擇該調(diào)色板預(yù)測表中與前一已選擇復(fù)用色彩緊鄰的下一復(fù)用色彩。在又一實施例中,通過改變位置至一新的位置,解碼系統(tǒng)設(shè)置一調(diào)色板復(fù)用標(biāo)志,對應(yīng)于該調(diào)色板預(yù)測表中的一預(yù)定位置,以指示為當(dāng)前塊的調(diào)色板選擇該調(diào)色板預(yù)測表的一預(yù)定條目中的復(fù)用色彩。本領(lǐng)域技術(shù)人員在閱讀說明書以下所記載的具體實施例后,當(dāng)可輕易了解本發(fā)明的其他方面及特征。附圖說明圖1為通過從調(diào)色板預(yù)測表中預(yù)測調(diào)色板條目的調(diào)色板重建操作的示意圖。圖2為scc草案文本3中的調(diào)色板預(yù)測游程和調(diào)色板復(fù)用標(biāo)志的解碼操作的示意圖。圖3為根據(jù)本發(fā)明第一實施例的調(diào)色板預(yù)測游程和調(diào)色板復(fù)用標(biāo)志的解碼操作的示意圖。圖4為根據(jù)本發(fā)明第二實施例的調(diào)色板預(yù)測游程和調(diào)色板復(fù)用標(biāo)志的解碼操作的示意圖。圖5為根據(jù)本發(fā)明第三實施例的調(diào)色板預(yù)測游程和調(diào)色板復(fù)用標(biāo)志的解碼操作的示意圖。圖6為調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作的流程圖。圖7為調(diào)色板預(yù)測復(fù)用標(biāo)志的另一解碼操作的流程圖。圖8a與圖8b為用于掃描調(diào)色板索引地圖的水平遍歷掃描與垂直遍歷掃描的示意圖。圖9a與圖9b為指示180度旋轉(zhuǎn)之前與之后的水平光柵掃描的掃描順序的4×4塊中的數(shù)量的示意圖。圖10a與圖10b為根據(jù)本發(fā)明第五實施例的使用180度旋轉(zhuǎn)的水平遍歷掃描與使用180度旋轉(zhuǎn)的垂直遍歷掃描的示意圖。圖11a與圖11b分別為傳統(tǒng)水平光柵掃描與傳統(tǒng)垂直光柵掃描的示意圖。圖12a與圖12b為根據(jù)本發(fā)明第六實施例的使用180度旋轉(zhuǎn)的水平光柵掃描與使用180度旋轉(zhuǎn)的垂直光柵掃描的示意圖。圖13為當(dāng)旋轉(zhuǎn)尺寸限制為8并對水平和垂直光柵掃描應(yīng)用旋轉(zhuǎn)時用于塊尺寸8×8、16×16和32×32的光柵掃描模式的列表的示意圖。圖14為若旋轉(zhuǎn)尺寸限制為8并只對水平光柵掃描應(yīng)用旋轉(zhuǎn)時用于塊尺寸8×8、16×16和32×32的光柵掃描模式的表的示意圖。具體實施方式應(yīng)當(dāng)理解,本發(fā)明的多個組件,如此處附圖所示,可以以多種不同的配置方式來安排和設(shè)計。因此,本發(fā)明的多種系統(tǒng)和方法的多個實施例的進(jìn)一步詳細(xì)說明,如圖示所呈現(xiàn)的,其目的并非用以限制本發(fā)明權(quán)利要求所述的范圍,而僅為本發(fā)明所選多個實施例的代表。說明書中所涉及的“一實施例”、“一些實施例”、或類似語言意味著與多個實施例有關(guān)的特定的特征、結(jié)構(gòu)或特性。因此,本說明書中多處所出現(xiàn)的語句“在一實施例中”或“在一些實施例中”并不必然指代同一實施例,這些實施例可以單獨實施,也可以與一個或多個其他實施例聯(lián)合實施。此外,此處所述的特征、結(jié)構(gòu)或特性可以以一個或多個實施例中任意適合的方式進(jìn)行組合。然而本領(lǐng)域技術(shù)人員可以了解,本發(fā)明可以在缺少部分具體細(xì)節(jié)的情況下、或者使用其他方法、組件等來實施。在另一些情況下,說明書中未詳細(xì)說明或展示已知的結(jié)構(gòu)或操作,以避免模糊本發(fā)明的多個方面。在以下說明及權(quán)利要求中,用語“包括”和“包含”為一開放式的用語,故應(yīng)解釋成“包含但不限定于…”。scc草案文本3中的調(diào)色板預(yù)測游程和調(diào)色板復(fù)用標(biāo)志的解碼操作如圖2所示。語法元素palettepredictionfinished指示使用調(diào)色板模式進(jìn)行編碼的當(dāng)前塊的調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作是否終止,以及語法元素numpredictedpaletteentries指示為當(dāng)前塊的調(diào)色板所選擇的調(diào)色板預(yù)測表中的復(fù)用色彩的數(shù)量。計數(shù)器(counter)i用于指向調(diào)色板預(yù)測表中的位置,以及語法元素predictorpalettesize指示用于當(dāng)前塊的調(diào)色板預(yù)測表的尺寸。語法元素palette_max_size在序列參數(shù)集(sequenceparameterset,sps)中發(fā)送,限制用于當(dāng)前塊的最大調(diào)色板尺寸,例如,在參考軟件中palette_max_size設(shè)為31(對于跳出索引而言加1)。本實施例中的當(dāng)前塊為調(diào)色板模式下編碼的葉編碼單元(codingunit,cu)。當(dāng)使用0階指數(shù)哥倫布(exponentialgolomborder0,eg-0)編碼的調(diào)色板預(yù)測游程(palette_predictor_run)被解析和解碼時,通過將解碼后的調(diào)色板預(yù)測游程與之前的位置相加計算得到對應(yīng)的位置i。對應(yīng)的位置i將復(fù)用標(biāo)志設(shè)置為1,以便選擇調(diào)色板預(yù)測表中的對應(yīng)條目加入當(dāng)前塊的調(diào)色板。編碼器有可能在視頻比特流中產(chǎn)生調(diào)色板預(yù)測游程,導(dǎo)致解碼器計算得到?jīng)]有位于調(diào)色板預(yù)測表內(nèi)的i的無效值(invalidvalue)。舉例而言,用于當(dāng)前塊的調(diào)色板預(yù)測表的尺寸為17,i的當(dāng)前位置為14,以及被解析和解碼后的調(diào)色板預(yù)測游程為10,則解碼后的調(diào)色板預(yù)測游程所指示的i的位置變?yōu)?3,這是因為i+=palette_predictor_run-1(14+10-1=23),這超出了調(diào)色板預(yù)測表的尺寸17。在此情形下,當(dāng)存取調(diào)色板預(yù)測表的外部時,解碼器的行為會變得不指定、不明確、或者解碼器甚至?xí)罊C(jī)。以下多個實施例顯示用于解碼器的一些方法,通過在解碼器處處理調(diào)色板預(yù)測游程及設(shè)置復(fù)用標(biāo)志陣列,以防止存取超出調(diào)色板預(yù)測表的陣列尺寸。以下一些實施例中的解碼器接收與當(dāng)前塊有關(guān)的輸入數(shù)據(jù),其中當(dāng)前塊使用調(diào)色板模式進(jìn)行編碼。對調(diào)色板預(yù)測游程進(jìn)行解析及解碼,以計算調(diào)色板預(yù)測表中復(fù)用色彩的位置。確定調(diào)色板預(yù)測表的尺寸,并將該尺寸與根據(jù)調(diào)色板預(yù)測游程計算得到的位置進(jìn)行比較,以獲取比較結(jié)果。根據(jù)該比較結(jié)果,解碼器對當(dāng)前塊應(yīng)用調(diào)色板解碼。第一實施例。在該第一實施例中,解碼器將使用解析和解碼后的調(diào)色板預(yù)測游程計算得到的位置與調(diào)色板預(yù)測表的尺寸或調(diào)色板復(fù)用標(biāo)志陣列的尺寸進(jìn)行比較。該位置使用更新后的計數(shù)器i+palette_predictor_run–1來指示,以及該調(diào)色板預(yù)測表的最后位置使用尺寸predictorpalettesize–1來指示,因此,解碼器比較兩個值(i+palette_predictor_run–1,predictorpalettesize–1);或者等效地,解碼器在(i+palette_predictor_run,predictorpalettesize)之間進(jìn)行比較。圖3為根據(jù)本發(fā)明第一實施例的調(diào)色板預(yù)測游程和復(fù)用標(biāo)志的解碼操作的示意圖。若更新后的計數(shù)器i+palette_predictor_run–1大于尺寸predictorpalettesize–1,則通過如圖3的片段32所示將語法元素palettepredictionfinished設(shè)為1,來終止調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作的循環(huán)(loop)。調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作的終止包含:停止解析另一調(diào)色板預(yù)測游程,以及停止將調(diào)色板預(yù)測表中的其他復(fù)用色彩加入當(dāng)前塊的調(diào)色板。當(dāng)終止該循環(huán)后,不再存取調(diào)色板復(fù)用標(biāo)志陣列palettepredictorentryreuseflag[],且不再增加為當(dāng)前塊的調(diào)色板所選擇的復(fù)用色彩的數(shù)量numpredictedpaletteentries。換言之,第一實施例的解碼器對計數(shù)器i增加了條件性檢測,若接收到無效的調(diào)色板預(yù)測游程,則終止對調(diào)色板預(yù)測復(fù)用標(biāo)志進(jìn)行解碼的循環(huán)。第二實施例。如圖4的片段42所示,通過計算更新后的計數(shù)器i(i+palette_predictor_run–1),然后將計數(shù)器i覆蓋(capping)為predictorpalettesize–1,該第二實施例也對使用解碼后的調(diào)色板預(yù)測游程計算得到的位置與調(diào)色板預(yù)測表的尺寸進(jìn)行了檢測。圖4為根據(jù)第二實施例的調(diào)色板預(yù)測游程與復(fù)用標(biāo)志的解碼操作的示意圖。在片段42中,計數(shù)器i設(shè)為使用調(diào)色板預(yù)測游程計算得到的更新后的計數(shù)器值與調(diào)色板預(yù)測表的尺寸減1中的最小值。若更新后的計數(shù)器i超過調(diào)色板預(yù)測表的尺寸減1(predictorpalettesize–1),則計數(shù)器i將被覆蓋為調(diào)色板預(yù)測表的尺寸減1(predictorpalettesize–1),否則,計數(shù)器i將為使用調(diào)色板預(yù)測游程計算得到的更新后的計數(shù)值。通過將計數(shù)器i設(shè)置為predictorpalettesize–1,并通過將調(diào)色板復(fù)用標(biāo)志陣列的最后復(fù)用標(biāo)志設(shè)置為1,計數(shù)器指向調(diào)色板預(yù)測表的最后位置。為當(dāng)前塊的調(diào)色板所選擇的復(fù)用色彩的數(shù)量numpredictedpaletteentries加1。最后的復(fù)用標(biāo)志的對應(yīng)位置為調(diào)色板預(yù)測表中的最后位置,因此,調(diào)色板預(yù)測表的最后條目包含于該調(diào)色板中,以用于對當(dāng)前塊進(jìn)行解碼。換言之,若計算得到的位置大于調(diào)色板預(yù)測表的尺寸,則使用調(diào)色板預(yù)測游程計算得到的位置從一無效位置變?yōu)檎{(diào)色板預(yù)測表的最后位置。一旦計數(shù)器i因圖4的片段42中的比較操作而設(shè)為predictorpalettesize–1,只是該位置設(shè)為調(diào)色板預(yù)測表中的最后位置,則由于i++產(chǎn)生的值等于predictorpalettesize,不符合for循環(huán)的條件,因此,將終止該for循環(huán)。第三實施例。在本實施例中,使用解碼后的調(diào)色板預(yù)測游程計算得到的位置被與調(diào)色板預(yù)測表的尺寸或者調(diào)色板復(fù)用標(biāo)志陣列的最后位置進(jìn)行檢測。若使用解碼后的調(diào)色板預(yù)測游程計算得到的位置沒有位于調(diào)色板預(yù)測表的尺寸內(nèi),或者超出調(diào)色板復(fù)用標(biāo)志陣列的最后位置,則該第三實施例改變位置至調(diào)色板預(yù)測表中緊鄰的下一位置i+1。圖5為根據(jù)第三實施例的調(diào)色板預(yù)測游程和復(fù)用標(biāo)志的解碼操作的示意圖。圖5的片段52顯示,若計算得到的位置(i+palette_predictor_run–1)大于調(diào)色板預(yù)測尺寸減1(predictorpalettesize–1),則計數(shù)器i加1。新的位置為緊鄰之前位置的下一位置。對應(yīng)于緊鄰的下一位置的調(diào)色板復(fù)用標(biāo)志設(shè)為1,以指示為當(dāng)前塊的調(diào)色板選擇調(diào)色板預(yù)測表中緊鄰已選擇的復(fù)用色彩的下一復(fù)用色彩。在該第三實施例的一變形中,該位置變?yōu)檎{(diào)色板預(yù)測表中的一預(yù)定位置或者之前的位置后面的第n個位置i+n,其中,n為整數(shù)。對應(yīng)于新的位置的調(diào)色板復(fù)用標(biāo)志設(shè)為1,以及為當(dāng)前塊的調(diào)色板選擇調(diào)色板預(yù)測表的一對應(yīng)條目中的復(fù)用色彩。第四實施例。在本實施例中,調(diào)色板預(yù)測游程的編碼從0階指數(shù)哥倫布編碼(eg-0)變?yōu)榻財?truncated)eg-0編碼。在截斷eg-0編碼中,當(dāng)截斷eg-0編碼的最大值對于每個i設(shè)為predictorpalettesize–1時,計數(shù)器i總是小于調(diào)色板預(yù)測表的尺寸。圖6為調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作的流程圖。首先,在步驟s601中,接收使用調(diào)色板模式進(jìn)行編碼的當(dāng)前塊的輸入數(shù)據(jù)。在步驟s602中,檢測幾個條件以確定調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作是否已結(jié)束,以及若該解碼操作已結(jié)束,則流程在步驟s608終止。若該解碼操作尚未結(jié)束,則在步驟s603中,解析一調(diào)色板預(yù)測游程,并根據(jù)該調(diào)色板預(yù)測游程計算在調(diào)色板預(yù)測表中的位置。然后,在步驟s604中,將該位置與調(diào)色板預(yù)測表尺寸進(jìn)行比較。在步驟s605中,檢測該位置是否位于調(diào)色板預(yù)測表尺寸之內(nèi),以及若該位置超出該調(diào)色板預(yù)測表尺寸,則在步驟s607中,將該位置變?yōu)橐恍碌奈恢?。在步驟s606中,根據(jù)指向該調(diào)色板預(yù)測表中的對應(yīng)復(fù)用色彩的該位置,將調(diào)色板復(fù)用標(biāo)志設(shè)置為1,并將對應(yīng)的復(fù)用色彩包含于當(dāng)前塊的調(diào)色板中。圖7為調(diào)色板預(yù)測復(fù)用標(biāo)志的另一解碼操作的流程圖。除步驟s707之外,圖7中的多數(shù)步驟與圖6中的步驟相同。當(dāng)解碼器確定使用調(diào)色板預(yù)測游程計算得到的位置沒有位于調(diào)色板預(yù)測表尺寸之內(nèi)時,在步驟s707中,立即終止調(diào)色板預(yù)測復(fù)用標(biāo)志的解碼操作,以防止可能出現(xiàn)的解碼死機(jī)。在hevcscc測試模型scm-3.0及草案文本2中,使用遍歷掃描順序(traversescanningorder)掃描用于指示調(diào)色板索引的調(diào)色板索引地圖,其中該調(diào)色板索引對應(yīng)于當(dāng)前塊中的每個像素。引入了兩種類型的遍歷掃描順序,垂直遍歷掃描與水平便利掃描。遍歷掃描順序的選擇是使用語法元素palette_transpose_flag來發(fā)信告知的。圖8a為用于掃描scm-3.0中調(diào)色板索引地圖的水平遍歷掃描的示意圖,以及圖8b為用于掃描scm-3.0中調(diào)色板索引地圖的垂直遍歷掃描的示意圖。第五實施例。在第五實施例中,用于掃描調(diào)色板索引地圖的垂直遍歷掃描和水平遍歷掃描被允許旋轉(zhuǎn)180度。圖9a為根據(jù)一較佳水平光柵掃描(rasterscanning)順序指示在旋轉(zhuǎn)之前的原本掃描順序的4×4塊中的數(shù)量的示意圖,以及圖9b為指示在圖9a所示掃描順序旋轉(zhuǎn)180度之后的掃描順序的4×4塊中的數(shù)量的示意圖。180度的旋轉(zhuǎn)實際上等效于遍歷原本掃描順序,其中,第一個編程最后一個,以及最后一個編程第一個。當(dāng)調(diào)色板索引地圖在塊的起始處(beginning)具有較長一段運行時,該較長一段運行將在180度旋轉(zhuǎn)后變?yōu)樽詈笠欢芜\行,以及該較長的最后一段運行可以使用最后一段運行標(biāo)志(運行到底信令(run-to-the-end)方法)、或者多個調(diào)色板索引與最后的調(diào)色板運行類型標(biāo)志(不告知最后一段運行(not-signaling-the-last-run)的方法)以一種更加有效的方式進(jìn)行編碼。當(dāng)應(yīng)用180度旋轉(zhuǎn)后,scm-3.0中的遍歷掃描變?yōu)閳D10a和圖10b所示的旋轉(zhuǎn)遍歷掃描。圖10a為使用180度旋轉(zhuǎn)的水平遍歷掃描,以及圖10b為使用180度旋轉(zhuǎn)的垂直遍歷掃描。180度旋轉(zhuǎn)的使用是通過旋轉(zhuǎn)標(biāo)志index_rotation_flag來發(fā)信告知的。在一實施例中,該旋轉(zhuǎn)標(biāo)志index_rotation_flag的發(fā)送獨立于轉(zhuǎn)置標(biāo)志palette_transpose_flag的發(fā)送,因此,根據(jù)該旋轉(zhuǎn)標(biāo)志,水平遍歷掃描與垂直遍歷掃描可以使能(enable)或去能(disable)180度旋轉(zhuǎn)。在本實施例中有四種類型的遍歷掃描可以使用:水平遍歷(horizontal_traverse)、垂直遍歷(vertical_traverse)、旋轉(zhuǎn)水平遍歷(rotated_horizontal_traverse)以及旋轉(zhuǎn)垂直遍歷(rotated_vertical_traverse)。在另一實施例中,旋轉(zhuǎn)標(biāo)志index_rotation_flag是在已經(jīng)發(fā)信告知轉(zhuǎn)置標(biāo)志palette_transpose_flag的條件下進(jìn)行發(fā)送的,其中,只允許對水平遍歷掃描或者垂直遍歷掃描進(jìn)行旋轉(zhuǎn)。在本實施例中,遍歷掃描類型的總數(shù)變?yōu)槿N:水平遍歷(horizontal_traverse)、垂直遍歷(vertical_traverse)及旋轉(zhuǎn)水平遍歷(rotated_horizontal_traverse),或者水平遍歷(horizontal_traverse)、垂直遍歷(vertical_traverse)以及旋轉(zhuǎn)垂直遍歷(rotated_vertical_traverse)。旋轉(zhuǎn)標(biāo)志可以使用上下文編碼(contextcoded)或者旁路編碼(bypasscoded)。第六實施例。第六實施例使用180度旋轉(zhuǎn)的逐行(line-by-line)光柵掃描來掃描調(diào)色板索引地圖。圖11a為用于掃描參數(shù)(coefficients)的傳統(tǒng)水平光柵掃描順序的示意圖,以及圖11b為用于掃描參數(shù)的傳統(tǒng)垂直掃描順序的示意圖。通過對傳統(tǒng)水平光柵掃描順序應(yīng)用180度旋轉(zhuǎn),如圖12a所示,旋轉(zhuǎn)后的水平掃描從右下角開始。類似地,如圖12b所示,旋轉(zhuǎn)后的垂直掃描從右下角開始。當(dāng)使用180度旋轉(zhuǎn)的光柵掃描順序掃描塊的起始處的具有較長一段運行的調(diào)色板索引地圖時,該較長一段運行變?yōu)?80度旋轉(zhuǎn)后的最后一段運行,其中,使用運行到底信令的方法或者不告知最后一段運行信令的方法可以對該游程進(jìn)行有效編碼。用于告知180度旋轉(zhuǎn)的旋轉(zhuǎn)標(biāo)志index_rotation_flag可以與轉(zhuǎn)置標(biāo)志palette_transpose_flag成對進(jìn)行發(fā)送,或者也可以在已經(jīng)發(fā)信告知掃描方向的條件下進(jìn)行發(fā)送。旋轉(zhuǎn)標(biāo)志與裝置標(biāo)志的成對發(fā)送允許180度旋轉(zhuǎn)的水平與垂直光柵掃描。在本實施例中有四種類型的光柵掃描可以使用:水平光柵(horizontal_raster)、垂直光柵(vertical_raster)、旋轉(zhuǎn)水平光柵(rotated_horizontal_raster)以及旋轉(zhuǎn)垂直光柵(rotated_vertical_raster)。在已經(jīng)發(fā)信告知掃描方向的條件下的旋轉(zhuǎn)標(biāo)志的發(fā)送,只允許使用會進(jìn)行180度旋轉(zhuǎn)的預(yù)定掃描方向。舉例而言,若旋轉(zhuǎn)標(biāo)志是在已發(fā)信告知轉(zhuǎn)置標(biāo)志的條件下進(jìn)行發(fā)送,則根據(jù)該轉(zhuǎn)置標(biāo)志,水平光柵掃描或垂直光柵掃描中只有一個可以被180度旋轉(zhuǎn)。在該情形下,光柵掃描類型的數(shù)量變?yōu)槿N:水平光柵(horizontal_raster)、垂直光柵(vertical_raster)及旋轉(zhuǎn)水平光柵(rotated_horizontal_raster),或者水平光柵(horizontal_raster)、垂直光柵(vertical_raster)以及旋轉(zhuǎn)垂直光柵(rotated_vertical_raster)。旋轉(zhuǎn)標(biāo)志可以使用上下文編碼或者旁路編碼。第七實施例。第七實施例將第五實施例中的遍歷掃描順序與第六實施例中的光柵掃描順序進(jìn)行了組合。在分別獨立地發(fā)送旋轉(zhuǎn)標(biāo)志index_rotation_flag與轉(zhuǎn)置標(biāo)志palette_transpose_flag的一實施例中,通過插入額外的遍歷標(biāo)志palette_traverse_flag,以指示使用的是遍歷掃描還是光柵掃描,可用的掃描類型數(shù)量多達(dá)八種。在另一實施例中,當(dāng)旋轉(zhuǎn)標(biāo)志是在轉(zhuǎn)置標(biāo)志的條件下進(jìn)行發(fā)送時,使用遍歷標(biāo)志有六種可用的掃描類型。若只在水平方向上允許180度旋轉(zhuǎn),則這六種掃描類型為水平遍歷(horizontal_traverse)、垂直遍歷(vertical_traverse)、旋轉(zhuǎn)水平遍歷(rotated_horizontal_traverse)、水平光柵(horizontal_raster)、垂直光柵(vertical_raster)以及旋轉(zhuǎn)水平光柵(rotated_horizontal_raster)。若只在垂直方向上允許180度旋轉(zhuǎn),則這六種掃描類型變?yōu)樗奖闅v(horizontal_traverse)、垂直遍歷(vertical_traverse)、旋轉(zhuǎn)垂直遍歷(rotated_vertical_traverse)、水平光柵(horizontal_raster)、垂直光柵(vertical_raster)以及旋轉(zhuǎn)垂直光柵(rotated_vertical_raster)。第八實施例。在第八實施例中,只發(fā)送轉(zhuǎn)置標(biāo)志來指示掃描方向,由于掃描順序總是旋轉(zhuǎn)180度,因此,不發(fā)送該轉(zhuǎn)置標(biāo)志。當(dāng)調(diào)色板索引被分組并被發(fā)送時位于調(diào)色板索引地圖語法的前端(front)時,一種無需額外的臨時緩存(用于調(diào)色板索引地圖的緩存之外的額外緩存)的實施方法為:將調(diào)色板索引數(shù)據(jù)放入調(diào)色板索引地圖緩存的末尾(end),并使用位置排列在調(diào)色板索引地圖緩存之前的游程來重建該調(diào)色板索引。若調(diào)色板索引已被旋轉(zhuǎn),則在實施例中將調(diào)色板索引數(shù)據(jù)放在前部,并從末尾的游程開始使用來重建調(diào)色板索引。在該第八實施例中,由于總是應(yīng)用180度旋轉(zhuǎn),因此,不發(fā)送旋轉(zhuǎn)標(biāo)志。轉(zhuǎn)置標(biāo)志palette_transpose_flag仍用于在旋轉(zhuǎn)水平遍歷(rotated_horizontal_traverse)與旋轉(zhuǎn)垂直遍歷(rotated_vertical_traverse)掃描順序之間確定該掃描方向,或者在旋轉(zhuǎn)水平光柵(rotated_horizontal_raster)與旋轉(zhuǎn)垂直光柵(rotated_vertical_raster)掃描順序之間確定該掃描方向。也有可能將這四種旋轉(zhuǎn)掃描順序與另外的遍歷標(biāo)志palette_transpose_flag進(jìn)行組合。一些其他的可替代方式包括:總是旋轉(zhuǎn)光柵掃描順序、總是旋轉(zhuǎn)遍歷掃描順序、總是旋轉(zhuǎn)水平光柵掃描順序、或者總是旋轉(zhuǎn)遍歷掃描順序、總是旋轉(zhuǎn)水平光柵掃描順序、總是旋轉(zhuǎn)垂直光柵掃描順序、總是旋轉(zhuǎn)水平遍歷掃描順序、以及總是旋轉(zhuǎn)垂直遍歷掃描順序。第九實施例。如圖10a和圖10b以及圖12a和圖12b所示,使用180度旋轉(zhuǎn)的遍歷掃描的掃描順序以及使用180度旋轉(zhuǎn)的光柵掃描的掃描順序,總是從塊的末尾處(右下角)開始,到塊的起始處(左上角)。該第九實施例在調(diào)色板索引地圖編碼中跳過最后一段調(diào)色板運行類型標(biāo)志last_run_type_flag。最后一段調(diào)色板運行類型標(biāo)志指示最后一段運行的調(diào)色板運行類型是copy_abocve模式還是copy_index模式。當(dāng)掃描順序被180度旋轉(zhuǎn)時,可跳過該標(biāo)志,這是因為從幾何學(xué)上來說,第一個運行類型總是copy_index模式。第十實施例。前面多個實施例中所述的180度旋轉(zhuǎn)在調(diào)色板索引地圖編碼中引入另外的掃描模式。根據(jù)塊尺寸限制,該第十實施例對掃描調(diào)色板索引地圖中的順序應(yīng)用了旋轉(zhuǎn)。旋轉(zhuǎn)僅當(dāng)塊尺寸處于旋轉(zhuǎn)尺寸限制內(nèi)時使用。舉例而言,當(dāng)旋轉(zhuǎn)尺寸限制設(shè)置為32時,允許在掃描8×8、16×16和32×32塊時使用旋轉(zhuǎn)后的掃描順序。若旋轉(zhuǎn)尺寸限制設(shè)置為16或8,則只允許分別對8×8和16×16掃描或者8×8掃描進(jìn)行旋轉(zhuǎn)。利用塊尺寸限制,對于塊尺寸大于旋轉(zhuǎn)尺寸限制的情況,不對旋轉(zhuǎn)標(biāo)志index_rotation_flag進(jìn)行編碼或解析。換言之,僅當(dāng)塊的寬度小于或等于旋轉(zhuǎn)尺寸限制時,出現(xiàn)旋轉(zhuǎn)標(biāo)志。塊尺寸限制可以與上述使用旋轉(zhuǎn)掃描順序的任意實施例一起使用。舉例而言,調(diào)色板索引地圖旋轉(zhuǎn)的塊尺寸限制僅應(yīng)用于水平光柵掃描順序、垂直光柵掃描順序、水平遍歷掃描順序、垂直遍歷掃描順序或其任意組合。圖13顯示若旋轉(zhuǎn)尺寸限制為8并對水平和垂直光柵掃描應(yīng)用旋轉(zhuǎn)時對塊尺寸8×8、16×16和32×32可用的光柵掃描模式的表的示意圖。旋轉(zhuǎn)水平光柵(rotated_horizontal_raster)與旋轉(zhuǎn)垂直光柵(rotated_vertical_raster)掃描順序僅應(yīng)用于8×8塊。圖14顯示若旋轉(zhuǎn)尺寸限制為8并只對水平光柵掃描應(yīng)用旋轉(zhuǎn)時對塊尺寸8×8、16×16和32×32的光柵掃描模式的表的示意圖。在第五、第六、第七和第十實施例中所述的有條件的發(fā)送也可以應(yīng)用于其他類型的可替代后向掃描(backwardscan)中,舉例而言,行翻轉(zhuǎn)的(row-flipped)水平掃描及列翻轉(zhuǎn)的(columnflipped)垂直掃描。盡管記載了調(diào)色板編碼方法的第一實施例至第十實施例,本發(fā)明并不僅限于這些實施例。在每個實施例中,使用預(yù)測偏移的視頻編碼方法的選擇是顯示多種實施例的一個實施例,并不應(yīng)理解為本發(fā)明任意實施例的限制或要求。以上說明是有關(guān)于使能本領(lǐng)域技術(shù)人員根據(jù)特定應(yīng)用的說明及其需求來實施本發(fā)明。本領(lǐng)域技術(shù)人員可明了對記載的多個實施例的多種修改,此處所定義的基本原則可以應(yīng)用于其他實施例。因此,本發(fā)明不應(yīng)僅限于說明書中所顯示和所述的特定實施例,而應(yīng)為符合此處所述基本原則與新的特征的最寬廣的范圍。在以上詳細(xì)說明中,顯示了各種具體細(xì)節(jié),其目的在于為公眾提供對本發(fā)明的全面理解。然而,本領(lǐng)域技術(shù)人員應(yīng)當(dāng)理解,本發(fā)明可以實施。本發(fā)明的上述多個實施例可以實施為多種硬件、軟件代碼或其組合。舉例而言,本發(fā)明的一個實施例可以是集成于視頻壓縮芯片中的電路、或集成于視頻壓縮軟件中的程序代碼,用以執(zhí)行此處所述的操作。本發(fā)明的一個實施例也可以是在數(shù)字信號處理器(dsp)上運行以執(zhí)行此處所述操作的程序代碼。本發(fā)明也可以包括由計算機(jī)處理器、數(shù)字信號處理器、微處理器或現(xiàn)場可編程門陣列(fieldprogrammablegatearray,fpga)所執(zhí)行的多個功能。這些處理器可以配置為通過執(zhí)行定義了本發(fā)明所體現(xiàn)的具體方法的機(jī)器可讀軟件代碼或固件代碼,來執(zhí)行根據(jù)本發(fā)明的特定任務(wù)。軟件代碼或固件代碼可以使用不同的編程語言及不同的格式或類型來開發(fā)。軟件代碼也可以為不同的目標(biāo)平臺而編譯。然而,軟件代碼的不同的代碼格式、類型及語言,以及配置代碼以執(zhí)行根據(jù)本發(fā)明的多個任務(wù)的其他方式,不脫離本發(fā)明的精神與范圍。在不脫離本發(fā)明的精神和實質(zhì)特征的情況下,本發(fā)明可以體現(xiàn)為其他具體形式。以上記載的多個實施例的所有方面僅用于說明而非限制本發(fā)明。因此,本發(fā)明的保護(hù)范圍當(dāng)視后附的權(quán)利要求所界定者為準(zhǔn)。在權(quán)利要求的意義及其等效范圍內(nèi)所作出的所有改變,均包含于權(quán)利要求的保護(hù)范圍內(nèi)。當(dāng)前第1頁12當(dāng)前第1頁12