欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

用于視頻編碼的非整數(shù)像素共享的制作方法

文檔序號:7618560閱讀:159來源:國知局
專利名稱:用于視頻編碼的非整數(shù)像素共享的制作方法
技術(shù)領(lǐng)域
本文公開的內(nèi)容涉及數(shù)字視頻處理,更具體地涉及視頻序列的編碼。
背景技術(shù)
數(shù)字視頻能力可以被結(jié)合到范圍廣泛的設(shè)備中,這些設(shè)備包括數(shù)字電視、數(shù)字直播系統(tǒng)、無線通信設(shè)備、個人數(shù)字助理(PDA)、膝上型計算機、臺式計算機、數(shù)碼相機、數(shù)字記錄設(shè)備、蜂窩式或衛(wèi)星無線電話,等等。數(shù)字視頻設(shè)備在創(chuàng)建、修改、傳輸、存儲、記錄和播放全運動視頻序列方面與傳統(tǒng)的模擬視頻系統(tǒng)相比提供了顯著的改進。
已建立了許多不同的視頻編碼標(biāo)準(zhǔn)用于數(shù)字視頻序列的編碼。例如,運動圖像專家組標(biāo)準(zhǔn)(MPEG)已開發(fā)了包括MPEG-1、MPEG-2和MPEG-4的許多標(biāo)準(zhǔn)。其它標(biāo)準(zhǔn)包括國際電聯(lián)(ITU)H.263標(biāo)準(zhǔn),由Cupertino California的蘋果計算機公司研發(fā)的QuickTimeTM技術(shù),由華盛頓的雷德蒙(Redmond)的微軟公司研發(fā)的WindowTM視頻,英特爾公司研發(fā)的IndeoTM,華盛頓西雅圖的RealNetworks公司的RealVideoTM,以及SuperMac公司研發(fā)的CinepakTM。新標(biāo)準(zhǔn)不斷出現(xiàn)和演進,包括ITUH.264標(biāo)準(zhǔn)和大量專屬標(biāo)準(zhǔn)。
許多視頻編碼標(biāo)準(zhǔn)通過以壓縮方式對數(shù)據(jù)進行編碼,允許來改善視頻序列的傳輸速率。壓縮可降低需要被傳輸?shù)臄?shù)據(jù)總量,以有效地傳輸視頻幀。例如,多數(shù)視頻編碼標(biāo)準(zhǔn)利用設(shè)計的圖形與視頻壓縮技術(shù)方便視頻與圖像在更窄的帶寬上的傳輸,這是與沒有壓縮時占用的帶寬相比較。
例如,MPEG標(biāo)準(zhǔn)以及ITU H.263和ITU H.264標(biāo)準(zhǔn)支持視頻編碼技術(shù),這些技術(shù)利用了連續(xù)視頻幀之間的相似性,這被稱為時間或幀間相關(guān),以提供幀間壓縮。該幀間壓縮技術(shù)通過把視頻幀的基于像素的表示轉(zhuǎn)變?yōu)檫\動表示利用跨越這些幀的數(shù)據(jù)冗余。另外,一些視頻編碼技術(shù)可利用被稱為空間或幀內(nèi)相關(guān)的幀內(nèi)的相似性進一步壓縮視頻幀。
為支持壓縮,數(shù)字視頻設(shè)備典型地包括壓縮數(shù)字視頻序列的編碼器,和對數(shù)字視頻序列解壓縮的解碼器。在許多情況下,編碼器和解碼器形成一個集成的編碼器/解碼器(CODEC),它在幀內(nèi)部的像素塊上操作,這些幀定義了視頻圖像的序列。例如,在MPEG-4標(biāo)準(zhǔn)中,編碼器典型地把要傳輸?shù)囊粋€視頻幀分成“宏塊”,宏塊包含16×16像素陣列。ITU H.264標(biāo)準(zhǔn)支持16×16視頻塊、16×8視頻塊、8×16視頻塊、8×8視頻塊、8×4視頻塊、4×8視頻塊、和4×4視頻塊。
對于視頻幀中的每個視頻塊來說,編碼器尋找一個或多個直接在前的視頻幀(或在后的幀)的類似大小的視頻塊,以識別最相似的視頻塊,這被稱為“最佳預(yù)測”。對當(dāng)前視頻塊與其它幀的視頻塊相比較的過程通常被稱為運動估算。一旦一個視頻塊的“最佳預(yù)測”被識別,編碼器可以對當(dāng)前視頻塊與該最佳預(yù)測之間的差值進行編碼。對當(dāng)前視頻塊與該最佳預(yù)測之間的差值進行編碼的過程包括被稱為運動補償?shù)倪^程。運動補償包括創(chuàng)建差值塊的過程,差值塊表示要被編碼的當(dāng)前視頻塊與最佳預(yù)測之間的差值。運動補償通常指的是利用運動矢量取得最佳預(yù)測塊,然后從一個輸入塊減去最佳預(yù)測的以產(chǎn)生一個差值塊的行為。
在運動補償已創(chuàng)建差值塊之后,一系列另外的編碼步驟被典型地執(zhí)行,以對該差值塊進行編碼。這些另外的編碼步驟可取決于使用的編碼標(biāo)準(zhǔn)。在MPEG4兼容的編碼器中,例如,這些另外的編碼步驟可包括8×8離散余弦變換,然后是標(biāo)量量化(scalar quantization),然后是光柵-Z字形(raster-to-zigzag)重排,然后是行程編碼,然后是霍夫曼編碼。
被編碼的差值塊可以與一個運動矢量一起被傳輸,運動矢量指出來自前面幀的哪個視頻塊用于編碼。解碼器接收該運動矢量和該編碼的差值塊,對收到的信息進行解碼,以重建該視頻序列。
在許多標(biāo)準(zhǔn)中,在運動估算和運動補償過程中也產(chǎn)生半像素值。例如,在MPEG4中,產(chǎn)生半像素值作為兩個相鄰像素之間的平均像素值。該半像素在候選視頻塊中使用,可以形成運動估算過程中識別出的最佳預(yù)測的一部分。相對簡單的2-抽頭(tap)濾波器可用于產(chǎn)生半像素值,因為它們在運動估算和運動補償過程中是需要的。非整數(shù)像素值的產(chǎn)生可提高幀內(nèi)相關(guān)的分辨率,但通常使編碼與解碼過程復(fù)雜化。

發(fā)明內(nèi)容
本公開內(nèi)容描述了視頻編碼技術(shù)和實現(xiàn)這些技術(shù)的視頻編碼設(shè)備。描述的視頻編碼技術(shù)可用于范圍廣泛的各種編碼標(biāo)準(zhǔn),這些標(biāo)準(zhǔn)允許在運動估算和運動補償中使用非整數(shù)像素值。具體地,在運動估算和運動補償中利用了半像素和四分之一像素值的如ITU H.264標(biāo)準(zhǔn)的視頻編碼標(biāo)準(zhǔn)可具體地從本文描述的技術(shù)受益。更普遍地,在給定的維度中,在如垂直或水平方向中的非整數(shù)像素值的產(chǎn)生中指定3-抽頭或更多抽頭的濾波器的任何標(biāo)準(zhǔn),可以從本文描述的技術(shù)受益。這些技術(shù)對于便攜式設(shè)備是特別有用的,其中處理開銷可極大地影響設(shè)備的大小和電池的消耗。
在一個實施例中,本公開內(nèi)容描述了包含運動估算器的一個視頻編碼設(shè)備,運動估算器產(chǎn)生運動估算的非整數(shù)像素值,該運動估算器包括接收至少3個整數(shù)像素值的輸入的一個濾波器。該設(shè)備還包括一個存儲器,它存儲運動估算器產(chǎn)生的非整數(shù)像素值,以及一個運動補償器,它利用存儲的非整數(shù)像素值用于運動補償。例如,為與ITU H.264標(biāo)準(zhǔn)兼容,該運動估算器可利用6-抽頭濾波器產(chǎn)生半像素值,并存儲這些半像素值,以同時在運動估算和運動補償中應(yīng)用。該運動估算器也可利用2-抽頭濾波器產(chǎn)生四分之一像素值,并在運動估算中利用該四分之一像素值,而不為運動補償存儲四分之一像素值。在該情況下,該運動補償器利用運動估算器產(chǎn)生的存儲的半像素值,但利用另一個2-抽頭濾波器重新產(chǎn)生四分之一像素值。在一些情況下,分離的濾波器可對水平和垂直插值兩者實現(xiàn),但任何大型濾波器(3-抽頭或更多抽頭的)的輸出可重新用于運動估算和運動補償。在其它情況下,同樣大型的濾波器可同時用于水平和垂直的插值。但在這些情況下,編碼設(shè)備的時鐘速度可需要被增加。
本文描述的這些和其它技術(shù)可在硬件、軟件、固件或其組合的數(shù)字視頻設(shè)備中應(yīng)用。如果是在軟件中實現(xiàn),這些技術(shù)是針對包括程序代碼的計算機可讀介質(zhì),當(dāng)程序代碼被執(zhí)行時,可運行在此描述的一個或多個編碼技術(shù)。各種實施例的另外的細節(jié)是在附圖和下文的描述中被闡述。其它特點、目標(biāo)和優(yōu)點從本文的描述、附圖和權(quán)利要求中將變得明顯。


