欧美在线观看视频网站,亚洲熟妇色自偷自拍另类,啪啪伊人网,中文字幕第13亚洲另类,中文成人久久久久影院免费观看 ,精品人妻人人做人人爽,亚洲a视频

軟硬件協(xié)同編碼方法及系統(tǒng)與流程

文檔序號(hào):11657739閱讀:374來源:國(guó)知局
軟硬件協(xié)同編碼方法及系統(tǒng)與流程

本發(fā)明涉及視頻編碼領(lǐng)域,具體涉及一種軟硬件協(xié)同編碼方法及系統(tǒng)。



背景技術(shù):

根據(jù)統(tǒng)計(jì),互聯(lián)網(wǎng)流量中,視頻數(shù)據(jù)的流量占據(jù)了大部分網(wǎng)絡(luò)帶寬資源。視頻編碼技術(shù)通過對(duì)視頻數(shù)據(jù)進(jìn)行壓縮,達(dá)到節(jié)省網(wǎng)絡(luò)帶寬和存儲(chǔ)空間的目的,具有巨大的經(jīng)濟(jì)效益。由于視頻編碼算法計(jì)算量大,通常采用特殊的硬件進(jìn)行編碼。實(shí)際應(yīng)用中,單純的硬件編碼器計(jì)算效率高,但是編碼效率不高。單純的軟件編碼器經(jīng)過充分的算法優(yōu)化,壓縮效率高,但是消耗cpu資源過多。

目前缺乏一種既能充分利用設(shè)備有限的cpu資源,進(jìn)行高效的視頻編碼,還能消除軟件編碼對(duì)cpu資源消耗過多造成的編碼丟幀問題的編碼方法。



技術(shù)實(shí)現(xiàn)要素:

針對(duì)現(xiàn)有技術(shù)中存在的缺陷,本發(fā)明的目的在于提供一種編碼效率高且能消除編碼卡頓和丟幀的軟硬件協(xié)同編碼方法。

為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:

一種軟硬件協(xié)同編碼方法,包括以下步驟:

將原始視頻圖像輸入硬件編碼器進(jìn)行編碼,得到多個(gè)由硬件編碼輸出的畫面組gop,同時(shí)還將原始視頻圖像輸入到圖像緩存隊(duì)列中;

根據(jù)cpu計(jì)算能力將所述多個(gè)由硬件編碼輸出的gop中的部分gop刪除;

從圖像緩存隊(duì)列中取出與被刪除的gop對(duì)應(yīng)的原始視頻圖像進(jìn)行軟件編碼;以及

將由硬件編碼輸出的gop和由軟件編碼輸出的gop輸出到編碼圖像隊(duì)列。

在上述技術(shù)方案的基礎(chǔ)上,定義初始的軟件編碼gop比例因子確定所述硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量。

在上述技術(shù)方案的基礎(chǔ)上,定義軟件編碼gop比例因子的動(dòng)態(tài)調(diào)整周期,并判斷一個(gè)動(dòng)態(tài)調(diào)整周期是否結(jié)束,若是,根據(jù)cpu實(shí)時(shí)的計(jì)算能力,對(duì)軟件編碼gop比例因子進(jìn)行修正,由修正的軟件編碼gop比例因子動(dòng)態(tài)調(diào)整所述硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量,若否,保持原軟件編碼gop比例因子。

在上述技術(shù)方案的基礎(chǔ)上,所述動(dòng)態(tài)調(diào)整周期表示為在對(duì)預(yù)設(shè)數(shù)量的gop所對(duì)應(yīng)的原始視頻圖像編碼后才對(duì)軟件編碼gop比例因子進(jìn)行修正。

在上述技術(shù)方案的基礎(chǔ)上,所述對(duì)軟件編碼gop比例因子進(jìn)行修正的步驟包括:

獲取最近一個(gè)刪除的gop所對(duì)應(yīng)的原始視頻圖像進(jìn)行軟件編碼時(shí)消耗的cpu的時(shí)間tr,得到進(jìn)行軟件編碼的最大頻率1/tr;

根據(jù)該gop在軟件編碼時(shí)所包含的編碼圖像數(shù)nf、圖像幀率fr和時(shí)間間隔tg,將tr轉(zhuǎn)換為標(biāo)準(zhǔn)值tr’=tr*(nf*fr/tg);

