亚洲狠狠干,亚洲国产福利精品一区二区,国产八区,激情文学亚洲色图

用于無損編碼的快速編碼方法

文檔序號(hào):7990839閱讀:361來源:國(guó)知局
用于無損編碼的快速編碼方法
【專利摘要】本發(fā)明包括一種設(shè)備,所述設(shè)備包括處理器,所述處理器用于接收視頻幀的當(dāng)前塊,并且僅基于比特率代價(jià)函數(shù)來確定所述當(dāng)前塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,并且其中所述比特率代價(jià)函數(shù)的計(jì)算并不考慮所述當(dāng)前塊的失真。
【專利說明】用于無損編碼的快速編碼方法
相關(guān)申請(qǐng)案的交叉參考
[0001]本發(fā)明要求2011年6月30日高文等人遞交的發(fā)明名稱為“用于復(fù)合視頻的無損編碼工具(Lossless Coding Tools for Compound Video)”的第 61/503,534 號(hào)美國(guó)臨時(shí)專利申請(qǐng)案的在先申請(qǐng)優(yōu)先權(quán),以及2011年7月12日高文等人遞交的發(fā)明名稱為“用于復(fù)合視頻的額外的無損編碼工具(Additional Lossless Coding Tools for Compound Video)”的第61/506,958號(hào)美國(guó)臨時(shí)專利申請(qǐng)案的在先申請(qǐng)優(yōu)先權(quán),上述在先申請(qǐng)的內(nèi)容以引入的方式并入本文本中,如全文再現(xiàn)一般。
關(guān)于由聯(lián)邦政府贊助的 研究或開發(fā)的聲明
[0002]不適用。
參考縮微膠片附錄
[0003]不適用。
【技術(shù)領(lǐng)域】

【背景技術(shù)】
[0004]即使在影片相對(duì)較短的情況下也需要對(duì)大量的視頻數(shù)據(jù)進(jìn)行描述,當(dāng)數(shù)據(jù)要在帶寬容量受限的通信網(wǎng)絡(luò)中流過或以其他方式傳送時(shí),這樣可能會(huì)造成困難。因此,視頻數(shù)據(jù)通常要先壓縮然后在現(xiàn)代電信網(wǎng)絡(luò)中傳送。視頻壓縮裝置通常在源處使用軟件和/或硬件,以在傳送之前對(duì)視頻數(shù)據(jù)進(jìn)行編碼,從而減少用來表示數(shù)字視頻圖像所需的數(shù)據(jù)量。接著,壓縮數(shù)據(jù)在目的地處由視頻解壓裝置接收,該視頻解壓裝置用于對(duì)視頻數(shù)據(jù)進(jìn)行解碼。由于網(wǎng)絡(luò)資源受限,因此需要能提高壓縮率但大體上不會(huì)降低圖像質(zhì)量的改進(jìn)的壓縮/解壓技術(shù)。

【發(fā)明內(nèi)容】

[0005]在一項(xiàng)實(shí)施例中,本發(fā)明包含一種設(shè)備,所述設(shè)備包括處理器,所述處理器用于接收視頻幀的當(dāng)前塊,并且僅基于比特率代價(jià)函數(shù)來確定當(dāng)前塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,并且其中比特率代價(jià)函數(shù)的計(jì)算并不考慮當(dāng)前塊的失真。
[0006]在另一項(xiàng)實(shí)施例中,本發(fā)明包含一種方法,所述方法包括接收視頻幀的當(dāng)前塊,并且僅基于比特率代價(jià)函數(shù)來確定當(dāng)前塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,并且其中比特率代價(jià)函數(shù)的計(jì)算并不考慮當(dāng)前塊的失真。
[0007]在又一項(xiàng)實(shí)施例中,本發(fā)明包含用在視頻編碼中的設(shè)備,所述設(shè)備包括處理器,所述處理器用于針對(duì)塊中的多個(gè)像素中的每個(gè)像素,用參考?jí)K中的多個(gè)對(duì)應(yīng)像素中的一個(gè)像素來確定差值,其中每個(gè)差值是基于一對(duì)比較像素的兩個(gè)顏色值確定的,并且如果每個(gè)差值都在預(yù)設(shè)的界限內(nèi),則生成信息以對(duì)指示所述塊為跳過塊,其中所述信息對(duì)所述塊和參考?jí)K進(jìn)行識(shí)別,并且將所述信息包含到比特流中而無需對(duì)所述塊進(jìn)行進(jìn)一步編碼。
[0008]在又一項(xiàng)實(shí)施例中,本發(fā)明包含用在視頻編碼中的方法,所述方法包括針對(duì)塊中的多個(gè)像素中的每個(gè)像素,用參考?jí)K中的多個(gè)對(duì)應(yīng)像素中的一個(gè)來確定差值,其中每個(gè)差值是基于一對(duì)比較像素的兩個(gè)顏色值確定的,并且如果每個(gè)差值都在預(yù)設(shè)的界限內(nèi),則生成信息以對(duì)指示所述塊為跳過塊,其中所述信息對(duì)所述塊和參考?jí)K進(jìn)行識(shí)別,并且將所述信息包含到比特流中而無需對(duì)所述塊進(jìn)行進(jìn)一步編碼。
[0009]從結(jié)合附圖和所附權(quán)利要求書進(jìn)行的以下詳細(xì)描述將更清楚地理解這些和其他特征。
【專利附圖】

