一種基于數據挖掘的高效自適應的視頻轉碼系統的制作方法
【專利摘要】本申請公開了一種基于數據挖掘的高效自適應的視頻轉碼系統、以及方法,該方法包括以下步驟:步驟1、輸入第一壓縮標準的待轉碼的視頻;步驟2、對所述待轉碼的視頻進行解碼,生成待編碼的視頻,并提取每個視頻幀的每個宏塊的解碼信息;步驟3、將所提取的解碼信息輸入到編碼宏塊模式決策樹,通過編碼宏塊模式決策樹來確定待編碼的視頻的每個視頻幀的每個宏塊將采用的編碼宏塊模式;步驟4、根據所確定的編碼宏塊模式、以及每個宏塊的運動矢量,對待編碼的視頻的每個視頻幀的每個宏塊進行第二壓縮標準的編碼,從而將待編碼的視頻編碼為第二壓縮標準的轉碼后的視頻。
【專利說明】一種基于數據挖掘的高效自適應的視頻轉碼系統
【技術領域】
[0001]本發明屬于視頻編碼、視頻轉碼領域,尤其涉及基于數據挖掘的高效自適應的視頻轉碼系統,其可以對不同編碼格式、不同碼率、不同分辨率的視頻進行解碼,并重新編碼,從而轉碼至滿足需求的編碼格式、碼率及分辨率的視頻。
【背景技術】
[0002]現有技術一的技術方案
[0003]現有技術一中實現的是等分辨率下MPEG-2/H.263 — H.264的低復雜度的視頻轉碼技術,它利用機器學習的方法找到MPEG-2/H.263的解碼信息與H.264編碼信息之間的聯系,從而建立起編碼端快速編碼的機制,實現快速轉碼過程。現有技術一假設解碼端MPEG-2/H.263宏塊的CBP、編碼模式、均值及方差與編碼端H.264宏塊的編碼模式存在某種關聯,利用Weka J48分類器訓練這些數據并得到決策樹。圖1、2示出了以MEPG — H.264為例的視頻轉碼過程。
[0004]將宏塊模式決策樹應用在實際MPEG-2/H.263 — H.264轉碼過程中,從解碼器實時獲得宏塊的殘差信息、CBP、編碼模式,將其傳遞到編碼器端,通過決策樹快速判決編碼的宏塊模式,而不需要全解全編,從而減少了轉碼復雜度。
[0005]現有技術一的缺點
[0006]1.針對較小分辨率的視頻序列可以取得較好的質量和比特率之間的平衡,針對大視頻以及清晰度較好的視頻,取得近似圖像質量情況比特率波動較大。
[0007]2.只利用單一量化參數(QP=25)的決策樹模型實現轉碼流程,在實際轉碼中,每個視頻幀中宏塊的QP都是不同的,利用QP=25的決策樹模型對于QP在25附近的待轉碼視頻的轉碼效果較好,但是對偏離25較遠的QP視頻的轉碼效果不好。這是因為在應用決策樹模型時需要對訓練的模型中的閾值進行調整,這時用到量化因子。QP=25時,量化因子為I ;QP大于25時,每增加I量化因子下降12.5% ;QP小于25時,每下降I量化因子增長12.5%所以當實際待轉碼視頻QP遠離25時,量化因子的作用較大,不能很好與QP=25的決策樹模型匹配。因此單一 QP決策樹的適應范圍不廣泛。
[0008]現有技術二的技術方案
[0009]現有技術二實現的是等分辨率下MPEG-2 — H.264的視頻轉碼技術。技術二同樣利用解碼端的殘差信息、CBP、編碼模式,對編碼端宏塊模式進行決策。與現有技術一不同的是,現有技術二使用Jrip分類器對宏塊模式進行分類,決策樹的結構如圖3所示。
[0010]首先在節點I利用Jrip分類方法將宏塊模式分為2類,分別是節點2和節點3。然后節點2進行宏塊模式的遍歷,節點3利用Jrip分為2類,一類是8X8,一類是節點4所包含的宏塊模式。最后對節點4進行剩下3種宏塊模式的遍歷。
[0011]Jrip方法得到決策樹的形式是一條條規則語句,而不是二叉樹的形式,簡化了決策樹的代碼,具有較好的移植性。將實現的Jrip訓練結果應用到轉碼過程中,可以實現快速轉碼。[0012]現有技術二的缺點
[0013]1.僅節點I和節點3用到了 Jrip分類器,節點2和節點4是用原始H.264的全解全編技術,所以有待進一步改進。
[0014]2.只利用單一量化參數(QP=25)的決策樹實現轉碼流程,對待QP在25附近的待轉碼視頻的轉碼效果較好,但是待轉碼視頻QP偏離25較遠的轉碼會出現欠擬合(效果不好),因此單一 QP決策樹的適應范圍不廣泛。
[0015]為了避免使本說明書的描述限于冗繁,將有關上述【背景技術】的以下參考文獻通過引用而全文合并于此。
[0016]1、Fernandez-Escribanoj G.,Bialkowskij J.,Gamez, J.A.,Kalvaj H.,Cuenca,P.,Orozco-Barbosaj L., Kaupj A.Low-Complexity Heterogeneous Video Transcoding UsingData Mining.1EEE Transaction on Multimedia, 2008 ;
[0017]2、Fernandez-Escribanoj H.Kalvaj J.L.Martinez, P.Cuenca, An MPEG_2toH.264video transcoder in the baseline profile.1EEE Transaction onMultimedia, 2010。
【發明內容】
[0018]現有技術方案一中采用的宏塊模式決策樹是單一的(決策樹的QP=25),在實際轉碼應用中,單一決策樹的適應性不強。因為編碼器在視頻編碼過程中,當待轉碼視頻的QP與單一 QP (25)相差較多時,實際轉碼時獲得的殘差信息與模型的殘差信息一致性較差,那么就不能很好的適應單一QP模型。在本發明中,訓練三個不同QP(16、25、36)的宏塊模式決策樹,三個決策樹可以更好地適應不同QP范圍(常用范圍QP=12-40)內視頻轉碼策略。在實際轉碼中,可以根據輸入視頻每幀每個宏塊QP的大小,自適應地選擇最佳的決策樹判決模型,不但減少了轉碼時間,而且有效地減少了轉碼質量的下降。
[0019]視頻轉碼器的性能與決策樹的優劣有關。為了更好地降低轉碼時間,并且保證轉碼質量不會大幅下降,本發明采用聯合J48分類器和Jrip分類器,實現對模型的構建。J48分類器對于較小分類數據集的訓練性能良好,但是對較多分類數據集的訓練結果龐大;Jrip分類器對于數據集的分類準確率較高,而且訓練得到的訓練結果具有很強的代碼書寫能力和可移植性。結合兩種分類器的優勢,視頻轉碼的性能可以得到提升。
[0020]為了進一步提高視頻轉碼器的性能,本發明提出了一種基于宏塊模式和運動矢量級聯決策樹的高效自適應視頻轉碼技術,即在轉碼過程的編碼端,利用宏塊模式決策樹快速選擇編碼所用的宏塊模式,在選定的宏塊模式基礎上,利用訓練好的運動矢量決策樹快速選擇當前編碼塊的運動矢量。由于快速選擇宏塊模式代替了所有宏塊模式的遍歷,同時運動矢量的快速判決代替了大范圍內的運動搜索過程,因此,新提出的級聯決策樹的方法大大地改善了現有視頻轉碼器的性能,是一種新的方法。
[0021]本發明利用級聯決策樹的方法不但實現了等分辨率下的視頻轉碼技術,而且實現了降分辨率下的視頻轉碼技術,能夠滿足不同終端設備的需求。同時,本發明可以根據視頻轉碼前后碼率的不同比率選擇不同QP決策樹的轉碼流程,不但保證了高碼率下視頻的轉碼質量,而且改善了低碼率下轉碼器的性能。
[0022]簡而言之,本發明實現了一種基于數據挖掘的高效自適應的視頻轉碼器,主要完成的是MPEG-2 — H.264轉碼技術和H.263 — H.264轉碼技術。相對于以往同類技術來講,本發明采用多決策樹的方法,在維持基本相同的轉碼速度的情況下,能夠良好地改善轉碼后視頻的主觀質量。
[0023]根據本發明的實施例,提供了一種基于數據挖掘的高效自適應的視頻轉碼方法,包括以下步驟:步驟1、輸入第一壓縮標準的待轉碼的視頻;步驟2、對所述待轉碼的視頻進行解碼,生成待編碼的視頻,并提取每個視頻幀的每個宏塊的解碼信息;步驟3、將所提取的解碼信息輸入到編碼宏塊模式決策樹,通過編碼宏塊模式決策樹來確定待編碼的視頻的每個視頻幀的每個宏塊將采用的編碼宏塊模式;步驟4、根據所確定的編碼宏塊模式、以及每個宏塊的運動矢量,對待編碼的視頻的每個視頻幀的每個宏塊進行第二壓縮標準的編碼,從而將待編碼的視頻編碼為第二壓縮標準的轉碼后的視頻。
[0024]本發明的有益效果主要在于以下幾個方面:①在改善轉碼質量的基礎上,采用基于宏塊模式和運動矢量的級聯決策樹判決方法,進一步提高轉碼效率,提高轉碼器的性能;②不但能夠實現MPEG-2/H.263 — H.264在等分辨率下的快速轉碼過程,還能實現降分辨率下視頻的轉碼流程,大大改善了低分辨率低碼率下視頻的轉碼性能;③可以根據實際要求的視頻轉碼前后碼流的不同比率來自適應的進行轉碼,拓展了視頻轉碼技術的應用范圍。
[0025]具體地,本發明利用三個不同QP決策樹對H.264宏塊模式進行快速判決,在保證視頻質量的前提下,大大地減少了 MPEG-2/H.263 — H.264的轉碼時間,而且對于低QP和高QP的輸入視頻都能獲得較好的轉碼性能。第二,本發明采用級聯決策樹的模型,在宏塊模式已確定的基礎上,對于部分模式,分別使用運動矢量決策樹對水平方向運動矢量和垂直方向運動矢量進行快速判決,獲得當前宏塊的運動矢量后,還可以在2個整像素精度范圍內進行運動搜索,可以實現視頻圖像的精確重建。由于運動矢量的快速選擇代替了大范圍的運動搜索,因此,視頻轉碼的時間進一步減少,相對于全解全編的轉碼技術,本轉碼時間可節約80%左右。第三,在復雜的環境下,本視頻轉碼技術可根據轉碼前后碼流的比值自適應地選擇不同QP決策樹的轉碼流程,以獲得最佳的轉碼效果。第四,MPEG-2/H.263 —H.264可利用與等分辨率相似的轉碼流程實現降分辨率下的視頻轉碼,與現有降分辨率技術相比,轉碼時間和轉碼質量都有一定的改善。
【專利附圖】
【附圖說明】
[0026]圖1是現有技術的MPEG-2 — H.264的轉碼決策樹生成框圖;
[0027]圖2是示出現有技術的MPEG-2宏塊模式決策樹結構的示意圖;
[0028]圖3是示出現有技術的決策樹結構的示意圖;
[0029]圖4是根據本發明的實施例的基于數據挖掘模型的視頻轉碼框架簡圖;
[0030]圖5是根據本發明的實施例的數據挖掘模型的框圖;
[0031]圖6示出了 H.264宏塊及子宏塊的編碼模式;
[0032]圖7示出了 H.264編碼宏塊的多決策樹模型;
[0033]圖8示出了 MPEG-2/H.263解碼信息及H.264宏塊模式的數據形式;
[0034]圖9示出了根據本發明的實施例的按照轉碼前后碼率比值選擇不同決策樹的示意圖;
[0035]圖10示出了根據本發明的實施例的宏塊模式16X 16下QP=25的運動矢量的決策樹;
[0036]圖11示出了根據本發明的實施例的降分辨率下的宏塊信息映射的示意圖;
[0037]圖12示出了根據本發明的實施例的視頻轉碼平臺的功能結構圖;
[0038]圖13示出了 WEKA arff數據文件格式的示例;
[0039]圖14示出了根據本發明的實施例的J48分類器的訓練結果的示例;
[0040]圖15示出了根據本發明的實施例的Jrip分類器的訓練結果的示例。
【具體實施方式】
[0041]下面,結合附圖對技術方案的實施作進一步的詳細描述。
[0042]本領域的技術人員能夠理解,盡管以下的說明涉及到有關視頻編解碼技術和決策樹分類技術的很多細節(例如轉碼前后的具體視頻格式、決策樹的訓練方式、解碼信息和分類信息的構成),但這僅為用來說明本發明的原理的示例、而不意味著任何限制。本發明能夠適用于不同于以下例舉的技術細節之外的場合,例如,現有的和將來可能出現的其它視頻壓縮標準、其它決策樹訓練方法,只要它們不背離被發明的原理和精神即可。
[0043]首先,概述本發明的基本原理。
[0044]—般的,視頻轉碼器包括解碼器和編碼器。全解全編的視頻轉碼器是比較耗時的,現在已實現的主流技術是在編碼端利用解碼端信息進行快速編碼,來減少轉碼時間。視頻轉碼的目標是在滿足實際需求的前提下,使用盡可能少的時間并保持轉碼后的圖像質量下降很少。當前視頻轉碼主要包括碼率轉換、分辨率轉換和不同碼流之間的轉碼。
[0045]為了加快視頻轉碼的速度并保證視頻轉碼的質量,本發明提出了一系列的方法來改進視頻轉碼技術的性能。本發明實現的是基于數據挖掘方法的高效自適應視頻轉碼技術,主要完成的是MPEG-2 — H.264的快速轉碼及H.263 — H.264的快速轉碼。
[0046]圖4是本發明中基于數據挖掘模型的視頻轉碼框架簡圖。如圖4所示,本技術中高效轉碼器的框架包括兩大部分:解碼器和編碼器,兩者之間依靠數據挖掘模型聯系在一起。假設MPEG-2/H.263解碼后的視頻流信息(CBP、模式、均值、方差、運動矢量)與H.264編碼端的宏塊模式或運動矢量存在某種關聯,收集這些數據,利用機器學習的方法挖掘MPEG-2/
H.263解碼信息與H.264編碼信息之間的聯系,建立分類決策樹。通過大量數據訓練后,得到性能好的決策樹,并將決策樹應用到實際轉碼過程中,可以實現MPEG-2 —H.264和
H.263 — H.264的快速轉碼。在技術實現中,采用級聯決策樹的方法如圖5對宏塊模式和運動矢量進行快速判決,從而避免了宏塊模式的遍歷選擇及運動矢量的大范圍搜索,減少了編碼復雜度,實現了轉碼時間的下降。
[0047]在進行視頻轉碼前,首先要用機器學習的方式訓練得到兩個決策樹模型:一個是
H.264編碼端宏塊模式決策樹和運動矢量決策樹。兩個決策樹是級聯的關系,即在宏塊模式決策樹應用之后是運動矢量決策樹的應用。訓練模型的目的是為了獲得分類準確率高和移植性好的決策樹。
[0048]宏塊模式決策模型是對編碼端H.264的編碼模式(9種)進行快速分類并應用。
H.264幀內預測的宏塊模式是Intra,幀間預測的宏塊模式除Skip (運動殘差為O)之外,還有 16X16、16X8、8X16、8X8、8X4、4X8、4X4,如圖 6 所示。
[0049]在本發明的實施例中,采用3種不同的QP宏塊模式決策樹,即對QP=16、25、36的視頻進行訓練,得到3個分層決策樹結構,如圖7所示。
[0050]以QP=25的分層決策樹為例,在節點1,利用J48分類器將宏塊模式分為4類,Intra、Skip、16X 16和8X8 ;在節點2,Skip和16X 16模式很容易區分開,不需用機器學習的方法;在節點3,利用J48分類器將16X16的模式細分為16X16、16X8、8X16 ;在節點4,利用J48分類器將8X8的模式細分為8X8、8X4、4X8、4X4。最終分層實現9種編碼模式的分類。
[0051]圖8是訓練所需要的、MPEG-2/H.263解碼信息及H.264宏塊模式分類合并后的表現形式。其中解碼彳目息包括由殘差?目息計算得到的均值、方差,MPEG-2/H.263宏塊模式及CBP。
[0052]下面具體說明解碼信息的組成。
[0053]①殘差信息
[0054]ΜΡΕ-2和H.263標準都是基于8X8塊進行DCT變換,幀間編碼將運動估計殘差進行DCT變換再進行下一步的編碼操作,而幀內編碼直接對原圖像像素數據進行DCT變換。所以幀間編碼宏塊IDCT變換的結果代表的是殘差信息。獲取到8X8亮度塊各自的64個整數“殘差”信息,分別對應8X8的各個像素點。每個8X8塊又可以劃分為4個4X4子塊。對每個4X4塊中的“殘差”進行信息統計,分別求取均值和方差,得到16個均值以及16個方差。
[0055]②MPEG_2/H.263 宏塊模式
[0056]Mpeg-2 中宏塊模式有五種:skip(0) ; intra (I) ;motion compensation,coded(2) ;motion compensation, no coded(4) ;no me, coded(8)。H.263 的宏塊模式分成三種skip (0), intra (3)和inter模式(9)。括號內為實際訓練過程中的代號。
[0057]③CBP,全稱是coded block pattern (編碼塊模式),用來標識MPEG-2/H.263的已編碼塊模式,本發明中選用的CBP系列特征是針對CBP各個比特位的數值,共6位。
[0058]下面說明H.264編碼宏塊模式(編碼信息)。H.264編碼宏塊模式分為三組,如圖6所示:(I)幀內編碼宏塊模式Intra (可分為幀內16X 16、8X8、4X4模式,不過,本發明的決策樹不需要再對此細分);(2)幀間宏塊模式:幀間16X16、16X8、8X16模式;(3)幀間子宏塊模式:幀間8X8、8X4、4X8、4X4模式;(4)skip模式,因為在JM中skip模式的確認是針對遍歷宏塊模式決策結果為幀間16X16的宏塊,若該宏塊滿足無像素殘差、無運動矢量殘差的條件則確定此宏塊的編碼模式為skip。
[0059]在本發明中,可選地,不論是宏塊模式決策樹,還是運動矢量決策樹,當3個不同QP決策樹訓練完畢后,都可以實現根據轉碼前后碼率的比值自適應的選擇最適合的決策樹。例如,如圖9所示,當碼率比值小于第一個閾值時,選擇QP=16的決策樹,當碼率比值不小于第一個閾值且小于第二個閾值時,選擇QP=25的決策樹,當碼率比值不小于第三個閾值時,選擇QP=36的決策樹。這樣,本發明的自適應轉碼能力可以體現。
[0060]下面說明本發明的運動矢量決策樹的原理。
[0061]運動矢量多決策樹是在宏塊分別為16X16、16X8、8X16、8X8時,對當前宏塊的水平、垂直方向運動矢量進行決策樹快速判決。16X 16宏塊中QP=25的運動矢量決策樹的結構如圖10所示,其他 三種宏塊的運動矢量決策樹與圖10所示類似。(a)圖是對水平方向運動矢量的分類判決,(b)圖是對垂直方向運動矢量的分類判決。[0062]運動矢量決策樹也采取多個QP決策樹聯合使用的方式,能夠提高大范圍QP下視頻的運動矢量判決的準確度,最終提升轉碼性能。
[0063]在H.264編碼標準中,運動矢量MV的范圍是(-16,16)。在本發明中,可將運動矢量MV分為{-15,-12,-9,-6,-3,0,3,6,9,12,15}共11類,利用運動矢量決策樹判決得到當前運動矢量后,可直接傳遞到編碼端,也可以當前運動矢量為搜索起點,在2個整像素精度范圍內進行運動搜索,從而對運動矢量進行修正。
[0064]下面說明本發明應用于降分辨率轉碼的原理。
[0065]降分辨率視頻轉碼器可以將視頻從高分辨率高碼率降至低分辨率低碼率(本發明中指畫面寬高方向的像素數目同時降低到1/2),以適應終端設備的不同需求。降分辨率的實現與等分辨率相似,利用級聯決策樹對解碼端信息進行復用,并對宏塊模式和運動矢量進行快速判決,從而節約轉碼時間。不同的是,降分辨率是將4個原始解碼宏塊映射到I個編碼宏塊,如圖11所示,即提取原視頻空間相鄰4個宏塊的解碼信息,包括CBP、宏塊模式、均值、方差和運動矢量,將這些信息用于判決降分辨率下I個編碼宏塊的快速決策。
[0066]綜上所述,本發明所實現的視頻轉碼技術依托于FFMPEG平臺和libx264。基于數據挖掘模型的高效自適應視頻轉碼系統的設計流程如圖12所示,包括參數設置模塊、解碼信息提取模塊、等分辨率/降分辨率宏塊模式判決模塊和等分辨率/降分辨率運動矢量判決模塊。
[0067]有關本說明書中的編解碼技術中(包括宏塊模式/運動矢量等),可以參考以下文獻“蔡安妮,孫景鰲,多媒體通信技術基礎,電子工業出版社,2001”。
[0068]有關本說明書中的W eka機器學習方法,可參考以下文獻“李德有,李凌霞,郭瑞波,基于Weka平臺的機器學習方法探究,電腦知識與技術,2012”。
[0069]為了避免使本說明書的描述限于冗繁,在本說明書中的描述中,可能對可在上述參考文獻或其它現有技術資料中獲得的部分技術細節進行了省略、簡化、變通等處理,這對于本領域的技術人員來說是可以理解的。在此,將上述參考文獻通過引用全文合并于此。
[0070]下面,具體說明根據本發明的實施例的采用決策樹的快速轉碼方法的實施方式。
[0071](一)、H.264宏塊模式決策樹的訓練
[0072]1.從訓練視頻中提取數據集
[0073]MPEG-2 — H.264快速轉碼技術采用flower.m2v (MPEG-2格式)作為訓練視頻;
H.263 — H.264快速轉碼技術采用football.h263 (H.263格式)作為訓練視頻。
[0074]1.1.訓練視頻的解碼
[0075]首先,進行訓練視頻的解碼。
[0076]MPEG-2/H.263 解碼端:將 flower.m2v 送到 MPEG-2 解碼端,解碼端將 flower.m2v解碼為 flower, yuvo 同樣,將 football.h263 送到 H.263 解碼端,解碼為 football, yuv。
[0077]在解碼過程中,每個幀按16 X 16宏塊提取256個像素點的殘差信息和MPEG-2宏塊模式和CBP,并計算16X16宏塊中16個4X4子宏塊的均值和方差,這3類信息(MPEG-2宏塊模式、CBP、均值和方差)統稱為MPEG-2解碼信息。將MPEG-2解碼信息保存到mpeg2.txt O
[0078]同樣,每個巾貞按16X 16宏塊提取256個像素點的殘差信息和H.263宏塊模式和CBP,并計算在16X 16宏塊中16個4X4子宏塊的均值和方差,這3類信息(H.263宏塊模式、CBP、均值和方差)統稱為H.263解碼信息。將H.263解碼信息保存到h263.txt。
[0079]1.2.解碼后的訓練視頻的H.264編碼
[0080]H.264編碼端:將flower, yuv和football, yuv分別送到H.264編碼端,在編碼時分別固定QP=16、25、36對兩個yuv視頻進行編碼,最后flower, yuv編碼后得到QP=16、25、36 的 3 個 h264 文件(例如,flowerl.h264、flower2.h264、flower3.h264), football,yuv 編碼后得到 QP=16、25、36 的 3 個 h264 文件(例如,footballl.h264、football2.h264、QP=football3.h264)。
[0081]1.3.H264編碼后的訓練視頻的解碼
[0082]H.264解碼端:將QP=25的flower2.h264送到H264解碼端,分別進行3次解碼,每次解碼都需要在解碼端編寫不同代碼來獲得如圖7中3個分類節點的宏塊模式。具體步驟如下。
[0083]首先,在第一次解碼時,使H.264的宏塊模式分類為Intra、Skip、16 X 16 (大類)、8X8 (大類);當將QP=25的flower2.h264解碼為flower2.yuv時,可獲得有關每巾貞的每個宏塊的宏塊模式屬于這4種宏塊模式分類中的哪個的信息,將其保存到class-1, txt (宏塊模式分類文件)中;
[0084]在第二次解碼時,在解碼端編寫代碼,在宏塊模式已分為Intra、Skip、16X 16 (大類)、8X8 (大類)的前提下,進一步將16X16 (大類)細分為16X16、16X8、8X16,而Intra、Skip、8X8(大類)分類不變,一共得到6種宏塊模式分類;當QP=25的flower2.h264解碼為flower2.yuv時,得到這6個宏塊模式分類與每巾貞的每個宏塊的對應關系,保存到class-2,txt O
[0085]在第三次解碼時,在解碼端編寫代碼,在宏塊模式已分為Intra、Skip、16X16、8X8的前提下,將8X8 (大類)細分為8X8、8X4、4X8、4X4,其他3個分類不變,一共得到7種宏塊模式分類;當QP=25的flower2.h264解碼為flower2.yuv時,可得到這7個宏塊模式分類,保存到class-3, txt ο
[0086]QP=25的f lowerf.h264解碼過程按3個分類節點提取3次宏塊模式分類,那么,對于其它兩個 QP (16,36)下的與 MPEG-2 相關的 h264 文件(flowerl.h264、flower3.h264),重復上述過程。這樣,QP=16、25、36 的 flowerl.h264、flower2.h264、flower3.h264 一共將提取9次宏塊模式分類,生成9個宏塊模式分類文件。
[0087]同樣,QP=16、25、36 的 footballl.h264、football2.h264、football3.h264 也將提取9次宏塊模式分類,生成9個宏塊模式分類文件。
[0088]2.生成數據集
[0089]如圖7,在宏塊模式決策樹的分類節點1,QP=25的flower2.h264將MPEG-2解碼信息mpeg2.txt和H.264解碼端第一次獲得的宏塊模式分類class-1, txt合并,得到分類節點I處的數據集;將MPEG-2解碼信息mpeg2.txt和H.264解碼端第二次獲得的宏塊模式分類class-2合并后,僅提取16X 16、16X8、8X 16分類所對應的數據集(數據行),即為分類節點3處的數據集;將MPEG-2解碼信息mpeg2.txt和H.264解碼端第三次獲得的宏塊模式分類class-3, txt合并后,僅提取8X8、8X4、4X8、4X4分類所對應的數據集,即為分類節點4處的數據集。數據集的形式如圖8所示。
[0090]按照圖7宏塊模式決策樹可知,flower.m2v — QP=25的flower.h264可以生成3個數據集,那么flower.m2v — QP=16、25、36的flower.h264可以生成9個數據集;同樣的,football.h263 — QP=16、25、36的football.h264可以生成9個數據集。每個數據集都被整理成arff文件格式(一共18個arff文件),如圖13所示,并送到Weka機器學習工具中進行訓練。.[0091]3.訓練數據集
[0092]將每一個arff文件都送到Weka機器學習工具中,采用J48分類器來挖掘每個arff數據集中MPEG-2/H.263的解碼信息與H.264的宏塊模式分類之間的關系。
[0093]具體地,利用J48分類器訓練分類節點I的arff數據集(解碼信息+上述第一次解碼產生的宏塊模式分類信息),得到J48訓練結果如圖14,即,得到了由J48分類器產生的二叉樹的偽代碼形式。同樣的,訓練分類節點3、分類節點4的arff數據集也將得到J48訓練結果,與圖14類似。
[0094]flower.m2v — QP=16、25、36 的 flower.h264 有 9 個 arff 數據集,則可以訓練得到9個J48訓練結果(每個QP對應3個二叉樹,一共9個二叉樹);football.h263 — QP=16、25,36的football.h264有9個arff數據集,則可以訓練得到9個J48訓練結果(每個QP對應3個二叉樹,一共9個二叉樹)。
[0095]每個QP對應的3個J48訓練結果(3個二叉樹)構成了一個編碼宏塊模式決策樹的3個節點(S卩,圖7中的節點1、3、4),編碼宏塊模式決策樹的節點2可采用公知的簡單判定方法獲得,而不需要通過訓練產生。這樣,3個QP對應的9個J48訓練結果一共構成了 3個編碼宏塊模式決策樹。
[0096](二 )、運動矢量決策樹的訓練
[0097]運動矢量決策樹的訓練過程與宏塊模式決策樹的訓練過程類似,只是提取的解碼信息不同、決策樹的結構不同,如圖10所示。運動矢量決策樹數據集的提取、生成和訓練過程可以簡化為以下內容。
[0098]1.提取數據集
[0099]由于運動矢量的分類較多,所以為了提高分類準確度,本發明采用多個不同運動程度的視頻作為訓練視頻,包括 flower.m2v、football.m2v> soccer.m2v、foreman.m2v 和flower.h263、football.h263、soccer.h263、foreman.h263。
[0100]1.1.訓練視頻的解碼
[0101]MPEG-2 解碼端:將 flower.m2v、football.m2v、soccer.m2v、foreman.m2v 送到MPEG-2 解碼端,解碼為 flower, yuv、football, yuv、soccer, yuv、foreman, yuv,在解碼每個幀時按16X 16宏塊提取16個4X4子宏塊的均值和方差、MPEG-2宏塊編碼模式、CBP及水平方向運動矢量,這些信息統稱為MPEG-2解碼信息I。再次將4個m2v視頻送到MPEG-2解碼端,在解碼時按16X 16宏塊提取16個4X4子宏塊的均值和方差、MPEG-2宏塊編碼模式、CBP及垂直方向運動矢量,這些信息統稱為MPEG-2解碼信息II。
[0102]H.263 解碼端:將 flower.h263、football.h263、soccer.h263、foreman.h263 送到 Η.263 解碼端,解碼為 flower, yuv、football, yuv、soccer, yuv、foreman, yuv,在解碼每個幀時按16X 16宏塊提取16個4X4子宏塊的均值和方差、H.263宏塊編碼模式、CBP及水平方向運動矢量,這些信息統稱為H.263解碼信息I。再次將4個m2v視頻送到MPEG-2解碼端,在解碼每個幀時按16X 16宏塊提取16個4X4子宏塊的均值和方差、H.263宏塊編碼模式、CBP及垂直方向運動矢量,這些信息統稱為H.263解碼信息II。
[0103]1.2.解碼后的訓練視頻的H.264編碼
[0104]H.264 編碼端:編碼端分別以 QP=16、25、36 將 flower, yuv, football.yuv>soccer,yuv、foreman, yuv 編碼為 QP=16、25、36 的 h264 視頻(flower.h264, football.h264、soccer.h264、foreman.h264),最后得到 12 個 h264 視頻。
[0105]1.3.Η.264編碼后的訓練視頻的解碼
[0106]H.264解碼端:將編碼端產生的12個h264視頻送到解碼端,解碼為12個yuv視頻,并在解碼過程中提取每個幀中每個宏塊的水平方向和垂直方向的運動矢量分類信息。將相同QP的h264視頻解碼獲得的水平方向運動矢量合并在一起,將相同QP的h264視頻解碼獲得的垂直方向運動矢量合并在一起。最終,MPEG-2 — H.264有I個水平方向運動矢量分類和I個垂直方向運動矢量分類;H.263 — H.264有I個水平方向運動矢量分類和I個垂直方向運動矢量分類。
[0107]2.數據集的生成
[0108]將m2v視頻的MPEG-2解碼信息I與QP=16、25、36的h264視頻解碼得到的水平方向運動矢量分類合并,得到3個數據集;將m2v視頻的MPEG-2解碼信息II與QP=16、25、36的h264視頻解碼得到的垂直方向運動矢量分類合并,得到3個數據集。同樣的,將h263視頻的H.263解碼信息I與QP=16、25、36的h264視頻解碼得到的水平方向運動矢量分類合并,得到3個數據集,將h263視頻的H.263解碼信息II與QP=16、25、36的h264視頻解碼得到的垂直方向運動矢量分類合并,得到3個數據集。所以,MPEG-2 — H.264訓練過程共生成6個數據集,H.263 — H.264訓練過程共生成6個數據集。將這12個數據集整理成arff形式,送到Weka機器學習工具中進行處理。
[0109]3.訓練arff數據集
[0110]將上一步提取的arff形式數據集送到Weka機器學習工具中。由于J48分類器訓練得到的J48訓練結果,在代碼實現時代碼量比較龐大,所以不易移植和修改。另一種分類器Jrip可以實現簡單分類。用Jrip分類器對arff形式數據集進行數據挖掘,可以得到如圖15的Jrip訓練結果。12個arff形式數據集可以訓練得到12個Jrip訓練結果(MPEG-2:每個QP對應2個(水平MV和垂直MV),H.263:每個QP對應2個(水平MV和垂直MV))。
[0111](三)、H.264宏塊模式決策樹與運動矢量決策樹的級聯實現
[0112]實現圖7的宏塊模式決策樹,是將決策樹中每個分類節點的J48訓練結果用代碼實現。實現圖10的運動矢量決策樹,是將水平、垂直方向決策樹中分類節點的Jrip訓練結果用代碼實現。
[0113]MPEG-2 — H.264的QP=25級聯決策樹模型是將QP=25的宏塊模式決策樹和QP=25的運動矢量決策樹級聯起來。由步驟3可以得到與圖7宏塊模式決策樹中3個分類節點一一對應的3個J48訓練結果,由步驟4可以得到與圖10運動矢量決策樹分類節點一一對應的Jrip分類結果。
[0114]首先編寫第I個分類節點的J48訓練結果,得到Intra、Skip、16X 16、8X8分類;然后在16X 16分類基礎上,用代碼編寫第3個分類節點的J48訓練結果;同樣在8X8分類基礎上,用代碼編寫第4個分類節點的J48訓練結果。經過分類節點I和分類節點3的級聯,以及分類節點I和分類節點4的級聯,最終H.264的9種宏塊編碼模式分類完畢。至此,宏塊模式決策樹代碼化結束。在H.264的9種宏塊模式確定后,對于16X 16、16X8、8X 16、8X8宏塊模式分類,需要級聯運動矢量決策樹,快速判決運動矢量。如圖10,用代碼編寫水平運動矢量決策樹中分類節點的Jrip訓練結果;同時,用代碼編寫垂直運動矢量決策樹中分類節點的Jrip訓練結果。至此,QP=25的宏塊模式決策樹和運動矢量決策樹都已代碼化。
[0115]在MPEG-2 — H.264中,每個QP級聯決策樹將代碼化實現3個J48訓練結果和2個Jrip訓練結果,那么3個不同QP級聯決策樹則將總共代碼化實現9個J48訓練結果和6個Jrip訓練結果。同樣的,H.263 — H.264中,3個不同QP級聯決策樹將代碼化實現9個J48訓練結果和6個Jrip訓練結果。
[0116]該部分是將訓練得到的分類結果用代碼實現,并能應用于實際轉碼。
[0117](四)、級聯決策樹的應用過程
[0118]實際轉碼時,輸入視頻先經過MPEG-2或H.263解碼端,然后進入H.264編碼端。一段視頻由很多幀圖像組成。第一幀圖像解碼完后進入編碼端完成轉碼過程,然后進行下一幀的解碼和編碼過程。依次類推。
[0119]視頻的一幀圖像(譬如大小為704X576)劃分為很多個不重疊的16X16的宏塊,宏塊的位置由水平坐標和垂直坐標來標識。在解碼端,一幀圖像中每個16 X 16宏塊分別解碼成yuv視頻,當一個宏塊解碼完畢時,根據宏塊坐標信息進入下一個宏塊的解碼并且提取每個16X 16宏塊中256個像素點的殘差信息,并按照4X4子宏塊計算均值和方差,共有16個均值和16個方差,還有MPEG-2/H.263每個16 X 16宏塊的編碼模式、CBP以及水平方向運動矢量和垂直方向運動矢量。這些信息都將傳遞到H.264編碼端。
[0120]當一幀中所有宏塊都解碼完畢時,進入H.264編碼端。在H.264編碼端,根據每個宏塊的QP大小,選擇適合的宏塊模式決策樹和運動矢量決策樹;傳遞過來的解碼信息則將用于每個宏塊模式決策樹和運動矢量決策樹的判決。當第一個宏塊的宏塊模式決策樹應用完成后,判決得到的宏塊模式將被保存到編碼端。如果宏塊模式判決所得到16X 16,16X8,8X 16和8X8宏塊模式中的一個,則還需要進入運動矢量決策樹流程,將運動矢量判決所得到的運動矢量保存到編碼端。另外,也可以將運動矢量判決所得到的運動矢量作為小范圍運動搜索的起點,進行2個整像素范圍內的運動搜索,對快速判決得到的運動矢量進行微調之后保存到編碼端;如果宏塊模式判決得到8X4、4X8、4X4、Intra、Skip宏塊模式中的一個,則利用傳統的運動估計和運動搜索方式(在預編碼過程中)獲得運動矢量,最后也將其保存到編碼端。對于當前宏塊,獲得宏塊模式及運動矢量信息后將進入后續編碼階段,直至這個宏塊被編碼完畢。當第一個宏塊編碼完畢后,第二個宏塊將重復以上過程,一直到一中貞中所有宏塊都編碼完畢。
[0121]以上是一幀圖像的解碼、編碼流程,下一幀的轉碼過程與其相同。當一段視頻的所有幀都轉碼結束后,轉碼系統才可以輸出H.264編碼標準的視頻文件。
[0122](五)、降分辨率下宏塊模式決策樹與運動矢量決策樹
[0123]前部分實現的是等分辨率下宏塊模式決策樹與水平、垂直運動矢量決策樹的具體訓練過程與實現形式。這部分內容實現的是降分辨率下宏塊模式決策樹和水平、垂直運動矢量決策樹的訓練與實現,由于過程與等分辨率下的過程類似,因此簡要說明。
[0124]本發明實現的降分辨率技術可以應用在MPEG-2 — H.264和H.263 — H.264轉碼技術中。降分辨率的轉碼器是在水平和垂直方向上分別進行2倍的降采樣,即降分辨的視頻幀大小是原視頻幀大小的1/4。如圖11所示,在MPEG-2/H.263降分辨率過程中,原視頻幀中4個空間相鄰宏塊對應降分辨率下視頻幀中I個宏塊。
[0125]與等分辨率轉碼器的流程相似,采用級聯決策樹的數據挖掘模型對輸入視頻進行轉碼,不同的是,宏塊模式決策樹利用原視頻4個宏塊的殘差信息、CBP和宏塊模式,決策出降分辨率視頻的I個宏塊的模式;水平運動矢量決策樹利用4個宏塊的殘差信息、CBP、宏塊模式和水平方向運動矢量信息,決策出降分辨率視頻的I個宏塊的水平方向運動矢量,垂直運動矢量決策樹利用4個宏塊的殘差信息、CBP、宏塊模式和垂直方向運動矢量信息,決策出降分辨率視頻的I個宏塊的垂直方向運動矢量。
[0126]降分辨率下H.264宏塊模式決策樹與水平、垂直運動矢量決策樹的訓練過程與實現方式是類似的。采用的訓練視頻是一樣的,只是提取的MEPG-2/H.263解碼信息是4個空間相鄰的宏塊信息,提取的H.264宏塊模式/運動矢量信息是在降分辨率下對應I個宏塊的信息。將MPEG-2/H.263解碼信息和H.264宏塊模式/運動矢量信息一一合并作為數據集。降分辨率下得到的數據集個數與等分辨率下的數據集個數相同。
[0127]數據集準備完畢后,整理成arff文件的形式送到Weka工具進行分類訓練,最后得到性能好的宏塊模式決策樹和運動矢量決策樹,最后將其代碼化。
[0128]降分辨率的轉碼系統中宏塊模式決策樹和運動矢量決策樹的應用與等分辨率下相似,流程是一樣的,只是在解碼端的視頻幀大小是原始大小,譬如704X576,提取每個宏塊的解碼信息;進入H.264編碼端后,視頻幀的大小變為原始的四分之一,即352X288。這時讀取一幀中每個宏塊的QP,根據QP大小選擇決策樹,獲得宏塊模式和運動矢量后,進入后續編碼階段。一幀一幀進行解碼、編碼,直到所有視頻都轉碼完畢。
[0129](六)、高效自適應視頻轉碼系統
[0130]下面,說明根據本發明的實施例的FFMPEG平臺下高效自適應視頻轉碼系統框架。
[0131]這部分實現的是將訓練好并代碼化的宏塊模式策樹和運動矢量決策樹應用到實際轉碼技術中,實現自適應的快速轉碼,代替原始的全解全編技術。
[0132]高效自適應視頻轉碼的實現依托于發展成熟的開源代碼FFMPEG和libx264的聯合開發。FFMPEG是一個開源的視頻和音頻流處理工具,它提供了錄制、轉換以及流化音視頻的完整解決方案,還包含了非常先進的音頻/視頻編解碼庫libavcodec。FFMPEG框架十分完整,具有強大的解封裝格式支持,使用FFMPEG作為系統基礎可以將重心集中在視頻轉碼部分而無需考慮解封裝。
[0133]由圖4可知,高效自適應視頻轉碼系統的幾個主要模塊為:參數設置模塊、標準解碼/編碼模塊、輸入視頻信息提取模塊、等分辨率/降分辨率的宏塊快速決策模塊、等分辨率/降分辨率的運動矢量快速決策模塊。標準解碼/編碼模塊實現按照FFMPEG和libx264的原始代碼進行實現。啟用快速轉碼模式時調用等分辨率/降分辨率的宏塊模式快速決策模塊直接決定宏塊模式,后續的運動估計操作在選定宏塊的基礎上進行,在每個宏塊上啟動等分辨率/降分辨率運動矢量模塊快速決定運動矢量。編碼過程的其他步驟如率失真操作等保持原標準解碼/編碼模塊實現方式不變。其他的各個模塊具體的設計和實現如下。
[0134]1.參數設置模塊
[0135]該模塊用于接收命令進行參數設定。在實際的應用中,系統檢測網絡狀況或終端處理能力返回信息,可根據該信息進行這些參數設定最終輸出碼流的比特率值、是否進行降分辨率處理等操作。由于本文涉及的是2倍降分辨率轉碼,所以要根據目標碼流的分辨率大小來判斷轉碼前后的視頻是否為2倍降分辨率。
[0136]模塊輸入:對轉碼輸出視頻的要求,包括編碼格式以及降分辨率要求;模塊輸出:設置對應參數。
[0137]2.信息提取模塊
[0138]若快速模式處于開啟狀態,則需要進行快速轉碼的第一步,對輸入視頻的相關信息提取。需要進行提取的是輸入序列殘差子塊的16個均值和16個方差、宏塊模式、6位已編碼宏塊模式信息、運動矢量信息。對于宏塊模式決策樹,每個宏塊對應39個特征;對于運動矢量決策樹,每個宏塊對應48個特征。該模塊的實現在FFMPEG中對應的MPEG-2或H.263解碼器中進行。
[0139]模塊輸入:原始視頻巾貞信息;模塊輸出:各個宏塊對應的39或48個特征。
[0140]3.宏塊模式快速判決模塊
[0141]若快速轉碼模式開啟,則該模塊在編碼時會將信息提取模塊獲取的信息送至分層的決策樹模型中直接獲取當前宏塊的模式決策結果,略過遍歷選擇最佳宏塊模式的步驟。此外,根據轉碼是否進行2倍降分辨率操作會選擇不同的決策樹模型。等分辨率情況模塊輸入:宏塊的39個信息特征;模塊輸出:該宏塊所采用的模式。
[0142]降分辨率情況模塊輸入:對應的4個宏塊的39X4個信息特征;模塊輸出:該降分辨率宏塊所采用模式。
[0143]4.運動矢量快速判決模塊
[0144]若快速轉碼模式開啟,則該模塊在編碼時會對應到編碼宏塊模式中。對于一種宏塊模式,將信息提取模塊獲取的信息送到水平方向運動矢量決策樹模型中直接獲取當前宏塊的水平方向的運動矢量;同時將提取的信息送到垂直方向運動矢量決策樹模型中直接獲取當前宏塊的垂直方向的運動矢量。得到判決后的運動矢量后,保存到編碼端;也可以在2個整像素范圍內進行運動搜索,最后得到更精確的運動矢量。然后編碼器利用兩個方向的運動矢量進行下一步編碼。
[0145]在本模塊中,僅對16X16、16X8、8X16、8X8的宏塊模式進行運動矢量的快速判決,其他宏塊模式采取大范圍內的運動搜索的方法獲得當前運動矢量。
[0146]等分辨率模塊輸入-水平方向:宏塊的40個信息特征;模塊輸出:該宏塊的水平方向的運動矢量。
[0147]等分辨率模塊輸入-垂直方向:宏塊的40個信息特征;模塊輸出:該宏塊的垂直方向的運動矢量。
[0148]降分辨率模塊輸入-水平方向:對應的4個宏塊的40X4個信息特征;模塊輸出:該降分辨率宏塊的水平方向的運動矢量。
[0149]降分辨率模塊輸入-垂直方向:對應的4個宏塊的40X4個信息特征;模塊輸出:該降分辨率宏塊的垂直方向的運動矢量。
[0150]綜上所述,本領域的技術人員能夠理解,對本發明的上述實施例能夠做出各種修改、變型、以及替換,其均落入如所附權利要求限定的本發明的保護范圍。
【權利要求】
1.一種基于數據挖掘的高效自適應的視頻轉碼方法,包括以下步驟: 步驟1、輸入第一壓縮標準的待轉碼的視頻; 步驟2、對所述待轉碼的視頻進行解碼,生成待編碼的視頻,并提取每個視頻幀的每個宏塊的解碼信息; 步驟3、將所提取的解碼信息輸入到編碼宏塊模式決策樹,通過編碼宏塊模式決策樹來確定待編碼的視頻的每個視頻幀的每個宏塊將采用的編碼宏塊模式; 步驟4、根據所確定的編碼宏塊模式、以及每個宏塊的運動矢量,對待編碼的視頻的每個視頻幀的每個宏塊進行第二壓縮標準的編碼,從而將待編碼的視頻編碼為第二壓縮標準的轉碼后的視頻。
2.如權利要求1所述的視頻轉碼方法,其中,所述第一壓縮標準是MPEG-2或H.263壓縮標準,所述第二壓縮標準是H.264壓縮標準,所述待編碼的視頻是YUV格式的視頻,所述解碼信息包括每個視頻幀的每個宏塊的殘差信息、以及編碼塊模式信息。
3.如權利要求2所述的視頻轉碼方法,其中,在所述步驟2中,還需要提取每個視頻幀的每個宏塊的運動矢量信息。
4.如權利要求3所述的視頻轉碼方法,其中,所述運動矢量信息包括水平運動矢量信息和垂直運動矢量信息。
5.如權利要求4所述的視頻轉碼方法,其中,所述編碼宏塊模式包括以下模式:Intra、16X16、16X8、8X16、8X8、8X4、4X8、4X4、skip,其中 16X 16、16X8、8X 16 構成第一大類,8\8、8父4、4\8、4父4構成第二大類。
6.如權利要求5所述的視頻轉碼方法,其中,在所述步驟3之后,還包括以下步驟:` 步驟3-1、如果所確定的某個宏塊將采用的編碼宏塊模式屬于16X16、16X8、8X16和8X8中的一個,則將所提取的解碼信息以及運動矢量信息輸入到所述運動矢量決策樹,通過所述運動矢量決策樹來確定待編碼的視頻的每個視頻幀的每個宏塊的運動矢量; 步驟3-2、如果所確定的某個宏塊將采用的編碼宏塊模式不屬于16X16、16X8、8X16和8X8中的一個,則通過運動估計和運動搜索方式確定待編碼的視頻的每個視頻幀的每個宏塊的運動矢量。
7.如權利要求6所述的視頻轉碼方法,其中,在所述步驟2中,還提取每個視頻幀的每個宏塊的量化參數, 并且,在所述步驟3中,如果所提取的量化參數的值為12~21,則所述編碼宏塊模式決策樹是第一編碼宏塊模式決策樹,如果所提取的量化參數的值為22~30,則所述編碼宏塊模式決策樹是第二編碼宏塊模式決策樹,如果所提取的量化參數的值為31~40,則所述編碼宏塊模式決策樹是第三編碼宏塊模式決策樹, 并且,其中,所述第一至第三編碼宏塊模式決策樹分別對應于不同量化參數16、25、36。
8.如權利要求6或7所述的視頻轉碼方法,在所述步驟3中,如果所提取的量化參數的值為12~21,則所述運動矢量決策樹是第一水平運動矢量決策樹和第一垂直運動矢量決策樹,如果所提取的量化參數的值為22~30,則所述運動矢量決策樹是第二水平運動矢量決策樹和第二垂直運動矢量決策樹,如果所提取的量化參數的值為31~40,則所述運動矢量決策樹是第二水平運動矢量決策樹和第二垂直運動矢量決策樹, 并且,其中,所述第一至第三水平運動矢量決策樹分別對應于不同量化參數16、25、36,所述第一至第三垂直運動矢量決策樹分別對應于不同量化參數16、25、36。
9.如權利要求6所述的視頻轉碼方法,其中,當待轉碼的視頻的碼率和通過預編碼確定的轉碼后視頻的碼率的比值小于第一閾值時,所述編碼宏塊模式決策樹是第一編碼宏塊模式決策樹,當所述比值不小于第一個閾值且小于第二個閾值時,所述編碼宏塊模式決策樹是第二編碼宏塊模式決策樹,當所述比值不小于第三個閾值時,所述編碼宏塊模式決策樹是第二編碼宏塊模式決策樹, 并且,其中,所述第一至第三編碼宏塊模式決策樹分別對應于不同量化參數16、25、36。
10.如權利要求6或7所述的視頻轉碼方法,其中,在所述步驟3中,當待轉碼的視頻的碼率和通過預編碼確定的轉碼后視頻的碼率的比值小于第一閾值時,所述運動矢量決策樹是第一水平運動矢量決策樹和第一垂直運動矢量決策樹,當所述比值不小于第一個閾值且小于第二個閾值時,所述運動矢量決策樹是第二水平運動矢量決策樹和第二垂直運動矢量決策樹,當所述比值不小于第三個閾值時,所述運動矢量決策樹是第三水平運動矢量決策樹和第三垂直運動矢量決策樹, 并且,其中,所述第一至第三水平運動矢量決策樹分別對應于不同量化參數16、25、36,所述第一至第三垂直運動矢量決策樹分別對應于不同量化參數16、25、36。
11.如權利要求7所述的視頻轉碼方法,其中,對于每個不同的量化參數,分別通過以下步驟生成對應的所述編碼宏塊模式決策樹: 步驟11、對第一壓縮標準的訓練視頻進行解碼,生成待編碼的訓練視頻,并提取每個視頻幀的每個宏塊的解碼信息; 步驟12、固定量化參數,將待編碼的訓練視頻編碼為第二壓縮標準的訓練視頻; 步驟13、將第二壓縮標準的訓練視頻解碼為待編碼的訓練視頻,獲得每個視頻幀的每個宏塊的編碼宏塊模式;` 步驟14、將每個視頻幀的每個宏塊的解碼信息以及編碼宏塊模式輸入到Weka機器學習工具中的J48分類器,產生與固定的量化參數對應的所述編碼宏塊模式決策樹。
12.如權利要求11所述的視頻轉碼方法,其中,所述步驟13包括: 步驟13-1、對第二壓縮標準的訓練視頻進行第一次解碼,獲得每個視頻幀的每個宏塊的編碼宏塊模式屬于Intra、Skip、第一大類、第二大類中的哪個的信息; 步驟13-2、對第二壓縮標準的訓練視頻進行第二次解碼,獲得每個視頻幀的每個宏塊的編碼宏塊模式屬于Intra、Skip、16 X 16、16 X 8、8 X 16、第二大類中的哪個的信息; 步驟13-3、對第二壓縮標準的訓練視頻進行第三次解碼,獲得每個視頻幀的每個宏塊的編碼宏塊模式屬于Intra、Skip、第一大類、8X8、8X4、4X8、4X4中的哪個的信息。
13.如權利要求12所述的視頻轉碼方法,其中,所述步驟14包括: 步驟14-1、根據在所述步驟11和所述步驟13-1中獲得的信息,生成所述編碼宏塊模式決策樹的第一節點,其用來判定每個視頻幀的每個宏塊的編碼宏塊模式屬于Intra、Skip、第一大類、第二大類中的哪個; 步驟14-2、根據在所述步驟11和所述步驟13-2中獲得的信息,生成所述編碼宏塊模式決策樹的第二節點,其用來在第一節點判定某個宏塊的編碼宏塊模式屬于第一大類的情況下,判定該宏塊的編碼宏塊模式屬于16X 16、16X8、8X 16中的哪個; 步驟14-3、根據在所述步驟11和所述步驟13-3中獲得的信息,生成所述編碼宏塊模式決策樹的第三節點,其用來在第一節點判定某個宏塊的編碼宏塊模式屬于第二大類的情況下,判定該宏塊的編碼宏塊模式屬于8X8、8X4、4X8、4X4中的哪個。
14.如權利要求11所述的視頻轉碼方法,其中,對于三個不同的量化參數16、25和36,分別進行所述步驟12至14,分別生成所述第一至第三編碼宏塊模式決策樹。
15.如權利要求8所述的視頻轉碼方法,其中,所述運動矢量決策樹是通過以下步驟而生成的: 步驟21、對第一壓縮標準的訓練視頻進行解碼,生成待編碼的訓練視頻,并提取每個視頻幀的每個宏塊的解碼信息、以及水平和垂直運動矢量信息; 步驟22、固定量化參數,將待編碼的訓練視頻編碼為第二壓縮標準的訓練視頻; 步驟23、將第二壓縮標準的訓練視頻解碼為待編碼的訓練視頻,獲得每個視頻幀的每個宏塊的水平和垂直運動矢量信息; 步驟24、將每個視頻幀的每個宏塊的解碼信息以及水平和垂直運動矢量信息輸入到Weka機器學習工具中的Jrip分類器,產生所述水平和垂直運動矢量決策樹。
16.如權利要求15所述的視頻轉碼方法,其中,對于三個不同的量化參數16、25和36,分別進行所述步驟22至24,分別生成所述第一至第三水平和垂直運動矢量決策樹。
17.如權利要求1所述的視頻轉碼方法,其中,所述第一壓縮標準的待轉碼的視頻的寬度和高度方向的像素數目分別為所述第二壓縮標準的視頻的兩倍。
18.一種用于進行根據權利要求1至17之一所述的視頻轉碼方法的視頻轉碼系統,包括以下部分: 參數設置模塊,用來進行所述步驟1`,并根據待轉碼的視頻和轉碼后的視頻的屬性來設置參數; 信息提取模塊,用來進行所述步驟2, 宏塊模式快速判決模塊,用來進行所述步驟3, 運動矢量快速判決模塊,用來進行所述步驟3-1、3-2 ; 標準編碼模塊,用來進行所述步驟4。
【文檔編號】H04N19/176GK103888770SQ201410098019
【公開日】2014年6月25日 申請日期:2014年3月17日 優先權日:2014年3月17日
【發明者】莊伯金, 董海豐, 蘇菲, 趙衍運, 趙志誠 申請人:北京郵電大學