專利名稱:用于速率受控視頻編碼的自適應(yīng)跳幀技術(shù)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼,且更具體而言,涉及用于視頻編碼中的跳幀技術(shù)。
技術(shù)背景人們已制訂了'大量不同的視頻編碼標(biāo)準(zhǔn)用于將數(shù)字視頻序列編碼。例如,運(yùn)動(dòng)圖 像專家組(MPEG)已開(kāi)發(fā)出大量標(biāo)準(zhǔn),包括MPEG-1、 MPEG-2和MPEG-4。其他實(shí) 例包括國(guó)際電信聯(lián)盟(ITU) R263標(biāo)準(zhǔn)和新興ITUH.264標(biāo)準(zhǔn)。這些視頻編碼標(biāo)準(zhǔn)一 般通過(guò)以壓縮方式將數(shù)據(jù)編碼來(lái)支持視頻序列的改進(jìn)傳輸效率。壓縮會(huì)減少需要傳輸 的數(shù)據(jù)總量,以便有效地傳輸視頻幀。例如,MPEG-4標(biāo)準(zhǔn)和ITU H.263及ITU H.264標(biāo)準(zhǔn)支持利用各順序性視頻幀之 間的相似性(稱作時(shí)間或幀間相關(guān))來(lái)提供幀間壓縮的視頻編碼技術(shù)。所述幀間壓縮 技術(shù)通過(guò)將基于像素的視頻幀表達(dá)轉(zhuǎn)換至運(yùn)動(dòng)表達(dá)來(lái)利用跨越幀的數(shù)據(jù)冗余。通常執(zhí) 行稱為運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償?shù)倪^(guò)程以將基于像素的視頻幀表達(dá)轉(zhuǎn)換為運(yùn)動(dòng)表達(dá),且因 而實(shí)現(xiàn)幀間壓縮。人們已開(kāi)發(fā)出大量速率控制技術(shù)用于視頻編碼。速率控制技術(shù)有利于促進(jìn)視頻序 列的實(shí)時(shí)傳輸,特別是在計(jì)算功率有限時(shí)。例如, 一種實(shí)現(xiàn)速率受控編碼的方式是允 許調(diào)整在視頻編碼過(guò)程期間所用的量化參數(shù)(QP)。 QP界定在視頻編碼期間出現(xiàn)的量 化等級(jí),并直接影響在編碼中使用的位數(shù)量。對(duì)基于QP的速率控制的一種變化形式 稱作p域速率控制。參數(shù)p用于表示視頻幀的各視頻塊在量化之后的非零系數(shù)數(shù)量。p 值可被映射至QP值,以產(chǎn)生不同的p值供使用所選QP實(shí)現(xiàn)/ 域速率控制。在任一情形中,QP的動(dòng)態(tài)選擇可用于控制每秒編碼的位數(shù)量。隨QP增大,保存 較少的數(shù)據(jù),且視頻編碼的質(zhì)量可能降級(jí)。隨QP減小,保存較多的數(shù)據(jù),且視頻編 碼的質(zhì)量提高。不幸的是,為速率控制選擇的QP并不總是足以滿足有限的帶寬要求。 因此,例如視頻電話或視頻流等某些視頻應(yīng)用可使用跳幀技術(shù)來(lái)進(jìn)一步降低位速率。 對(duì)于跳幀技術(shù)而言,可在視頻編碼中完全跳過(guò)一個(gè)或多個(gè)視頻幀,以確保滿足帶寬要 求。特定而言,保存那些原本將分配至被跳過(guò)幀的位以應(yīng)用至視頻序列中的其他幀。
傳統(tǒng)的跳幀通常固定地出現(xiàn),或隨需要而出現(xiàn),以確保滿足帶寬要求。 發(fā)明內(nèi)容本發(fā)明內(nèi)容涉及用于視頻序列的速率受控視頻編碼的自適應(yīng)跳幀技術(shù)。根據(jù)所揭 示技術(shù),編碼器以能夠相對(duì)于使用傳統(tǒng)跳幀進(jìn)行編碼改進(jìn)編碼序列的視頻質(zhì)量的智能 方式執(zhí)行跳幀。特定而言,所揭示的跳幀方案是自適應(yīng)的,且考慮視頻幀的運(yùn)動(dòng)活動(dòng) 性以標(biāo)識(shí)某些可跳過(guò)而不顯著犧牲視頻質(zhì)量的幀。所闡述的跳幀技術(shù)可顧及不同視頻幀的空間和時(shí)間質(zhì)量之間的折衷。以此方式, 所述技術(shù)可以能夠改進(jìn)視頻序列的可視外觀的方式在空間和時(shí)間質(zhì)量之間分配有限帶 寬。人體視力在運(yùn)動(dòng)是高速時(shí)對(duì)時(shí)間質(zhì)量更敏感,而在運(yùn)動(dòng)是低速時(shí)對(duì)空間質(zhì)量更敏 感。根據(jù)這一揭示內(nèi)容,可基于運(yùn)動(dòng)活動(dòng)性將各幀分等級(jí),并基于空間質(zhì)量對(duì)其進(jìn)行 單獨(dú)分析,以標(biāo)識(shí)可跳過(guò)而不顯著犧牲視頻質(zhì)量的幀。在一實(shí)施例中,這一揭示內(nèi)容闡述一種視頻編碼方法,其包括至少部分地基于與 視頻序列的視頻幀相關(guān)聯(lián)的塔動(dòng)信息來(lái)標(biāo)識(shí)所述視頻序列的一個(gè)或多個(gè)候選視,頻幀供 用于跳幀,并在所述視頻序列的編碼期間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。'在另一實(shí)施例中,這一揭示內(nèi)容闡述一種視頻編碼裝置,其包括編碼器,其將 視頻序列的幀編碼;及速率控制單元,其至少部分地基于與所述視頻序列的視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息來(lái)標(biāo)識(shí)所述視頻序列的一個(gè)或多個(gè)候選視頻幀供用于跳幀,并使得編 碼器在所述視頻序列的編碼期間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。本文所述技術(shù)可按硬件、軟件、固件或其任一組合形式實(shí)施于視頻編碼裝置中。如果以軟件形式實(shí)施,則該軟件可在例如數(shù)字信號(hào)處理器(DSP)等可編程處理器中 執(zhí)行。在所述情形中,執(zhí)行所述技術(shù)的軟件可首先存儲(chǔ)于計(jì)算機(jī)可讀媒體中,并載入 及執(zhí)行于可編程處理器中,以在數(shù)字視頻裝置中進(jìn)行有效的速率受控編碼。因此,這 一揭示內(nèi)容還涵蓋一種包括可執(zhí)行指令的計(jì)算機(jī)可讀媒體,所述指令在執(zhí)行于視頻編 碼裝置中時(shí),使得所述裝置至少部分地基于與視頻序列的視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息來(lái) 標(biāo)識(shí)所述視頻序列的一個(gè)或多個(gè)候選視頻幀供用于跳幀,并在所述視頻序列的編碼期 間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。在附圖和下文說(shuō)明中列舉各實(shí)施例的其它細(xì)節(jié)。根據(jù)本說(shuō)明和圖式及根據(jù)權(quán)利要 求書(shū),將易知其它特征、目的和優(yōu)點(diǎn)。
圖1是圖解說(shuō)明其中源數(shù)字視頻裝置將經(jīng)編碼的視頻數(shù)據(jù)序列傳輸至接收數(shù)字視 頻裝置的實(shí)例性系統(tǒng)的框圖。圖2是根據(jù)這一揭示內(nèi)容的實(shí)施例的視頻編碼裝置的實(shí)例性框圖。 圖3是圖解說(shuō)明存儲(chǔ)一組經(jīng)分等級(jí)的視頻幀的數(shù)據(jù)結(jié)構(gòu)的概念圖。
圖4-6是圖解說(shuō)明根據(jù)這一揭示內(nèi)容的各實(shí)施例的自適應(yīng)跳幀技術(shù)的流程圖。 圖7是圖解說(shuō)明一種用于根據(jù)這一揭示內(nèi)容的實(shí)施例確定是否跳過(guò)一視頻幀的技 術(shù)的實(shí)例性流程圖。
具體實(shí)施方式
本發(fā)明內(nèi)容涉及用于視頻序列的速率受控視頻編碼的跳幀技術(shù)。所揭示的跳幀方 案是自適應(yīng)的,且考慮視頻幀的運(yùn)動(dòng)活動(dòng)性以標(biāo)識(shí)某些可跳過(guò)而不顯著犧牲視頻質(zhì)量 的幀。例如,可使用與所述視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息將所述幀分等級(jí),以標(biāo)識(shí)可跳過(guò) 而不顯著犧牲視頻質(zhì)量的一個(gè)或多個(gè)候選視頻幀。所述跳幀技術(shù)可結(jié)合速率控制技術(shù)使用,其中以動(dòng)態(tài)方式選擇量化參數(shù)(QP),但也可以單獨(dú)使用而不使用這種速率控 制。在一實(shí)例中,用于將候選視頻幀分等級(jí)的運(yùn)動(dòng)信息包括候選視頻幀的各視頻塊的 運(yùn)動(dòng)向量長(zhǎng)度平均值。在另一實(shí)例中,與候選視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息包括在所述視 頻序列中的候選視頻幀之前的一個(gè)幀中各視頻塊的運(yùn)動(dòng)向量長(zhǎng)度平均值。如果使用前 述幀的運(yùn)動(dòng)向量長(zhǎng)度來(lái)界定與候選視頻塊相關(guān)聯(lián)的運(yùn)動(dòng)信息,則所述信息是運(yùn)動(dòng)的近 似值,但可使用而在編碼方案中不需要其他運(yùn)動(dòng)估計(jì)回路。所述視頻塊在本文中還可 以稱作宏塊(MB),但不必限定至任一特定大小或格式。所述技術(shù)可包括至少部分地基于視頻幀的宏塊(也就是當(dāng)前候選者的宏塊或一前述幀的宏塊)的平均運(yùn)動(dòng)向量長(zhǎng)度將視頻序列的各視頻幀分等級(jí),并基于由與視頻幀相關(guān)聯(lián)的量化參數(shù)(QP)界定的空間質(zhì)量來(lái)標(biāo)識(shí)每一視頻幀的閾值。在QP不同的 情況下,所述閾值可因不同視頻幀而不同。以此方式,可使得以較低QP編碼的視頻 幀(其具有較高空間解析度)優(yōu)先于具有較高QP且因此具有較低空間解析度的幀。 通過(guò)使用基于運(yùn)動(dòng)的分等級(jí)和界定為空間解析度函數(shù)的閾值,所述技術(shù)可平衡不同視 頻幀的空間和時(shí)間質(zhì)量,以標(biāo)識(shí)用于跳幀的較佳候選者。許多其他候選者也可以用于 所述跳幀方案,(例如)以防止在帶寬充裕時(shí)跳幀或防止在運(yùn)動(dòng)極高速時(shí)跳幀。所述技術(shù)可以能夠改進(jìn)視頻序列的可視外觀的方式,基于不同視頻幀的空間和時(shí) 間質(zhì)量來(lái)分配有限資源。人體視力在運(yùn)動(dòng)是高速時(shí)對(duì)時(shí)間質(zhì)量更敏感。然而,當(dāng)運(yùn)動(dòng) 是低速時(shí),人體視力對(duì)空間質(zhì)量更敏感。根據(jù)這一揭示內(nèi)容,可基于運(yùn)動(dòng)活動(dòng)性將各 幀分等級(jí),并基于空間質(zhì)量進(jìn)行評(píng)定,以標(biāo)識(shí)可跳過(guò)而不顯著犧牲視頻質(zhì)量的幀。圖1是圖解說(shuō)明其中源裝置12將經(jīng)編碼的視頻數(shù)據(jù)序列經(jīng)由通信鏈路15傳輸至 接收裝置14的實(shí)例性系統(tǒng)10的框圖。源裝置12依據(jù)一種可利用速率受控視頻編碼的 視頻標(biāo)準(zhǔn)(例如MPEG-4標(biāo)準(zhǔn)、ITUH.263標(biāo)準(zhǔn)、ITUH.264標(biāo)準(zhǔn)、或各種其它標(biāo)準(zhǔn)的 任一者)對(duì)視頻數(shù)據(jù)編碼。如下文更詳細(xì)闡述,系統(tǒng)10的裝置12、 14中的一者或二 者均實(shí)施使用自適應(yīng)跳幀的速率控制技術(shù),以改進(jìn)視頻編碼過(guò)程。這種使用自適應(yīng)跳 幀的速率控制技術(shù)特別有利于視頻序列在有限帶寬的通信鏈路15上進(jìn)行實(shí)時(shí)傳輸,例
如在視頻電話或視頻流應(yīng)用中。所述速率控制技術(shù)可能在(例如)無(wú)線通信鏈路上的 移動(dòng)視頻電話或移動(dòng)視頻流應(yīng)用中尤其合意。大體而言,通信鏈路15可包括無(wú)線鏈路、實(shí)際傳輸線、光纖、例如局域網(wǎng)、廣 域網(wǎng)等基于分組的網(wǎng)絡(luò)、或例如因特網(wǎng)等全球網(wǎng)絡(luò)、公共交換電話網(wǎng)絡(luò)(PSTN)、或 任何其它能夠傳送數(shù)據(jù)的通信鏈路。因此,通信鏈路15表示任一適合的通信媒體,或 可能不同網(wǎng)絡(luò)和鏈路的集合,供用于將視頻數(shù)據(jù)從源裝置12傳輸至接收裝置14。然 而,如上文提及,通信鏈路15可能具有有限帶寬,從而使得速率控制對(duì)視頻序列在鏈 路15上的實(shí)時(shí)傳輸極為合意。所述有限帶寬可能是由于通信鏈路15上的實(shí)際約束, 或可能是通信鏈路15的提供商所施加的服務(wù)質(zhì)量(QoS)限制或帶寬分配約束。
源裝置12可包含任一能夠編碼及傳輸視頻數(shù)據(jù)的數(shù)字視頻裝置。源裝置12可包 括視頻存儲(chǔ)器16,以存儲(chǔ)數(shù)字視頻序列;視頻編碼器18,以將所述序列編碼;及發(fā) 射機(jī)20,以在通信鏈路15上將所述經(jīng)編碼序列傳輸至源裝置14。視頻編碼器18可包 括(例如)各種硬件、軟件或固件、或一個(gè)或多個(gè)執(zhí)行可編程軟件模塊以控制如本文 所述的視頻編碼技術(shù)的數(shù)字信號(hào)處理器(DSP)。可提供相關(guān)聯(lián)的存儲(chǔ)器及邏輯電路以 i持DSP控制所述視頻編碼技術(shù)。 '源裝置12還可以包括例如視頻照相機(jī)等視頻捕獲裝置23,以捕獲視頻序列并將 所捕獲的序列存儲(chǔ)于存儲(chǔ)器16中。特定而言,視頻捕獲裝置23可包括電荷耦合裝置 (CCD)、電荷注入裝置、光電二極管陣列、互補(bǔ)金屬氧化物半導(dǎo)體(CMOS)裝置、 或任一其他能夠捕獲視頻圖像或數(shù)字視頻序列的光敏裝置。
再例如,視頻捕獲裝置23可包括視頻轉(zhuǎn)換器,其將模擬視頻數(shù)據(jù)從(例如)電 視機(jī)、錄像機(jī)、攝像放像機(jī)、或另一視頻裝置轉(zhuǎn)換成數(shù)字視頻數(shù)據(jù)。在某些實(shí)施例中, 源裝置12可經(jīng)配置以在通信鏈路15上傳輸實(shí)時(shí)視頻序列。在所述情形中,接收裝置 14可接收所述實(shí)時(shí)視頻序列并將所述視頻序列顯示給用戶。另一選擇為,源裝置12 可捕獲作為視頻數(shù)據(jù)文件(即不是以實(shí)時(shí)形式)發(fā)送至接收裝置14的視頻序列并進(jìn)行 編碼。因此,源裝置12及接收裝置14可在例如移動(dòng)無(wú)線網(wǎng)絡(luò)中支持例如視頻電信、 視頻剪輯重放、視頻郵件、或視頻會(huì)議等應(yīng)用。裝置12及14可包括未在圖1中具體 顯示的各種其它元件。
接收裝置14可采取任一能夠接收視頻數(shù)據(jù)并進(jìn)行解碼的數(shù)字視頻裝置形式。例 如,接收裝置14可包括接收機(jī)22,以(例如)經(jīng)由中間鏈路、路由器、其它網(wǎng)絡(luò)設(shè) 備及類似裝置從發(fā)射機(jī)20接收經(jīng)編碼的數(shù)字視頻序列。接收裝置14也可包括用于將 所述序列解碼的視頻解碼器24,及用于向用戶顯示所述序列的顯示裝置26。然而,在 某些實(shí)施例中,接收裝置14可不包括集成顯示裝置14。在這種情形中,接收裝置14 可充當(dāng)接收機(jī),其將所接收的視頻數(shù)據(jù)解碼以驅(qū)動(dòng)例如電視機(jī)或監(jiān)視器等離散顯示裝 置。源裝置12和接收裝置14的實(shí)例性裝置包括位于計(jì)算機(jī)網(wǎng)絡(luò)上的服務(wù)器、工作站 或其它桌上型計(jì)算裝置,及例如膝上型計(jì)算機(jī)或個(gè)人數(shù)字助理(PDA)等移動(dòng)計(jì)算裝 置。其它實(shí)例包括數(shù)字電視廣播衛(wèi)星及例如數(shù)字電視、數(shù)字照相機(jī)、數(shù)字?jǐn)z像機(jī)或其 它數(shù)字記錄裝置等接收裝置、例如具有視頻能力的移動(dòng)電話或手機(jī)等數(shù)字視頻電話、 具有視頻能力的直接雙向通信裝置、其它無(wú)線視頻裝置及類似裝置。在某些情形中,源裝置12和接收裝置14分別包括用于對(duì)數(shù)字視頻數(shù)據(jù)進(jìn)行編碼 和解碼的編碼器/解碼器(CODEC)。源裝置12和接收裝置14二者均可包括發(fā)射機(jī)和 接收機(jī)以及存儲(chǔ)器和顯示器。下文概述的許多編碼技術(shù)是闡述于包含編碼器的數(shù)字視 頻裝置上下文中。然而,應(yīng)了解,所述編碼器可構(gòu)成CODEC的一部分。于所述情形 中,CODEC可構(gòu)建于硬件、軟件、固件、DSP、微處理器、應(yīng)用專用集成電路(ASIC)、 現(xiàn)場(chǎng)可編程門陣列(FPGA)、離散硬件組件、或其各種組合中。源裝置12內(nèi)的視頻編碼器18對(duì)視頻幀序列內(nèi)的像素塊進(jìn)行操作,以將所述視頻 數(shù)據(jù)編碼。例如,視頻編碼器]8可執(zhí)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償技術(shù),其中將想要傳輸?shù)?視頻幀劃分成若干像素塊(稱作視頻塊)。為便于例示,所述視頻塊可包含任意大小的 塊,且可在給定的視頻序列中有所變化。作為一實(shí)例,ITU H.264標(biāo)準(zhǔn)支持16x16視 頻塊、16x8視頻塊、Sxl6視頻塊、8x8視頻塊、8x4視頻塊、4x8視頻塊及4x4視頻 塊。在視頻'編碼中使用較小的視頻塊可在編碼中產(chǎn)生較佳的解析度,且可專門用于包 含較高詳細(xì)程度的視頻幀區(qū)域(所關(guān)注域)。此外,視頻編碼器18可經(jīng)設(shè)計(jì)以對(duì)4x4 視頻塊進(jìn)行操作,并隨需要根據(jù)所述4x4視頻塊來(lái)重構(gòu)更大的視頻塊。對(duì)于例如 MPEG-4等標(biāo)準(zhǔn),視頻塊可包括16x16視頻塊,其有時(shí)稱作"宏塊"。然而,本文所述 技術(shù)一般并不限定于任一大小或格式的視頻塊或宏塊。舉例而言,視頻塊中的每一像素可由各種界定像素的可視特性(例如以色度和發(fā) 光度值表示的色彩和亮度)的n位值(例如8位)來(lái)表示。每一像素均可具有一個(gè)或 多個(gè)用于色度和發(fā)光度二者的8位值。然而,本發(fā)明的技術(shù)又不限于像素格式,而可 以更簡(jiǎn)單的更少位像素格式或更復(fù)雜的更多位像素格式來(lái)擴(kuò)充。也可根據(jù)其它色彩座 標(biāo)系統(tǒng)來(lái)界定像素。此外,視頻塊可由離散余弦變換(DCT)系數(shù)后跟由像素值表示 的視頻塊的DCT來(lái)表示。另一選擇為,視頻塊可由非零小波值后跟像素值的小波變換 來(lái)表示。如本文所述,使用自適應(yīng)跳幀的速率控制技術(shù)可適用于大量編碼標(biāo)準(zhǔn)、像素 格式和視頻塊大小及形狀。圖2是可對(duì)應(yīng)于源裝置12的視頻編碼裝置30的實(shí)例性框圖。大體而言,裝置30 包括能夠執(zhí)行本文所述自適應(yīng)跳幀技術(shù)的數(shù)字視頻裝置。裝置30可符合例如MPEG-4、 ITUH.263、 ITUH.264等視頻編碼標(biāo)準(zhǔn),或另一可受益于本文所述自適應(yīng)跳幀技術(shù)的 視頻編碼標(biāo)準(zhǔn)。如圖2所示,裝置30包括用于將視頻序列編碼的視頻編碼設(shè)備32,及用于在編 碼之前和之后存儲(chǔ)所述視頻序列的視頻存儲(chǔ)器34。裝置30還可以包括用于將經(jīng)編碼 序列傳輸至另一裝置的發(fā)射機(jī)36,且可能包括用于捕獲視頻序列并將所捕獲序列存儲(chǔ) 于存儲(chǔ)器34中的視頻捕獲裝置38,例如視頻照相機(jī)。裝置30的各種元件可經(jīng)由通信 總線35以通信方式耦合在一起。例如幀內(nèi)編碼器元件等各種其他元件、各種濾波器或
其他元件也可以包含于裝置30中,但為簡(jiǎn)明起見(jiàn)而不具體圖解說(shuō)明。視頻存儲(chǔ)器34通常包括相對(duì)大的存儲(chǔ)空間。例如,視頻存儲(chǔ)器34可包括動(dòng)態(tài)隨 機(jī)存取存儲(chǔ)器(DRAM)、或FLASH (閃速)存儲(chǔ)器。在其它實(shí)例中,視頻存儲(chǔ)器34 可包括非易失性存儲(chǔ)器或任一其它數(shù)據(jù)存儲(chǔ)裝置。視頻編碼設(shè)備32可包含用于移動(dòng)無(wú)線電電話的芯片組,所述芯片組包括硬件、 軟件、固件、及/或處理器或數(shù)字信號(hào)處理器(DSP)的任一組合。視頻編碼設(shè)備32 一般包括耦合至本地存儲(chǔ)器37的視頻編碼器28。本地存儲(chǔ)器37可包括相對(duì)于視頻存 儲(chǔ)器34較小和較快的存儲(chǔ)空間。舉例而言,本地存儲(chǔ)器37可包括同步動(dòng)態(tài)隨機(jī)存取 存儲(chǔ)器(SDRAM)。本地存儲(chǔ)器37可包括與視頻編碼設(shè)備32的其它組件集成的"芯 片上"存儲(chǔ)器,以允許在處理器密集型編碼過(guò)程期間極快速地存取數(shù)據(jù)。在給定視頻 幀的編碼期間,可將想要編碼的當(dāng)前視頻塊從視頻存儲(chǔ)器34載入至本地存儲(chǔ)器37。 也可以將用于定位最佳預(yù)測(cè)的查找空間從視頻存儲(chǔ)器34載入至本地存儲(chǔ)器37。然而, 對(duì)于本文所述技術(shù)的執(zhí)行來(lái)說(shuō),不同存儲(chǔ)器是不必要的。換句話說(shuō),視頻編碼器28 可存取芯片上或芯片外存儲(chǔ)器,以獲得所述視頻塊和查找空間。根據(jù)這一揭示內(nèi)蓉,視頻編碼器28包括速率控制單元46,其執(zhí)行自適應(yīng)跳幀技 術(shù)以確??蓪⒁曨l序列有效地編碼供在有限帶寬上傳輸。在圖2所示實(shí)例中,速率控 制單元包括基于選擇量化參數(shù)來(lái)執(zhí)行速率控制的QP速率控制模塊45,及執(zhí)行自適應(yīng) 跳幀的跳幀模塊47。然而,在某些實(shí)施例中,可單獨(dú)使用所述跳幀技術(shù),而無(wú)需基于 選擇QP進(jìn)行動(dòng)態(tài)速率控制。為將給定視頻幀(也就是未跳過(guò)的幀)編碼,運(yùn)動(dòng)估計(jì)器40和運(yùn)動(dòng)補(bǔ)償器42通 過(guò)存取載入至本地存儲(chǔ)器37的査找空間而對(duì)視頻幀分別執(zhí)行運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償。例 如,可為本地存儲(chǔ)器37載入一欲編碼的當(dāng)前視頻塊和查找空間,所述查找空間包括用 于幀間編碼的一個(gè)或多個(gè)視頻幀的一些或所有。運(yùn)動(dòng)估計(jì)器40將當(dāng)前視頻塊與所述査 找空間中的各個(gè)視頻塊進(jìn)行比較,以便標(biāo)識(shí)最佳預(yù)測(cè)。然而,在某些情形中,無(wú)需具 體檢査每一可能候選者即可更快速地為所述編碼標(biāo)識(shí)一適當(dāng)匹配者。在所述情形中, 所述適當(dāng)匹配者可能實(shí)際上并非"最佳"預(yù)測(cè),但對(duì)于有效的視頻編碼而言已足夠。一 般而言,短語(yǔ)"預(yù)測(cè)視頻塊"是指適當(dāng)匹配者,其可能是最佳預(yù)測(cè)。運(yùn)動(dòng)估計(jì)器40執(zhí)行欲編碼的當(dāng)前視頻塊與存儲(chǔ)器37的査找空間中的候選視頻塊 之間的比較。舉例而言,運(yùn)動(dòng)估計(jì)器40可執(zhí)行絕對(duì)差求和(SAD)技術(shù)、平方差求和 (SSD)技術(shù)、或其它比較技術(shù),以便為候選視頻塊界定差值。差值越小通常指示候 選視頻塊是越佳的匹配者,且因而是比其它會(huì)產(chǎn)生更高差值的候選視頻塊更佳的供用 于運(yùn)動(dòng)估計(jì)編碼的候選者。最后,運(yùn)動(dòng)估計(jì)器40標(biāo)識(shí)"最佳預(yù)測(cè)"一其是與所要編碼的視頻塊最緊密匹配的 候選視頻塊。然而,應(yīng)了解,在許多情形中,可在最佳預(yù)測(cè)之前對(duì)適當(dāng)匹配者進(jìn)行定 位,且在那些情形中,可使用適當(dāng)匹配者來(lái)進(jìn)行編碼。同樣,預(yù)測(cè)視頻塊是指適當(dāng)匹 配者,其可能是最佳預(yù)測(cè)。
一旦運(yùn)動(dòng)估計(jì)器40將想要編碼的視頻塊標(biāo)識(shí)為預(yù)測(cè)視頻塊,則運(yùn)動(dòng)補(bǔ)償器42創(chuàng) 建可指示當(dāng)前視頻塊與最佳預(yù)測(cè)之間的差異的差異塊。差異塊編碼器44可進(jìn)一步對(duì)所 述差異塊編碼以壓縮所述差異塊,且可轉(zhuǎn)發(fā)經(jīng)編碼的差異塊以將其連同運(yùn)動(dòng)向量(或 所述運(yùn)動(dòng)向量與運(yùn)動(dòng)向量預(yù)測(cè)值之間的差) 一起傳輸至另一裝置,以標(biāo)識(shí)所述査找空 間中哪一候選視頻塊曾用于進(jìn)行編碼。為簡(jiǎn)明起見(jiàn),將用于在運(yùn)動(dòng)補(bǔ)償之后執(zhí)行編碼 的其它組件歸納為差異塊編碼器44,因?yàn)榫唧w組件將視所支持的具體標(biāo)準(zhǔn)而變化。也 就是說(shuō),差異塊編碼器44可對(duì)差異塊執(zhí)行大量傳統(tǒng)編碼技術(shù),例如8x8離散余弦變換、 標(biāo)量量化、光柵-鋸齒形重排序、運(yùn)行長(zhǎng)度編碼、霍夫曼編碼或其他編碼或壓縮技術(shù)。在編碼過(guò)程期間,速率控制可幫助確保用于將給定序列編碼的位數(shù)量不超過(guò)與發(fā) 射機(jī)36相關(guān)聯(lián)的通信通道的帶寬限制。然而,如上文提及,僅基于QP選擇的速率控 制并不總是足以滿足有限的帶寬要求。在這些情形中,可更頻繁地應(yīng)用跳幀,以通過(guò) 在視頻編碼期間跳過(guò)某些視頻幀來(lái)確保滿足帶寬要求。對(duì)于跳幀而言,原本應(yīng)分配至 被跳過(guò)的幀的位被另外重新捕獲,供用于分配給視頻序列中的其他幀。本文所述的自 適應(yīng)跳幀技術(shù)相對(duì)于傳統(tǒng)跳幀改進(jìn)了視頻序列的質(zhì)量。為執(zhí)行速率控制,視頻編碼器28包括速率控制單元46。速率控制單元46包括用 于基于QP動(dòng)態(tài)選擇來(lái)執(zhí)行速率控制的QP速率控制模塊45,及用于執(zhí)行自適應(yīng)跳幀 的跳幀模塊47。在某些情形中,QP速率控制模塊45開(kāi)發(fā)每幀所編碼的位數(shù)量與視頻 塊在量化之后的非零系數(shù)數(shù)量之間的關(guān)系。/7的值表示視頻塊在量化之后的非零系數(shù) 數(shù)量,其一般與每幀所編碼的位數(shù)量(且因此,在恒定幀速率下每秒所編碼的位數(shù)量) 成正比。相應(yīng)地,QP速率控制模塊46可利用p與QP之間的關(guān)系,以實(shí)現(xiàn)速率受控 視頻編碼。在任一情形中,QP速率控制模塊45選擇對(duì)應(yīng)于視頻編碼的合意速率的QP。 QP 可逐幀地選擇,或逐視頻塊地選擇。這一基于QP的速率控制可針對(duì)每一視頻幀的編 碼而形成編碼回路的一部分。 一此外,基于QP的速率控制并不總是足以滿足有限的帶寬要求。因此,速率控制 單元46還包括跳幀模塊47。跳幀模塊47通過(guò)標(biāo)識(shí)可跳過(guò)的較佳候選者來(lái)執(zhí)行自適應(yīng) 跳幀。所述候選者可基于運(yùn)動(dòng)信息、空間質(zhì)量或運(yùn)動(dòng)信息及空間質(zhì)量二者來(lái)選擇。人 體視力在運(yùn)動(dòng)是高速時(shí)對(duì)時(shí)間質(zhì)量更敏感,但人體視力在運(yùn)動(dòng)是低速時(shí)對(duì)空間質(zhì)量更 敏感。根據(jù)這一揭示內(nèi)容,可基于運(yùn)動(dòng)活動(dòng)性將各幀分等級(jí),并基于空間質(zhì)量分別對(duì) 其評(píng)定,以標(biāo)識(shí)可跳過(guò)而不顯著犧牲視頻質(zhì)量的幀。跳幀模塊47可標(biāo)識(shí)與給定視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息,以確定所述視頻幀是否是 用于跳幀的較佳候選者。例如,運(yùn)動(dòng)信息可包括組成候選視頻幀的各視頻塊的平均運(yùn) 動(dòng)向量長(zhǎng)度。然而,在這一情形中,由于運(yùn)動(dòng)估計(jì)確定平均運(yùn)動(dòng)向量長(zhǎng)度,則在跳幀 確定之前通常需要進(jìn)行運(yùn)動(dòng)估計(jì)。如果跳過(guò)所述幀,則這些運(yùn)動(dòng)估計(jì)計(jì)算在編碼中不 使用,且因此被廢損。出于這一原因,在另一實(shí)例中,與給定視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信 息可包括與組成所述序列中給定視頻幀之前的視頻幀的各視頻塊相關(guān)聯(lián)的平均運(yùn)動(dòng)向
量長(zhǎng)度。在這一情形中,原本將參照用于編碼的前一視頻幀來(lái)執(zhí)行運(yùn)動(dòng)估計(jì),且因此 可避免參照被跳過(guò)的幀進(jìn)行不必要的運(yùn)動(dòng)估計(jì)。前一幀可能是緊鄰的前一個(gè),但所述 技術(shù)不一定限于這一方面。跳幀模塊47可至少部分地基于視頻幀宏塊(也就是當(dāng)前候選者的宏塊或前一幀 的宏塊)的平均運(yùn)動(dòng)向量長(zhǎng)度將視頻序列的視頻幀分等級(jí),并基于由與視頻幀相關(guān)聯(lián)的量化參數(shù)(QP)界定的空間質(zhì)量標(biāo)識(shí)每一視頻幀的閾值。在QP不同的情況下,閾 值可能針對(duì)不同視頻幀而不同。以此方式,可使得以較低QP進(jìn)行編碼的視頻幀(其 具有較高空間解析度)優(yōu)先于具有較低空間解析度的幀。通過(guò)使用基于運(yùn)動(dòng)的分等級(jí) 和界定為空間解析度函數(shù)的閾值,跳幀模塊47可平衡不同視頻幀的空間和時(shí)間質(zhì)量, 以標(biāo)識(shí)用于跳幀的較佳候選者。圖3是視頻序列的一組經(jīng)分等級(jí)視頻幀的概念圖。跳幀模塊47可在本地存儲(chǔ)器 37中創(chuàng)建這種數(shù)據(jù)結(jié)構(gòu)以進(jìn)行跳幀確定。特定而言,數(shù)據(jù)結(jié)構(gòu)50包括一從"高"到"低" 進(jìn)行分類的視頻幀序列。所述"高"和"低"是基于與各種視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)向量長(zhǎng)度 的相對(duì)量。運(yùn)動(dòng)向量長(zhǎng)度可以是組成當(dāng)前候選幀或所述候選者之前的一個(gè)幀的各視頻 塊的平均運(yùn)動(dòng)向量長(zhǎng)度。以此方式,數(shù)據(jù)結(jié)構(gòu)50—般基于與不同幀相關(guān)聯(lián)的運(yùn)動(dòng)活動(dòng) 性將視頻序列的視頻幀分等級(jí)。數(shù)據(jù)結(jié)構(gòu)50可以分等級(jí)方式維持幀的滑動(dòng)窗口,且可 在考慮及將新幀分等級(jí)時(shí)丟棄較舊的幀。在某些情形中,跳幀模塊47可僅選擇數(shù)據(jù)結(jié)構(gòu)50中最低的候選者供用于跳幀。 例如,可界定截止點(diǎn),以便可將任何具有低于所述截止點(diǎn)的運(yùn)動(dòng)向量長(zhǎng)度的幀標(biāo)定為 跳幀候選者。所標(biāo)定的幀是用于跳幀的候選者,但并不必需跳過(guò)。例如,跳幀模塊47 可經(jīng)配置以使得如果這些幀均非常"低"則避免跳過(guò)連續(xù)的幀。然而,運(yùn)動(dòng)并非唯一影響合意的跳幀確定的視頻幀特性。例如,如上文提及,在 運(yùn)動(dòng)是高速時(shí)人體視力對(duì)時(shí)間質(zhì)量更敏感,但在運(yùn)動(dòng)是低速時(shí)人體視力對(duì)空間質(zhì)量更 敏感。因此,除運(yùn)動(dòng)外還可以使用空間質(zhì)量,以標(biāo)識(shí)候選者或?qū)⒛承懦谔鴰?外。作為速率控制的一部分而為幀或視頻塊選擇的QP可用于評(píng)定不同視頻幀的空間 質(zhì)量。例如,可基于由與視頻幀相關(guān)聯(lián)的量化參數(shù)(QP)界定的空間質(zhì)量,為每一視 頻幀界定一閾值。較低的QP —般意指視頻幀將具有較高空間質(zhì)量,因?yàn)檩^低的QP 會(huì)導(dǎo)致在編碼中使用更多個(gè)位?;赒P,在QP針對(duì)不同幀而不同的情況下,閾值可 針對(duì)不同視頻幀而不同。圖3所示AFS ("自適應(yīng)跳幀")閾值可被設(shè)定為運(yùn)動(dòng)向量長(zhǎng) 度范圍的"高"端和"低"端之間的百分比。下列表1提供一表格實(shí)例,其可由跳幀模塊47用于除經(jīng)分等級(jí)視頻幀的運(yùn)動(dòng)向 量長(zhǎng)度之外計(jì)及空間解析度。與幀相關(guān)聯(lián)的QP可針對(duì)一幀界定,或者,如果允許所 述QP逐視頻塊地改變,則其可以是所述幀的平均QP。此外,較低的QP會(huì)產(chǎn)生更大 的空間解析度,也就是較佳質(zhì)量的視頻幀。
表1qp百分比(%)>229021-22805-2050<50 (無(wú)跳幀)如表1中顯示,參照mpeg-4實(shí)例,如果與一幀相關(guān)聯(lián)的qp大于22,則百分比 閾值為90%。這意味著如果qp大于22的視頻幀落入圖3的數(shù)據(jù)結(jié)構(gòu)50中所界定 的后90%的運(yùn)動(dòng)范圍內(nèi),那么所述視頻幀可被跳過(guò),也就是說(shuō)除非其具有位于前10 %的高等級(jí),否則就會(huì)被跳過(guò)。如果qp是21-22,則百分比閾值為80%,其意指如 果視頻幀落入后80%的運(yùn)動(dòng)范圍內(nèi)則其可被跳過(guò)。如果qp是5-20,則百分比閾值為 50%,其意指如果視頻幀落入后50%的運(yùn)動(dòng)范圍內(nèi)則其可被跳過(guò)。對(duì)于小于5的qp 而言,可不考慮運(yùn)動(dòng)而避免跳幀,因?yàn)閝p小于5的視頻幀定義了極佳的空間解析度。 當(dāng)然,'可用不同方式界定所述閾值,且qp可以視標(biāo)準(zhǔn)而界定更高或更低級(jí)別的解析 度。通過(guò)使用根據(jù)幀的運(yùn)動(dòng)向量長(zhǎng)度在一系列幀中對(duì)所述幀進(jìn)行的分等級(jí)和與應(yīng)用 至所述幀的qp相關(guān)聯(lián)的百分比閾值,跳幀模塊47確定是否跳過(guò)對(duì)所述幀的編碼。如 果所述幀的運(yùn)動(dòng)向量長(zhǎng)度等級(jí)低于所述百分比閾值,則跳過(guò)所述幀。所述閾值還可以 視可用帶寬而是自適應(yīng)的。例如,可依據(jù)可用帶寬使用不同的表格,以便根據(jù)需要使 跳幀的可能性更大或更小。重要的是,通過(guò)使用基于運(yùn)動(dòng)的分等級(jí)和界定為空間解析 度函數(shù)的閾值,所述技術(shù)可平衡不同視頻幀的空間和時(shí)間質(zhì)量,以標(biāo)識(shí)用于跳幀的較 佳候選者。在某些情形中,如果跳過(guò)一幀,則接續(xù)幀的運(yùn)動(dòng)估計(jì)將基于被跳過(guò)的幀之前的幀, 這自然會(huì)導(dǎo)致一跳幀之后的任一幀均具有較高速運(yùn)動(dòng)。因此,跳過(guò)兩個(gè)連續(xù)幀是極不 可能的。而且,跳幀模塊47可在需要時(shí)采取其他步驟以避免跳過(guò)連續(xù)幀。此外,跳幀 模塊47可為極高速運(yùn)動(dòng)界定一標(biāo)準(zhǔn),其中可無(wú)論如何地避免跳幀。例如,依據(jù)表1 所示實(shí)例,無(wú)論qp如何,均不可能跳過(guò)相關(guān)聯(lián)的平均運(yùn)動(dòng)向量長(zhǎng)度大于10的視頻幀。此外,跳幀模塊47可界定其他測(cè)試或參數(shù),以完全地防止在帶寬充裕時(shí)跳幀。 此外,在某些情形中,跳幀模塊47可經(jīng)編程以采用分層方式,其中依據(jù)可用帶寬來(lái)執(zhí) 行較主動(dòng)跳幀或不太主動(dòng)的跳幀。以這些或其他方式,跳幀可基于運(yùn)動(dòng)活動(dòng)性、空間 質(zhì)量和可用帶寬來(lái)執(zhí)行。重要的是,最后的跳幀決策至少部分地基于運(yùn)動(dòng)活動(dòng)性,以 使得無(wú)論所應(yīng)用的跳幀主動(dòng)性如何,選擇作為跳幀候選者的幀是其中跳幀將不會(huì)引起 視頻序列外觀過(guò)度降級(jí)的幀。圖4是圖解說(shuō)明其中結(jié)合基于qp的速率控制來(lái)使用自適應(yīng)跳幀的實(shí)施例的流程 圖。在圖4所示實(shí)例中,用于做出跳幀確定的運(yùn)動(dòng)信息是與所討論的視頻幀相關(guān)聯(lián)的
平均運(yùn)動(dòng)向量長(zhǎng)度。此意指必須在做出跳幀確定之前參照所討論的視頻幀來(lái)執(zhí)行運(yùn)動(dòng) 估計(jì)。如圖4中顯示,速率控制單元46的QP速率控制模塊45執(zhí)行速率控制(61),以 計(jì)算所討論的視頻幀的QP。在某些情形中,可針對(duì)幀的不同視頻塊來(lái)調(diào)整QP,其中 可在跳幀確定中使用平均QP。然而,為簡(jiǎn)明起見(jiàn),將假設(shè)給定幀的QP是固定的。在某些情形中,模塊45可自本地存儲(chǔ)器37存取/ -QP表格,或可應(yīng)用一將/ 的 不同值映射至不同QP的等式。在任一情形中, 一旦選定QP,則運(yùn)動(dòng)估計(jì)器40為所 討論的視頻幀執(zhí)行運(yùn)動(dòng)估計(jì)(62)。所述運(yùn)動(dòng)估計(jì)產(chǎn)生用于進(jìn)行跳幀確定所需的運(yùn)動(dòng)信 息。跳幀模塊47使用所述運(yùn)動(dòng)信息和幀的所選QP來(lái)確定所述幀是否是跳幀的較佳候 選者。更具體而言,跳幀模塊可將所述幀載入至經(jīng)分等級(jí)的數(shù)據(jù)結(jié)構(gòu)50,以基于其運(yùn) 動(dòng)而相對(duì)于其他近期幀將當(dāng)前幀分等級(jí),其中所述數(shù)據(jù)結(jié)構(gòu)包含視頻序列的近期歷史 中的許多其他幀。隨后,可使用QP確定百分比閾值。跳幀模塊47考慮所述視頻幀在 數(shù)據(jù)結(jié)構(gòu)50內(nèi)的等級(jí)來(lái)應(yīng)用表格1,以確定跳幀是否應(yīng)發(fā)生(63)。如果跳過(guò)所述幀 (63的"是"分支'),則所述過(guò)程針對(duì)序列中的下一幀而重復(fù)(65)。'如果否(63的"否" 分支),則(例如)通過(guò)對(duì)所述幀應(yīng)用運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償來(lái)對(duì)所述幀編碼。出于更有 效實(shí)施的目的,可存儲(chǔ)在步驟62中所執(zhí)行的運(yùn)動(dòng)估計(jì)的結(jié)果,以使得無(wú)需在編碼步驟 64中重復(fù)運(yùn)動(dòng)估計(jì)。然而,如果跳過(guò)所述幀,則在步驟62中執(zhí)行的運(yùn)動(dòng)估計(jì)不用于 任何編碼。所述步驟可針對(duì)視頻序列的所有幀而重復(fù)(65)。圖5是圖解說(shuō)明其中結(jié)合基于QP的速率控制來(lái)使用自適應(yīng)跳幀的實(shí)施例的另一 流程圖。然而,在圖5所示實(shí)例中,用于做出跳幀確定的運(yùn)動(dòng)信息是與所討論的視頻 幀之前的一個(gè)幀相關(guān)聯(lián)的平均運(yùn)動(dòng)向量長(zhǎng)度。這意指無(wú)需參照所討論的當(dāng)前視頻幀來(lái) 執(zhí)行運(yùn)動(dòng)估計(jì)以做出跳幀確定。相反,在前一幀的編碼期間執(zhí)行的前一運(yùn)動(dòng)估計(jì)可將 可能與當(dāng)前幀相關(guān)聯(lián)的運(yùn)動(dòng)活動(dòng)性界定為一近似值。如圖5中顯示,速率控制單元46的QP速率控制模塊45執(zhí)行速率控制(71),以 計(jì)算所討論的視頻幀的QP。此外,在某些情形中,QP速率控制模塊45可自本地存儲(chǔ) 器37存取/ -QP表格,或可應(yīng)用一將/ 的不同值映射至不同QP的等式。跳幀模塊47 使用運(yùn)動(dòng)信息(在這一情形中,前一視頻幀的平均運(yùn)動(dòng)向量長(zhǎng)度)及當(dāng)前幀的所選QP, 以確定所述幀是否是跳幀的較佳候選者。跳幀模塊可將所述幀載入至經(jīng)分等級(jí)的數(shù)據(jù) 結(jié)構(gòu)50,其中所述數(shù)據(jù)結(jié)構(gòu)包括視頻序列的當(dāng)前歷史中的其他幀?;谂c當(dāng)前幀相關(guān) 聯(lián)的運(yùn)動(dòng)信息,這會(huì)參照幀的近期歷史將所述幀分等級(jí)。此外,在圖5所示實(shí)例中, 與當(dāng)前幀相關(guān)聯(lián)的運(yùn)動(dòng)信息可以是前一幀的平均運(yùn)動(dòng)向量長(zhǎng)度。在這一實(shí)例中,前一 幀可以是緊鄰的前一個(gè),但所述技術(shù)并不限定于此。如果前一幀是緊鄰的前一幀,則 在跳幀之后,所述前一相同幀可用于界定下一幀的運(yùn)動(dòng)信息(在這一點(diǎn)處,使當(dāng)前幀 和前一幀成為分開(kāi)的兩個(gè)幀)。在任一情形中,均可隨后使用QP確定百分比閾值。跳幀模塊47考慮所述視頻幀 在數(shù)據(jù)結(jié)構(gòu)50內(nèi)的等級(jí)而應(yīng)用例如表1等百分比表格,以確定是否應(yīng)發(fā)生跳幀(72)。 如果跳過(guò)所述幀(72的"是"分支),則針對(duì)序列中的下一幀重復(fù)所述過(guò)程(74)。如果 否(72的"否"分支),則(例如)通過(guò)對(duì)所述幀應(yīng)用運(yùn)動(dòng)估計(jì)和運(yùn)動(dòng)補(bǔ)償來(lái)對(duì)所述幀 編碼(73)。應(yīng)注意,在圖5中,如果跳過(guò)所述幀,則可完全避免對(duì)所述幀的運(yùn)動(dòng)估計(jì), 因?yàn)樗鲞\(yùn)動(dòng)信息是基于前一幀的平均運(yùn)動(dòng)向量長(zhǎng)度而導(dǎo)出(估計(jì))的。 一旦將當(dāng)前 幀編碼,則可針對(duì)一視頻序列的所有幀重復(fù)所述過(guò)程(74)。圖6是圖解說(shuō)明其中結(jié)合基于QP的速率控制來(lái)使用自適應(yīng)跳幀的另一實(shí)施例的 另一流程圖。在圖6所示實(shí)例中,類似于圖5所示實(shí)例,用于做出跳幀確定的運(yùn)動(dòng)信 息是與所討論的視頻幀之前的一個(gè)幀相關(guān)聯(lián)的平均運(yùn)動(dòng)向量長(zhǎng)度。然而,不同于圖5 所示技術(shù),在圖6中,當(dāng)跳過(guò)一幀時(shí),參照被跳過(guò)的幀來(lái)執(zhí)行運(yùn)動(dòng)估計(jì),以使用與被 跳過(guò)的幀相關(guān)聯(lián)的運(yùn)動(dòng)信息做出下一幀的跳幀確定。以此方式,用于跳幀確定的運(yùn)動(dòng) 信息可以總是緊鄰的前一幀的平均運(yùn)動(dòng)向量長(zhǎng)度(即使接續(xù)一跳幀)。如圖6中顯示,速率控制單元46的QP速率控制模塊45執(zhí)行速率控制(75),以 計(jì)算所討論的視頻幀的QP。跳幀模塊47使用運(yùn)動(dòng)信息(在這一情形中,緊鄰的前一 視頻幀的平均運(yùn)動(dòng)向量長(zhǎng)度)和當(dāng)前幀的所選QP,以確定所述幀是否是跳幀的較佳候 選者。跳幀模塊47可將所述幀載入至經(jīng)分等級(jí)的數(shù)據(jù)結(jié)構(gòu)50中,所述數(shù)據(jù)結(jié)構(gòu)包括 視頻序列的當(dāng)前歷史中的其他幀?;谂c當(dāng)前幀相關(guān)聯(lián)的運(yùn)動(dòng)信息,這會(huì)參照幀的近 期歷史將所述幀分等級(jí)。此外,在圖6所示實(shí)例中,與當(dāng)前幀相關(guān)聯(lián)的運(yùn)動(dòng)信息可以 是緊鄰的前一幀的平均運(yùn)動(dòng)向量長(zhǎng)度。隨后,可使用QP確定百分比閾值。跳幀模塊47考慮視頻幀在數(shù)據(jù)結(jié)構(gòu)50內(nèi)的 等級(jí)而應(yīng)用例如表l等百分比表格,以確定是否應(yīng)發(fā)生跳幀(76)。如果不跳過(guò)所述幀 (76的"否"分支),則(例如)通過(guò)對(duì)所述幀應(yīng)用運(yùn)動(dòng)估計(jì)、運(yùn)動(dòng)補(bǔ)償和其他編碼技 術(shù)來(lái)對(duì)所述幀編碼(77)。應(yīng)注意,在圖6中,如果跳過(guò)所述幀,則執(zhí)行所述幀的運(yùn)動(dòng) 估計(jì)(79),以允許下一跳幀確定使用被跳過(guò)的幀的平均運(yùn)動(dòng)向量長(zhǎng)度。然而,如果跳 過(guò)所述幀,則可避免為所述幀執(zhí)行例如運(yùn)動(dòng)補(bǔ)償、紋理編碼、去塊濾波或其他編碼步 驟等其他編碼步驟。可針對(duì)視頻序列的所有幀重復(fù)所述過(guò)程(78)。圖7是圖解說(shuō)明用于確定是否跳過(guò)一幀的實(shí)例性技術(shù)的另一流程圖。圖7所示技 術(shù)(例如)可一般對(duì)應(yīng)于圖4所示項(xiàng)目63或圖5所示項(xiàng)目72或圖6所示項(xiàng)目76。如 圖7中顯示,跳幀模塊47基于平均運(yùn)動(dòng)向量長(zhǎng)度(針對(duì)給定幀或基于前一幀的運(yùn)動(dòng)向 量長(zhǎng)度)將視頻幀分等級(jí)(81)。所述分等級(jí)可存儲(chǔ)于類似于表l的表格中,且可構(gòu)成 經(jīng)分等級(jí)幀的滑動(dòng)窗口,其中在考慮及將新幀分等級(jí)時(shí)丟棄最舊的幀。針對(duì)每一給定幀,速率控制模塊47基于空間質(zhì)量來(lái)標(biāo)識(shí)百分比閾值(82)。例如, 可使用所述幀的QP來(lái)評(píng)定空間質(zhì)量,盡管也可替代使用其他技術(shù)用于評(píng)定空間質(zhì)量。 百分比閾值界定關(guān)于所述經(jīng)分等級(jí)的幀的百分比。如果正在考慮的當(dāng)前幀被分等級(jí)為 低于所述閾值的百分比(83的"是"分支),則跳過(guò)所述幀(84)。然而,如果所考慮的 當(dāng)前幀被分等級(jí)為高于所述閾值的百分比(83的"否"分支),則將所述幀編碼(85)。
在分等級(jí)基于運(yùn)動(dòng)信息(其中較低等級(jí)的視頻幀相對(duì)于較高等級(jí)的幀具有較低運(yùn)動(dòng)) 的情況下,所述分等級(jí)計(jì)及時(shí)間質(zhì)量。所述閾值計(jì)及空間質(zhì)量。此外,由于所述分等 級(jí)是相對(duì)于近期幀的,則跳幀決策也是基于給定幀相對(duì)于最近編碼的幀的時(shí)間和空間 質(zhì)量而做出的相對(duì)決策。本文已闡述了多個(gè)實(shí)施例。具體而言,已提議了各種利用自適應(yīng)跳幀的速率控制 技術(shù)。所述技術(shù)可通過(guò)以自適應(yīng)方式確定幀的運(yùn)動(dòng)、量化和可用資源來(lái)確定何時(shí)跳過(guò) 一幀。所述技術(shù)可動(dòng)態(tài)分配一可用位預(yù)算以在時(shí)間和空間質(zhì)量之間折中。與不具有跳 幀的技術(shù)相比,所述技術(shù)可提供極佳的空間質(zhì)量而不損害時(shí)間質(zhì)量。此外,所述技術(shù) 可在維持運(yùn)動(dòng)平滑度和時(shí)間質(zhì)量方面勝過(guò)固定式跳幀,尤其是在高速運(yùn)動(dòng)視頻序列中。 所述技術(shù)可構(gòu)建于硬件、軟件、固件或其任一組合中。如果構(gòu)建于軟件中,則所 述技術(shù)可涉及一種包含程序代碼的計(jì)算機(jī)可讀媒體,所述程序代碼在執(zhí)行于對(duì)視頻序 列進(jìn)行編碼的裝置中時(shí)會(huì)執(zhí)行上文提及的一種或多種方法。于所述情形中,計(jì)算機(jī)可 讀媒體可包括隨機(jī)存取存儲(chǔ)器(RAM),例如同步動(dòng)態(tài)隨機(jī)存取存儲(chǔ)器(SDRAM)、 只讀存儲(chǔ)器(ROM)、非易失性隨機(jī)存取存儲(chǔ)器(NVRAM)、電可擦可編程只讀存儲(chǔ) 器(EEPROM)、 FLASH (快閃)存儲(chǔ)器、及類似存儲(chǔ)器。所述程序代碼可以計(jì)算機(jī)可讀指令形式存儲(chǔ)于存儲(chǔ)器上。在所述情形中,處理器 (例如DSP)可執(zhí)行存儲(chǔ)于存儲(chǔ)器中的指令,以便執(zhí)行本文所述的一種或多種技術(shù)。 在某些情形中,所述技術(shù)可由調(diào)用各種硬件組件以加速編碼過(guò)程的DSP來(lái)執(zhí)行。在其 它情形中,所述視頻編碼器可構(gòu)建為微處理器、一個(gè)或多個(gè)應(yīng)用專用集成電路(ASIC)、 一個(gè)或多個(gè)現(xiàn)場(chǎng)可編程門陣列(FPGA)、或某些其它硬件-軟件組合。然而,可在不背離本揭示內(nèi)容的精神和范疇的前提下對(duì)所述技術(shù)做出各種修改。 例如,出于視頻幀分等級(jí)的目的,其他類型的運(yùn)動(dòng)信息可用于量化與視頻幀相關(guān)聯(lián)的 運(yùn)動(dòng)。此外,閾值可視可用頻寬而以不同方式界定,或可以是自適應(yīng)的。此外,可將 不同閾值用作可用帶寬的函數(shù),以根據(jù)需要使得跳幀的可能性更大或更小。這些及其 他實(shí)施例仍歸屬于以下權(quán)利要求書(shū)的范疇內(nèi)。
權(quán)利要求
1、一種視頻編碼方法,其包括至少部分地基于與視頻序列的視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息來(lái)標(biāo)識(shí)所述視頻序列的一個(gè)或多個(gè)候選視頻幀供用于跳幀;及在所述視頻序列的編碼期間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。
2、 如權(quán)利要求1所述的方法,其中標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀 包括至少部分地基于所述運(yùn)動(dòng)信息將所述視頻序列的視頻幀分等級(jí);及 選擇一個(gè)或多個(gè)低等級(jí)的視頻幀作為所述一個(gè)或多個(gè)候選視頻幀。
3、 如權(quán)利要求2所述的方法,其中所述運(yùn)動(dòng)信息包括所述視頻幀的宏塊的平均 運(yùn)動(dòng)向量長(zhǎng)度。
4、 如權(quán)利要求1所述的方法,其中標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀 包括至少部分地基于與所述一個(gè)或多個(gè)候選視頻幀相關(guān)聯(lián)的宏塊的平均運(yùn)動(dòng)向量長(zhǎng) 度來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀。
5、 如權(quán)利要求1所述的方法,其中標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀 包括至少部分地基于與所述視頻序列中所述一個(gè)或多個(gè)候選視頻幀之前的視頻幀相 關(guān)聯(lián)的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀。
6、 如權(quán)利要求1所述的方法,其中標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀 包括至少部分地基于所述視頻幀的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度,將所述視頻序列的視頻 幀分等級(jí);基于由與所述視頻幀相關(guān)聯(lián)的量化參數(shù)所界定的空間質(zhì)量來(lái)標(biāo)識(shí)所述視頻幀的 每一者的閾值;及基于所述分等級(jí)和所述視頻幀的每一者的閾值來(lái)選擇所述一個(gè)或多個(gè)候選視頻幀。
7、 如權(quán)利要求6所述的方法,其進(jìn)一步包括基于所述視頻序列的前一視頻幀確 定與每一給定視頻幀相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
8、 如權(quán)利要求6所述的方法,其進(jìn)一步包括基于所述給定視頻幀確定與每一給 定視頻幀相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
9、 如權(quán)利要求6所述的方法,其進(jìn)一步包括動(dòng)態(tài)地選擇所述量化參數(shù)以影響所 述視頻編碼的編碼速率。
10、 一種視頻編碼裝置,其包括 編碼器,其對(duì)視頻序列的幀進(jìn)行編碼;及速率控制單元,其至少部分地基于與所述視頻序列的視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息來(lái) 標(biāo)識(shí)所述視頻序列的一個(gè)或多個(gè)候選視頻幀供用于跳幀,并使得所述編碼器在所述視 頻序列的編碼期間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。
11、 如權(quán)利要求10所述的視頻編碼裝置,其中所述速率控制單元通過(guò)以下步驟 來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀至少部分地基于所述運(yùn)動(dòng)信息將所述視頻序列的視頻幀分等級(jí);及選擇一個(gè)或多個(gè)低優(yōu)先級(jí)的視頻幀作為所述一個(gè)或多個(gè)候選視頻幀。
12、 如權(quán)利要求11所述的視頻編碼裝置,其中所述運(yùn)動(dòng)信息包括所述視頻幀的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度。
13、 如權(quán)利要求10所述的視頻編碼裝置,其中所述速率控制單元至少部分地基于與所述一個(gè)或多個(gè)候選視頻幀相關(guān)聯(lián)的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度來(lái)標(biāo)識(shí)所述一個(gè)或 多個(gè)候選視頻幀供用于跳幀。
14、 如權(quán)利要求10所述的視頻編碼裝置,其中所述速率控制單元至少部分地基 于與所述視頻序列中所述一個(gè)或多個(gè)候選視頻幀之前的視頻幀相關(guān)聯(lián)的宏塊的平均運(yùn) 動(dòng)向量長(zhǎng)度來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀。
15、 如權(quán)利要求10所述的視頻編碼裝置,其中所述速率控制單元通過(guò)以下步驟來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀至少部分地基于所述視頻幀的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度將所述視頻序列的視頻幀分等級(jí);基于由與所述視頻幀相關(guān)聯(lián)的量化參數(shù)所界定的空間質(zhì)量來(lái)標(biāo)識(shí)所述視頻幀的 每一者的閾值;及基于所述分等級(jí)和所述視頻幀的每一者的閾值選擇所述一個(gè)或多個(gè)候選視頻幀。
16、 如權(quán)利要求15所述的視頻編碼裝置,其中基于所述視頻序列的前一視頻幀,針對(duì)給定視頻幀確定與所述視頻幀的每一者相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
17、 如權(quán)利要求15所述的視頻編碼裝置,其中基于給定視頻幀,針對(duì)所述給定 視頻幀確定與所述視頻幀的每一者相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
18、 如權(quán)利要求15所述的視頻編碼裝置,其中所述編碼器動(dòng)態(tài)地選擇所述量化 參數(shù)以影響所述視頻編碼的編碼速率。
19、 如權(quán)利要求10所述的視頻編碼裝置,其中所述裝置包括電信手持機(jī)。
20、 一種計(jì)算機(jī)可讀媒體,其包括在執(zhí)行于視頻編碼裝置中時(shí)使得所述裝置執(zhí)行 以下步驟的可執(zhí)行指令至少部分地基于與視頻序列的視頻幀相關(guān)聯(lián)的運(yùn)動(dòng)信息來(lái)標(biāo)識(shí)所述視頻序列的 一個(gè)或多個(gè)候選視頻幀供用于跳幀;及 '在所述視頻序列的編碼期間跳過(guò)所述一個(gè)或多個(gè)候選視頻幀。
21、 如權(quán)利要求20所述的計(jì)算機(jī)可讀媒體,其中所述指令在執(zhí)行時(shí)通過(guò)以下步 驟標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀.-至少部分地基于所述運(yùn)動(dòng)信息將所述視頻序列的視頻幀分等級(jí);及 選擇一個(gè)或多個(gè)低優(yōu)先級(jí)的視頻幀作為所述一個(gè)或多個(gè)候選視頻幀。
22、 如權(quán)利要求21所述的計(jì)算機(jī)可讀媒體,其中所述運(yùn)動(dòng)信息包括所述視頻幀 的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度。
23、 如權(quán)利要求20所述的計(jì)算機(jī)可讀媒體,其中所述指令在執(zhí)行時(shí)至少部分地 基于與所述一個(gè)或多個(gè)候選視頻幀相關(guān)聯(lián)的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度來(lái)標(biāo)識(shí)所述一個(gè) 或多個(gè)候選視頻幀。
24、 如權(quán)利要求20所述的計(jì)算機(jī)可讀媒體,其中所述指令在執(zhí)行時(shí)至少部分地 基于與所述視頻序列中所述一個(gè)或多個(gè)候選視頻幀之前的視頻幀相關(guān)聯(lián)的宏塊的平均 運(yùn)動(dòng)向量長(zhǎng)度來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀。
25、 如權(quán)利要求20所述的計(jì)算機(jī)可讀媒體,其中所述指令在執(zhí)行時(shí)通過(guò)以下步 驟來(lái)標(biāo)識(shí)所述一個(gè)或多個(gè)候選視頻幀供用于跳幀至少部分地基于所述視頻幀的宏塊的平均運(yùn)動(dòng)向量長(zhǎng)度將所述視頻序列的視頻 幀分等級(jí); 基于由與所述視頻幀相關(guān)聯(lián)的量化參數(shù)所界定的空間質(zhì)量來(lái)標(biāo)識(shí)所述視頻幀的 每一者的閾值;及基于所述分等級(jí)和所述視頻幀的每一者的閾值選擇所述一個(gè)或多個(gè)候選視頻幀。
26、 如權(quán)利要求25所述的計(jì)算機(jī)可讀媒體,其中基于所述視頻序列的前一視頻幀,針對(duì)給定視頻幀確定與所述視頻幀的每一者相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
27、 如權(quán)利要求25所述的計(jì)算機(jī)可讀媒體,其中基于給定視頻幀,針對(duì)所述給 定視頻幀確定與所述視頻幀的每一者相關(guān)聯(lián)的給定平均運(yùn)動(dòng)向量長(zhǎng)度。
28、如權(quán)利要求25所述的計(jì)算機(jī)可讀媒體,其中所述指令在執(zhí)行時(shí)動(dòng)態(tài)地選擇 所述量化參數(shù)以影響所述視頻編碼的編碼速率。
29、 一種方法,其包括.-為'視頻序列中的視頻幀產(chǎn)生運(yùn)動(dòng)向量長(zhǎng)度值; 根據(jù)所述視頻幀的相應(yīng)運(yùn)動(dòng)向量長(zhǎng)度值將所述視頻幀分等級(jí); 基于與所述視頻幀相關(guān)聯(lián)的相應(yīng)量化參數(shù)值,為所述視頻幀產(chǎn)生等級(jí)百分比閾 值;及跳過(guò)對(duì)等級(jí)低于所述對(duì)應(yīng)的等級(jí)百分比閾值的一個(gè)或多個(gè)所述視頻幀的編碼。
全文摘要
本發(fā)明涉及用于視頻序列的速率受控視頻編碼的自適應(yīng)跳幀技術(shù)。根據(jù)所揭示的技術(shù),編碼器以相對(duì)于使用常規(guī)跳幀的編碼而言可改進(jìn)經(jīng)編碼序列的視頻質(zhì)量的方式執(zhí)行跳幀。具體而言,所揭示的跳幀方案是自適應(yīng)的,且考慮視頻幀的運(yùn)動(dòng)活動(dòng)性以標(biāo)識(shí)可被跳過(guò)而不犧牲顯著視頻質(zhì)量的某些幀。所述跳幀技術(shù)可顧及不同視頻幀的空間與時(shí)間質(zhì)量之間的折中。以此方式,所述技術(shù)能夠以可改進(jìn)視頻序列的可視外觀的方式在空間與時(shí)間質(zhì)量之間分配有限的資源。
文檔編號(hào)H04N7/26GK101164345SQ200680013747
公開(kāi)日2008年4月16日 申請(qǐng)日期2006年3月1日 優(yōu)先權(quán)日2005年3月1日
發(fā)明者哈立德·希勒米·厄勒-馬列, 毅 梁 申請(qǐng)人:高通股份有限公司