專利名稱:利用層間相關(guān)性編碼層內(nèi)標(biāo)記的方法、及解碼方法和設(shè)備的制作方法
技術(shù)領(lǐng)域:
符合本發(fā)明的方法和設(shè)備涉及視頻壓縮,并更具體地,涉及在基于多層的編解碼器中利用層間相關(guān)性對(duì)標(biāo)記的有效編碼。
背景技術(shù):
隨著信息和通信技術(shù)的發(fā)展,除了文本和語音通信之外,多媒體通信正在增長(zhǎng)?,F(xiàn)有的以文本為中心的通信系統(tǒng)不足以滿足客戶的各種需求,并由此,可容納各種形式信息(例如文本、圖像、音樂、和其它)的多媒體服務(wù)正在增長(zhǎng)。由于多媒體數(shù)據(jù)很大,所以需要大容量存儲(chǔ)介質(zhì)和寬帶寬來存儲(chǔ)和發(fā)送多媒體數(shù)據(jù)。因此,需要壓縮編碼技術(shù)來發(fā)送多媒體數(shù)據(jù)。
數(shù)據(jù)壓縮的基本原理是去除數(shù)據(jù)冗余??赏ㄟ^去除例如圖像中同一顏色或?qū)ο蟮闹貜?fù)的空間冗余、例如活動(dòng)圖像中的相似相鄰幀或聲音的連續(xù)重復(fù)的時(shí)間冗余、和考慮到人對(duì)高頻的敏感度的可視/知覺冗余,而壓縮數(shù)據(jù)。
在一般視頻編碼方法中,通過基于運(yùn)動(dòng)補(bǔ)償?shù)臅r(shí)間濾波而去除時(shí)間冗余,并通過空間變換而去除空間冗余。
其中去除了冗余的結(jié)果數(shù)據(jù)在量化處理中根據(jù)特定量化操作被有損耗編碼。量化結(jié)果最終通過熵編碼被無損耗編碼。
如在聯(lián)合視頻組(JVT)已正式發(fā)布的當(dāng)前可伸縮視頻編碼草案(下面稱為SVC草案)中提出的,正對(duì)基于現(xiàn)有H.264標(biāo)準(zhǔn)實(shí)現(xiàn)多層視頻編解碼器進(jìn)行研究,其中該聯(lián)合視頻組是國(guó)際標(biāo)準(zhǔn)化組織/國(guó)際電工委員會(huì)(ISO/IEC)和國(guó)際電信聯(lián)盟(ITU)的視頻專家組。
圖1圖示了利用多層結(jié)構(gòu)的可伸縮視頻編碼結(jié)構(gòu)。在該視頻編碼結(jié)構(gòu)中,第一層被設(shè)置為15Hz(幀頻)的四分之一公共中間格式(Quarter CommonIntermediate FormatQCIF),第二層被設(shè)置為30Hz的公共中間格式(CIF),而第三層被設(shè)置為60Hz的標(biāo)準(zhǔn)定義(SD)。如果需要CIF的0.5Mbps的流,那么該比特流可被截短,使得在具有CIF、幀頻30Hz、和比特率0.7Mbps的第二層中的比特率為0.5Mbps。以這種方式,可實(shí)現(xiàn)空間、時(shí)間和信噪比(SNR)可伸縮性。由于在各層之間存在一些相似性,所以,在對(duì)相應(yīng)層進(jìn)行編碼時(shí),經(jīng)常使用用于利用來自另一層的預(yù)測(cè)信息來提高某一層(例如紋理數(shù)據(jù)、運(yùn)動(dòng)數(shù)據(jù)等)的編碼效率的方法。
另一方面,在可伸縮視頻編碼中,存在與是否使用層間信息相關(guān)的各種標(biāo)記,該標(biāo)記可以由碼片(slice)、宏塊、子塊、或者甚至系數(shù)來設(shè)置。因此,在視頻編碼中,不能忽視由這些標(biāo)記增加的開銷。
然而,現(xiàn)在,與紋理數(shù)據(jù)或運(yùn)動(dòng)數(shù)據(jù)不同,在不考慮層間相關(guān)性的情況下,標(biāo)記還沒有被單獨(dú)編碼或從未被編碼。
發(fā)明內(nèi)容
本發(fā)明的示例性非限制性的實(shí)施例克服了上述缺點(diǎn)和上面未描述的其他缺點(diǎn)。而且,不要求本發(fā)明克服上述缺點(diǎn),并且本發(fā)明的示例性非限制性的實(shí)施例可以不克服任何上述問題。
本發(fā)明提供了一種用于基于層間相關(guān)性而有效編碼在基于多層的可伸縮視頻編解碼器中使用的各種標(biāo)記的方法和設(shè)備。
根據(jù)本發(fā)明的一個(gè)方面,提供了一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的方法,該方法包括判斷在指定單元區(qū)域中包括的當(dāng)前層的標(biāo)記是否全部等于基本層的標(biāo)記;根據(jù)該判斷結(jié)果而設(shè)置預(yù)測(cè)標(biāo)記;和如果判斷當(dāng)前層的標(biāo)記等于基本層的標(biāo)記,則跳過當(dāng)前層的標(biāo)記,并將基本層的標(biāo)記和預(yù)測(cè)標(biāo)記插入到比特流中。
根據(jù)本發(fā)明的另一方面,提供了一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的方法,該方法包括獲得當(dāng)前層的標(biāo)記和基本層的標(biāo)記的異或值;對(duì)獲得的異或值執(zhí)行熵編碼;和將熵編碼的結(jié)果和基本層的標(biāo)記插入到比特流中。
根據(jù)本發(fā)明的另一方面,提供了一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的方法,該方法包括從輸入比特流中讀取預(yù)測(cè)標(biāo)記和基本層標(biāo)記;如果預(yù)測(cè)標(biāo)記具有第一比特值,則在預(yù)測(cè)標(biāo)記所被分配到的特定單元區(qū)域中,用所讀取的基本層的標(biāo)記替換當(dāng)前層的標(biāo)記;和輸出所替換的當(dāng)前層的標(biāo)記。
根據(jù)本發(fā)明的另一方面,提供了一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的方法,該方法包括從輸入比特流中讀取基本層的標(biāo)記和編碼后的當(dāng)前層的標(biāo)記;對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行熵解碼;對(duì)熵解碼的結(jié)果和所讀取的基本層的標(biāo)記執(zhí)行異或運(yùn)算;和輸出異或運(yùn)算的結(jié)果。
通過結(jié)合附圖對(duì)示范實(shí)施例的以下詳細(xì)描述,本發(fā)明的以上和其它方面將變得更明顯,其中圖1是圖示了利用多層結(jié)構(gòu)的可伸縮視頻編碼結(jié)構(gòu)的圖;圖2是圖示了包括離散層和至少一個(gè)FGS層的FGS編碼結(jié)構(gòu)的圖;圖3是解釋在可伸縮視頻編碼中提供的三種預(yù)測(cè)技術(shù)的概念視圖;圖4是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記編碼設(shè)備的構(gòu)造的方框圖;圖5是圖示了細(xì)分(refinement)系數(shù)的例子的圖;圖6是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記解碼設(shè)備的構(gòu)造的方框圖;圖7是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記編碼方法的流程圖;圖8是圖示了根據(jù)本發(fā)明另一示范實(shí)施例的標(biāo)記編碼方法的流程圖;圖9是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記解碼方法的流程圖;圖10是圖示了根據(jù)本發(fā)明另一示范實(shí)施例的標(biāo)記解碼方法的流程圖;圖11是圖示了可應(yīng)用圖4的標(biāo)記編碼設(shè)備的示范性的基于多層的視頻編碼器的構(gòu)造的方框圖;和圖12是圖示了可應(yīng)用圖6的標(biāo)記解碼設(shè)備的示范性的基于多層的視頻解碼器的構(gòu)造的方框圖。
具體實(shí)施例方式
下面,將參考附圖來詳細(xì)描述本發(fā)明的示范實(shí)施例。通過參考要結(jié)合附圖詳細(xì)描述的示范實(shí)施例,本發(fā)明的各個(gè)方面和特征以及實(shí)現(xiàn)這些方面和特征的方法將更明顯。然而,本發(fā)明不限于下面公開的示范實(shí)施例,而可以以各種形式實(shí)現(xiàn)。例如詳細(xì)構(gòu)造和元件的在描述中定義的內(nèi)容只是用來幫助本領(lǐng)域普通技術(shù)人員全面理解本發(fā)明的特定細(xì)節(jié),并且本發(fā)明僅被限定在所附權(quán)利要求的范圍內(nèi)。在本發(fā)明的整體描述中,相同的附圖標(biāo)記用于各圖中的相同元件。
在第16屆JVT會(huì)議中由J Ridge和M.Karczewicz所提交的論文“Variablelength code for SVC”(JVT-P056,波茲南,第16屆JVT會(huì)議;下面稱為“JVT-P056”)中,提出了考慮可伸縮視頻編碼(SVC)特性的上下文自適應(yīng)可變長(zhǎng)度編碼(CAVLC)技術(shù)。JVT-P056在離散層中遵循與現(xiàn)有H.264標(biāo)準(zhǔn)相同的處理,但是在細(xì)粒度可伸縮性層(fine granular scalability layerFGS層)中使用按照統(tǒng)計(jì)特性的分離VLC技術(shù)。FGS層是FGS編碼中的等于或高于第二層的層,而離散層是FGS編碼中的第一層。
如圖2所示,在對(duì)組成一個(gè)離散層和至少一個(gè)FGS層的系數(shù)執(zhí)行熵編碼時(shí),使用三個(gè)掃描階段(passes),即有效(significance)階段、細(xì)分階段、和剩余階段。不同的方法根據(jù)他們的統(tǒng)計(jì)特性被應(yīng)用到相應(yīng)的掃描階段。特別是,對(duì)于細(xì)分階段,使用在熵編碼中基于值“0”優(yōu)于其他值的事實(shí)而獲得的VLC表格。一般來說,對(duì)應(yīng)離散層系數(shù)為“0”的FGS層系數(shù)被稱為有效系數(shù),而對(duì)應(yīng)離散層系數(shù)不為“0”的FGS層系數(shù)被稱為細(xì)分系數(shù)。該有效系數(shù)由有效階段編碼,而該細(xì)分系數(shù)由細(xì)分階段編碼。
在JVT-P056中,已提出了FGS層的VLC技術(shù)。根據(jù)該技術(shù),在離散層中使用傳統(tǒng)CAVLC技術(shù),而在FGS層中使用利用統(tǒng)計(jì)特性的分離技術(shù)。具體來說,在三個(gè)掃描階段中的細(xì)分階段中對(duì)細(xì)分系數(shù)進(jìn)行編碼時(shí),JVT-P056按照4個(gè)一組對(duì)細(xì)分系數(shù)的絕對(duì)值進(jìn)行分組,利用VLC表格對(duì)分組的細(xì)分系數(shù)進(jìn)行編碼,并與分組的細(xì)分系數(shù)分離地、對(duì)用于區(qū)分細(xì)分系數(shù)的正/負(fù)符號(hào)的符號(hào)標(biāo)記進(jìn)行編碼。由于為每一細(xì)分系數(shù)給出了細(xì)分系數(shù)的符號(hào)標(biāo)記(除了細(xì)分系數(shù)為“0”的情況),所以由此引起的開銷增大。因此,為了降低符號(hào)標(biāo)記的開銷,向該符號(hào)標(biāo)記應(yīng)用例如運(yùn)行水平(run-level)編碼的熵編碼。然而,這是僅利用對(duì)應(yīng)FGS層中的信息進(jìn)行的,而沒有利用其他FGS層的信息。
然而,作為觀察各種視頻樣本的結(jié)果,可以知道第一FGS層中的細(xì)分系數(shù)的符號(hào)與離散層中的對(duì)應(yīng)細(xì)分系數(shù)的符號(hào)相同。盡管如此,在對(duì)第一FGS層中的細(xì)分系數(shù)的符號(hào)標(biāo)記進(jìn)行編碼時(shí)僅使用對(duì)應(yīng)層的信息,這還是效率很低的。
根據(jù)當(dāng)前可伸縮視頻編碼草案,除了符號(hào)標(biāo)記之外,在執(zhí)行FGS層的熵編碼時(shí),使用例如殘留預(yù)測(cè)標(biāo)記、基本層內(nèi)(intra base)標(biāo)記、運(yùn)動(dòng)預(yù)測(cè)標(biāo)記、基本模式標(biāo)記等的各種標(biāo)記。這些標(biāo)記被包括在比特流中,并被發(fā)送到視頻解碼器側(cè)。
殘留預(yù)測(cè)標(biāo)記是表示是否使用殘留預(yù)測(cè)的標(biāo)記。殘留預(yù)測(cè)是可通過利用基本層的對(duì)應(yīng)殘留信號(hào)預(yù)測(cè)某一層的殘留信號(hào)、而降低殘留信號(hào)的層間冗余的技術(shù)。由于基本層是為了另一層的有效編碼而提到的某一層,所以其不限于第一層,并不必意味著更低層。
是否使用殘留預(yù)測(cè)由傳遞到視頻解碼器側(cè)的殘留預(yù)測(cè)標(biāo)記表明。如果該標(biāo)記為“1”,則這表明使用了殘留預(yù)測(cè),而如果該標(biāo)記為“0”,則這表明沒有使用殘留預(yù)測(cè)。
基本層內(nèi)標(biāo)記是表明是否使用基本層內(nèi)預(yù)測(cè)的標(biāo)記。根據(jù)當(dāng)前可伸縮視頻編碼草案,除了已在現(xiàn)有H.264標(biāo)準(zhǔn)中使用的層間預(yù)測(cè)(①)和層內(nèi)預(yù)測(cè)(②)之外,還支持通過利用基本層圖像預(yù)測(cè)當(dāng)前層的幀而降低要編碼的數(shù)據(jù)的基本層內(nèi)預(yù)測(cè)(③),如圖3所示。在該草案中,基本層內(nèi)預(yù)測(cè)被視為一種層內(nèi)預(yù)測(cè)。在該層內(nèi)預(yù)測(cè)中,如果該基本層內(nèi)標(biāo)記為“0”,則其表明傳統(tǒng)層內(nèi)預(yù)測(cè),而如果該基本層內(nèi)標(biāo)記為“1”,則其表明基本層內(nèi)預(yù)測(cè)。
運(yùn)動(dòng)預(yù)測(cè)標(biāo)記是這樣的標(biāo)記,其表明在通過預(yù)測(cè)當(dāng)前層的運(yùn)動(dòng)向量獲得運(yùn)動(dòng)向量差(MVD)的過程中、是使用了同一層的另一運(yùn)動(dòng)向量還是使用了基本層的運(yùn)動(dòng)向量。如果該標(biāo)記為“1”,則表明使用了基本層的運(yùn)動(dòng)向量,而如果該標(biāo)記為“0”,則表明使用了同一層的另一運(yùn)動(dòng)向量。
基本模式標(biāo)記是這樣的標(biāo)記,其表明在表明當(dāng)前層的運(yùn)動(dòng)信息的過程中、是否使用了基本層的運(yùn)動(dòng)信息。如果基本模式標(biāo)記為“1”,則基本層自己的運(yùn)動(dòng)信息被用作當(dāng)前層的運(yùn)動(dòng)信息,或者使用基本層的以某種方式細(xì)分的運(yùn)動(dòng)信息。如果基本模式標(biāo)記為“0”,則其表明當(dāng)前層的運(yùn)動(dòng)信息被單獨(dú)恢復(fù)和記錄,而與基本層的運(yùn)動(dòng)信息無關(guān)。運(yùn)動(dòng)信息包括宏塊類型mb_type、層間預(yù)測(cè)期間的畫面參考方向(即前向、后向、和雙向)、和運(yùn)動(dòng)向量。
上述標(biāo)記稍微具有相應(yīng)層之間的相關(guān)性。也就是說,很可能當(dāng)前層的標(biāo)記與基本層的對(duì)應(yīng)標(biāo)記具有相同的值。而且,在典型的熵編碼中,隨著在要編碼的值中包括的值“0”的數(shù)目的變大,可改進(jìn)壓縮效率,這是公知的。這是因?yàn)樵陟鼐幋a中,一串值“0”被處理為一個(gè)游程(run),或參考偏置到“0”的表格而被處理??紤]到這些因素,通過在基本層的標(biāo)記與當(dāng)前層的對(duì)應(yīng)標(biāo)記相等的情況下將標(biāo)記設(shè)置為“0”、否則將標(biāo)記設(shè)置為“1”,可改進(jìn)執(zhí)行熵編碼時(shí)的壓縮效率。
圖4是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記編碼設(shè)備的構(gòu)造的方框圖。該標(biāo)記編碼設(shè)備100可包括標(biāo)記讀出單元110、預(yù)測(cè)標(biāo)記設(shè)置單元120、運(yùn)算單元130、熵編碼單元140、和插入單元150。
標(biāo)記讀出單元110讀取在特定存儲(chǔ)區(qū)中存儲(chǔ)的標(biāo)記值。一般來說,標(biāo)記值由1比特(“1”或“0”)表明,但不限于此。這些標(biāo)記包括當(dāng)前層的標(biāo)記FC和基本層的對(duì)應(yīng)標(biāo)記FB。
預(yù)測(cè)標(biāo)記設(shè)置單元110在特定單元區(qū)中判斷當(dāng)前層的標(biāo)記FC是否全部與基本層的對(duì)應(yīng)標(biāo)記FB相等,如果是,則將預(yù)測(cè)標(biāo)記P_flag設(shè)置為“0”,否則,將預(yù)測(cè)標(biāo)記P_flag設(shè)置為“1”。單元區(qū)可以是幀、碼片、宏塊、或子塊。如果單元區(qū)中包括的標(biāo)記在各層中彼此相等,則可跳過當(dāng)前層的標(biāo)記FC,而不是被設(shè)置為“1”。在該情況下,僅較低層的標(biāo)記FB和預(yù)測(cè)標(biāo)記P_flag被插入到比特流中,并被發(fā)送到視頻解碼器側(cè)。
在預(yù)測(cè)標(biāo)記被設(shè)置為“0”的情況下,運(yùn)算單元130對(duì)當(dāng)前層的標(biāo)記FC和基本層的對(duì)應(yīng)標(biāo)記FB執(zhí)行異或運(yùn)算。異或運(yùn)算是這樣的邏輯運(yùn)算,如果兩個(gè)輸入的比特值彼此相等,則輸出“0”,而如果它們彼此不等,則輸出“1”。如果對(duì)應(yīng)層的標(biāo)記FC和FB很可能彼此相等,則由該運(yùn)算所獲得的大多數(shù)輸出變?yōu)椤?”,并由此可改進(jìn)熵編碼效率。
例如,如果假設(shè)第一FGS層是當(dāng)前層,則第一FGS層的每一子塊的細(xì)分系數(shù)如圖5的陰影部分所示。如果這些細(xì)分系數(shù)按照?qǐng)D5的虛線箭頭(按照Z字形方式)的順序排列,則當(dāng)前層的符號(hào)標(biāo)記變?yōu)閧10101},而基本層(即離散層)的對(duì)應(yīng)符號(hào)標(biāo)記變?yōu)閧10100},其中正號(hào)被表示為“0”,而負(fù)號(hào)被表示為“1”。通過對(duì)一組標(biāo)記執(zhí)行異或運(yùn)算,該運(yùn)算結(jié)果變?yōu)閧00001}。在該情況下,對(duì)當(dāng)前層的運(yùn)算結(jié)果{00001}執(zhí)行熵編碼(而不是對(duì)符號(hào)標(biāo)記{10101}執(zhí)行熵編碼),這對(duì)于壓縮效率是有利的。
再次參考圖4,熵編碼單元140對(duì)從運(yùn)算單元130輸出的運(yùn)算結(jié)果執(zhí)行無損耗編碼。可變長(zhǎng)度編碼(包括CAVLC)、算術(shù)編碼(包括基于上下文的自適應(yīng)二進(jìn)制算術(shù)編碼)、霍夫曼編碼等可用作無損耗編碼方法。
在預(yù)測(cè)標(biāo)記P_flag為“1”的情況下,插入單元150將該預(yù)測(cè)標(biāo)記和基本層的標(biāo)記FB插入到比特流(BS)中。相反,如果預(yù)測(cè)標(biāo)記P_flag為“0”,則插入單元150將該預(yù)測(cè)標(biāo)記、基本層的標(biāo)記FB、和熵編碼后的運(yùn)算結(jié)果RC’插入到比特流(BS)中。比特流(BS)是已由多層視頻編碼器進(jìn)行有損耗編碼的數(shù)據(jù),并且最終比特流作為插入結(jié)果被輸出。
圖6是圖示了標(biāo)記解碼設(shè)備的構(gòu)造的方框圖。該標(biāo)記解碼設(shè)備200可包括比特流讀出單元210、預(yù)測(cè)標(biāo)記讀出單元220、替換單元230、熵解碼單元240、和運(yùn)算單元250。
比特流讀出單元210通過對(duì)該最終比特流進(jìn)行語法分析(parsing)而提取基本層的標(biāo)記FB和預(yù)測(cè)標(biāo)記P_flag。如果該比特流中存在熵編碼后的運(yùn)算結(jié)果RC’,則比特流讀出單元210也提取它。
預(yù)測(cè)標(biāo)記讀出單元220讀取所提取的預(yù)測(cè)標(biāo)記P_flag,并且如果預(yù)測(cè)標(biāo)記值為“0”,則其操作運(yùn)算單元250,而如果預(yù)測(cè)標(biāo)記值為“1”,則其操作替換單元230。
如果預(yù)測(cè)標(biāo)記讀出單元220通知該預(yù)測(cè)標(biāo)記為“1”,則替換單元230用基本層的標(biāo)記FB替換當(dāng)前層的標(biāo)記FC。因此,所輸出的基本層的標(biāo)記FB和當(dāng)前層的標(biāo)記FC變得彼此相等。
熵解碼單元240對(duì)運(yùn)算結(jié)果RC’執(zhí)行無損耗解碼。該解碼操作與熵編碼單元140執(zhí)行的無損耗編碼操作互逆。
如果預(yù)測(cè)標(biāo)記讀出單元220通知該預(yù)測(cè)標(biāo)記為“0”,則運(yùn)算單元250對(duì)基本層的標(biāo)記FB和無損耗編碼的結(jié)果RC執(zhí)行異或運(yùn)算。初始地,運(yùn)算單元130通過下述等式(1)的運(yùn)算而計(jì)算RC(其中,^是異或運(yùn)算的標(biāo)志),并且通過在等式(1)的兩側(cè)代入“^FB”,等式(1)的右側(cè)的“^FB^FB”被刪除,從而產(chǎn)生下述等式(2)的結(jié)果。
RC=FC^FB…(1)RC^FC=FC…(2)因此,運(yùn)算單元250可通過對(duì)于RC和FB執(zhí)行異或運(yùn)算,而恢復(fù)當(dāng)前層的標(biāo)記FC。最后,標(biāo)記解碼設(shè)備200的輸出變?yōu)榛緦拥臉?biāo)記FB和當(dāng)前層的標(biāo)記FC。
可通過在存儲(chǔ)器的特定區(qū)域中執(zhí)行的任務(wù)、類、子例程、過程、對(duì)象、執(zhí)行線程、例如程序的軟件、例如FPGA(現(xiàn)場(chǎng)可編程門陣列)或ASIC(特定用途集成電路)的硬件、或軟件和硬件的組合,而實(shí)現(xiàn)圖4和6的相應(yīng)組成元件。這些組成元件可被包括在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,或者它們的部件可分布在多個(gè)計(jì)算機(jī)中。
圖7是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記編碼方法的流程圖。
首先,標(biāo)記讀出單元110讀取基本層的標(biāo)記FB和當(dāng)前層的標(biāo)記FC(S11)。然后,預(yù)測(cè)標(biāo)記設(shè)置單元120判斷在單元區(qū)域中讀取的標(biāo)記FB和對(duì)應(yīng)標(biāo)記FC是否彼此相等(S12)。
如果作為判斷結(jié)果的標(biāo)記FB和FC彼此相等(操作S12中的“是”),則預(yù)測(cè)標(biāo)記設(shè)置單元120將預(yù)測(cè)標(biāo)記P_flag設(shè)置為“1”(S17),并且插入單元150將預(yù)測(cè)標(biāo)記P_flag和FB插入到比特流中(S18)。
如果作為判斷結(jié)果的標(biāo)記FB和FC彼此不相等(操作S12中的“否”),則預(yù)測(cè)標(biāo)記設(shè)置單元120將預(yù)測(cè)標(biāo)記P_flag設(shè)置為“0”(S13)。然后,運(yùn)算單元130對(duì)FB和FC執(zhí)行異或運(yùn)算(S14)。在本發(fā)明的另一示范實(shí)施例中,可省略操作S14的處理(在該情況下,F(xiàn)C將直接被熵編碼)。
熵編碼單元140對(duì)運(yùn)算結(jié)果RC執(zhí)行熵編碼(S15)。最終,插入單元150將預(yù)測(cè)標(biāo)記P_flag、基本層的標(biāo)記FB、和熵編碼的結(jié)果RC’插入到比特流中(S16)。
圖8是圖示了根據(jù)本發(fā)明另一示范實(shí)施例的標(biāo)記編碼方法的流程圖。該標(biāo)記編碼方法排除了預(yù)測(cè)標(biāo)記設(shè)置處理。在圖8所示方法中,執(zhí)行異或運(yùn)算,而不管FB和FC在單元區(qū)域中是否彼此相等。
首先,標(biāo)記讀出單元110讀取基本層的標(biāo)記FB和當(dāng)前層的標(biāo)記FC(S21)。然后,運(yùn)算單元130對(duì)FB和FC執(zhí)行異或運(yùn)算(S22)。熵編碼單元140對(duì)運(yùn)算結(jié)果RC執(zhí)行熵編碼(S23)。最終,插入單元150將預(yù)測(cè)標(biāo)記P_flag、基本層的標(biāo)記FB、和熵編碼的結(jié)果RC’插入到比特流中(S24)。
圖9是圖示了根據(jù)本發(fā)明示范實(shí)施例的標(biāo)記解碼方法的流程圖。
首先,比特流讀出單元210讀取最終比特流(BS),并提取基本層的標(biāo)記FB、熵編碼后的運(yùn)算結(jié)果RC’、和預(yù)測(cè)標(biāo)記P_flag(S31)。然后,預(yù)測(cè)標(biāo)記讀出單元220判斷所提取的預(yù)測(cè)標(biāo)記P_flag是否為“0”(S32)。
如果作為判斷結(jié)果的預(yù)測(cè)標(biāo)記P_flag為“1”(操作S32中的“否”),則替換單元230用所提取的基本層的標(biāo)記FB替換當(dāng)前層的標(biāo)記FC(S35),并輸出所替換的當(dāng)前層的標(biāo)記FC(S36)。單元區(qū)域可對(duì)應(yīng)于幀、碼片、宏塊、或子塊。
如果作為判斷結(jié)果的預(yù)測(cè)標(biāo)記P_flag為“0”(操作S32中的“是”),則熵解碼單元240通過對(duì)熵編碼后的運(yùn)算結(jié)果RC’進(jìn)行解碼而恢復(fù)運(yùn)算結(jié)果RC(S33)。該解碼運(yùn)算與熵編碼運(yùn)算互逆。
運(yùn)算單元250通過對(duì)基本層的標(biāo)記FB和無損耗編碼的結(jié)果RC執(zhí)行異或運(yùn)算,而恢復(fù)當(dāng)前層的標(biāo)記FC(S34)。然后,運(yùn)算單元250輸出所恢復(fù)的當(dāng)前層的標(biāo)記FC(S36)。
圖10是圖示了根據(jù)本發(fā)明另一示范實(shí)施例的標(biāo)記解碼方法的流程圖。該標(biāo)記解碼方法排除與預(yù)測(cè)標(biāo)記相關(guān)的處理。在圖10所示方法中,應(yīng)用了熵解碼處理(S42)和異或運(yùn)算(S43),而不考慮預(yù)測(cè)標(biāo)記P_flag的值。
首先,比特流讀出單元210讀取最終比特流(BS),并提取基本層的標(biāo)記FB和熵編碼后的運(yùn)算結(jié)果RC’(S41)。然后,熵解碼單元240通過對(duì)熵編碼的運(yùn)算結(jié)果RC’進(jìn)行解碼而恢復(fù)運(yùn)算結(jié)果RC(S42)。運(yùn)算單元250通過對(duì)基本層的標(biāo)記FB和無損耗編碼的結(jié)果RC執(zhí)行異或運(yùn)算而恢復(fù)當(dāng)前層的標(biāo)記FC(S43),并然后輸出所恢復(fù)的當(dāng)前層的標(biāo)記FC(S44)。
圖11是圖示了可應(yīng)用圖4的標(biāo)記編碼設(shè)備的基于多層的視頻編碼器的構(gòu)造的方框圖。
原始視頻序列被輸入到當(dāng)前層編碼器400,并(僅在各層之間的分辨率改變的情況下)由下采樣單元350進(jìn)行下采樣,以輸入到基本層編碼器300。
預(yù)測(cè)單元410通過以特定方法從當(dāng)前宏塊中減去預(yù)測(cè)圖像,而獲得殘留圖像。定向?qū)觾?nèi)預(yù)測(cè)、層間預(yù)測(cè)、基本層內(nèi)預(yù)測(cè)、和殘留預(yù)測(cè)可用作該預(yù)測(cè)方法。
變換單元420利用例如離散余弦變換(DCT)和小波變換的空間變換技術(shù)而變換所獲得的殘留信號(hào),并生成變換系數(shù)。
量化單元430通過特定量化操作而量化該變換系數(shù)(隨著量化操作的變大,數(shù)據(jù)損耗或壓縮率也變大),并生成量化系數(shù)。
熵編碼單元440執(zhí)行量化系數(shù)的無損耗編碼,并輸出當(dāng)前層比特流。
標(biāo)記設(shè)置單元450根據(jù)各種操作中獲得的信息而設(shè)置標(biāo)記。例如,通過從預(yù)測(cè)單元410獲得的信息而設(shè)置殘留預(yù)測(cè)標(biāo)記和基本層內(nèi)標(biāo)記,并通過從熵編碼單元440獲得的信息而設(shè)置細(xì)分系數(shù)的符號(hào)標(biāo)記。如上所述設(shè)置的當(dāng)前層的標(biāo)記FC被輸入到標(biāo)記編碼設(shè)備100。
以與當(dāng)前層編碼器400相同的方式,基本層編碼器300包括預(yù)測(cè)單元310、變換單元320、量化單元330、熵編碼單元340、和標(biāo)記設(shè)置單元350,它們與當(dāng)前層編碼器400的組件具有相同的功能。熵編碼單元340將基本層比特流輸出到多路復(fù)用器(mux)360,而標(biāo)記設(shè)置單元350將基本層標(biāo)記FB提供到標(biāo)記編碼設(shè)備100。
多路復(fù)用器360組合當(dāng)前層比特流和基本層比特流,以生成比特流(BS),并將所生成的比特流提供到標(biāo)記編碼設(shè)備100。
標(biāo)記編碼設(shè)備100利用FB和FC之間的相關(guān)性而對(duì)FC進(jìn)行編碼,并將所編碼的FC和FB插入到所提供的比特流中,以輸出最終比特流(最終BS)。
圖12是圖示了可應(yīng)用圖6的標(biāo)記解碼設(shè)備的基于多層的視頻解碼器的構(gòu)造的方框圖。
輸入最終比特流(最終BS)被輸入到標(biāo)記解碼設(shè)備200和解多路復(fù)用器(demux)650。解多路復(fù)用器650將最終比特流分離為當(dāng)前層比特流和基本層比特流,并將當(dāng)前層比特流和基本層比特流分別提供到當(dāng)前層解碼器700和基本層解碼器600。
熵解碼單元710通過執(zhí)行與熵編碼單元440執(zhí)行的無損耗編碼對(duì)應(yīng)的無損耗解碼,而恢復(fù)量化系數(shù)。
逆量化單元720通過在量化單元430中使用的量化操作而執(zhí)行所恢復(fù)的量化系數(shù)的逆量化。
逆變換單元730使用例如逆DCT和逆小波變換的逆空間變換技術(shù)而對(duì)逆量化的結(jié)果執(zhí)行逆變換。
逆預(yù)測(cè)單元740以相同方式獲得預(yù)測(cè)單元410所獲得的預(yù)測(cè)圖像,并通過將逆變換的結(jié)果添加到所獲得的預(yù)測(cè)圖像中而恢復(fù)視頻序列。
以與當(dāng)前層解碼器700相同的方式,基本層解碼器600包括熵解碼單元610、逆量化單元620、逆變換單元630、和逆預(yù)測(cè)單元640。
另一方面,標(biāo)記解碼設(shè)備200從最終比特流中提取基本層標(biāo)記FB和當(dāng)前層標(biāo)記FC的所編碼的值,并根據(jù)FB和所編碼的值而恢復(fù)當(dāng)前層標(biāo)記FC。
所提取的基本層標(biāo)記FB用于基本層解碼器600的組成元件610、620、630和640的對(duì)應(yīng)操作,而所恢復(fù)的當(dāng)前層標(biāo)記FC用于當(dāng)前層解碼器700的組成元件710、720、730和740的對(duì)應(yīng)操作。
如上所述,根據(jù)本發(fā)明,可改進(jìn)在基于多層的可伸縮視頻編解碼器中使用的各種標(biāo)記的編碼效率。
已為了示意性的目的而描述了本發(fā)明的示范實(shí)施例,并且本領(lǐng)域普通技術(shù)人員將理解,在不脫離所附權(quán)利要求中公開的本發(fā)明的范圍和精神的情況下,各種修改、添加和替換都是可能的。所以,本發(fā)明的范圍應(yīng)該由所附權(quán)利要求及其法定等同限定。
權(quán)利要求
1.一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的方法,該方法包括確定在指定單元區(qū)域中包括的當(dāng)前層的標(biāo)記是否等于基本層的標(biāo)記;根據(jù)該確定結(jié)果而設(shè)置預(yù)測(cè)標(biāo)記;和如果確定當(dāng)前層的標(biāo)記等于基本層的標(biāo)記,則將基本層的標(biāo)記和預(yù)測(cè)標(biāo)記插入到比特流中。
2.根據(jù)權(quán)利要求1的方法,還包括如果確定當(dāng)前層的標(biāo)記不等于基本層的標(biāo)記,則對(duì)當(dāng)前層的標(biāo)記進(jìn)行熵編碼,并將基本層的標(biāo)記、預(yù)測(cè)標(biāo)記、和熵編碼后的當(dāng)前層的標(biāo)記插入到該比特流中。
3.根據(jù)權(quán)利要求2的方法,還包括在熵編碼之前對(duì)當(dāng)前層的標(biāo)記和基本層的標(biāo)記執(zhí)行異或運(yùn)算,其中所述熵編碼后的當(dāng)前層的標(biāo)記是通過執(zhí)行異或運(yùn)算而獲得的值。
4.根據(jù)權(quán)利要求1的方法,其中該單元區(qū)域?qū)?yīng)于幀、碼片、宏塊、或子塊。
5.根據(jù)權(quán)利要求1的方法,其中當(dāng)前層的標(biāo)記和基本層的標(biāo)記包括殘留預(yù)測(cè)標(biāo)記、基本層內(nèi)標(biāo)記、運(yùn)動(dòng)預(yù)測(cè)標(biāo)記、基本模式標(biāo)記、和細(xì)分系數(shù)的符號(hào)標(biāo)記中的至少一個(gè)。
6.根據(jù)權(quán)利要求1的方法,其中,如果確定當(dāng)前層的標(biāo)記等于基本層的標(biāo)記,則將預(yù)測(cè)層設(shè)置為“1”,而如果確定當(dāng)前層的標(biāo)記不等于基本層的標(biāo)記,則將預(yù)測(cè)層設(shè)置為“0”。
7.一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的方法,該方法包括對(duì)當(dāng)前層的標(biāo)記和基本層的標(biāo)記執(zhí)行異或運(yùn)算;對(duì)通過執(zhí)行異或運(yùn)算獲得的值進(jìn)行熵編碼;和將熵編碼后的值和基本層的標(biāo)記插入到比特流中。
8.根據(jù)權(quán)利要求7的方法,其中該熵編碼包括可變長(zhǎng)度編碼、算術(shù)編碼、和霍夫曼編碼中的至少一個(gè)。
9.根據(jù)權(quán)利要求7的方法,其中當(dāng)前層的標(biāo)記和基本層的標(biāo)記包括殘留預(yù)測(cè)標(biāo)記、基本層內(nèi)標(biāo)記、運(yùn)動(dòng)預(yù)測(cè)標(biāo)記、基本模式標(biāo)記、和細(xì)分系數(shù)的符號(hào)標(biāo)記中的至少一個(gè)。
10.一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的方法,該方法包括從輸入比特流中讀取預(yù)測(cè)標(biāo)記和基本層的標(biāo)記;如果預(yù)測(cè)標(biāo)記具有第一比特值,則在預(yù)測(cè)標(biāo)記所被分配到的特定單元區(qū)域中,用所讀取的基本層的標(biāo)記替換當(dāng)前層的標(biāo)記;和輸出所替換的當(dāng)前層的標(biāo)記。
11.根據(jù)權(quán)利要求10的方法,還包括從輸入比特流中讀取編碼后的當(dāng)前層的標(biāo)記;如果該預(yù)測(cè)標(biāo)記具有第二比特值,則對(duì)編碼后的當(dāng)前層的標(biāo)記執(zhí)行熵解碼;對(duì)熵解碼的結(jié)果和所讀取的基本層的標(biāo)記執(zhí)行異或運(yùn)算;和輸出執(zhí)行異或運(yùn)算的結(jié)果。
12.根據(jù)權(quán)利要求11的方法,其中該熵解碼包括可變長(zhǎng)度解碼、算術(shù)解碼、和霍夫曼解碼中的至少一個(gè)。
13.根據(jù)權(quán)利要求10的方法,其中該單元區(qū)域?qū)?yīng)于幀、碼片、宏塊、或子塊。
14.根據(jù)權(quán)利要求10的方法,其中當(dāng)前層的標(biāo)記和基本層的標(biāo)記包括殘留預(yù)測(cè)標(biāo)記、基本層內(nèi)標(biāo)記、運(yùn)動(dòng)預(yù)測(cè)標(biāo)記、基本模式標(biāo)記、和細(xì)分系數(shù)的符號(hào)標(biāo)記中的至少一個(gè)。
15.一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的方法,該方法包括從輸入比特流中讀取基本層的標(biāo)記和編碼后的當(dāng)前層的標(biāo)記;對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行熵解碼;對(duì)熵解碼的結(jié)果和所讀取的基本層的標(biāo)記執(zhí)行異或運(yùn)算;和輸出執(zhí)行異或運(yùn)算的結(jié)果。
16.根據(jù)權(quán)利要求15的方法,其中該熵解碼包括可變長(zhǎng)度解碼、算術(shù)解碼、和霍夫曼解碼中的至少一個(gè)。
17.根據(jù)權(quán)利要求15的方法,其中當(dāng)前層的標(biāo)記和基本層的標(biāo)記包括殘留預(yù)測(cè)標(biāo)記、基本層內(nèi)標(biāo)記、運(yùn)動(dòng)預(yù)測(cè)標(biāo)記、基本模式標(biāo)記、和細(xì)分系數(shù)的符號(hào)標(biāo)記中的至少一個(gè)。
18.一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的設(shè)備,該設(shè)備包括預(yù)測(cè)標(biāo)記設(shè)置單元,用于確定在指定單元區(qū)域中包括的當(dāng)前層的標(biāo)記是否等于基本層的標(biāo)記,并根據(jù)該確定結(jié)果而設(shè)置預(yù)測(cè)標(biāo)記;和插入單元,用于如果確定當(dāng)前層的標(biāo)記等于基本層的標(biāo)記,則將基本層的標(biāo)記和預(yù)測(cè)標(biāo)記插入到比特流中。
19.一種利用與基本層的對(duì)應(yīng)標(biāo)記的相關(guān)性而對(duì)在基于多層的視頻中使用的當(dāng)前層的標(biāo)記進(jìn)行編碼的設(shè)備,該設(shè)備包括運(yùn)算單元,用于對(duì)當(dāng)前層的標(biāo)記和基本層的標(biāo)記執(zhí)行異或運(yùn)算;熵編碼單元,用于對(duì)通過異或運(yùn)算獲得的值執(zhí)行熵編碼;和插入單元,用于將熵編碼的結(jié)果和基本層的標(biāo)記插入到比特流中。
20.一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的設(shè)備,該設(shè)備包括比特流讀出單元,用于從輸入比特流中讀取預(yù)測(cè)標(biāo)記和基本層標(biāo)記;和替換單元,用于如果預(yù)測(cè)標(biāo)記具有第一比特值,則在預(yù)測(cè)標(biāo)記所被分配到的特定單元區(qū)域中,用所讀取的基本層的標(biāo)記替換當(dāng)前層的標(biāo)記,并輸出所替換的當(dāng)前層的標(biāo)記。
21.一種在基于多層的視頻中利用與基本層的標(biāo)記的相關(guān)性而對(duì)編碼后的當(dāng)前層的標(biāo)記進(jìn)行解碼的設(shè)備,該設(shè)備包括比特流讀出單元,用于從輸入比特流中讀取基本層的標(biāo)記和編碼后的當(dāng)前層的標(biāo)記;熵解碼單元,用于對(duì)編碼后的當(dāng)前層的標(biāo)記執(zhí)行熵解碼;運(yùn)算單元,用于對(duì)熵解碼的結(jié)果和所讀取的基本層的標(biāo)記執(zhí)行異或運(yùn)算,并輸出異或運(yùn)算的結(jié)果。
全文摘要
一種基于層間相關(guān)性對(duì)在基于多層的可伸縮視頻編解碼器中使用的各種標(biāo)記進(jìn)行有效編碼的方法和設(shè)備。該編碼方法包括判斷在指定單元區(qū)域中包括的當(dāng)前層的標(biāo)記是否全部等于基本層的標(biāo)記;根據(jù)該判斷結(jié)果而設(shè)置指定預(yù)測(cè)標(biāo)記;和如果判斷當(dāng)前層的標(biāo)記等于基本層的標(biāo)記,則跳過當(dāng)前層的標(biāo)記,并將基本層的標(biāo)記和預(yù)測(cè)標(biāo)記插入到比特流中。
文檔編號(hào)H04N7/50GK1976458SQ20061013625
公開日2007年6月6日 申請(qǐng)日期2006年10月19日 優(yōu)先權(quán)日2005年10月19日
發(fā)明者李培根, 韓宇鎮(zhèn) 申請(qǐng)人:三星電子株式會(huì)社