一種確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置制造方法
【專利摘要】本發(fā)明公開了一種便于硬件實(shí)現(xiàn)的確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置。所述確定運(yùn)動(dòng)矢量代價(jià)的方法,包括:針對(duì)待編碼的當(dāng)前幀所分成的每一個(gè)宏塊,根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值,選取需要使用的查找表,所述查找表中記錄MV的各取值范圍以及每一個(gè)取值范圍所映射的COST值,且隨著MV的取值從小到大的變化,MV的取值范圍逐漸變大;根據(jù)當(dāng)前宏塊使用的MV值、以及選取出的需要使用的查找表,確定所述MV值對(duì)應(yīng)的COST值。使用本方案,可以有效降低運(yùn)動(dòng)矢量代價(jià)計(jì)算部分的硬件邏輯的復(fù)雜度,從而獲得相對(duì)較低的功耗與較小的硅片面積。
【專利說明】一種確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及運(yùn)動(dòng)估計(jì)【技術(shù)領(lǐng)域】,尤其涉及一種確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置。
【背景技術(shù)】
[0002] 運(yùn)動(dòng)估計(jì)(Motion Estimation)是視頻壓縮中廣泛使用的技術(shù),同時(shí)是視頻壓縮 過程中最核心且運(yùn)算量最大的部分之一,如何高質(zhì)量與高效率的進(jìn)行運(yùn)動(dòng)估計(jì)至關(guān)重要。 運(yùn)動(dòng)估計(jì)的基本思想是將圖像序列的每一幀分成許多互不重疊的宏塊(Macroblocks),并 認(rèn)為宏塊內(nèi)所有象素的位移量都相同,然后對(duì)每個(gè)宏塊到參考幀(REF)某一給定的特定搜 索范圍內(nèi)根據(jù)一定的匹配準(zhǔn)則找出與當(dāng)前塊最相似的塊,即匹配塊,匹配塊與當(dāng)前塊的相 對(duì)位移即為運(yùn)動(dòng)矢量(Motion Vect〇r,MV)。視頻壓縮的時(shí)候,只需保存運(yùn)動(dòng)矢量和殘差數(shù) 據(jù)就可以完全恢復(fù)出當(dāng)前塊。
[0003] H. 264 是 ITU (International Telecommunication Unite,國(guó)際通信聯(lián)盟)和 MPEG (Motion Picture Experts Group,運(yùn)動(dòng)圖像專家組)聯(lián)合制定的視頻編碼標(biāo)準(zhǔn)。X264 是開源的且公認(rèn)的最高質(zhì)量的H. 264編解碼器的實(shí)現(xiàn),目前獲得了廣泛的認(rèn)可與使用,即 便如此,巨大的運(yùn)算量使得高分辨率的實(shí)時(shí)視頻錄制在軟件層面也難以實(shí)現(xiàn),專用集成電 路則是較為可行的實(shí)現(xiàn)方式之一。然而如何在電路級(jí)實(shí)現(xiàn)如此龐大的邏輯規(guī)模也有著較大 的挑戰(zhàn),將算法與硬件的特點(diǎn)相結(jié)合,從中找到巧妙的方法成為了大家努力研究的方向之 〇
[0004] X264中采用了基于最佳匹配塊的運(yùn)動(dòng)估計(jì)算法,運(yùn)動(dòng)估計(jì)的過程即是計(jì)算與尋求 最優(yōu)匹配塊代價(jià)(COST)的過程。匹配塊的代價(jià)通常由當(dāng)前塊的殘差數(shù)據(jù)代價(jià)、運(yùn)動(dòng)矢量代 價(jià)與參考幀代價(jià)組成。匹配塊的代價(jià)一定程度上代表著當(dāng)前塊編碼后所需花費(fèi)碼字的代價(jià) (視頻壓縮后的尺寸即由一個(gè)個(gè)的碼字組成),代價(jià)越低則意味著當(dāng)前運(yùn)動(dòng)矢量下的當(dāng)前 塊能取得越好的編碼效果。計(jì)算各代價(jià)的過程均具有一定的復(fù)雜度。
[0005] X264中運(yùn)動(dòng)矢量代價(jià)由公式[1]確定:
[0006] MV_C0ST = lambda* (log2f(MV |+1) *2+0. 718+ !! i)+5f [1]
[0007] 其中,MV_C0ST表示運(yùn)動(dòng)矢量代價(jià),lambda表示拉格朗日系數(shù),由編碼過程中的量 化參數(shù)(Quantization Parameter, QP)映射得到。從上述公式[1]可以看到計(jì)算過程中 包含有對(duì)數(shù)計(jì)算,對(duì)數(shù)計(jì)算運(yùn)算量十分龐大,為此,X264中又進(jìn)一步在編碼的初始化階段預(yù) 先將所有MV與QP相對(duì)應(yīng)的COST值預(yù)先計(jì)算并保存在查找表中,在后續(xù)實(shí)際的運(yùn)動(dòng)估計(jì)過 程中通過查表直接得到。其中,每一個(gè)QP值對(duì)應(yīng)一張查找表,每一張查找表用于表示MV與 COST之間的對(duì)應(yīng)關(guān)系,現(xiàn)有技術(shù)中,MV與COST之間是--對(duì)應(yīng)關(guān)系。
[0008] 這種處理方式在軟件層面固然是一個(gè)很好的方法,然而在硬件層面這將給硬件設(shè) 計(jì)帶來(lái)一定的挑戰(zhàn),考慮到H. 264標(biāo)準(zhǔn)中QP的取值范圍是0?51,相應(yīng)的,對(duì)應(yīng)52張查找 表;而MV的取值范圍更大,以MV±2048為例,則整個(gè)查找表的尺寸將超過200Kbyte。具體 實(shí)施中,若不采用查找表而使用動(dòng)態(tài)計(jì)算的方式會(huì)由于對(duì)數(shù)計(jì)算而使得硬件電路變得不切 實(shí)際;若采用查找表,如將查找表置于硬件內(nèi)部則因?yàn)楸淼某叽缍加么髩K的硬件資源,如 將查找表置于外存中動(dòng)態(tài)取值則將消耗額外的外存帶寬,且又會(huì)因?yàn)橥獯嬖L問延遲而影響 性能。綜上,亟待提供一種便于硬件實(shí)現(xiàn)的確定運(yùn)動(dòng)矢量代價(jià)的方案。
【發(fā)明內(nèi)容】
[0009] 本發(fā)明實(shí)施例提供一種便于硬件實(shí)現(xiàn)的確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置,用以有 效降低運(yùn)動(dòng)矢量代價(jià)計(jì)算部分的硬件邏輯的復(fù)雜度,從而獲得相對(duì)較低的功耗與較小的硅 片面積。
[0010] 本發(fā)明實(shí)施例提供一種確定運(yùn)動(dòng)矢量代價(jià)的方法,包括:
[0011] 針對(duì)待編碼的當(dāng)前幀所分成的每一個(gè)宏塊,根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值, 選取需要使用的查找表,所述查找表中記錄MV的各取值范圍以及每一個(gè)取值范圍所映射 的COST值,且隨著MV的取值從小到大的變化,MV的取值范圍逐漸變大;
[0012] 根據(jù)當(dāng)前宏塊使用的MV值、以及選取出的需要使用的查找表,確定所述MV值對(duì)應(yīng) 的COST值。
[0013] 基于同一技術(shù)構(gòu)思,本發(fā)明實(shí)施例提供一種確定運(yùn)動(dòng)矢量代價(jià)的裝置,包括:
[0014] 存儲(chǔ)模塊,用于存儲(chǔ)各量化參數(shù)QP值對(duì)應(yīng)的查找表,所述查找表中記錄MV的各取 值范圍以及每一個(gè)取值范圍所映射的COST值,且隨著MV的取值從小到大的變化,MV的取 值范圍逐漸變大;
[0015] 選取模塊,用于針對(duì)待編碼的當(dāng)前幀所分成的每一個(gè)宏塊,根據(jù)當(dāng)前宏塊使用的 量化參數(shù)QP值,從所述存儲(chǔ)模塊中選取需要使用的查找表;
[0016] 確定模塊,用于根據(jù)當(dāng)前宏塊使用的MV值、以及選取出的需要使用的查找表,確 定所述MV值對(duì)應(yīng)的COST值。
[0017] 本發(fā)明實(shí)施例提供的確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置,采用特殊結(jié)構(gòu)的查找表, 查找表中記錄MV的各取值范圍以及每一個(gè)取值范圍所映射的COST值,且隨著MV的取值從 小到大的變化,MV的取值范圍逐漸變大,將現(xiàn)有技術(shù)中MV值與COST值--對(duì)應(yīng)的映射關(guān) 系,改變?yōu)楣潭ㄈ≈捣秶鷥?nèi)的若干MV與一個(gè)COST值相對(duì)應(yīng)的映射關(guān)系,并且取值較大的MV 對(duì)應(yīng)的MV的取值范圍也較大,從而在顯著降低單張查找表尺寸的同時(shí)保持有效的計(jì)算精 度。由于單張查找表尺寸的顯著降低,從而有效降低了整個(gè)查找表的尺寸,使得運(yùn)動(dòng)矢量代 價(jià)計(jì)算部分的硬件邏輯的復(fù)雜度降低,從而獲得相對(duì)較低的功耗與較小的硅片面積。
[0018] 本申請(qǐng)的其它特征和優(yōu)點(diǎn)將在隨后的說明書中闡述,并且,部分地從說明書中變 得顯而易見,或者通過實(shí)施本申請(qǐng)而了解。本申請(qǐng)的目的和其他優(yōu)點(diǎn)可通過在所寫的說明 書、權(quán)利要求書、以及附圖中所特別指出的結(jié)構(gòu)來(lái)實(shí)現(xiàn)和獲得。
【專利附圖】
【附圖說明】
[0019] 附圖用來(lái)提供對(duì)本發(fā)明的進(jìn)一步理解,并且構(gòu)成說明書的一部分,與本發(fā)明實(shí)施 例一起用于解釋本發(fā)明,并不構(gòu)成對(duì)本發(fā)明的限制。在附圖中:
[0020] 圖1為本發(fā)明實(shí)施例中確定運(yùn)動(dòng)矢量代價(jià)的方法流程圖;
[0021] 圖2為本發(fā)明實(shí)施例中確定運(yùn)動(dòng)矢量代價(jià)的裝置框圖;
[0022] 圖3為本發(fā)明實(shí)施例中獲取模塊的一種可能結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0023] 本發(fā)明實(shí)施例提供一種便于硬件實(shí)現(xiàn)的確定運(yùn)動(dòng)矢量代價(jià)的方法及裝置,用以有 效降低運(yùn)動(dòng)矢量代價(jià)計(jì)算部分的硬件邏輯的復(fù)雜度,從而獲得相對(duì)較低的功耗與較小的硅 片面積。以下結(jié)合說明書附圖對(duì)本發(fā)明的優(yōu)選實(shí)施例進(jìn)行說明,應(yīng)當(dāng)理解,此處所描述的優(yōu) 選實(shí)施例僅用于說明和解釋本發(fā)明,并不用于限定本發(fā)明。并且在不沖突的情況下,本申請(qǐng) 中的實(shí)施例及實(shí)施例中的特征可以相互組合。
[0024] 本發(fā)明實(shí)施例提供的確定運(yùn)動(dòng)矢量代價(jià)的方案,將對(duì)運(yùn)動(dòng)估計(jì)中運(yùn)動(dòng)矢量代價(jià)計(jì) 算部分進(jìn)行簡(jiǎn)化設(shè)計(jì),具體包括:
[0025] 簡(jiǎn)化設(shè)計(jì)策略一
[0026] 考慮到實(shí)際編碼中一幀內(nèi)采用的不同數(shù)值的QP(量化參數(shù))的個(gè)數(shù)通常不會(huì)太 多,本發(fā)明實(shí)施例中,設(shè)定一幀的基準(zhǔn)QP,并且配置基準(zhǔn)QP的波動(dòng)范圍,編碼過程中只會(huì)在 基準(zhǔn)QP的基礎(chǔ)上,在波動(dòng)范圍內(nèi)上下波動(dòng)使用有限數(shù)量的QP值,基準(zhǔn)QP及其波動(dòng)范圍內(nèi) 的各QP值分別對(duì)應(yīng)一張查找表,通過控制波動(dòng)范圍,可以控制QP的數(shù)量,有限數(shù)量的QP使 得查找表的數(shù)量減少,從而有效降低了整個(gè)查找表的尺寸。
[0027] 簡(jiǎn)化設(shè)計(jì)策略二
[0028] 考慮到通常的實(shí)際視頻錄制過程中MV (運(yùn)動(dòng)矢量)的實(shí)際分布規(guī)律,通常MV取值 較小的個(gè)數(shù)占的比重較高,另外計(jì)算COST(代價(jià))過程中由于對(duì)數(shù)的引入,COST值的變化 具有隨著MV的取值從小到大的變化而越來(lái)越趨緩的特點(diǎn)?;谏鲜隹紤],本發(fā)明實(shí)施例提 供了一套特殊結(jié)構(gòu)的查找表,查找表中記錄MV的各取值范圍以及每一個(gè)取值范圍所映射 的COST值,且隨著MV的取值從小到大的變化,MV的取值范圍逐漸變大。將現(xiàn)有技術(shù)中MV 值與COST值一一對(duì)應(yīng)的映射關(guān)系,改變?yōu)楣潭ㄈ≈捣秶鷥?nèi)的若干MV與一個(gè)COST值相對(duì)應(yīng) 的映射關(guān)系,并且取值較大的MV對(duì)應(yīng)的MV的取值范圍也較大,從而在顯著降低單張查找表 尺寸的同時(shí)保持有效的計(jì)算精度。
[0029] 具體實(shí)施中,查找表可以采用一種較佳結(jié)構(gòu),即隨著MV的取值從小到大的變化, MV的取值范圍呈2的指數(shù)函數(shù)趨勢(shì)增長(zhǎng),如表1所示,以MV取值0?2047為例進(jìn)行說明。
[0030] 表 1
[0031]
【權(quán)利要求】
1. 一種確定運(yùn)動(dòng)矢量代價(jià)的方法,其特征在于,包括: 針對(duì)待編碼的當(dāng)前幀所分成的每一個(gè)宏塊,根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值,選 取需要使用的查找表,所述查找表中記錄MV的各取值范圍以及每一個(gè)取值范圍所映射的 COST值,且隨著MV的取值從小到大的變化,MV的取值范圍逐漸變大; 根據(jù)當(dāng)前宏塊使用的MV值、以及選取出的需要使用的查找表,確定所述MV值對(duì)應(yīng)的 COST 值。
2. 如權(quán)利要求1所述的方法,其特征在于,隨著MV的取值從小到大的變化,MV的取值 范圍呈2的指數(shù)函數(shù)趨勢(shì)增長(zhǎng),其中: 當(dāng)MV的取值為0?31時(shí),每一個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為32?63時(shí),每?jī)蓚€(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為64?127時(shí),每四個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為128?255時(shí),每八個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為256?511時(shí),每十六個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為512?1023時(shí),每三十二個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為1024?2047時(shí),每六十四個(gè)MV對(duì)應(yīng)一個(gè)COST值; 依此類推。
3. 如權(quán)利要求1或2所述的方法,其特征在于,預(yù)先為當(dāng)前幀配置基準(zhǔn)QP及其波動(dòng)范 圍,并且僅存儲(chǔ)基準(zhǔn)QP及其波動(dòng)范圍內(nèi)各QP值對(duì)應(yīng)的查找表,以及 所述根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值,選取需要使用的查找表,具體包括: 根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值、以及預(yù)先為當(dāng)前幀配置的基準(zhǔn)QP及其波動(dòng)范圍, 從所述基準(zhǔn)QP及其波動(dòng)范圍內(nèi)各QP值對(duì)應(yīng)的查找表中選取需要使用的查找表。
4. 如權(quán)利要求3所述的方法,其特征在于,所述根據(jù)當(dāng)前宏塊使用的QP值、以及預(yù)先為 當(dāng)前幀配置的基準(zhǔn)QP及其波動(dòng)范圍,從所述基準(zhǔn)QP及其波動(dòng)范圍內(nèi)各QP值對(duì)應(yīng)的查找表 中選取需要使用的查找表,具體包括: 計(jì)算當(dāng)前宏塊使用的QP值與所述基準(zhǔn)QP之間的差值,其中,當(dāng)前幀中每一個(gè)宏塊使用 的QP在所述基準(zhǔn)QP及其波動(dòng)范圍所限定的范圍內(nèi)取值; 根據(jù)所述差值在所述基準(zhǔn)QP及其波動(dòng)范圍內(nèi)進(jìn)行索引,選取所述差值索引的QP所對(duì) 應(yīng)的查找表作為需要使用的查找表。
5. 如權(quán)利要求4所述的方法,其特征在于,所述基準(zhǔn)QP的波動(dòng)范圍包括[-4, 3]或者 [-3, 4]。
6. -種確定運(yùn)動(dòng)矢量代價(jià)的裝置,其特征在于,包括: 存儲(chǔ)模塊,用于存儲(chǔ)各量化參數(shù)QP值對(duì)應(yīng)的查找表,所述查找表中記錄MV的各取值范 圍以及每一個(gè)取值范圍所映射的COST值,且隨著MV的取值從小到大的變化,MV的取值范 圍逐漸變大; 選取模塊,用于針對(duì)待編碼的當(dāng)前幀所分成的每一個(gè)宏塊,根據(jù)當(dāng)前宏塊使用的量化 參數(shù)QP值,從所述存儲(chǔ)模塊中選取需要使用的查找表; 確定模塊,用于根據(jù)當(dāng)前宏塊使用的MV值、以及選取出的需要使用的查找表,確定所 述MV值對(duì)應(yīng)的COST值。
7. 如權(quán)利要求6所述的裝置,其特征在于,所述存儲(chǔ)模塊存儲(chǔ)的查找表中,隨著MV的取 值從小到大的變化,MV的取值范圍呈2的指數(shù)函數(shù)趨勢(shì)增長(zhǎng),其中: 當(dāng)MV的取值為0?31時(shí),每一個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為32?63時(shí),每?jī)蓚€(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為64?127時(shí),每四個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為128?255時(shí),每八個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為256?511時(shí),每十六個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為512?1023時(shí),每三十二個(gè)MV對(duì)應(yīng)一個(gè)COST值; 當(dāng)MV的取值為1024?2047時(shí),每六十四個(gè)MV對(duì)應(yīng)一個(gè)COST值; 依此類推。
8. 如權(quán)利要求6或7所述的裝置,其特征在于, 所述存儲(chǔ)模塊中存儲(chǔ)預(yù)先為當(dāng)前幀配置的基準(zhǔn)QP及其波動(dòng)范圍內(nèi)各QP值對(duì)應(yīng)的查找 表;以及 所述選取模塊,具體用于根據(jù)當(dāng)前宏塊使用的量化參數(shù)QP值、以及預(yù)先為當(dāng)前幀配置 的基準(zhǔn)QP及其波動(dòng)范圍,從所述存儲(chǔ)模塊中選取需要使用的查找表。
9. 如權(quán)利要求8所述的裝置,其特征在于,所述選取模塊,具體包括: 計(jì)算單元,用于計(jì)算當(dāng)前宏塊使用的QP值與所述基準(zhǔn)QP之間的差值,其中,當(dāng)前幀中 每一個(gè)宏塊使用的QP在所述基準(zhǔn)QP及其波動(dòng)范圍所限定的范圍內(nèi)取值; 索引單元,用于根據(jù)所述計(jì)算單元計(jì)算出的差值在所述基準(zhǔn)QP及其波動(dòng)范圍內(nèi)進(jìn)行 索引,從所述存儲(chǔ)模塊中選取所述差值索引的QP所對(duì)應(yīng)的查找表作為需要使用的查找表。
10. 如權(quán)利要求9所述的裝置,其特征在于,所述基準(zhǔn)QP的波動(dòng)范圍包括[-4, 3]或者 [-3, 4]。
【文檔編號(hào)】H04N19/513GK104244003SQ201410406661
【公開日】2014年12月24日 申請(qǐng)日期:2014年8月18日 優(yōu)先權(quán)日:2014年8月18日
【發(fā)明者】翟云 申請(qǐng)人:北京君正集成電路股份有限公司