專利名稱:一種幀寬高為非16整數(shù)倍的視頻編碼方法及編碼器的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及 編解碼技術(shù),特別是涉及一種幀寬高為非16整數(shù)倍的視頻編碼方法 及編碼器。
背景技術(shù):
目前流行的視頻編解碼標(biāo)準(zhǔn),如H. 264、MPEG-4等,都是首先將視頻幀按照16x16 像素大小劃分為宏塊,然后以宏塊為單元來進(jìn)行編碼和解碼的。對(duì)于寬和高都為16整數(shù)倍 的視頻幀,可以劃分出16x16的完整宏塊,而對(duì)于寬或高為非16整數(shù)倍的視頻幀,就會(huì)劃分 出不滿足16x16的殘缺宏塊。但是,對(duì)于這種寬或高不是16整數(shù)倍的視頻幀,標(biāo)準(zhǔn)中并沒 有規(guī)定如何處理。針對(duì)上述情況,目前比較常用的處理方法是對(duì)原始視頻幀進(jìn)行擴(kuò)充,將最邊緣的 行或者列的像素值直接復(fù)制到擴(kuò)充區(qū)域,或者全部填0值,從而使劃分出的宏塊都是完整 的16x16宏塊。參照?qǐng)D1,是現(xiàn)有技術(shù)中寬和高為非16整數(shù)倍的視頻幀示意圖。圖中粗實(shí)線表示原始待編碼視頻幀的大小,寬和高分別設(shè)為a和b,由于a和b都 不是16的整數(shù)倍,因此需要對(duì)寬和高都做擴(kuò)充。細(xì)實(shí)線表示擴(kuò)充的大小,分別為al和bl, 要求(a+al) % 16 = 0, (b+bl) % 16 = 0,“ % ”表示除法取整運(yùn)算。細(xì)虛線表示編碼時(shí)將擴(kuò) 充后的視頻幀按16x16塊劃分的結(jié)果,編碼時(shí)按照光柵掃描順序?qū)λ械?6x16的宏塊進(jìn) 行編碼。從圖1可見,擴(kuò)充后的視頻幀共劃分出12個(gè)16x16的宏塊,其中處于邊緣的6個(gè) 宏塊需要進(jìn)行像素值的填充。按照現(xiàn)有的填充方法,可以將原始視頻幀最下邊一行的像素 值重復(fù)拷貝到下面的擴(kuò)充區(qū)域,并將最右邊一列的像素值重復(fù)拷貝到右面的擴(kuò)充區(qū)域;或 者,擴(kuò)充區(qū)域全部填充0。假設(shè)原始視頻幀的下方需要填充8行,視頻幀的右側(cè)也需要填充 8列行,則最下邊一行的像素值要復(fù)制8次,最右邊一列的像素值也要復(fù)制8次。對(duì)于現(xiàn)有的編碼器而言,上述的填充操作是透明的,編碼器并不知道這部分填充 內(nèi)容是無意義的,因此編碼器仍會(huì)按照正常的圖像內(nèi)容來編碼。但是,由于按照上述填充方 法得到的擴(kuò)充區(qū)域內(nèi)容與圖像中的其他內(nèi)容沒有相關(guān)性,因此會(huì)對(duì)編碼效率產(chǎn)生影響,擴(kuò) 充區(qū)域的編碼效率會(huì)很低。
發(fā)明內(nèi)容
本發(fā)明所要解決的技術(shù)問題是提供一種幀寬高為非16整數(shù)倍的視頻編碼方法及 編碼器,以解決現(xiàn)有的編碼器對(duì)寬高為非16整數(shù)倍的視頻幀編碼效率低的問題。為了解決上述問題,本發(fā)明公開了一種幀寬高為非16整數(shù)倍的視頻編碼方法,包 括將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍;將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域;對(duì)填充后的視頻幀進(jìn)行編碼。優(yōu)選的,所述將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并 填充到相應(yīng)的擴(kuò)充區(qū)域,包括針對(duì)原始視頻幀的左側(cè)或右側(cè)擴(kuò)充區(qū)域,從原始視頻幀的左 側(cè)或右側(cè)邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)列值拷貝并填充到左側(cè)或右側(cè)擴(kuò)充區(qū)域。優(yōu)選的,所述將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并 填充到相應(yīng)的擴(kuò)充區(qū)域,包括針對(duì)原始視頻幀的上方或下方擴(kuò)充區(qū)域,從原始視頻幀的上 方或下方邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)行值拷貝并填充到上方或下方擴(kuò)充區(qū)域。優(yōu)選的,所述對(duì)填充后的視頻幀進(jìn)行編碼,包括當(dāng)進(jìn)行幀內(nèi)預(yù)測編碼時(shí),對(duì)于擴(kuò) 充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于 擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子 塊進(jìn)行編碼。優(yōu)選的,所述對(duì)填充后的視頻幀進(jìn)行編碼,包括當(dāng)進(jìn)行幀間預(yù)測編碼時(shí),對(duì)于擴(kuò) 充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于 擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子 塊進(jìn)行編碼。本發(fā)明還提供了一種視頻編碼器,包括填充單元,用于將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍,并 將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū) 域;編碼單元,用于對(duì)填充后的視頻幀進(jìn)行編碼。優(yōu)選的,所述填充單元包括列填充子單元,用于針對(duì)原始視頻幀的左側(cè)或右側(cè)擴(kuò) 充區(qū)域,從原始視頻幀的左側(cè)或右側(cè)邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)列值拷貝并填 充到左側(cè)或右側(cè)擴(kuò)充區(qū)域。優(yōu)選的,所述填充單元還包括行填充子單元,用于針對(duì)原始視頻幀的上方或下方 擴(kuò)充區(qū)域,從原始視頻幀的上方或下方邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)行值拷貝并 填充到上方或下方擴(kuò)充區(qū)域。優(yōu)選的,所述編碼單元包括幀內(nèi)預(yù)測編碼子單元,用于當(dāng)進(jìn)行幀內(nèi)預(yù)測編碼時(shí), 對(duì)于擴(kuò)充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié) 果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形 成完整子塊進(jìn)行編碼。優(yōu)選的,所述編碼單元還包括幀間預(yù)測編碼子單元,用于當(dāng)進(jìn)行幀間預(yù)測編碼 時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼 結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合 形成完整子塊進(jìn)行編碼。與現(xiàn)有技術(shù)相比,本發(fā)明具有以下優(yōu)點(diǎn)首先,本發(fā)明針對(duì)寬或高為非16整數(shù)倍的原始視頻幀編碼時(shí),首先擴(kuò)充為16的整 數(shù)倍,即擴(kuò)充后的視頻幀可以形成16x16的宏塊,然后將原始視頻幀中與擴(kuò)充區(qū)域相鄰的 相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域,再按照H. 264, MPEG-4等標(biāo)準(zhǔn)進(jìn)行編碼。本發(fā)明所述的填充方法,增加了填充內(nèi)容與原始視頻幀內(nèi)容之間的相關(guān)性,因此提 高了編碼效率。其次,本發(fā)明對(duì)擴(kuò)充區(qū)域中能夠形成和不能形成4x4以上的完整子塊分別采用不 同的編碼策略,即對(duì)于能夠形成4x4以上的完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所 述子塊的編碼結(jié)果,而對(duì)于不能形成的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完 整子塊并按照標(biāo)準(zhǔn)進(jìn)行編碼。由于能夠形成4x4以上的子塊無需再做編碼,因此進(jìn)一步提 高了編碼效率。
圖1是現(xiàn)有技術(shù)中寬和高為非16整數(shù)倍的視頻幀填充示意圖;圖2是本發(fā)明實(shí)施例所述一種幀寬高為非16整數(shù)倍的視頻編碼方法流程圖;圖3是本發(fā)明實(shí)施例中寬和高為非16整數(shù)倍的視頻幀填充示意圖;圖4. 1和4. 2是本發(fā)明實(shí)施例中子塊劃分示意圖;圖5是本發(fā)明實(shí)施例所述一種視頻編碼器的結(jié)構(gòu)圖。
具體實(shí)施例方式為使本發(fā)明的上述目的、特征和優(yōu)點(diǎn)能夠更加明顯易懂,下面結(jié)合附圖和具體實(shí) 施方式對(duì)本發(fā)明作進(jìn)一步詳細(xì)的說明。針對(duì)寬或高為非16整數(shù)倍的視頻幀編碼,本發(fā)明提供了一種方法,可以提高編碼 效率,下面通過實(shí)施例進(jìn)行詳細(xì)說明。參照?qǐng)D2,是本發(fā)明實(shí)施例所述一種幀寬高為非16整數(shù)倍的視頻編碼方法流程 圖。步驟201,將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍;如果待編碼的原始視頻幀不能劃分成16x16的完整宏塊,則需要進(jìn)行擴(kuò)充。其中, 如果僅是寬為非16整數(shù)倍,則只對(duì)寬進(jìn)行擴(kuò)充;如果僅是高為非16整數(shù)倍,則只對(duì)高進(jìn)行 擴(kuò)充;如果寬和高都為非16整數(shù)倍,則對(duì)寬和高都做擴(kuò)充。通常,填充是在原始視頻幀的右 側(cè)和下方進(jìn)行,因此以下內(nèi)容將以右側(cè)和下方的填充為例進(jìn)行說明。參照?qǐng)D3所示,是本發(fā)明實(shí)施例中寬和高為非16整數(shù)倍的視頻幀填充示意圖。與 圖1類似,粗實(shí)線表示原始待編碼視頻幀的大小,寬和高也分別設(shè)為a和b,由于a和b都不 是16的整數(shù)倍,因此需要對(duì)寬和高都做擴(kuò)充。擴(kuò)充的范圍如細(xì)實(shí)線所示,分別為al和bl, 滿足(a+al) % 16 = 0, (b+bl) % 16 = 0,其中“ % ”表示除法取整運(yùn)算。擴(kuò)充后的視頻幀 可以劃分出完整的16x16宏塊。此外,本實(shí)施例是對(duì)原始視頻幀的右側(cè)邊緣和下方邊緣進(jìn)行擴(kuò)充,因此圖中擴(kuò)充 的區(qū)域分別位于原始視頻幀的右側(cè)和下方,當(dāng)然也可以對(duì)左側(cè)和上方邊緣進(jìn)行擴(kuò)充。步驟202,將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填 充到相應(yīng)的擴(kuò)充區(qū)域;確定擴(kuò)充范圍之后,就需要對(duì)擴(kuò)充區(qū)域進(jìn)行像素值的填充。本實(shí)施例采用的填充 方法是對(duì)擴(kuò)充區(qū)域填充相同大小的相鄰連續(xù)的行或者列,區(qū)別于現(xiàn)有技術(shù)填充最邊緣的 行或者列。
如圖3示例所示,對(duì)于原始視頻幀的右側(cè)擴(kuò)充區(qū)域,從原始視頻幀的右側(cè)邊緣開 始將與擴(kuò)充區(qū)域相同大小的連續(xù)列值拷貝并填充到右側(cè)擴(kuò)充區(qū)域;對(duì)于原始視頻幀的下方 擴(kuò)充區(qū)域,從原始視頻幀的下方邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)行值拷貝并填充到 下方擴(kuò)充區(qū)域。例如,假設(shè)右側(cè)擴(kuò)充區(qū)域需要填充4列像素值,則將原始視頻幀中與右側(cè)擴(kuò)充區(qū) 域相鄰的連續(xù)4列像素值復(fù)制到右側(cè)擴(kuò)充區(qū)域中,如圖中水平雙向箭頭所示,原始視頻幀 的右側(cè)邊緣線正好位于水平雙向箭頭的中間位置。同樣,假設(shè)下方擴(kuò)充區(qū)域也需要填充4 行像素值,則將原始視頻幀中與下方擴(kuò)充區(qū)域相鄰的連續(xù)4行像素值復(fù)制到下方擴(kuò)充區(qū)域 中,如圖中豎直雙向箭頭所示,原始視頻幀的下方邊緣線正好位于豎直雙向箭頭的中間位 置。而對(duì)于擴(kuò)充區(qū)域右下角的小塊區(qū)域,由于其上方和左側(cè)的填充內(nèi)容相同,所以可 以將上方或左側(cè)的填充內(nèi)容同樣復(fù)制到該小塊區(qū)域中。通過以上填充,擴(kuò)充區(qū)域中填充的內(nèi)容與原始視頻幀中相同大小的相鄰邊界的內(nèi) 容相同,而不僅僅是與最邊緣的行或列相同,所以填充的內(nèi)容與原始視頻幀內(nèi)容之間的相 關(guān)性較高,可以避免填0操作做編碼預(yù)測的影響,避免引入誤差,從而可以提高編碼效率。步驟203,對(duì)填充后的視頻幀進(jìn)行編碼。按照上述方法進(jìn)行填充之后,編碼器就可以按照正常的視頻幀大小進(jìn)行編碼,編 碼方法可參考H. 264、MPEG-4等標(biāo)準(zhǔn)。優(yōu)選的,根據(jù)上述填充的特點(diǎn),本實(shí)施對(duì)擴(kuò)充區(qū)域中能夠形成和不能形成4x4以 上的子塊分別采用不同的編碼策略,以進(jìn)一步提高填充內(nèi)容的編碼效率。其中,所述子塊 是對(duì)16x16的宏塊進(jìn)行劃分的結(jié)果,根據(jù)標(biāo)準(zhǔn)的不同,可以劃分成4x4、4x8或8x4等多種 分塊模式的子塊。例如,11.264標(biāo)準(zhǔn)中形成的塊可以是414、418、814、818,1618(下方)和 8x16 (右方),其中幀內(nèi)預(yù)測只有形成4x4的塊有效(因?yàn)閹瑑?nèi)模式只有4x4和16x16兩種, 而16x16不可能形成),幀間模式除了 16x16都可能有效。而MPEG-4標(biāo)準(zhǔn)中一個(gè)宏塊只能 形成8x8和16x16兩種塊劃分。以H. 264標(biāo)準(zhǔn)為例,具體如下對(duì)于H. 264的幀內(nèi)預(yù)測編碼1)如果擴(kuò)充區(qū)域正好可以劃分成完整的4x4子塊,即原始視頻幀的邊界正好位 于完整子塊的邊界,則由于擴(kuò)充區(qū)域的子塊內(nèi)容與原始視頻幀的子塊內(nèi)容完全相同,因此 可以直接將原始視頻幀中拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果,無需再做編碼操 作。其中,所述編碼結(jié)果包括預(yù)測模式(Intra Mode)、殘差等數(shù)據(jù)。參照?qǐng)D4. 1所示,圖中的粗實(shí)線表示原始視頻幀的邊界,細(xì)虛線表示子塊劃分結(jié) 果,邊界左側(cè)為原始視頻幀的部分子塊,邊界的右側(cè)為填充的子塊。由圖可知,填充的子塊 全部為完整子塊,填充子塊的大小與邊界左側(cè)原始視頻幀的子塊大小相同,均為4x4像素。 此種情況下,邊界右側(cè)的所有填充子塊可以沿用原始視頻幀中拷貝子塊的編碼結(jié)果。2)如果擴(kuò)充區(qū)域不能全部劃分成完整的4x4的殘缺子塊,而存在部分子塊的大小 不是4x4,這些不完整的殘缺子塊需要與原始視頻幀聯(lián)合才能構(gòu)成完整的子塊。參照?qǐng)D4. 2 所示,圖中的粗實(shí)線仍表示原始視頻幀的邊界,細(xì)虛線表示子塊劃分結(jié)果,邊界左側(cè)為原始 視頻幀的部分子塊,邊界的右側(cè)為填充的子塊。由圖可知,原始視頻幀邊界處的子塊與相鄰擴(kuò)充區(qū)域的子塊聯(lián)合構(gòu)成完整的4x4子塊。但是,擴(kuò)充區(qū)域中還存在完整劃分出的4x4子 塊。對(duì)于這種情況,擴(kuò)充區(qū)域中劃分出的4x4的完整子塊,可以按照上述1)的方法直 接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;而對(duì)于擴(kuò)充區(qū)域中不能劃分成4x4的 子塊,則與原始視頻幀的邊界像素聯(lián)合形成4x4的子塊進(jìn)行編碼,編碼方法可參考H. 264、 標(biāo)準(zhǔn)。此外,對(duì)于幀內(nèi)預(yù)測,擴(kuò)充區(qū)域子塊的邊緣參考像素值(如上方或者左側(cè))與原始 視頻幀中子塊的邊緣參考像素也相同,才可以能拷貝原始?jí)K的編碼結(jié)果。 對(duì)于H. 264的幀間預(yù)測編碼,也可以采用與幀內(nèi)預(yù)測編碼相同的方式,即對(duì)于擴(kuò) 充區(qū)域中劃分出的4x4以上的完整子塊,可以直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的 編碼結(jié)果,無需再做編碼操作;對(duì)于擴(kuò)充區(qū)域中不能劃分成4x4以上的殘缺子塊,則與原始 視頻幀的邊界像素聯(lián)合形成4x4、4x8或8x4的子塊進(jìn)行編碼。其中,所述4x4以上的子塊 包括 4x4、4x8、8x4、8x8,16x8 和 8x16 的子塊。上述優(yōu)化后的編碼方法可以對(duì)4x4以上的完整子塊不做編碼,從而進(jìn)一步提高了 視頻幀的編碼效率。此外,關(guān)于與編碼相對(duì)應(yīng)的解碼,可以按照H. 264、MPEG-4等解碼標(biāo)準(zhǔn)進(jìn)行?;谏鲜鰞?nèi)容,本發(fā)明還提供了相應(yīng)的編碼器實(shí)施例。參照?qǐng)D5,是本發(fā)明實(shí)施例所述一種視頻編碼器的結(jié)構(gòu)圖。所述編碼器可以包括填充單元51和編碼單元52,其中,所述填充單元51用于將寬 或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍,并將原始視頻幀中與擴(kuò)充區(qū)域 相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域;所述編碼單元52用于對(duì) 填充后的視頻幀進(jìn)行編碼。具體的,所述填充單元51可以包括列填充子單元511,用于針對(duì)原始視頻幀的左側(cè)或右側(cè)擴(kuò)充區(qū)域,從原始視頻幀的 左側(cè)或右側(cè)邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)列值拷貝并填充到左側(cè)或右側(cè)擴(kuò)充區(qū) 域;以及,行填充子單元512,用于針對(duì)原始視頻幀的上方或下方擴(kuò)充區(qū)域,從原始視 頻幀的上方或下方邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)行值拷貝并填充到上方或下方 擴(kuò)充區(qū)域。所述編碼器在對(duì)寬或高為非16整數(shù)倍的原始視頻幀進(jìn)行擴(kuò)充的過程中,通過將 原始視頻幀中與擴(kuò)充區(qū)域大小相同的內(nèi)容拷貝到擴(kuò)去區(qū)域進(jìn)行填充,增加了填充內(nèi)容與原 始視頻幀內(nèi)容之間的相關(guān)性,因此提高了編碼效率。優(yōu)選的,所述編碼單元52可以包括幀內(nèi)預(yù)測編碼子單元521,用于當(dāng)進(jìn)行幀內(nèi)預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的 完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃 分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子塊進(jìn)行編碼;幀間預(yù)測編碼子單元522,用于當(dāng)進(jìn)行幀間預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的 完整子塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃 分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子塊進(jìn)行編碼。
所述編碼單元52可以對(duì)擴(kuò)充區(qū)域形成的4x4以上的子塊不做編碼而直接沿用拷 貝內(nèi)容的編碼結(jié)果,進(jìn)一步提高了編碼結(jié)果。本說明書中的各個(gè)實(shí)施例均采用遞進(jìn)的方式描述,每個(gè)實(shí)施例重點(diǎn)說明的都是與 其他實(shí)施例的不同之處,各個(gè)實(shí)施例之間相同相似的部分互相參見即可。對(duì)于解碼器實(shí)施 例而言,由于其與方法實(shí)施例基本相似,所以描述的比較簡單,相關(guān)之處參見方法實(shí)施例的 部分說明即可。以上對(duì)本發(fā)明所提供的一種幀寬高為非16整數(shù)倍的視頻編碼方法及編碼器,進(jìn) 行了詳細(xì)介紹,本文中應(yīng)用了具體個(gè)例對(duì)本發(fā)明的原理及實(shí)施方式進(jìn)行了闡述,以上實(shí)施 例的說明只是用于幫助理解本發(fā)明的方法及其核心思想;同時(shí),對(duì)于本領(lǐng)域的一般技術(shù)人 員,依據(jù)本發(fā)明的思想,在具體實(shí)施方式
及應(yīng)用范圍上均會(huì)有改變之處,綜上所述,本說明 書內(nèi)容不應(yīng)理解為對(duì)本發(fā)明的限制。
權(quán)利要求
一種幀寬高為非16整數(shù)倍的視頻編碼方法,其特征在于,包括將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍;將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域;對(duì)填充后的視頻幀進(jìn)行編碼。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將原始視頻幀中與擴(kuò)充區(qū)域相鄰的 相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域,包括針對(duì)原始視頻幀的左側(cè)或右側(cè)擴(kuò)充區(qū)域,從原始視頻幀的左側(cè)或右側(cè)邊緣開始將與擴(kuò) 充區(qū)域相同大小的連續(xù)列值拷貝并填充到左側(cè)或右側(cè)擴(kuò)充區(qū)域。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述將原始視頻幀中與擴(kuò)充區(qū)域相鄰的 相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域,包括針對(duì)原始視頻幀的上方或下方擴(kuò)充區(qū)域,從原始視頻幀的上方或下方邊緣開始將與擴(kuò) 充區(qū)域相同大小的連續(xù)行值拷貝并填充到上方或下方擴(kuò)充區(qū)域。
4.根據(jù)權(quán)利要求1至3任一所述的方法,其特征在于,所述對(duì)填充后的視頻幀進(jìn)行編 碼,包括當(dāng)進(jìn)行幀內(nèi)預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼 結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形 成完整子塊進(jìn)行編碼。
5.根據(jù)權(quán)利要求1至3任一所述的方法,其特征在于,所述對(duì)填充后的視頻幀進(jìn)行編 碼,包括當(dāng)進(jìn)行幀間預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的完整子塊,直接將拷貝內(nèi)容的編碼 結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形 成完整子塊進(jìn)行編碼。
6.一種視頻編碼器,其特征在于,包括填充單元,用于將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍,并將原 始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域;編碼單元,用于對(duì)填充后的視頻幀進(jìn)行編碼。
7.根據(jù)權(quán)利要求6所述的編碼器,其特征在于,所述填充單元包括列填充子單元,用于針對(duì)原始視頻幀的左側(cè)或右側(cè)擴(kuò)充區(qū)域,從原始視頻幀的左側(cè)或 右側(cè)邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)列值拷貝并填充到左側(cè)或右側(cè)擴(kuò)充區(qū)域。
8.根據(jù)權(quán)利要求7所述的編碼器,其特征在于,所述填充單元還包括行填充子單元,用于針對(duì)原始視頻幀的上方或下方擴(kuò)充區(qū)域,從原始視頻幀的上方或 下方邊緣開始將與擴(kuò)充區(qū)域相同大小的連續(xù)行值拷貝并填充到上方或下方擴(kuò)充區(qū)域。
9.根據(jù)權(quán)利要求6至8任一所述的編碼器,其特征在于,所述編碼單元包括幀內(nèi)預(yù)測編碼子單元,用于當(dāng)進(jìn)行幀內(nèi)預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的完整子 塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完 整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子塊進(jìn)行編碼。
10.根據(jù)權(quán)利要求9任一所述的編碼器,其特征在于,所述編碼單元還包括 幀間預(yù)測編碼子單元,用于當(dāng)進(jìn)行幀間預(yù)測編碼時(shí),對(duì)于擴(kuò)充區(qū)域中劃分出的完整子 塊,直接將拷貝內(nèi)容的編碼結(jié)果作為所述子塊的編碼結(jié)果;對(duì)于擴(kuò)充區(qū)域中不能劃分成完 整子塊的殘缺子塊,則與原始視頻幀的邊界像素聯(lián)合形成完整子塊進(jìn)行編碼。
全文摘要
本發(fā)明提供了一種幀寬高為非16整數(shù)倍的視頻編碼方法及編碼器,以解決現(xiàn)有的編碼器對(duì)寬高為非16整數(shù)倍的視頻幀編碼效率低的問題。所述方法包括將寬或高為非16整數(shù)倍的原始視頻幀大小擴(kuò)充為16的整數(shù)倍;將原始視頻幀中與擴(kuò)充區(qū)域相鄰的相同大小的連續(xù)行或列值拷貝并填充到相應(yīng)的擴(kuò)充區(qū)域;對(duì)填充后的視頻幀進(jìn)行編碼。本發(fā)明由于增加了填充內(nèi)容與原始視頻幀內(nèi)容之間的相關(guān)性,因此提高了編碼效率。
文檔編號(hào)H04N7/32GK101969562SQ20101052746
公開日2011年2月9日 申請(qǐng)日期2010年10月27日 優(yōu)先權(quán)日2010年10月27日
發(fā)明者季鵬飛 申請(qǐng)人:北京中星微電子有限公司