基于視頻通話場(chǎng)景的自適應(yīng)視頻編碼方法及裝置的制造方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及視頻編碼技術(shù)領(lǐng)域,特別涉及一種基于視頻通話場(chǎng)景的自適應(yīng)視頻編 碼方法及裝置。
【背景技術(shù)】
[0002] 隨著終端等智能移動(dòng)通訊設(shè)備的普及和無(wú)線通訊網(wǎng)絡(luò)的升級(jí),利用終端進(jìn)行視頻 通話也成為了智能移動(dòng)設(shè)備的較常見(jiàn)的應(yīng)用。
[0003] 無(wú)線網(wǎng)絡(luò)的信號(hào)和帶寬是隨著用戶身處的環(huán)境的變化而不斷變化的,同時(shí)用戶自 身運(yùn)動(dòng)狀態(tài)的變化也會(huì)造成無(wú)線網(wǎng)絡(luò)的信號(hào)和帶寬的相應(yīng)變化,例如,用戶在進(jìn)行行走時(shí) 或者坐在顛鑛的汽車?yán)锱c較平靜坐在座位上,智能移動(dòng)設(shè)備的視頻畫(huà)面的變化情況也是不 同的。
[0004] 頓率化rames Per Second)概念;一頓就是一副靜止的畫(huà)面,連續(xù)的頓就形成動(dòng) 畫(huà),如電視圖象等。視頻序列由連續(xù)的頓圖像組成,頓率是指每砂中包含的圖像頓數(shù),也可 W理解為圖形處理器每砂鐘進(jìn)行刷新的次數(shù),通常用巧S表示。每一頓都是靜止的圖象,快 速連續(xù)地顯示頓便形成了運(yùn)動(dòng)的假象。頓率越高,每砂的頓圖像數(shù)(巧S)越多,可W得到更 流暢、更逼真的動(dòng)畫(huà),人眼感覺(jué)視頻序列越流暢,視覺(jué)效果也越好。但是,頓率的提高會(huì)大大 增加需要傳輸?shù)囊曨l數(shù)據(jù)量,從而提高對(duì)網(wǎng)絡(luò)信道帶寬的要求,同時(shí)也要求用戶終端設(shè)備 具有較強(qiáng)的處理能力和顯示能力。
[0005] 碼流值ata Rate)概念;是指視頻文件在單位時(shí)間內(nèi)使用的數(shù)據(jù)流量,也叫碼率, 是他是視頻編碼中畫(huà)面質(zhì)量控制中最重要的部分。同樣分辨率下,視頻文件的碼流越大,壓 縮比就越小,畫(huà)面質(zhì)量就越高。
[0006] 視頻分辨率概念;是指視頻成像產(chǎn)品所成圖像的大小或尺寸,在成像的兩組數(shù)字 中,前者為圖片長(zhǎng)度,后者為圖片的寬度,兩者相乘得出的是圖片的像素。
[0007] 最新的視頻壓縮編碼標(biāo)準(zhǔn)是IS0/IEC的MPEG組織和口U-T的VCEG組織共同開(kāi)發(fā) 的,比早期研發(fā)的MPEG和H. 263標(biāo)準(zhǔn)編碼性能更好,命名為AVC,也被稱為口U-T比264建 議和MPEG-4的第10部分的標(biāo)準(zhǔn),通常簡(jiǎn)稱H. 264/AVC或H. 264。比264視頻壓縮編碼標(biāo)準(zhǔn) 的算法具有很高的編碼效率,送是因?yàn)镠. 264標(biāo)準(zhǔn)包括如下技術(shù)特點(diǎn):
[0008] 1、分層設(shè)計(jì),視頻編碼層具有高效的視頻內(nèi)容表示功能,網(wǎng)絡(luò)提取層將網(wǎng)絡(luò)中所 需要的數(shù)據(jù)進(jìn)行打包和傳送;
[0009] 2、高精度、多模式運(yùn)動(dòng)估計(jì),支持1/4或1/8像素精度的運(yùn)動(dòng)矢量,多模式的靈活 和細(xì)致的劃分,大提高了運(yùn)動(dòng)估計(jì)的精確程度,多頓參考技術(shù);
[0010] 3、頓內(nèi)預(yù)測(cè)功能,在空間域進(jìn)行預(yù)測(cè)編碼算法,W便取得更有效的壓縮;
[0011] 4、4X4塊的整數(shù)變換,由于用二變換塊的尺寸縮小,運(yùn)動(dòng)物體的劃分更精確,送樣 不但變換計(jì)算量比較小,而且在運(yùn)動(dòng)物體邊緣處的銜接誤疾差也大為減小,為了提高碼率 控制的能力,量化步長(zhǎng)的變化的幅度控制在125%左右,而不是W不變的增幅變化。為了強(qiáng) 調(diào)彩色的逼真性,對(duì)色度系數(shù)采用了較小量化步長(zhǎng);
[0012] 5、統(tǒng)一的化C,為快速再同步而經(jīng)過(guò)優(yōu)化的,可W有效防止誤碼。
[0013] 視頻通話質(zhì)量的高低取決于在送些網(wǎng)絡(luò)環(huán)境及畫(huà)面情況不斷變化的情景下能否 實(shí)現(xiàn)自適應(yīng)地切換。目前,現(xiàn)有技術(shù)中的自適應(yīng)切換方式通常僅單獨(dú)依靠檢測(cè)網(wǎng)絡(luò)帶寬的 變化來(lái)改變相應(yīng)編碼的頓率而實(shí)現(xiàn),而無(wú)法根據(jù)網(wǎng)絡(luò)環(huán)境和、視頻畫(huà)面的變化情況W及移 動(dòng)狀態(tài)下的抖動(dòng)情況等多種因素來(lái)改變相應(yīng)編碼的分辨率及頓率。
[0014] 有鑒于此,針對(duì)現(xiàn)有技術(shù)中存在的不足,本領(lǐng)域亟需一種基于視頻通話場(chǎng)景的自 適應(yīng)視頻編碼方法及裝置,能夠針對(duì)不斷變化的網(wǎng)絡(luò)環(huán)境和視頻畫(huà)面內(nèi)容,進(jìn)行自適應(yīng)視 頻編碼,從而實(shí)現(xiàn)較好的視頻清晰度與流暢度。
【發(fā)明內(nèi)容】
[0015] 本發(fā)明要解決的技術(shù)問(wèn)題是針對(duì)不斷變化的網(wǎng)絡(luò)環(huán)境和視頻畫(huà)面內(nèi)容,需要進(jìn)行 自適應(yīng)視頻編碼,W實(shí)現(xiàn)較好的視頻清晰度與流暢度,提出一種基于視頻通話場(chǎng)景的自適 應(yīng)視頻編碼方法及裝置。
[0016] 為了解決上述技術(shù)問(wèn)題,本發(fā)明公開(kāi)了一種基于視頻通話場(chǎng)景的自適應(yīng)視頻編碼 方法,包括:
[0017] 步驟101,在建立視頻通話時(shí),檢測(cè)當(dāng)前網(wǎng)絡(luò)環(huán)境下的初始網(wǎng)絡(luò)帶寬,并設(shè)置與檢 測(cè)到的網(wǎng)絡(luò)帶寬相匹配的初始編碼分辨率和頓率進(jìn)行視頻編碼;
[0018] 步驟102,當(dāng)檢測(cè)到網(wǎng)絡(luò)環(huán)境變化時(shí),進(jìn)一步檢測(cè)變化后的網(wǎng)絡(luò)環(huán)境下的更新后的 網(wǎng)絡(luò)帶寬,根據(jù)更新后的網(wǎng)絡(luò)帶寬、更新前的網(wǎng)絡(luò)帶寬W及更新前正在編碼的分辨率和頓 率來(lái)確定更新后的編碼分辨率與頓率,根據(jù)更新后的編碼分辨率與頓率進(jìn)行隨后的視頻編 碼;
[0019] 步驟103,根據(jù)檢測(cè)出的之前一段時(shí)間的視頻的平均誤差,來(lái)自適應(yīng)的調(diào)節(jié)此時(shí)的 編碼分辨率與頓率,其中:
[0020] 所述之前一段時(shí)間的視頻的平均誤差是根據(jù)在基于當(dāng)前分辨率與頓率進(jìn)行編碼 時(shí),對(duì)應(yīng)的網(wǎng)絡(luò)帶寬得到的一定時(shí)間間隔內(nèi)的量化步長(zhǎng)的均值;
[0021] 所述自適應(yīng)的調(diào)節(jié)此時(shí)的編碼分辨率與頓率是通過(guò)誤差大于闊值則調(diào)降編碼分 辨率與頓率,誤差小于闊值則調(diào)升編碼率與頓率。
[0022] 優(yōu)選地,一定時(shí)間間隔內(nèi)一般為3-6砂。
[0023] 進(jìn)一步地,所述步驟101包括:
[0024] 步驟201,根據(jù)移動(dòng)設(shè)備的CPU能力CPlLcapacity及所使用的編碼器來(lái)設(shè)定視頻 通話編碼的分類等級(jí)層次,其中:所述CPlLcapacity包括主頻及核數(shù);
[00巧]步驟202,在啟動(dòng)視頻通話時(shí)檢測(cè)網(wǎng)絡(luò)帶寬與對(duì)端畫(huà)面的寬高比,根據(jù)所獲得的信 息設(shè)置適應(yīng)于編碼器的初始編碼分辨率與頓率,其中:所獲得的信息包括網(wǎng)絡(luò)帶寬和CPU 能力,并且所述CPU能力取各通訊端中能力最小者的值Vmin ;
[0026] 步驟203,根據(jù)得到的推薦分辨率W及對(duì)端屏幕的寬高比,裁剪出和對(duì)端寬高比接 近的分辨率進(jìn)行編碼。
[0027] 進(jìn)一步地,所述步驟201包括:
[0028] 將運(yùn)行蘋果IOS操作系統(tǒng)的智能終端的CPU能力及所使用的經(jīng)過(guò)優(yōu)化的H. 264編 碼器的分類層次按表一方式進(jìn)行設(shè)置,
[0029] 將運(yùn)行谷歌An化Oid操作系統(tǒng)的智能終端的CPU能力按表一方式映射到對(duì)應(yīng)型號(hào) 的運(yùn)行蘋果IOS操作系統(tǒng)的智能終端的CPU能力,
[0030] 表一
5?
[0034] 進(jìn)一步地,所述步驟202包括:
[0035] 按表二方式設(shè)置網(wǎng)絡(luò)帶寬及智能終端的CPU能力與推薦分辨率與頓率之間的對(duì) 應(yīng)關(guān)系:
[0036] 表二
Cl'
[0038] 進(jìn)一步地,所述步驟203包括:
[0039] 設(shè)各項(xiàng)參數(shù)如表H所示:
[0040] 表 H
[0041]
[0042] 確定寬高比的方法如下:
[0043] 女口果,recomm_width〉recomm_hei邑ht*tar邑et_aspect
[0044] 貝[I, new-width = recomm-hei邑ht*tar邑et-aspect
[0045] new_hei邑ht = recomm_hei邑ht
[0046] 否則,new_wi化h = recomm_width
[0047] new_hei邑ht = recomm-width/target-aspect
[004引如果上述計(jì)算得到的寬高不是16的整數(shù)倍,則裁剪為16的倍數(shù)。
[0049] 進(jìn)一步地,所述步驟102包括:
[0050] 步驟204,當(dāng)檢測(cè)到網(wǎng)絡(luò)帶寬發(fā)生改變并超過(guò)闊值范圍時(shí),對(duì)編碼的分辨率W及相 關(guān)的編碼層級(jí)進(jìn)行更新,W適應(yīng)新的網(wǎng)絡(luò)狀況。
[0051] 進(jìn)一步地,所述步驟204包括:
[0052] 按表四對(duì)編碼層級(jí)進(jìn)行分類 [00閲表四
[0054]
[0055] 設(shè)各項(xiàng)參數(shù)如表五所示:
[0056] 表五
[0057]
[0058]
[0059] 確定帶寬的變化層級(jí)的方法如下:
[0060] bitrate_change_level = log(curr_bitrate/prev_bitrate)/log(2. 0)
[0061] 如果,bitrate_change_level〉0
[0062] 則,bitrate_change_level = bitrate_change_level*0. 8
[0063] 否則,bitrate_change_level = bitrate_change_level巧.0
[0064] 確定新的編碼層級(jí)的方法如下:
[0065] curr_encoding_level = prev_encoding_level+bitrate_change_level
[0066] 在得到新的編碼層級(jí)后,根據(jù)新得到的編碼層級(jí)所對(duì)應(yīng)的分辨率和頓率來(lái)進(jìn)行編 碼。
[0067] 進(jìn)一步地,所述步驟103包括:
[0068] 步驟205,在網(wǎng)絡(luò)狀況沒(méi)有變化,或者變化較小時(shí),視頻編碼的層級(jí)仍根據(jù)視頻畫(huà) 面的情況不斷自適應(yīng)調(diào)節(jié):
[0069] 計(jì)算視頻編碼在當(dāng)前帶寬所編碼的分辨率與頓率時(shí)前3砂的量化值QP的平均值, 并進(jìn)行如下判斷:
[0070] 當(dāng)平均值小于24時(shí),編碼層級(jí)州;r;r_encoding_level=prev_encoding_ level+1 ;
[0071] 當(dāng)平均值大于 32 時(shí),編碼層級(jí) curr_encoding_level 二 prev_encoding_level - 1 ;
[0072] 其中,當(dāng)計(jì)算得到的編碼層級(jí)curr_encoding_level大于10時(shí),設(shè)置curr_ encoding-level 為 10 ;
[007引 當(dāng)計(jì)算得到的編碼層級(jí)州;r;r_encoding_level小于O時(shí),最小設(shè)置州;r;r_ encoding-level 為 0。
[0074] 優(yōu)選地,網(wǎng)絡(luò)狀況變化較小一般是指網(wǎng)絡(luò)帶寬相對(duì)于當(dāng)前值的變化在10% W下。
[00巧]為了解決上述技術(shù)問(wèn)題,本發(fā)明還公開(kāi)了一種基于視頻通話場(chǎng)景的自適應(yīng)視頻編 碼裝置,包括:
[0076] 檢測(cè)模塊、控制模塊和編碼模塊,其中:
[0077] 所述檢測(cè)模塊,用于對(duì)網(wǎng)絡(luò)情況及畫(huà)面情況進(jìn)行檢測(cè);
[0078] 所述控制模塊,用于根據(jù)檢測(cè)模塊檢測(cè)到的網(wǎng)絡(luò)情況及畫(huà)面情況對(duì)編碼分辨率與 頓率進(jìn)行計(jì)算;
[0079] 所述編碼模塊,根據(jù)控制模塊計(jì)算出的編碼分辨率與頓率對(duì)視頻進(jìn)行編碼;
[0080] 其中:
[0081] 對(duì)于在特定網(wǎng)絡(luò)環(huán)境下開(kāi)啟的視頻通話,所述檢測(cè)模塊檢測(cè)初始的帶寬,所述控 制模塊根據(jù)檢測(cè)到的網(wǎng)絡(luò)帶寬設(shè)置一個(gè)初始的經(jīng)驗(yàn)編碼分辨率與頓率,
[0082] 當(dāng)所述檢測(cè)模塊檢測(cè)到網(wǎng)絡(luò)情況發(fā)生改變時(shí),所述控制模塊根據(jù)所述檢測(cè)模塊新 檢測(cè)得到的帶寬及之前帶寬所采用的視頻編碼分辨率與頓率,計(jì)算出一個(gè)新的編碼分辨率 和頓率,所述編碼模塊根據(jù)新的編碼分辨率和頓率來(lái)進(jìn)行接下來(lái)的編碼,
[0083] 所述檢測(cè)模塊檢測(cè)出的之前一段時(shí)間的視頻的平均誤差,所述控制模塊根據(jù)該平 均誤差來(lái)自適應(yīng)的調(diào)節(jié)此時(shí)的編碼分辨率與頓率,誤差大于闊值則調(diào)降編碼分辨率與頓 率,誤差小于闊值則調(diào)升編碼率與頓率。
[0084] 進(jìn)一步地,所述控制模塊進(jìn)一步根據(jù)移動(dòng)設(shè)備的CPU能力及所使用的編碼器來(lái)設(shè) 定視頻通話編碼的分類等級(jí)層次;在啟動(dòng)視頻通話時(shí),所述檢測(cè)模塊檢測(cè)網(wǎng)絡(luò)帶寬與對(duì)端 畫(huà)面的寬高比,所述控制模塊根據(jù)所獲得的信息設(shè)置適應(yīng)于編碼器的初始編碼分辨率與頓 率,其中:所獲得的信息包括網(wǎng)絡(luò)帶寬和CPU能力,并且所述CPU能力取各通訊端中能力最 小者的值Vmin ;所述控制模塊根據(jù)得到的推薦分辨率W及對(duì)端的終端屏幕的寬高比,裁剪 出和對(duì)端寬高比接近的分辨率,編碼模塊根據(jù)該分辨率進(jìn)行編碼;當(dāng)所述檢測(cè)模塊檢測(cè)到 網(wǎng)絡(luò)帶寬發(fā)生改變并超過(guò)闊值范圍時(shí),所述控制模塊對(duì)編碼