專(zhuān)利名稱(chēng):一種安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法
技術(shù)領(lǐng)域:
本發(fā)明公開(kāi)一種安防視頻硬編碼芯片條件下,內(nèi)存資源的分配方法,尤其是針對(duì)于視頻硬編碼芯片硬件計(jì)算單元對(duì)內(nèi)存資源預(yù)測(cè)錯(cuò)誤,而導(dǎo)致編碼過(guò)程圖像質(zhì)量下降或出錯(cuò)的情況下的一種安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法。
背景技術(shù):
視頻硬編碼芯片是指不依賴(lài)于主控CPU,通過(guò)專(zhuān)用的SOC芯片(System on Chip)單獨(dú)完成音視頻解碼工作的芯片,比如:安防領(lǐng)域DVR、IPC設(shè)備的H.264\MPEG-4視頻壓縮等,基本上都是采取“硬編碼”的專(zhuān)用SOC芯片。目前,實(shí)現(xiàn)安防行業(yè)的視頻編碼芯片,大部分都是采取硬編碼方案,這種方案一般采取將硬編碼SOC芯片整合到主控CPU內(nèi)部,而實(shí)現(xiàn)了主控CPU的控制程序和編碼功能獨(dú)立分開(kāi)工作,這樣就使得主控CPU擺脫復(fù)雜的解碼運(yùn)算效率更高,而硬編碼SOC芯片專(zhuān)注于解碼使效率也更高,例如目前的T1、海思半導(dǎo)體等芯片設(shè)計(jì)公司,都推出了這類(lèi)安防領(lǐng)域硬編碼芯片方案。視頻硬編碼芯片的優(yōu)勢(shì)如下:1、不需要處理能力強(qiáng)大的主控CPU,在主控CPU方面節(jié)約不少成本;2、硬編碼讓主控CPU占用率非常低,系統(tǒng)響應(yīng)處理能力大大提升,在解碼的同時(shí)還能進(jìn)行多任務(wù)操作;3、硬編碼SOC芯片,由于專(zhuān)注有編碼工作,其解碼效率高,而成本比較低;雖然視頻硬編碼芯片有上述諸多優(yōu)勢(shì),但是,其本身仍然存在著很多劣勢(shì):1、由于此技術(shù)起步較晚,嵌入式軟件的支持度與靈活性等,都無(wú)法與軟編碼相提并論;2、面對(duì)市面上雜亂無(wú)章的視頻編碼、封裝格式,硬解碼無(wú)法做到全面兼容;3、軟編碼擁有大量畫(huà)面輸出補(bǔ)償及畫(huà)質(zhì)增強(qiáng)技術(shù),而硬編碼這方面做得還存在不足;雖然硬編碼芯片仍然存在這一些不足之處,但是作為新生產(chǎn)品,其仍然被越來(lái)越多的應(yīng)用在安防監(jiān)控行業(yè)中。由于硬編碼芯片一旦進(jìn)行產(chǎn)品定型,其支持的編碼格式和相關(guān)硬件系統(tǒng)資源分配的計(jì)算單元模塊等,就無(wú)法進(jìn)行調(diào)整,特別是硬件系統(tǒng)資源分配的計(jì)算單元模塊。如果計(jì)算獲取的系統(tǒng)資源錯(cuò)誤,將會(huì)導(dǎo)致編碼錯(cuò)誤或者異常;系統(tǒng)資源分配又主要是涉及內(nèi)存資源的分配,如因?yàn)橛布到y(tǒng)資源分配的計(jì)算單元模塊,對(duì)某種編碼格式的計(jì)算存在問(wèn)題,將導(dǎo)致這種編碼格式視頻幀的圖像質(zhì)量下降或者出現(xiàn)錯(cuò)誤,如編碼輸出的視頻幀,進(jìn)行解碼播放時(shí)發(fā)生視頻色彩不對(duì)、黑屏、花屏等情況,因此對(duì)于系統(tǒng)內(nèi)存的計(jì)算分配,在系統(tǒng)設(shè)計(jì)時(shí)顯得尤其重要。
發(fā)明內(nèi)容
針對(duì)上述提到的現(xiàn)有技術(shù)中的硬編碼芯片在使用過(guò)程中容易存在內(nèi)存分配錯(cuò)誤的缺點(diǎn),本發(fā)明一種新的安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其通過(guò)特殊的計(jì)算方法對(duì)系統(tǒng)使用內(nèi)存的進(jìn)行計(jì)算,能夠在視頻硬編碼芯片中的內(nèi)存資源分配計(jì)算單元模塊計(jì)算錯(cuò)誤情況下,使用軟件預(yù)測(cè)內(nèi)存資源的方式進(jìn)行修正錯(cuò)誤,保證正確編碼視頻幀,解決因內(nèi)存分配錯(cuò)誤而帶來(lái)的一系列問(wèn)題。本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案是:一種安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,該方法包括下述步驟:A、由主控CPU內(nèi)的控制程序,讀取采集設(shè)備中的原始視頻數(shù)據(jù)幀YUV\RGB ;B、將原始視頻數(shù)據(jù)幀中的數(shù)據(jù)頭傳遞給視頻文件編碼格式解析模塊,獲取該文件的視頻編碼格式、視頻尺寸、視頻數(shù)據(jù)碼流、視頻分辨率信息,并傳遞上述信息給獲取視頻編碼參數(shù)模塊進(jìn)行參數(shù)的轉(zhuǎn)換工作;C、將轉(zhuǎn)換后的參數(shù)分別傳遞給視頻硬編碼芯片中的內(nèi)存資源分配計(jì)算單元模塊和主控CPU內(nèi)運(yùn)行的預(yù)測(cè)內(nèi)存需求軟件模塊,由視頻硬編碼芯片中內(nèi)存資源分配計(jì)算單元模塊計(jì)算出一個(gè)內(nèi)存大小數(shù)值,由預(yù)測(cè)內(nèi)存需求軟件模塊計(jì)算出一個(gè)內(nèi)存大小數(shù)值;D、將兩個(gè)計(jì)算值傳遞給內(nèi)存值需求比對(duì)模塊,比對(duì)計(jì)算出需要分配的內(nèi)存資源的大小值;E、將內(nèi)存值需求比對(duì)模塊計(jì)算出的需要分配的內(nèi)存資源的大小值傳遞給硬編碼芯片內(nèi)存分配模塊,按照該內(nèi)存資源的大小值,向操作系統(tǒng)申請(qǐng)解碼過(guò)程需求的內(nèi)存資源。本發(fā)明解決其技術(shù)問(wèn)題采用的技術(shù)方案進(jìn)一步還包括:所述的步驟B中獲取視頻編碼參數(shù)模塊進(jìn)行參數(shù)的轉(zhuǎn)換工作的時(shí)候,具體視頻編碼參數(shù)包括:視頻尺寸、視頻數(shù)據(jù)碼流、視頻分辨率、視頻的I幀P幀的幀間隔、視頻的畫(huà)面比例和視頻的隔行逐行類(lèi)型,轉(zhuǎn)換為計(jì)算內(nèi)存資源的具體數(shù)值,使其能夠?qū)?shù)作為變量,其中: W視頻g為編碼視頻覽度;H視頻高為編碼視頻高度;數(shù)該系數(shù)主要針對(duì)于MPEG-2編碼的PS、TS流,當(dāng)為PS流時(shí)該系數(shù)為1.5,當(dāng)為T(mén)S流時(shí)該系數(shù)為1.1,其他編碼格式該系數(shù)為I ;卩__該系數(shù)主要針對(duì)RGB編碼視頻的位數(shù),一般分為8、16、24或32位,
權(quán)利要求
1.一種安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其特征是:所述的方法包括下述步驟: A、由主控CPU內(nèi)的控制程序,讀取采集設(shè)備中的原始視頻數(shù)據(jù)幀YUV\RGB; B、將原始視頻數(shù)據(jù)幀中的數(shù)據(jù)頭傳遞給視頻文件編碼格式解析模塊,獲取該文件的視頻編碼格式、視頻尺寸、視頻數(shù)據(jù)碼流、視頻分辨率信息,并傳遞上述信息給獲取視頻編碼參數(shù)模塊進(jìn)行參數(shù)的轉(zhuǎn)換工作; C、將轉(zhuǎn)換后的參數(shù)分別傳遞給視頻硬編碼芯片中的內(nèi)存資源分配計(jì)算單元模塊和主控CPU內(nèi)運(yùn)行的預(yù)測(cè)內(nèi)存需求軟件模塊,由視頻硬編碼芯片中內(nèi)存資源分配計(jì)算單元模塊計(jì)算出一個(gè)內(nèi)存大小數(shù)值,由預(yù)測(cè)內(nèi)存需求軟件模塊計(jì)算出一個(gè)內(nèi)存大小數(shù)值; D、將兩個(gè)計(jì)算值傳遞給內(nèi)存值需求比對(duì)模塊,比對(duì)計(jì)算出需要分配的內(nèi)存資源的大小值; E、將內(nèi)存值需求比對(duì)模塊計(jì)算出的需要分配的內(nèi)存資源的大小值傳遞給硬編碼芯片內(nèi)存分配模塊,按照該內(nèi)存資源的大小值,向操作系統(tǒng)申請(qǐng)解碼過(guò)程需求的內(nèi)存資源。
2.根據(jù)權(quán)利要求1所述的安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其特征是:所述的步驟B中獲取視頻編碼參數(shù)模塊進(jìn)行參數(shù)的轉(zhuǎn)換工作的時(shí)候,具體視頻編碼參數(shù)包括:視頻尺寸、視頻數(shù)據(jù)碼流、視頻分辨率、視頻的I幀P幀的幀間隔、視頻的畫(huà)面比例和視頻的隔行逐行類(lèi)型,轉(zhuǎn)換為計(jì)算內(nèi)存資源的具體數(shù)值,使其能夠?qū)?shù)作為變量進(jìn)行數(shù)學(xué)計(jì)算,其中: Wasa為編碼視頻寬度; HftswS編碼視頻高度; 該系數(shù)主要針對(duì)于MPEG-2編碼的PS、TS流,當(dāng)為PS流時(shí)該系數(shù)為1.5,當(dāng)為T(mén)S流時(shí)該系數(shù)為1.1,其他編碼格式該系數(shù)為I ; P分辨率該系數(shù)主要針對(duì)RGB編碼視頻的位數(shù),一般分為8、16、24或32位,naRGB 蛛 +.尸分辨率=g; I #_ 為是否存在預(yù)錄像編碼狀態(tài),如果存在預(yù)錄編碼狀態(tài),則該值為幀間隔值,反之為I ;為檢查視頻的寬和高是否為8整數(shù)倍,即判斷^ 是否為整數(shù),如果OO為整數(shù)倍該值為I,反之為1.2; 該系數(shù)主要針對(duì)YUV采集編碼模式,如果為隔行掃描,則該值為1.5,如果為 行掃描該值為3。
3.根據(jù)權(quán)利要求2所述的安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其特征是:所述的步驟C中由預(yù)測(cè)內(nèi)存需求軟件模塊計(jì)算出一個(gè)內(nèi)存大小數(shù)值的時(shí)候,將視頻尺寸、視頻數(shù)據(jù)碼流、視頻分辨率、視頻的I幀P幀的幀間隔、視頻的畫(huà)面比例、視頻的隔行逐行類(lèi)型這些參數(shù)作為變量,根據(jù)當(dāng)前的編編碼格式的標(biāo)準(zhǔn)公式和修正公式,進(jìn)行計(jì)算結(jié)果: =Iwas xx 5W類(lèi)型系數(shù)xx 面比例x『觀場(chǎng)系數(shù)(麗采集模式)。預(yù)測(cè)內(nèi)存值"Iw視嫌寬X好視躺流類(lèi)型系數(shù)X P分辨率x 間隔X 面比例(RGB采集模式)
4.根據(jù)權(quán)利要求1所述的安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其特征是:所述的步驟D中將兩個(gè)計(jì)算值傳遞給內(nèi)存值需求比對(duì)模塊時(shí)的具體步驟包括:得到兩個(gè)內(nèi)存計(jì)算值,分別為硬件計(jì)算值、軟件計(jì)算值,按照在硬件計(jì)算值、軟件計(jì)算值兩者中取大的數(shù)值,再將該值與系統(tǒng)能夠分配內(nèi)存的最大值進(jìn)行比較,如果發(fā)現(xiàn)該數(shù)值小于系統(tǒng)能夠分配內(nèi)存的最大值,則 將該數(shù)值作為計(jì)算結(jié)果,反之該數(shù)值大于系統(tǒng)能夠分配內(nèi)存的最大值則說(shuō)明內(nèi)存資源無(wú)法支持編碼格式文件的編碼工作。
全文摘要
本發(fā)明公開(kāi)一種安防視頻硬編碼芯片內(nèi)存資源分配的預(yù)測(cè)方法,其通過(guò)特殊的計(jì)算方法對(duì)系統(tǒng)使用內(nèi)存的進(jìn)行計(jì)算,能夠在視頻硬編碼芯片中的內(nèi)存資源分配計(jì)算單元模塊計(jì)算錯(cuò)誤情況下,使用軟件預(yù)測(cè)內(nèi)存資源的方式進(jìn)行修正錯(cuò)誤,保證正確編碼視頻幀,解決因內(nèi)存分配錯(cuò)誤而帶來(lái)的一系列問(wèn)題。本發(fā)明基于視頻硬編碼芯片的硬件環(huán)境下,能夠在視頻硬編碼芯片中的內(nèi)存資源分配計(jì)算單元模塊計(jì)算錯(cuò)誤情況下,使用軟件預(yù)測(cè)內(nèi)存資源的方式進(jìn)行修正錯(cuò)誤,使其能夠正確輸出編碼視頻幀。
文檔編號(hào)H04N21/2385GK103118273SQ201310045560
公開(kāi)日2013年5月22日 申請(qǐng)日期2013年2月4日 優(yōu)先權(quán)日2012年12月12日
發(fā)明者張力, 曾慶魏 申請(qǐng)人:張力