綜合考慮cpu計(jì)算能力空閑以及預(yù)測(cè)偏差,制定安全系數(shù)β進(jìn)行校正,其中0<β<1;

根據(jù)該gop的時(shí)間間隔tg、標(biāo)準(zhǔn)值tr’和安全系數(shù)β得到修正后的軟件編碼gop比例因子α=β*(tg/tr’)。

在上述技術(shù)方案的基礎(chǔ)上,根據(jù)初始的軟件編碼gop比例因子或修正的軟件編碼gop比例因子,采用位掩碼區(qū)分表示由硬件編碼輸出的gop和由軟件編碼輸出的gop。

在上述技術(shù)方案的基礎(chǔ)上,所述從圖像緩存隊(duì)列中取出與被刪除的gop對(duì)應(yīng)的視頻圖像進(jìn)行軟件編碼的步驟包括:

對(duì)被刪除的gop,掃描gop內(nèi)的每幀圖像的pts,計(jì)算得到最小pts和最大pts;

在圖像緩存隊(duì)列中的原始視頻圖像中順序查找最小pts和最大pts對(duì)應(yīng)的視頻圖像,將最小pts和最大pts之間的視頻圖像序列進(jìn)行軟件編碼輸出。

在上述技術(shù)方案的基礎(chǔ)上,將所述最小pts對(duì)應(yīng)的視頻圖像編碼成idr幀,同時(shí)將最大pts之前的視頻圖像從圖像緩存隊(duì)列中的原始視頻圖像中刪除。

與此同時(shí),本發(fā)明還提供一種編碼效率高且能消除編碼卡頓和丟幀的軟硬件協(xié)同編碼系統(tǒng)。

為達(dá)到以上目的,本發(fā)明采取的技術(shù)方案是:

一種實(shí)現(xiàn)上述軟硬件協(xié)同編碼方法的系統(tǒng),包括:

硬件編碼器,其用于對(duì)原始視頻圖像進(jìn)行硬件編碼,并得到由硬件編碼輸出的gop;

軟件編碼決策模塊,其用于判斷所述硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量;以及

軟件編碼器,其用于對(duì)原始視頻圖像進(jìn)行軟件編碼,并得到由軟件編碼輸出的gop。

在上述技術(shù)方案的基礎(chǔ)上,所述軟件編碼決策模塊還包括動(dòng)態(tài)調(diào)整模塊,所述動(dòng)態(tài)調(diào)整模塊用于定義動(dòng)態(tài)調(diào)整周期,并在動(dòng)態(tài)調(diào)整周期內(nèi)定義由硬件編碼和軟件編碼輸出的gop總量,所述動(dòng)態(tài)調(diào)整模塊還用于判斷當(dāng)前已經(jīng)輸出的gop是否超過gop總量,若否,則軟件編碼決策模塊維持原應(yīng)刪除的gop的數(shù)量,若是,則軟件編碼決策模塊修正應(yīng)刪除的gop的數(shù)量。

與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)在于:

本發(fā)明的軟硬件協(xié)同編碼方法采用了軟件編碼和硬件編碼相協(xié)同的方式進(jìn)行編碼,其中軟件編碼時(shí)考慮了cpu的計(jì)算能力,能夠充分利用設(shè)備有限的cpu資源,消除了軟件編碼對(duì)cpu資源消耗過多造成的編碼丟幀問題。通過軟件編碼和硬件編碼相協(xié)同的方式克服了現(xiàn)有技術(shù)中單純的硬件編碼導(dǎo)致編碼效率不高,單純的軟件編碼消耗cpu資源過多的問題。更進(jìn)一步的是,還能根據(jù)cpu實(shí)時(shí)的計(jì)算能力,進(jìn)行動(dòng)態(tài)調(diào)整,實(shí)時(shí)調(diào)整硬件編碼和軟件編碼各自所占的比例,具體是通過修正軟件編碼gop比例因子來實(shí)現(xiàn)的。從而可以實(shí)時(shí)避免因cpu計(jì)算能力過度消耗,而導(dǎo)致緩存溢出丟幀的現(xiàn)象。此外,為了方便區(qū)分硬件編碼和軟件編碼的比例,還可以采用位掩碼來區(qū)分表示,更為形象化。