圖1是一個框圖,表示一個示例性的系統(tǒng),其中源數(shù)字視頻設(shè)備傳輸視頻數(shù)據(jù)的編碼序列到接收數(shù)字視頻設(shè)備。
圖2是包括視頻編碼器的設(shè)備的一個示例性框圖。
圖3是包括視頻編碼器的設(shè)備的另一個示例性框圖。
圖4是對應(yīng)于4像素×4像素視頻塊的一個位置周圍形成的一個示例性搜索空間的圖。
圖5是包括多列半像素值的一個示例性搜索空間的圖。
圖6是包括多行和多列半像素值的一個示例性搜索空間的圖。
圖7是一個搜索空間和能從該搜索空間產(chǎn)生以支持解碼的各種像素的圖表。
圖8是表示視頻編碼技術(shù)的一個流程圖。
具體實施例方式
圖1是一個框圖,表示一個示例性的系統(tǒng)10,其中源設(shè)備12通過通信鏈路15發(fā)送視頻數(shù)據(jù)的一個編碼序列到接收設(shè)備14。源設(shè)備12和接收設(shè)備14都是數(shù)字視頻設(shè)備。具體地,源設(shè)備12以一個視頻標(biāo)準(zhǔn),如ITUH.264視頻編碼標(biāo)準(zhǔn)對視頻數(shù)據(jù)進行編碼,這樣的標(biāo)準(zhǔn)允許在運動估算和運動補償中有非整數(shù)像素值。系統(tǒng)10實施這些技術(shù),其中非整數(shù)像素值為運動估算和運動補償兩者而產(chǎn)生、存儲和使用。這消除了在運動估算器和運動補償器中對大型濾波器的需要,以產(chǎn)生相同的非整數(shù)像素值。本文描述的技術(shù)使用任何公布的或?qū)贅?biāo)準(zhǔn)都特別有用,這些標(biāo)準(zhǔn)在給定的維度,如垂直或水平插值的非整數(shù)像素值的產(chǎn)生中指定3-抽頭濾波器或更多抽頭濾波器。但是,根據(jù)本公開,較小濾波器(2-抽頭濾波器)產(chǎn)生的任何非整數(shù)像素值當(dāng)在有需要時可產(chǎn)生,不必要為以后的使用而存儲這些值。
通信鏈路15可包括無線鏈路、物理傳輸線路、光纖、如局域網(wǎng)、廣域網(wǎng)或諸如因特網(wǎng)的全球網(wǎng)的分組交換網(wǎng)絡(luò)、公用交換電話網(wǎng)(PSTN),或任何其它能夠傳輸數(shù)據(jù)的通信鏈路。因而,通信鏈路15代表任何合適的通信介質(zhì),或不同網(wǎng)絡(luò)和鏈路的可能的組合,以從源設(shè)備12向接收設(shè)備14傳輸視頻數(shù)據(jù)。
源設(shè)備12可以是能夠編碼和傳輸視頻數(shù)據(jù)的任何數(shù)字視頻設(shè)備。源設(shè)備12可包括存儲數(shù)字視頻序列的視頻存儲器16,對該序列進行編碼的視頻編碼器18和通過通信鏈路15向接收設(shè)備14傳輸編碼序列的發(fā)送器20。視頻編碼器18可包括,例如各種硬件、軟件或固件,或如本文所述的,執(zhí)行可編程軟件模塊以控制視頻編碼技術(shù)的一個或多個數(shù)字信號處理器(DSP)。可提供有關(guān)的存儲器和邏輯電路來支持DSP控制視頻編碼技術(shù)。如將要描述的,視頻編碼器18可以被配置以產(chǎn)生非整數(shù)像素值,可使用產(chǎn)生的非整數(shù)像素值,用于運動估算和運動補償兩者。
源設(shè)備12還可包括一個視頻捕捉設(shè)備23,如攝像機,以捕捉視頻序列,和在存儲器16中存儲捕捉的序列。具體地,視頻捕捉設(shè)備23可包括電荷耦合器件(CCD)、電荷注入器件、光電二極管陣列、互補金屬氧化物半導(dǎo)體(CMOS)器件,或任何能夠捕捉視頻圖像或數(shù)字視頻序列的其它光敏設(shè)備。
如進一步的示例,視頻捕捉設(shè)備23可以是一個視頻轉(zhuǎn)換器,其把來自如電視、卡式錄像機、攝像機、或另一視頻設(shè)備的模擬視頻數(shù)據(jù)轉(zhuǎn)換為數(shù)字視頻數(shù)據(jù)。在一些實施例中,源設(shè)備12可被配置為通過通信鏈路15傳輸實時的視頻序列。在該情況下,接收設(shè)備14可接收實時的視頻序列和把該視頻序列顯示給用戶??商娲?,源設(shè)備12可捕捉和編碼視頻序列,視頻序列可作為視頻數(shù)據(jù)文件,即以非實時的方式發(fā)送給接收設(shè)備14。這樣,源設(shè)備12和接收設(shè)備14可支持這些應(yīng)用,如視頻剪輯回放、視頻郵件、或如在移動無線網(wǎng)絡(luò)上的視頻會議。設(shè)備12和14可包括沒有在圖1中特別示出的各種其它元件。
接收設(shè)備14可采用的接收和解碼視頻數(shù)據(jù)的任何數(shù)字視頻設(shè)備的形式。例如,接收設(shè)備14可包括一個接收器22,例如通過中間鏈路、路由器、其它網(wǎng)絡(luò)設(shè)備等等來從發(fā)送器20接收編碼的數(shù)字視頻序列。接收設(shè)備14還可包括對該序列進行解碼的一個視頻解碼器24,以及把該序列顯示給用戶的一個顯示設(shè)備26。但在一些實施例中,接收設(shè)備14可以不包括集成顯示設(shè)備14。在這樣的情況下,接收設(shè)備14可以作為接收器,對接收的視頻數(shù)據(jù)進行解碼,以驅(qū)動單獨的顯示設(shè)備,如一臺電視或監(jiān)視器。
源設(shè)備12和接收設(shè)備14的示例性設(shè)備可包括位于計算機網(wǎng)絡(luò)上的服務(wù)器、工作站或其它臺式計算設(shè)備,以及如膝上型計算機或個人數(shù)字助理(PDA)的移動計算設(shè)備。其它示例包括如數(shù)字電視的數(shù)字電視廣播衛(wèi)星和接收設(shè)備、數(shù)碼相機、數(shù)碼攝像機或其它數(shù)字記錄設(shè)備、諸如具有視頻能力的移動電話的數(shù)字視頻電話、具有視頻能力的直接雙向通信設(shè)備、其它無線視頻設(shè)備,等等。
在一些情況下,源設(shè)備12和接收設(shè)備14各自包括一個編碼器/解碼器(CODEC)(未示出),以對數(shù)字視頻數(shù)據(jù)進行編碼和解碼。尤其是,源設(shè)備12和接收設(shè)備14都包括發(fā)送器、接收器、以及存儲器和顯示器。下文中列出的許多編碼技術(shù)是在包括編碼器的數(shù)字視頻設(shè)備的背景中被描述的。但應(yīng)理解的是,該編碼器可形成CODEC的一部分。在這一情況下,CODEC可在硬件、軟件、固件、DSP、微處理器、專用集成電路(ASIC)、現(xiàn)場可編程門陣列(FPGA)、單獨的硬件部件或其各種組合中執(zhí)行。另外,本文描述的編碼技術(shù)允許各種數(shù)字濾波器或硬件部件既應(yīng)用于編碼又應(yīng)用于解碼操作。
源設(shè)備12內(nèi)的視頻編碼器18對一系列視頻幀內(nèi)的像素塊進行操作,以對視頻數(shù)據(jù)進行編碼。例如,視頻編碼器18可執(zhí)行運動估算和運動補償技術(shù),其中被傳輸?shù)囊粋€視頻幀被分成多個像素塊(被稱為視頻塊)。為了進行說明,這些視頻塊可包括任何大小的塊,并可在給定的視頻序列中變化。作為一個例子,ITU H.264標(biāo)準(zhǔn)支持16×16視頻塊、16×8視頻塊、8×16視頻塊、8×8視頻塊、8×4視頻塊、4×8視頻塊、和4×4視頻塊。較小的視頻塊可在編碼中提供更好的分辨率,對于包括更高層細節(jié)的視頻幀的定位是特別有用的。而且,如下文所述,視頻編碼器18可被設(shè)計為以管線化方式操作于4×4視頻塊,如有需要,從4×4視頻塊重建較大的視頻塊。
視頻塊中的每個像素可由一個n-位值,如8位來表示,這定義了該像素的可視特征,如顏色和亮度以色度和亮度值來表示。但是因為人類的視覺對亮度的變化比對色度的變化更敏感,因此經(jīng)常只在亮度部分進行運動估算。因此,為了進行運動估算,全部的n-位值可對一個給定的像素的亮度進行量化。但本文的原理不限于該像素的格式,可擴展到使用更簡單的較少位的像素格式或更復(fù)雜的較多位的像素格式。
對于視頻幀中的每個視頻塊,源設(shè)備12的視頻編碼器18通過搜索存儲在存儲器16中的視頻塊來執(zhí)行運動估算,這些視頻塊是已被傳輸?shù)囊粋€或多個在前的視頻幀(或在后的視頻幀),以識別一個相似的視頻塊。在從在前或在后的視頻幀中確定一個“最佳預(yù)測”后,視頻編碼器18執(zhí)行運動補償,以創(chuàng)建指示出當(dāng)前要被編碼的視頻塊與最佳預(yù)測之間的差值的一個差值塊。運動補償通常指的是利用運動矢量取得最佳預(yù)測,以及隨后從一個輸入塊中減去最佳預(yù)測以產(chǎn)生一個差值塊的行為。
在運動補償過程已創(chuàng)建差值塊之后,一系列另外的編碼步驟典型地被執(zhí)行,以對差值塊編碼。這些另外的編碼步驟取決于使用的編碼標(biāo)準(zhǔn)。例如,在MPEG4兼容的編碼器中,另外的編碼步驟可包括一個8×8離散余弦變換,然后是標(biāo)量量化,然后是光柵-Z字形(raster-to-zigzag)重排序,然后是行程編碼,然后是霍夫曼編碼。
一旦被編碼,被編碼的差值塊可與運動矢量一起被傳輸,運動矢量從用于編碼的在前的幀(或在后的幀)識別視頻塊。以該方式,代替將每個幀編碼作為一個獨立圖像,視頻編碼器18對相鄰幀之間的差值進行編碼。這樣的技術(shù)顯著地降低了精確地表示一個視頻序列的每個幀所需的數(shù)據(jù)量。
盡管可以使用運動矢量的其它格式,不過運動矢量可相對于被編碼的視頻塊的左上角定義一個像素位置。在任何情況下,通過利用運動矢量對視頻塊編碼,可極大地降低視頻數(shù)據(jù)流的傳輸所用的帶寬。
在一些情況下,視頻編碼器18除了幀間編碼之外,還支持幀內(nèi)編碼。幀內(nèi)編碼利用了幀內(nèi)部的相似性,這稱為空間或幀內(nèi)相關(guān),以進一步壓縮視頻幀。幀內(nèi)壓縮典型地基于壓縮靜止圖像的紋理編碼,如離散余弦變換(DCT)編碼。幀內(nèi)壓縮常常結(jié)合幀間壓縮來使用,但也可在一些實施中被用作一個替代。
接收設(shè)備14的接收器22可接收編碼的視頻數(shù)據(jù),其形式是運動矢量和表示被編碼的視頻塊與運動估算中使用的最佳預(yù)測之間的編碼差值的編碼差值塊。解碼器24執(zhí)行視頻解碼,來產(chǎn)生通過顯示設(shè)備26顯示給用戶的視頻序列。接收設(shè)備14的解碼器24也可實現(xiàn)為一個編碼器/解碼器(CODEC)。在這一情況下,源設(shè)備12和接收設(shè)備14都能夠?qū)?shù)字視頻序列進行解碼、傳輸、接收和解碼。
根據(jù)本公開內(nèi)容,在視頻編碼過程中從3個或更多輸入像素值以給定的維度(水平或垂直)產(chǎn)生的非整數(shù)像素值可被存儲在視頻編碼器18的本地內(nèi)存上,然后用于運動估算和運動補償兩者。存儲的非整數(shù)像素值可單獨地被緩沖,或分配給任何特定的存儲器位置,只要在有需要時非整數(shù)像素值可被定位和識別。相反,從兩個輸入像素值以給定的維度產(chǎn)生的非整數(shù)像素值不需要對任何大量時間存儲,但如有需要時可為運動估算或運動補償進行一般計算。
圖2是設(shè)備12A的一個示例性的框圖,設(shè)備12A包括視頻編碼器18A。圖2中的設(shè)備12A可對應(yīng)于圖1中的設(shè)備12。如圖2所示,設(shè)備12A包括對視頻序列進行編碼的一個視頻編碼器18A,和在編碼之前與之后存儲視頻序列的一個視頻存儲器16A。設(shè)備12A還可包括發(fā)送被編碼的序列到另一設(shè)備的發(fā)送器20A,以及可能的一視頻捕捉設(shè)備23A,如攝像機,以捕捉視頻序列和在存儲器16A中存儲捕捉的序列。設(shè)備12A的各種元件通過通信總線35A可進行通信上的連接。各種其它的元件,如幀內(nèi)編碼器件、各種濾波器或其它元件也可包括在設(shè)備12A中,但為了簡化,這些器件沒有被具體地示出。
視頻存儲器16A典型地包括一個相對大的存儲空間。例如,視頻存儲器16A可包括動態(tài)隨機存取存儲器(DRAM)或FLASH存儲器。在其它例子中,視頻存儲器16A可包括非易失性存儲器或任何其它數(shù)據(jù)存儲設(shè)備。
視頻編碼器18A包括一個本地內(nèi)存25A,其可包括相對視頻存儲器16A更小、更快的內(nèi)存空間。以示例的方式,本地內(nèi)存25A可包括同步隨機存取存儲器(SRAM)。本地內(nèi)存25A還可包括與視頻編碼器18A的其它部件集成在一起的“片上(on-chip)”存儲器,以在處理器高強度的編碼處理過程中提供非??焖俚臄?shù)據(jù)存取。在給定的視頻幀的編碼過程中,被編碼的當(dāng)前視頻塊可以從視頻存儲器16A加載到本地內(nèi)存25A。定位最佳預(yù)測所用的搜索空間也可從視頻存儲器16A加載到本地內(nèi)存25A。該搜索空間可包括一個或多個在前視頻幀(或在后幀)的像素的子集。選擇的子集可被預(yù)先識別作為最佳預(yù)測識別的一個相似位置,其與被編碼的當(dāng)前視頻塊非常匹配。
在許多視頻標(biāo)準(zhǔn)中,分?jǐn)?shù)像素或非整數(shù)像素在編碼過程中也被考慮。例如,在MPEG-4中,計算半像素值作為兩個相鄰像素之間的平均值。在MPEG-4兼容編碼器中,如有需要,使用具有兩個輸入和一個輸出的較簡單的數(shù)字濾波器可在給定的維度上容易地產(chǎn)生兩個相鄰像素之間的平均值,它通常被稱為2-抽頭數(shù)字濾波器。
通過示例的方式,在簡單的MPEG2或MPEG4情況下,如果插值是同時水平地和垂直地進行的,則在每個維度上可應(yīng)用2-抽頭數(shù)字濾波器??商娲?,在二維上的插值可以當(dāng)作單個的4-抽頭平均濾波器來完成。當(dāng)濾波器在給定維度上指定超過2個輸入時,或用于二維插值而超過5個輸入時,本文所述的技術(shù)將非常有用。
數(shù)字濾波器的抽頭權(quán)重由編碼標(biāo)準(zhǔn)來指定。為支持MPEG-4標(biāo)準(zhǔn),運動估算器26A和運動補償器28A可包括相似的2-抽頭數(shù)字濾波器,其利用下載到本地內(nèi)存25A的搜索空間的整數(shù)像素值,在任何時間為水平和垂直維度產(chǎn)生半像素值。
但是,對于一些更新的標(biāo)準(zhǔn),產(chǎn)生非整數(shù)像素更為復(fù)雜。例如,許多更新的標(biāo)準(zhǔn)指定基于超過這兩個像素的加權(quán)和在給定的維度上產(chǎn)生半像素值。作為一個具體例子,ITU H.264標(biāo)準(zhǔn)規(guī)定同時在水平和垂直維度上計算半像素值作為6個像素之間的加權(quán)平均值。對于分?jǐn)?shù)的水平像素,半像素值的左邊上的3個像素與半像素值的右側(cè)的3個像素類似地被加權(quán)。對于分?jǐn)?shù)的垂直像素,在半像素值的頂部的3個像素與半像素值的底部3個像素相似地被加權(quán)。在這兩種情況下,一般需要具有6個輸入和一個輸出的濾波器(6-抽頭數(shù)字濾波器)來產(chǎn)生半像素值。
另外,ITU H.264標(biāo)準(zhǔn)還規(guī)定1/4像素值的產(chǎn)生,其計算作為一個整數(shù)像素與一個相鄰半像素的平均值。因而,1/4像素值的產(chǎn)生典型地包括使用6-抽頭濾波器,來產(chǎn)生半像素值,然后使用2-抽頭濾波器來產(chǎn)生1/4像素值。許多專屬標(biāo)準(zhǔn)也利用其它的加權(quán)平均規(guī)則用于非整數(shù)像素的產(chǎn)生,這對非整數(shù)像素值的產(chǎn)生增加了很大的復(fù)雜性。
根據(jù)本公開內(nèi)容,在給定維度上從3個或更多輸入像素值產(chǎn)生的非整數(shù)像素值可以作為部分的搜索空間存儲在本地內(nèi)存25A中。存儲的非整數(shù)像素值可被單獨緩存,或分配給任何特定的存儲位置,只要當(dāng)需要時非整數(shù)像素值可被定位和識別。相反,從兩個輸入像素值產(chǎn)生的非整數(shù)像素值不需要被存儲大量時間,而可以在需要時進行通常的計算。
本公開內(nèi)容認識到在大量時間存儲任何非整數(shù)像素值所需要的本地內(nèi)存25A中的另外的存儲空間與對輸入進行濾波和產(chǎn)生非整數(shù)像素值需要的硬件或處理能力之間的權(quán)衡。2-抽頭濾波器在一個維度上執(zhí)行起來非常簡單,因此,在需要時,2-抽頭濾波器可用于視頻編碼器的許多位置,以產(chǎn)生來自兩個輸入的非整數(shù)像素值。然而,在一個維度具有超過3個輸入的濾波器,特別是用于兼容ITU H.264標(biāo)準(zhǔn)的6-抽頭濾波器更為復(fù)雜。當(dāng)需要這些較大的濾波器時,執(zhí)行接收3個或更多輸入的單一濾波器,然后在本地內(nèi)存25A中存儲或緩沖大型濾波器的輸出,以在有需要時在編碼處理中重新使用是更有優(yōu)勢的。
例如,視頻編碼器18A包括一個運動估算器26A和一個運動補償器28A,它們在視頻編碼處理中分別進行運動估算和運動補償。如圖2所示,運動估算器26A與運動補償器28A都各包括一個或多個非整數(shù)像素計算單元32A和36A。非整數(shù)像素計算單元32A與36A可包括一個或多個數(shù)字濾波器。但是,盡管2-抽頭濾波器在非整數(shù)像素計算單元32A和36A中都可被復(fù)制,但任何N抽頭濾波器(其中N代表一個大于或等于3的整數(shù))可只在單元32A與36A之一中被執(zhí)行。具有3個以上輸入的濾波器的輸出可存儲在本地內(nèi)存25A中,以在以后的編碼處理中利用和重新使用。
在一些情況下,分離的濾波器可被實現(xiàn)用于水平和垂直插值兩者,但任何大型濾波器(3-抽頭或更多)的輸出可被重新用于運動估算和運動補償。在其它情況下,同樣的大型濾波器可同時用于水平和垂直插值,大型濾波器的輸出可被存儲,用于運動估算和運動補償兩者。但其它條件下,時鐘速度可需要被增加,因為單個的濾波器同時用于水平和垂直的插值,這可能增加功率消耗。
本地內(nèi)存25A加載有要被編碼的當(dāng)前視頻塊和搜索空間,這包括部分或全部的在幀間編碼中使用的一個或多個不同的視頻幀。運動估算器26A把當(dāng)前視頻塊與搜索空間中的各種視頻塊進行比較,以識別一個最佳預(yù)測。但在一些情況下,用于編碼的一個適當(dāng)匹配可被更快地識別,而不用特別地校驗每個可能的候選者,在該情況下,雖然對有效的視頻編碼已足夠,但適當(dāng)匹配可能實際上不是“最佳”預(yù)測。
運動估算器26A支持利用非整數(shù)像素值的編碼方案。尤其是,非整數(shù)像素計算單元32A可產(chǎn)生非整數(shù)像素值,其把搜索空間擴大到分?jǐn)?shù)的或非整數(shù)像素值。水平非整數(shù)像素值和垂直非整數(shù)像素值都可被產(chǎn)生。從兩個輸入產(chǎn)生的任何非整數(shù)像素值可被使用,然后被丟棄,或在本地內(nèi)存25A中重寫,因為當(dāng)需要時,這些從兩個輸入產(chǎn)生的非整數(shù)像素值可容易地重新產(chǎn)生。然而,從3個或更多的輸入產(chǎn)生的任何非整數(shù)像素值可在本地內(nèi)存25A中被使用和維持,以在編碼處理中隨后使用,因為從3個或更多輸入產(chǎn)生的這些非整數(shù)像素值的產(chǎn)生和重新產(chǎn)生是更加復(fù)雜的。
視頻塊匹配單元34A執(zhí)行要被編碼的當(dāng)前視頻塊與內(nèi)存25A的搜索空間中的候選視頻塊之間的比較,候選視頻塊包括任何包括由非整數(shù)像素計算單元32A產(chǎn)生的非整數(shù)像素值的候選視頻塊。例如,視頻塊匹配單元34A可包括差分處理器,或一個軟件例程,其執(zhí)行差值計算,以識別最佳預(yù)測(或簡單的一個適當(dāng)預(yù)測)。
作為示例,視頻塊匹配單元34A可執(zhí)行SAD技術(shù)(絕對誤差和技術(shù))、SSD技術(shù)(平方差和技術(shù))、或如所希望的其它比較技術(shù)。SAD技術(shù)包括執(zhí)行要被編碼的當(dāng)前視頻塊的像素值和與當(dāng)前視頻塊相比的候選視頻塊的像素值之間的絕對差值計算的任務(wù)。這些絕對差值計算的結(jié)果被相加,即累加,以定義一個差值,指示當(dāng)前視頻塊與候選視頻塊間的差值。對于一個8×8像素圖像塊,可以計算出64個差值并相加,對于16×16的像素宏塊,可計算256個差值并相加。所有計算的全部總和可定義候選視頻塊的差值。
較低的差值一般表示一個候選視頻塊在與產(chǎn)生更高差值,即增加的失真的其它候選視頻塊相比是一個更好的匹配,并因而是,更好的候選者。在一些情況下,當(dāng)累加的差值超過一個定義的閾值時,或當(dāng)一個足夠的匹配在早期被識別時,可以終止這些計算,即使還沒有考慮其它候選的視頻塊。
SSD技術(shù)還包括進行要被編碼的當(dāng)前視頻塊的像素值與候選視頻塊的像素值之間的差值計算的任務(wù)。但在SSD技術(shù)中,差值計算的結(jié)果被平方,然后把平方值相加,即累加,以定義一個差值,指示當(dāng)前視頻塊與當(dāng)前宏塊比較的候選視頻塊之間的差值。可替代地,視頻塊匹配單元34A可利用其它比較技術(shù),如均方誤差(MSE)、歸一化互相關(guān)函數(shù)(NCCF),或其它合適的比較算法。
最后,視頻塊匹配單元34A可識別一個“最佳預(yù)測”,這是與要被編碼的視頻塊最匹配的候選視頻塊。但可以理解的是,在許多情況下,在該最佳預(yù)測之前可以定位一個充分的匹配,在這樣的情況下,該足夠的匹配可用于編碼。在下文描述中,參考了由視頻塊匹配單元34A所識別的“最佳預(yù)測”,但可以理解的是,本公開內(nèi)容不限于該方面,任何足夠的匹配可被利用并可能快于最佳預(yù)測被識別。
在一些實施例中,視頻塊匹配單元34A可以以管線化方式執(zhí)行。例如,視頻塊匹配單元34A可包括一個處理管線,其同時處理一個以上的視頻塊。另外,在一些情況下,處理管線可被設(shè)計為在4像素×4像素上視頻塊上操作,即使要被編碼的視頻塊的大小大于4像素×4像素視頻塊。在該情況下,相鄰組的4像素×4像素候選視頻塊的差值計算可被相加,以表示一個更大的視頻塊的差值計算,如包括兩個4像素×4像素候選塊的一個4像素×8像素視頻塊,包括兩個4像素×4像素候選塊的一個8像素×4像素視頻塊,包括四個4像素×4像素候選塊的一個8像素×8像素視頻塊,包括八個4像素×4像素候選塊的一個8像素×16像素視頻塊,包括八個4像素×4像素候選塊的一個16像素×8像素視頻塊,包括十六個4像素×4像素候選塊的一個16像素×16像素視頻塊,等等。
在任何情況下,一旦一個視頻塊的最佳預(yù)測被視頻塊匹配單元34A所識別,運動補償器28A就創(chuàng)建一個差值塊,表示當(dāng)前視頻塊與最佳預(yù)測之間的差值。視頻塊編碼器39A可進一步對該差值塊編碼,來壓縮該差值塊,并且傳送該編碼的差值塊以沿運動矢量傳輸?shù)搅硪慌_設(shè)備,該運動矢量指出來自搜索空間的哪一個候選視頻塊被用于編碼。因為具體的部件將隨著被支持的特定標(biāo)準(zhǔn)而變化,為了描述的簡化,在運動補償后用于執(zhí)行編碼的另外部件被概括為差值塊編碼器39A。換言之,差值塊編碼器39A可對上述產(chǎn)生的差值塊執(zhí)行一個或多個傳統(tǒng)的編碼技術(shù)。
運動補償器28A包括產(chǎn)生最佳預(yù)測的任何非整數(shù)像素的非整數(shù)像素計算單元36A。但如已列出的,運動補償器28A的非整數(shù)像素計算單元36A只包括一個給定維度的2-抽頭數(shù)字濾波器,一般不包括較大的數(shù)字濾波器,因為運動估算器26A的非整數(shù)像素計算單元32A的任何較大的數(shù)字濾波器的輸出存儲在本地內(nèi)存25A中,以同時用于運動估算和運動補償。因此,可以避免在運動補償器28A中實現(xiàn)給定維度上的要求有3個或更多輸入的數(shù)字濾波器的需求。
差值塊計算單元38A產(chǎn)生一個差值塊,其通常表示當(dāng)前視頻塊與最佳預(yù)測之間的差值。該差值塊還可被稱為“預(yù)測矩陣”或“殘差(residual)”。該差值塊通常是代表最佳預(yù)測與當(dāng)前視頻塊的像素值之間的差值的一個數(shù)值矩陣。即差值塊=最佳預(yù)測的像素值-當(dāng)前視頻塊的像素值視頻塊編碼器39對該差值塊編碼,以壓縮該差值塊,然后編碼的視頻塊傳送到發(fā)送器20A,以傳輸給另一設(shè)備。在一些情況下,編碼的視頻塊可臨時存儲在視頻存儲器16A中,其中這些編碼的視頻塊被累加,然后作為視頻幀流通過發(fā)送器20A發(fā)送。在任何情況下,編碼的視頻塊可采用編碼的差值塊和運動矢量的形式。差值塊代表最佳預(yù)測與當(dāng)前視頻塊的像素值之間的差值。運動矢量識別最佳預(yù)測的位置,無論是在幀內(nèi)還是在該幀產(chǎn)生的分?jǐn)?shù)像素內(nèi)。在不同的視頻標(biāo)準(zhǔn)中,有不同的方式來識別將運動矢量應(yīng)用到的那個幀。例如,在H.264標(biāo)準(zhǔn)中,使用一個參考圖像指數(shù),在MPEG4或MPEG2中,該信息在宏塊報頭信息中攜帶。
圖3是設(shè)備12B的另一個示例性框圖,它包括一個視頻編碼器18B。圖3中的設(shè)備12B可對應(yīng)于圖1中的設(shè)備12,與圖2中的設(shè)備12A相似。圖3中的設(shè)備12B代表一個比圖2中顯示的設(shè)備12A更具體的一個實施例。例如,設(shè)備12B可兼容ITU H.264視頻編碼標(biāo)準(zhǔn)。
如圖3所示,設(shè)備12B包括對視頻序列編碼的一個視頻編碼器18B和在編碼之前和之后存儲視頻序列的視頻存儲器16B。設(shè)備12B還可包括將編碼的序列傳輸?shù)搅硪辉O(shè)備的發(fā)送器20B和可能的視頻捕捉設(shè)備23B,如攝像機,以捕捉視頻序列和在存儲器16B中存儲捕捉的序列。設(shè)備12B的各種元件通過通信總線35B可實現(xiàn)通信上的連接。各種其它元件,如幀內(nèi)編碼器元件、各種濾波器或其它元件也可包含在設(shè)備12B中,但為了敘述的簡化沒有具體示出。
視頻存儲器16B典型地包括一個向?qū)^大的存儲空間。例如,視頻存儲器16B可包括DRAM、FLASH存儲器,可能還有非易失的存儲器或任何其它數(shù)據(jù)存儲設(shè)備。
視頻編碼器18B包括一個本地內(nèi)存25B,內(nèi)存25B可包括比視頻存儲器16B更小、更快的內(nèi)存空間。以示例的方式,本地內(nèi)存25B可包括同步隨機存取存儲器(SRAM)。本地內(nèi)存25B還可包括與視頻編碼器18B的其它部件集成在一起的“片上”存儲器,以在處理器高強度編碼處理過程中提供快速的數(shù)據(jù)存取。在給定視頻幀的編碼過程中,被編碼的當(dāng)前視頻塊可以從視頻存儲器16B加載到本地內(nèi)存25B。
運動估算器26B把當(dāng)前視頻塊與搜索空間中的各種視頻塊比較,以識別一個最佳預(yù)測。運動估算器26B支持利用半像素值和1/4像素值的ITU H.264編碼方案。具體地,非整數(shù)像素計算單元32B可包括半像素插值的6-抽頭濾波器31,和1/4像素插值的2-抽頭濾波器33。水平的半像素與1/4像素值以及垂直的半像素和1/4像素值都可以被產(chǎn)生。
根據(jù)ITU H.264視頻編碼標(biāo)準(zhǔn),6-抽頭濾波器31產(chǎn)生半像素值作為6個連續(xù)像素的加權(quán)平均值。1/4像素值由2-抽頭濾波器33產(chǎn)生,作為一個整數(shù)像素值與一個相鄰的半像素值的平均值。換言之,濾波器的抽頭權(quán)重可以由ITU H.264視頻編碼標(biāo)準(zhǔn)規(guī)定,盡管本公開內(nèi)容不限于這一方面。
在一些情況下,分離的6-抽頭濾波器在同時用于水平與垂直插值的運動估算器26B中實現(xiàn),兩個6-抽頭濾波器的輸出可用于運動估算和運動補償。在其它情況下,同樣的6-抽頭濾波器可同時用于水平與垂直的插值。但在后一情況下,需要增加時鐘速度,這將增加功率消耗。因此,可能更希望運用兩個6-抽頭數(shù)字濾波器,以在運動估算中進行分開的水平與垂直插值,然后,重新利用兩個6-抽頭數(shù)字濾波器的輸出,以在運動補償中進行水平與垂直插值。不管運動估算器26B是實現(xiàn)兩個6-抽頭濾波器水平和垂直的半像素插值,還是使用單個的6-抽頭濾波器同時用于水平與垂直的半像素插值,在運動估算器26B與運動補償器28B的每一個中可執(zhí)行單個的2-抽頭數(shù)字濾波器用于1/4像素插值。但是,也可包含另外的2-抽頭濾波器,以加快處理速度。
無論如何,根據(jù)本公開內(nèi)容,6-抽頭濾波器31的半像素輸出同時可用于運動估算和運動補償。換言之,6-抽頭濾波器31的半像素輸出用于運動估算,然后存儲在內(nèi)存25B中,以用于在運動補償中的后續(xù)使用。相反,2-抽頭濾波器33的1/4像素輸出只用于運動估算,然后被丟棄,或在內(nèi)存25B中重寫。
視頻塊匹配單元34B執(zhí)行要被編碼的當(dāng)前視頻塊與內(nèi)存25B的搜索空間中的候選視頻塊之間的比較,候選視頻塊包括任何包括由非整數(shù)像素計算單元32B產(chǎn)生的1/4或半像素值的候選視頻塊。例如,視頻塊匹配單元34B可包括差分處理器,或一個軟件例程,其執(zhí)行差值計算,以識別最佳預(yù)測(或只是一個充分預(yù)測)。作為示例,視頻塊匹配單元34A可執(zhí)行SAD技術(shù)、SSD技術(shù)、或其它比較技術(shù),如均方誤差(MSE)、歸一化互相關(guān)函數(shù)(NCCF),或其它合適的比較算法。
最后,視頻塊匹配單元34B可識別一個“最佳預(yù)測”,其是與要被編碼的視頻塊最匹配的候選視頻塊。在一些實施例中,視頻塊匹配單元34B可以以管線化方式被執(zhí)行。例如,視頻塊匹配單元34B可包括同時處理一個以上的視頻塊的處理管線。另外,在一些情況下,處理管線可被設(shè)計為在4像素乘以4像素上操作,即使要被編碼的視頻塊大小大于4像素乘以4像素視頻塊。在該管線化實施例中,一旦像素被認為是在管線中,分配給1/4像素存儲的內(nèi)存可被重寫,這可降低所需內(nèi)存的量。當(dāng)然,如本文所概述的,半像素值可被存儲,以便以后使用。
一旦一個視頻塊的一個最佳預(yù)測被視頻匹配單元34B所識別,運動補償器28B可創(chuàng)建一個差值塊,表示當(dāng)前視頻塊與最佳預(yù)測之間的差值。運動補償器28B然后可傳送差值塊到差值塊編碼器39B,編碼器39B執(zhí)行由ITU H.264編碼標(biāo)準(zhǔn)支持的各種另外的編碼。差值塊編碼器39B通過總線35B傳送該編碼的差值塊到發(fā)送器20B,以沿著運動矢量傳輸?shù)搅硪辉O(shè)備,該運動矢量指出哪個視頻塊用于該編碼。
運動補償器28B包括非整數(shù)像素計算單元36B,以產(chǎn)生最佳預(yù)測的任何非整數(shù)像素,它們沒有存儲在本地內(nèi)存25B中。運動補償器28B的非整數(shù)像素計算單元36B只包括產(chǎn)生1/4像素值的一個2-抽頭數(shù)字濾波器37,一般不包括產(chǎn)生半像素值的6-抽頭數(shù)字濾波器,因為運動估算器26B的6-抽頭數(shù)字濾波器31的半像素輸出存儲在本地內(nèi)存25B中,以用于運動估計和運動補償兩者。因此,可避免在運動補償器28B中使用6-抽頭數(shù)字濾波器的需要。同樣,2-抽頭數(shù)字濾波器可非常容易地實現(xiàn),而不需要大的芯片電路面積。相反,6-抽頭數(shù)字濾波器更加復(fù)雜。因此,在給定視頻塊的編碼處理過程中在大量時間緩存6-抽頭數(shù)字濾波器31的半像素輸出所需的另外的存儲空間是值得的,因為這消除了對附加的6-抽頭數(shù)字濾波器的需要。
差值塊計算單元38B產(chǎn)生一個差值塊,它通常代表當(dāng)前視頻塊與最佳預(yù)測之間的差值。同樣,差值塊典型地如下計算差值塊=最佳預(yù)測的像素值-當(dāng)前視頻塊的像素值運動補償器28B發(fā)送差值塊到差值塊編碼器39B,編碼器39B對該差值塊進行編碼和壓縮,并發(fā)送編碼的差值塊到發(fā)送器20B,以傳輸給另一設(shè)備。傳輸?shù)男畔⒖刹扇【幋a差值塊和運動矢量的形式。差值塊代表最佳預(yù)測與當(dāng)前視頻塊的像素值之間的差值。運動矢量識別最佳預(yù)測的位置,無論它是在幀內(nèi),還是在從該幀產(chǎn)生的分?jǐn)?shù)像素內(nèi)。
圖4是對應(yīng)于4像素乘以4像素的視頻塊的一個位置的周圍形成的一個示例性搜索空間40的圖。具體地,搜索空間40可包括一個在前或在后視頻幀的像素。要被編碼的當(dāng)前視頻塊可包括當(dāng)前幀的一個4像素×4像素的視頻塊,它對應(yīng)于搜索空間40的最中心像素42的位置。
圖5是包括多列半像素值的一個示例性搜索空間50的圖。標(biāo)有“Bxx”的像素值對應(yīng)于水平半像素值,如本文所述,可由6-抽頭數(shù)字濾波器產(chǎn)生。例如,像素B00可包括像素A00-A05(圖4)的加權(quán)平均值。濾波器的抽頭權(quán)重可定義給定不同整數(shù)像素的加權(quán),并可由被支持的標(biāo)準(zhǔn)來指定。標(biāo)有“Bxx”的水平半像素值可存儲在本地內(nèi)存中,如本文所述,并重新用于運動估算和運動補償兩者。在不同的應(yīng)用中,實際的存儲方案可以有變化。在一個例子中,在本地內(nèi)存中維持一個水平的緩沖器,以特別地用于存儲水平半像素值,即那些標(biāo)有“Bxx”的。
圖6是包括多行和多列的半像素值的一個示例性搜索空間60的另一個圖示。如本文所述,標(biāo)有“Cxx”的像素值對應(yīng)于垂直的半像素值,并可由運動估算器的6-抽頭數(shù)字濾波器來產(chǎn)生。例如,像素C00可包括像素A02-A52(圖5)的加權(quán)平均值,像素C01可包括像素B00-B05(圖5)的加權(quán)平均值。如本文所述,標(biāo)有“Cxx”的垂直半像素值可存儲在本地內(nèi)存中,并重新用于運動估算和運動補償兩者。但是,在不同的實施中,存儲方案可有變化。在一個例子中,在本地內(nèi)存中維持一個垂直緩沖器,以特別地用于存儲垂直的半像素值,即那些標(biāo)有“Cxx”的。
另外一個緩沖器可為1/4像素值分配,但該緩沖器在體積上更加受限制。1/4像素值可存儲在1/4像素緩沖器中,但在被考慮之后,用其它的1/4像素值重寫。本公開內(nèi)容認識到從芯片應(yīng)用的角度看,與另外的存儲空間相比,2-抽頭數(shù)字濾波器成本較低,否則,需要另外的存儲空間以為給定視頻塊的全部編碼處理而存儲每個產(chǎn)生的1/4像素值。
另外,相同的硬件可同時用于編碼和解碼。解碼方案的強度不大,如有需要時,一般要求產(chǎn)生像素值。根據(jù)本公開內(nèi)容,在運動估算器和運動補償器中使用的同樣的數(shù)字濾波器還可用于解碼,以產(chǎn)生任何非整數(shù)像素值。
圖7是搜索空間70的一個圖示,搜索空間70可用于對4像素×4像素的視頻塊進行解碼。在該情況下,如果任何水平或垂直的像素值需要基于搜索空間70而被產(chǎn)生,則可使用運動估算器的6-抽頭數(shù)字濾波器。一組像素72定義所有的水平像素值,當(dāng)6-抽頭數(shù)字濾波器用于兼容ITUH.264標(biāo)準(zhǔn)時,水平像素值可從搜索空間70產(chǎn)生。如圖所示,像素B00包括像素A00-A05的加權(quán)和,像素B31包括像素A31-A36的加權(quán)和。對應(yīng)于整數(shù)像素的加權(quán)和的垂直半像素值可以以類似方式產(chǎn)生,但為使本文簡化而沒有特別地示出。
同樣,另外的垂直半像素值可從一組像素72產(chǎn)生,以定義另一組像素74。例如,像素C03可包括像素B03-B53的加權(quán)和。如需要,任何1/4像素值可以使用具有整數(shù)像素值和相鄰半像素值的輸入的2-抽頭數(shù)字濾波器類似地產(chǎn)生。例如,在像素A02與A03之間更靠近像素A02的1/4像素值將是A02與B00的平均值。同理,在像素A02與A03之間更靠近像素A03的1/4像素值將是B00與A03的平均值。
重要的是,用于編碼的相同硬件,即6-抽頭數(shù)字濾波器和各種2-抽頭數(shù)字濾波器,可用于產(chǎn)生基于搜索空間70解碼所需的任何輸出,作為輸入。因此,本文所述的編碼技術(shù)是與解碼方案完全一致的,其中同樣的硬件可同時用于編碼和解碼。
圖8是一個示意視頻編碼技術(shù)的流程圖。為了進行說明,將從圖3中的設(shè)備12B的角度描述圖8。視頻編碼技術(shù)可包括圖8中所示的所有步驟,或所示步驟的一個子集。如圖8所示,視頻編碼器18B從視頻存儲器16B加載搜索區(qū)的整數(shù)像素到本地內(nèi)存25B中(81)。然后,視頻塊匹配單元34B可以為整數(shù)視頻塊,即只有整數(shù)像素值的視頻塊,立即開始進行運動估算差值計算(82)。同時,6-抽頭數(shù)字濾波器31基于各種子集的整數(shù)像素的加權(quán)和而產(chǎn)生半像素值(83)。重要的是,視頻編碼器18B存儲產(chǎn)生的半像素值,不僅用于運動估算,而且也用于后面的運動補償(84)。
在這一點上,視頻塊匹配單元34B可對半整數(shù)視頻塊,即包括半整數(shù)像素值的任何視頻塊的運動估算差分計算(85)。2-抽頭數(shù)字濾波器33產(chǎn)生1/4像素值,例如,作為整數(shù)像素值和相鄰半像素值的平均值(86)。1/4像素值可用于運動估算,但不需要被存儲,以便任何后續(xù)使用。視頻塊匹配單元34B可對1/4整數(shù)視頻塊,即包括1/4整數(shù)像素值的任何視頻塊的運動估算差分計算(87)。
一旦每個候選視頻塊,包括半像素塊和1/4像素塊,已經(jīng)與要被編碼的當(dāng)前視頻塊進行了比較,運動估算器26B就識別一個最佳預(yù)測(88)。然而,如上文所述,該公開內(nèi)容還考慮了一個適當(dāng)匹配的使用,它不必須是“最佳”匹配,而是用于有效視頻編碼和壓縮的合適匹配。然后執(zhí)行運動補償。
在運動補償過程中,運動補償器28B使用由6-抽頭濾波器31產(chǎn)生并存儲在本地內(nèi)存25B的半像素值(89)。然而,2-抽頭濾波器37產(chǎn)生運動補償所需的任何四分之一像素值(90)。在該情形下,2-抽頭濾波器37可重新產(chǎn)生至少一些先前由2-抽頭數(shù)字濾波器33產(chǎn)生的四分之一像素值。差值塊計算單元38A產(chǎn)生一個差值塊,例如,表示要被編碼的當(dāng)前視頻塊與最佳預(yù)測視頻塊之間的差值(91)。然后,差值塊可被編碼,并隨運動矢量一起被傳送,該運動矢量識別用于視頻編碼的候選視頻塊的位置。
許多不同實施例已經(jīng)被描述。通過達到本地內(nèi)存空間與用于執(zhí)行非整數(shù)像素計算的硬件之間的一個有效平衡,這些技術(shù)能夠改進視頻編碼。以這些和其它可能的方式,這些技術(shù)可根據(jù)諸如ITU H.264的標(biāo)準(zhǔn)或使用非整數(shù)像素值的任何其它視頻編碼標(biāo)準(zhǔn),包括任何廣泛的多種專屬標(biāo)準(zhǔn),來改進視頻編碼。具體地,當(dāng)在特定維度上的非整數(shù)像素值的產(chǎn)生中視頻編碼標(biāo)準(zhǔn)要求使用3-抽頭濾波器或更大的濾波器時,這些技術(shù)尤其有用。換言之,當(dāng)視頻編碼標(biāo)準(zhǔn)要求使用3-抽頭濾波器或更大的濾波器用于一維插值時,這些技術(shù)尤其有用。如果在2維插值上一個標(biāo)準(zhǔn)可利用5-抽頭濾波器或更大的濾波器來實現(xiàn),則這些技術(shù)也可能是有用的。被支持的給定標(biāo)準(zhǔn)可規(guī)定各種濾波器的抽頭權(quán)重。
這些技術(shù)可在硬件、軟件、固件或任何其組合中來實現(xiàn)。如果以軟件來實現(xiàn),這些技術(shù)可針對包括程序代碼的計算機可讀介質(zhì),當(dāng)在一個對視頻序列進行編碼的設(shè)備中執(zhí)行時,執(zhí)行上文提到的一個或多個方法。在該情形下,計算機可讀介質(zhì)可包括諸如同步動態(tài)隨機存取存儲器(SDRAM)的隨機存取存儲器(RAM)、只讀存儲器(ROM)、非易失性隨機存取存儲器(NVRAM)、電可擦寫可編程只讀存儲器(EEPROM)、閃存,等等。
程序代碼可以以計算機可讀指令的形式存儲在存儲器上。在該情形下,諸如DSP的處理器可執(zhí)行存儲在存儲器中的指令,用于執(zhí)行這里所描述的一個或多個技術(shù)。在一些情形下,這些技術(shù)可由DSP來執(zhí)行,DSP調(diào)用各種硬件組件,如運動估算器,以加速編碼過程。在其它情形下,視頻編碼器可作為微處理器、一個或多個專用集成電路(ASIC)、一個或多個現(xiàn)場可編程門陣列(FPGA)、或一些其它硬件-軟件組合來實現(xiàn)。這些和其它實施例都將包含在所附權(quán)利要求的范圍內(nèi)。
權(quán)利要求
1.一種視頻編碼設(shè)備包括產(chǎn)生用于運動估算的非整數(shù)像素值的運動估算器,該運動估算器包括接收至少3個整數(shù)像素值的輸入的用于一維插值的一個濾波器;存儲由所述運動估算器產(chǎn)生的所述非整數(shù)像素值的存儲器;以及使用存儲的所述非整數(shù)像素值用于運動補償?shù)倪\動補償器。
2.如權(quán)利要求1所述的設(shè)備,其中所述非整數(shù)像素值包括半像素值,和其中所述運動估算器使用所述半像素值為所述運動估算產(chǎn)生四分之一像素值,而不需要為所述運動補償存儲所述四分之一像素值;以及所述運動補償器使用所述半像素值為所述運動補償重新產(chǎn)生所述四分之一像素值。
3.如權(quán)利要求2所述的設(shè)備,其中所述運動估算器包括一個為運動估算和運動補償產(chǎn)生所述半像素值的6-抽頭濾波器,和一個為運動估算產(chǎn)生所述四分之一像素值的2-抽頭濾波器;以及所述運動補償器包括另一個2-抽頭濾波器,以便為運動補償重新產(chǎn)生所述四分之一像素值。
4.如權(quán)利要求2所述的設(shè)備,其中所述運動估算器包括兩個6-抽頭濾波器,其為運動估算和運動補償產(chǎn)生所述半像素值,用于水平和垂直插值,和一個2-抽頭濾波器,其為運動估算產(chǎn)生所述四分之一像素值,用于水平和垂直插值;以及所述運動補償器包括另一個2-抽頭濾波器,它為運動補償重新產(chǎn)生所述四分之一像素值,用于水平和垂直插值。
5.如權(quán)利要求4所述的設(shè)備,其中所述設(shè)備與ITU H.264視頻編碼標(biāo)準(zhǔn)兼容,所述6-抽頭和2-抽頭濾波器的抽頭權(quán)重由所述ITUH.264視頻編碼標(biāo)準(zhǔn)規(guī)定。
6.如權(quán)利要求1所述的設(shè)備,其中所述運動估算器包括一個第二濾波器,它基于所述存儲非整數(shù)像素值為運動估算產(chǎn)生另外的非整數(shù)像素值。
7.如權(quán)利要求6所述的設(shè)備,其中所述運動估算器為運動估算產(chǎn)生所述另外的非整數(shù)像素值,而不需要為運動補償存儲所述另外的非整數(shù)像素值,所述運動補償器包括一個第三濾波器,為運動補償重新產(chǎn)生所述另外的非整數(shù)像素值。
8.如權(quán)利要求1所述的設(shè)備,其中所述設(shè)備在4像素乘以4像素視頻塊上執(zhí)行所述運動估算和運動補償。
9.如權(quán)利要求8所述的設(shè)備,其中所述設(shè)備以管線化方式執(zhí)行所述運動估算和運動補償,為大于所述4像素×4像素子視頻塊的視頻塊產(chǎn)生運動矢量和差分矩陣。
10.如權(quán)利要求1所述的設(shè)備,其中所述設(shè)備包括數(shù)字電視、無線通信設(shè)備、個人數(shù)字助理、膝上型計算機、臺式計算機、數(shù)碼相機、數(shù)字記錄設(shè)備、具有視頻性能的蜂窩式無線電話和具有視頻性能的衛(wèi)星無線電話中的至少一個。
11.如權(quán)利要求1所述的設(shè)備,其中所述存儲器包括一個本地片上存儲器,所述設(shè)備進一步包括通過總線電耦合到所述本地片上存儲器的片外視頻存儲器。
12.如權(quán)利要求1所述的設(shè)備,進一步包括一個發(fā)送器,它發(fā)送被所述運動估算器和所述運動補償器編碼的視頻幀。
13.如權(quán)利要求12所述的設(shè)備,進一步包括一個實時捕捉視頻幀的視頻捕捉設(shè)備,所述運動估算器和所述運動補償器被配置以實時地對所述視頻幀編碼,并且所述發(fā)送器被配置以實時地發(fā)送所述編碼的視頻幀。
14.如權(quán)利要求1所述的設(shè)備,其中所述非整數(shù)像素值的產(chǎn)生包括一個水平或垂直像素插值。
15.一個視頻編碼設(shè)備包括接收至少三個整數(shù)像素值的輸入的第一濾波器,以為運動估算和運動補償產(chǎn)生非整數(shù)像素值;接收所述非整數(shù)像素值的輸入的第二濾波器,以為所述運動估算產(chǎn)生另外的非整數(shù)像素值;以及接收所述非整數(shù)像素值的輸入的第三濾波器,以為所述運動補償產(chǎn)生另外的非整數(shù)像素值。
16.如權(quán)利要求15所述的設(shè)備,其中所述第一濾波器包括一個6-抽頭濾波器,它接收六個整數(shù)像素值的輸入,以為所述運動估算和所述運動補償產(chǎn)生所述非整數(shù)像素值;所述第二濾波器包括一個2-抽頭濾波器,它接收兩個所述非整數(shù)像素值的輸入,以為所述運動估算產(chǎn)生所述另外的非整數(shù)像素值;以及所述第三濾波器包括一個2-抽頭濾波器,它接收兩個所述非整數(shù)像素值的輸入,以為所述運動補償產(chǎn)生所述另外的非整數(shù)像素值。
17.如權(quán)利要求15所述的設(shè)備,其中所述設(shè)備與ITU H.264視頻編碼標(biāo)準(zhǔn)兼容,所述6-抽頭和2-抽頭濾波器的抽頭權(quán)重由所述ITUH.264視頻編碼標(biāo)準(zhǔn)規(guī)定。
18.如權(quán)利要求15所述的設(shè)備,其中所述濾波器產(chǎn)生用于水平插值的所述非整數(shù)像素值。
19.如權(quán)利要求18所述的設(shè)備,進一步包括包括一個6-抽頭濾波器的另一個第一濾波器,它接收六個整數(shù)像素值的輸入,以為所述運動估算和所述運動補償產(chǎn)生非整數(shù)像素值,用于垂直插值;包括一個2-抽頭濾波器的另一個第二濾波器,它接收兩個所述非整數(shù)像素值的輸入,以為所述運動估算產(chǎn)生所述另外的非整數(shù)像素值,用于垂直插值;以及包括一個2-抽頭濾波器的另一個第三濾波器,它接收兩個所述非整數(shù)像素值的輸入,以為所述運動補償產(chǎn)生所述另外的非整數(shù)像素值,用于垂直插值。
20.一種視頻編碼的方法包括使用接收用于水平或垂直插值的至少三個整數(shù)像素值的輸入的一個濾波器,為運動估算產(chǎn)生非整數(shù)像素值;使用用于運動估算的所述非整數(shù)像素值;存儲所述非整數(shù)像素值;以及使用用于運動補償?shù)乃龃鎯Φ姆钦麛?shù)像素值。
21.如權(quán)利要求20所述的方法,其中所述非整數(shù)像素值包括半像素值,該方法進一步包括為所述運動估算產(chǎn)生四分之一像素值,而不需要存儲用于運動補償?shù)乃鏊姆种幌袼刂?;以及為所述運動補償重新產(chǎn)生所述四分之一像素值。
22.如權(quán)利要求21所述的方法,其中產(chǎn)生所述半像素值包括應(yīng)用一個6-抽頭濾波器;以及產(chǎn)生所述四分之一像素值包括應(yīng)用一個2-抽頭濾波器。
23.如權(quán)利要求22所述的方法,其中所述方法與ITU H.264視頻編碼標(biāo)準(zhǔn)兼容,所述6-抽頭和2-抽頭濾波器的抽頭權(quán)重由所述ITUH.264視頻編碼標(biāo)準(zhǔn)規(guī)定。
24.如權(quán)利要求20所述的方法,進一步包括基于所述存儲的非整數(shù)像素值為運動估算產(chǎn)生另外的非整數(shù)像素值。
25.如權(quán)利要求24所述的方法,進一步包括為運動估算產(chǎn)生所述另外的非整數(shù)像素值,而不需要存儲用于運動補償?shù)乃隽硗獾姆钦麛?shù)像素值,和為運動補償重新產(chǎn)生所述另外的非整數(shù)像素值。
26.如權(quán)利要求20所述的方法,進一步包括在4像素×4像素視頻塊上執(zhí)行所述運動估算和所述運動補償。
27.如權(quán)利要求26所述的方法,進一步包括以管線化方式執(zhí)行所述運動估算和所述運動補償,以便為比所述4像素×4像素子視頻塊大的視頻塊產(chǎn)生運動矢量和差分矩陣。
28.一個計算機可讀介質(zhì)包括指令,其執(zhí)行使用接收用于水平或垂直插值的至少三個整數(shù)像素值的輸入的一個濾波器,產(chǎn)生非整數(shù)像素值;使用用于運動估算的所述非整數(shù)像素值;存儲所述非整數(shù)像素值;以及使用用于運動補償?shù)乃龃鎯Φ姆钦麛?shù)像素值。
29.如權(quán)利要求28所述的計算機可讀介質(zhì),其中所述非整數(shù)像素值包括半像素值,所述計算機可讀介質(zhì)進一步包括指令,其執(zhí)行為所述運動估算產(chǎn)生四分之一像素值,而不需要存儲用于運動補償?shù)乃鏊姆种幌袼刂?;和為所述運動補償重新產(chǎn)生所述四分之一像素值。
30.如權(quán)利要求29所述的計算機可讀介質(zhì),其中所述指令執(zhí)行通過應(yīng)用一個6-抽頭濾波器產(chǎn)生所述半像素值;和通過應(yīng)用一個2-抽頭濾波器產(chǎn)生所述四分之一像素值。
31.如權(quán)利要求28所述的計算機可讀介質(zhì),進一步包括在4像素×4像素視頻塊上執(zhí)行所述運動估算和所述運動補償?shù)闹噶睢?br> 32.如權(quán)利要求31所述的計算機可讀介質(zhì),進一步包括以管線化方式執(zhí)行所述運動估算和所述運動補償?shù)闹噶?,以便為比所?像素×4像素子視頻塊大的視頻塊產(chǎn)生運動矢量和差分矩陣。
33.一種裝置包括使用用于垂直或水平插值的至少三個整數(shù)像素值的輸入為運動估算產(chǎn)生非整數(shù)像素值的工具;在運動估算中使用所述非整數(shù)像素值的工具;存儲所述非整數(shù)像素值的工具;以及使用用于運動補償?shù)乃龃鎯Φ姆钦麛?shù)像素值的工具。
34.如權(quán)利要求33所述的裝置,進一步包括使用六個整數(shù)像素值的輸入為所述運動估算產(chǎn)生所述非整數(shù)像素值的工具;使用兩個存儲的非整數(shù)像素值的輸入為所述運動估算產(chǎn)生另外的非整數(shù)像素值的工具;以及使用兩個存儲的非整數(shù)像素值的輸入為所述運動補償產(chǎn)生所述另外的非整數(shù)像素值的工具。
35.一種視頻編碼設(shè)備包括一個運動估算器,它產(chǎn)生用于運動估算的非整數(shù)像素值,該運動估算器包括接收至少5個整數(shù)像素值的輸入的用于兩維插值的一個濾波器;一個存儲器,它存儲所述運動估算器產(chǎn)生的所述非整數(shù)像素值;以及一個運動補償器,它使用所述存儲的所述非整數(shù)像素值用于運動補償。
全文摘要
本發(fā)明公開了視頻編碼技術(shù)和實現(xiàn)這些技術(shù)的視頻編碼設(shè)備。在一個實施例中,本公開內(nèi)容描述了包含運動估算器的一個視頻編碼設(shè)備,運動估算器產(chǎn)生運動估算的非整數(shù)像素值,該運動估算器包括可接收至少3個整數(shù)像素值的輸入的一個濾波器。該視頻編碼設(shè)備還包括一個存儲器,它存儲運動估算器產(chǎn)生的非整數(shù)像素值,以及一個運動補償器,它利用存儲的非整數(shù)像素值用于運動補償。
文檔編號H04N7/26GK1767644SQ20051007207
公開日2006年5月3日 申請日期2005年5月26日 優(yōu)先權(quán)日2004年10月27日
發(fā)明者S·莫洛伊, L·F·黃 申請人:高通股份有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
浦东新区| 韶山市| 炉霍县| 利川市| 大足县| 湄潭县| 诸暨市| 呈贡县| 沙洋县| 元阳县| 临朐县| 黄骅市| 金门县| 永春县| 贵溪市| 拜泉县| 宣城市| 商都县| 新疆| 方山县| 龙南县| 娄烦县| 桃园市| 高州市| 新竹市| 平潭县| 来宾市| 鸡泽县| 宣恩县| 冕宁县| 中山市| 乳源| 昔阳县| 德清县| 恭城| 恩施市| 曲靖市| 台北市| 沽源县| 桂东县| 城口县|