本發(fā)明涉及視頻編解碼領域,尤其涉及基于hevc-scc的快速碼率轉(zhuǎn)碼算法。
背景技術:
hevc編碼標準中,為了提高壓縮比,一幅輸入圖像首先被劃分為預定義大小的圖像塊,簡稱編碼樹單元(codingtreeunit,ctu)。每個ctu可以由幾個編碼單元(codingunit,cu)組成,cu存在8×8,16×16,32×32,64×64的亮度樣本和對應色度樣本。cu還可以分解為更小的預測單元(predictionunit,pu)和變換單元(transformunit,tu),使編碼、預測和變換得到更好的處理;幀內(nèi)模式選擇方向由h.264/avc的9種模式擴展為35種。據(jù)統(tǒng)計,hevc模式選擇的耗時占整個編碼時間的60~70%。同時hevc還引入了高級運動向量預測(advancemotionvectorprediction,amvp)、merge模式及基于merge模式的skip模式、樣點自適應補償(sampleadaptiveoffset,sao)等技術。這些技術雖然能在提高壓縮率和視頻質(zhì)量上帶來不錯的效果,但卻增加了hevc編碼器的復雜度,加大了實用的難度。不論是初期的hevc標準還是最初的h.264/avc標準都是致力于壓縮照相機捕獲的自然圖像視頻序列。雖然在研究發(fā)展這些標準的時候只使用了幾種不同的測試序列,但是自然圖像序列有著相同的特征比如都存在傳感器噪聲,有著豐富的平移運動等。然而最近出現(xiàn)了一些擴展的應用,如無線顯示、娛樂系統(tǒng)、遠程桌面、遠程游戲、桌面共享、遠程教育、視頻會議等應用,它們需要使用視頻設備顯示除了自然圖像外的更多內(nèi)容。這些內(nèi)容包括由自然圖像、計算機圖形、無線顯示、平板電腦和汽車顯示、屏幕共享等混合顯示內(nèi)容。這些應用的視頻內(nèi)容的類型包括包含自然圖像內(nèi)容在內(nèi)的大量靜止或者運動的電腦圖形圖像和文本。然而,不同于自然圖像內(nèi)容,屏幕內(nèi)容通常不包含傳感器噪聲,這種內(nèi)容可能有大量均勻平坦的區(qū)域,重復的模式,高飽和度或有限數(shù)量的顏色,圖片中存在數(shù)值相同的塊或區(qū)域。鑒于這些應用的發(fā)展,hevc也在進行不斷地擴展與完善,hevc的屏幕內(nèi)容編碼(screencontentcoding,scc)擴展(hevc-scc)是jct-vc最近正在研發(fā)的內(nèi)容,2014年4月在評估scc提案的多種技術后,把屏幕內(nèi)容編碼標準化為hevc的擴展,2014年7月hevc屏幕內(nèi)容編碼草案1正式頒布。hevc-scc標準化工作的主要目的是能夠更進一步提高包含大量靜止或者運動渲染的圖形,文本(不是動畫),還有照相機捕獲的自然圖像混合而成的視頻的壓縮性能。hevc-scc的性能與現(xiàn)存的hevc版本相比,在相同的失真下能節(jié)省更多的比特速率。hevc-scc在原有hevc標準的基礎上引入了很多新技術,希望由此獲得對屏幕內(nèi)容編碼的更好的編碼性能。這些技術主要包括:幀內(nèi)塊復制(intrablockcopy,ibc)、調(diào)色板模式(palettemode,plt)、自適應顏色空間轉(zhuǎn)換(adaptivecolourtransform,act)和自適應運動矢量解析(adaptivemotionvectorresolution,amvr)。這些技術是在原h(huán)evc技術上的擴展,在很大程度上提高了屏幕內(nèi)容視頻的壓縮率,在另外一方面,加入的新的技術更加增加了編碼器的復雜度。所以,在實際應用中,為了更好的推進hevc屏幕內(nèi)容編碼的發(fā)展與應用,研究快速算法降低其算法復雜度、加快其編碼速度是必然的、亟待解決的,具有重大意義的。
雖然研究視頻編碼的快速算法來降低算法的復雜度十分重要,但是hevc-scc標準的應用包括掌上電腦、智能手機等電子設備支持的軟件,特別是視頻會議、遠程教育等應用的客戶端處于不同帶寬的網(wǎng)絡或使用不同的視頻標準。因而,需要應用視頻轉(zhuǎn)碼技術將視頻流轉(zhuǎn)換成不同碼率的視頻流,以滿足不同的網(wǎng)絡以及各種用戶的需求,從而實現(xiàn)不同網(wǎng)絡、不同終端設備之間的無縫連接,這就需要研究視頻轉(zhuǎn)碼技術。視頻轉(zhuǎn)碼技術即將視頻流從一種格式轉(zhuǎn)換成另外一種格式,目的是使不同視頻格式之間、不同接入設備之間、各類異質(zhì)網(wǎng)絡之間能無縫對接、通信順暢。視頻轉(zhuǎn)碼主要分為兩大類:一類是不同標準之間的轉(zhuǎn)碼,另一類是同種標準內(nèi)的轉(zhuǎn)碼。視頻轉(zhuǎn)碼按功能和用途可以分為空間分辨率轉(zhuǎn)碼、時間分辨率轉(zhuǎn)碼、碼率轉(zhuǎn)碼、語法轉(zhuǎn)換、視頻編碼格式轉(zhuǎn)換等類。碼率轉(zhuǎn)碼,實際應用中主要研究降碼率轉(zhuǎn)碼,其目的是在保持低復雜度和高視頻質(zhì)量的前提下有效降低碼率,使實際應用中輸出的碼率符合網(wǎng)絡條件或用戶設備的條件。碼率轉(zhuǎn)碼主要應用于因特網(wǎng)流媒體、電視廣播等傳輸領域。降碼率轉(zhuǎn)碼的研究過程中主要考慮減少誤差漂移以及降低轉(zhuǎn)碼復雜度。但現(xiàn)有的視頻轉(zhuǎn)碼技術主要是研究基于自然圖像視頻的轉(zhuǎn)碼,大部分的快速轉(zhuǎn)碼方法都不適用于屏幕內(nèi)容視頻,或者應用于屏幕內(nèi)容視頻后視頻轉(zhuǎn)碼效果太差。因此研究基于hevc屏幕內(nèi)容視頻快速碼率轉(zhuǎn)碼技術,對視頻技術的發(fā)展具有重要的現(xiàn)實意義。
目前,像素域轉(zhuǎn)碼的轉(zhuǎn)碼效率通常都比較低,消耗的資源比較大,且設備比較昂貴,往往不能滿足于實際的工程需要。并且現(xiàn)有的視頻碼率轉(zhuǎn)碼技術主要是研究基于自然圖像視頻的轉(zhuǎn)碼,已有的大部分方法不適用屏幕內(nèi)容視頻,目前還沒有基于hevc屏幕內(nèi)容的快速碼率轉(zhuǎn)碼方面的研究。
技術實現(xiàn)要素:
本發(fā)明目的在于提供一種基于hevc-scc的快速碼率轉(zhuǎn)碼方法,以解決的現(xiàn)有轉(zhuǎn)碼方法不適用于屏幕內(nèi)容視頻轉(zhuǎn)碼的現(xiàn)有技術問題。
為實現(xiàn)上述目的,本發(fā)明提供了一種基于hevc-scc的快速碼率轉(zhuǎn)碼方法,包括以下步驟:
搭建hevc-scc碼率轉(zhuǎn)碼框架,獲取當前編碼單元的深度以及當前編碼單元解碼時對應的解碼單元的深度,統(tǒng)計與當前編碼單元相鄰的已編碼單元的模式信息和當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式信息;
記錄與當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及相鄰的已編碼單元的深度,同時記錄當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù);
計算與當前編碼單元相鄰的已編碼單元的平均深度,當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率;
根據(jù)當前編碼單元的深度、當前編碼單元解碼時對應的解碼單元的深度、轉(zhuǎn)碼碼率量化差、當前編碼單元相鄰的已編碼單元的平均深度、當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)、當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中inrtabc模式的概率來決定是否跳過inrtabc模式和/或normalintra模式。
依托上述方法,本發(fā)明還提出了與上述方法相對應的一種基于hevc-scc的快速碼率轉(zhuǎn)碼系統(tǒng),包括以下模塊:
數(shù)據(jù)獲取模塊:用于獲取當前編碼單元的深度以及當前編碼單元解碼時對應的解碼單元的深度,用于統(tǒng)計當前編碼單元相鄰的已編碼單元的模式信息和當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式信息,用于記錄當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及相鄰的已編碼單元的深度,以及用于記錄當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù);
計算模塊:用于計算當前編碼單元相鄰的已編碼單元的平均深度,當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率;
決策模塊:用于根據(jù)當前編碼單元的深度、當前編碼單元解碼時對應的解碼單元的深度、轉(zhuǎn)碼碼率量化差、當前編碼單元相鄰的已編碼單元的平均深度、當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)、當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率來決定是否跳過intrabc模式和/或normalintra模式。
本發(fā)明具有以下有益效果:
本發(fā)明針對于hevc-scc碼率轉(zhuǎn)碼框架,提出了適用于屏幕內(nèi)容視屏的幀內(nèi)預測快速碼率轉(zhuǎn)碼算法,通過提出的快速轉(zhuǎn)碼算法極大程度上加快轉(zhuǎn)碼的速度,同時在不增加復雜性的前提下保證了視頻圖像的質(zhì)量。
下面將參照附圖,對本發(fā)明作進一步詳細的說明。
附圖說明
構成本申請的一部分的附圖用來提供對本發(fā)明的進一步理解,本發(fā)明的示意性實施例及其說明用于解釋本發(fā)明,并不構成對本發(fā)明的不當限定。在附圖中:
圖1是本發(fā)明優(yōu)選實施例的一種基于hevc-scc的快速碼率轉(zhuǎn)碼算法流程圖;
圖2是本發(fā)明優(yōu)選實施例的hevc-scc碼率轉(zhuǎn)碼結構圖;
圖3是本發(fā)明優(yōu)選實施例的cu映射圖;
圖4是本發(fā)明優(yōu)選實施例編碼單元模式選擇快速轉(zhuǎn)碼算法流程圖;
圖5是本發(fā)明優(yōu)選實施例預測單元模式選擇快速轉(zhuǎn)碼算法流程圖。
具體實施方式
以下結合附圖對本發(fā)明的實施例進行詳細說明,但是本發(fā)明可以由權利要求限定和覆蓋的多種不同方式實施。
實施例1:
碼率轉(zhuǎn)碼可以分為cbr(constantbitrate,固定碼率)轉(zhuǎn)碼和vbr(variablebitrate,可變碼率)。cbr轉(zhuǎn)碼是指將一個固定碼率(ri)的輸入視頻流通過轉(zhuǎn)碼器轉(zhuǎn)碼成另一個固定碼率(ro)的目標視頻流輸出。其中,ri和ro都是提前設定好的,要使編碼器輸出目標碼率的視頻流,在編碼器中需要開啟碼率控制開關。vbr轉(zhuǎn)碼則是通過改變量化參數(shù)qp來實現(xiàn)碼率轉(zhuǎn)碼,不需要開啟碼率控制。當qp較小時,輸出的視頻流碼率較大,當qp較大時,輸出的視頻碼率較小。因此,在進行vbr轉(zhuǎn)碼時,通常輸入視頻流的qpi要小于輸出視頻流的qpo,可以通過調(diào)整兩者的轉(zhuǎn)碼碼率量化差δqp來控制碼率的大概范圍,δqp可以被定義為δqp=qpo-qpi,本發(fā)明主要研究的是vbr轉(zhuǎn)碼。本實施例中“intrabc”模式是指intrablockcopy,幀內(nèi)復制塊模式;“normalintra模式”是指傳統(tǒng)的幀內(nèi)模式。
如圖1所示,本實施例公開了一種基于hevc-scc的快速碼率轉(zhuǎn)碼方法,包括:
步驟s1、搭建hevc-scc碼率轉(zhuǎn)碼框架,獲取當前編碼單元的深度以及當前編碼單元解碼時對應的解碼單元的深度,統(tǒng)計與當前編碼單元相鄰的已編碼單元的模式信息和當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式信息。傳統(tǒng)的轉(zhuǎn)碼結構是由hevc-scc解碼器和編碼器串聯(lián)而成,高碼率視頻碼流首先經(jīng)過解碼器解碼得到未壓縮的視頻圖像序列,然后進入編碼器進行編碼得到低碼率視頻碼流。這種結構簡單易行且靈活,不需要改變解碼器和編碼器的基本結構,保證了解碼器和編碼器的獨立性和完整性。但是這種轉(zhuǎn)碼結構實現(xiàn)時的復雜度比較高。為了降低其復雜度,本發(fā)明提出了如圖2所示的hevc-scc碼率轉(zhuǎn)碼結構圖,編碼器利用解碼出來的模式、mv、cu(編碼單元)深度和pu(預測單元)模式等信息來簡化編碼過程,提升轉(zhuǎn)碼的效率。本發(fā)明需要獲取當前編碼單元的深度dcur以及當前編碼單元解碼時對應的解碼單元的深度ddec,統(tǒng)計當前編碼單元相鄰的已編碼單元的模式信息和當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式信息為后續(xù)步驟所用。圖3給出了當前幀中當前編碼單元和當前編碼單元在解碼端的映射關系圖。左側為解碼幀,右側為當前幀。
步驟s2、記錄與當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及相鄰的已編碼單元的深度,同時記錄當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)。記錄當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)ncuribc和normalintra模式的個數(shù)ncurintra以及相鄰的已編碼單元的深度,同時記錄當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)ndecibc和normalintra模式的個數(shù)ndecintra,并定義flag1和flag0。
步驟s3、計算與當前編碼單元相鄰的已編碼單元的平均深度,當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率。計算當前編碼單元相鄰的已編碼單元的平均深度dcurave,當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率ribc。
步驟s4、根據(jù)當前編碼單元的深度、當前編碼單元解碼時對應的解碼單元的深度、轉(zhuǎn)碼碼率量化差、當前編碼單元相鄰的已編碼單元的平均深度、當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)、當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中inrtabc模式的概率來決定是否跳過inrtabc模式和/或normalintra模式。參見圖4(a)和圖4(b),決定是否跳過intrabc模式和/或normalintra模式遵循以下規(guī)則:
(1)如果解碼時解碼單元的深度ddec=3,則當前編碼單元深度范圍為dcur={2,3},即編碼時跳過深度為0和1層的所有模式率失真優(yōu)化計算;
(2)如果解碼時解碼單元的深度ddec=0,當δqp<λ時,則當前編碼單元深度范圍為dcur={0,1},編碼時跳過深度為2和3層的所有模式率失真優(yōu)化計算;當δqp≥λ時,并且當前編碼單元相鄰編碼單元的平均深度dcurave<0.5,編碼時跳過深度為2和3層的所有模式率失真優(yōu)化計算,其中δqp為轉(zhuǎn)碼碼率量化差,λ為常數(shù);
(3)如果解碼時解碼單元的深度ddec=1,當δqp<λ時,則當前編碼單元深度范圍為dcur={0,1,2},編碼時跳過深度為3的層的所有模式率失真優(yōu)化計算;當δqp≥λ時,并且當前編碼單元相鄰編碼單元的平均深度dcurave<1.5,編碼時跳過深度為3的層的所有模式率失真優(yōu)化計算;
(4)如果解碼時ddec>dcur,且當前編碼單元的解碼時對應解碼單元的模式是intrabc,滿足以下條件其中的一個則跳過normalintra模式:
①滿足(δqp<λ&&ndecibc≥2)||ncuribc≥3||ndecibc≥3,跳過normalintra模式,否則執(zhí)行②;
②滿足δqp≥λ&&ncuribc≥2,跳過normalintra模式,否則執(zhí)行③;
③滿足ribc>0.6||ncuribc+ndecibc<0.8(ncurintra+ndecintra),跳過normalintra模式,否則執(zhí)行④;
④滿足ncuribc≥1&&ndecibc≥1,跳過normalintra模式,否則結束其中ndecibc為當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù),ndecintra為當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中normalintra模式的個數(shù),ncuribc為當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù),ncurintra為當前編碼單元相鄰的已編碼單元的模式中normalintra模式的個數(shù);
(5)當dcur<3&&ribc<0.05時,跳過intrabc模式,否則當解碼時的深度ddec>dcur,且當前編碼單元的解碼時模式是normalintra,滿足以下條件其中的一個則跳過intrabc模式,否則執(zhí)行步驟(6):
①滿足(δqp<λ&&ndecintra≥3)||(δqp≥λ&&ncurintra≥3),跳過intrabc模式,否則執(zhí)行②;
②滿足ncurintra≥1&&ndecintra≥1,跳過intrabc模式,否則執(zhí)行③;
③滿足ribc<0.2||ncuribc+ndecibc>1.2(ncurintra+ndecintra),跳過intrabc模式,否則執(zhí)行(6);
(6)當滿足ddec=dcur+2且當前編碼單元解碼時的模式是normalintra,跳過intrabc模式,否則執(zhí)行(7);
(7)計算已編碼的編碼單元選擇intrabc和normalintra的平均率失真值,將normalintra模式選擇之后的最佳模式的率失真值作為判斷條件,如果:
bestcu_cost<min(avgnorcost,avgintrabccost)
則進入以下的條件判斷,否則不進入快速算法,正常進行intrabc模式選擇,其中avgnorcost為已編碼的編碼單元選擇intrabc的平均率失真值,avgintrabccost為已編碼的編碼單元選擇normalintra的平均率失真值,bestcu_cost為normalintra模式選擇之后的最佳模式的率失真值:
①如果ribc<0.1,則跳過intrabc模式,否則執(zhí)行②;
②如果ribc<0.5&&ncurintra≥3,則跳過intrabc模式,否則不進入快速算法,正常進行intrabc模式選擇。
進一步地,所述當前編碼單元相鄰的已編碼單元的模式信息和/或當前編碼單元解碼時對應的解碼單元相鄰解碼單元的模式信息具體為已編碼單元和/或當前編碼單元解碼時對應的解碼單元的相鄰解碼單元上方,左上方,右上方和左方預測單元的模式信息。選取這幾個預測單元是因為離當前編碼單元很近,空間相關性強,使用這些信息進行預測準確率更高。
進一步地,參見圖5,預測單元的轉(zhuǎn)碼算法描述如下:
(1)獲取解碼端保存的信息中當前預測單元解碼時的解碼模式sdec;
(2)若sdec=2nx2n,則編碼端預測單元選擇2nx2n模式,跳過其他模式;否則執(zhí)行(3);
(3)若sdec=nxn,跳過2nxn模式;若sdec=nxn,且轉(zhuǎn)碼碼率量化差小于λ且相鄰四個預測單元模式是nxn的個數(shù)nnxn≥3,則跳過2nxn模式,否則執(zhí)行(4);
(4)若sdec=nx2n,則跳過2nxn模式,否則不跳過任何模式正常進行模式選擇。
hevc-scc視頻編碼過程中會計算pu各個模式2nx2n,2nxn,nx2n,nxn的rdcost,然后比較采用哪個模式計算的rdcost最小,最終選取損耗最小的模式作為最佳模式。該算法主要根據(jù)qp的不同來參考當前塊對應的解碼塊的pu模式或者當前塊相鄰的pu模式來直接跳過某些pu模式rdcost的計算從而快速選擇當前pu的模式。
進一步地,轉(zhuǎn)碼量化差取值為λ=5。如表1所示,其中dcur表示的是當前cu的深度,ddec是指當前cu解碼時對應的cu深度。表中反映了當前cu深度和其解碼時對應的cu深度的相關性,即當解碼時深度ddec={0,1,2,3}時,當前cu深度dcur在δqp=2和δqp=4時分別選擇{0,1,2,3}時的準確率。如表2所示,pcur表示的是當前pu(預測單元)的模式,pdec表示的是當前塊解碼時對應的pu模式。表中反映了當前pu模式和其解碼時對應的pu模式的相關性,即當解碼時的pu模式分別為2nx2n,2nxn,nx2n,nxn時,當前塊選擇2nx2n,2nxn,nx2n,nxn時的概率,也就是在做pu的模式選擇時,當前塊完全參考解碼信息的進行pu模式選擇時的準確率。經(jīng)過表1和表2分析可以知道,在對解碼出的yuv進行再編碼時,可以參考解碼出的信息進行cu的深度預測,模式選擇。然而,還可以發(fā)現(xiàn)根據(jù)轉(zhuǎn)碼δqp的不同,參考解碼信息的準確率不同,并且δqp越大,編碼信息和解碼的相關性越小,因此盲目的僅僅參考解碼的信息進行編碼可能會帶來較大的誤差。為了在保證轉(zhuǎn)碼出的視頻的主觀質(zhì)量不變的前提下,盡最大效率的加快轉(zhuǎn)碼速度?;趒p和cu深度的快速模式選擇轉(zhuǎn)碼算法是根據(jù)δqp的不同來選擇參考解碼cu信息還是當前cu相鄰cu信息,或者同時參考解碼cu信息和當前cu相鄰cu信息來對進行快速模式選擇。即選擇跳過normalintra模式或者intrabc模式。據(jù)表中數(shù)據(jù)分析得出:δqp越大,編碼信息和解碼的相關性越小,此時可以著重參考當前編碼單元相鄰的cu信息進行預測會更加準確。因此當δqp<λ,著重參考解碼幀信息;當δqp≥λ,著重參考當前幀的編碼信息,經(jīng)過試驗分析取λ=5最為合適。
表1
表2
依托上述方法,本發(fā)明還提出了與上述方法相對應的一種基于hevc-scc快速碼率轉(zhuǎn)碼系統(tǒng),包括以下模塊:
數(shù)據(jù)獲取模塊:用于獲取當前編碼單元的深度以及當前編碼單元解碼時對應的解碼單元的深度,用于統(tǒng)計當前編碼單元相鄰的已編碼單元的模式信息和當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式信息,用于記錄當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及相鄰的已編碼單元的深度,以及用于記錄當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)。
計算模塊:用于計算當前編碼單元相鄰的已編碼單元的平均深度,當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率。
決策模塊:用于根據(jù)當前編碼單元的深度、當前編碼單元解碼時對應的解碼單元的深度、轉(zhuǎn)碼碼率量化差、當前編碼單元相鄰的已編碼單元的平均深度、當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)、當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù)和normalintra模式的個數(shù)以及當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率來決定是否跳過intrabc模式和/或normalintra模式。
進一步地,決策模塊決定是否跳過intrabc模式和/或normalintra模式遵循以下規(guī)則:
(1)如果解碼時解碼單元的深度ddec=3,則當前編碼單元深度范圍為dcur={2,3},即編碼時跳過深度為0和1層的所有模式率失真優(yōu)化計算;
(2)如果解碼時解碼單元的深度ddec=0,當δqp<λ時,則當前編碼單元深度范圍為dcur={0,1},編碼時跳過深度為2和3層的所有模式率失真優(yōu)化計算;當δqp≥λ時,并且當前編碼單元相鄰編碼單元的平均深度dcurave<0.5,編碼時跳過深度為2和3層的所有模式率失真優(yōu)化計算,其中δqp為轉(zhuǎn)碼碼率量化差,λ為常數(shù);
(3)如果解碼時解碼單元的深度ddec=1,當δqp<λ時,則當前編碼單元深度范圍為dcur={0,1,2},編碼時跳過深度為3的層的所有模式率失真優(yōu)化計算;當δqp≥λ時,并且當前編碼單元相鄰編碼單元的平均深度dcurave<1.5,編碼時跳過深度為3的層的所有模式率失真優(yōu)化計算;
(4)當解碼時ddec>dcur,且當前編碼單元的解碼時解碼單元的模式是intrabc,滿足以下條件其中的一個則跳過normalintra模式:
①滿足(δqp<λ&&ndecibc≥2)||ncuribc≥3||ndecibc≥3,跳過normalintra模式,否則執(zhí)行②;
②滿足δqp≥λ&&ncuribc≥2,跳過normalintra模式,否則執(zhí)行③;
③滿足ribc>0.6||ncuribc+ndecibc<0.8(ncurintra+ndecintra),跳過normalintra模式,否則執(zhí)行④;
④滿足ncuribc≥1&&ndecibc≥1,跳過normalintra模式,否則結束,其中ndecibc為當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中intrabc模式的個數(shù),ndecintra為當前編碼單元解碼時對應的解碼單元的相鄰解碼單元的模式中normalintra模式的個數(shù),ncuribc為當前編碼單元相鄰的已編碼單元的模式中intrabc模式的個數(shù),ncurintra為當前編碼單元相鄰的已編碼單元的模式中normalintra模式的個數(shù);
(5)當dcur<3&&ribc<0.05時,跳過intrabc模式,否則當解碼時的深度ddec>dcur,且當前編碼單元的解碼時模式是normalintra,滿足以下條件其中的一個則跳過intrabc模式,否則執(zhí)行步驟(6):
①滿足(δqp<λ&&ndecintra≥3)||(δqp≥λ&&ncurintra≥3),跳過intrabc模式,否則執(zhí)行②;
②滿足ncurintra≥1&&ndecintra≥1,跳過intrabc模式,否則執(zhí)行③;
③滿足ribc<0.2||ncuribc+ndecibc>1.2(ncurintra+ndecintra),跳過intrabc模式,否則執(zhí)行(6),其中ribc為當前編碼單元解碼時對應的解碼單元的相鄰解碼單元中intrabc模式的概率;
(6)當滿足ddec=dcur+2且當前編碼單元解碼時的模式是normalintra,跳過intrabc模式,否則執(zhí)行(7);
(7)計算已編碼的編碼單元選擇intrabc和normalintra的平均率失真值,將normalintra模式選擇之后的最佳模式的率失真值作為判斷條件,如果:
bestcu_cost<min(avgnorcost,avgintrabccost)
則進入以下的條件判斷,否則不進入快速算法,正常進行intrabc模式選擇,其中avgnorcost為已編碼的編碼單元選擇intrabc的平均率失真值,avgintrabccost為已編碼的編碼單元選擇normalintra的平均率失真值,bestcu_cost為normalintra模式選擇之后的最佳模式的率失真值:
①如果ribc<0.1,則跳過intrabc模式,否則執(zhí)行②;
②如果ribc<0.5&&ncurintra≥3,則跳過intrabc模式,否則不進入快速算法,正常進行intrabc模式選擇。
進一步地,數(shù)據(jù)獲取模塊獲取的所述當前編碼單元相鄰的已編碼單元的模式信息和/或當前編碼單元解碼時對應的解碼單元相鄰解碼單元的模式信息具體為已編碼單元和/或當前編碼單元解碼時對應的解碼單元的相鄰解碼單元上方,左上方,右上方和左方預測單元的模式信息。
進一步地,數(shù)據(jù)獲取模塊獲取的預測單元的轉(zhuǎn)碼算法如下:
(1)獲取解碼端保存的信息中當前預測單元解碼時的解碼模式sdec;
(2)若sdec=2nx2n,則編碼端預測單元選擇2nx2n模式,跳過其他模式,否則執(zhí)行(3);
(3)若sdec=nxn,跳過2nxn模式;若sdec=nxn,且轉(zhuǎn)碼量化差小于λ且相鄰四個預測單元模式是nxn的個數(shù)nnxn≥3,則跳過2nxn模式,否則執(zhí)行(4);
(4)若sdec=nx2n,則跳過2nxn模式,否則不跳過任何模式正常進行模式選擇。
進一步地,轉(zhuǎn)碼量化差取值為λ=5。
綜上所述,本實施例對于hevc-scc碼率轉(zhuǎn)碼提出了全編全解的結構框架,以及適用于屏幕內(nèi)容視屏的幀內(nèi)預測快速碼率轉(zhuǎn)碼算法,通過提出的快速轉(zhuǎn)碼算法極大程度上加快轉(zhuǎn)碼的速度,同時在不增加復雜性的前提下保證了視頻圖像的質(zhì)量。
實施例2:
為了驗證本發(fā)明所提出的快速碼率轉(zhuǎn)碼算法的正確性以及有效性,本發(fā)明基于hm-16.2+scm-3.0搭建了如圖1所示的像素域空間分辨率轉(zhuǎn)碼器,并在該轉(zhuǎn)碼器上基于visualstudio2013實現(xiàn)了快速碼率轉(zhuǎn)碼算法。最后,在采集實驗結果數(shù)據(jù)環(huán)節(jié),考慮到筆記本電腦的不穩(wěn)定因素表較多,因此為了保證實驗結果的真實可靠性,所有實驗均是在高性能計算平臺上編譯執(zhí)行的。該平臺采用了混合式的集群(cluster)架構,其計算網(wǎng)絡采用infinband高速交換機,能有效地保證實驗結果的穩(wěn)定性和可靠性。因此,本發(fā)明的所有實驗數(shù)據(jù)均是在不存在任何干擾的穩(wěn)定的環(huán)境中進行仿真測試得到的,具有真實可靠性。本文采用的編碼參數(shù)與jctvc發(fā)布的scc標準測試環(huán)境(commontestcondition,ctc)一致。實驗測試配置為全i幀、有損編碼,編碼時采用4個不同的量化參數(shù),分別為22、27、32和37。
本發(fā)明采用jctvc組織發(fā)布的hevc-scc標準的、具有代表性的屏幕內(nèi)容測試序列[62],共分為4類:第一類是運動的文本和圖形,代表典型的遠程桌面應用內(nèi)容,包括webbrowsing、map和programming等序列;第二類屏幕混合內(nèi)容,包括文本、地圖和自然圖像等日常生活中常見的屏幕內(nèi)容,如missioncontrolclip3序列。第三類是動畫內(nèi)容,如robot,代表云端游戲等應用內(nèi)容。第四類是自然圖像內(nèi)容,如kimonol。測試序列分別有rgb和yuv(4:4:4)格式。測試序列的分辨率有1080p和720p兩種,幀率有60,30,24,20四種,如表3所示。
表3測試序列示例表
最終仿真后的測試結果如表4所示,采用bdbr和δtime兩個參數(shù)來反映算法的性能。其中bdbr是反映圖像質(zhì)量的性能指標,使用優(yōu)化算法的編碼器編碼得到的視頻相對于原編碼器得到的視頻在碼率和psnr上的變化情況,bdbr越大代表使用該算法后,視頻圖像的質(zhì)量損失越大,即算法性能越差。δtime表示未使用優(yōu)化算法的編碼時間torg和使用所提出算法后的編碼時間tpro的差值,計算方法如下所示,該差值越大代表算法的優(yōu)化效果越好,即算法的性能越好。
由表4可以看出,bdbr平均值為1.78%,δtime平均值為45.09%,因此可以得出結論:從客觀質(zhì)量對本發(fā)明的快速算法進行評價,都可以說明本發(fā)明的快速轉(zhuǎn)碼算法取得了良好的效果,即在視頻圖像的主觀質(zhì)量不變前提下,時間減少45.09%,而質(zhì)量客觀質(zhì)量的損失幾乎可以忽略不計。
表4
綜上,本實施列公開的基于hevc-scc快速碼率轉(zhuǎn)碼方法及其系統(tǒng),搭建了hevc-scc碼率轉(zhuǎn)碼框架,基于hevc-scc碼率轉(zhuǎn)碼框架,提出了幀內(nèi)預測快速碼率轉(zhuǎn)碼算法,通過提出的快速轉(zhuǎn)碼算法極大程度上加快轉(zhuǎn)碼的速度,在加快轉(zhuǎn)碼速度的同時還保證了視頻圖像的質(zhì)量。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領域的技術人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。