附圖說明

圖1為本發(fā)明實(shí)施例中軟硬件協(xié)同編碼方法的流程圖;

圖2為本發(fā)明實(shí)施例中軟硬件協(xié)同編碼系統(tǒng)的結(jié)構(gòu)框圖。

具體實(shí)施方式

以下結(jié)合附圖及實(shí)施例對(duì)本發(fā)明作進(jìn)一步詳細(xì)說明。

參見圖1所示,本發(fā)明實(shí)施例提供一種軟硬件協(xié)同編碼方法,包括以下步驟:

s1.配置硬件編碼器。

在進(jìn)行編碼之前,首先需要配置硬件編碼器,即對(duì)硬件編碼器進(jìn)行參數(shù)配置,通常包括原始視頻圖像寬高、顏色格式、gop(groupofpictures,畫面組)時(shí)間間隔、幀率、碼率或編碼質(zhì)量級(jí)別等進(jìn)行配置。

s2.將原始視頻圖像輸入硬件編碼器進(jìn)行編碼,得到多個(gè)由硬件編碼輸出的畫面組gop,同時(shí)還將原始視頻圖像輸入到圖像緩存隊(duì)列中。

原始視頻圖像輸入硬件編碼器進(jìn)行編碼,編碼后的視頻幀以gop輸出。硬件編碼器的參數(shù)集(如序列參數(shù)集和圖像參數(shù)集)中含有重要的編碼信息,從中可解析出視頻編碼幀的量化參數(shù)。

s3.根據(jù)cpu計(jì)算能力將多個(gè)由硬件編碼輸出的gop中的部分gop刪除。

硬件編碼輸出的gop一部分直接輸出到編碼圖像隊(duì)列,一部分被刪除。而被刪除的這部分gop對(duì)應(yīng)的原始視頻圖像將會(huì)由軟件編碼器進(jìn)行軟件編碼。具體有多少比例的gop會(huì)被刪除,而改由軟件編碼來代替,涉及到軟件編碼gop比例因子的計(jì)算。

通過定義初始的軟件編碼gop比例因子可以確定硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量,在得知軟件編碼gop比例因子后,即可確定有多少比例的gop所對(duì)應(yīng)的原始視頻圖像應(yīng)由軟件編碼器來編碼,從而可以確定硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量。

本實(shí)施例中為了能夠根據(jù)cpu實(shí)時(shí)的計(jì)算能力做出自適應(yīng)調(diào)整,定義了軟件編碼gop比例因子的動(dòng)態(tài)調(diào)整周期。在每個(gè)動(dòng)態(tài)調(diào)整周期結(jié)束時(shí),根據(jù)cpu實(shí)時(shí)的計(jì)算能力,對(duì)軟件編碼gop比例因子進(jìn)行修正,由修正的軟件編碼gop比例因子動(dòng)態(tài)調(diào)整所述硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量。動(dòng)態(tài)調(diào)整周期表示的是只有在對(duì)預(yù)設(shè)數(shù)量的gop所對(duì)應(yīng)的原始視頻圖像編碼后才對(duì)軟件編碼gop比例因子進(jìn)行修正,而沒有完成預(yù)設(shè)數(shù)量時(shí)將不會(huì)對(duì)軟件編碼gop比例因子進(jìn)行修正,將會(huì)保持原有的軟件編碼gop比例因子。這里對(duì)預(yù)設(shè)數(shù)量的gop所對(duì)應(yīng)的原始視頻圖像編碼包括硬件編碼和軟件編碼。

其中,對(duì)軟件編碼gop比例因子進(jìn)行修正的步驟包括:

(1)獲取最近一個(gè)刪除的gop對(duì)應(yīng)的原始視頻圖像進(jìn)行軟件編碼消耗的cpu的時(shí)間tr,得到進(jìn)行軟件編碼的最大頻率1/tr。