【附圖說明】
[0010]為了更完整地理解本發(fā)明,現(xiàn)在參考以下結(jié)合附圖和詳細(xì)描述進(jìn)行的簡(jiǎn)要描述,其中相同參考標(biāo)號(hào)表不相同部分。
[0011]圖1是變換略過編碼方案的一項(xiàng)實(shí)施例的示意圖。
[0012]圖2是變換略過解碼方案的一項(xiàng)實(shí)施例的示意圖。
[0013]圖3是無量化變換編碼方案的一項(xiàng)實(shí)施例的示意圖。
[0014]圖4是無量化變換解碼方案的一項(xiàng)實(shí)施例的示意圖。
[0015]圖5是有損編碼 方案的一項(xiàng)實(shí)施例的不意圖。
[0016]圖6是有損解碼方案的一項(xiàng)實(shí)施例的示意圖。
[0017]圖7是編碼方法的一項(xiàng)實(shí)施例的流程圖。
[0018]圖8是解碼方法的一項(xiàng)實(shí)施例的流程圖。
[0019]圖9是編碼模式選擇方法的一項(xiàng)實(shí)施例的流程圖。
[0020]圖10是網(wǎng)絡(luò)單元的一項(xiàng)實(shí)施例的示意圖。
[0021]圖11是通用計(jì)算機(jī)系統(tǒng)的示意圖。
【具體實(shí)施方式】
[0022]最初應(yīng)理解,盡管下文提供一項(xiàng)或多項(xiàng)實(shí)施例的說明性實(shí)施方案,但可以使用任何數(shù)目的技術(shù),不管是當(dāng)前已知還是現(xiàn)有的,來實(shí)施所揭示的系統(tǒng)和/或方法。本發(fā)明決不應(yīng)限于下文所說明的所述說明性實(shí)施方案、圖式和技術(shù),包含本文所說明并描述的示范性設(shè)計(jì)和實(shí)施方案,而是可以在所附權(quán)利要求書的范圍以及其均等物的完整范圍內(nèi)修改。
[0023]通常,視頻媒體涉及相對(duì)較快地連續(xù)顯示一系列靜態(tài)圖像或幀,從而讓觀察者感覺到運(yùn)動(dòng)。每個(gè)幀可以包含多個(gè)圖像元素或像素,每個(gè)圖像元素或像素可以表示幀中的單個(gè)參考點(diǎn)。在數(shù)字處理期間,每個(gè)像素可以被分配一個(gè)整數(shù)值(例如,0、1、……或255),所述整數(shù)值表示對(duì)應(yīng)參考點(diǎn)處的圖像質(zhì)量或特征,例如,亮度或色度。在使用中,圖像或視頻幀可以包含大量的像素(例如,在1920X1080的幀中包含2,073,600個(gè)像素),因此對(duì)每個(gè)像素進(jìn)行獨(dú)立的編碼和解碼(下文中簡(jiǎn)稱為編碼)可能是繁瑣且低效的。為了提高編碼效率,通常將視頻幀分成多個(gè)矩形塊或宏塊,每個(gè)矩形塊或宏塊都可以用作預(yù)測(cè)、變換以及量化等處理的基本單元。例如,典型的NxN的塊可以包括N2個(gè)像素,其中N是大于I的整數(shù),并且通常是四的倍數(shù)。[0024]在國(guó)際電信聯(lián)盟(ITU)電信標(biāo)準(zhǔn)化部門(ITU-T)和國(guó)際標(biāo)準(zhǔn)化組織(ISO)/國(guó)際電工技術(shù)委員會(huì)(IEC)的工作草案中,高性能視頻編碼(HEVC)將準(zhǔn)備作為下一個(gè)視頻標(biāo)準(zhǔn),并且已經(jīng)引入了新的塊概念。例如,編碼單元(CU)可以指將視頻幀分為相等大小或不同大小的矩形塊的子分區(qū)。在HEVC中,CU可以取代先前標(biāo)準(zhǔn)的宏塊結(jié)構(gòu)。根據(jù)幀間預(yù)測(cè)或幀內(nèi)預(yù)測(cè)的模式,一個(gè)CU可以包括一個(gè)或多個(gè)預(yù)測(cè)單元(PU),每個(gè)預(yù)測(cè)單元可以用作預(yù)測(cè)的基本單元。例如,對(duì)于幀內(nèi)預(yù)測(cè)而言,一個(gè)64x64的⑶可以被對(duì)稱地分為四個(gè)32x32的PU。又例如,對(duì)于幀間預(yù)測(cè)而言,一個(gè)64x64的⑶可以被非對(duì)稱地分為一個(gè)16x64的PU以及一個(gè)48x64的PU。類似地,一個(gè)I3U可以包括一個(gè)或多個(gè)變換單元(TU),每個(gè)變換單元可以用作變換和/或量化的基本單元。例如,一個(gè)32x32的I3U可以被對(duì)稱地分為四個(gè)16x16的TU0 一個(gè)I3U的多個(gè)TU可以共享一個(gè)相同的預(yù)測(cè)模式,但是可以單獨(dú)地進(jìn)行變換。本文中,術(shù)語(yǔ)“塊”通??梢灾负陦K、⑶、PU或TU中的任何一個(gè)。
[0025]根據(jù)應(yīng)用,可以在無損模式(即,不存在失真或信息損失)或有損模式(即,存在失真)中對(duì)塊進(jìn)行編碼。在使用中,高質(zhì)量視頻(例如,具有的YUV子采樣為4:4:4)可以使用無損模式進(jìn)行編碼,而低質(zhì)量視頻(例如,具有的YUV子采樣為4:2:0)可以使用有損模式進(jìn)行編碼。有時(shí),單個(gè)視頻幀或切片(例如,具有的YUV子采樣為4:4:4或4:2:0)可以采用無損模式和有損模式對(duì)多個(gè)區(qū)域進(jìn)行編碼,所述區(qū)域可以是矩形或不規(guī)則形狀的。每個(gè)區(qū)域可以包括多個(gè)塊。例如,復(fù)合視頻可以包括文本、計(jì)算機(jī)圖表和天然視圖內(nèi)容(例如,攝像機(jī)采集的視頻)等不同類型的內(nèi)容的組合。在復(fù)合幀中,文本和圖表的區(qū)域可以在無損模式下進(jìn)行編碼,而天然視圖內(nèi)容的區(qū)域可以在有損模式下進(jìn)行編碼。例如,在計(jì)算機(jī)屏幕共享應(yīng)用中,可能需要文本和圖表的無損編碼,這是因?yàn)橛袚p編碼可能導(dǎo)致本文和圖表的質(zhì)量或保真度較差,從而造成眼部疲勞。當(dāng)前的HEVC測(cè)試模型(HM),例如,HM3.0,可以相當(dāng)有效地對(duì)天然視圖內(nèi)容進(jìn)行編碼。然而,當(dāng)前HM可能缺少用于某些視頻的無損編碼模式,因此它們的編碼效率和速度可能受到限制。
[0026]在當(dāng)前HM的有損編碼方案中,可能需要對(duì)已編碼視頻的比特率和失真進(jìn)行平衡。為了獲得較少的失真,通常需要對(duì)更多的信息(例如,像素值或變換系數(shù))進(jìn)行編碼,從而產(chǎn)生更多的編碼率并且因此產(chǎn)生更高的比特率。另一方面,為了獲得較低的比特率,可能需要移除某些信息。例如,通過二維變換操作,空間域中的像素值被轉(zhuǎn)化為頻域中的變換系數(shù)。在變換系數(shù)矩陣中,對(duì)應(yīng)于較小空間特征的高指數(shù)變換系數(shù)(例如,在右下角)可以具有相對(duì)較小的值。因此,在隨后的量化操作中,可以將較大的量化系數(shù)應(yīng)用在高指數(shù)變換系數(shù)上。在對(duì)整數(shù)進(jìn)行四舍五入之后,可以在高指數(shù)位置中生成多個(gè)零值變換系數(shù),隨后,這些零值變換系數(shù)在接下來的編碼步驟中可以被跳過。雖然量化可能會(huì)降低比特率,但是在編碼過程中針對(duì)較小空間特征的信息可能會(huì)損失。這些損失的信息可能是不可恢復(fù)的,因此失真可能會(huì)增大,并且在已解碼的視頻中編碼保真度會(huì)下降。
[0027]在使用中,可能有多個(gè)編碼模式以對(duì)視頻幀進(jìn)行編碼。例如,幀的特定切片可以使用多種塊分區(qū)(數(shù)目、大小和形狀)。對(duì)于每個(gè)分區(qū)而言,如果將要使用幀間預(yù)測(cè),那么可以存在與一個(gè)或多個(gè)參考幀相關(guān)聯(lián)的多個(gè)運(yùn)動(dòng)矢量。否則,如果將要使用幀內(nèi)預(yù)測(cè),那么可以存在對(duì)應(yīng)于多種幀內(nèi)預(yù)測(cè)模式的多個(gè)參考像素。每種編碼模式可能引起不同的比特率和/或失真。因此,視頻編碼器中的率失真優(yōu)化(RDO)模塊可以用于從多個(gè)編碼模式中選擇最佳編碼模式,以確定比特率與失真之間的最佳的平衡或權(quán)衡。[0028]當(dāng)前HM可以通過使用聯(lián)合率失真(RD)代價(jià)對(duì)比特率和失真的總體代價(jià)聯(lián)合地進(jìn)行評(píng)估。例如,可以將比特率代價(jià)(表示為R)和失真代價(jià)(表示為D)結(jié)合成單個(gè)的聯(lián)合率失真(RD)代價(jià)(表示為J),其可以以數(shù)學(xué)方式表示為:
J=D+ λ R
其中λ是表示比特率與特定的質(zhì)量水平之間的關(guān)系的拉格朗日系數(shù)。
[0029]可以使用多種數(shù)學(xué)度量來計(jì)算失真,例如,平方失真之和(SSD)、絕對(duì)誤差之和(SAE )、絕對(duì)差之和(SAD )、絕對(duì)差的平均值(MAD ),或者平方誤差的平均值(MSE )。通過使用這些失真度量中的任何一個(gè),RDO過程可以試圖尋找能夠?qū)最小化的編碼模式。
[0030]在當(dāng)前HM中,編碼器中最佳編碼模式的選擇可能是一個(gè)復(fù)雜的過程。例如,對(duì)于每個(gè)塊的每一可用的編碼模式(表示為m),編碼器可以使用模式m對(duì)所述塊進(jìn)行編碼并且計(jì)算R,R是對(duì)所述塊進(jìn)行編碼所需的比特?cái)?shù)。然后,編碼器可以重建所述塊并且計(jì)算D,D是原始?jí)K與重建塊之間的差值。隨后,編碼器可以使用上述方程來計(jì)算模式代價(jià)Jm??梢葬槍?duì)每一可用的編碼模式來重復(fù)該過程。最后,編碼器可以選擇具有最小Jm的一個(gè)模式。編碼器中的RDO過程可能是需要大量計(jì)算的過程,這是因?yàn)槔?,基于塊大小、幀間預(yù)測(cè)幀、幀內(nèi)預(yù)測(cè)方向的多種組合,可能潛在地存在數(shù)百種可能的編碼模式。在確定最佳編碼模式之前,可能需要對(duì)塊的R和D進(jìn)行數(shù)百次計(jì)算。
[0031]此外,當(dāng)對(duì)視頻幀序列進(jìn)行編碼時(shí),有時(shí)某些區(qū)域可以在相對(duì)較長(zhǎng)的時(shí)間段內(nèi)保持穩(wěn)定。例如,在視頻會(huì)議應(yīng)用中,每個(gè)用戶的背景區(qū)域可以在幾十分鐘內(nèi)保持不變。在當(dāng)前編碼器中,RDO模塊可以仍舊針對(duì)這些區(qū)域中的塊對(duì)比特率和/或失真進(jìn)行評(píng)估,這可能會(huì)消耗寶貴的計(jì)算資源和時(shí)間。
[0032]本文中所公開的是用于改進(jìn)視頻編碼的系統(tǒng)和方法。本發(fā)明提供了無損編碼模式以及強(qiáng)制跳過模式,所述模式可以對(duì)復(fù)合視頻等視頻的編碼中的有損編碼模式進(jìn)行補(bǔ)充。無損模式可以包含變換略過編碼方案以及無量化變換編碼方案。在塊的無損編碼中,由于可以不引起任何失真(或者僅有少量的失真),因此可以對(duì)RDO模式選擇過程進(jìn)行簡(jiǎn)化。在一項(xiàng)實(shí)施例中,僅保留了聯(lián)合RD代價(jià)的比特率部分。因此,根據(jù)多個(gè)可用的編碼模式,RDO過程只需要對(duì)能夠產(chǎn)生最少比特?cái)?shù)的最佳編碼模式進(jìn)行確定。無需將重建塊與原始源塊進(jìn)行比較,這樣可以同時(shí)節(jié)省計(jì)算資源和時(shí)間。另外,如果視頻幀或切片包括在相對(duì)較長(zhǎng)周期(例如,幾十秒或幾十分種)內(nèi)保持穩(wěn)定的一個(gè)或多個(gè)區(qū)域,那么RDO過程可以在一個(gè)或多個(gè)區(qū)域中實(shí)施強(qiáng)制跳過模式。在強(qiáng)制跳過模式的一項(xiàng)實(shí)施例中,如果發(fā)現(xiàn)CU與參考幀中的對(duì)應(yīng)參考CU完全匹配(或者與預(yù)設(shè)界限中的差值近似匹配),那么可以在剩余的編碼步驟中跳過該CU。由于簡(jiǎn)化的RDO模式選擇方案以及強(qiáng)制跳過模式的實(shí)施,可以更加快速且更加有效地對(duì)視頻進(jìn)行編碼。
[0033]在使用中,編碼器之前存在一個(gè)模塊,用于對(duì)視頻幀的內(nèi)容進(jìn)行分析,并且對(duì)需要無損編碼的某些區(qū)域(例如,文本和/或圖表區(qū)域)進(jìn)行識(shí)別。關(guān)于要在無損模式下進(jìn)行編碼的區(qū)域的信息或指令可以傳遞到編碼器中?;谠撔畔?,編碼器可以使用無損模式對(duì)識(shí)別的區(qū)域進(jìn)行編碼?;蛘?,用戶可以手動(dòng)地設(shè)定使用無損模式進(jìn)行編碼的某些區(qū)域,并且向編碼器提供識(shí)別這些區(qū)域的信息。因此,根據(jù)編碼器所接收到的信息,可以在無損模式和/或有損模式下對(duì)視頻(例如,復(fù)合視頻)進(jìn)行編碼。本文中,無損編碼模式可以包含變換略過編碼以及無量化變換編碼。在本文中對(duì)這兩種無損編碼方案以及有損編碼方案進(jìn)行了描述。
[0034]類似地,基于包含在接收的比特流中的信息,視頻解碼器可以使用無損模式和/或有損模式對(duì)視頻幀進(jìn)行解碼。所述無損解碼模式可以包含變換略過解碼以及無量化變換解碼。在本文中對(duì)這兩種無損解碼方案以及有損解碼方案進(jìn)行了描述。
[0035]圖1描繪了可以在視頻編碼器中實(shí)施的變換略過編碼方案100的一項(xiàng)實(shí)施例。變換略過編碼方案100可以包括如圖1所示進(jìn)行布置的率失真優(yōu)化(RDO)模塊110,預(yù)測(cè)模塊120、熵編碼器130以及重建模塊140。在運(yùn)行中,包括視頻幀(或切片)序列的輸入視頻可以被編碼器接收。本文中,幀可以指預(yù)測(cè)幀(P幀)、幀內(nèi)編碼幀(I幀),或者雙向預(yù)測(cè)幀(B幀)中的任一者。類似地,切片可以指P切片、I切片,或者B切片中的任一者。
[0036]RDO模塊110可以用于為一個(gè)或多個(gè)其他模塊作出邏輯決策。在一項(xiàng)實(shí)施例中,基于一個(gè)或多個(gè)先前編碼的幀,RDO模塊110可以確定一個(gè)被編碼的當(dāng)前幀(或切片)如何被分為多個(gè)CU,以及一個(gè)CU如何被分為一個(gè)或多個(gè)PU和TU。例如,當(dāng)前幀的均質(zhì)區(qū)域(即,與先前編碼的幀沒有差別或者差別很小的區(qū)域)可以被分為相對(duì)較大的塊,而當(dāng)前幀的細(xì)節(jié)區(qū)域(即,與先前編碼的幀有顯著差別的區(qū)域)可以被分為相對(duì)較小的塊。
[0037]此外,RDO模塊110可以通過確定如何對(duì)當(dāng)前幀進(jìn)行預(yù)測(cè)來控制預(yù)測(cè)模塊120??梢酝ㄟ^幀間預(yù)測(cè)和/或幀內(nèi)預(yù)測(cè)對(duì)當(dāng)前幀進(jìn)行預(yù)測(cè)。幀間預(yù)測(cè)(即,幀之間的預(yù)測(cè))可以利用幀序列中的時(shí)間冗余,例如,連續(xù)幀的對(duì)應(yīng)塊之間的相似度,來減少壓縮數(shù)據(jù)。在幀間預(yù)測(cè)中,RDO模塊110可以基于一個(gè)或多個(gè)參考幀中的對(duì)應(yīng)塊,對(duì)當(dāng)前幀中的塊的運(yùn)動(dòng)矢量進(jìn)行確定。另一方面,幀內(nèi)預(yù)測(cè)可以利用單個(gè)幀內(nèi)的空間冗余,例如,鄰近塊之間的相似度,來減少壓縮數(shù)據(jù)。在幀內(nèi)預(yù)測(cè)中,鄰近當(dāng)前塊的參考像素可以用于生成預(yù)測(cè)塊。幀內(nèi)預(yù)測(cè)(即,幀內(nèi)部的預(yù)測(cè))可以使用多個(gè)可用預(yù)測(cè)模式或方向(即,HEVC中的34個(gè)模式)中的任何一個(gè)來實(shí)施,所述預(yù)測(cè)模式或方向由RDO模塊110進(jìn)行確定。例如,RDO模塊110可以針對(duì)每個(gè)預(yù)測(cè)模式來計(jì)算絕對(duì)誤差之和(SAE),并且選擇產(chǎn)生最小SAE的預(yù)測(cè)模式。
[0038]基于RDO模塊110作出的邏輯決策,預(yù)測(cè)模塊120可以利用一個(gè)或多個(gè)參考幀(中貞間預(yù)測(cè))或多個(gè)參考像素(幀內(nèi)預(yù)測(cè))來生成預(yù)測(cè)塊,所述預(yù)測(cè)塊可能是當(dāng)前塊的估計(jì)。隨后,可以從當(dāng)前塊中減去預(yù)測(cè)塊,從而生成殘余塊。殘余塊可以包括多個(gè)殘余值,每個(gè)殘余值可以指示當(dāng)前塊中的像素與預(yù)測(cè)塊中的對(duì)應(yīng)像素之間的差值。隨后,殘余塊的所有值可以由熵編碼器130進(jìn)行掃描并且編碼為編碼比特流。熵編碼器130可以采用任何熵編碼方案,例如,內(nèi)容自適應(yīng)二進(jìn)制算術(shù)編碼(CABAC)編碼方案,指數(shù)哥倫布編碼方案,或者固定長(zhǎng)度編碼方案,或其任意組合。在變換略過編碼方案100中,由于殘余塊是在沒有變換步驟或量化步驟的情況下被編碼的,因此在所述編碼過程中不會(huì)引起任何信息損失。
[0039]為了有助于視頻幀的連續(xù)編碼,殘余塊也可以被送入重建模塊140中,重建模塊140可以生成用于未來塊的幀內(nèi)預(yù)測(cè)的參考像素或者用于未來幀的幀間預(yù)測(cè)的參考幀。如果需要,則可以在參考幀/像素用于幀間/幀內(nèi)預(yù)測(cè)之前對(duì)它們執(zhí)行濾波。所屬領(lǐng)域的技術(shù)人員對(duì)預(yù)測(cè)模塊120和重建模塊140的功能非常熟悉,因此將不會(huì)對(duì)這些模塊進(jìn)行詳細(xì)描述。應(yīng)注意,圖1可能是視頻編碼器的簡(jiǎn)化的圖示,因此其可能只包含編碼器中呈現(xiàn)的部分模塊。其他模塊(例如,濾波器、掃描儀以及發(fā)射器)雖然未在圖1中示出,但是也可以包含在內(nèi)以協(xié)助視頻編碼。在從編碼器處進(jìn)行傳送之前,編碼比特流可以進(jìn)一步配置成包含其他信息,例如視頻分辨率、幀率、塊分區(qū)信息(大小、坐標(biāo))、預(yù)測(cè)模式等,因此可以對(duì)視頻幀的編碼序列適當(dāng)?shù)剡M(jìn)行解碼。
[0040]圖2描繪了可以在視頻解碼器中實(shí)施的變換略過解碼方案200的一項(xiàng)實(shí)施例。變換略過解碼方案200可以對(duì)應(yīng)于變換略過編碼方案100,并且可以包括如圖2所示進(jìn)行布置的熵解碼器210、預(yù)測(cè)模塊220,以及重建模塊230。在運(yùn)行中,熵解碼器210可以接收含有視頻幀序列信息的編碼比特流,該熵解碼器可以將比特流解碼成未壓縮格式。熵解碼器210可以采用任何熵解碼方案,例如,CABAC解碼方案、指數(shù)哥倫布解碼方案,或者固定長(zhǎng)度解碼方案,或其任意組合。
[0041]對(duì)于被解碼的當(dāng)前塊而言,在使用熵解碼器210之后,可以生成殘余塊。此外,包含有當(dāng)前塊的預(yù)測(cè)模式的信息也可以由熵解碼器210進(jìn)行解碼。隨后,基于預(yù)測(cè)模式,預(yù)測(cè)模塊220可以基于先前解碼的塊或幀生成當(dāng)前塊的預(yù)測(cè)塊。如果所述預(yù)測(cè)模式為幀間模式,那么可以使用一個(gè)或多個(gè)先前解碼的參考幀來生成預(yù)測(cè)塊。否則,如果預(yù)測(cè)模式為幀內(nèi)模式,那么可以使用參考?jí)K中的多個(gè)先前解碼的參考像素來生成預(yù)測(cè)塊。隨后,重建模塊230可以將殘余塊與預(yù)測(cè)塊結(jié)合起來以生成重建塊。此外,為了協(xié)助視頻幀的連續(xù)解碼,可以在參考幀中使用重建塊以對(duì)未來幀進(jìn)行幀間預(yù)測(cè)。針對(duì)相同幀中的未來塊的幀內(nèi)預(yù)測(cè),重建塊的一些像素也可以用作參考像素。
[0042]在使用中,如果使用變換略過編碼方案100和變換略過解碼方案200等無損方案對(duì)原始?jí)K進(jìn)行編碼和解碼,那么在整個(gè)編碼過程中將不會(huì)引起任何信息損失。因此,除了在傳送過程中引起的失真之外,重建塊可以與原始?jí)K完全一樣。這種編碼的高保真度可以改進(jìn)觀看文本和圖表等視頻內(nèi)容時(shí)的用戶體驗(yàn)。
[0043]在視頻幀中的某些區(qū)域的無損編碼期間,有時(shí)可能需要將變換步驟包含到編碼過程中。例如,對(duì)于文本區(qū)域的一些塊而言,添加的變換步驟可以生成與變換略過編碼方案相比更加短的比特流。在一項(xiàng)實(shí)施例中,RDO模塊可以用于確定是否包含所述變換步驟。例如,可以執(zhí)行測(cè)試變換以將殘余塊轉(zhuǎn)化為變換系數(shù)的矩陣。如果與在殘余塊中沒有變換的情況下對(duì)殘余值進(jìn)行編碼所需的比特?cái)?shù)相比,對(duì)變換系數(shù)進(jìn)行編碼所需的比特?cái)?shù)較小,那么可以將變換步驟包含在內(nèi)。否則,可以略過變換步驟。圖3描繪了無量化變換編碼方案300的一項(xiàng)實(shí)施例,所述編碼方案可以包括RDO模塊310、預(yù)測(cè)模塊320、變換模塊330、熵編碼器340,逆變換模塊350,以及重建模塊360。無量化變換編碼方案300的一些方面可以與圖1中的變換略過編碼方案100相同或者類似,因此為了簡(jiǎn)明起見將不會(huì)對(duì)類似的方面進(jìn)一步進(jìn)行描述。
[0044]無量化變換編碼方案300可以在視頻編碼器中實(shí)施,所述視頻編碼器可以接收包括視頻幀序列的輸入視頻。RDO模塊310可以用于控制一個(gè)或多個(gè)其他模塊,并且可以與圖1中的RDO模塊110相同或者類似。基于RDO模塊310作出的邏輯決策,預(yù)測(cè)模塊320可以利用參考幀(巾貞間預(yù)測(cè))或參考像素(巾貞內(nèi)預(yù)測(cè))來生成預(yù)測(cè)塊,所述預(yù)測(cè)塊是當(dāng)前塊的估計(jì)。隨后,可以從當(dāng)前塊中減去預(yù)測(cè)塊,從而生成殘余塊。預(yù)測(cè)模塊320可以與圖1中的預(yù)測(cè)模塊120相同或者類似。
[0045]無量化變換編碼方案300中的殘余塊可以首先由變換模塊330從空間域變換到頻域中,而不是直接進(jìn)行熵編碼。變換模塊330可以將殘余塊的值(即,殘余值)轉(zhuǎn)化為包括多個(gè)變換系數(shù)的變換矩陣。可以使用任何合適的算法來實(shí)施變換模塊330,例如,離散余弦變換(DCT )、分形變換(FT ),或離散小波變換(DWT )。在使用中,一些算法,例如,在H.264/高級(jí)視頻編碼(AVC)中定義的4x4整數(shù)變換,不會(huì)引起任何信息損失,而其他算法,例如,在HEVC工作草案中定義的8x8整數(shù)DCT變換,可以引起少量信息損失。例如,由于HEVC中的8x8整數(shù)DCT變換可能并不是完全可逆的,因此逆變換模塊350之后的殘余塊的恢復(fù)值可能略微不同于(例如,最多相差±2的值)變換模塊330之前的殘余塊的原始值。當(dāng)引起少量的信息損失時(shí),編碼可以是接近無損的,而并非是無損的。然而,與量化步驟相比,由變換步驟引起的信息損失可能是不重要的或者未被注意到的,因此無量化變換編碼方案300也可以作為無損編碼方案的一部分包括在本文中。
[0046]熵編碼器340可以對(duì)變換模塊330生成的變換系數(shù)進(jìn)行掃描并將其編碼為編碼比特流。熵編碼器340可以與熵編碼器130相同或者類似。為了有助于視頻幀的連續(xù)編碼,變換系數(shù)也可以被送入逆變換模塊350中,逆變換模塊350可以執(zhí)行變換模塊330的逆變換,并且生成殘余塊的精確版本(即,無損)或近似版本(即,接近無損)。隨后,殘余塊可以被送入重建模塊360中,重建模塊360可以生成用于未來塊的幀內(nèi)預(yù)測(cè)的參考像素或者用于未來幀的幀間預(yù)測(cè)的參考幀。重建模塊360可以與圖1中的重建模塊140相同或者類似。在從編碼器處進(jìn)行傳送之前,編碼比特流可以包含其他信息,例如視頻分辨率、幀率、塊分區(qū)信息(大小、坐標(biāo))、預(yù)測(cè)模式等,因此可以對(duì)視頻幀的編碼序列適當(dāng)?shù)剡M(jìn)行解碼。
[0047]圖4描繪了可以在視頻解碼器中實(shí)施的無量化變換解碼方案400的一項(xiàng)實(shí)施例。無量化變換解碼方案400可以對(duì)應(yīng)于無量化變換編碼方案300,并且可以包括如圖4所示進(jìn)行布置的熵解碼器410、逆變換模塊420、預(yù)測(cè)模塊430,以及重建模塊440。在運(yùn)行中,熵解碼器410可以接收含有視頻幀序列信息的編碼比特流,該熵解碼器可以將比特流解碼成未壓縮格式。熵解碼器410可以與圖2中的熵解碼器210相同或者類似。
[0048]在使用熵編碼器410之后,可以生成變換系數(shù)的矩陣,該矩陣隨后可以被送入逆變換模塊420中。逆變換模塊420可以將頻域中的變換系數(shù)轉(zhuǎn)化為空間域中的殘余像素值。在使用中,根據(jù)逆變換模塊420使用的算法是否為完全可逆的,可以生成殘余塊的精確版本(即,無損)或近似版本(即,接近無損)。逆變換模塊420可以與圖3中的逆變換模塊350相同或類似。
[0049]此外,熵解碼器410也可以對(duì)含有當(dāng)前塊的預(yù)測(cè)模式的信息進(jìn)行解碼?;谒鲱A(yù)測(cè)模式,預(yù)測(cè)模塊430可以生成當(dāng)前塊的預(yù)測(cè)塊。預(yù)測(cè)模塊430可以與圖2中的預(yù)測(cè)模塊220相同或者類似。隨后,重建模塊440可以將殘余塊與預(yù)測(cè)塊結(jié)合起來以生成重建塊。此外,為了協(xié)助視頻幀的連續(xù)解碼,可以在參考幀中使用重建塊以對(duì)未來幀進(jìn)行幀間預(yù)測(cè)。針對(duì)相同幀中的未來塊的幀內(nèi)預(yù)測(cè),重建塊的一些像素也可以用作參考像素。
[0050]在使用中,如果使用無量化變換編碼方案300和無量化變換解碼方案400等接近無損的方案對(duì)原始?jí)K進(jìn)行編碼和解碼,那么在編碼過程中僅會(huì)引起少量的失真。因此,除了在傳送過程中弓I起的顯著失真之外,重建塊可以幾乎與原始?jí)K相同。有時(shí)可能需要無量化變換編碼方案,這是因?yàn)榕c變換略過方案相比,無量化變換編碼方案可以獲得較高的壓縮率,而不會(huì)明顯地降低編碼保真度。
[0051]如上文所述,在當(dāng)前編碼器中,RDO模塊可以基于聯(lián)合RD代價(jià)來選擇最佳編碼模式。相反,在本文所公開的變換略過無損編碼方案或無量化變換編碼方案中,可以略過量化步驟。在不存在由量化引起的信息損失的情況下,如果存在由編碼造成的原始當(dāng)前塊的失真,那么可以將其忽略。因此,RDO模塊(例如,圖1中的RDO模塊110或圖3中的RDO模塊310)可以在其最佳編碼模式選擇中將失真排除在考慮范圍之外。隨著失真因素的移除,僅聯(lián)合RD代價(jià)函數(shù)的比特率部分得到保留,因此RD代價(jià)可以稱為比特率代價(jià)。在一項(xiàng)實(shí)施例中,比特率代價(jià)可以以數(shù)學(xué)方式表示為:
J=X R
[0052]基于所公開的比特率代價(jià)函數(shù),RDO模塊可以對(duì)當(dāng)前塊的多個(gè)可用編碼模式的子集或全部進(jìn)行測(cè)試。已測(cè)試的編碼模式在塊的大小、運(yùn)動(dòng)矢量、幀間預(yù)測(cè)參考幀、幀內(nèi)預(yù)測(cè)模式,或參考像素,或其任意組合方面可以有所不同。對(duì)于每個(gè)已測(cè)試的編碼模式,可以針對(duì)當(dāng)前塊的編碼殘余塊,或者針對(duì)當(dāng)前塊的變換系數(shù)的編碼矩陣來計(jì)算比特?cái)?shù)。在比較所有生成的比特?cái)?shù)之后,RDO模塊可以選擇生成最少比特?cái)?shù)的編碼模式。
[0053]在確定最佳編碼模式時(shí),與同時(shí)計(jì)算D和R的當(dāng)前編碼器相比,所公開的編碼模式選擇方案相對(duì)而言比較簡(jiǎn)單。例如,由于D部分的移除,可以不再需要將重建模塊與其原始?jí)K進(jìn)行比較。因此,在每個(gè)編碼模式下,可以將若干計(jì)算步驟從評(píng)估過程中移除,這樣可以節(jié)省編碼時(shí)間和計(jì)算的資源??紤]到在評(píng)估中可能潛在地存在當(dāng)前塊的數(shù)百個(gè)編碼模式,因此這種節(jié)省會(huì)非常顯著并且可以使編碼加速,從而可以非常好地協(xié)助實(shí)時(shí)編碼過程。
[0054]有時(shí)沒有必要使用無損模式對(duì)整個(gè)視頻幀進(jìn)行編碼。例如,在復(fù)合視頻中含有天然視圖內(nèi)容(例如,由低分辨率攝像機(jī)采集的)的區(qū)域可能不需要無損編碼,這是因?yàn)樵家曨l質(zhì)量可能已經(jīng)是有限的,或者是因?yàn)橛捎袚p編碼引起的失真可能并不顯著。圖5描繪了有損編碼方案500的一項(xiàng)實(shí)施例,所述編碼方案可以與用在當(dāng)前HM中的編碼方案相同或者類似。有損編碼方案500可以包括RDO模塊510、預(yù)測(cè)模塊520、變換模塊530、量化模塊540、熵編碼器550、去量化模塊560、逆變換模塊570,以及重建模塊580。有損編碼方案500的一些方面可以與圖3中的無量化變換編碼方案300相同或類似,因此為了簡(jiǎn)明起見將不會(huì)對(duì)類似的方面進(jìn)一步進(jìn)行描述。
[0055]可以在視頻編碼器中實(shí)施有損編碼方案500,所述視頻編碼器可以接收視頻幀的序列。RDO模塊510可以用于控制一個(gè)或多個(gè)其他模塊。基于由RDO模塊310作出的邏輯決策,預(yù)測(cè)模塊320可以利用參考幀或參考像素來生成預(yù)測(cè)塊。隨后,可以從來自輸入視頻的當(dāng)前塊中減去預(yù)測(cè)塊,以生成殘余塊??梢詫堄鄩K送入變換模塊530中,該模塊可以將殘余像素值轉(zhuǎn)化為變換系數(shù)的矩陣。
[0056]與無量化變換編碼方案300相比,在有損編碼方案500中,變換系數(shù)在被送入熵編碼器550之前,可以由量化模塊540進(jìn)行量化。量化模塊550可以改變變換系數(shù)的標(biāo)度并且將它們四舍五入為整數(shù),從而減少非零系數(shù)的數(shù)目。因此,以信息損失為代價(jià)可以增大壓縮比。
[0057]可以對(duì)由量化模塊540生成的量化變換系數(shù)進(jìn)行掃描。熵編碼器550可以將非零值的系數(shù)編碼為編碼比特流。量化變換系數(shù)也可以被送入到去量化模塊560中,以恢復(fù)變換系數(shù)的原始標(biāo)度。隨后,逆變換模塊570可以執(zhí)行變換模塊530的逆變換,并且生成原始?xì)堄鄩K的噪音版本。隨后,有損殘余塊可以被送入重建模塊580中,重建模塊580可以生成用于未來塊的幀內(nèi)預(yù)測(cè)的參考像素或者用于未來幀的幀間預(yù)測(cè)的參考幀。[0058]圖6描繪了可以在視頻解碼器中實(shí)施的有損解碼方案600的一項(xiàng)實(shí)施例。有損解碼方案600可以對(duì)應(yīng)于有損編碼方案500,并且可以包括如圖6所示進(jìn)行布置的熵解碼器610、去量化模塊620、逆變換模塊630、預(yù)測(cè)模塊640,以及重建模塊650。在運(yùn)行中,熵解碼器610可以接收含有視頻幀序列信息的編碼比特流,該熵解碼器可以將比特流解碼成未壓縮格式??梢陨闪炕儞Q系數(shù)的矩陣,隨后該矩陣被送入去量化模塊620,所述去量化模塊620可以與圖5中的去量化模塊560相同或者類似。隨后,去量化模塊620的輸出可以被送入逆變換模塊630,所述逆變換模塊630可以將變換系數(shù)轉(zhuǎn)化為殘余塊的殘余值。此夕卜,熵解碼器610也可以對(duì)含有當(dāng)前塊的預(yù)測(cè)模式的信息進(jìn)行解碼。基于所述預(yù)測(cè)模式,預(yù)測(cè)模塊640可以生成當(dāng)前塊的預(yù)測(cè)塊。隨后,重建模塊650可以將殘余塊與預(yù)測(cè)塊結(jié)合起來以生成重建塊。此外,為了協(xié)助連續(xù)解碼,可以在參考幀中使用重建塊以對(duì)未來幀進(jìn)行幀間預(yù)測(cè)。針對(duì)相同幀中的未來塊的幀內(nèi)預(yù)測(cè),重建塊的一些像素也可以用作參考像素。
[0059]在一項(xiàng)實(shí)施例中,如果需要,那么上述所有編碼方案,包含變換略過編碼方案100、無量化變換編碼方案300,以及有損編碼方案500,都可以在單個(gè)編碼器中實(shí)施。例如,當(dāng)對(duì)復(fù)合視頻進(jìn)行編碼時(shí),編碼器可以接收關(guān)于應(yīng)在無損模式下進(jìn)行編碼的區(qū)域和/或應(yīng)在有損模式下進(jìn)行編碼的區(qū)域的信息。基于所述信息,編碼器可以使用有損模式對(duì)某些區(qū)域進(jìn)行編碼,并且使用無損模式對(duì)其他區(qū)域進(jìn)行編碼。在無損模式下,在對(duì)由變換略過編碼方案100生成的比特流長(zhǎng)度與由無量化變換編碼方案300生成的比特流長(zhǎng)度進(jìn)行比較之后,編碼器的RDO模塊(例如,圖1中的RDO模塊110)可以確定是否略過變換步驟。類似地,如果需要,那么上述所有解碼方案,包含變換略過解碼方案200、無量化變換解碼方案400,以及有損解碼方案600,都可以在單個(gè)解碼器中實(shí)施。
[0060]為了使解碼器能夠適當(dāng)?shù)刂亟ň幋a視頻幀,所述解碼器應(yīng)該能夠識(shí)別出用于對(duì)視頻幀進(jìn)行編碼的一個(gè)或多個(gè)編碼方案。由于無損編碼僅可以應(yīng)用到視頻幀的一些區(qū)域中(下文中稱作無損編碼區(qū)域),因此有損編碼可以應(yīng)用到其他區(qū)域中(下文中稱作有損編碼區(qū)域或常規(guī)編碼區(qū)域)。在攜帶編碼視頻幀的比特流中,可以傳送對(duì)無損編碼區(qū)域和/或有損編碼區(qū)域進(jìn)行信指示的信息。在使用中,此類信息可以包裝為高階語(yǔ)法結(jié)構(gòu),例如,比特流的序列參數(shù)集合(SPS)或圖像參數(shù)集合(PPS)。SPS或PPS可以是比特流的關(guān)鍵規(guī)范部分,并且可以由視頻編碼標(biāo)準(zhǔn)來定義。在接收到比特流之后,解碼器可以從SPS或PPS中提取區(qū)域指示信息,并且隨后根據(jù)區(qū)域的編碼模式對(duì)每個(gè)區(qū)域進(jìn)行重建。在一項(xiàng)實(shí)施例中,SPS或PPS可以包含多個(gè)矩形無損編碼區(qū)域以及識(shí)別它們?cè)谝曨l幀中的位置的信息(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。在另一項(xiàng)實(shí)施例中,SPS或PPS可以包含多個(gè)矩形有損編碼區(qū)域以及識(shí)別它們?cè)谝曨l幀中的位置的信息(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。
[0061]在一些應(yīng)用中,例如,在視頻會(huì)議期間共享屏幕,視頻的某些區(qū)域可以在多個(gè)視頻幀中保持穩(wěn)定。在這種情況下,區(qū)域指示信息僅會(huì)以相對(duì)較低的頻率發(fā)生變化(例如,幾十秒一次),因此由這種信令方法引起的比特率開銷可以被忽略。
[0062]在無損編碼區(qū)域內(nèi),可以使用變換略過方案和/或無量化變換方案。為了進(jìn)行適當(dāng)?shù)慕獯a,比特流也還可以包含關(guān)于通過變換略過方案進(jìn)行編碼的塊以及通過無量化變換方案進(jìn)行編碼的塊的特定信息。在一項(xiàng)實(shí)施例中,在無損編碼區(qū)域中可以為每個(gè)PU引入兩個(gè)變換略過標(biāo)記。亮度變換略過標(biāo)記可以指示在PU的亮度像素的編碼中是否略過(或跳過)變換步驟,而色度變換略過標(biāo)記可以指示在PU的色度像素的編碼中是否略過變換步驟。例如,如果對(duì)于亮度像素,變換模塊(例如,圖3中的變換模塊330)被略過,那么可以將亮度變換略過標(biāo)記設(shè)置為’ I’。否則,如果使用了變換模塊并且量化模塊(例如,量化模塊540)被略過,那么可以將亮度變換略過標(biāo)記設(shè)置為’ O’?;蛘?,如果需要,在變換模塊被略過的情況下可以將亮度變換略過標(biāo)記設(shè)置為’ O’,并且在使用變換模塊的情況下將亮度變換略過標(biāo)記設(shè)置為’ I’。可以使用與設(shè)置亮度變換略過標(biāo)記相同或類似的方法來設(shè)置色度變換略過己 O
[0063]亮度變換略過標(biāo)記和色度變換略過標(biāo)記可以由熵編碼器(例如,圖1中的熵編碼器130)進(jìn)行編碼。所述熵編碼器可以使用CABAC算法,所述算法可以使用多個(gè)內(nèi)容模型。在一項(xiàng)實(shí)施例中,針對(duì)每個(gè)亮度變換略過標(biāo)記和色度變換略過標(biāo)記可以使用三個(gè)內(nèi)容模型。為了提高編碼效率,熵編碼器可以基于索引來選擇內(nèi)容模型,所述索引可以與鄰近PU的變換略過標(biāo)記相關(guān)。例如,考慮當(dāng)前PU的亮度變換略過標(biāo)記的編碼,并且假設(shè)可以采用相同或類似的方式對(duì)當(dāng)前I3U的色度變換略過標(biāo)記進(jìn)行編碼。兩個(gè)鄰近PU,即,上PU和左PU,也可以具有亮度變換略過標(biāo)記。兩個(gè)亮度變換略過標(biāo)記之和可以配置成內(nèi)容模型的索引。如果上或左PU都不具有亮度變換略過標(biāo)記(例如,當(dāng)前處于無損編碼區(qū)域的邊界),那么可以將’O’分配給亮度變換略過標(biāo)記。在使用選定的內(nèi)容模型進(jìn)行熵編碼之后,編碼的亮度變換標(biāo)記和編碼的色度變換標(biāo)記可以包含在比特流中。
[0064]在一項(xiàng)實(shí)施例中,PU的亮度組分和色度組分可以共享相同的無損編碼方案,并且這兩種組分都可以在它們的編碼過程中略過變換步驟或者包含變換步驟。在這種情況下,針對(duì)這兩種組分可以使用單個(gè)的變換略過標(biāo)記。與亮度組分和色度組分的單獨(dú)的變換略過標(biāo)記相比,單個(gè)變換略過標(biāo)記可以引起比特流中的較少信令開銷。此外,應(yīng)注意,雖然在上文的描述中變換略過標(biāo)記(亮度和/或色度)設(shè)置在PU水平上,但是如果需要,也可以類似地將變換略過標(biāo)記設(shè)置在TU水平上,這會(huì)產(chǎn)生更加精細(xì)的粒度但是也會(huì)產(chǎn)生更多的信令開銷。
[0065]圖7是編碼方法700的一項(xiàng)實(shí)施例的流程圖,所述方法可以在視頻編碼器中實(shí)施上述編碼方案中的一些或者全部。方法700可以在步驟702處開始,此處可以接收到包括視頻幀或切片序列的輸入視頻。對(duì)于每個(gè)幀或一組幀,也可以接收到指示一個(gè)或多個(gè)無損編碼區(qū)域和/或有損編碼區(qū)域的信息或指令。接下來,在步驟703中,可以將區(qū)域指示信息添加到壓縮比特流的高階語(yǔ)法中,所述高階語(yǔ)法可以識(shí)別這些無損編碼區(qū)域和/或有損編碼區(qū)域。所述語(yǔ)法可以包含在比特流的SPS或PPS中。在一項(xiàng)實(shí)施例中,區(qū)域指示信息可以包含多個(gè)矩形無損編碼區(qū)域以及它們?cè)谝曨l幀中的位置(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。在另一項(xiàng)實(shí)施例中,區(qū)域指示信息可以包含多個(gè)矩形有損編碼區(qū)域以及它們?cè)谝曨l幀中的位置(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。
[0066]接下來,在步驟704中,基于接收到的信息,方法700可以確定當(dāng)前正在被編碼的區(qū)域(例如,矩形的)是否是無損編碼區(qū)域。如果滿足塊704中的條件,那么方法700可以前進(jìn)到步驟706,以在無損模式下對(duì)當(dāng)前區(qū)域進(jìn)行編碼(例如,使用變換略過編碼方案100和/或無量化變換編碼方案300)。否則,方法700可以前進(jìn)到步驟730,以在有損模式下對(duì)當(dāng)前區(qū)域進(jìn)行編碼(例如,使用有損編碼方案500)。
[0067]接下來,在步驟706中,可以針對(duì)當(dāng)前區(qū)域的每個(gè)塊生成殘余塊。為了生成殘余塊,RDO模塊(例如,圖1中的RDO模塊110)可以作出邏輯決策,例如,選擇當(dāng)前區(qū)域的最佳塊分區(qū)方案,以及確定當(dāng)前塊(例如,PU)的最佳幀間預(yù)測(cè)模式或幀內(nèi)預(yù)測(cè)模式。基于RDO模塊的邏輯決策,預(yù)測(cè)模塊(例如,預(yù)測(cè)模塊120)可以生成預(yù)測(cè)塊,隨后可以從當(dāng)前塊中減去預(yù)測(cè)塊以獲得殘余塊。
[0068]接下來,在步驟708中,方法700可以確定對(duì)于當(dāng)前塊的亮度組分和/或色度組分,變換步驟是否應(yīng)被略過,這可以通過RDO模塊來實(shí)施。如果滿足塊708中的條件,那么方法700可以前進(jìn)到步驟710中,此處當(dāng)前塊的一個(gè)或多個(gè)變換略過標(biāo)記可以被設(shè)置為’ I’。否則,方法700可以前進(jìn)到步驟720,此處一個(gè)或多個(gè)變換略過標(biāo)記被設(shè)置為’ O’。所述二進(jìn)制值可以是任意設(shè)定的。例如,如果需要,在步驟710中可以將一個(gè)或多個(gè)變換略過標(biāo)記設(shè)置為’O’,而在步驟720中可以將一個(gè)或多個(gè)變換略過標(biāo)記設(shè)置為’ I’。在使用中,亮度組分和色度組分可以使用單獨(dú)的變換略過標(biāo)記。如果這兩個(gè)組分總是使用相同編碼方案,那么它們也可以共享一個(gè)變換略過標(biāo)記。
[0069]步驟710之后是步驟712,此處可以使用熵編碼器(例如,圖1中的熵編碼器130)將殘余塊編碼為壓縮的比特流。所述熵編碼器可以使用任何合適的算法,例如,CABAC算法。此外,一個(gè)或多個(gè)變換略過標(biāo)記’I’可以由熵編碼器進(jìn)行編碼。在一項(xiàng)實(shí)施例中,針對(duì)每個(gè)亮度組分和色度組分可以使用三個(gè)內(nèi)容模型。
[0070]步驟720之后是步驟722,此處可以在變換模塊(例如,圖3中的變換模塊330)中將殘余塊轉(zhuǎn)化為變換系數(shù)的二維矩陣。所述變換模塊可以使用任何適當(dāng)?shù)淖儞Q,例如,整數(shù)DCT變換、類似整數(shù)DCT變換。接下來,在步驟724中,可以使用熵編碼器(例如,圖3中的熵編碼器340)將變換系數(shù)編碼為壓縮的比特流。此外,一個(gè)或多個(gè)變換略過標(biāo)記’O’可以由熵編碼器進(jìn)行編碼。
[0071]如果在步驟704中為當(dāng)前區(qū)域選擇了有損編碼模式,那么方法700可以前進(jìn)到步驟730,此處針對(duì)當(dāng)前區(qū)域的每個(gè)塊可以生成殘余塊。為了生成殘余塊,RDO模塊(例如,圖5中的RDO模塊510)可以選擇當(dāng)前區(qū)域的塊分區(qū)方案,并且選擇當(dāng)前塊(例如,PU)的最佳幀間預(yù)測(cè)模式或幀內(nèi)預(yù)測(cè)模式。基于RDO模塊的邏輯決策,預(yù)測(cè)模塊(例如,預(yù)測(cè)模塊520)可以生成預(yù)測(cè)塊,隨后可以從當(dāng)前塊中減去預(yù)測(cè)塊以獲得殘余塊。接下來,在步驟732中,可以在變換模塊(例如,變換模塊530)中將殘余塊轉(zhuǎn)化為變換系數(shù)的矩陣。接下來,在步驟734中,可以在量化模塊(例如,量化模塊540中)將所述矩陣量化為已量化變換系數(shù)的另一矩陣。接下來,在步驟736中,可以使用熵編碼器(例如,熵編碼器550)將已量化變換系數(shù)編碼為可能已經(jīng)具有區(qū)域指示信息的比特流。
[0072]可以使用步驟702到736中的一些步驟對(duì)當(dāng)前區(qū)域的每個(gè)塊進(jìn)行編碼。在一項(xiàng)實(shí)施例中,在步驟740中,在對(duì)當(dāng)前區(qū)域中的所有塊進(jìn)行編碼之后,可以例如,通過網(wǎng)絡(luò)將比特流傳送到解碼器中。應(yīng)理解,方法700可能僅包含所有必要編碼步驟中的一部分,因而其他步驟,例如,去量化和逆變換也可以在必要的地方并入到編碼過程中。
[0073]圖8是解碼方法800的一項(xiàng)實(shí)施例的流程圖,所述解碼方法可以對(duì)應(yīng)于編碼方法700并且可以在視頻解碼器中實(shí)施上述解碼方案中的一些或者全部。方法800可以在步驟802處開始,此處可以接收到包含視頻幀序列的比特流。接下來,在步驟804中,可以針對(duì)區(qū)域指示信息來檢查比特流的高階語(yǔ)法(例如SPS或PPS),這樣可以指示一個(gè)幀或一組幀中的哪個(gè)區(qū)域已在無損模式下進(jìn)行編碼。接下來,在步驟806中,基于區(qū)域指示信息,方法800可以確定當(dāng)前正在被解碼的區(qū)域(例如,矩形的)是否已在無損模式下進(jìn)行編碼。如果滿足塊806中的條件,那么方法800可以前進(jìn)到步驟808,以在無損模式下對(duì)當(dāng)前區(qū)域進(jìn)行解碼(例如,使用變換略過解碼方案200和/或無量化變換解碼方案400)。否則,方法800可以前進(jìn)到步驟830,以在有損模式下對(duì)當(dāng)前區(qū)域進(jìn)行解碼(例如,使用有損解碼方案500)。
[0074]對(duì)于當(dāng)前區(qū)域的每個(gè)塊,在步驟808中,可以在熵解碼器(例如,圖2中的熵解碼器210)中對(duì)一個(gè)或多個(gè)編碼的變換略過標(biāo)記進(jìn)行解碼,所述解碼器可以執(zhí)行熵編碼器的逆變換。如果當(dāng)前塊的亮度組分和色度組分使用單獨(dú)的變換略過標(biāo)記,那么針對(duì)當(dāng)前塊可以對(duì)兩個(gè)標(biāo)記進(jìn)行解碼?;蛘?,如果亮度組分和色度組分共享一個(gè)變換略過標(biāo)記,那么可以對(duì)一個(gè)標(biāo)記進(jìn)行解碼。接下來,在步驟810中,方法800可以確定變換略過標(biāo)記是否為’ I’。如上文所述,變換略過標(biāo)記’ I’可以指示出在當(dāng)前塊的編碼過程中變換步驟被略過,而變換略過標(biāo)記’O’可以指示出在沒有量化的情況下使用了變換步驟。應(yīng)理解,在本文中可以基于對(duì)應(yīng)的編碼方法(例如,方法700)來解讀二進(jìn)制值。例如,如果方法700將’ I’和’ O’的意義互換,那么方法800也要相應(yīng)地做出調(diào)節(jié)。如果滿足塊810中的條件,那么方法800可以前進(jìn)到步驟812,此處可以使用熵解碼器將當(dāng)前塊的殘余塊解碼為未壓縮格式。否則,方法800可以前進(jìn)到步驟820,此處可以使用熵解碼器對(duì)變換系數(shù)的矩陣進(jìn)行解碼。步驟820之后是步驟822,此處可以使用逆變換模塊(例如,圖4中的逆變換模塊420)將變換系數(shù)轉(zhuǎn)化為當(dāng)前塊的殘余塊。
[0075]如果需要在有損解碼模式下對(duì)當(dāng)前區(qū)域進(jìn)行解碼(由塊806確定),那么方法800可以前進(jìn)到步驟830,此處可以在熵解碼器(例如,圖6的熵解碼器610)中對(duì)量化變換系數(shù)的矩陣進(jìn)行解碼。接下來,在步驟832中,可以對(duì)量化變換系數(shù)進(jìn)行去量化,以恢復(fù)變換系數(shù)的原始標(biāo)度。接下來,在步驟834中,可以將變換系數(shù)逆變換成當(dāng)前塊的殘余塊。
[0076]在使用無損解碼模式或有損解碼模式獲得殘余塊之后,在步驟840中,可以生成預(yù)測(cè)塊。預(yù)測(cè)塊可以基于信息(使用熵編碼器從比特流解碼而來)確定,所述信息包括預(yù)測(cè)模式以及一個(gè)或多個(gè)先前編碼的幀或塊。接下來,在步驟842中,殘余塊可以被添加到預(yù)測(cè)塊中,從而生成重建塊。根據(jù)所使用的編碼方案和解碼方案,重建塊可以是原始?jí)K(編碼之前)的精確、近似,或噪音版本。除了在傳送期間引起的失真之外,來自原始?jí)K的所有信息都可以保留在變換略過編碼中。根據(jù)變換和逆變換的特性,所有(或幾乎所有)信息都可以保留在無量化變換編碼中。某些信息可能在有損編碼中損失,而損失的程度主要取決于量化步驟和去量化步驟。為了有助于塊的連續(xù)解碼,重建塊的一些像素也可以用作對(duì)未來塊進(jìn)行解碼的參考像素。類似地,當(dāng)前幀也可以用作用于對(duì)未來幀進(jìn)行解碼的參考幀。
[0077]如上文所述,當(dāng)對(duì)視頻幀序列進(jìn)行編碼時(shí),有時(shí)某些區(qū)域可以在相對(duì)較長(zhǎng)的時(shí)間段內(nèi)保持穩(wěn)定。例如,在視頻會(huì)議應(yīng)用中,每個(gè)用戶的背景區(qū)域可以在幾十分鐘內(nèi)保持不變。又例如,在計(jì)算機(jī)屏幕共享應(yīng)用中(例如,用于在線視頻游戲中),含有文本和/或圖表的一個(gè)或多個(gè)區(qū)域可以在幾十秒或幾十分鐘內(nèi)保持不變。由于這些穩(wěn)定區(qū)域的連續(xù)編碼可能消耗不必要的計(jì)算資源和時(shí)間,因此需要從編碼過程中跳過這些區(qū)域。
[0078]在使用中,RDO模塊(例如,圖1中的RDO模塊110、圖3中的RDO模塊310,或圖5中的RDO模塊510)可以起始強(qiáng)制跳過模式(下文中也稱作跳過模式)。例如,考慮在P切片中正在被編碼的一個(gè)CU。應(yīng)注意,也可以使用相同或類似的跳過模式對(duì)任何其他類型的塊(例如,宏塊或PU)以及任何其他類型的切片或幀(例如,B切片、I切片、P幀、B幀、I幀)進(jìn)行編碼。所述RDO模塊可以為P切片中的當(dāng)前CU選擇最佳編碼模式。在一項(xiàng)實(shí)施例中,在生成任何殘余值之前,可以首先將當(dāng)前CU與位于一個(gè)或多個(gè)參考切片中相同位置處的一個(gè)或多個(gè)對(duì)應(yīng)CU (下文中稱作參考CU)進(jìn)行比較。P切片的參考切片可以是任何類型的。如果在當(dāng)前⑶與參考⑶的所有對(duì)應(yīng)像素之間找到了一個(gè)精確的匹配,那么可以將強(qiáng)制跳過模式確定為當(dāng)前CU的最佳編碼模式。或者,在一項(xiàng)實(shí)施例中,如果發(fā)現(xiàn)當(dāng)前CU與參考CU的所有對(duì)應(yīng)像素之間的差值在一個(gè)較小的預(yù)設(shè)界限(例如,±1)內(nèi),那么也可以將強(qiáng)制跳過模式確定為當(dāng)前CU的最佳編碼模式。
[0079]在強(qiáng)制跳過模式下,RDO模塊可以跳過當(dāng)前⑶的剩余RDO和編碼步驟,從而可以提高編碼的速度。例如,RDO模塊可以跳過在多個(gè)編碼模式(例如,多個(gè)幀間/幀內(nèi)預(yù)測(cè)模式和/或PU/TU分區(qū))下對(duì)RD或比特率代價(jià)進(jìn)行計(jì)算的RDO過程。相反地,可以將當(dāng)前CU作為跳過的CU來進(jìn)行標(biāo)記或指示。識(shí)別跳過的CU和其匹配的參考CU的信息可以包含在比特流中。在一項(xiàng)實(shí)施例中,對(duì)于每個(gè)跳過的CU和其匹配的參考CU,所述信令信息可以包括大小和/或多個(gè)坐標(biāo)(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。在比特流中不需要跳過的CU的殘余值或變換系數(shù)。
[0080]在接收到比特流之后,視頻解碼器可以基于包含在比特流中的信令信息來檢查當(dāng)前CU是否已在強(qiáng)制跳過模式下進(jìn)行編碼。如果是,那么匹配的參考CU的像素值可以用于重建當(dāng)前CU。由于可能潛在地存在可以在強(qiáng)制跳過模式下進(jìn)行編碼的大量的CU,因此編碼這些CU的比特率也會(huì)顯著的降低。另外,可以使編碼過程加速,從而可以相應(yīng)地節(jié)約計(jì)算資源。
[0081]圖9描繪了編碼模式選擇方法900的一項(xiàng)實(shí)施例。方法900可以與圖7中的編碼方法700互補(bǔ),因此,如果需要,那么這兩種方法都可以在相同的編碼器中實(shí)施。方法900可以在步驟910處開始,此處可以將當(dāng)前塊(例如,CU或宏塊)與一個(gè)或多個(gè)對(duì)應(yīng)的參考?jí)K進(jìn)行比較。對(duì)應(yīng)參考?jí)K可以位于任何類型的參考幀或切片中。在一項(xiàng)實(shí)施例中,可以將當(dāng)前塊內(nèi)的每個(gè)像素的亮度和/或色度組分與一個(gè)或多個(gè)參考?jí)K內(nèi)的每個(gè)對(duì)應(yīng)像素(位于相同位置處)的亮度和/或色度組分進(jìn)行比較。針對(duì)每對(duì)比較像素可以生成像素值的差值。
[0082]接下來,在步驟920中,方法900可以確定所有差值是否在預(yù)設(shè)界限或容限或范圍內(nèi)(例如,±1)。如果滿足塊920中的條件,那么方法900可以前進(jìn)到步驟930。否則,方法900可以前進(jìn)到步驟940。在步驟930中,可以將信息包含到比特流中以指示當(dāng)前塊是在強(qiáng)制跳過模式下編碼。信息可以對(duì)跳過的CU和其匹配的參考CU進(jìn)行識(shí)別。在一項(xiàng)實(shí)施例中,對(duì)于每個(gè)跳過的CU和其匹配的參考CU,所述信令信息可以包括大小和/或多個(gè)坐標(biāo)(例如,左上和右下坐標(biāo),或者右上和左下坐標(biāo))。對(duì)于當(dāng)前塊而言,可以跳過剩余的編碼步驟(例如,RDO模式選擇,殘余塊的編碼)。
[0083]在步驟940中,方法900可以確定當(dāng)前塊是否位于無損編碼區(qū)域內(nèi)。如果滿足塊920中的條件,那么方法900可以前進(jìn)到步驟950。否則,方法900可以前進(jìn)到步驟960。在步驟950中,可以將能夠產(chǎn)生最少比特?cái)?shù)的編碼模式選作最佳模式。最佳模式可以由RDO模塊(例如,圖1中的RDO模塊110或圖3中的RDO模塊310)進(jìn)行確定,所述模塊可以對(duì)多個(gè)塊大小、運(yùn)動(dòng)矢量、幀間預(yù)測(cè)參考幀、幀內(nèi)預(yù)測(cè)模式,和/或參考像素的多個(gè)組合進(jìn)行測(cè)試。由于在無損模式下可能不會(huì)引起失真或僅引起少量的失真,因此在確定最佳編碼模式時(shí)RDO模塊可以將RD代價(jià)函數(shù)的失真部分排除在外。接下來,在步驟960中,可以使用變換略過無損編碼方案和/或無量化變換編碼方案在無損模式下對(duì)當(dāng)前塊進(jìn)行編碼。
[0084]在步驟970中,可以將能夠產(chǎn)生最少RD代價(jià)的編碼模式選作最佳模式。在確定最佳編碼模式時(shí)不同編碼模式的RD代價(jià)可以考慮到比特率部分以及失真部分。接下來,在步驟980中,可以使用有損編碼方案在有損模式下對(duì)當(dāng)前塊進(jìn)行編碼。應(yīng)理解,方法900可能僅包含所有必要編碼步驟中的一部分,因而其他步驟,例如,變換、量化、去量化、逆變換和傳送也可以在適當(dāng)?shù)牡胤讲⑷氲骄幋a過程中。
[0085]圖10描繪了網(wǎng)絡(luò)單元1000的一項(xiàng)實(shí)施例,網(wǎng)絡(luò)單元1000可以包括編碼器和解碼器,所述編碼器和解碼器可以如上文所述,例如,在網(wǎng)絡(luò)或系統(tǒng)內(nèi)對(duì)視頻幀進(jìn)行處理。網(wǎng)絡(luò)單元1000可以包括:多個(gè)輸入端口 1010和/或接收器單元(Rx) 1012,其用于從其他網(wǎng)絡(luò)單元或組件接收數(shù)據(jù);邏輯單元或處理器1020,其用于處理數(shù)據(jù)并且確定將數(shù)據(jù)發(fā)送到哪個(gè)網(wǎng)絡(luò)單元;以及多個(gè)輸出端口 1030和/或發(fā)射器單元(Tx)1032,其用于將數(shù)據(jù)傳送到其他網(wǎng)絡(luò)單元。邏輯單元或處理器1020可以用于實(shí)施上文所描述的方案中的任意一個(gè)方案,例如,變換略過編碼方案100,無量化變換編碼方案300,編碼方法700和解碼方法800中的至少一個(gè),和/或編碼模式選擇方法900。邏輯單元1020可以使用硬件、軟件或這兩者來實(shí)施。
[0086]上述方案可以在任何通用網(wǎng)絡(luò)組件上實(shí)施,例如計(jì)算機(jī)或特定網(wǎng)絡(luò)組件,其具有足夠的處理能力、存儲(chǔ)資源以及網(wǎng)絡(luò)吞吐能力來處理其上的必要工作量。圖11描繪了典型的通用網(wǎng)絡(luò)組件或計(jì)算機(jī)系統(tǒng)1100的示意圖,所述網(wǎng)絡(luò)組件或計(jì)算機(jī)系統(tǒng)適用于實(shí)施本文所公開的方法的一項(xiàng)或多項(xiàng)實(shí)施例,例如,編碼方法700和解碼方法800。通用網(wǎng)絡(luò)部件或計(jì)算機(jī)系統(tǒng)1100包含處理器1102(可以稱為中央處理器單元或CPU),所述處理器與包含以下項(xiàng)的存儲(chǔ)裝置通信:輔助存儲(chǔ)器1104、只讀存儲(chǔ)器(ROM) 1106、隨機(jī)存取存儲(chǔ)器(RAM)1108、輸入/輸出(I/O)裝置1110,以及網(wǎng)絡(luò)連接裝置1112。盡管處理器1102被圖示為單個(gè)處理器,但是它并非受到此類限制而是可以包括多個(gè)處理器。處理器1102可以實(shí)施為一個(gè)或多個(gè)CPU芯片、核(例如,多核處理器)、現(xiàn)場(chǎng)可編程門陣列(FPGA )、專用集成電路(AS IC ),和/或數(shù)字信號(hào)處理器(DSP),并且/或者可以是一個(gè)或多個(gè)ASIC的一部分。處理器1102可以用于實(shí)施上文所描述的方案中的任意一個(gè)方案,包含變換略過編碼方案100,無量化變換編碼方案300,編碼方法700和解碼方法800中的至少一個(gè),和/或編碼模式選擇方法900。處理器1102可以使用硬件、軟件或這兩者來實(shí)施。
[0087]輔助存儲(chǔ)器1104通常包括一個(gè)或多個(gè)磁盤驅(qū)動(dòng)器或磁帶驅(qū)動(dòng)器,用于數(shù)據(jù)的非易失性存儲(chǔ),而且如果RAM1108的容量不足以存儲(chǔ)所有工作數(shù)據(jù),所述輔助存儲(chǔ)器則用作溢流數(shù)據(jù)存儲(chǔ)裝置。輔助存儲(chǔ)器1104可以用于存儲(chǔ)程序,當(dāng)選擇執(zhí)行這些程序時(shí),所述程序?qū)⒓虞d到RAM1108中。R0M1106用于存儲(chǔ)在程序執(zhí)行期間讀取的指令以及可能的數(shù)據(jù)。ROMl 106為非易失性存儲(chǔ)裝置,其存儲(chǔ)容量相對(duì)于輔助存儲(chǔ)器1104的較大存儲(chǔ)容量而言通常較小。RAMl 108用于存儲(chǔ)易失性數(shù)據(jù),還可能用于存儲(chǔ)指令。對(duì)ROMl 106和RAMl 108 二者的存取通常比對(duì)輔助存儲(chǔ)器1104的存取快。
[0088]揭示至少一項(xiàng)實(shí)施例,且所屬領(lǐng)域的技術(shù)人員對(duì)所述實(shí)施例和/或所述實(shí)施例的特征的變化、組合和/或修改在本發(fā)明的范圍內(nèi)。因組合、整合和/或省略所述實(shí)施例的特征而產(chǎn)生的替代實(shí)施例也在本發(fā)明的范圍內(nèi)。在明確陳述數(shù)值范圍或限制的情況下,應(yīng)將此些表達(dá)范圍或限制理解為包含屬于明確陳述的范圍或限制內(nèi)的類似量值的重復(fù)范圍或限制(例如,從約I到約10包含2、3、4等;大于0.10包含0.11,0.12,0.13等)。例如,每當(dāng)揭示具有下限R1和上限Ru的數(shù)值范圍時(shí),具體是揭示屬于所述范圍的任何數(shù)字。具體而言,特別揭示所述范圍內(nèi)的以下數(shù)字=R=Rfk* (Ru-R1),其中k為從1%到100%范圍內(nèi)以1%遞增的變量,即,k 為 1%、2%、3%、4%、7%、...、70%、71%、72%、...、95%、96%、97%、98%、99% 或 100%。此外,還特定揭示由如上文所定義的兩個(gè)R數(shù)字定義的任何數(shù)值范圍。除非另有說明,否則使用術(shù)語(yǔ)大約是指隨后數(shù)字的±10%。相對(duì)于權(quán)利要求的任一元素使用術(shù)語(yǔ)“任選地”意味著所述元素是需要的,或者所述元素是不需要的,兩種替代方案均在所述權(quán)利要求的范圍內(nèi)。使用例如“包括”、“包含”和“具有”等較廣術(shù)語(yǔ)應(yīng)被理解為提供對(duì)例如“由……組成”、“基本上由……組成”以及“大體上由……組成”等較窄術(shù)語(yǔ)的支持。因此,保護(hù)范圍不受上文所陳述的描述限制,而是由所附權(quán)利要求書界定,所述范圍包含所附權(quán)利要求書的標(biāo)的物的所有均等物。每一和每個(gè)權(quán)利要求作為進(jìn)一步揭示內(nèi)容并入說明書中,且所附權(quán)利要求書是本發(fā)明的實(shí)施例。所述揭示內(nèi)容中的參考的論述并不是承認(rèn)其為現(xiàn)有技術(shù),尤其是具有在本申請(qǐng)案的在先申請(qǐng) 優(yōu)先權(quán)日:期之后的
【公開日】期的任何參考。本發(fā)明中所引用的所有專利、專利申請(qǐng)案和公開案的揭示內(nèi)容特此以引用的方式并入本文中,其提供補(bǔ)充本發(fā)明的示范性、程序性或其他細(xì)節(jié)。
[0089]雖然本發(fā)明中已提供若干實(shí)施例,但應(yīng)理解,在不脫離本發(fā)明的精神或范圍的情況下,所揭示的系統(tǒng)和方法可以許多其他特定形式來體現(xiàn)。本發(fā)明的實(shí)例應(yīng)被視為說明性的而非限制性的,且本發(fā)明不限于本文所給出的細(xì)節(jié)。舉例來說,各種元件或組件可以在另一系統(tǒng)中組合或集成,或某些特征可省略或不實(shí)施。
[0090]另外,在 不脫離本發(fā)明的范圍的情況下,各種實(shí)施例中描述和說明為離散或單獨(dú)的技術(shù)、系統(tǒng)、子系統(tǒng)和方法可以與其他系統(tǒng)、模塊、技術(shù)或方法組合或整合。展示或論述為彼此耦合或直接耦合或通信的其他項(xiàng)目也可以以電方式、機(jī)械方式或其他方式通過某一接口、裝置或中間組件間接地耦合或通信。其他變化、替代和改變的實(shí)例可以由所屬領(lǐng)域的技術(shù)人員確定,并且可以在不脫離本文本所揭示的范圍和精神的情況下作出。
【權(quán)利要求】
1.一種設(shè)備,其包括: 一個(gè)處理器,所述處理器用于: 接收視頻幀的當(dāng)前塊;以及 僅基于比特率代價(jià)函數(shù)來確定所述當(dāng)前塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,并且其中所述比特率代價(jià)函數(shù)的計(jì)算并不考慮所述當(dāng)前塊的失真。
2.根據(jù)權(quán)利要求1所述的設(shè)備,其中所述編碼模式與所述多個(gè)可用編碼模式中的所有其他編碼模式相比,對(duì)所述當(dāng)前塊進(jìn)行編碼所需的比特?cái)?shù)最少。
3.根據(jù)權(quán)利要求2所述的設(shè)備,其中使用變換略過編碼方案對(duì)所述當(dāng)前塊進(jìn)行編碼,其中在所述變換略過編碼方案中,變換步驟和量化步驟被略過。
4.根據(jù)權(quán)利要求2所述的設(shè)備,其中使用無量化變換編碼方案對(duì)所述當(dāng)前塊進(jìn)行編碼,其中在所述無量化變換編碼方案中,量化步驟被略過。
5.一種方法,其包括: 接收視頻幀的當(dāng)前塊;以及 僅基于比特率代價(jià)函數(shù)來確定所述當(dāng)前塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,并且其中所述比特率代價(jià)函數(shù)的計(jì)算并不考慮所述當(dāng)前塊的失真。`
6.根據(jù)權(quán)利要求5所述的方法,其中所述編碼模式與所述多個(gè)可用編碼模式中的所有其他編碼模式相比,對(duì)所述當(dāng)前塊進(jìn)行編碼所需的比特?cái)?shù)最少。
7.根據(jù)權(quán)利要求6所述的方法,其中使用變換略過編碼方案對(duì)所述當(dāng)前塊進(jìn)行編碼,其中在所述變換略過編碼方案中,變換步驟和量化步驟被略過。
8.根據(jù)權(quán)利要求6所述的方法,其中使用無量化變換編碼方案對(duì)所述當(dāng)前塊進(jìn)行編碼,其中在所述無量化變換編碼方案中,量化步驟被略過。
9.一種用在視頻編碼中的設(shè)備,其包括: 一個(gè)處理器,所述處理器用于: 針對(duì)塊中的多個(gè)像素中的每個(gè)像素,確定其與參考?jí)K中的多個(gè)對(duì)應(yīng)像素中的一個(gè)對(duì)應(yīng)像素的差值,其中每個(gè)差值是基于一對(duì)比較像素的兩個(gè)顏色值確定的;并且如果所述每個(gè)差值在預(yù)設(shè)的界限內(nèi), 則生成信息以指示所述的塊為跳過塊,其中所述信息對(duì)所述塊和所述參考?jí)K進(jìn)行識(shí)另U,以及 將所述信息包含到比特流中而無需對(duì)所述塊進(jìn)行進(jìn)一步編碼。
10.根據(jù)權(quán)利要求9所述的設(shè)備,其中所述塊是編碼單元(CU),并且其中所述參考?jí)K是參考CU。
11.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述信息包括: 所述⑶的多個(gè)坐標(biāo);以及 所述參考CU的多個(gè)坐標(biāo)。
12.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述預(yù)設(shè)界限是±1。
13.根據(jù)權(quán)利要求10所述的設(shè)備,其中所述預(yù)設(shè)界限是O。
14.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述塊位于視頻幀中的第一位置上,其中所述參考?jí)K位于參考視頻幀中的第二位置上,其中所述第一位置和所述第二位置的坐標(biāo)相同,其中每對(duì)比較像素位于所述塊和所述參考?jí)K中的相同位置上,其中所述視頻幀或所述參考視頻幀是預(yù)測(cè)幀(P幀)、幀內(nèi)編碼幀(I幀),或雙向預(yù)測(cè)幀(B幀)。
15.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述塊位于視頻切片中的第一位置上,其中所述參考?jí)K位于參考視頻切片中的第二位置上,其中所述第一位置和所述第二位置的坐標(biāo)相同,其中每對(duì)比較像素位于所述塊和所述參考?jí)K中的相同位置上,其中所述視頻切片或所述參考視頻切片是預(yù)測(cè)切片(P切片)、幀內(nèi)編碼切片(I切片),或雙向預(yù)測(cè)切片(B切片)。
16.根據(jù)權(quán)利要求12所述的設(shè)備,其中所述處理器進(jìn)一步用于: 如果所述差值中的任何一個(gè)超過所述預(yù)設(shè)界限, 則僅基于比特率代價(jià)函數(shù)來確定所述塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,其中所述比特率代價(jià)函數(shù)的計(jì)算并不考慮所述塊的失真,并且其中所述編碼模式與所述多個(gè)可用編碼模式中的所有其他編碼模式相比,對(duì)所述當(dāng)前塊進(jìn)行編碼所需的比特?cái)?shù)最少。
17.—種用在視頻編碼中的方法,其包括: 針對(duì)塊中的多個(gè)像素中的每個(gè)像素,確定其與參考?jí)K中的多個(gè)對(duì)應(yīng)像素中的一個(gè)對(duì)應(yīng)像素的差值,其中每個(gè)差值是基于一對(duì)比較像素的兩個(gè)顏色值確定的;并且 如果所述每個(gè)差值在預(yù)設(shè)的界限內(nèi), 則生成信息以指示所述 塊為跳過塊,其中所述信息對(duì)所述塊和所述參考?jí)K進(jìn)行識(shí)別,以及 將所述信息包含到比特流中而無需對(duì)所述塊進(jìn)行進(jìn)一步編碼。
18.根據(jù)權(quán)利要求17所述的方法,其中所述塊是編碼單元(CU),并且其中所述參考?jí)K是參考⑶。
19.根據(jù)權(quán)利要求18所述的方法,其中所述信息包括: 所述⑶的多個(gè)坐標(biāo);以及 所述參考CU的多個(gè)坐標(biāo)。
20.根據(jù)權(quán)利要求18所述的方法,其中所述預(yù)設(shè)界限是±1。
21.根據(jù)權(quán)利要求18所述的方法,其中所述預(yù)設(shè)界限是±0。
22.根據(jù)權(quán)利要求20所述的方法,其中所述塊位于視頻幀中的第一位置上,其中所述參考?jí)K位于參考視頻幀中的第二位置上,其中所述第一位置和所述第二位置的坐標(biāo)相同,其中每對(duì)比較像素位于所述塊和所述參考?jí)K中的相同位置上,其中所述視頻幀或所述參考視頻幀是預(yù)測(cè)幀(P幀)、幀內(nèi)編碼幀(I幀),或雙向預(yù)測(cè)幀(B幀)。
23.根據(jù)權(quán)利要求20所述的方法,其中所述塊位于視頻切片中的第一位置上,其中所述參考?jí)K位于參考視頻切片中的第二位置上,其中所述第一位置和所述第二位置的坐標(biāo)相同,其中每對(duì)比較像素位于所述塊和所述參考?jí)K中的相同位置上,其中所述視頻切片或所述參考視頻切片是預(yù)測(cè)切片(P切片)、幀內(nèi)編碼切片(I切片),或雙向預(yù)測(cè)切片(B切片)。
24.根據(jù)權(quán)利要求20所述的方法,其進(jìn)一步包括: 如果所述差值中的任何一個(gè)超過所述預(yù)設(shè)界限, 則僅基于比特率代價(jià)函數(shù)來確定所述塊的編碼模式,其中所述編碼模式是從多個(gè)可用的編碼模式中選出的,其中所述比特率代價(jià)函數(shù)的計(jì)算并不考慮所述塊的失真,并且其中所述編碼模式與所述多個(gè)可用編碼模式中的所有其他編碼模式相比,對(duì)所述當(dāng)前塊進(jìn)行編碼所需的 比特?cái)?shù)最少。
【文檔編號(hào)】H04N19/176GK103782598SQ201280032348
【公開日】2014年5月7日 申請(qǐng)日期:2012年6月29日 優(yōu)先權(quán)日:2011年6月30日
【發(fā)明者】高文, 喬治·庫(kù)克, 楊名遠(yuǎn), 于浩平, 宋錦 申請(qǐng)人:華為技術(shù)有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1