專利名稱:用于視頻運(yùn)動估計(jì)加速器的半像素插值器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像數(shù)據(jù)的壓縮,更具體地,涉及用于運(yùn)動估計(jì)單元中的 半4象素插值的方法和i殳備。
背景技術(shù):
視頻序列由一系列幀構(gòu)成。每個(gè)幀由諸如720x480像素等的像素陣列 表示,并且每個(gè)像素用數(shù)據(jù)值來表示。因此,為了生成每個(gè)幀,使用了大 量的數(shù)據(jù)。
越來越多的視頻產(chǎn)品依賴于視頻壓縮來減少存儲和/或傳輸視頻序列 所需的比特的數(shù)量,僅舉幾個(gè)例子,所述視頻產(chǎn)品諸如DVD播放機(jī)、數(shù) 字電視、個(gè)人錄#^、多媒體點(diǎn)播機(jī)、可視頻的蜂窩電話等。為了改善視 頻數(shù)據(jù)壓縮的效率,可以進(jìn)行運(yùn)動估計(jì)。已經(jīng)證明,運(yùn)動估計(jì)在下述方面 是有效的通過提取在相鄰幀之間的相關(guān)性而利用視頻序列的時(shí)間冗余 性。在幀序列內(nèi),才艮據(jù)被稱為參考幀的前一幀來預(yù)測當(dāng)前幀。當(dāng)前幀通常 被劃分為多個(gè)塊或者宏塊。宏塊的大小通常是16x16像素,但是,宏塊的 大小可以依賴于所使用的壓縮標(biāo)準(zhǔn)而變化。通過利用指定的誤差準(zhǔn)則,將 當(dāng)前幀內(nèi)的每個(gè)宏塊與參考幀內(nèi)的相同大小的區(qū)域相比較,以便定位最佳 匹配的宏塊。使用運(yùn)動向量來表示參考幀內(nèi)的宏塊與當(dāng)前幀內(nèi)的匹配宏塊 之間的位移。
為了滿足對可視通信應(yīng)用的需求,已經(jīng)開發(fā)了許多視頻壓縮標(biāo)準(zhǔn)。運(yùn) 動估計(jì)是許多視頻壓縮方案的核心部分。MPEG-4部分10/H.264視頻編 碼標(biāo)準(zhǔn)的關(guān)鍵部分要求編碼器產(chǎn)生運(yùn)動向量,以表示兩個(gè)或者更多個(gè)幀 之間的運(yùn)動。該標(biāo)準(zhǔn)允許編碼器以一半或者四分之一^象素的精度來產(chǎn)生運(yùn) 動向量,其中,通it^現(xiàn)有的整數(shù)值的插值濾波來產(chǎn)生子像素值。該濾波 過程被稱為子像素插值,是極其計(jì)算密集和存儲密集的,但是,其對于獲 得高質(zhì)量編碼是關(guān)鍵的。以硬件來執(zhí)行任務(wù)要求在循環(huán)計(jì)數(shù)與大的幀尺 寸、功耗、電路復(fù)雜度、芯片面積和存儲器帶寬之間進(jìn)行權(quán)衡,所述循環(huán) 計(jì)數(shù)必須足夠低,以支持低的時(shí)鐘頻率。
因此,需要改進(jìn)的用于子像素插值的方法和設(shè)備。
發(fā)明內(nèi)容
根據(jù)本發(fā)明的第一方面,提供了 一種用于在具有l(wèi)象素行和列的像素陣
列中進(jìn)行像素插值的設(shè)備。所述設(shè)備包括移位寄存器陣列,用于將像素 陣列的像素值移位,所述移位寄存器陣列包括兩個(gè)或者更多個(gè)移位寄存 器;插值濾波器陣列,與所述移位寄存器陣列互連,所述插值濾波器陣列 包括一個(gè)或更多個(gè)插值濾波器;以及控制器,被配置成在第一模式下向相 應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的列中的像素 值,并且被配置成在第二模式下向相應(yīng)的插值濾波器提供來自所述移位寄 存器陣列的像素陣列的行中的像素值。
在一些實(shí)施例內(nèi),所述控制器被配置成在第一模式下向相應(yīng)的插值濾 波器提供所述像素陣列的列中的整數(shù)像素值,以產(chǎn)生垂直子像素值,并且 被配置成在第二模式下向相應(yīng)的插值濾波器提供所述像素陣列的行中的 整數(shù)像素值,以產(chǎn)生水平子像素值。所述控制器可以被配置成在第二模式 下向相應(yīng)的插值濾波器提供垂直子像素值,以產(chǎn)生對角線子像素值。
所述控制器可以被配置成在第一階段中順序通過(sequence through)像素陣列,以產(chǎn)生垂直子像素值,在第二階段中順序通過像素 陣列,以產(chǎn)生水平子像素值,并且在第三階段中順序通過垂直子像素值, 以產(chǎn)生對角線子像素值。
根據(jù)本發(fā)明的第二方面,提供了一種在具有像素行和列的像素陣列中 插值《象素的方法。所述方法包括4C供包括兩個(gè)或者更多個(gè)移位寄存器的 移位寄存器陣列及與所述移位寄存器陣列互連的插值濾波器陣列,所述插 值濾波器陣列包括一個(gè)或更多個(gè)插值濾波器;通過所述移位寄存器陣列中 的移位寄存器將所述像素陣列的像素值移位;在第一模式下向相應(yīng)的插值 濾波器提供來自所述移位寄存器陣列的《象素陣列的列中的〗象素值,以產(chǎn)生 垂直子像素值,并且,在第二模式下向相應(yīng)的插值濾波器提供來自所述移 位寄存器陣列的像素陣列的行中的像素值,以產(chǎn)生水平子像素值。
根據(jù)本發(fā)明的第三方面,提供了 一種用于對具有數(shù)據(jù)值的行和列的數(shù) 據(jù)陣列中的數(shù)據(jù)值進(jìn)行濾波的設(shè)備。所述設(shè)備包括移位寄存器陣列,用 于將所述數(shù)據(jù)陣列的數(shù)據(jù)值移位;至少一個(gè)數(shù)字濾波器,與所述移位寄存 器陣列互連;以及控制器,用于在第一模式下向數(shù)字濾波器提供來自所述
移位寄存器陣列的數(shù)據(jù)陣列的列中的數(shù)據(jù)值,并且被配置成在第二模式下 向數(shù)字濾波器提供所述移位寄存器陣列的數(shù)據(jù)陣列的行中的數(shù)據(jù)值。
為了更好地理解本發(fā)明,現(xiàn)在參見附圖,這些附圖通過引用而合并于
此,其中
圖1是示出根據(jù)本發(fā)明的實(shí)施例的半像素插值的一部分圖像的示意
圖2是根據(jù)本發(fā)明一實(shí)施例的半像素插值模塊的示意框圖3是圖2中所示的半〗象素插值器的示意框圖4是圖3中所示的插值濾波器陣列的示意框圖5是圖3中所示的移位寄存器陣列的示意框圖6A是示出像素陣列的9x6像素塊內(nèi)的像素值的一個(gè)示例的示意
圖6B-6G是示出將圖6A中的像素值裝載到圖3的半像素插值器中的 示意圖7是示出根據(jù)本發(fā)明一實(shí)施例的垂直半像素插值的過程的流程圖; 圖8是示出根據(jù)本發(fā)明一實(shí)施例的7jc平半像素插值的過程的流程圖9是示出根據(jù)本發(fā)明一實(shí)施例的對角線半像素插值的過程的流程
圖IOA是根據(jù)本發(fā)明的實(shí)施例的二維數(shù)字濾波器的示意框圖;以及 圖IOB是圖10A的數(shù)字濾波器的級的示意框圖。
具體實(shí)施例方式
圖1中示出了像素陣列10中的幾個(gè)像素的示意圖。像素陣列10由排 列在具有行和列的陣列中的整數(shù)〗象素12構(gòu)成。為了 ^L明的目的,圖1中 放大了像素之間的間隔。完整的像素陣列可以具有任何數(shù)量的像素,并且 可以表示圖像的一部分或者整個(gè)圖像。在一個(gè)實(shí)施例中,對像素陣列的 24x24 4象素塊進(jìn)行處理,以產(chǎn)生用于16x16 ^象素塊的半像素。使用24x24
像素塊是為了在16x16像素塊的邊緣附近產(chǎn)生半像素。整數(shù)像素12的每 個(gè)都具有一個(gè)像素值,如8比特的值。
可以利用插值來產(chǎn)生子像素值,如產(chǎn)生半像素值或者四分之一像素 值。在此所述的實(shí)施例涉及半像素值的產(chǎn)生。但是,本發(fā)明不限于半^象素 值的產(chǎn)生。
半像素插值過程在水平對準(zhǔn)的整數(shù)像素12之間產(chǎn)生7jC平半像素20, 而在垂直對準(zhǔn)的整數(shù)像素之間產(chǎn)生垂直半像素22。另外,所述半像素產(chǎn) 生過程可選地可以在連接整數(shù)像素的每個(gè)2x2組的對角線26的相交處產(chǎn) 生對角線半像素24。通過對附近像素的插值來產(chǎn)生半像素。H,264視頻編 碼標(biāo)準(zhǔn)規(guī)定通過使用具有規(guī)定的濾波器系數(shù)的6抽頭的插值濾波器來產(chǎn) 生水平半像素和垂直半l象素。如下所述,可以通過對附近的垂直半像素的 插值來產(chǎn)生對角線半〗象素。在6抽頭的插值濾波器的情況下,每個(gè)半l象素 的值基于6個(gè)附近像素的值。
在確定子像素值的過程中,濾波器系數(shù)的值確定了賦予每個(gè)附近像素 的加權(quán)。按照IL264標(biāo)準(zhǔn),以如下的方式來計(jì)算半像素值
z=(A - 5B + 20C + 20D - 5E + F)/32
其中,z是半像素值,
在用于計(jì)算垂直半像素值時(shí),A、 B、 C、 D、 E和F是列中6個(gè)最 接近的整數(shù)像素值,
在用于計(jì)算水平半^象素值時(shí),A、 B、 C、 D、 E和F是行中6個(gè)最 接近的整數(shù)像素值,并且
在用于計(jì)算對角線半像素值時(shí),A、 B、 C、 D、 E和F是行中的6 個(gè)最接近的垂直半像素值。
在這些實(shí)施例內(nèi),通it^J"被計(jì)算的水平半像素的左邊的三個(gè)最接近的
整數(shù)像素和被計(jì)算的水平半像素的右邊的三個(gè)最接近的整數(shù)像素的插值, 來計(jì)算每個(gè)水平半^象素。通iW被計(jì)算的垂直半^象素以上的三個(gè)最接近的
整數(shù)像素和被計(jì)算的垂直半像素以下的三個(gè)最接近的整數(shù)像素的插值,來 計(jì)算每個(gè)垂直半像素。通it^被計(jì)算的對角線半像素的左邊的三個(gè)最接近 的垂直半像素以及被計(jì)算的對角線半像素的右邊的三個(gè)最接近的垂直半 像素的插值,可以計(jì)算每個(gè)對角線半像素。
圖2中示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的半像素插值模塊的框圖。所述
半像素插值模塊可以是實(shí)施于集成電路芯片上的運(yùn)動估計(jì)加速器的一部
分。所述運(yùn)動估計(jì)加速器可以與數(shù)字信號處理器(DSP)或者其他的可編 程處理器(如微控制器單元(MCU)) —起工作,或者可以作為它們的一 部分。所述半像素插值模塊包括半像素插值器40、整數(shù)像素緩沖器42、 垂直半像素緩沖器44、水平半像素緩沖器46、對角線半像素緩沖器48 和控制器50。
半像素插值器40從整數(shù)像素緩沖器42接收整數(shù)像素值,并M垂直 半像素緩沖器44接收垂直半像素值。半像素插值器40產(chǎn)生垂直半像素值 并將垂直半像素值存儲在垂直半〗象素緩沖器44中,產(chǎn)生水平半〗象素并將 水平半像素值存儲在水平半4象素緩沖器46中,并且可產(chǎn)生對角線半4象素 值并可將對角線半像素值存儲在對角線半像素緩沖器48中。如上所述, 可以通過垂直半像素的插值來產(chǎn)生對角線半4象素。因此,將存儲在垂直半 像素緩沖器44中的所計(jì)算的垂直半像素值提供給半像素插值器40的輸 入,用于產(chǎn)生對角線半l象素??刂破?0對半^象素插值器40以;s^緩沖器 42、 44、 46和48進(jìn)行控制,以執(zhí)行半像素的產(chǎn)生,如下所述。
在一個(gè)實(shí)施例中,整數(shù)像素緩沖器42保存24x24的整數(shù)像素值塊, 并且每個(gè)像素值具有8比特。在這個(gè)實(shí)施例內(nèi),垂直半像素緩沖器44的 容量為24x19個(gè)半像素值(每個(gè)半像素值具有16比特),水平半像素緩沖 器46的容量為19x20個(gè)半像素值(每個(gè)半《象素值具有8比特),而對角線 半像素緩沖器48的容量為19x19個(gè)半像素值(每個(gè)半像素值具有8比特)。 可以理解,在不同的應(yīng)用中,可以使用不同的緩沖器大小。
圖3中示出了根據(jù)本發(fā)明一個(gè)實(shí)施例的半像素插值器40的示意框圖。 依賴于所計(jì)算的半像素,輸入緩沖器70從整數(shù)像素緩沖器42 (圖2 )或 者從垂直半像素緩沖器44接收像素值。通過插值濾波器陣列72和移位寄 存器陣列74來執(zhí)^f亍半^象素插值。在圖3的實(shí)施例中,插值濾波器陣列72 包括四個(gè)數(shù)字濾波器F0-F3,所述數(shù)字濾波器中的每個(gè)具有6級S0-S5, 并且移位寄存器陣列74包括9個(gè)移位寄存器R0-R8,所述移位寄存器中 的每個(gè)具有6級S0-S5。每個(gè)數(shù)字濾波器F0-F3可以是FIR (有限脈沖響 應(yīng))插值濾波器??梢悦靼?,這種配置僅僅是示例性的,并非對本發(fā)明的 范圍的限制。
從輸入緩沖器70向移位寄存器陣列74提供像素值,并且像素值在連 續(xù)的時(shí)鐘周期向下移位通過移位寄存器陣列74的各級。移位寄存器陣列 74連接到插值濾波器陣列72,如下所述。在第一或垂直模式,插值濾波器陣列72中的插值濾波器從移位寄存器陣列74中選擇與像素陣列的列對 應(yīng)的像素值。在第二或水平模式,插值濾波器陣列72中的插值濾波器從 移位寄存器陣列74中選擇與像素陣列的行對應(yīng)的像素值。插值濾波器陣 列72執(zhí)行所選像素值的插值,并且向輸出緩沖器76提供半像素值。按照 半像素的類型,半像素值從輸出緩沖器76中被存儲到在圖2所示的半像 素緩沖器44、 46或者48之一。在圖3的實(shí)施例中,輸入緩沖器70具有 9個(gè)寄存器位置[I0:I8,這9個(gè)寄存器位置保存16比特的像素值,而輸出 緩沖器76具有四個(gè)寄存器位置[O0:O3,這四個(gè)寄存器位置保存16比特 的半像素值[O0:O3。
單個(gè)插值濾波器陣列72執(zhí)行垂直半像素的插值、水平半4象素的插值 和對角線半像素的插值。這是通過將移位寄存器陣列74中的移位寄存器 的級連接到插值濾波器陣列72中的插值濾波器的對應(yīng)級而實(shí)現(xiàn)的。如圖 3所示,移位寄存器R0-R3的第一級S0分別連接到插值濾波器F0-F3的 第一級S0;移位寄存器Rl-R4的第二級Sl分別連接到插值濾波器F0-F3 的第二級S1;依此類推。
圖3中,連接通過移位寄存器陣列74中的各級中的數(shù)字來表示。因 此,例如,移位寄存器R0的級S0連接到濾波器F0的級S0;移位寄存 器Rl的級S0連接到濾波器Fl的級0;移位寄存器R2的級0連接到濾 波器F2的級0;且移位寄存器R3的級S0連接到濾波器F3的級S0。類 似地,移位寄存器R5的級S5連接到濾波器F1的級S5;移位寄存器R6 的級S5連接到濾波器Fl的級S5;移位寄存器F7的級S5連接到濾波器 F2的級S5;且移位寄存器R8的級S5連接到濾波器F3的級S5??梢宰?意到,移位寄存器陣列74的各級連接到插值濾波器陣列72的對應(yīng)的各級。 移位寄存器陣列74和插值濾波器陣列72中的"對應(yīng)的各級"具有相同的 級數(shù)。另外,可以注意到,沿移位寄存器陣列74的對角線的各級連接到 插值濾波器的對應(yīng)的各級。該配置允許水平插值和對角線插值,如下所述。 垂直插值分別通過移位寄存器R0-R3的第一級S0和插值濾波器F0-F3的 第一級S0之間的連接來實(shí)現(xiàn)。
圖4示出了梠》據(jù)本發(fā)明一個(gè)實(shí)施例的插值濾波器陣列72的示意框圖。 如圖所示,濾波器陣列72包括四個(gè)插值濾波器F0、 Fl、 F2和F3。每個(gè) 插值濾波器包括6個(gè)抽頭或者級。每個(gè)插值濾波器的每個(gè)級可以包括鎖存 器、加法器、乘法器和多工器,如下所述。在圖4的實(shí)施例中,相乘是通 過比特移位而實(shí)現(xiàn)的,并不使用乘法器。第一級不需要加法器。而且,第
一級中可以省略多工器,原因是,第一M第一和第二工作模式中接iM目 同的輸入。
每個(gè)插值濾波器具有在垂直半像素插值期間使用的第一輸入和在水 平半像素插值和對角線半像素插值期間使用的第二輸入,第一輸入連接到
移位寄存器陣列74中的對應(yīng)的移位寄存器的第一級SO。第二輸入連接到 移位寄存器陣列74中的預(yù)定的移位寄存器中的對應(yīng)的各級。因此,例如, 插值濾波器F0在線100a上接收第一輸入,并在線100a、llla、112a、113a、 114a和115a上接收第二輸入。到濾波器F0的第一級SO的線100a在第 一和第二模式中接^目同的輸入,并且不需要數(shù)據(jù)選擇。
插值濾波器F0的第二級包括鎖存器108、加法器110和多工器111。 加法器110接收前一級的輸出和多工器111的輸出,并將和提供^T貞存器 108。多工器111在線100a上接收來自移位寄存器R0的級S0的第一輸 入,并且在線llla上接收來自移位寄存器Rl的第一級S1的第二輸入。 插值濾波器FO在第二到第六級內(nèi)分別包括多工器lll、 112、 113、 114和 115。根據(jù)工作模式來控制每個(gè)多工器。在第一模式,每個(gè)多工器向插值 濾波器的每級提供線100a上的第一輸入。在第二模式,每個(gè)多工器向移 位寄存器的對應(yīng)的各級提供來自移位寄存器陣列74的像素值。在這個(gè)實(shí) 施例中,通it^提供給加法器110的像素值進(jìn)行比特移位,來實(shí)現(xiàn)每個(gè)像 素值與濾波器系數(shù)的相乘。每個(gè)插值濾波器FO、 Fl、 F2和F3可以具有 相同的結(jié)構(gòu),其中具有適當(dāng)?shù)牟煌妮斎搿?br>
圖5示出了才艮據(jù)本發(fā)明一個(gè)實(shí)施例的移位寄存器陣列74的示意框圖。 移位寄存器陣列74包括移位寄存器R0-R8,每個(gè)移位寄存器具有級 S0-S5。在圖5的實(shí)施例中,移位寄存器陣列74包括9個(gè)移位寄存器。每 個(gè)移位寄存器對應(yīng)于輸入緩沖器70中的各像素值,并且每個(gè)移位寄存器 具有6級,每級對應(yīng)于插值濾波器的各級。如下所述,可以省略未使用的 移位寄存器級。
輸入像素值從輸入緩沖器70被移位到移位寄存器陣列74的第一級 S0中,并且在連續(xù)的時(shí)鐘周期被移位通過每個(gè)移位寄存器的各級。移位 寄存器R0-R3的第一級S0分別連接到插值濾波器F0-F3的第一輸入。所 選擇的移位寄存器Rl-R8的級Sl-S5分別連接到插值濾波器F0-F3的第 二輸入。移位寄存器陣列74中的各移位寄存器的各級按照慣例"級,移 位寄存器]"來標(biāo)注,其中,在這個(gè)實(shí)施例內(nèi),"級"具有從0到5的值, 且"移位寄存器"具有從0到8的值。這樣,第四移位寄存器的第三級就
被標(biāo)注為[2, 3。
虛線140、 142、 144和146所包圍的是耦接到插值濾波器陣列72的 移位寄存器陣列74的各級。虛線140所包圍的各級耦接到插值濾波器F0; 虛線142所包圍的各級耦接到插值濾波器Fl;虛線144所包圍的各^ 接到插值濾波器F2;而虛線146所包圍的各級耦接到插值濾波器F3。因 此,移位寄存器R0的級S0 (級[O, 0)耦接到插值濾波器F0的第一級; 移位寄存器Rl的級Sl (級[l, 1)耦接到在插值濾波器F0的第二級內(nèi) 的多工器111;移位寄存器R2的級S2 (級[2, 2)耦接到插值濾波器F0 的第三級內(nèi)的多工器112;移位寄存器R3的級S3 (級[3, 3])耦接到插 值濾波器F0的第四級內(nèi)的多工器113;移位寄存器R4的級S4 (級[4, 4)耦接到插值濾波器F0的第五級內(nèi)的多工器114;而移位寄存器R5的 級S5 (級[5, 5])耦接到插值濾波器F0的第六級內(nèi)的多工器115。虛線 142、 144和146所包圍的移位寄存器級以類似的方式分別連接到插值濾 波器F1-F3。由移位寄存器陣列74提供給插值濾波器陣列72的輸入具有 在像素陣列中水平遞增的效果,雖然所述過程實(shí)際上在所述像素陣列中從 上向下遞增。
圖6A示出了 9x6像素塊的一個(gè)示例,其中在每個(gè)像素位置處示出了 一個(gè)像素值。圖6B-6G示出了在連續(xù)的時(shí)鐘周期上向移位寄存器陣列74 中裝載圖6A的9x6像素塊。對于移位寄存器陣列中的每級,被提供給插 值濾波器F0-F3的像素值用像素值下的標(biāo)記F0-F3來表示。水平半像素值 在第六行像素值被裝栽到移位寄存器陣列74中之后產(chǎn)生。
通過跟蹤圖6A中的一行像素值通過如濾波器F0的所述插值濾波器 之一,即可理解水平插值。在圖6B中,來自圖6A的第一行像素值被裝 載到移位寄存器陣列74的第一級S0中,并且像素值"12"被提供給濾波 器F0的級S0。在圖6C中,第一行像素值被移位到移位寄存器陣列74 的第二級S1,并且像素值"65"被提供給濾波器F0的級Sl。在濾波器 F0的級S1中,根據(jù)濾波器系數(shù)的值對像素值"12"和"65"進(jìn)行組合。 這個(gè)過程持續(xù),直至通過移位寄存器陣列74和濾波器F0-F3中的每個(gè)。 在圖6G中,第一行像素值被移位到移位寄存器陣列74的第六級S5,并 且向?yàn)V波器F0的級S5提供像素值"34"。在6個(gè)時(shí)鐘周期之后,濾波器 F0輸出水平半像素值,該水平半像素值表示圖6A的像素陣列的第一行中 的像素值"12"、 "65"、 "34"、 "14"、 "86"和"34"的插值。在下一個(gè)時(shí) 鐘周期,濾波器F0輸出用于表示圖6A的像素陣列的第二行中最初的6
個(gè)像素值的插值的水平半像素值。因此,在六個(gè)時(shí)鐘周期的初始延遲之后,
濾波器F0在每個(gè)時(shí)鐘周期輸出水平半像素值。
半像素插值模塊將以從前一整數(shù)搜索中產(chǎn)生的運(yùn)動向量為中心的 24x24像素塊作為輸入,并且產(chǎn)生針對隨后的半像素和四分之一像素搜索 的、與化264標(biāo)準(zhǔn)所要求的插值濾波相對應(yīng)的半像素值。IL264標(biāo)準(zhǔn)需要 6抽頭的水平和垂直濾波器用于半〗象素插值。如上所述,所述半l象素插值 模塊使用在水平和垂直模式下工作的四個(gè)插值濾波器,兩個(gè)模式之間的差 別在于(a)裝載到濾波器中的輸入數(shù)據(jù)(即整數(shù)或者半像素?cái)?shù)據(jù)),(b ) 從陣列裝載每個(gè)插值濾波器的方式,以及(c)是否對輸出進(jìn)行了削波處 理。
半像素插值器可由控制器5 (圖2)控制,所述控制器50被實(shí)施為有 限狀態(tài)機(jī),該有限狀態(tài)機(jī)循環(huán)通過三種操作(如下結(jié)合圖7-9所述的), 以產(chǎn)生所有的半像素,包括垂直半像素、水平半《象素和對角線半〗象素(其 對應(yīng)于IL264標(biāo)準(zhǔn)內(nèi)的"j,,個(gè)4象素)。
第一種操作包括垂直地、從上向下地6遍通過24x24像素塊,以產(chǎn)生 垂直半像素。這些半像素是通過向在第一或者垂直模式下配置的插值濾波 器F0、 Fl、 F2和F3中裝載整數(shù)像素?cái)?shù)據(jù)而產(chǎn)生的。在第一模式,每個(gè) 插值濾波器在其第一輸入接收像素?cái)?shù)據(jù)。到每級的輸入是從整數(shù)像素緩沖 器42裝載到輸入緩沖器70中然后裝載到移位寄存器陣列74中的新的一 行的像素?cái)?shù)據(jù)。在6個(gè)周期后,在每個(gè)時(shí)鐘周期產(chǎn)生輸出,且結(jié)果以全分 辨率(16比特)存儲到垂直半像素緩沖器44 (圖2)中。垂直半像素用 于進(jìn)一步的插值(全分辨率),并用于隨后的半像素和四分之一像素搜索 (被截短成8比特)。
半像素插值的第二種操作是以垂直的、從上向下的5遍通過24x24 像素塊而產(chǎn)生水平半像素。每一新行的像素?cái)?shù)據(jù)從整數(shù)像素緩沖器42裝 載到輸入緩沖器70中,然后裝載到移位寄存器陣列74中。輸入緩沖器 70用于向半像素插值器中裝載像素,但是所述插值濾波器被配置成工作 于第二或者水平模式。在第二模式,每個(gè)插值濾波器在其第二輸入接收像 素?cái)?shù)據(jù)。到每個(gè)插值濾波器的第二輸入來自如上所述沿著對角線的移位寄 存器陣列74的對應(yīng)的各級。因?yàn)檫M(jìn)一步的插值不需要水平半像素,所以 每個(gè)濾波操作的最終結(jié)果被截短成8比特,并被存儲在水平半像素緩沖器 46中。
半像素插值的第三種操作是以垂直的、從上向下的5遍通過24x24
像素塊而產(chǎn)生對角線半像素。以類似的方式,對水平半像素執(zhí)行對角線半 像素的產(chǎn)生,不同之處在于,輸入像素?cái)?shù)據(jù)是以全分辨率存儲在垂直半像
素緩沖器44中的先前產(chǎn)生的垂直半像素?cái)?shù)據(jù)。垂直半像素?cái)?shù)據(jù)從垂直半 像素緩沖器44裝載到輸入緩沖器70中,然后裝載到移位寄存器陣列74 中。在這個(gè)操作中,插值濾波器再次被配置成工作于第二或者水平模式。 并且第二輸入是從像素移位寄存器74接收的。結(jié)果被輸出到對角線半像 素緩沖器48,并且被截短成8比特而存儲。
圖7的流程圖中示出了垂直半像素插值的過程的一個(gè)實(shí)施例。在動作 200中,插值濾波器FO、 Fl、 F2和F3被配置成工作于第一或者垂直模 式。在第一模式,各插值濾波器中的多工器從移位寄存器R0-R3的第一 級SO選擇該插值濾波器的第一輸入。在動作202中,整數(shù)像素從整數(shù)像 素緩沖器42裝載到輸入緩沖器70中、從輸入緩沖器70裝載到移位寄存 器R0-R3中、然后從移位寄存器R0-R3裝載到插值濾波器F0-F3中。在 動作204中,插值濾波器在初始延遲后輸出垂直半像素值。在6級插值濾 波器的情況下,輸出是在6個(gè)時(shí)鐘周期的初始延遲后提供的。在動作206 中,確定處理是否已到達(dá)《象素陣列的底部。如果該處理還沒有到達(dá)陣列的 底部,則在動作208中該處理向下遞增一行,并且返回動作202,以裝載 用于像素陣列的下一行的整數(shù)像素。在將包括動作202、 204、 206和208 的循環(huán)執(zhí)行了六次后,在動作204輸出垂直半像素。如果在動作206確定 已經(jīng)到達(dá)陣列的底部,則在動作210中確定是否已經(jīng)處理了整個(gè)陣列。如 果整個(gè)陣列還沒有被處理完,則在動作212中,該處理向陣列的右邊遞增 四列。然后,所述處理返回動作202,以裝載第二組的四列的第一行中的 像素。該處理以這種方式繼續(xù),直到整個(gè)24x24像素塊被處理完。在24x24 像素塊和四個(gè)插值濾波器的情況下,圖7的過程使用了垂直的、從上向下 的6遍。當(dāng)整個(gè)陣列已被處理完時(shí),所述過程在動作214進(jìn)行至水平處理。
可以注意到,在每一組的四列被處理后,動作212涉及向像素陣列的 右邊遞增四列。相對照地,圖3-5示出了了從右向左增加的4象素編號。所 述的明顯的不一致是由于像素值通常被存儲在存儲器中的方式而導(dǎo)致的。 因此,例如,插值濾波器FO處理像素陣列的第一列,插值濾波器F1處 理像素陣列的第二列等。
圖8的流程圖中示出了水平半像素處理的過程的一個(gè)實(shí)施例。在動作 240中,插值濾波器FO、 Fl、 F2和F3被配置成工作于第二或者水平模 式。在第二模式,各插值濾波器中的多工器從移位寄存器陣列74選擇輸
入,如上所述。在動作242中,整數(shù)像素從整數(shù)像素緩沖器42裝載到輸 入緩沖器70中、然后從輸入緩沖器70裝載到移位寄存器陣列74中。具 體地,9個(gè)像素值被裝載到移位寄存器陣列74中的9個(gè)移位寄存器R0-R8 中。移位寄存器陣列74中的像素值被提供給插值濾波器FO、 Fl、 F2和 F3的對應(yīng)的各級,如上所述。在動作244中,插值濾波器在初始延遲后 輸出水平半像素。在6級插值濾波器的情況下,水平半像素是在6個(gè)時(shí)鐘 周期的初始延遲后輸出的。在動作246中,確定是否已經(jīng)到達(dá)像素陣列的 底部。如果還沒有到達(dá)陣列的底部,則在動作248中該處理向下遞增一行, 并返回動作242。在包括動作242、 244、 246和248的循環(huán)已^L執(zhí)行六次 后,在動作244輸出水平半i象素。當(dāng)處理到達(dá)陣列底部時(shí),在動作250 中確定是否已經(jīng)處理了整個(gè)陣列。如果整個(gè)陣列還沒有被處理完,則在動 作252中,該處理向右遞增四列,并且返回動作242,以處理下一組的四 列。所述過程繼續(xù)進(jìn)行,直到處理了整個(gè)24x24像素塊。在24x24像素塊 和四個(gè)插值濾波器的情況下,圖8的過程使用了垂直的、從上向下的5 遍。當(dāng)已經(jīng)處理了整個(gè)陣列時(shí),該過程在動作254進(jìn)行至對角線處理。
圖9的流程圖中示出了對角線半像素產(chǎn)生的過程的一個(gè)實(shí)施例。在動 作270中,插值濾波器被配置成工作于第二或者水平模式。在第二模式, 各插值濾波器中的多工器從移位寄存器陣列74接收輸入,如上所述。在 動作272中,在圖7的過程中產(chǎn)生的垂直半像素從垂直半像素緩沖器44 裝載到輸入緩沖器70中、然后從輸入緩沖器70裝載到移位寄存器陣列 74中。移位寄存器陣列74向插值濾波器F0、 Fl、 F2和F3的相應(yīng)的各 級提供4象素值,如上所述。在動作274中,插值濾波器在初始延遲后輸出 對角線半像素。在6級插值濾波器的情況下,初始延遲是6個(gè)時(shí)鐘周期。 在動作276中,確定是否已經(jīng)到達(dá)像素陣列的底部。如果還沒有到達(dá)像素 陣列的底部,則在動作278中,該處理在陣列中向下遞增一行,并且返回 動作272。在包括動作272、 274、 276和278的循環(huán)已被執(zhí)行六次后,由 插值濾波器輸出對角線半^^素。當(dāng)已經(jīng)到達(dá)陣列的底部時(shí),在動作280 中確定是否已經(jīng)處理了整個(gè)陣列。如果整個(gè)陣列還沒有被處理完,則在動 作282中該處理向右遞增四列,并且返回到動作272。所述過程繼續(xù)進(jìn)行, 直到已經(jīng)處理了整個(gè)24x24像素塊。在24x24像素塊和四個(gè)插值濾波器的 情況下,圖9的過程使用垂直的、從上向下的5遍。在已經(jīng)處理了整個(gè)陣 列后,所述過程在動作284完成。
總之,用于執(zhí)行半像素插值的電路可以使用小數(shù)量的6抽頭的FIR 濾波器,從而使電路面積很小,所述濾波器處理像素陣列的垂直和水平方
向上的像素?cái)?shù)據(jù)。使用四個(gè)專用存儲器,以提供對插值像素值和整數(shù)像素
數(shù)據(jù)的存儲。通過使用四個(gè)FIR濾波器,對于每個(gè)模式,數(shù)據(jù)被裝載在5 個(gè)或者6個(gè)垂直的條中,而不是將輸入的像素陣列以水平的方式逐行地提 供給插值濾波器(這需要24個(gè)濾波器)。使用狀態(tài)機(jī),以控制濾波器的模 式,所述濾波器執(zhí)行垂直插值并存儲全尺寸的結(jié)果,^進(jìn)行水平插值, 然后進(jìn)行對角線半像素插值。盡管所述FIR濾波器的數(shù)量小,但是插值 器僅以734個(gè)循環(huán)即可完成對24x24整數(shù)像素塊的處理。
圖10A的示意框圖內(nèi)示出了用于對數(shù)據(jù)陣列300中的數(shù)據(jù)值進(jìn)行濾 波的設(shè)備??纱鎯υ诖鎯ζ髦械臄?shù)據(jù)陣列300具有數(shù)據(jù)值的行和列,并且 圖10A的濾波i殳^^^^對數(shù)據(jù)陣列的數(shù)據(jù)值的二維濾波。輸入緩沖器302 接收數(shù)據(jù)陣列的行中的數(shù)據(jù)值。所述數(shù)據(jù)值被提供給移位寄存器陣列 310,該移位寄存器陣列310具有移位寄存器320、 321、 322、 323、 324 和325,其中每個(gè)移位寄存器具有6級S0-S5。在連續(xù)的時(shí)鐘周期,成行 的數(shù)據(jù)值向下移位通過移位寄存器陣列310。移位寄存器320-325的預(yù)定 的各級連接到數(shù)字濾波器330,該數(shù)字濾波器330具有級S0-S5。數(shù)字濾 波器330可以被配置為與圖4所示且如上所述的插值濾波器之一對應(yīng)的 FIR濾波器。在第一模式,移位寄存器320的級SO耦接到濾波器330的 各級S0-S5。在第二模式,被標(biāo)注以"x"的移位寄存器320-325的各級連 接到濾波器330的對應(yīng)的各級。
在工作中,在第一模式下對數(shù)據(jù)陣列中的一列或更多列的數(shù)據(jù)值進(jìn)行 處理。然后,濾波器可切換到第二模式,而來自移位寄存器陣列的預(yù)定的 各級的數(shù)據(jù)值被提供給濾波器330,以提供對數(shù)據(jù)值的水平處理。因此, 可以提餘使用單個(gè)數(shù)字濾波器、利用圖10A的設(shè)備來處理數(shù)據(jù)陣列的行 和列中的數(shù)據(jù)值。
圖10B的示意框圖中示出了數(shù)字濾波器級的另一個(gè)實(shí)施例。濾波器 級350包括鎖存器352、加法器354、乘法器356和多工器358。多工器 358在第一或者垂直模式下提供垂直數(shù)據(jù)值V,并在第二或者水平模式下 提供水平數(shù)據(jù)值H,如上所述。乘法器356將所選擇的數(shù)據(jù)值與濾波器系 數(shù)Cn相乘。加法器354將乘法器356的輸出與前一級的輸出組^來, 以提供存儲在鎖存器352中的和。在數(shù)字濾波器的第一級內(nèi),可以省去加 法器354。在可以通過比特移位而實(shí)現(xiàn)與濾波器系數(shù)相乘的情況下,在數(shù) 字濾波器的每級中,可省去乘法器356。
應(yīng)該理解,在此所述的半l象素插值器可以利用不同數(shù)量的插值濾波器
以及每個(gè)插值濾波器中的不同數(shù)量的級來實(shí)現(xiàn)。已經(jīng)發(fā)現(xiàn),四個(gè)插值濾波
器即可提供良好的結(jié)果。選擇6級是基于11.264視頻編碼標(biāo)準(zhǔn)的。但是, 其他標(biāo)準(zhǔn)或者設(shè)計(jì)考慮因素可能要求不同數(shù)量的級。另外,參見圖5,可 以省略移位寄存器R0-R4的在虛線140右下邊的級,因?yàn)樵谒鰧?shí)施例 中不使用這些移位寄存器的輸出。
雖然已經(jīng)將插值處理描述為以垂直的方式多遍通過像素陣列,但是本 發(fā)明不限于此。在其他實(shí)施例中,可以將半《象素插值實(shí)施為以水平的方式 多遍通過像素陣列。另外,可以通過對水平半像素的垂直插值來獲得對角 線半像素。
已經(jīng)描述了本發(fā)明的至少一個(gè)實(shí)施例的幾個(gè)方面,應(yīng)當(dāng)理解,本領(lǐng)域 內(nèi)的普通技術(shù)人員容易認(rèn)識到,可進(jìn)行各種改變、修改和改進(jìn)。這樣的改 變、修改和改進(jìn)旨在作為本公開的一部分,并且旨在處于本發(fā)明的精神和 范圍內(nèi)。因此,上述的說明和附圖僅僅是示例性的。
權(quán)利要求
1.一種用于在具有像素行和列的像素陣列中進(jìn)行像素插值的設(shè)備,包括移位寄存器陣列,用于將所述像素陣列的像素值移位,所述移位寄存器陣列包括兩個(gè)或者更多個(gè)移位寄存器;插值濾波器陣列,與所述移位寄存器陣列互連,所述插值濾波器陣列包括一個(gè)或更多個(gè)插值濾波器;及控制器,被配置成在第一模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的列中的像素值,并且被配置成在第二模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的行中的像素值。
2. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述移位寄存器的M接到所 述插值濾波器的對應(yīng)的級。
3. 根據(jù)權(quán)利要求2所述的設(shè)備,還包括輸入緩沖器,用于保存所述 像素陣列的像素值,所述輸入緩沖器耦接到所述移位寄存器陣列。
4. 根據(jù)權(quán)利要求2所述的設(shè)備,其中所述插值濾波器陣列包括4個(gè) 有限脈沖響應(yīng)FIR插值濾波器,每個(gè)插值濾波器具有6級,并且所述移 位寄存器陣列包括9個(gè)移位寄存器。
5. 根據(jù)權(quán)利要求2所述的設(shè)備,其中所述插值濾波器陣列包括m個(gè) 插值濾波器,其中每個(gè)插值濾波器具有n級,并且其中所述移位寄存器陣 列包括m+n-l個(gè)移位寄存器。
6. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述控制器被配置成在第一模 式下向相應(yīng)的插值濾波器提供所述像素陣列的列中的整數(shù)像素值,以產(chǎn)生 垂直子像素值,并且被配置成在第二模式下向相應(yīng)的插值濾波器提供所述 像素陣列的行中的整數(shù)像素值,以產(chǎn)生水平子《象素值。
7. 根據(jù)權(quán)利要求6所述的設(shè)備,其中所述控制器被進(jìn)一步配置成 在第二模式下向相應(yīng)的插值濾波器提供垂直子^象素值,以產(chǎn)生對角線子傳_素值。
8. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述插值濾波器中的每個(gè)在第 一模式下從所述移位寄存器陣列選擇第一輸入,并且在第二模式下從所述 移位寄存器陣列選擇第二輸入。
9. 根據(jù)權(quán)利要求3所述的設(shè)備,其中所述控制器被配置成在垂直 子像素值的產(chǎn)生期間以及在水平子像素值的產(chǎn)生期間向所述輸入緩沖器 中裝載整數(shù)像素值,并且在對角線子像素值的產(chǎn)生期間向所述輸入緩沖器 內(nèi)中裝載垂直子4象素值。
10. 根據(jù)權(quán)利要求1所述的設(shè)備,其中所述控制器被配置成在第一 階段中順序通過所述像素陣列,以產(chǎn)生垂直子像素值,在第二階段中順序 通過所述像素陣列,以產(chǎn)生水平子像素值,并且在第三階段中順序通過所 述垂直子〗象素值,以產(chǎn)生對角線子像素值。
11. 一種用于在具有像素行和列的像素陣列中進(jìn)行像素插值的方法, 包括提供包括兩個(gè)或者更多個(gè)移位寄存器的移位寄存器陣列及與所述移 位寄存器陣列互連的插值濾波器陣列,所述插值濾波器陣列包括一個(gè)或更 多個(gè)插值濾波器;通過所述移位寄存器陣列中的移位寄存器,將所述像素陣列的像素值 移位;在第一模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的 像素陣列的列中的像素值,以產(chǎn)生垂直子像素值;以及在第二模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的行中的像素值,以產(chǎn)生水平子像素值。
12. 根據(jù)權(quán)利要求11所述的方法,還包括將來自所述移位寄存器 的級的垂直子像素值提供給所述插值濾波器的對應(yīng)的級,以產(chǎn)生對角線子 像素值。
13. 根據(jù)權(quán)利要求11所述的方法,其中提供插值濾波器陣列包括 提供4個(gè)有限脈沖響應(yīng)FIR數(shù)字濾波器,每個(gè)數(shù)字濾波器具有6級,并 且其中提供移位寄存器陣列包括提供9個(gè)移位寄存器。
14. 根據(jù)權(quán)利要求11所述的方法,其中提供來自所述移位寄存器陣 列的像素值包括將來自所述移位寄存器的級的像素值提供給所述插值濾 波器的對應(yīng)的級。
15. 根據(jù)權(quán)利要求12所述的方法,還包括提#^接到所述移位寄 存器陣列的輸入緩沖器,以及在垂直子像素值的產(chǎn)生期間及在水平子l象素 值的產(chǎn)生期間向所述輸入緩沖器中裝載整數(shù)像素值,并且在對角線子像素值的產(chǎn)生期間向所述輸入緩沖器中裝載垂直子像素值。
16. 根據(jù)權(quán)利要求12所述的方法,還包括在第一階段中順序通過 所述像素陣列,以產(chǎn)生垂直子像素值,在第二階段中順序通過所述像素陣 列,以產(chǎn)生水平子像素值,以及在第三階段中順序通過所述垂直子像素值, 以產(chǎn)生對角線子4象素值。
17. —種用于對具有數(shù)據(jù)值的行和列的數(shù)據(jù)陣列中的數(shù)據(jù)值進(jìn)行濾波 的i殳備,包括移位寄存器陣列,用于將所述數(shù)據(jù)陣列的數(shù)據(jù)值移位;至少一個(gè)數(shù)字濾波器,與所述移位寄存器陣列互連;以及控制器,用于在第一模式下向所述數(shù)字濾波器提供來自所述移位寄存 器陣列的數(shù)據(jù)陣列的列中的數(shù)據(jù)值,并在第二模式下向所述數(shù)字濾波器提 供來自所述移位寄存器陣列的數(shù)據(jù)陣列的行中的數(shù)據(jù)值。
18. 根據(jù)權(quán)利要求17所述的設(shè)備,其中所述移位寄存器的級連接到 所述數(shù)字濾波器的對應(yīng)的級。
19. 根據(jù)權(quán)利要求17所述的設(shè)備,其中所述移位寄存器陣列與所述 數(shù)字濾波器互連,以便在第一模式下在連續(xù)的時(shí)鐘周期將所述數(shù)據(jù)陣列的 列中的數(shù)據(jù)值提供給所述數(shù)字濾波器的級。
20. 根據(jù)權(quán)利要求17所述的設(shè)備,其中,所述移位寄存器陣列與所 述數(shù)字濾波器互連,以便在連續(xù)的時(shí)鐘周期將所述數(shù)據(jù)陣列的行中的數(shù)據(jù) 值拔:供給所述數(shù)字濾波器的連續(xù)的級。
全文摘要
提供了用于在具有像素行和列的像素陣列中進(jìn)行像素插值的方法和設(shè)備。所述設(shè)備包括移位寄存器陣列,用于將所述像素陣列的像素值移位,所述移位寄存器陣列包括兩個(gè)或者更多個(gè)移位寄存器;插值濾波器陣列,與所述移位寄存器陣列互連,所述插值濾波器陣列包括一個(gè)或更多個(gè)插值濾波器;及控制器,被配置成在第一模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的列中的像素值,并且被配置成在第二模式下向相應(yīng)的插值濾波器提供來自所述移位寄存器陣列的像素陣列的行中的像素值。所述控制器可被配置成在第二模式下向所述插值濾波器提供來自所述移位寄存器陣列的垂直子像素值,以產(chǎn)生對角線子像素值。
文檔編號H04N7/26GK101374236SQ20081013305
公開日2009年2月25日 申請日期2008年7月8日 優(yōu)先權(quán)日2007年7月9日
發(fā)明者柯 寧, 弗拉迪米爾·伯切夫, 偉 張, 馬克·科克斯, 馬克·霍夫曼 申請人:模擬裝置公司