軟件編碼使用cpu資源,需要結(jié)合實(shí)際運(yùn)行cpu的計(jì)算能力來確定軟件編碼gop比例因子,這樣既能充分利用cpu的處理能力,又能避免丟幀造成問題。對(duì)于最近一個(gè)刪除的gop對(duì)應(yīng)的原始視頻圖像進(jìn)行軟件編碼消耗的cpu的時(shí)間tr,如果超過這一上限頻率進(jìn)行軟件編碼,將導(dǎo)致cpu計(jì)算能力過度消耗,最終將導(dǎo)致緩存溢出丟幀。

(2)根據(jù)該gop在軟件編碼時(shí)所包含的編碼圖像數(shù)nf、圖像幀率fr和時(shí)間間隔tg,將tr轉(zhuǎn)換為標(biāo)準(zhǔn)值tr’=tr*(nf*fr/tg)。

實(shí)際編碼中,由于每個(gè)gop包含的編碼幀數(shù)可能不完全一致,為此需要將tr轉(zhuǎn)換為標(biāo)準(zhǔn)值tr’。

(3)綜合考慮cpu計(jì)算能力空閑以及預(yù)測(cè)偏差,制定安全系數(shù)β進(jìn)行校正,其中0<β<1。

考慮到cpu的計(jì)算能力應(yīng)該有一部分空閑,以及采用最近一個(gè)gop來預(yù)測(cè)存在一定偏差,因此需要乘以一個(gè)安全系數(shù)β進(jìn)行校正,這里0<β<1,本實(shí)施例中的β為0.6。

(4)根據(jù)該gop的時(shí)間間隔tg、標(biāo)準(zhǔn)值tr’和安全系數(shù)β得到修正后的軟件編碼gop比例因子α=β*(tg/tr’)。

首先可以定義初始的軟件編碼gop比例因子,比如1/10,然后便可以通過上述步驟來對(duì)初始的軟件編碼gop比例因子進(jìn)行修正。這里設(shè)動(dòng)態(tài)修正周期為t,則在一個(gè)動(dòng)態(tài)修正周期為t內(nèi),軟件編碼占比數(shù)為n=α*t。

更具體地,可以用位掩碼來表示哪些gop所對(duì)應(yīng)的原始視頻圖像應(yīng)該采用軟件編碼,哪些gop所對(duì)應(yīng)的原始視頻圖像采用硬件編碼。如t=10,α=0.6,n=6,則取10位來存儲(chǔ)標(biāo)記,其中6位標(biāo)記為1,表示采用軟件編碼,4位標(biāo)記為0,表示直接輸出硬編碼的編碼gop,其標(biāo)記掩碼為1111110000。

s4.配置軟件編碼器。

在利用軟件編碼器編碼時(shí),同樣需要對(duì)軟件編碼器進(jìn)行配置,軟件編碼器除了硬件編碼器的基本配置參數(shù)外,可進(jìn)行更加具體的配置(如視頻內(nèi)容類別),這些配置可讓軟件編碼器針對(duì)應(yīng)用場(chǎng)景進(jìn)行編碼優(yōu)化。原始視頻寬高、顏色格式、gop時(shí)間間隔這些參數(shù),軟件編碼器采用與硬件編碼器同樣的配置。如果硬件編碼器采用碼率控制方式,軟件編碼器采用同樣的碼率配置,這樣可以提高畫面質(zhì)量。如果硬件編碼器采用恒定質(zhì)量級(jí)別控制方式,軟件編碼器設(shè)置與硬件編碼器同樣的量化參數(shù)。另外,如果實(shí)際應(yīng)用環(huán)境中播放器要求同樣的參數(shù)集,可配置軟件編碼器與硬件編碼器同樣的參數(shù)集。

s5.從圖像緩存隊(duì)列中取出與被刪除的gop對(duì)應(yīng)的原始視頻圖像進(jìn)行軟件編碼。

被決定使用軟件編碼重新編碼的gop,需要在原始視頻圖像隊(duì)列中查找對(duì)應(yīng)的原始視頻圖像。首先對(duì)被刪除的gop,掃描gop內(nèi)的每幀圖像的pts,計(jì)算得到最小pts和最大pts,然后在圖像緩存隊(duì)列中的原始視頻圖像中順序查找最小pts和最大pts對(duì)應(yīng)的視頻圖像,將最小pts和最大pts之間的視頻圖像序列進(jìn)行軟件編碼輸出。本實(shí)施例中將最小pts對(duì)應(yīng)的視頻圖像編碼成idr幀,同時(shí)將最大pts之前的視頻圖像從圖像緩存隊(duì)列中的原始視頻圖像中刪除,以釋放內(nèi)存空間。

