用于確定視頻數(shù)據(jù)的上下文模型的方法和系統(tǒng)的制作方法
【專利摘要】在多種實(shí)施例中,使用基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)對(duì)視頻數(shù)據(jù)系數(shù)的矩陣的重要圖進(jìn)行編碼或解碼。沿著掃描圖案逐行掃描重要圖。每行可以是掃描圖案的垂直、水平、或?qū)蔷€截面?;诓辉谝恍猩系南噜徳氐闹担x擇用于在特定行中處理的每個(gè)元素的上下文模型。相鄰元素可以限于在一個(gè)或兩個(gè)其他掃描行內(nèi)包含的那些元素。避免對(duì)相同掃描行中的鄰居的依賴性有助于并行處理。
【專利說明】用于確定視頻數(shù)據(jù)的上下文模型的方法和系統(tǒng)【技術(shù)領(lǐng)域】
[0001]本發(fā)明總體涉及視頻圖像處理,并且更具體地,涉及對(duì)視頻圖像數(shù)據(jù)編碼和解碼。
[0002]相關(guān)申請(qǐng)的交叉引用
[0003]本申請(qǐng)要求由Lou等人于2011年2月16日提交的題為“Low Complexity andParallel Processing Friendly Context Selection for Adaptive Scanning Pattern(對(duì)于自適應(yīng)掃描圖案的低復(fù)雜度且并行處理友好的上下文選擇)”的序列號(hào)為61/443700的美國臨時(shí)專利申請(qǐng)的優(yōu)先權(quán),通過引用其整體而結(jié)合于此。
[0004]本申請(qǐng)涉及由Lou等人于2011年10月5日提交的題為“Coding and DecodingUtilizing Adaptive Context Model Selection with Zigzag Scan (利用具有 Z 字形掃描的自適應(yīng)上下文模型選擇的編碼與解碼)”的美國專利申請(qǐng)N0.13/253385、由Lou等人于2011 年 10月 5 日提交的題為“Coding and Decoding Utilizing Context Model Selectionwith Adaptive Scan Pattern (利用具有自適應(yīng)掃描圖案的上下文模型選擇的編碼與解碼)”的美國專利申請(qǐng)N0.13/253933、以及由Lou等人于2012年I月9日提交的題為“Methodand System for Processing Video Data (用于處理視頻數(shù)據(jù)的方法與系統(tǒng))”的美國專利申請(qǐng) N0.13/345784。
【背景技術(shù)】
[0005]對(duì)于許多操作,視頻壓縮使用塊處理。在塊處理中,相鄰像素的塊被分組為編碼單元,并且壓縮操作將該組像素看做一個(gè)單元,以利用編碼單元內(nèi)的相鄰像素之間的相關(guān)性?;趬K的處理通常包括預(yù)測(cè)編碼和變換編碼。具有量化的變換編碼是一種類型的數(shù)據(jù)壓縮,由于從源圖片獲得的變換塊的量化通常丟棄與源圖片中的變換塊相關(guān)的數(shù)據(jù),所以其通常是“有損的”,由此降低其帶寬要求,但是通常也導(dǎo)致來自源圖片的原始變換塊的再生時(shí)的質(zhì)量損失。
[0006]還被已知為H.264的MPEG-4AVC是已建立的視頻壓縮標(biāo)準(zhǔn),其在塊處理中使用變換編碼。在H.264中,圖片被劃分為16X 16像素的宏塊(MB)。每個(gè)MB通常被進(jìn)一步劃分為更小的塊。使用圖片內(nèi)/圖片間預(yù)測(cè),預(yù)測(cè)尺寸等于或小于MB的塊,并且對(duì)預(yù)測(cè)殘差應(yīng)用空間變換以及量化。通常使用熵編碼方法(即,可變長度編碼或算術(shù)編碼)對(duì)殘差的量化后的變換系數(shù)進(jìn)行編碼。在H.264中引入上下文自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC),以通過結(jié)合自適應(yīng)二進(jìn)制算術(shù)編碼技術(shù)與上下文模型的集合,提供基本無損的壓縮效率。上下文模型選擇在提供自適應(yīng)程度和冗余縮減方面在CABAC中發(fā)揮作用。H.264指定在2D塊上的兩種掃描圖案。Z字形掃描被用于以逐行視頻壓縮技術(shù)編碼的圖片,并且交錯(cuò)掃描用于以隔行視頻壓縮技術(shù)編碼的圖片。
[0007]繼H.264之后開發(fā)的國際視頻編碼標(biāo)準(zhǔn)HEVC (高效視頻編碼)將變換塊尺寸擴(kuò)展至16 X 16和32X32像素,以有助于高清(HD)視頻編碼。
【專利附圖】
【附圖說明】[0008]以下參考附圖更詳細(xì)地描述本發(fā)明的多種實(shí)施例。
[0009]然而,注意,附圖示出本發(fā)明的實(shí)施例,并且從而不被認(rèn)為是其范圍的限制,對(duì)于本發(fā)明,可以允許其他同效的實(shí)施例。
[0010]圖1A是可以在其中使用本發(fā)明的多種實(shí)施例的視頻系統(tǒng);
[0011]圖1B是可以在其上實(shí)現(xiàn)本發(fā)明的實(shí)施例的計(jì)算機(jī)系統(tǒng);
[0012]圖2A、圖2B、圖3A和圖3B示出根據(jù)本發(fā)明的實(shí)施例的特定視頻編碼原理;
[0013]圖4A和圖4B示出對(duì)于根據(jù)本發(fā)明的實(shí)施例的編碼器和解碼器的可能結(jié)構(gòu);
[0014]圖5A和圖5B示出根據(jù)本發(fā)明的實(shí)施例的進(jìn)一步的視頻編碼原理;
[0015]圖6A至圖6E示出可以結(jié)合本發(fā)明的多種實(shí)施例使用的可能的掃描圖案;
[0016]圖7A和圖7B示出可以在本發(fā)明的實(shí)施例中使用的處理方法;
[0017]圖8至圖15示出在本發(fā)明的實(shí)施例中相鄰元素如何用于確定上下文模型;以及
[0018]圖16至圖51示出本發(fā)明的替換實(shí)施例。
【具體實(shí)施方式】
[0019]現(xiàn)在描述本發(fā)明的多種實(shí)施例和特征。在本發(fā)明的一個(gè)實(shí)施例中,使用基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC),對(duì)視頻數(shù)據(jù)系數(shù)的矩陣的重要圖(significancemap)進(jìn)行編碼或解碼。更具體地,沿著掃描圖案逐行(稱為掃描行)掃描(編碼或解碼)用于量化和變換后的系數(shù)的矩陣的重要圖。每個(gè)掃描行都可以是掃描圖案的垂直、水平、或?qū)蔷€截面?;诓辉谔囟⊕呙栊兄卸窃谄渌麙呙栊兄械南噜徳氐闹担x擇用于在該特定掃描行中處理的每個(gè)元素的上下文模型。在一些實(shí)施例中,相鄰元素在不超過兩個(gè)其他掃描行中。在其他實(shí)施例中,相鄰元素僅在一個(gè)其他掃描行中。
[0020]避免依賴于相同掃描行中的鄰居有助于并行處理。例如,第一編碼器可以處理沿著掃描行的二進(jìn)制數(shù),同時(shí)第二編碼器可以并行地處理同一掃描行中的另一個(gè)二進(jìn)制數(shù)。通過用于兩個(gè)二進(jìn)制數(shù)中的每個(gè)的上下文模型不相互依賴的事實(shí),有助于同步處理。也就是說,由第一編碼器處理的二進(jìn)制數(shù)對(duì)于其上下文模型的選擇不取決于正被第二編碼器處理的二進(jìn)制數(shù)。
[0021]在本發(fā)明的另一個(gè)實(shí)施例中,給出變換域中的塊,按照掃描圖案對(duì)相關(guān)聯(lián)的重要圖進(jìn)行編碼。掃描圖案對(duì)于當(dāng)前塊、當(dāng)前片、當(dāng)前圖片或當(dāng)前序列被預(yù)先確定,或者其能夠是可用于當(dāng)前塊、當(dāng)前片、當(dāng)前圖片或當(dāng)前序列的幾個(gè)可能的掃描圖案之一。
[0022]在本發(fā)明的還有的另一個(gè)實(shí)施例中,基于變換域中的元素的頻率位置,選擇用于重要圖中的元素的上下文模型。因?yàn)橄嗤l率位置處的那些元素之間的可能的高相關(guān)性,變換域中的低頻位置中的元素可以與在其他變換塊中但是在相同頻率位置中的其他元素共享相同的上下文模型??梢曰谠谙嗤瑝K內(nèi)的元素的編碼的鄰居的值(O或1),除了沿著相同掃描行的編碼的鄰居之外,來確定變換域中的高頻位置中的元素。
[0023]現(xiàn)在將描述可以在其中使用本發(fā)明的實(shí)施例的視頻系統(tǒng)的示例。將理解,在圖中被描繪為功能塊的元件可以被實(shí)現(xiàn)為硬件、軟件、或其組合。而且,還可以在諸如個(gè)人計(jì)算機(jī)、智能手機(jī)或平板電腦的其他系統(tǒng)上采用本發(fā)明的實(shí)施例。
[0024]參考圖1A,總體標(biāo)記為10的視頻系統(tǒng)包括有線電視網(wǎng)絡(luò)的頭端100。頭端100被配置成將視頻內(nèi)容傳送到鄰居129、130和131。頭端100可以在頭端的層級(jí)內(nèi)操作,層級(jí)中較高的頭端通常具有更多的功能。頭端100通信地鏈接至衛(wèi)星碟型天線112,并且從其接收用于非本地節(jié)目的視頻信號(hào)。頭端100還通信地鏈接至將本地節(jié)目傳送到頭端100的本地臺(tái)114。頭端100包括:對(duì)從衛(wèi)星碟型天線112接收的視頻信號(hào)進(jìn)行解碼的解碼器104、從本地臺(tái)114接收本地節(jié)目的離播(off-air)接收器106、在頭端100的多種組件之間路由數(shù)據(jù)業(yè)務(wù)的交換機(jī)102、對(duì)用于傳送到用戶的視頻信號(hào)進(jìn)行編碼的編碼器116、對(duì)用于傳送到用戶的信號(hào)進(jìn)行調(diào)制的調(diào)制器118、以及將多個(gè)信號(hào)組合到單個(gè)多信道傳輸?shù)慕M合器120。
[0025]頭端100還通信地鏈接至混合光纖電纜(HFC)網(wǎng)絡(luò)122。HFC網(wǎng)絡(luò)122通信地鏈接至多個(gè)節(jié)點(diǎn)124、126和128。節(jié)點(diǎn)124、126和128中的每個(gè)都由同軸電纜鏈接至鄰居129、130和131之一,并且將有線電視信號(hào)傳送到鄰居。更詳細(xì)地示出圖1A的鄰居130之一。鄰居130包括多個(gè)住宅,包括圖1A中所示的家庭132。在家庭132中有通信地鏈接至視頻顯示器136的機(jī)頂盒134。機(jī)頂盒134包括第一解碼器138和第二解碼器140。第一解碼器138和第二解碼器140通信地鏈接至用戶接口 142和大容量存儲(chǔ)設(shè)備144。用戶接口 142通信地鏈接至視頻顯示器136。
[0026]在操作期間,頭端100從衛(wèi)星碟型天線112和本地臺(tái)114接收本地節(jié)目視頻信號(hào)和非本地節(jié)目視頻信號(hào)。以數(shù)字視頻流的形式接收非本地節(jié)目視頻信號(hào),而將本地節(jié)目視頻信號(hào)接收為模擬視頻流。在一些實(shí)施例中,本地節(jié)目還可以被接收為數(shù)字視頻流。數(shù)字視頻流由解碼器104解碼,并且響應(yīng)于用戶請(qǐng)求被發(fā)送到交換機(jī)102。頭端100還包括通信地鏈接至大容量存儲(chǔ)設(shè)備110的服務(wù)器108。大容量存儲(chǔ)設(shè)備110存儲(chǔ)多種類型的視頻內(nèi)容,包括視頻點(diǎn)播(V0D),服務(wù)器108檢索該視頻點(diǎn)播并且將其提供給交換機(jī)102。交換機(jī)102將本地節(jié)目直接路由至調(diào)制本地節(jié)目的調(diào)制器118,并且將非本地節(jié)目(包括任何V0D)路由至編碼器116。編碼器116對(duì)非本地節(jié)目進(jìn)行數(shù)字編碼。然后,將編碼的非本地節(jié)目發(fā)送到調(diào)制器118。組合器120接收調(diào)制的模擬視頻數(shù)據(jù)和調(diào)制的數(shù)字視頻數(shù)據(jù)、組合視頻數(shù)據(jù)并且經(jīng)由多個(gè)射頻(RF)信道將其發(fā)送到HFC網(wǎng)絡(luò)122。
[0027]HFC網(wǎng)絡(luò)122將組合的視頻數(shù)據(jù)發(fā)送到節(jié)點(diǎn)124、126和128,節(jié)點(diǎn)124、126和128將數(shù)據(jù)轉(zhuǎn)發(fā)到它們各自的鄰居129、130和131。家庭132在機(jī)頂盒134處,更具體地,在第一解碼器138和第二解碼器140處,接收該視頻數(shù)據(jù)。第一解碼器138和第二解碼器140對(duì)視頻數(shù)據(jù)的數(shù)字部分進(jìn)行解碼,并且將解碼的數(shù)據(jù)提供給用戶接口 142,然后用戶接口 142將解碼的數(shù)據(jù)提供給視頻顯示器136。
[0028]圖1A的編碼器116和解碼器138 (以及在此描述的所有其他步驟和功能)可以被實(shí)現(xiàn)為計(jì)算機(jī)代碼,計(jì)算機(jī)代碼包括存儲(chǔ)在諸如存儲(chǔ)器或另一種類型的存儲(chǔ)設(shè)備的計(jì)算機(jī)可讀存儲(chǔ)設(shè)備上的計(jì)算機(jī)可讀指令。通過諸如專用集成電路(ASIC)或其他類型的電路的處理器,在計(jì)算機(jī)系統(tǒng)上執(zhí)行計(jì)算機(jī)代碼。例如,可以在駐留在頭端100中的計(jì)算機(jī)系統(tǒng)(諸如服務(wù)器)上執(zhí)行用于實(shí)現(xiàn)編碼器116的計(jì)算機(jī)代碼。另一方面,可以在構(gòu)成一種類型的計(jì)算機(jī)系統(tǒng)的機(jī)頂盒134上執(zhí)行用于解碼器138和140的計(jì)算機(jī)代碼。代碼可以存在為由源代碼、目標(biāo)代碼、可執(zhí)行代碼或其他格式的程序指令構(gòu)成的軟件程序。
[0029]圖1B示出可以在其上執(zhí)行用于編碼器116和解碼器138和140的計(jì)算機(jī)代碼的計(jì)算機(jī)系統(tǒng)的示例。總體標(biāo)記為400的計(jì)算機(jī)系統(tǒng)包括處理器401、或處理電路,其可以實(shí)現(xiàn)或執(zhí)行軟件指令,該軟件指令執(zhí)行在此描述的方法、功能或其他步驟的一些或全部。通過通信總線403通信來自處理器401的命令和數(shù)據(jù)。計(jì)算機(jī)系統(tǒng)400還包括計(jì)算機(jī)可讀存儲(chǔ)設(shè)備402,諸如,隨機(jī)存取存儲(chǔ)器(RAM),用于處理器401的軟件和數(shù)據(jù)可以在運(yùn)行時(shí)駐留其中。存儲(chǔ)設(shè)備402還可以包括非易失性數(shù)據(jù)存儲(chǔ)。計(jì)算機(jī)系統(tǒng)400可以包括用于連接到網(wǎng)絡(luò)的網(wǎng)絡(luò)接口 404。其他已知的電子組件還可以被添加或代替在計(jì)算機(jī)系統(tǒng)400中描述的組件。計(jì)算機(jī)系統(tǒng)400可以駐留在頭端100中并且執(zhí)行編碼器116,并且還可以嵌入機(jī)頂盒134中以執(zhí)行解碼器138和140。另外,計(jì)算機(jī)系統(tǒng)400可以駐留在除了頭端100和機(jī)頂盒134之外的位置,并且可以被最小化,以被集成到智能手機(jī)或平板電腦中。
[0030]現(xiàn)在將提供如何由本發(fā)明的實(shí)施例中的編碼器116和解碼器138和140對(duì)視頻數(shù)據(jù)進(jìn)行編碼和解碼的高層級(jí)描述。在本實(shí)施例中,編碼器和解碼器根據(jù)高效率視頻編碼(HEVC)方法操作。HEVC是基于塊的混合空間和時(shí)間預(yù)測(cè)編碼方法。在HEVC中,輸入圖片首先被劃分為正方形塊,被稱為LCU (最大編碼單元),如圖2A中所示。不同于基本編碼單元是16 X 16像素的宏塊的其他視頻編碼標(biāo)準(zhǔn),在HEVC中,IXU可以是128 X 128像素那么大。IXU能夠被劃分為四個(gè)正方形塊,被稱為⑶(編碼單元),其是IXU的大小的四分之一。每個(gè)CU都可以被進(jìn)一步分成四個(gè)較小的CU,其是原始CU的大小的四分之一。能夠重復(fù)劃分處理,直到滿足特定準(zhǔn)則為止。圖3A示出被劃分為CU的LCU的示例。
[0031]特定IXU如何被劃分為⑶能夠通過四叉樹表示。在四叉樹的每個(gè)節(jié)點(diǎn),如果節(jié)點(diǎn)被進(jìn)一步劃分為子節(jié)點(diǎn),則將標(biāo)記設(shè)置為“I”。否則,標(biāo)記處于“O”未被置位。例如,圖3A的IXU劃分能夠由圖3B的四叉樹表示。這些“劃分標(biāo)記”與在視頻比特流中的其他標(biāo)記,包括跳躍模式標(biāo)記、合并模式標(biāo)記、以及預(yù)測(cè)單元(PU)模式標(biāo)記,聯(lián)合編碼。在圖3B的四叉樹的情況下,劃分標(biāo)記10100將與其他標(biāo)記一起被編碼為開銷。
[0032]每個(gè)⑶都能夠被進(jìn)一步劃分為預(yù)測(cè)單元(PU)。從而,在四叉樹的每個(gè)葉子處,2NX2N的最終CU能夠擁有四個(gè)可能圖案(NXN、NX2N、2NXN和2NX2N)中的一個(gè),如圖2B中所示。CU能夠被空間或時(shí)間預(yù)測(cè)編碼。如果在幀內(nèi)模式下對(duì)CU編碼,則CU的每個(gè)PU都能夠具有其自身的空間預(yù)測(cè)方向。如果在幀間模式下對(duì)CU編碼,則CU的每個(gè)PU都能夠具有其自身的一個(gè)或多個(gè)運(yùn)動(dòng)向量和一個(gè)或多個(gè)相關(guān)聯(lián)的參考圖片。
[0033]每個(gè)⑶還能夠通過塊變換操作的應(yīng)用而被劃分為變換單元(TU)。塊變換操作傾向于對(duì)塊內(nèi)的像素去相關(guān),并且將塊能量壓縮為變換塊的低階系數(shù)。但是,不同于僅一個(gè)8 X 8或4 X 4的變換被應(yīng)用至MB的其他方法,在本實(shí)施例中,不同尺寸的塊變換的集合可以被應(yīng)用至CU,如圖5A中所示,其中,左塊是分割為PU的CU,并且右塊是相關(guān)聯(lián)的變換單元(TU)的集合。CU內(nèi)的每個(gè)塊變換的尺寸和位置由單獨(dú)的被稱為RQT的四叉樹來描述。圖5B示出對(duì)于圖5A的示例中的CU的TU的四叉樹表示。在本示例中,11000被編碼并且被發(fā)送作為開銷的一部分。
[0034]任何給定⑶的TU和PU均可以被用于不同目的。TU通常用于變換、量化和編碼操作,而PU通常用于空間和時(shí)間預(yù)測(cè)。對(duì)于給定的⑶,在的數(shù)量和TU的數(shù)量之間不必存在直接的關(guān)系。
[0035]根據(jù)本發(fā)明的實(shí)施例,編碼器116 (圖1A)由圖4A中所示的多個(gè)功能模塊構(gòu)成。這些模塊可以被實(shí)現(xiàn)為硬件、軟件、或兩者的任何組合。給出當(dāng)前PU,X,首先通過空間預(yù)測(cè)或時(shí)間預(yù)測(cè)獲得預(yù)測(cè)PU,X’。該空間或時(shí)間預(yù)測(cè)分別通過空間預(yù)測(cè)模塊129或時(shí)間預(yù)測(cè)模塊130執(zhí)行。
[0036]存在多個(gè)可能的、空間預(yù)測(cè)模塊129能夠每PU執(zhí)行的空間預(yù)測(cè)方向,包括水平、垂直、45度對(duì)角線、135度對(duì)角線、DC、平面等。在一個(gè)實(shí)施例中,用于4X4、8X8、16X 16、32X32以及64X64塊的亮度幀內(nèi)預(yù)測(cè)模式的數(shù)量分別是18、35、35、35和4。包括亮度幀內(nèi)模式,被稱為IntraFromLuma的附加模式可以被用于色度幀內(nèi)預(yù)測(cè)模式。語法指示每PU的空間預(yù)測(cè)方向。
[0037]編碼器116 (圖1A)通過運(yùn)動(dòng)估計(jì)操作執(zhí)行時(shí)間預(yù)測(cè)。具體地,時(shí)間預(yù)測(cè)模塊130(圖4A)在參考圖片中搜索用于當(dāng)前PU的最佳匹配預(yù)測(cè)。最佳匹配預(yù)測(cè)由運(yùn)動(dòng)向量(MV)描述并且與參考圖片(refldx)相關(guān)聯(lián)。B圖片中的PU能夠具有多達(dá)兩個(gè)MV。MV和refldx是比特流中的語法的一部分。
[0038]然后,從當(dāng)前I3U減去預(yù)測(cè)PU,得到殘差PU,e。然后,一次一個(gè)變換單元(TU),由變換模塊116變換殘差PU,e,得到變換域中的殘差PU,E0為了完成該任務(wù),變換模塊116使用正方形或非正方形塊變換。
[0039]返回參考圖4A,通過量化模塊118將高精度變換系數(shù)轉(zhuǎn)換為有限數(shù)量的可能的值,來量化變換系數(shù)E。然后,量化的系數(shù)由熵編碼模塊120進(jìn)行熵編碼,得到最終壓縮比特。以下將更詳細(xì)地論述由熵編碼模塊120執(zhí)行的具體步驟。
[0040]為了有助于時(shí)間和空間預(yù)測(cè),編碼器116還獲得量化的變換系數(shù)E,并且利用反量化模塊122反量化它們,得到反量化的變換系數(shù)E’。然后,反量化的變換系數(shù)E’由逆變換模塊124逆變換,得到重構(gòu)的殘差PU,e’。然后,將重構(gòu)的殘差TO,e’添加至空間或時(shí)間上的對(duì)應(yīng)預(yù)測(cè)X’,以形成重構(gòu)的PU,X’ ’。
[0041]還參考圖4A,首先對(duì)重構(gòu)的I3U, X’ ’執(zhí)行去塊濾波操作,以減少塊效應(yīng)。在完成對(duì)于解碼的圖片的去塊濾波處理之后,采樣自適應(yīng)偏移處理被有條件地執(zhí)行,這補(bǔ)償重構(gòu)的像素和原始像素之間的像素值偏移。通過環(huán)路濾波模塊126對(duì)重構(gòu)的I3U有條件地執(zhí)行自適應(yīng)環(huán)路濾波功能,這最小化了輸入圖片和輸出圖片之間的編碼失真。如果重構(gòu)的圖片是參考圖片,則它們將被存儲(chǔ)在參考緩沖器128中用于將來的時(shí)間預(yù)測(cè)。
[0042]在本發(fā)明的實(shí)施例中,由編碼器116 (圖1A)支持幀內(nèi)圖片(諸如I圖片)和幀間圖片(諸如P圖片或B圖片)。在不參考其他圖片的情況下,對(duì)幀內(nèi)圖片編碼。因此,空間預(yù)測(cè)被用于幀內(nèi)圖片內(nèi)的CU/PU。幀內(nèi)圖片提供能夠開始解碼的可能點(diǎn)。另一方面,幀間圖片目的在于高壓縮。幀間圖片支持幀內(nèi)預(yù)測(cè)和幀間預(yù)測(cè)。幀間圖片中的CU/PU在空間或時(shí)間上被預(yù)測(cè)編碼。時(shí)間參考是先前編碼的幀內(nèi)圖片或幀間圖片。
[0043]現(xiàn)在更詳細(xì)地描述根據(jù)本發(fā)明的實(shí)施例的熵編碼模塊120(圖4A)的操作。熵編碼模塊120采用從量化模塊118接收的量化的系數(shù)矩陣,并且使用其生成表示所有量化的系數(shù)的符號(hào)的符號(hào)矩陣,并且生成重要圖。重要圖是其中每個(gè)元素都指定量化的系數(shù)矩陣內(nèi)的非零量化系數(shù)的位置的矩陣。具體地,給出量化的2D變換矩陣,如果位置(y,x)處的量化的系數(shù)的值是非零,則其被認(rèn)為重要,并且在相關(guān)聯(lián)的重要圖中,“I”被分配給位置(y,x)。否則,在重要圖中,“O”被分配給位置(y,x)。
[0044]一旦熵編碼模塊120創(chuàng)建了重要圖,其對(duì)重要圖進(jìn)行編碼。在一個(gè)實(shí)施例中,這通過使用基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)技術(shù)完成。在這種情況下,熵編碼模塊120沿著掃描行掃描重要圖,并且對(duì)于重要圖中的每個(gè)條目,編碼模塊選擇用于該條目的上下文模型。然后,熵編碼模塊120基于所選的上下文模型對(duì)該條目進(jìn)行編碼。即,基于正被使用的上下文模型(數(shù)學(xué)概率模型),給每個(gè)條目分配一個(gè)概率。累積該概率,直到整個(gè)重要圖被編碼為止。
[0045]由熵編碼模塊120輸出的值以及熵編碼的符號(hào)、重要圖和非零系數(shù)由編碼器116(圖1A)插入到比特流中。通過HFC網(wǎng)絡(luò)122,將該比特流發(fā)送到解碼器138和140。當(dāng)解碼器138和140 (圖1A)接收到比特流時(shí),它們執(zhí)行圖4B中所示的功能。解碼器138的熵解碼模塊145對(duì)符號(hào)值、重要圖和非零系數(shù)進(jìn)行解碼,以重新產(chǎn)生量化和變換的系數(shù)。在對(duì)重要圖解碼時(shí),熵解碼模塊120執(zhí)行結(jié)合熵編碼模塊120描述的過程的逆——沿著由掃描行構(gòu)成的掃描圖案對(duì)重要圖進(jìn)行解碼。然后,熵解碼模塊145將系數(shù)提供給反量化模塊147,其反量化系數(shù)的矩陣,得到E’。反量化模塊147將反量化的系數(shù)提供給逆變換模塊149。逆變換模塊149對(duì)系數(shù)執(zhí)行逆變換操作,得到e’。以結(jié)合圖4A描述的方式,應(yīng)用濾波和空間預(yù)測(cè)。
[0046]如上所述,在編碼器側(cè)將視頻圖片轉(zhuǎn)換為壓縮的比特流并且在解碼器側(cè)將比特流轉(zhuǎn)換回視頻圖片是多步驟處理。在此描述的本發(fā)明的多個(gè)實(shí)施例通常是針對(duì)處理中重要圖被編碼和解碼的部分。
[0047]為了適應(yīng)根據(jù)本發(fā)明的實(shí)施例的并行處理,基于除了沿著相同掃描行的元素之外的相鄰元素的值,選擇用于重要圖的至少一個(gè)元素的上下文模型。以此方式,消除了沿著相同掃描行的元素之間的依賴性。
[0048]參考圖6A至圖6E,編碼器116 (圖1A)沿著掃描圖案逐行處理重要圖600。在這些圖中的每個(gè)中,掃描圖案由一系列箭頭線表示,每行都表示掃描圖案內(nèi)的掃描行。掃描圖案可以例如是Z字形掃描,諸如圖6A中所示的Z字形掃描,對(duì)角線左下掃描,諸如圖6B中所示的對(duì)角線左下掃描,對(duì)角線右上掃描,諸如圖6C中所示的對(duì)角線右上掃描,垂直掃描,諸如圖6D中所示的垂直掃描,或者水平掃描,諸如圖6E中所示的水平掃描。圖6A至圖6E中所示的掃描圖案還可以逆向執(zhí)行,使得圖案可以在相對(duì)拐角處開始,并且箭頭的方向反轉(zhuǎn)。
[0049]在每個(gè)示例中,元素602和604都沿著掃描圖案內(nèi)的相同掃描行,但是能夠彼此被并行處理。這是因?yàn)橛糜谶@兩個(gè)元素中的每個(gè)的上下文模型不取決于另一元素的值。換句話說,用于第一元素602的上下文模型不取決于第二元素604的值。
[0050]現(xiàn)在將提供更具體的示例。如果沿著對(duì)角線掃描圖案處理重要圖的元素,(如圖6A、圖6B或圖6C中那樣),則可以使用圖7A的過程。圖7A是用于重要圖的處理規(guī)則集合的矩陣表達(dá)。這些規(guī)則可以表示如下,其中,“高度”是重要圖矩陣的高度(沿著y軸的元素的數(shù)量),并且“寬度”是重要圖矩陣的寬度(沿著X軸的元素的數(shù)量):
[0051]規(guī)則A:對(duì)于在位置(0,O)、(O, I)或(1,O)處的元素,編碼器或解碼器分配唯一的上下文模型。即,當(dāng)前塊中的位置(0,0)、(O, I)或(1,0)處的元素與其他塊的重要圖在相同位置(0,0)、(0,I)或(1,0)處的其他元素共享相同的上下文模型。
[0052]規(guī)則B:對(duì)于在位置(0,χ>1)處的元素,編碼器或解碼器基于元素的在位置(O, X-1)、(O, X-2)和(1,X-2)處的鄰居的值(O或I)來選擇上下文模型。
[0053]規(guī)則C:對(duì)于在位置(y>l,0)處的元素,編碼器或解碼器基于元素的在位置(y-1, O)、(y-2, O)和(y-2,I)處的鄰居的值(O或I)來選擇上下文模型。
[0054]規(guī)則D:對(duì)于在位置(y>0,x>0)處的元素,編碼器或解碼器基于元素的在位置(y-1, x-1)、(y-1, X)和(y, x_l)處以及在以下位置處的鄰居的值(O或I),來選擇上下文模型:[0055]規(guī)則E:如果 χ>1,則(y-1,x_2)和(y,x_2),
[0056]規(guī)則F i如果X大于I并且Y小于高度-1,則(y+1, x-2)
[0057]規(guī)則G:如果 j 大于 1,則(y-2,χ-l)和(y_2,x)
[0058]規(guī)則H:如果y大于I并且X小于寬度_1,則(y_2,x+1)
[0059]計(jì)算二進(jìn)制‘I’的實(shí)例的總數(shù),并且編碼器或解碼器使用對(duì)應(yīng)于該數(shù)量的上下文模型。例如,如果規(guī)則D、E和F被應(yīng)用至元素(y,x),則編碼器或解碼器將計(jì)算鄰居的在(y-1, x-1)、(y-1, χ)、(y, χ-1)、(y-1, χ-2)、(y, χ-2)和(y+1, χ-2)處的元素的二進(jìn)制 ‘I’ 的實(shí)例的數(shù)量。如果在這些鄰居元素中存在三個(gè)二進(jìn)制‘I’的實(shí)例,則上下文模型編號(hào)3被用于對(duì)正被處理的元素進(jìn)行編碼或解碼。每個(gè)上下文模型都可以為重要圖中的元素產(chǎn)生不同的概率。
[0060]參考圖7B的流程圖,現(xiàn)在描述根據(jù)本發(fā)明的實(shí)施例的以上規(guī)則A至H的應(yīng)用。在步驟702,編碼器或解碼器確定元素是否是在位置(0,O)、(0,I)或(1,0)處。如果在,則處理進(jìn)行至步驟704,在此,編碼器或解碼器使用與相同尺寸的其他變換單元(TU)中的相同位置中的元素相同的上下文模型。例如,如果在相同尺寸的先前TU中的位置(0,I)處的元素使用上下文模型1,則位置(0,I)處的元素將使用上下文模型I。
[0061]在步驟706,編碼器或解碼器確定元素是否在位置(0,χ>1)處。如果是,則處理進(jìn)行至步驟708,其中,編碼器或解碼器基于元素的在位置(0,χ-l)、(0,x-2)和(l,x-2)處的鄰居的值(O或I)來選擇上下文模型。否則,處理進(jìn)行至步驟710,在此編碼器或解碼器確定元素是否在位置(y>l,0)處。如果在,則處理進(jìn)行至步驟712,在此編碼器或解碼器基于鄰居元素(y_l,O)、(y-2,O)和(y-2,I)來選擇用于該元素的上下文模型。
[0062]在步驟714,編碼器或解碼器確定元素是否在位置(y>0,X>0)處。如果在,則處理進(jìn)行至步驟716,在此編碼器或解碼器基于位置(y-l,x-l)、(y-1, χ)和(y,χ-l)處的元素的值,選擇用于該元素的上下文模型。如果不在,則處理進(jìn)行至步驟718,在此編碼器或解碼器確定元素的χ坐標(biāo)是否大于I。如果是,則處理移至步驟720,在此編碼器或解碼器另外考慮位置(y-l,x_2)和(y,x_2)處的元素的值。如果不是,則處理移至步驟726。
[0063]在步驟722,編碼器或解碼器確定y是否小于重要圖的高度減I。如果是,則編碼器或解碼器另外考慮位置(y+l,x_2)處的元素的值。在步驟726,編碼器或解碼器確定y是否大于I。如果是,則在步驟728,編碼器或解碼器另外考慮位置(y-l,x-2)和(y,χ-2)處的元素的值。在步驟730,編碼器或解碼器確定χ是否小于重要圖的寬度減去I。如果是,則編碼器或解碼器另外考慮位置(y_2,x+l)處的元素的值。
[0064]現(xiàn)在轉(zhuǎn)到圖8至圖15,現(xiàn)在示出如何能夠使用上述處理方案并行處理重要圖的多個(gè)元素的示例。在本示例中,假設(shè)兩個(gè)解碼器138和140 (圖1A)(稱為第一解碼器和第二解碼器)正在解碼重要圖(即,圖8至圖15的假定的重要圖)。
[0065]第一解碼器和第二解碼器在對(duì)角線左下掃描路徑(就像圖6B中所示的掃描路徑)上對(duì)重要圖解碼。按照先前概述的規(guī)則A,第一解碼器將相同的上下文模型應(yīng)用至位置(0,0)處的元素,該上下文模型被應(yīng)用于對(duì)先前解碼的重要圖中的位置(0,0)處的元素進(jìn)行解碼。第二解碼器將相同的上下文模型應(yīng)用至位置(0,1)處的元素,該上下文模型被應(yīng)用于對(duì)先前解碼的重要圖中的位置(0,1)處的元素進(jìn)行解碼。并行于第二解碼器的操作,第一解碼器將相同的上下文模型應(yīng)用至位置(1,0)處的元素,該上下文模型被應(yīng)用于對(duì)先前解碼的重要圖中的位置(1,0)處的元素進(jìn)行解碼。
[0066]第一解碼器基于位置(0,O)、(O, 1)和(1,O)處的元素的值,選擇用于位置(1,1)處的元素的上下文模型。第二解碼器通過使用相同組元素——(0,0)、(O, 1)和(1,0),同步確定用于位置(2,O)處的元素的上下文模型。對(duì)于沿著掃描圖案的每個(gè)掃描行該處理繼續(xù)。以下表1列出正被解碼的重要圖的元素以及被用于確定所使用的上下文模型的鄰居元素的坐標(biāo)、示出鄰居的分組的圖和附圖標(biāo)記、以及正被使用的規(guī)則(從以上規(guī)則A到H)。在第一列中指示能夠由第一解碼器和第二解碼器并行編碼的多個(gè)元素的示例。為了簡(jiǎn)明起見,并不是重要圖的每個(gè)元素都被示出為正被解碼。表1中所示的元素僅用作示例。
[0067]
【權(quán)利要求】
1.一種用于處理視頻數(shù)據(jù)的方法,所述視頻數(shù)據(jù)與多個(gè)元素的矩陣相關(guān)聯(lián),所述方法包括: 使用通過所述矩陣的預(yù)定掃描圖案讀取所述視頻數(shù)據(jù),所述掃描圖案包括多個(gè)掃描行,每個(gè)掃描行均包括所述多個(gè)元素中的至少一個(gè); 基于所述多個(gè)元素中的其他元素的值,確定用于所述多個(gè)掃描行中的第一掃描行的元素的上下文模型, 其中,所述其他元素不沿著所述第一掃描行, 并且其中,所述其他元素包括在所述多個(gè)掃描行中的不超過兩個(gè)的其他掃描行中;以及 基于所確定的上下文模型處理所述元素。
2.根據(jù)權(quán)利要求1所述的方法,其中,所述其他元素僅包括在所述多個(gè)掃描行中的一個(gè)其他掃描行中。
3.根據(jù)權(quán)利要求1所述的方法,其中,所述其他元素僅包括在與所述矩陣中的所述第一掃描行并行的第二掃描行中。
4.根據(jù)權(quán)利要求1所述的方法,其中,所述矩陣包括重要圖,所述多個(gè)元素中的每個(gè)元素表示視頻壓縮系數(shù)的存在或不存在。
5.根據(jù)權(quán)利要求1所述的方法,其中,所述多個(gè)元素中的每個(gè)是二進(jìn)制數(shù),每個(gè)二進(jìn)制數(shù)均指示用于視頻塊的量化的變換系數(shù)是零還是非零。
6.根據(jù)權(quán)利要求1所述的方法,其中,所述其他掃描行是所述掃描圖案的先前處理的掃描行。
7.根據(jù)權(quán)利要求1所述的方法,其中,所述處理步驟包括:將所述上下文模型映射至概率值。
8.根據(jù)權(quán)利要求1所述的方法,其中,所述視頻數(shù)據(jù)表示視頻圖片的塊,所述方法進(jìn)一步包括: 對(duì)所述視頻數(shù)據(jù)應(yīng)用變換,以獲得變換系數(shù); 量化所述變換系數(shù), 其中,所述元素表示所量化的變換系數(shù)中的一個(gè)的值是否為零。
9.根據(jù)權(quán)利要求1所述的方法,其中,所述處理步驟包括:基于所確定的上下文模型對(duì)所述元素進(jìn)行編碼。
10.根據(jù)權(quán)利要求1所述的方法,其中,所述處理步驟包括:基于所確定的上下文模型對(duì)所述元素進(jìn)行解碼。
11.根據(jù)權(quán)利要求1所述的方法,其中,所述元素是第一元素,所述方法進(jìn)一步包括: 基于所述多個(gè)元素中的其他元素的值,確定用于沿著所述第一掃描行的第二元素的上下文模型,其中,所述其他元素包括在所述多個(gè)掃描行中的不超過兩個(gè)的其他掃描行中;以及 基于所確定的上下文模型處理所述第二元素,其中,對(duì)于所述第一元素的所述確定和處理步驟與對(duì)于所述第二元素的所述確定和處理步驟并行地執(zhí)行。
12.一種用于處理重要圖的方法,所述重要圖由元素的矩陣表示,沿著多個(gè)掃描行對(duì)所述矩陣進(jìn)行編碼,每個(gè)掃描行均包括所述矩陣的一個(gè)或多個(gè)所述元素,所述方法包括:基于所述矩陣的元素的子集,確定要將被用于所述多個(gè)掃描行中的第一掃描行的元素的上下文模型,所述子集由所述多個(gè)掃描行中的第二掃描行的元素構(gòu)成,所述第二掃描行鄰近于所述第一掃描行;以及 基于所確定的上下文模型處理所述元素。
13.根據(jù)權(quán)利要求12所述的方法,其中,所述元素的子集由兩個(gè)元素構(gòu)成。
14.根據(jù)權(quán)利要求12所述的方法,其中,所述元素的子集由三個(gè)元素構(gòu)成。
15.根據(jù)權(quán)利要求12所述的方法,其中,所述元素的子集由四個(gè)元素構(gòu)成。
16.根據(jù)權(quán)利要求12所述的方法,其中,所述元素的子集由五個(gè)元素構(gòu)成。
17.一種用于處理視頻數(shù)據(jù)的系統(tǒng),所述系統(tǒng)包括: 執(zhí)行指令的處理器,所述指令用于執(zhí)行包括以下的步驟: 沿著預(yù)定掃描圖案讀取重要圖的元素,所述掃描圖案包括多個(gè)掃描行; 基于其他元素的集合,確定用于所述多個(gè)掃描行中的掃描行的元素的上下文模型,其中,所述集合包括所述多個(gè)掃描行中的兩個(gè)或更少的其他掃描行的元素;以及 基于所確定的上下文模型,處理所述元素。
18.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述重要圖包括多個(gè)二進(jìn)制數(shù),每個(gè)二進(jìn)制數(shù)均表示所述視頻數(shù)據(jù)的視頻壓縮系數(shù)是零還是非零。
19.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述集合由來自一個(gè)其他掃描行的元素構(gòu)成。
20.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述集合由來自與具有正被處理的元素的掃描行并行的一個(gè)其他掃描行的元素構(gòu)成。
21.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,所述視頻數(shù)據(jù)表示視頻圖片的塊,并且其中,處理器執(zhí)行進(jìn)一步的指令,所述進(jìn)一步的指令用于執(zhí)行包括以下的步驟: 對(duì)所述視頻數(shù)據(jù)應(yīng)用變換,以獲得變換系數(shù); 量化所述變換系數(shù), 其中,所述重要圖表示所量化的變換系數(shù)的每一個(gè)的值是否為零。
22.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,用于執(zhí)行所述處理步驟的所述指令進(jìn)一步包括:用于對(duì)所述元素進(jìn)行編碼的指令。
23.根據(jù)權(quán)利要求17所述的系統(tǒng),其中,用于執(zhí)行所述處理步驟的所述指令進(jìn)一步包括:用于對(duì)所述元素進(jìn)行解碼的指令。
【文檔編號(hào)】H04N19/129GK103891280SQ201280009402
【公開日】2014年6月25日 申請(qǐng)日期:2012年2月10日 優(yōu)先權(quán)日:2011年2月16日
【發(fā)明者】婁健, 克里特·帕努索波內(nèi), 王利民 申請(qǐng)人:摩托羅拉移動(dòng)有限責(zé)任公司