本申請要求于2014年10月6日Haoping Yu等人遞交的第62/060,450號、發(fā)明名稱為“HEVC SCC中改進的調色板模式”的美國臨時專利申請案的在先申請優(yōu)先權,該在先申請案以引入的方式并入本文。
參考縮微膠片附錄
不適用
背景技術:
即使是描述相對較短的電影也需要大量的視頻數(shù)據(jù)量,這可能導致在流式傳輸或通過具有有限帶寬容量的通信網絡傳送數(shù)據(jù)時出現(xiàn)困難。因此,視頻數(shù)據(jù)通常在通過現(xiàn)代電信網絡傳送之前被壓縮。視頻壓縮設備通常在源頭使用軟件和/或硬件于傳輸之前對視頻數(shù)據(jù)進行編碼,從而減少表示數(shù)字視頻圖像所需的數(shù)據(jù)量。然后由解碼視頻數(shù)據(jù)的視頻解壓設備在目的地接收壓縮數(shù)據(jù)。隨著有限的網絡資源和對更高視頻質量日益增長的需求,在不增加比特率的情況下提高圖像質量的改進的壓縮和解壓縮技術合乎所需。
技術實現(xiàn)要素:
在一實施例中,本發(fā)明包括一種編碼方法,包括:接收包括屏幕內容的視頻幀;生成包含所述視頻幀中的屏幕內容的顏色的索引圖的塊,其中所述塊包括索引值字符串;處理器通過單個轉義顏色索引值和標識有多少連續(xù)轉義顏色索引值已被編碼的運行值對第一索引值字符串中的一個或多個連續(xù)索引值進行編碼;在所述塊的所有索引值字符串都已被編碼之后,所述處理器對所述兩個或多個連續(xù)索引值對應的轉義顏色進行順序編碼;以及可操作地耦合至所述處理器的發(fā)射器在比特流中將所述索引值字符串和所述轉義顏色傳輸給解碼裝置。
在另一實施例中,本發(fā)明包括一種編碼方法,包括:接收包括屏幕內容的視頻幀;生成包含所述視頻幀中的屏幕內容的顏色的索引圖的塊,其中所述塊包括索引值字符串;處理器對包括轉義顏色索引值的第一索引值字符串進行編碼;所述處理器通過從所述第一索引值字符串中復制所述轉義顏色索引值對包括所述轉義顏色索引值的第二索引值字符串進行編碼;在所述塊的所有索引值字符串都已被編碼之后,所述處理器對所述第一索引值字符串中和所述第二索引值字符串中的所述轉義顏色索引值對應的轉義顏色進行順序編碼;以及可操作地耦合至所述處理器的發(fā)射器在比特流中將所述索引值字符串和所述轉義顏色傳輸給解碼裝置。
在又一實施例中,本發(fā)明包括一種編碼裝置,包括:處理器,用于:接收包括屏幕內容的視頻幀;生成包含所述視頻幀中的屏幕內容的顏色的索引圖的塊,其中所述塊包括共享相同轉義顏色索引值的索引值字符串,所述轉義顏色索引值表示轉義顏色;對所述塊中的每個所述索引值字符串進行編碼;以及在所述塊中的每個所述索引值字符串都已被編碼之后,對所述轉義顏色進行順序編碼;以及發(fā)射器,可操作地耦合至所述處理器,并用于在比特流中將所述索引值字符串和所述轉義顏色傳輸給解碼裝置。
通過以下結合附圖和權利要求的詳細描述,這些以及其它特征將會被更清楚地理解。
附圖說明
為了更透徹地理解本發(fā)明,現(xiàn)參閱結合附圖和具體實施方式而描述的以下簡要說明,其中的相同參考標號表示相同部分。
圖1是用于使用調色板模式說明索引圖編碼的塊中的索引圖顏色的圖;
圖2A是使用簡化上下文模型進行編碼的方法的一實施例的流程圖;
圖2B是使用簡化上下文模型進行編碼的方法的一實施例的流程圖;
圖2C是使用簡化上下文模型進行編碼的方法的一實施例的流程圖;
圖3是分組索引編碼方案的一實施例的圖;
圖4是大規(guī)模并行處理的一實施例的圖;
圖5是視頻編碼器的一實施例的示意圖;
圖6是視頻解碼器的一實施例的示意圖;
圖7是可以包括編碼器和解碼器的網絡單元的一實施例的示意圖;
圖8是典型的通用網絡組件或計算機系統(tǒng)的示意圖。
具體實施方式
首先應理解,盡管下文提供一項或多項實施例的說明性實施方案,但所公開的系統(tǒng)和/或方法可使用任何數(shù)目的技術來實施,無論該技術是當前已知還是現(xiàn)有的。本發(fā)明決不應限于下文所說明的說明性實施方案、附圖和技術,包括本文所說明并描述的示例性設計和實施方案,而是可在所附權利要求書的范圍以及其等效物的完整范圍內修改。
通常,視頻媒體涉及相對快速連續(xù)地顯示靜止圖像或幀的序列,從而使觀看者感知運動。每個幀可包括多個圖像元素或像素,每個圖像元素或像素可表示幀中的單個參考點。在數(shù)字處理期間,可以給每個像素分配整數(shù)值(例如,0、1、……、或255),該整數(shù)值表示在相應參考點處的圖像質量或特征,如亮度或色度。在使用中,圖像或視頻幀可包括大量像素(例如,1920×1080幀中的2,073,600個像素)。因此,獨立地對每個像素進行編碼和解碼(以下簡稱為編碼)可能繁瑣又低效。為了提高編碼效率,通常會將視頻幀分成多個矩形塊或宏塊,其可以作為諸如預測、變換和量化等處理的基本單元。例如,典型的NxN塊可包括N2個像素,其中N是大于1的整數(shù)且通常是4的倍數(shù)。
在國際電信聯(lián)盟(International Telecommunications Union,簡稱ITU)電信標準化部門(International Telecommunications Union Telecommunications Standardization Sector,簡稱ITU-T)和國際標準化組織(International Organization for Standardization,簡稱ISO)/國際電工技術委員會(International Electrotechnical Commission,簡稱IEC)中,引入了用于高效視頻編碼(High Efficiency Video Coding,簡稱HEVC)的新的塊概念。例如,編碼單元(Coding Unit,簡稱CU)可以指將視頻幀子分割成的具有相等或可變尺寸的矩形塊。在HEVC中,CU可以替換以前的標準的宏塊結構。取決于幀間或幀內預測的模式,CU可包括一個或多個預測單元(Prediction Unit,簡稱PU),每個預測單元可作為預測的基本單位。例如,對于幀內預測,8x8CU可以對稱地分成四個4x4PU。再如,對于幀間預測,64x64CU可以不對稱地分成16x64PU和48x64PU。類似地,PU可包括一個或多個變換單元(Transform Unit,簡稱TU),每個變換單元可作為變換和/或量化的基本單元。例如,32x32PU可以對稱地分成四個16x16TU。一個PU的多個TU可以共享相同的預測模式,但是卻可以單獨變換。此處,術語塊通??梢灾负陦K、CU、PU或TU中的任意一個。
取決于本申請,可以以無損模式(例如,無失真或信息丟失)或有損模式(例如,具有失真)對塊進行編碼。在使用中,可以使用無損模式對高質量視頻(例如,具有4:4:4的YUV二次采樣)進行編碼,而可以使用有損模式對低質量視頻(例如,具有4:2:0的YUV二次采樣)進行編碼。如此處所使用的,YUV中的Y分量指的是顏色的亮度(亮度或亮度),而U和V分量指的是顏色本身(色度)。有時,單個視頻幀或切片(例如,具有4:4:4或4:2:0的YUV二次采樣)可以同時使用無損和有損模式對多個區(qū)域進行編碼,所述多個區(qū)域可以是矩形或不規(guī)則形狀的。每個區(qū)域可包括多個塊。例如,復合視頻可包括諸如文本和計算機圖形內容(例如,非攝像機捕獲的圖像)和自然視圖內容(例如,攝像機捕獲的視頻)等不同類型的內容的組合。在復合幀中,可以以無損模式對文本和圖形的區(qū)域進行編碼,而可以以有損模式對自然視圖內容的區(qū)域進行編碼。在例如計算機屏幕共享應用中可能需要文本和圖形的無損編碼,因為有損編碼可能會導致文本和圖形的質量或保真差,這可能會導致眼睛疲勞。
隨著半導體、組網、通信、顯示器、計算機以及諸如平板電腦和智能手機等設備的快速且持續(xù)的進步,許多應用需要基于HEVC的壓縮/編碼解決方案,其能夠以高視覺質量有效地壓縮非攝像機捕獲的視頻內容。該非攝像機捕獲的視頻內容,此處可稱為屏幕內容,可包括計算機生成的圖形、具有應用中常見的如窗口切換和移動、文本滾動等典型動作的文本。在許多情況下,所述非攝像機捕獲的視頻內容以高對比度提供具有不同顏色的清晰紋理和銳利邊緣,并且可以具有4:4:4顏色采樣格式。
當前HEVC屏幕內容編碼引入了調色板模式以更有效地表示計算機屏幕。在以引用方式并入文本,R.Joshi和J.Xu的2014年10月(HEVC SCC),法國斯特拉斯堡,HEVC屏幕內容編碼的工作草案2,MPEG-N14969/JCTVC-S1005中,描述了調色板模式。所述調色板模式也在屏幕內容編碼測試模型(Screen Content Coding Test Model,簡稱SCM)2.0參考軟件中使用。
盡管所述調色板模式在當前HEVC框架內提供了效率,但仍然還有改進的空間。此處公開了用于改進的視頻編碼的系統(tǒng)和方法。本發(fā)明提供了簡化的熵(例如,無損)編碼方案。為了降低整體復雜度,編碼方案會在索引圖處理結束時對轉義值進行編碼。通過這樣做,即使索引圖包含轉義顏色相對應的索引值,編碼方案在使用例如COPY_ABOVE_MODE時也會增加索引匹配的數(shù)量。另外,由于轉義值的交織編碼和索引的其它語法,HEVC SCC中的當前解決方案不支持索引圖的并行處理,而與HEVC SCC中的當前解決方案相反,該編碼方案支持索引圖和轉義顏色的并行處理。此外,該編碼方案簡化了索引圖編碼的設計,在不犧牲性能的情況下提高了吞吐量,并且使得編碼更易于描述和實現(xiàn)。
在可能特別適合于屏幕生成內容編碼的基于調色板的編碼中,視頻編碼器(例如,視頻編碼器或視頻解碼器)形成了表示給定塊的視頻數(shù)據(jù)的顏色的“調色板”。調色板可包括給定塊中的最主要(例如,經常使用)的顏色。給定塊的視頻數(shù)據(jù)中不經常或很少表現(xiàn)的顏色不包括在調色板中。不包括在調色板中的顏色稱為轉義顏色。
在調色板模式編碼期間對與給定塊相對應的索引圖進行編碼時,給調色板中包括的每個顏色分配索引值。例如,如果調色板中包括黑色和白色,則白色可以具有索引值0,黑色可以具有索引值1。另外,不包括在調色板中的每個顏色也被分配了例如單個或共同索引值。例如,如果調色板中不包括藍色、綠色和紅色,則這些顏色都會具有索引值3。不包括在調色板中的顏色的索引值可稱為轉義顏色索引值。
當前HEVC SCC草案使用基于運行的一維(One-Dimensional,簡稱1-D)字符串復制。盡管如此,在以引用方式并入文本,由W.Wang、Z.Ma、M.Xu、H.Yu的2014年10月,法國斯特拉斯堡,第JCTVC-S0151號,“非CE6:HEVC SCC中調色板模式的2-D索引圖編碼”以及于2014年10月遞交的第62/060,450號,名稱為“HEVC SCC中的調色板模式”的美國臨時專利申請案中,已經提出了二維(Two-Dimensional,簡稱2-D)字符串復制方法。雖然為了簡明起見在本文中沒有完全描述,但是本領域技術人員將理解,在某些情況下,2-D字符串復制方法可以默認為基于運行的1-D字符串復制方法。
當使用1-D字符串方法進行調色板模式的索引模式編碼時,對于每個CU,涉及兩個主要部分。這兩個部分是顏色表處理和索引圖編碼。舉例來說,1-D字符串方法的索引圖編碼可以使用COPY_ABOVE模式,其中COPY_ABOVE_MODE應用于指示當前字符串是否與來自當前字符串正上方的字符串中的索引相同。
圖1示出了將用于提供使用調色板模式的索引圖編碼的示例的索引圖顏色的8x8塊100。如圖所示,塊100中的頂部字符串102具有索引值1、1、1、1、2、2、2和2(從左到右),緊接在頂部字符串102下面的字符串104具有索引值1、1、1、1、1、1、1和1,塊100中的下一個字符串106具有索引值1、1、1、1、1、1、1和1,塊100中的下一個字符串108具有索引值1、1、3(其中3表示藍色)、2、2、2、2和2,塊100中的下一個字符串110具有索引值1、1、3(其中3表示綠色)、2、2、2、2和2,塊100中的下一個字符串112具有索引值1、1、3(其中3表示紅色)、2、2、2、2和2,塊100中的下一個字符串114具有索引值2、2、2、2、2、2、2和2,塊100中的底部字符串116具有索引值2、2、2、2、2、2、2和2。為了在比特流中對第一字符串102進行編碼,使用了palette_run_type標志(例如,1位palette_run_type_flag)、索引值以及運行值。
該palette_run_type標志指示當前字符串上面的字符串中的任意索引值是否已被復制。如果上面的字符串的一部分已被復制,則將該palette_run_type標志設置為表示COPY_ABOVE_MODE的第一二進制數(shù)(例如,1)。如果上面的字符串尚未被復制,則將該palette_run_type標志設置為表示COPY_INDEX_MODE的第二二進制數(shù)(例如,0)。對頂部字符串102進行編碼時,將palette_run_type標志默認設置為0,因為頂部字符串102的上面沒有設置字符串。索引值是在塊100中的字符串內表示的特定數(shù)值(例如,1或2)。運行值指可以復制多少個連續(xù)索引值。例如,如果運行值設置為1,則復制單個索引值。如果運行值設置為2,則復制兩個連續(xù)索引值。如果運行值設置為3,則復制三個連續(xù)運行值,等等。所以,為了對具有索引值1、1、1、1、2、2、2、2的頂部字符串102進行編碼,使用以下語法:palette_run_type_flag=0,索引值=1,運行值=4,palette_run_type_flag=0,索引值=2,運行值=4。
為了對具有索引值1、1、1、1、1、1、1、1的下一個字符串104進行編碼,可以使用以下語法:palette_run_type_flag=1,運行值=4,palette_run_type_flag=0,索引值=1,運行值=4?;蛘撸部梢允褂靡韵抡Z法:palette_run_type_flag=0,運行值=8。為了對具有索引值1、1、1、1、1、1、1、1的下一個字符串106進行編碼,使用以下語法:palette_run_type_flag=1,運行值=8。用于編碼的特定語法可以由例如速率失真優(yōu)化模塊或其它合適的編碼器組件來確定。速率失真優(yōu)化模塊可以基于例如哪一個語法對編碼最有效來選擇特定語法。例如,字符串104和106中的所有索引可以被編碼為palette_run_type_flag=0,索引值=1,運行=16。
下一個字符串108具有索引值1、1、3、3、2、2、2、2,其中3是對應于轉義顏色藍色或轉義顏色綠色的轉義顏色索引值。使用現(xiàn)有的傳統(tǒng)編碼方案,使用以下語法對下一個字符串108進行編碼:palette_run_type_flag=1,運行值=2,palette_run_type_flag=0,索引值=3,轉義顏色=藍色,palette_run_type_flag=0,索引值=3,轉義顏色=綠色,palette_run_type_flag=0,索引值=2,運行值=4。同樣地,使用現(xiàn)有的傳統(tǒng)編碼方案,使用以下語法對下一個字符串110進行編碼:palette_run_type_flag=1,運行值=2,palette_run_type_flag=0,索引值=3,轉義顏色=綠色,palette_run_type_flag=0,索引值=3,轉義顏色=藍色,palette_run_type_flag=1,運行值=4。使用現(xiàn)有的傳統(tǒng)編碼方案,使用以下語法對下一個字符串112進行編碼:palette_run_type_flag=1,運行值=2,palette_run_type_flag=0,索引值=3,轉義顏色=紅色,palette_run_type_flag=1,運行值=5。
所以,如上所示,當使用傳統(tǒng)編碼方案對下一個字符串108、下一個字符串110和下一個字符串112進行編碼時,緊接在塊100中的轉義顏色索引值之后對特定轉義顏色的標識進行編碼。遺憾的是,以這種方式進行編碼有缺點。例如,當同一字符串或相鄰字符串中的轉義顏色互不相同時,充分利用COPY_ABOVE_MODE和COPY_INDEX_MODE的能力會受到限制。例如,當下一個字符串108中的轉義顏色索引值3對應的轉義顏色是藍色,且下一個字符串110中的轉義顏色索引值3對應的轉義顏色是綠色時,會因為每個字符串的轉義顏色不同而丟失使用COPY_ABOVE_MODE的能力。類似地,需要使用兩個palette_run_type_flag=0的語法元素來單獨地對兩個連續(xù)轉義顏色進行編碼。
然而,已經發(fā)現(xiàn)存在對塊100中的字符串(例如,字符串108–112)進行編碼的方法,使得即使在相鄰字符串的轉義顏色互不相同時,也可以使用COPY_ABOVE_MODE和COPY_INDEX_MODE功能。在這方面,提出了一種編碼方案,其中,將轉義顏色索引值編碼為對字符串進行編碼的一部分,而轉義顏色本身則是在索引圖編碼結束時被順序編碼而不是緊接在轉義顏色索引值之后就被編碼。再次參閱圖1,所提出的新編碼方案的示例介紹如下。
為了對下一個字符串108進行編碼,使用以下語法:palette_run_type_flag=1,運行值=2,palette_run_type_flag=0,索引值=3,運行值=2,palette_run_type_flag=0,索引值=2,運行值=4。下一個字符串110被編碼為:palette_run_type_flag=1,運行值=8。下一個字符串112被編碼為:palette_run_type_flag=0,索引值=2,運行值=2,palette_run_type=0,索引值=3,運行值=1,palette_run_type_flag=0,索引值=2,運行值=5。因此,即使這些字符串中的轉義顏色是不同的,也能使用具有運行值的COPY_ABOVE_MODE或COPY_INDEX_MODE對字符串108、110和112中的轉義顏色進行編碼。
繼續(xù)進行對塊100的編碼,下一個字符串114被編碼為:palette_run_type_flag=0,索引值=2,運行值=8。底部字符串116被編碼為palette_run_type_flag=1,運行值=8。在一實施例中,下一個字符串110、112、114和116可以被編碼為:palette_run_type_flag=1,運行值=11,palette_run_type_flag=0,索引值=2,運行值=21。
在塊110中的字符串102–116中的每一個都已如上所述被編碼之后,在索引圖編碼結束時對轉義顏色進行順序編碼。因此,在底部字符串116的索引圖編碼之后,對以下語法進行編碼以按照它們在塊100中遇到的順序標識每個轉義顏色:轉義顏色=藍色,綠色,綠色,藍色,紅色。因此,塊中(例如,在字符串108中)遇到的第一個索引值3對應的第一個轉義顏色被標識為藍色,塊中(例如,在字符串108中)遇到的第二個索引值3對應的下一個轉義顏色被標識為綠色,塊中(例如,在字符串110中)遇到的第二個索引值3對應的下一個轉義顏色被標識為綠色,塊中(例如,在字符串110中)遇到的第二個索引值3對應的下一個轉義顏色被標識為藍色,塊中(例如,在字符串112中)遇到的第三個索引值3對應的最后一個轉義顏色被標識為紅色。通過以這種方式進行編碼,實現(xiàn)了種種益處。例如,即使在同一字符串或相鄰字符串中的轉義顏色互不相同時,也可使用COPY_ABOVE_MODE功能。另外,COPY_INDEX MODE可以用于通過單個轉義顏色索引值連同對應于連續(xù)轉義顏色數(shù)量的運行值對連續(xù)轉義顏色一起進行編碼。實際上,在一實施例中,是以相同的方法和/或類似的方式來對轉義顏色索引值和其它索引值進行編碼的。另外,新的編碼方案允許增加的匹配索引,而不必停止編碼,允許索引圖和索引圖顏色的并行處理,并簡化了索引圖編碼的設計。
圖2A是轉義顏色編碼方法200的一實施例的流程圖。該方法200可以在例如針對將要傳輸給解碼裝置的比特流對已接收到視頻幀且需要對轉義顏色進行有效地編碼時實現(xiàn)。在框塊202中,通過單個轉義顏色索引值(例如,圖1中的值3)和標識有多少個連續(xù)轉義顏色索引值被編碼的運行值來對第一索引值字符串(例如,圖1的下一個字符串108)中的一個或多個連續(xù)索引值進行編碼。在框塊204中,在塊(例如,圖1的塊100)的所有索引值字符串都已被編碼之后,對多個連續(xù)索引值對應的轉義顏色進行編碼。在一實施例中,轉義顏色互不相同。例如,第一轉義顏色可以是藍色,第二轉義顏色可以是綠色,第三轉義顏色可以是紅色,等等。本領域技術人員在閱讀本發(fā)明后將理解,也可以以相同的方式對具有轉義顏色的附加字符串(例如,頂部字符串102、下一個字符串104、下一個字符串106)進行編碼。任意附加字符串中的轉義顏色索引值將具有與其它字符串一起使用的相同轉義顏色索引值(例如,圖1中的值3)。另外,由附加轉義顏色索引值中的一個所表示的任意轉義顏色相對于第一和第二轉義顏色被順序編碼。在框塊206中,在比特流中將索引值字符串和轉義顏色傳輸給解碼裝置。
圖2B是轉義顏色編碼方法250的一實施例的流程圖。該方法250可以在例如針對將要傳輸給解碼裝置的比特流對已接收到視頻幀且需要對轉義顏色進行有效地編碼時實現(xiàn)。在框塊252中,對包括轉義顏色索引值(例如,圖1中的值3)的第一索引值字符串(例如,圖1的下一個字符串108)進行編碼。在框塊254中,通過從第一索引值字符串中復制轉義顏色索引值,對包括所述轉義顏色索引值(例如,圖1中的相同值3)的第二索引值字符串(例如,圖1的下一個字符串110)進行編碼。在一實施例中,盡管第一索引值字符串的轉義顏色索引值表示第一轉義顏色(例如,藍色),第二索引值字符串表示不同于第一轉義顏色的第二轉義顏色(例如,綠色),該復制也會發(fā)生。在一實施例中,第一索引值字符串中的轉義顏色索引值是第一字符串(例如,第一字符串1 1 2 3 2 3 1 1)中的多個轉義顏色索引值之一,第二索引值字符串中的轉義顏色索引值是第二字符串(例如,第二字符串2 1 2 3 2 3 1 1)中的多個轉義顏色索引值之一。在一實施例中,第一索引值字符串中的轉義顏色索引值是第一字符串(例如,第一字符串1 1 2 3 3 3 1 1)中的多個連續(xù)轉義顏色索引值之一,第二索引值字符串中的轉義顏色索引值是第二字符串(例如,第二字符串2 1 2 3 3 3 1 1)中的多個連續(xù)轉義顏色索引值之一。在這兩種情況下,將通過從第一字符串中復制最后7個索引值對第二字符串的最后7個索引值,包括轉義顏色索引值,一起進行編碼。
在框塊256中,在塊(例如,圖1的塊100)的所有索引值字符串都已被編碼之后,對第一轉義顏色(例如,藍色)和第二轉義顏色(例如,綠色)進行順序編碼。本領域技術人員在閱讀本發(fā)明后將理解,在框塊252中可以在第一索引值字符串之前對附加字符串(例如,頂部字符串102、下一個字符串104、下一個字符串106)進行編碼。另外,在框塊254中,可以在第二索引值字符串之后對附加字符串(例如,下一個字符串112、下一個字符串114和底部字符串116)進行編碼。任意附加字符串中的附加轉義顏色索引值將具有與其它字符串一起使用的相同轉義顏色索引值(例如,圖1中的值3)。另外,由附加轉義顏色索引值中的一個所表示的任意轉義顏色相對于第一和第二轉義顏色被順序編碼。在框塊258中,在比特流中將索引值字符串和轉義顏色傳輸給解碼裝置。
圖2C是轉義顏色編碼方法270的一實施例的流程圖。該方法270可以在例如比特流已被解碼裝置接收且需要對轉義顏色進行解碼以便顯示例如屏幕內容時實現(xiàn)。在框塊272中,接收比特流的解碼器掃描塊中的索引值字符串。一個或多個索引值字符串包含表示轉義顏色(例如,藍色、紅色、綠色等)的相同轉義顏色索引值(例如,值3)。在框塊274中,解碼器順序掃描在塊中的索引值字符串之后被編碼的轉義顏色,以確定與一個或多個索引值字符串中的每個相同轉義顏色索引值相對應的轉義顏色。此后,例如可以為用戶顯示與比特流中的信息相對應的屏幕內容。
此處所描述的用于改進的轉義編碼的語法的示例如表1所示:
表1——改進的轉義編碼的語法示例
除了上面所提到的轉義編碼方案之外,可以執(zhí)行分組索引編碼方案以改進編碼。在當前HEVC SCC草案中,在CU級別對索引圖進行處理。例如,對于2Nx2N CU,根據(jù)如圖3所示的預定義掃描順序,從第一個位置到最后一個位置對索引圖進行處理。
顯然,吞吐量受限于要處理的位置的數(shù)量。因此,分組索引(或索引組)可以用于實現(xiàn)圖4所示的大規(guī)模并行處理。分組方式可以實現(xiàn)為:
針對所有CU尺寸的固定4x4尺寸
針對任意2Nx2N CU的NxN尺寸
針對任意2Nx2N CU的N/2x2N或2NxN/2尺寸
對于每個索引組,可以重新初始化基于上下文的自適應二進制算術編碼(Context-Adaptive Binary Arithmetic Coding,簡稱CABAC)狀態(tài),以便實現(xiàn)并行熵編碼。
為了進一步提高其編碼效率,可以引入附加標志來指示當前索引組是相同顏色還是可以從上面的行完全復制。利用該標志,編碼效率顯著提高。
除了上面所提到的分組索引編碼方案之外,可以執(zhí)行CU尺寸相關的顏色表尺寸方案以改進編碼。使用CU相關的自適應顏色表尺寸,而不是針對所有CU尺寸應用固定表尺寸?;旧希瑢τ谳^小的CU,使用較小的顏色表尺寸(對于當前表或參考表或甚二者)。這減少了對較小CU的資源需求,并且還顯著改善了吞吐量,特別是考慮到小CU處理呈現(xiàn)整個處理流水線的瓶頸的事實。
例如,32可以用作64x64和32x32 CU的參考表尺寸和當前表尺寸,16可以用于16x16和8x8CU。另外,可以將進一步限制應用于“重用”顏色選擇過程中,其中,參考顏色僅在參考表的一部分中進行評估和選擇,而不是在當前工作草案中的整個參考表中。使用此方法,將參考表設置為大于當前表尺寸以更好地跟蹤參考顏色的歷史。另外,參考顏色僅從尺寸等于當前表的參考表的子集中選擇,以提高吞吐量。對于上述示例,使用該方案,參考表尺寸增加到64,且如上所述,當前表尺寸保持不變。然而,對于64x64和32x32CU的前32個條目以及對于16x16和8x8CU的僅前16個條目,重用標志評估受限。這可以進一步提高編碼吞吐量。此外,只需要以與當前表的尺寸相同的數(shù)量而不是統(tǒng)一64位向量來用信號傳遞重用向量。
除了上面所提到的CU尺寸相關的顏色表尺寸方案之外,可以執(zhí)行對COPY_ABOVE_MODE的擴展搜索以改進編碼。當前HEVC SCC草案中的調色板(Palette,簡稱PLT)模式的索引圖編碼具有兩種模式:COPY_INDEX_MODE和COPY_ABOVE_MODE。COPY_ABOVE_MODE僅使用相鄰的上一行作為參考??梢詳U展COPY_ABOVE_MODE以引用當前CU中更上面的附加行。使用一元編碼和截斷二進制編碼或任何其它二進制化方案來對當前行和參考行之間的差進行編碼。搜索距離受限于當前CU。
除了上面所提到的對COPY_ABOVE_MODE方案的擴展搜索之外,可以執(zhí)行具有動態(tài)寬度和高度的二維(Two-Dimensional,簡稱2-D)匹配以改進編碼。當前HEVC SCC草案中的PLT模式的索引圖編碼使用基于運行的一維(One-Dimensional,簡稱1-D)匹配。對于任何給定位置,當執(zhí)行基于運行的1-D搜索時,也執(zhí)行具有變化的寬度和高度的2-D搜索。如果由2-D搜索方法所覆蓋的區(qū)域大于1-D運行值,則選擇2-D字符串模式,并將其塊向量(例如,bvx、bvy)以及高度和寬度編碼到比特流中。否則,選擇1-D匹配模式,并將其運行值編碼到比特流中。
在語法中添加1位標志2D_flag以指示當前字符串模式是2-D還是1-D。如果2D_flag=1,則對其塊向量(例如,bvx、bvy)進行編碼。添加1位bvx0標志以指示bvx是否等于0,添加1位bvy0標志以指示bvy是否等于0。如果相應的標志(例如,bvx0或bvy0)等于0,則添加1位bvx_sign標志以指示bvx是否大于0,并添加1位bvy_sign標志以指示bvy是否大于0。如果相應的標志(例如,bvx0或bvy0)等于0,則使用例如具有上下文的固定長度或具有上下文的截斷二進制代碼等對bvx或bvy的絕對值進行編碼。也使用基于上下文的或非基于上下文的編碼方法來對2-D寬度和高度的值進行編碼。當塊向量bvx和bvy都等于0,但2D_flag=1時,這意味著2-D塊實際上是單色塊,將其顏色索引編碼到比特流中。例如,假定編碼器和解碼器都已知bvx、bvy、寬度和高度的最大值,則可以應用截斷二進制編碼方法來對它們進行編碼。
圖5示出了視頻編碼器500的一實施例。視頻編碼器500可以包括如圖5中所布置的速率失真優(yōu)化(Rate-Distortion Optimization,簡稱RDO)模塊510、預測模塊520、變換模塊530、量化模塊540、熵編碼器550、解量化模塊560、逆變換模塊570、重建模塊580以及調色板創(chuàng)建和索引圖處理模塊590。在操作中,視頻編碼器500可接收包括視頻幀(或切片)序列的輸入視頻。這里,幀可以指預測幀(P幀)、幀內編碼幀(I幀)或雙向預測幀(B幀)中的任一個。同樣地,切片可以指P切片、I切片或B切片中的任一個。
RDO模塊510可用于針對一個或多個其它模塊協(xié)調或做出邏輯決策。例如,基于一個或多個之前已編碼的幀,RDO模塊510可以確定如何將正被編碼的當前幀(或切片)分成多個CU,以及如何將CU分成一個或多個PU和TU。如上所述,CU、PU和TU是在HEVC中使用的各種類型的塊。另外,RDO模塊510可以確定如何去預測當前幀。可以通過幀間和/或幀內預測來預測當前幀。對于幀內預測,在HEVC中有多個可用預測模式或方向(例如,針對Y分量的34個模式和針對U或V分量的六個模式(包括線性模式(Linear Mode,簡稱LM))),而最佳模式可以由RDO模塊510確定。例如,RDO模塊510可以針對每個預測模式計算絕對誤差的和(Sum of Absolute Error,簡稱SAE),并選擇SAE最小的預測模式。
在一實施例中,預測模塊520用于從輸入視頻中生成當前塊的預測塊。預測模塊520可以采用用于幀間預測的參考幀或用于幀內預測的當前幀中的參考像素。預測塊包括多個預測像素樣本,其中每個可基于位于對應重建亮度塊中的多個重建亮度樣本和位于對應重建色度塊中的多個重建色度樣本來生成。
在生成當前塊的預測塊時,預測塊可以減去當前塊,或者反之亦然,以生成殘余塊。殘余塊可以反饋到變換模塊530中,變換模塊530可以通過諸如離散余弦變換(Discrete Cosine Transform,簡稱DCT)等2-D正交變換將殘余樣本轉換成變換系數(shù)矩陣。然后,變換系數(shù)矩陣可以在反饋到熵編碼器550之前由量化模塊540進行量化。量化模塊540可以改變變換系數(shù)的范圍并將其舍入為整數(shù),這可以減少非零變換系數(shù)的數(shù)量。因此,可以增加壓縮比。在一實施例中,熵編碼器550用于實現(xiàn)此處公開的發(fā)明概念。
量化的變換系數(shù)可以由熵編碼器550進行掃描并編碼到編碼的比特流中。進一步地,為了促進塊的連續(xù)編碼,量化的變換系數(shù)也可以反饋到解量化模塊560中以恢復變換系數(shù)的原始范圍。然后,逆變換模塊570可以執(zhí)行變換模塊530的逆操作,并生成原始殘余塊的噪聲版本。然后,可以將有損殘余塊反饋到重建模塊580中,重建模塊580可以生成用于將來的塊的幀內預測的重建樣本。如果需要,可以在重建樣本用于幀內預測之前對其進行濾波。在一實施例中,圖5的編碼器500和/或調色板創(chuàng)建和索引圖處理模塊590用于實現(xiàn)圖2A和圖2B的方法200。
應當注意,圖5可為視頻編碼器的簡化說明,因此其可僅包括存在于視頻編碼器中的模塊的一部分。盡管在圖5中未示出,也可以包括其它模塊(例如,濾波器、掃描儀和發(fā)射器)以方便于本領域技術人員所理解的視頻編碼。此外,取決于該編碼方案,可以略過視頻編碼器中的一些模塊。例如,在某些視頻內容的無損編碼中,可能不允許信息丟失,因此可以略過量化模塊540和解量化模塊560。再如,如果殘余塊是被直接編碼而不是轉換為變換系數(shù),則可以略過變換模塊530和逆變換模塊570。此外,在從編碼器傳輸之前,編碼的比特流可以用于包括其它信息,例如視頻分辨率、幀速率、塊分割信息(尺寸、坐標)、預測模式等,使得編碼的視頻幀序列可以由視頻解碼器恰當?shù)剡M行解碼。
圖6示出了視頻解碼器600的一實施例。視頻解碼器600可與圖5的視頻編碼器500相對應,且可包括如圖6中所布置的熵解碼器610、解量化模塊620、逆變換模塊630、預測模塊640、重建模塊650以及調色板恢復和索引圖解碼模塊690。在操作中,包含視頻幀序列的信息的編碼的比特流可以由熵解碼器610接收,熵解碼器610可將比特流解碼為未經壓縮的格式??梢陨闪炕淖儞Q系數(shù)的矩陣,其隨后可反饋到解量化模塊620中,解量化模塊620可與圖5中的解量化模塊560相同或類似。然后,解量化模塊620的輸出可反饋到逆變換模塊630,逆變換模塊630可將變換系數(shù)轉換為殘余塊的殘余值。另外,包含當前塊的預測模式的信息也可以由熵解碼器610進行解碼。預測模塊640可基于此處公開的發(fā)明概念生成當前塊的預測塊。在一實施例中,熵解碼器610和/或調色板恢復和索引圖解碼模塊690用于實現(xiàn)此處公開的發(fā)明概念。
圖7示出了網絡單元700的一實施例,網絡單元700可以包括例如在網絡或系統(tǒng)內處理如上所描述的視頻幀的編碼器(例如,圖5的編碼器500)和解碼器(例如,圖6的解碼器600)。網絡單元700可以包括用于從其它網絡單元或組件、邏輯單元或處理器720中接收數(shù)據(jù)以處理數(shù)據(jù)并確定向哪個網絡單元發(fā)送數(shù)據(jù)的多個入端口710和/或接收器單元(Rx)712,以及用于向其它網絡單元傳輸數(shù)據(jù)的多個出端口730和/或發(fā)射器單元(Tx)732。所述邏輯單元或處理器720可以用于實現(xiàn)此處所描述的任何方案,例如使用轉義作為如上所描述的匹配概念的編碼及解碼和/或圖2A–2C的方法??梢允褂糜布?、軟件或二者實現(xiàn)邏輯單元720。
以上所描述的方案可在任意一個通用網絡組件中實現(xiàn),例如具有足夠的處理能力、存儲資源和網絡吞吐能力以處理置于其上的必要工作負載的計算機或網絡組件。圖8示出了適于實現(xiàn)此處公開的諸如圖2A–2C的編碼和解碼方法200、250和270等方法的一個或多個實施例的典型的通用網絡組件或計算機系統(tǒng)800的示意圖。通用網絡組件或計算機系統(tǒng)800包括處理器802(其可被稱為中央處理器或CPU),處理器802與存儲設備通信,存儲設備包括輔助存儲器804、只讀存儲器(Read Only Memory,簡稱ROM)806、隨機存取存儲器(Random Access Memory,簡稱RAM)808、輸入/輸出(input/output,簡稱I/O)設備810和網絡連通設備812。雖然示出的是單個處理器,但處理器802不限于此,并且可包括多個處理器。處理器802可用作一個或多個CPU芯片、核芯(例如,多核處理器)、現(xiàn)場可編程門陣列(Field-Programmable Gate Array,簡稱FPGA)、專用集成電路(Application Specific Integrated Circuit,簡稱ASIC)和/或數(shù)字信號處理器(Digital Signal Processor,簡稱DSP)予以實現(xiàn),和/或可以為一個或多個ASIC的一部分。處理器802可以用于實現(xiàn)此處所描述的任何方案,例如使用轉義作為匹配概念的編碼及解碼和/或圖2A–2C的方法??梢允褂糜布?、軟件或這二者實現(xiàn)處理器802。
輔助存儲器804通常包括一個或多個磁盤驅動器或磁帶驅動器,用于數(shù)據(jù)的非易失性存儲,而且如果RAM 808的容量不足以存儲所有工作數(shù)據(jù),輔助存儲器則用作溢出數(shù)據(jù)存儲設備。輔助存儲器804可以用于存儲程序,當選擇執(zhí)行這些程序時,所述程序將加載到RAM 808中。ROM 806用于存儲在程序執(zhí)行期間讀取的指令以及可能讀取的數(shù)據(jù)。ROM 806為非易失性存儲設備,其存儲容量相對于輔助存儲器804的較大存儲容量而言通常較小。RAM 808用于存儲易失性數(shù)據(jù),還可能用于存儲指令。訪問ROM 806和RAM 808通常要比訪問輔助存儲器804的速度更快。此處公開的一個或多個存儲設備(例如,RAM 808等)可以存儲當其由邏輯單元720和/或處理器802執(zhí)行時實現(xiàn)圖2A-2C的方法200、250和270的軟件、編程和/或指令。
術語網絡“元件”、“節(jié)點”、“組件”、“模塊”和/或類似術語可互換地用于一般性地描述網絡設備,且不具有特定或特殊意義,除非在本發(fā)明內另有具體說明和/或要求。
雖然本發(fā)明提供了多個具體實施例,但應當理解,所公開的系統(tǒng)和方法也可通過其它多種具體形式體現(xiàn),而不會脫離本發(fā)明的精神或范圍。本發(fā)明的實例應被視為說明性而非限制性的,且本發(fā)明并不限于本文本所給出的細節(jié)。例如,各種元件或組件可以在另一系統(tǒng)中組合或集成,或者某些特征可以省略或不實施。
此外,在不脫離本發(fā)明的范圍的情況下,各種實施例中描述和說明為離散或單獨的技術、系統(tǒng)、子系統(tǒng)和方法可以與其它系統(tǒng)、模塊、技術或方法進行組合或集成。展示或論述為彼此耦合或直接耦合或通信的其它項也可以采用電方式、機械方式或其它方式通過某一接口、設備或中間組件間接地耦合或通信。其它變更、替換、更替示例對本領域技術人員而言是顯而易見的,均不脫離此處公開的精神和范圍。