用于運(yùn)動(dòng)視頻的碼率控制方法及裝置的制造方法
【專(zhuān)利摘要】本發(fā)明實(shí)施例提供一種用于運(yùn)動(dòng)視頻的碼率控制方法及裝置。對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊;判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則調(diào)整所述編碼宏塊的碼率。提升了運(yùn)動(dòng)類(lèi)視頻的直播質(zhì)量,為用戶帶來(lái)了更優(yōu)的觀看體驗(yàn)。
【專(zhuān)利說(shuō)明】
用于運(yùn)動(dòng)視頻的碼率控制方法及裝置
技術(shù)領(lǐng)域
[0001]本發(fā)明實(shí)施例涉及視頻技術(shù)領(lǐng)域,尤其涉及一種用于運(yùn)動(dòng)視頻的碼率控制方法及
目.0
[0002]非運(yùn)動(dòng)區(qū)域技術(shù)
[0003]隨著互聯(lián)網(wǎng)體育視頻的發(fā)展,更多的人選擇網(wǎng)絡(luò)直播的方式觀看體育比賽。由于同時(shí)觀看比賽的人往往非常多,尤其N(xiāo)BA等熱門(mén)賽事,為了保證體育直播的流暢,直播往往對(duì)比特率的設(shè)定比較苛刻。然而體育直播的視頻往往有運(yùn)動(dòng)劇烈的特點(diǎn),在同樣比特率的情況下,編碼質(zhì)量往往要低于普通視頻。尤其當(dāng)運(yùn)動(dòng)劇烈的場(chǎng)景出現(xiàn)時(shí),有可能會(huì)導(dǎo)致整幀畫(huà)面的模糊。
[0004]因此,一種用于運(yùn)動(dòng)視頻的碼率控制方法亟待提出。
【發(fā)明內(nèi)容】
[0005]本發(fā)明實(shí)施例提供一種用于運(yùn)動(dòng)視頻的碼率控制方法及裝置,用以解決現(xiàn)有技術(shù)中視頻中出現(xiàn)劇烈運(yùn)動(dòng)場(chǎng)景時(shí)畫(huà)面模糊的缺陷,實(shí)現(xiàn)了在較低碼率直播的情況下仍然有良好的視頻直播質(zhì)量。
[0006]本發(fā)明實(shí)施例提供一種用于運(yùn)動(dòng)視頻的碼率控制方法,包括:
[0007]對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊;
[0008]判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;
[0009]若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則調(diào)整所述編碼宏塊的碼率。
[0010]本發(fā)明實(shí)施例提供一種用于運(yùn)動(dòng)視頻的碼率控制裝置,包括:
[0011 ]參數(shù)獲取模塊,用于對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊;
[0012]判斷模塊,用于判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;
[0013]碼率控制模塊,若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則用于調(diào)整所述編碼宏塊的碼率。
[0014]本發(fā)明實(shí)施例提供的用于運(yùn)動(dòng)視頻的碼率控制方法及裝置,通過(guò)對(duì)當(dāng)前視頻幀進(jìn)行下采樣,并根據(jù)下采樣得到的結(jié)果對(duì)所述視頻幀進(jìn)行預(yù)分析,得到非運(yùn)動(dòng)區(qū)域(背景區(qū)域)的特征,再根據(jù)這些背景區(qū)域的特征對(duì)所述視頻幀的每一編碼宏塊進(jìn)行進(jìn)一步判斷其是否為運(yùn)動(dòng)區(qū)域,從而減少運(yùn)動(dòng)視頻中對(duì)主觀質(zhì)量影響較小的背景的比特分配,把節(jié)省下來(lái)的比特分配給視頻中對(duì)主觀質(zhì)量影響更大的運(yùn)動(dòng)部分,提升了視頻質(zhì)量,為用戶帶來(lái)了更優(yōu)的觀看體驗(yàn)。
【附圖說(shuō)明】
[0015]為了更清楚地說(shuō)明本發(fā)明實(shí)施例或現(xiàn)有技術(shù)中的技術(shù)方案,下面將對(duì)實(shí)施例或現(xiàn)有技術(shù)描述中所需要使用的附圖作一簡(jiǎn)單地介紹,顯而易見(jiàn)地,下面描述中的附圖是本發(fā)明的一些實(shí)施例,對(duì)于本領(lǐng)域普通技術(shù)人員來(lái)講,在不付出創(chuàng)造性勞動(dòng)的前提下,還可以根據(jù)這些附圖獲得其他的附圖。
[0016]圖1為本發(fā)明實(shí)施例一的技術(shù)流程圖;
[0017]圖2為本發(fā)明實(shí)施例二的技術(shù)流程圖;
[0018]圖3為本發(fā)明實(shí)施例三的技術(shù)流程圖;
[0019]圖4是本發(fā)明實(shí)施例四的裝置結(jié)構(gòu)示意圖。
【具體實(shí)施方式】
[0020]為使本發(fā)明實(shí)施例的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚,下面將結(jié)合本發(fā)明實(shí)施例中的附圖,對(duì)本發(fā)明實(shí)施例中的技術(shù)方案進(jìn)行清楚、完整地描述,顯然,所描述的實(shí)施例是本發(fā)明一部分實(shí)施例,而不是全部的實(shí)施例。基于本發(fā)明中的實(shí)施例,本領(lǐng)域普通技術(shù)人員在沒(méi)有作出創(chuàng)造性勞動(dòng)前提下所獲得的所有其他實(shí)施例,都屬于本發(fā)明保護(hù)的范圍。
[0021]本發(fā)明實(shí)施例核心在于,對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊;判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則調(diào)整所述編碼宏塊的碼率。
[0022]本領(lǐng)域人員熟知,B幀為雙向預(yù)測(cè)內(nèi)插編碼幀,P幀為前向預(yù)測(cè)編碼幀,以下部分涉及到的B幀及P幀將不再作解釋。
[0023]實(shí)施例一
[0024]圖1是本發(fā)明實(shí)施例一的技術(shù)流程圖,結(jié)合圖1,本發(fā)明實(shí)施例一種用于運(yùn)動(dòng)視頻的碼率控制方法主要包括兩個(gè)大的步驟:
[0025]步驟110:對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊,獲取所述編碼宏塊的運(yùn)動(dòng)矢量和幀間代價(jià);
[0026]步驟120:根據(jù)所述運(yùn)動(dòng)矢量和預(yù)設(shè)的距離閾值判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;
?0027] 具體地,計(jì)算所述運(yùn)動(dòng)矢量與非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離,當(dāng)所述距離小于所述距離閾值,則判定所述編碼宏塊是非運(yùn)動(dòng)區(qū)域編碼宏塊,其中,所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量通過(guò)預(yù)先對(duì)所述下采樣幀進(jìn)行分析得到。
[0028]—個(gè)運(yùn)動(dòng)矢量由X和y兩個(gè)方向的值決定,定義一個(gè)運(yùn)動(dòng)矢量為MV(x,y)。任意其他運(yùn)動(dòng)矢量1¥0(10,70)與1^(1,7)的距離(1181:采用如下距離公式進(jìn)行計(jì)算:
[0029]dist= I χ-χο I +1 y-yo I
[0030]具體地,所述距離閾值由所述下采樣幀的幀類(lèi)型、所述幀間代價(jià)以及非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)決定:
[0031]若所述下采樣幀為P幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于a;即所述運(yùn)動(dòng)矢量與非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離小于a時(shí),判斷所述編碼宏塊為非運(yùn)動(dòng)區(qū)域編碼宏塊;
[0032]若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于b;即所述運(yùn)動(dòng)矢量與非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離小于b時(shí),判斷所述編碼宏塊為非運(yùn)動(dòng)區(qū)域編碼宏塊;
[0033]若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)的兩倍,則距離閾值等于c;即所述運(yùn)動(dòng)矢量與非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離小于c時(shí),判斷所述編碼宏塊為非運(yùn)動(dòng)區(qū)域編碼宏塊。
[0034]其中,&、13、(:為經(jīng)驗(yàn)值,通常,{&,13,(3}= {2,5,4}。
[0035]以上距離閾值的選取數(shù)值均為實(shí)驗(yàn)得出的經(jīng)驗(yàn)值,但本發(fā)明實(shí)施例中,距離閾值的選取包括但并不僅限于上述列舉數(shù)值。
[0036]步驟130:若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則根據(jù)所述下采樣幀的幀類(lèi)型調(diào)整所述量化參數(shù)的增加量,并根據(jù)所述編碼宏塊的量化參數(shù)的增加量減少用于非運(yùn)動(dòng)區(qū)域編碼的比特?cái)?shù),來(lái)調(diào)整碼率。
[0037]視頻的非運(yùn)動(dòng)區(qū)域通常是觀眾并不關(guān)心的背景區(qū)域,因此,可以減少背景部分的編碼比特,并將節(jié)省下來(lái)的比特分配給觀眾更加關(guān)注的部分,從而大幅度提升視頻直播時(shí)的質(zhì)量。
[0038]具體地,碼率控制主要是通過(guò)調(diào)整量化參數(shù)的大小來(lái)控制輸出碼率,量化參數(shù)與量化步長(zhǎng)--對(duì)應(yīng),對(duì)于不同的編碼標(biāo)準(zhǔn),量化參數(shù)與量化步長(zhǎng)都有對(duì)應(yīng)關(guān)系,此處不贅述。較小的量化參數(shù)保證了有更多比特用于編碼,反之,增大量化參數(shù),將使得用于編碼的比特?cái)?shù)減少。因此,本發(fā)明實(shí)施例中,所述編碼宏塊屬于非運(yùn)動(dòng)區(qū)域編碼塊,則可增加所述編碼宏塊的量化參數(shù),從而減少對(duì)非運(yùn)動(dòng)區(qū)域進(jìn)行編碼所使用的比特?cái)?shù),將節(jié)省下來(lái)的更多比特用于關(guān)注更多的運(yùn)動(dòng)區(qū)域的編碼。
[0039]例如,根據(jù)所述下采樣幀的幀類(lèi)型調(diào)整所述量化參數(shù)的增加量,可以有如下結(jié)果:
[0040]若所述下采樣幀為P幀,且所述編碼宏塊屬于非運(yùn)動(dòng)區(qū)域編碼塊,則為所述編碼宏塊的量化參數(shù)的值加I;
[0041]若所述下采樣幀幀為B幀,且所述編碼宏塊屬于非運(yùn)動(dòng)區(qū)域編碼塊,則為所述編碼宏塊的量化參數(shù)的值加2。
[0042]當(dāng)然,應(yīng)當(dāng)理解,上述量化參數(shù)的增加量?jī)H供舉例使用,對(duì)本發(fā)明實(shí)施例并不構(gòu)成限制。
[0043]本實(shí)施例中,根據(jù)非運(yùn)動(dòng)區(qū)域的特征對(duì)視頻幀的每一編碼宏塊判斷其是否為運(yùn)動(dòng)區(qū)域,從而通過(guò)減少運(yùn)動(dòng)視頻中對(duì)主觀質(zhì)量影響較小的背景區(qū)域的比特分配,把節(jié)省下來(lái)的比特分配給視頻中對(duì)主觀質(zhì)量影響更大的運(yùn)動(dòng)部分,提升了視頻質(zhì)量,為用戶帶來(lái)了更優(yōu)的觀看體驗(yàn)。
[0044]所述非運(yùn)動(dòng)區(qū)域的特征根據(jù)所述下采樣幀進(jìn)行預(yù)分析得到,具體預(yù)分析的實(shí)現(xiàn)過(guò)程將由實(shí)施例二進(jìn)一步闡述。
[0045]實(shí)施例二
[0046]圖2是本發(fā)明實(shí)施例二的技術(shù)流程圖,結(jié)合圖2,本發(fā)明實(shí)施例一種用于運(yùn)動(dòng)視頻的碼率控制方法中,對(duì)下采樣幀進(jìn)行預(yù)分析由以下步驟實(shí)現(xiàn);
[0047]步驟210:遍歷當(dāng)前下采樣幀中的每一編碼宏塊,獲取所述編碼宏塊的運(yùn)動(dòng)矢量和幀間代價(jià);
[0048]步驟220:計(jì)算當(dāng)前編碼宏塊的所述運(yùn)動(dòng)矢量與所述下采樣幀中其他運(yùn)動(dòng)矢量之間的矢量距離,并根據(jù)所述矢量距離判斷所述運(yùn)動(dòng)矢量是否為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量;
[0049]計(jì)算所述運(yùn)動(dòng)矢量與其他運(yùn)動(dòng)矢量之間的矢量距離,具體計(jì)算公式采用實(shí)施例一中的所述距離公式。
[0050]當(dāng)所述矢量距離小于預(yù)設(shè)距離范圍時(shí),統(tǒng)計(jì)對(duì)應(yīng)的所述其他運(yùn)動(dòng)矢量的數(shù)量N;
[0051]若所述運(yùn)動(dòng)矢量滿足如下條件a以及條件b,則判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量;
[0052]條件a:N個(gè)所述其他運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊在所述下采樣幀的所有編碼宏塊中,占有預(yù)設(shè)比例;
[0053]條件b:所述下采樣幀的所有運(yùn)動(dòng)矢量中,不存在另外的運(yùn)動(dòng)矢量與M個(gè)運(yùn)動(dòng)矢量之間的矢量距離在所述預(yù)設(shè)距離范圍內(nèi),其中M>N。
[0054]所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量是判斷編碼宏塊是否為非運(yùn)動(dòng)區(qū)域的參考條件。如果當(dāng)前視頻幀內(nèi)的所有運(yùn)動(dòng)矢量都沒(méi)有同時(shí)符合上述兩個(gè)條件,則判斷當(dāng)前幀內(nèi)容沒(méi)有非運(yùn)動(dòng)(背景)區(qū)域,不需要進(jìn)行碼率控制。
[0055]本發(fā)明實(shí)施例中,根據(jù)經(jīng)驗(yàn),取所述預(yù)設(shè)的距離范圍值為3,取所述預(yù)設(shè)比例為30%,但是這些數(shù)值對(duì)本發(fā)明實(shí)施例并不構(gòu)成限制。
[0056]步驟230:當(dāng)判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量時(shí),獲取所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊的所述幀間代價(jià)并計(jì)算非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)。
[0057]每一個(gè)非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量對(duì)應(yīng)一個(gè)非運(yùn)動(dòng)區(qū)域編碼宏塊,步驟210中得到了每一個(gè)編碼宏塊的幀間代價(jià),因此本步驟中,只需讀取所述非運(yùn)動(dòng)區(qū)域編碼宏塊對(duì)應(yīng)的幀間代價(jià),并根據(jù)讀取得到的幀間代價(jià)的值計(jì)算非運(yùn)動(dòng)區(qū)域的平均幀間代價(jià)。
[0058]所述非運(yùn)動(dòng)區(qū)域的平均幀間代價(jià)作為非運(yùn)動(dòng)區(qū)域的特征之一,用于后續(xù)對(duì)當(dāng)前幀內(nèi)的編碼宏塊進(jìn)行判別時(shí),作為選取所述距離閾值的參照數(shù)據(jù)之一。
[0059]本實(shí)施例中,通過(guò)對(duì)當(dāng)前視頻幀進(jìn)行下采樣,并根據(jù)下采樣得到的結(jié)果對(duì)所述視頻幀進(jìn)行預(yù)分析,得到非運(yùn)動(dòng)區(qū)域的特征,即非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量和非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),用以后續(xù)根據(jù)所述非運(yùn)動(dòng)區(qū)域的特征判斷視頻幀中的每一個(gè)編碼宏塊是否屬于非運(yùn)動(dòng)區(qū)域,從而進(jìn)行碼率調(diào)整,提升運(yùn)動(dòng)類(lèi)視頻直播的質(zhì)量,為觀眾帶來(lái)了良好的觀看體驗(yàn)。
[0060]實(shí)施例三
[0061]以下部分將結(jié)合圖3對(duì)本發(fā)明實(shí)施例進(jìn)行進(jìn)一步地闡述。本發(fā)明實(shí)施例在實(shí)現(xiàn)運(yùn)動(dòng)視頻的碼率控制時(shí),首先對(duì)運(yùn)動(dòng)視頻的下采樣幀進(jìn)行分析。對(duì)所述下采樣幀進(jìn)行分析實(shí)際上是對(duì)每一編碼宏塊的運(yùn)動(dòng)矢量以及幀間代價(jià)進(jìn)行分析。
[0062]在幀間預(yù)測(cè)編碼中,由于活動(dòng)圖像鄰近幀中的景物存在著一定的相關(guān)性。因此,可將活動(dòng)圖像分成若干塊或宏塊,并設(shè)法搜索出每個(gè)塊或宏塊在鄰近幀圖像中的位置,并得出兩者之間的空間位置的相對(duì)偏移量,得到的相對(duì)偏移量就是所指的運(yùn)動(dòng)矢量。
[0063]得到所述運(yùn)動(dòng)矢量和所述幀間代價(jià)之后,對(duì)所述下采樣幀中的背景區(qū)域,S卩非運(yùn)動(dòng)區(qū)域進(jìn)行分析,得到非運(yùn)動(dòng)區(qū)域的運(yùn)動(dòng)矢量的特征以及幀間代價(jià)的特征,用以作為后續(xù)判斷下采樣幀中的編碼宏塊屬于運(yùn)動(dòng)區(qū)域或者非運(yùn)動(dòng)區(qū)域的參考,從而進(jìn)行碼率的調(diào)整。本發(fā)明實(shí)施例中的預(yù)分析過(guò)程需遍歷對(duì)每一個(gè)編碼宏塊執(zhí)行,從而完整地獲取背景非運(yùn)動(dòng)區(qū)域的特征,實(shí)現(xiàn)對(duì)編碼宏塊的正確判斷。
[0064]當(dāng)分析完下采樣幀中的最后一個(gè)編碼宏塊后,再一次讀取所述下采樣幀中每一個(gè)編碼宏塊的信息,并根據(jù)所述信息,為所述編碼宏塊匹配合理的距離閾值,用于判斷所述編碼宏塊是否屬于運(yùn)動(dòng)區(qū)域。
[0065]當(dāng)判定所述編碼宏塊屬于非運(yùn)動(dòng)區(qū)域時(shí),減少所述編碼宏塊的比特分配。當(dāng)處理完下米樣幀中的最后一個(gè)宏塊時(shí),結(jié)束這一幀的碼率控制。
[0066]實(shí)施例四
[0067]圖4是本發(fā)明實(shí)施例四的裝置結(jié)構(gòu)示意圖,結(jié)合圖4,本發(fā)明實(shí)施例一種用于運(yùn)動(dòng)視頻的碼率控制裝置,主要包括如下的模塊:參數(shù)獲取模塊410、判斷模塊420、碼率控制模塊430、預(yù)分析模塊440。
[0068]所述參數(shù)獲取模塊410,用于對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊;
[0069]所述判斷模塊420,用于判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊;
[0070]所述碼率控制模塊430,若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則用于調(diào)整所述編碼宏塊的碼率。
[0071]所述裝置進(jìn)一步包括預(yù)分析模塊440,所述預(yù)分析模塊440用于:計(jì)算當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與所述下采樣幀中其他運(yùn)動(dòng)矢量之間的矢量距離;
[0072]當(dāng)所述矢量距離小于預(yù)設(shè)距離范圍時(shí),統(tǒng)計(jì)對(duì)應(yīng)的所述其他運(yùn)動(dòng)矢量的數(shù)量N;
[0073]若所述運(yùn)動(dòng)矢量滿足如下條件a以及條件b,則判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量;
[0074]條件a:N個(gè)所述其他運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊在所述下采樣幀的所有編碼宏塊中,占有預(yù)設(shè)比例;
[0075]條件b:所述下采樣幀的所有運(yùn)動(dòng)矢量中,不存在另外的運(yùn)動(dòng)矢量與M個(gè)運(yùn)動(dòng)矢量之間的矢量距離在所述預(yù)設(shè)距離范圍內(nèi),其中M>N。
[0076]所述判斷模塊420進(jìn)一步用于:計(jì)算所述當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離,當(dāng)所述距離小于預(yù)設(shè)的距離閾值,則判定所述編碼宏塊是非運(yùn)動(dòng)區(qū)域編碼宏塊。
[0077]所述判斷模塊420進(jìn)一步用于:采用如下方法計(jì)算所述距離閾值:
[0078]若所述下采樣幀為P幀,且所述下采樣幀的幀間代價(jià)小于非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于a;
[0079]若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于b;
[0080]若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)的兩倍,則距離閾值等于c;
[0081]其中,所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)根據(jù)所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊的幀間代價(jià)進(jìn)行計(jì)算;a、b、c為經(jīng)驗(yàn)值。
[0082]所述碼率控制模塊430具體用于:若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,根據(jù)所述下采樣幀的幀類(lèi)型調(diào)整所述量化參數(shù)的增加量,并根據(jù)所述編碼宏塊的量化參數(shù)的增加量減少用于非運(yùn)動(dòng)區(qū)域編碼的比特?cái)?shù),來(lái)調(diào)整碼率。圖4所示裝置可以執(zhí)行圖1?圖3所示實(shí)施例的方法,實(shí)現(xiàn)原理和技術(shù)效果參考圖1?圖3所示實(shí)施例,不再贅述。
[0083]以上所描述的裝置實(shí)施例僅僅是示意性的,其中所述作為分離部件說(shuō)明的單元可以是或者也可以不是物理上分開(kāi)的,作為單元顯示的部件可以是或者也可以不是物理單元,即可以位于一個(gè)地方,或者也可以分布到多個(gè)網(wǎng)絡(luò)單元上。可以根據(jù)實(shí)際的需要選擇其中的部分或者全部模塊來(lái)實(shí)現(xiàn)本實(shí)施例方案的目的。本領(lǐng)域普通技術(shù)人員在不付出創(chuàng)造性的勞動(dòng)的情況下,即可以理解并實(shí)施。
[0084]通過(guò)以上的實(shí)施方式的描述,本領(lǐng)域的技術(shù)人員可以清楚地了解到各實(shí)施方式可借助軟件加必需的通用硬件平臺(tái)的方式來(lái)實(shí)現(xiàn),當(dāng)然也可以通過(guò)硬件。基于這樣的理解,上述技術(shù)方案本質(zhì)上或者說(shuō)對(duì)現(xiàn)有技術(shù)做出貢獻(xiàn)的部分可以以軟件產(chǎn)品的形式體現(xiàn)出來(lái),該計(jì)算機(jī)軟件產(chǎn)品可以存儲(chǔ)在計(jì)算機(jī)可讀存儲(chǔ)介質(zhì)中,如R0M/RAM、磁碟、光盤(pán)等,包括若干指令用以使得一臺(tái)計(jì)算機(jī)裝置(可以是個(gè)人計(jì)算機(jī),服務(wù)器,或者網(wǎng)絡(luò)裝置等)執(zhí)行各個(gè)實(shí)施例或者實(shí)施例的某些部分所述的方法。
[0085]最后應(yīng)說(shuō)明的是:以上實(shí)施例僅用以說(shuō)明本發(fā)明的技術(shù)方案,而非對(duì)其限制;盡管參照前述實(shí)施例對(duì)本發(fā)明進(jìn)行了詳細(xì)的說(shuō)明,本領(lǐng)域的普通技術(shù)人員應(yīng)當(dāng)理解:其依然可以對(duì)前述各實(shí)施例所記載的技術(shù)方案進(jìn)行修改,或者對(duì)其中部分技術(shù)特征進(jìn)行等同替換;而這些修改或者替換,并不使相應(yīng)技術(shù)方案的本質(zhì)脫離本發(fā)明各實(shí)施例技術(shù)方案的精神和范圍。
【主權(quán)項(xiàng)】
1.一種運(yùn)動(dòng)視頻的碼率控制方法,其特征在于,包括如下的步驟: 對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊; 判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊; 若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則調(diào)整所述編碼宏塊的碼率。2.根據(jù)權(quán)利要求1所述的方法,其特征在于,判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊,包括: 計(jì)算所述當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離,當(dāng)所述距離小于預(yù)設(shè)的距離閾值,則判定所述編碼宏塊是非運(yùn)動(dòng)區(qū)域編碼宏塊。3.根據(jù)權(quán)利要求2所述的方法,其特征在于,判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量,包括: 計(jì)算當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與所述下采樣幀中其他運(yùn)動(dòng)矢量之間的矢量距離; 當(dāng)所述矢量距離小于預(yù)設(shè)距離范圍時(shí),統(tǒng)計(jì)對(duì)應(yīng)的所述其他運(yùn)動(dòng)矢量的數(shù)量N ; 若所述運(yùn)動(dòng)矢量滿足如下條件a以及條件b,則判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量; 條件a:N個(gè)所述其他運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊在所述下采樣幀的所有編碼宏塊中,占有預(yù)設(shè)比例; 條件b:所述下采樣幀的所有運(yùn)動(dòng)矢量中,不存在另外的運(yùn)動(dòng)矢量與M個(gè)運(yùn)動(dòng)矢量之間的矢量距離在所述預(yù)設(shè)距離范圍內(nèi),其中M>N。4.根據(jù)權(quán)利要求2或3所述的方法,其特征在于,采用如下方法計(jì)算所述距離閾值: 若所述下采樣幀為P幀,且所述下采樣幀的幀間代價(jià)小于非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于a; 若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于b ; 若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)的兩倍,則距離閾值等于c; 其中,所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)根據(jù)所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊的幀間代價(jià)進(jìn)行計(jì)算;a、b、c為經(jīng)驗(yàn)值。5.根據(jù)權(quán)利要求1或2或3所述的方法,其特征在于,調(diào)整所述編碼宏塊的碼率,進(jìn)一步包括: 根據(jù)所述下采樣幀的幀類(lèi)型調(diào)整所述量化參數(shù)的增加量,并根據(jù)所述編碼宏塊的量化參數(shù)的增加量減少用于非運(yùn)動(dòng)區(qū)域編碼的比特?cái)?shù),來(lái)調(diào)整碼率。6.—種用于運(yùn)動(dòng)視頻的碼率控制裝置,其特征在于,包括如下的模塊: 參數(shù)獲取模塊,用于對(duì)所述運(yùn)動(dòng)視頻進(jìn)行下采樣,遍歷當(dāng)前下采樣幀中的每一編碼宏塊; 判斷模塊,用于判斷所述編碼宏塊是否為非運(yùn)動(dòng)區(qū)域編碼宏塊; 碼率控制模塊,若判定所述編碼宏塊為所述非運(yùn)動(dòng)區(qū)域編碼宏塊,則用于調(diào)整所述編碼宏塊的碼率。7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,所述判斷模塊進(jìn)一步用于: 計(jì)算所述當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量之間的距離,當(dāng)所述距離小于預(yù)設(shè)的距離閾值,則判定所述編碼宏塊是非運(yùn)動(dòng)區(qū)域編碼宏塊。8.根據(jù)權(quán)利要求7所述的裝置,其特征在于,所述裝置進(jìn)一步包括預(yù)分析模塊,所述預(yù)分析模塊用于: 計(jì)算當(dāng)前編碼宏塊的運(yùn)動(dòng)矢量與所述下采樣幀中其他運(yùn)動(dòng)矢量之間的矢量距離;當(dāng)所述矢量距離小于預(yù)設(shè)距離范圍時(shí),統(tǒng)計(jì)對(duì)應(yīng)的所述其他運(yùn)動(dòng)矢量的數(shù)量N ;若所述運(yùn)動(dòng)矢量滿足如下條件a以及條件b,則判定所述運(yùn)動(dòng)矢量為非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量;其中: 條件a:N個(gè)所述其他運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊在所述下采樣幀的所有編碼宏塊中,占有預(yù)設(shè)比例; 條件b:所述下采樣幀的所有運(yùn)動(dòng)矢量中,不存在另外的運(yùn)動(dòng)矢量與M個(gè)運(yùn)動(dòng)矢量之間的矢量距離在所述預(yù)設(shè)距離范圍內(nèi),其中M>N。9.根據(jù)權(quán)利要求7或8所述的裝置,其特征在于,所述判斷模塊進(jìn)一步用于采用如下方法計(jì)算所述距離閾值: 若所述下采樣幀為P幀,且所述下采樣幀的幀間代價(jià)小于非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于a; 若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià),則距離閾值等于b ; 若所述下采樣幀為B幀,且所述幀間代價(jià)小于所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)的兩倍,則距離閾值等于c; 其中,所述非運(yùn)動(dòng)區(qū)域平均幀間代價(jià)根據(jù)所述非運(yùn)動(dòng)區(qū)域運(yùn)動(dòng)矢量對(duì)應(yīng)的編碼宏塊的幀間代價(jià)進(jìn)行計(jì)算;a、b、c為經(jīng)驗(yàn)值。10.根據(jù)權(quán)利要求6或7或8所述的裝置,其特征在于,所述碼率控制模塊進(jìn)一步用于根據(jù)所述下采樣幀的幀類(lèi)型調(diào)整所述量化參數(shù)的增加量,并根據(jù)所述編碼宏塊的量化參數(shù)的增加量減少用于非運(yùn)動(dòng)區(qū)域編碼的比特?cái)?shù),來(lái)調(diào)整碼率。
【文檔編號(hào)】H04N19/139GK105898306SQ201510921135
【公開(kāi)日】2016年8月24日
【申請(qǐng)日】2015年12月11日
【發(fā)明人】呂超, 魏偉, 白茂生
【申請(qǐng)人】樂(lè)視云計(jì)算有限公司