專利名稱:視頻編碼設(shè)備、控制視頻編碼方法和控制視頻編碼程序的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及視頻編碼設(shè)備、控制視頻編碼的方法和控制視頻編碼的程序,并且適于被應(yīng)用到實(shí)施軟件編碼的視頻編碼設(shè)備。
背景技術(shù):
傳統(tǒng)地,對視頻信號進(jìn)行壓縮編碼/解碼的設(shè)備常常以視頻處理專用硬件來進(jìn)行編碼處理(編碼)和解碼處理(解碼)。將此稱為硬件編解碼(例如,見專利文獻(xiàn)1)。
相反地,隨著近來計(jì)算機(jī)技術(shù)的發(fā)展,已經(jīng)通過在通用CPU(中央處理單元)上執(zhí)行視頻處理程序來實(shí)現(xiàn)上述的編碼處理和解碼處理(將此稱為軟件編解碼)。
與硬件編解碼不同,這種軟件編解碼的優(yōu)點(diǎn)是其具有僅僅通過改變視頻處理程序就能容易地對諸如MPEG(運(yùn)動圖像專家組)1/2/4和JPEG2000等的國際標(biāo)準(zhǔn)化的壓縮編碼系統(tǒng)或其他各種壓縮編碼方法進(jìn)行解析的能力。此外,在其中已經(jīng)開發(fā)了新的壓縮編碼方法的情況中,僅僅根據(jù)該方法來更新視頻處理程序就能夠容易的解析最新的壓縮編碼方法。
專利文獻(xiàn)1日本專利公開No.2003-61097在軟件編碼中,CPU以分時的方式交替地處理視頻編碼處理(視頻編碼線程或進(jìn)程)和音頻編碼處理(音頻編碼線程或進(jìn)程)。對于音頻,其延遲或缺失易于被用戶察覺,而且通常,音頻編碼線程優(yōu)先進(jìn)行處理。例如,覆蓋一幀的音頻在一幀時間段期間(1/30秒)經(jīng)歷處理,之后一幀的視頻經(jīng)歷處理。
圖8示出了軟件編碼的處理狀態(tài),將從外部輸入的視頻數(shù)據(jù)以及音頻數(shù)據(jù)臨時分別存儲在視頻輸入緩存器以及音頻輸入緩存器中。CPU首先執(zhí)行音頻編碼線程并且從音頻輸入緩存器中讀出壓縮的代碼,之后將覆蓋一幀的音頻數(shù)據(jù)輸出。隨后,CPU執(zhí)行視頻編碼線程,從視頻輸入緩存器中讀出壓縮的代碼,之后輸出一幀的視頻數(shù)據(jù)。因此,CPU以分時的方式以幀時間段為基礎(chǔ)順序地進(jìn)行對音頻數(shù)據(jù)以及視頻數(shù)據(jù)的編碼。
這里,在對音頻進(jìn)行壓縮編碼處理中,其處理時間變化不大,但是相反地,在對視頻進(jìn)行壓縮編碼處理中,其處理時間根據(jù)試圖經(jīng)歷編碼的輸入視頻(圖片或運(yùn)動畫面等)的復(fù)雜程度而明顯變化。
例如,對于有很多相對平緩部分和較少運(yùn)動的視頻的處理時間較短,相反地,對包括復(fù)雜畫面和諸如體育廣播的、以中等速度經(jīng)歷鏡頭移動和縮放的正在進(jìn)行的運(yùn)動的視頻的處理時間就會增加。因?yàn)檫@種處理時間的增加,存在其中在一幀時間段內(nèi)不能完成編碼處理的情況。將這種處理延遲稱為超限運(yùn)行(overrun)。
也就是,在圖8中,第N幀極其復(fù)雜并且認(rèn)為在一幀時間段內(nèi)完成編碼已經(jīng)失敗(發(fā)生超限運(yùn)行)。在這種情況中,經(jīng)歷超限運(yùn)行發(fā)生的CPU對第N幀的編碼處理的完成將以削減對第N+1幀進(jìn)行編碼的時間而結(jié)束。這里,通常由OS(操作系統(tǒng))的上下文切換來實(shí)施對音頻的各個編碼線程的切換。
這里,這種幀時間段原來是用于處理第N+1幀的時間段,但是經(jīng)歷超限運(yùn)行發(fā)生的幀已經(jīng)經(jīng)歷了處理,所以第N+1幀不能經(jīng)歷處理。因此,CPU跳過對相關(guān)第N+1幀的編碼處理以從隨后的第N+2幀進(jìn)行編碼處理。
因此,傳統(tǒng)的軟件編碼被設(shè)計(jì)來在視頻編碼處理中已經(jīng)發(fā)生超限運(yùn)行的情況中跳過對隨后幀的編碼。但是,發(fā)生這種跳幀將使得所顯示的視頻處于逐幀提前的狀態(tài),從而產(chǎn)生損害視頻的顯示質(zhì)量的問題。
為了防止這種超限運(yùn)行,可以考慮多個CPU的并行操作和增加CPU的時鐘頻率等,但是就會存在使得整個設(shè)備變得復(fù)雜并且增加功耗的問題。
發(fā)明內(nèi)容
在考慮到上述問題的情況下已經(jīng)獲得了本發(fā)明,本發(fā)明試圖提出一種結(jié)構(gòu)簡單并且能夠避免因?yàn)橐曨l編碼處理的超限運(yùn)行而導(dǎo)致的視頻顯示質(zhì)量下降的視頻編碼設(shè)備,以及一種控制視頻編碼的方法和一種控制視頻編碼的程序。
為了解決這種問題,將本發(fā)明進(jìn)行設(shè)計(jì)以提供一種視頻編碼設(shè)備,其帶有編碼裝置,用于以第一編碼處理方法基于幀將視頻送入編碼處理;處理時間檢測裝置,用于檢測對幀進(jìn)行編碼處理所需要的實(shí)際編碼處理時間;延遲計(jì)算裝置,用于根據(jù)對編碼處理給出的預(yù)定的編碼預(yù)期處理時間和實(shí)際編碼處理時間來計(jì)算對幀進(jìn)行編碼處理的處理延遲時間;以及編碼負(fù)荷控制裝置,用于在對幀的處理延遲時間大于或等于預(yù)定的閾值的情況中,指令編碼裝置以帶有低于第一編碼處理方法的編碼處理負(fù)荷的第二編碼處理方法對隨后的幀實(shí)施編碼處理。
根據(jù)編碼處理中延遲的發(fā)生,為了減小對隨后幀的編碼負(fù)荷而進(jìn)行的控制使得在發(fā)生超限運(yùn)行之后縮短幀處理時間從而從超限運(yùn)行中恢復(fù)成為可能,并且使得防止由于超限運(yùn)行的發(fā)生而導(dǎo)致的跳幀和防止視頻顯示質(zhì)量下降成為可能。
此外,已經(jīng)將本發(fā)明進(jìn)行設(shè)計(jì)以當(dāng)對連續(xù)的多個幀的處理延遲時間的累積值大于或等于預(yù)定的閾值時,以帶有低于第二編碼處理方法的編碼處理負(fù)荷的第三編碼處理方法對相關(guān)多個幀之后的幀實(shí)施編碼處理。
即使在超限運(yùn)行的值較大并且從對一幀的相關(guān)超限運(yùn)行的恢復(fù)以失敗結(jié)束的情況中,進(jìn)一步減輕對前向幀的編碼處理負(fù)荷也使得在多個幀期間從超限運(yùn)行進(jìn)行具體實(shí)際的恢復(fù)成為可能。
如上所述,本發(fā)明可以實(shí)現(xiàn)一種視頻編碼設(shè)備、控制視頻編碼的方法和控制視頻編碼的程序,其能夠根據(jù)視頻編碼處理中延遲的發(fā)生來控制對隨后幀的編碼負(fù)荷以減少延遲的發(fā)生;從而,在發(fā)生超限運(yùn)行之后縮短幀的處理時間以從超限運(yùn)行中進(jìn)行恢復(fù);并且防止由于發(fā)生超限運(yùn)行而導(dǎo)致的跳幀并且避免視頻顯示質(zhì)量的下降。
圖1示出了根據(jù)本發(fā)明的信號處理設(shè)備的整體結(jié)構(gòu)框圖;圖2示出了信號處理設(shè)備的系統(tǒng)的示意框圖;圖3示出了用于解釋根據(jù)本發(fā)明的超限運(yùn)行恢復(fù)的時序圖;圖4示出了對正常編碼進(jìn)行處理的示意框圖;圖5示出了在恢復(fù)編碼模式1上進(jìn)行處理的示意框圖;圖6示出了在恢復(fù)編碼模式2上進(jìn)行處理的示意框圖;圖7示出了根據(jù)本發(fā)明的超限運(yùn)行恢復(fù)處理過程的流程圖;和圖8示出了用于解釋根據(jù)超限運(yùn)行的跳幀的時序圖。
具體實(shí)施例方式
以下,參照附圖來說明本發(fā)明的實(shí)施方式。
(1)信號處理設(shè)備的整體結(jié)構(gòu)在圖1中,參考數(shù)字1整體表示作為根據(jù)本發(fā)明的視頻編碼設(shè)備的信號處理設(shè)備,并且將本地存儲器3、信號輸入/輸出部分4和網(wǎng)絡(luò)接口5都連接到整體控制相關(guān)信號處理設(shè)備1的CPU2。用快速本地總線將CPU2直接連接到本地存儲器3。
而且在信號處理設(shè)備1中,將CPU2進(jìn)行設(shè)計(jì)以讀出和執(zhí)行未在圖中示出的ROM中所存儲的編解碼程序,從而用軟件對視頻和音頻信號進(jìn)行編碼和解碼處理。
也就是,信號處理設(shè)備1在編碼視頻和音頻的時候,將從外部輸入的模擬視頻信號和模擬音頻信號送到信號輸入/輸出部分4的A/D(模擬/數(shù)字)轉(zhuǎn)換器4A進(jìn)行數(shù)字轉(zhuǎn)換,產(chǎn)生數(shù)字視頻數(shù)據(jù)和數(shù)字音頻數(shù)據(jù)(之后簡稱為視頻數(shù)據(jù)和音頻數(shù)據(jù)),并且臨時將它們存儲在本地存儲器3中。
CPU2順序地讀出在本地存儲器3中存儲的視頻數(shù)據(jù)和音頻數(shù)據(jù),并且例如以諸如MPEG1/2/4等的國際標(biāo)準(zhǔn)化的壓縮系統(tǒng),或者以符合已經(jīng)在上面描述的編解碼程序的其他各種視頻/音頻壓縮系統(tǒng),對所述數(shù)據(jù)進(jìn)行壓縮編碼,并且產(chǎn)生編碼的視頻數(shù)據(jù)和編碼的音頻數(shù)據(jù)。
而且CPU2臨時地將這些編碼的視頻數(shù)據(jù)和編碼的音頻數(shù)據(jù)存儲在本地存儲器3中,之后順序地讀出它們并且將它們提供給網(wǎng)絡(luò)接口5。網(wǎng)絡(luò)接口5處理編碼的視頻數(shù)據(jù)和編碼的音頻數(shù)據(jù)以根據(jù)預(yù)定的格式形成數(shù)據(jù)包(打包),從而將它們發(fā)送到外部存儲介質(zhì)或者位于發(fā)送目的地的設(shè)備。
在另一方面,信號處理設(shè)備1在對視頻和音頻進(jìn)行解碼的時候,將從外部存儲介質(zhì)和位于發(fā)送源處的設(shè)備提供來的打包過的編碼的視頻數(shù)據(jù)和編碼的音頻數(shù)據(jù)用網(wǎng)絡(luò)接口5進(jìn)行恢復(fù)(解打包),并且將它們臨時地存儲在本地存儲器3中。
作為編碼裝置的CPU2順序地讀出在本地存儲器3中所存儲的壓縮的視頻數(shù)據(jù)和壓縮的音頻數(shù)據(jù),并且根據(jù)已經(jīng)在上面描述過的編解碼程序?qū)⑺鼈兘獯a以產(chǎn)生視頻數(shù)據(jù)和音頻數(shù)據(jù)。
而且CPU2臨時地將這些視頻數(shù)據(jù)和音頻數(shù)據(jù)存儲在本地存儲器3中,并之后將它們順序讀出并且提供給信號輸入/輸出部分4。信號輸入/輸出部分4的D/A(數(shù)字/模擬)轉(zhuǎn)換器4B將視頻數(shù)據(jù)和音頻數(shù)據(jù)進(jìn)行模擬轉(zhuǎn)換,以產(chǎn)生模擬視頻信號和模擬音頻信號,并且將它們對外輸出。
因此,信號處理設(shè)備1用軟件編解碼對視頻信號和音頻信號執(zhí)行編碼處理和解碼處理。
隨后,將參照圖2中示出的系統(tǒng)示意圖來詳細(xì)描述在信號處理設(shè)備1中用軟件編解碼對視頻信號和音頻信號進(jìn)行的編碼處理和解碼處理。
在編碼的時候,將從信號輸入/輸出部分4的A/D轉(zhuǎn)換器4A(見圖1)提供來的視頻數(shù)據(jù)和音頻數(shù)據(jù)分別存儲在本地存儲器3的視頻輸入緩存器3A和音頻輸入緩存器3B中。
在圖2中,在由CPU2所執(zhí)行的編解碼程序中的視頻輸入緩存器控制器10A總是監(jiān)視視頻輸入緩存器3A,并且當(dāng)在具有覆蓋兩幀的尺寸的相關(guān)視頻輸入緩存器3A中積累了覆蓋一個幀的視頻數(shù)據(jù)時,控制器10A將開始命令發(fā)送到與它們符合的編解碼程序中的視頻編碼線程11A,并且使得其將覆蓋一幀的視頻數(shù)據(jù)從視頻輸入緩存器3A傳送到視頻編碼線程11A。
視頻編碼線程11A根據(jù)從視頻輸入緩存器控制器10A提供來的開始命令從視頻輸入緩存器3A讀出覆蓋一幀的視頻數(shù)據(jù),并且將它們壓縮編碼以輸出到本地存儲器3的視頻流輸出緩存器3C,而且將反饋消息作為完成提示發(fā)送回視頻輸入緩存器控制器10A以完成該線程。
類似地,在編解碼程序中的音頻輸入緩存器控制器10B總是監(jiān)測音頻輸入緩存器3B,并且當(dāng)在相關(guān)音頻輸入緩存器3B中積累了覆蓋一幀的音頻數(shù)據(jù)時,控制器10B將開始命令發(fā)送到與它們符合的編解碼程序中的音頻編碼線程11B,并且使得其將覆蓋一幀的音頻數(shù)據(jù)從音頻輸入緩存器3B發(fā)送到音頻編碼線程11B。
音頻編碼線程11B根據(jù)從音頻輸入緩存器控制器10B提供來的開始命令從音頻輸入緩存器3B讀出覆蓋一幀的音頻數(shù)據(jù),并且將它們壓縮編碼以輸出到本地存儲器3的音頻流輸出緩存器3D,而且將反饋消息作為完成提示發(fā)送回音頻輸入緩存器控制器10B以完成線程。
這里,相對于視頻編碼線程11A優(yōu)先處理音頻編碼線程11B。
而且,網(wǎng)絡(luò)接口5的打包器5A將編碼視頻數(shù)據(jù)和編碼音頻數(shù)據(jù)讀出、打包并且從視頻流輸出緩存器3C和音頻流輸出緩存器3D輸出。
在另一方面,在解碼的時候,網(wǎng)絡(luò)接口5的解包器5B從外部提供的數(shù)據(jù)包中提取編碼的視頻數(shù)據(jù)和編碼的音頻數(shù)據(jù),以將它們存儲在本地存儲器3的視頻流輸入緩存器3E和音頻流輸入緩存器3F中。
在CPU2所執(zhí)行的編解碼程序中的視頻流輸入緩存器控制器10C總是監(jiān)測視頻流輸入緩存器3E,并且當(dāng)在相關(guān)視頻流輸入緩存器3E中積累了覆蓋一個訪問單元的編碼的視頻數(shù)據(jù)時,控制器10C將開始命令發(fā)送到由CPU2所執(zhí)行的編解碼程序中的視頻解碼線程12A,并且使得其將覆蓋一個訪問單元的編碼的視頻數(shù)據(jù)從視頻流輸入緩存器3E發(fā)送到視頻解碼線程12A。
視頻解碼線程12A根據(jù)從視頻流輸入緩存器控制器10C提供來的開始命令從視頻流輸入緩存器3E讀出覆蓋一個訪問單元的編碼的視頻數(shù)據(jù),并且將它們解碼以輸出到本地存儲器3的視頻輸出緩存器3G,而且將反饋消息作為完成提示發(fā)送回視頻流輸入緩存器控制器10C以完成線程。
類似地,在編解碼程序中的音頻流輸入緩存器控制器10D總是監(jiān)測音頻流輸入緩存器3F,并且當(dāng)在相關(guān)音頻流輸入緩存器3F中積累了覆蓋一個訪問單元的編碼的音頻數(shù)據(jù)時,控制器10D將開始命令發(fā)送到與它們符合的編解碼程序中的音頻解碼線程12B,并且使得其將覆蓋一個訪問單元的編碼的音頻數(shù)據(jù)從音頻流輸入緩存器3F發(fā)送到音頻解碼線程12B。
音頻解碼線程12B根據(jù)從音頻流輸入緩存器控制器10D提供來的開始命令從音頻流輸入緩存器3F讀出覆蓋一個訪問單元的編碼的音頻數(shù)據(jù),并且將它們解碼以輸出到本地存儲器3的音頻輸出緩存器3H,而且將反饋消息作為完成提示發(fā)送回音頻流輸入緩存器控制器10D以完成線程。
(2)根據(jù)本發(fā)明的超限運(yùn)行恢復(fù)如上所述,將這種信號處理設(shè)備1進(jìn)行設(shè)計(jì)以在編碼的時候優(yōu)先音頻編碼線程,并且在一個幀時間段期間交替執(zhí)行分別覆蓋一幀的音頻編碼線程和視頻編碼線程以進(jìn)行編碼處理。
在此之外,將這種信號處理設(shè)備1進(jìn)行設(shè)計(jì)以在視頻編碼處理中已經(jīng)發(fā)生編碼延遲(超限運(yùn)行)的情況下,改變線程執(zhí)行順序并且減少視頻編碼處理的負(fù)荷,從而在不進(jìn)行編碼跳過的情況下從超限運(yùn)行中恢復(fù)(之后稱為超限運(yùn)行恢復(fù))。
也就是,作為處理時間檢測裝置的CPU2在視頻編碼線程開始的時候和結(jié)束的時候從系統(tǒng)時鐘(未在附圖中示出)獲得時間信息,并且根據(jù)該開始時間和結(jié)束時間之間的時間差計(jì)算每一幀的實(shí)際編碼處理時間。而且作為延遲計(jì)算裝置的CPU2通過將事先預(yù)測的編碼預(yù)測處理時間從該實(shí)際編碼處理時間中減去來計(jì)算處理延遲時間。
而且作為編碼負(fù)荷控制裝置的CPU2將偶爾大于“0”的這種處理延遲時間當(dāng)作發(fā)生超限運(yùn)行并且執(zhí)行超限運(yùn)行恢復(fù)。
隨后,將參照圖3中所示的時序圖來描述這種超限運(yùn)行恢復(fù)的處理例子。在圖3中,假設(shè)因?yàn)榈贜幀非常復(fù)雜所以在一幀期間還沒有完成編碼(發(fā)生超限運(yùn)行)。在下面情況中,即如傳統(tǒng)情況將CPU2對已經(jīng)發(fā)生了超限運(yùn)行的第N幀的編碼處理中斷,并且在隨后幀時間段期間,與第N+1幀對應(yīng)的音頻數(shù)據(jù)首先經(jīng)歷編碼,之后恢復(fù)對已經(jīng)發(fā)生了超限運(yùn)行的第N幀的視頻數(shù)據(jù)的編碼,從而將對相關(guān)第N幀的編碼完成。
在完成對恢復(fù)的第N幀的編碼之后,CPU2立即開始對第N+1幀的編碼處理。在此時,作為編碼負(fù)荷控制裝置的CPU2將帶有低于正常編碼處理的負(fù)荷的編碼處理方法應(yīng)用于該第N+1幀。將帶有低于正常負(fù)荷的這種編碼處理方法稱為恢復(fù)編碼模式1。相反地,將正常編碼處理方法稱為正常編碼。圖4和圖5示出了正常編碼和恢復(fù)編碼模式1的處理示意圖。
在這種恢復(fù)編碼模式1中,CPU2在編碼預(yù)測中采用比正常編碼中的窄的運(yùn)動矢量搜索范圍,從而消減運(yùn)動矢量搜索的處理周期以減小處理負(fù)荷,因此縮短每幀的編碼處理時間。
因此,在應(yīng)用恢復(fù)編碼模式1以縮短在一幀時間段內(nèi)對相關(guān)第N+1幀完成編碼處理而產(chǎn)生的編碼處理時間(未在附圖中示出)的情況中,CPU2將正常編碼應(yīng)用于隨后的第N+2幀并且向前進(jìn)行處理。
相反的,如圖3中所示,在計(jì)劃了應(yīng)用恢復(fù)編碼模式1以縮短處理時間但是第N+1幀沒有經(jīng)歷編碼(超限運(yùn)行恢復(fù)沒有成功)的情況下,CPU2臨時地中斷對相關(guān)第N+1幀的編碼,而且在隨后幀時間段期間首先將與第N+1幀對應(yīng)的音頻數(shù)據(jù)進(jìn)行編碼,之后恢復(fù)對第N+1幀的視頻數(shù)據(jù)進(jìn)行編碼。
而且,在完成對所恢復(fù)的第N+1幀的編碼之后,CPU2開始對隨后的第N+2幀進(jìn)行編碼處理。此時,作為編碼負(fù)荷控制裝置的CPU2將帶有比恢復(fù)編碼模式1低得多的處理負(fù)荷的編碼處理方法應(yīng)用于該第N+2幀。將這種編碼處理方法稱為恢復(fù)編碼模式2。
在該恢復(fù)編碼模式2中,如圖6中所示的處理示意圖,CPU2通過逆量化、逆變換編碼和運(yùn)動補(bǔ)償來恢復(fù)(revitalize)幀的一系列反饋處理系統(tǒng)。這種反饋處理系統(tǒng)是將參考幀重構(gòu)到幀存儲器上以預(yù)測下一幀的過程。CPU2在恢復(fù)編碼模式2中停止這種反饋系統(tǒng),從而與模式1相比也縮短了編碼處理時間。
因此,將CPU2進(jìn)行設(shè)計(jì)以在應(yīng)用恢復(fù)編碼模式1不能從超限運(yùn)行恢復(fù)的情況中,通過將帶有更低處理負(fù)荷的模式2應(yīng)用于隨后的幀而確保在3幀時間段內(nèi)從發(fā)生超限運(yùn)行中恢復(fù)。
這里,為了超限運(yùn)行恢復(fù)而應(yīng)用恢復(fù)編碼模式2將產(chǎn)生其中不將用于運(yùn)動預(yù)測的參考幀記錄在幀存儲器中的狀態(tài),從而下一幀將禁止運(yùn)動預(yù)測使用這種參考幀。
因此,在已經(jīng)應(yīng)用了恢復(fù)編碼模式2的情況中,CPU2將隨后的幀進(jìn)行編碼作為沒有經(jīng)歷運(yùn)動預(yù)測的I畫面(內(nèi)編碼畫面),并且用該幀作為開始點(diǎn)重構(gòu)GOP(圖像組)。
隨后,將參照圖7中所示的流程圖來描述已經(jīng)在上面說明過的編解碼程序中的超限運(yùn)行恢復(fù)的處理過程。信號處理設(shè)備1的CPU2以例程RT1中的開始步驟來開始,并且前進(jìn)到下一步驟SP1。
在步驟SP1,CPU2直接從OS(操作系統(tǒng))或者硬件獲得對于緊接之前的視頻幀的編碼線程結(jié)束定時和對于當(dāng)前視頻幀的編碼線程開始定時,并且將它們分別存儲。并且CPU2得到已經(jīng)在存儲中的、對于緊接之前幀的開始時間和隨后的結(jié)束時間之間的差,從而計(jì)算對緊接之前幀進(jìn)行編碼所需要的處理延遲時間TN,并且將相關(guān)的TN與超限運(yùn)行積累處理時間相加,再前進(jìn)到步驟SP2。這里,在處理開始時將積累處理延遲時間設(shè)置為“0”。
在步驟SP2,CPU2根據(jù)所計(jì)算的積累處理延遲時間和超限運(yùn)行計(jì)數(shù)器的值來確定是否存在超限運(yùn)行的發(fā)生。
在步驟SP2中,在通過將積累處理延遲時間除以超限運(yùn)行計(jì)數(shù)器值而獲得的值小于在系統(tǒng)開始的時候作為視頻編碼線程給出的目標(biāo)時間TGT(TarGet時間)的情況中,這就指示還沒有發(fā)生超限運(yùn)行,并且在此時,CPU2前進(jìn)到步驟SP3從而用正常編碼來對該幀進(jìn)行編碼,以將積累處理延遲時間復(fù)位到“0”并且同時將超限運(yùn)行計(jì)數(shù)器復(fù)位到“1”而且返回步驟SP1。
在另一方面,在步驟SP2,在通過將積累處理延遲時間除以超限運(yùn)行計(jì)數(shù)器值而獲得的值大于在系統(tǒng)開始的時候作為視頻編碼線程給出的目標(biāo)時間TGT(TarGet時間)的情況中,這就指示已經(jīng)發(fā)生了超限運(yùn)行,并且在此時,CPU2前進(jìn)到步驟SP4從而對超限運(yùn)行計(jì)數(shù)器的值加“1”以對其中已經(jīng)發(fā)生了超限運(yùn)行的幀進(jìn)行計(jì)數(shù),并且前進(jìn)到下一步驟SP5。
在步驟SP5,CPU2根據(jù)超限運(yùn)行計(jì)數(shù)器的計(jì)數(shù)值來確定已經(jīng)經(jīng)歷了超限運(yùn)行的幀的數(shù)目。
在步驟SP5,在將已經(jīng)經(jīng)歷了超限運(yùn)行的幀的數(shù)目確定為一次的情況中,CPU2前進(jìn)到步驟SP6,將恢復(fù)編碼模式1應(yīng)用于隨后幀以執(zhí)行編碼并且返回到步驟SP1。
相反地,在步驟SP5,在將已經(jīng)經(jīng)歷了超限運(yùn)行的幀的數(shù)目確定不為一次的情況中,CPU2前進(jìn)到步驟SP7,將恢復(fù)編碼模式2應(yīng)用于隨后的幀以執(zhí)行編碼,而且指定以I畫面對再隨后的幀進(jìn)行編碼并且重構(gòu)GOP以返回到步驟SP1。
(3)操作和效果在上述結(jié)構(gòu)中,這種信號處理設(shè)備1對音頻編碼線程優(yōu)先,并且在一幀時間段期間交替執(zhí)行分別覆蓋一幀的音頻編碼線程和視頻編碼線程以進(jìn)行對視頻和音頻的編碼。
并且信號處理設(shè)備1檢測在視頻編碼線程中超限運(yùn)行的發(fā)生,然后根據(jù)檢測結(jié)果,對經(jīng)歷相關(guān)超限運(yùn)行的發(fā)生的幀之后的下一個幀立即開始編碼。在此時,信號處理設(shè)備1將帶有較輕處理負(fù)荷的恢復(fù)編碼模式1應(yīng)用到下一幀,從而試圖縮短每幀的編碼處理時間以從超限運(yùn)行恢復(fù)。
而且,在已經(jīng)應(yīng)用了恢復(fù)編碼模式1到下一幀但是沒有從超限運(yùn)行恢復(fù)的情況中,信號處理設(shè)備1將帶有更輕的處理負(fù)荷的恢復(fù)編碼模式2應(yīng)用于再隨后的幀,從而可以確保在從超限運(yùn)行發(fā)生起有限的幀時間段內(nèi)(例如,在3個幀時間段內(nèi))從超限運(yùn)行恢復(fù)。
此外,信號處理設(shè)備1因此可以避免超限運(yùn)行而導(dǎo)致的跳幀,并且因此可以降低類似于CPU2的和外設(shè)的處理能力和時鐘頻率,而且能夠從其整體上減少系統(tǒng)的配置和降低功耗。
根據(jù)上述結(jié)構(gòu),信號處理設(shè)備1根據(jù)超限運(yùn)行的發(fā)生來減小對隨后幀的編碼處理負(fù)荷,從而可以避免跳幀導(dǎo)致的視頻顯示質(zhì)量下降。
(4)其他實(shí)施方式這里,已經(jīng)將上述實(shí)施方式進(jìn)行設(shè)計(jì)以首先將帶有已經(jīng)根據(jù)超限運(yùn)行的發(fā)生而被變窄的運(yùn)動矢量搜索范圍的恢復(fù)編碼模式1進(jìn)行應(yīng)用,并且在盡管如此還不能從超限運(yùn)行恢復(fù)的情況中,進(jìn)一步將帶有更輕處理負(fù)荷的模式2應(yīng)用于隨后的幀,從而使得在從發(fā)生超限運(yùn)行起3幀時間段內(nèi)能夠從超限運(yùn)行恢復(fù),但是該恢復(fù)時間段并不限于3幀時間段。此外,連續(xù)多次應(yīng)用模式1或者在發(fā)生超限運(yùn)行之后立即應(yīng)用模式2等,各種樣式的使用都允許在發(fā)生超限運(yùn)行當(dāng)時或之后減輕視頻編碼處理負(fù)荷。
此外,已經(jīng)將上述實(shí)施方式進(jìn)行設(shè)計(jì)以使用兩種類型的恢復(fù)編碼,即,帶有已經(jīng)被變窄的運(yùn)動矢量搜索范圍的模式1和省略了用于幀間預(yù)測的參考幀重構(gòu)處理的模式2,但是本發(fā)明并不限于此,相反地,可以將經(jīng)過減輕處理負(fù)荷的各種其他編碼處理進(jìn)行組合使用。
而且,在上述實(shí)施方式中,已經(jīng)描述了將本發(fā)明已經(jīng)應(yīng)用于具有對視頻和音頻進(jìn)行編碼和解碼兩種功能的信號處理設(shè)備的情況,但是本發(fā)明并不限于此,相反地,可以將本發(fā)明應(yīng)用于僅僅具有編碼功能或者解碼功能的信號編碼設(shè)備中。
產(chǎn)業(yè)的可利用性例如,可以將本發(fā)明的視頻編碼設(shè)備、控制視頻編碼的方法和控制視頻編碼的程序應(yīng)用到如下應(yīng)用中通過因特網(wǎng)對運(yùn)動圖像數(shù)字化的內(nèi)容或者已經(jīng)經(jīng)歷了壓縮編碼的經(jīng)過數(shù)字化的模擬視頻信號進(jìn)行實(shí)時分發(fā)或接收;在國內(nèi)或者有限網(wǎng)絡(luò)環(huán)境下進(jìn)行實(shí)時分發(fā)和接收;以及諸如時間偏移的視頻記錄器(PVR個人視頻記錄)。
權(quán)利要求
1.一種視頻編碼設(shè)備,其特征在于包括編碼裝置,用于以第一編碼處理方法基于幀將視頻送入編碼處理;處理時間檢測裝置,用于檢測對所述幀進(jìn)行編碼處理所需要的實(shí)際編碼處理時間;延遲計(jì)算裝置,用于根據(jù)對所述編碼處理給出的預(yù)定的編碼預(yù)期處理時間和所述實(shí)際編碼處理時間來計(jì)算對所述幀進(jìn)行編碼處理的處理延遲時間;以及編碼負(fù)荷控制裝置,用于在對所述幀的所述處理延遲時間大于或等于預(yù)定的閾值的情況中,指令所述編碼裝置以帶有低于所述第一編碼處理方法的編碼處理負(fù)荷的第二編碼處理方法對隨后的幀實(shí)施編碼處理。
2.根據(jù)權(quán)利要求1所述的視頻編碼設(shè)備,特征在于所述延遲計(jì)算裝置將對于所述編碼處理給出的所述編碼預(yù)期處理時間從所述實(shí)際編碼處理時間中減去,從而計(jì)算所述處理延遲時間。
3.根據(jù)權(quán)利要求1所述的視頻編碼設(shè)備,特征在于當(dāng)對連續(xù)的多個所述幀的所述處理延遲時間的累積值大于或等于預(yù)定的閾值時,所述編碼負(fù)荷控制裝置指令所述編碼裝置以帶有低于所述第二編碼處理方法的編碼處理負(fù)荷的第三編碼處理方法對相關(guān)多個幀之后連續(xù)的幀實(shí)施編碼處理。
4.根據(jù)權(quán)利要求1所述的視頻編碼設(shè)備,特征在于在對所述幀的所述處理延遲時間大于或等于預(yù)定閾值的情況中,所述編碼負(fù)荷控制裝置使得所述編碼裝置在完成對相關(guān)幀的編碼處理之后開始對連續(xù)的隨后幀進(jìn)行編碼處理。
5.一種視頻編碼控制方法,其特征在于包括編碼步驟,用于基于幀將視頻送入編碼處理;處理時間檢測步驟,用于檢測對所述幀進(jìn)行編碼處理所需要的實(shí)際編碼處理時間;延遲計(jì)算步驟,用于根據(jù)對所述編碼處理給出的預(yù)定的編碼預(yù)期處理時間和所述實(shí)際編碼處理時間來計(jì)算對所述幀進(jìn)行編碼處理的處理延遲時間;以及編碼負(fù)荷控制步驟,用于在對所述幀的所述處理延遲時間的平均值超過預(yù)定的預(yù)期處理時間的情況中,減少對隨后所述幀的編碼處理負(fù)荷。
6.一種視頻編碼控制程序,其使得視頻編碼設(shè)備執(zhí)行編碼步驟,用于基于幀將視頻送入編碼處理;處理時間檢測步驟,用于檢測對所述幀進(jìn)行編碼處理所需要的實(shí)際編碼處理時間;延遲計(jì)算步驟,用于根據(jù)對所述編碼處理給出的預(yù)定的編碼預(yù)期處理時間和所述實(shí)際編碼處理時間來計(jì)算對所述幀進(jìn)行編碼處理的處理延遲時間;以及編碼負(fù)荷控制步驟,用于在對所述幀的所述處理延遲時間的平均值超過預(yù)定的預(yù)期處理時間的情況中,減少對隨后所述幀的編碼處理負(fù)荷。
全文摘要
可以實(shí)現(xiàn)一種簡單結(jié)構(gòu)的視頻編碼設(shè)備,其能夠避免因?yàn)橐曨l編碼處理的超限運(yùn)行而導(dǎo)致的視頻顯示質(zhì)量下降。該視頻編碼設(shè)備包括編碼裝置,用于使得每個視頻幀經(jīng)歷第一編碼處理;處理時間檢測裝置,用于檢測執(zhí)行幀編碼所需要的編碼處理時間;延遲時間計(jì)算裝置,用于根據(jù)對于編碼處理給出的估計(jì)編碼處理時間和實(shí)際編碼處理時間來計(jì)算幀編碼處理的處理延遲時間;以及編碼負(fù)荷控制裝置,用于當(dāng)幀處理延遲時間超過預(yù)定閾值時以具有低于第一編碼處理方法的處理負(fù)荷的第二編碼處理方法對隨后的幀進(jìn)行編碼。因此,可以在已經(jīng)發(fā)生了超限運(yùn)行之后減少幀處理時間,恢復(fù)超限運(yùn)行,防止跳幀發(fā)生。
文檔編號H03M7/30GK1860792SQ200480028220
公開日2006年11月8日 申請日期2004年9月2日 優(yōu)先權(quán)日2003年9月2日
發(fā)明者塚越郁夫, 高田信司, 后藤晃一 申請人:索尼株式會社