s6.將由硬件編碼輸出的gop和由軟件編碼輸出的gop輸出到編碼圖像隊(duì)列。

此時(shí),便完成了軟件編碼和硬件編碼的協(xié)同編碼。

參見圖2所示,本發(fā)明實(shí)施例還提供一種實(shí)現(xiàn)上述軟硬件協(xié)同編碼方法的系統(tǒng),其包括硬件編碼器、軟件編碼決策模塊和軟件編碼器。其中硬件編碼器用于對(duì)原始視頻圖像進(jìn)行硬件編碼,并得到由硬件編碼輸出的gop。軟件編碼決策模塊用于判斷硬件編碼輸出的gop中應(yīng)刪除的gop的數(shù)量。軟件編碼器用于對(duì)原始視頻圖像進(jìn)行軟件編碼,并得到由軟件編碼輸出的gop。

軟件編碼決策模塊還包括動(dòng)態(tài)調(diào)整模塊,動(dòng)態(tài)調(diào)整模塊用于定義動(dòng)態(tài)調(diào)整周期,并在動(dòng)態(tài)調(diào)整周期內(nèi)定義由硬件編碼和軟件編碼輸出的gop總量,動(dòng)態(tài)調(diào)整模塊還用于判斷當(dāng)前已經(jīng)輸出的gop是否超過gop總量,若否,則軟件編碼決策模塊維持原應(yīng)刪除的gop的數(shù)量,若是,則軟件編碼決策模塊修正應(yīng)刪除的gop的數(shù)量。

綜上所述,本實(shí)施例采用了軟件編碼和硬件編碼相協(xié)同的方式進(jìn)行編碼,其中軟件編碼時(shí)考慮了cpu的計(jì)算能力,能夠充分利用設(shè)備有限的cpu資源,消除了軟件編碼對(duì)cpu資源消耗過多造成的編碼丟幀問題。通過軟件編碼和硬件編碼相協(xié)同的方式克服了現(xiàn)有技術(shù)中單純的硬件編碼導(dǎo)致編碼效率不高,單純的軟件編碼消耗cpu資源過多的問題。

更進(jìn)一步的是,本實(shí)施例還能根據(jù)cpu實(shí)時(shí)的計(jì)算能力,進(jìn)行動(dòng)態(tài)調(diào)整,實(shí)時(shí)調(diào)整硬件編碼和軟件編碼各自所占的比例,具體是通過修正軟件編碼gop比例因子來實(shí)現(xiàn)的。從而可以實(shí)時(shí)避免因cpu計(jì)算能力過度消耗,而導(dǎo)致緩存溢出丟幀的現(xiàn)象。此外,為了方便區(qū)分硬件編碼和軟件編碼的比例,還可以采用位掩碼來區(qū)分表示,更為形象化。

本發(fā)明不局限于上述實(shí)施方式,對(duì)于本技術(shù)領(lǐng)域的普通技術(shù)人員來說,在不脫離本發(fā)明原理的前提下,還可以做出若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也視為本發(fā)明的保護(hù)范圍之內(nèi)。本說明書中未作詳細(xì)描述的內(nèi)容屬于本領(lǐng)域?qū)I(yè)技術(shù)人員公知的現(xiàn)有技術(shù)。

當(dāng)前第1頁(yè)1 2 
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
二连浩特市| 彩票| 荥经县| 共和县| 峨眉山市| 闽侯县| 饶河县| 乌拉特后旗| 东兰县| 长汀县| 安溪县| 武城县| 永宁县| 高雄市| 张掖市| 达孜县| 五家渠市| 溧阳市| 通河县| 吉木萨尔县| 高唐县| 古浪县| 新竹县| 祁连县| 柳林县| 南平市| 南川市| 洪洞县| 涡阳县| 大足县| 新蔡县| 隆子县| 三明市| 油尖旺区| 武清区| 册亨县| 盐山县| 禹城市| 镇江市| 文安县| 大理市|