專利名稱:一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法
技術(shù)領(lǐng)域:
本發(fā)明涉及數(shù)字視頻處理的芯片設(shè)計(jì)技術(shù)領(lǐng)域,尤其涉及一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,應(yīng)用于數(shù)字高清電視、機(jī)頂盒以及視頻監(jiān)控等進(jìn)行視頻處理的高性能處理芯片設(shè)計(jì)。
背景技術(shù):
數(shù)字圖像和視頻處理技術(shù)在諸多領(lǐng)域應(yīng)用廣泛,如數(shù)字電視、視頻監(jiān)控、醫(yī)療成像、工業(yè)檢測和消費(fèi)電子產(chǎn)品等。目前處理算法通常是由軟件來完成,隨著深亞微米工藝和大規(guī)模集成電路技術(shù)的發(fā)展,多媒體實(shí)時(shí)硬件處理成為一個(gè)新的發(fā)展趨勢。在目前中國的數(shù)字高清電視領(lǐng)域,大部分電子企業(yè)采用兩種研發(fā)模式,一種模式直接購買諸如MTK、Pixelworks和Trident等臺(tái)灣或外國企業(yè)的芯片,進(jìn)行整機(jī)系統(tǒng)集成,另一種模式是進(jìn)行芯片設(shè)計(jì),但由于缺乏在視頻處理核心算法的知識(shí)產(chǎn)權(quán)和競爭力,只能用高昂的價(jià)格購買IP芯片進(jìn)行嵌入式系統(tǒng)芯片(SoC)系統(tǒng)集成。這兩種模式?jīng)]有培育自己在視頻處理領(lǐng)域的核心競爭力,只能處于產(chǎn)業(yè)鏈的較下端,受制于上游的IP提供商和芯片提供商。大部分具有ASIC或SOC芯片設(shè)計(jì)能力的企業(yè)缺乏設(shè)計(jì)視頻核心算法的能力,而具有視頻處理算法設(shè)計(jì)能力的人員多分布在研究機(jī)構(gòu)和軟件公司,不具備芯片設(shè)計(jì)的能力,只能提供基于軟件的視頻處理解決方案,其實(shí)時(shí)性無法得到保證。在數(shù)字高清電視領(lǐng)域,同時(shí)具有自主算法設(shè)計(jì)和芯片設(shè)計(jì)能力的僅有Pixelworks、Trident、三星、飛利浦和索尼等企業(yè)。越來越多的電子企業(yè)意識(shí)到同時(shí)具備視頻算法設(shè)計(jì)能力和芯片設(shè)計(jì)能力的重要性,配備了算法開發(fā)團(tuán)隊(duì)和芯片設(shè)計(jì)團(tuán)隊(duì),試圖設(shè)計(jì)從視頻算法到ASIC架構(gòu)和SOC架構(gòu)完全自主知識(shí)產(chǎn)權(quán)的芯片。隨著視頻分辨率的不斷提高和功能的不斷增加,芯片的規(guī)模越來越龐大。常常達(dá)到上千萬邏輯門,如此規(guī)模巨大的電路需要眾多設(shè)計(jì)人員的參與。對于任何芯片設(shè)計(jì)項(xiàng)目來說,控制產(chǎn)品研發(fā)成本與進(jìn)度是取得成功的重要保證。如果設(shè)計(jì)流程不規(guī)范,不能很快實(shí)現(xiàn)設(shè)計(jì)效果,產(chǎn)品開發(fā)要走很多彎路,影響開發(fā)進(jìn)程,致使很多設(shè)計(jì)不能按時(shí)完成。US 6526562 Bl專利描述了高效的芯片設(shè)計(jì)流程,但這個(gè)流程只規(guī)范了芯片設(shè)計(jì)環(huán)節(jié),沒有將算法設(shè)計(jì)納入整個(gè)流程加以規(guī)范。常規(guī)的算法和芯片聯(lián)合設(shè)計(jì)流程將兩者獨(dú)立開來,先進(jìn)行算法開發(fā),然后進(jìn)行芯片硬件實(shí)現(xiàn)。這種流程有兩個(gè)缺點(diǎn),從算法開發(fā)來看,很可能導(dǎo)致開發(fā)出的算法不具備硬件可實(shí)行性,或產(chǎn)生的硬件規(guī)模巨大,超出了芯片的數(shù)據(jù)帶寬或規(guī)模的約束;從芯片設(shè)計(jì)上來看,如果算法交付之后不做改動(dòng),僅僅從硬件結(jié)構(gòu)上進(jìn)行優(yōu)化,帶來的優(yōu)化效果是有限的,所以需要制定更高效的開發(fā)流程來進(jìn)行視頻算法和硬件實(shí)現(xiàn)的聯(lián)合開發(fā)。
發(fā)明內(nèi)容
(一)要解決的技術(shù)問題
5
有鑒于此,本發(fā)明提出了一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,以實(shí)現(xiàn)視頻算法和硬件實(shí)現(xiàn)的聯(lián)合開發(fā)。(二)技術(shù)方案為達(dá)到上述目的,本發(fā)明提供了一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,該方法將視頻算法開發(fā)和硬件實(shí)現(xiàn)分成兩條主線同步進(jìn)行,在視頻算法開發(fā)過程中,對視頻算法的客觀和主觀視覺性能進(jìn)行評估,同時(shí)對視頻算法進(jìn)行硬件架構(gòu)設(shè)計(jì),檢查視頻算法是否滿足硬件約束,一旦發(fā)現(xiàn)硬件架構(gòu)超出了硬件資源的可實(shí)現(xiàn)性范圍,則同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的聯(lián)合優(yōu)化。上述方案中,所述視頻算法開發(fā)的具體步驟如下步驟101 進(jìn)行功能定義,對要實(shí)現(xiàn)的算法功能和需要滿足的算法性能指標(biāo)進(jìn)行定義;步驟102 視頻算法開發(fā)和編碼;步驟103 接收硬件設(shè)計(jì)人員進(jìn)行硬件可實(shí)現(xiàn)性檢查的反饋結(jié)果,如不滿足硬件可實(shí)現(xiàn)性,則修改算法代碼,如滿足硬件可實(shí)現(xiàn)性,則執(zhí)行步驟104 ;步驟104 對視頻算法進(jìn)行算法性能評估,如果能夠滿足算法性能指標(biāo)要求,則視頻算法代碼編碼結(jié)束,代碼確定;如果不能夠滿足算法性能指標(biāo)要求,則修改算法代碼,直至滿足。上述方案中,所述硬件實(shí)現(xiàn)的具體步驟如下步驟201 進(jìn)行系統(tǒng)定義,對系統(tǒng)資源進(jìn)行描述,制定硬件性能指標(biāo)數(shù)據(jù)帶寬、頻率、硬件規(guī)模和功耗;步驟202 接收視頻算法代碼,對視頻算法代碼進(jìn)行硬件可實(shí)現(xiàn)性代碼風(fēng)格檢查,如果算法代碼風(fēng)格滿足基本設(shè)計(jì)規(guī)范,則執(zhí)行步驟203,如果不滿足,則將修改意見反饋給算法設(shè)計(jì)人員;步驟203 基于算法代碼進(jìn)行硬件架構(gòu)設(shè)計(jì);步驟204 對數(shù)據(jù)帶寬和硬件規(guī)模進(jìn)行預(yù)估;步驟205 如果本次接收的視頻算法代碼同時(shí)滿足硬件可實(shí)現(xiàn)性和算法性能指標(biāo),則執(zhí)行步驟206 ;否則,返回步驟202 ;步驟206 在視頻算法代碼最終版中添加測試向量生成代碼,生成硬件實(shí)現(xiàn)所用到的黃金模型Golden Model ;步驟207 進(jìn)行詳細(xì)的分模塊架構(gòu)設(shè)計(jì)和編碼;步驟208 基于該Golden Model對RTL硬件設(shè)計(jì)進(jìn)行硬件功能仿真驗(yàn)證;步驟209 對RTL硬件設(shè)計(jì)進(jìn)行FPGA驗(yàn)證。(三)有益效果從上述技術(shù)方案可以看出,本發(fā)明具有以下有益效果1、本發(fā)明提供的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,將視頻算法開發(fā)和硬件實(shí)現(xiàn)分成兩條主線同步進(jìn)行,在視頻算法開發(fā)過程中,對視頻算法的客觀和主觀視覺性能進(jìn)行評估,同時(shí)對視頻算法進(jìn)行硬件架構(gòu)設(shè)計(jì),檢查視頻算法是否滿足硬件約束(即檢查視頻算法是否滿足硬件規(guī)模和數(shù)據(jù)帶寬以及硬件可實(shí)現(xiàn)性等硬件約束),一旦發(fā)現(xiàn)硬件架構(gòu)超出了硬件資源的可實(shí)現(xiàn)性范圍,則同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的聯(lián)合優(yōu)化,實(shí)現(xiàn)了視頻算法和硬件實(shí)現(xiàn)的聯(lián)合開發(fā)。2、本發(fā)明提供的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,還給出了相應(yīng)的優(yōu)化策略,提出了與開發(fā)流程配合的開發(fā)平臺(tái),在開發(fā)流程的每一個(gè)環(huán)節(jié),均有開發(fā)平臺(tái)中的資源給與高效準(zhǔn)確的支持,確保視頻處理芯片開發(fā)能正確快速地完成。本發(fā)明可以用于視頻處理芯片從算法開發(fā)到芯片前端設(shè)計(jì)的快速開發(fā)。
圖1是依照本發(fā)明實(shí)施例的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法流程圖;圖2是依照本發(fā)明實(shí)施例的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)平臺(tái)的示意圖;圖3是圖2中視頻算法性能評估子系統(tǒng)的示意圖;圖4是圖2中RTL硬件驗(yàn)證子系統(tǒng)的示意圖;圖5是圖2中FPGA驗(yàn)證子系統(tǒng)的示意圖。表1是圖2所示聯(lián)合開發(fā)平臺(tái)所需的軟件資源列表。
具體實(shí)施例方式為使本發(fā)明的目的、技術(shù)方案和優(yōu)點(diǎn)更加清楚明白,以下結(jié)合具體實(shí)施例,并參照附圖,對本發(fā)明進(jìn)一步詳細(xì)說明。本發(fā)明提供的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,將視頻算法開發(fā)和硬件實(shí)現(xiàn)分成兩條主線同步進(jìn)行,在視頻算法開發(fā)過程中,對視頻算法的客觀和主觀視覺性能進(jìn)行評估,同時(shí)對視頻算法進(jìn)行硬件架構(gòu)設(shè)計(jì),檢查視頻算法是否滿足硬件約束(即檢查視頻算法是否滿足硬件規(guī)模和數(shù)據(jù)帶寬以及硬件可實(shí)現(xiàn)性等硬件約束),一旦發(fā)現(xiàn)硬件架構(gòu)超出了硬件資源的可實(shí)現(xiàn)性范圍,則同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的聯(lián)合優(yōu)化。只有當(dāng)硬件約束和視覺性能指標(biāo)同時(shí)滿足要求時(shí),視頻算法代碼才能確定。在視頻算法代碼確定后,要在視頻算法代碼中添加測試向量生成代碼,生成寄存器傳輸級(Register Transfer Level,簡稱 RTL)實(shí)現(xiàn)所用到的黃金模型(Golden Model)。本發(fā)明還給出了相應(yīng)的優(yōu)化策略,提出了與開發(fā)流程配合的開發(fā)平臺(tái),在開發(fā)流程的每一個(gè)環(huán)節(jié),均有開發(fā)平臺(tái)中的資源給與高效準(zhǔn)確的支持,確保視頻處理芯片開發(fā)能正確快速地完成。如圖1所示,圖1是依照本發(fā)明實(shí)施例的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法流程圖。下面針對視頻算法和硬件實(shí)現(xiàn)分別進(jìn)行詳細(xì)說明。視頻算法開發(fā)的具體步驟如下步驟101 進(jìn)行功能定義,即對要實(shí)現(xiàn)的算法功能和需要滿足的算法性能指標(biāo)進(jìn)行定義。算法性能指標(biāo)包括客觀性能指標(biāo)和主觀視覺性能指標(biāo)。客觀性能指標(biāo)包括信噪比、壓縮比等可以量化的指標(biāo)。主觀視覺性能指標(biāo)的確定方法是確定在人眼主觀視覺上要達(dá)到或超過的對比方;步驟102 視頻算法開發(fā)和編碼;步驟103 接收硬件設(shè)計(jì)人員進(jìn)行硬件可實(shí)現(xiàn)性檢查的反饋結(jié)果,如不滿足硬件可實(shí)現(xiàn)性,則修改算法代碼,如滿足硬件可實(shí)現(xiàn)性,則執(zhí)行步驟104 ;視頻算法的硬件可實(shí)現(xiàn)性檢查是硬件實(shí)現(xiàn)的步驟之一,其具體實(shí)現(xiàn)方法見硬件實(shí)現(xiàn)的步驟。步驟104 利用如圖3所示的視頻算法性能評估子系統(tǒng)對視頻算法進(jìn)行算法性能評估;其實(shí)現(xiàn)方法是對待測試的視頻運(yùn)行視頻算法代碼,得到視頻處理的結(jié)果,對該結(jié)果進(jìn)行評估。評估即檢查客觀性能指標(biāo)和主觀視覺性能指標(biāo)是否達(dá)到步驟101中制定的性能指標(biāo)。客觀性能指標(biāo)包括信噪比、壓縮比等可以量化的指標(biāo)。主觀視覺性能指標(biāo)的評估方法是比較待評估的處理結(jié)果和對比方的處理結(jié)果,用人眼的主觀視覺來判斷待評估方和對比方的優(yōu)劣。視頻算法性能評估子系統(tǒng)如圖3所示,包括測試視頻序列庫、待評估的視頻算法、對比方的視頻處理單元算法、主觀視覺評估單元、以及客觀性能評估單元。其中測試視頻序列庫由對視頻算法進(jìn)行性能評估的視頻序列組成,具體由各個(gè)分辨率的通用視頻庫和特定算法評估的視頻庫組成。特定算法評估的視頻庫,針對開發(fā)的不同算法種類,有不同的視頻序列庫,通常為業(yè)界公認(rèn)視頻測試庫。算法主觀視覺評估單元由硬盤錄放機(jī)和兩臺(tái)高清電視組成。如果對比方不止一個(gè),則可以擴(kuò)展為多個(gè)對比方處理單元及多臺(tái)數(shù)字高清電視。視頻算法從測試視頻序列庫中讀取視頻,得到處理后的視頻。經(jīng)視頻算法處理后的視頻分別輸入到主觀視覺評估單元和客觀性能指標(biāo)評估單元。客觀性能指標(biāo)評估單元計(jì)算出待評估的算法處理結(jié)果的信噪比、壓縮比等客觀性能指標(biāo)。主觀視覺評估單元接收到處理后的視頻后,下載到硬盤錄放機(jī),硬盤錄放機(jī)控制將下載的視頻結(jié)果通過LVDS接口顯示到高清電視上。同時(shí),未經(jīng)視頻算法處理的測試視頻經(jīng)過對比方的視頻處理單元,輸出到另一臺(tái)高清電視上顯示。人眼對兩臺(tái)高清電視的結(jié)果進(jìn)行主觀視覺的評估,并輸出評估性能指標(biāo)。如果算法性能指標(biāo)得到滿足,則視頻算法代碼編碼結(jié)束。代碼確定。如果不滿足,則修改算法代碼,直至滿足。硬件實(shí)現(xiàn)的具體步驟如下步驟201 進(jìn)行系統(tǒng)定義,對系統(tǒng)資源進(jìn)行描述,制定數(shù)據(jù)帶寬,頻率,硬件規(guī)模,功耗等硬件性能指標(biāo)。步驟202 接收視頻算法代碼,對視頻算法代碼進(jìn)行硬件可實(shí)現(xiàn)性代碼風(fēng)格檢查,如果算法代碼風(fēng)格滿足基本設(shè)計(jì)規(guī)范,則執(zhí)行步驟203,如果不滿足,則將修改意見反饋給算法設(shè)計(jì)人員;需要檢查的基本設(shè)計(jì)規(guī)范為1)數(shù)據(jù)類型為整型;2)常數(shù)除法修改為乘和移位;3)盡量少的使用除法器;4)濾波窗口盡量小,這樣能盡量少的使用片內(nèi)緩存;5)盡量少地使用迭代算法或減少迭代次數(shù),因?yàn)榈惴óa(chǎn)生的硬件規(guī)模巨大;在視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)過程中,一個(gè)好的算法開發(fā)工程師應(yīng)該讓自己的代碼風(fēng)格滿足上述算法代碼風(fēng)格要求,這樣,能設(shè)計(jì)出具備良好的硬件可實(shí)現(xiàn)性的算法,可以減少硬件約束檢查一修改一硬件約束檢查的迭代次數(shù)。步驟203 基于算法代碼進(jìn)行硬件架構(gòu)設(shè)計(jì)。硬件架構(gòu)設(shè)計(jì)指從算法代碼中提煉出算法的關(guān)鍵模塊和關(guān)鍵路徑,進(jìn)行結(jié)構(gòu)設(shè)計(jì)。關(guān)鍵模塊為需要相對較多運(yùn)算資源的模塊,關(guān)鍵路徑為連接外部存儲(chǔ),內(nèi)部存儲(chǔ)和關(guān)鍵模塊之間的數(shù)據(jù)通路;步驟204 對數(shù)據(jù)帶寬和硬件規(guī)模進(jìn)行預(yù)估;因?yàn)椴襟E203的硬件架構(gòu)設(shè)計(jì)中包含了系統(tǒng)關(guān)鍵模塊和關(guān)鍵路徑的設(shè)計(jì),基于該設(shè)計(jì)可以預(yù)估出1)硬件對外部存儲(chǔ)數(shù)據(jù)帶寬的訪問要求;2)片內(nèi)緩存的使用大小;3)大運(yùn)算量模塊的規(guī)模。如果該預(yù)估值超出了步驟201中制定的硬件資源可實(shí)現(xiàn)范圍,則要同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的優(yōu)化。即將修改意見反饋給算法設(shè)計(jì)人員,算法設(shè)計(jì)人員修改算法代碼進(jìn)行算法層面的優(yōu)化,同時(shí)要返回步驟203,優(yōu)化硬件架構(gòu)設(shè)計(jì)。如果該預(yù)估值滿足步驟201制定的硬件可實(shí)現(xiàn)范圍,則本次接收的算法代碼的硬件架構(gòu)設(shè)計(jì)結(jié)束。視頻算法層面的優(yōu)化策略有1)減少數(shù)據(jù)位寬;2)減少濾波器窗口垂直高度;3)刪除對算法性能貢獻(xiàn)微小的模塊;4)減少算法的迭代次數(shù);5)減少搜索范圍,或搜索范圍不變但增加步長。硬件層面的優(yōu)化策略有1)用分段掃描的方法減少片內(nèi)緩存的大??;2)分時(shí)復(fù)用;3)使用片內(nèi)緩存來減少對外部存儲(chǔ)的訪問,從而減少對數(shù)據(jù)帶寬的需求。進(jìn)行算法和硬件聯(lián)合優(yōu)化的優(yōu)點(diǎn)是在算法上的優(yōu)化,相對于硬件結(jié)構(gòu)優(yōu)化,在整體上能有更大的增益。但是在算法的優(yōu)化時(shí),又必須考慮硬件結(jié)構(gòu)對算法設(shè)計(jì)的約束。步驟205 如果本次接收的視頻算法代碼為最終版,即該算法代碼同時(shí)滿足硬件可實(shí)現(xiàn)性和算法性能指標(biāo)時(shí),則執(zhí)行步驟206。如果不是最終版,則返回步驟202 ;步驟206 在視頻算法代碼最終版中添加測試向量生成代碼,生成硬件實(shí)現(xiàn)所用到的黃金模型(Golden Model);步驟207 詳細(xì)的分模塊架構(gòu)設(shè)計(jì)和編碼;步驟208 利用如圖4所示的RTL硬件驗(yàn)證子系統(tǒng),對比GoldenModelJi RTL硬件設(shè)計(jì)進(jìn)行硬件功能仿真驗(yàn)證;RTL驗(yàn)證系統(tǒng)如圖4所示,包括測試圖象庫、測試向量生成器、GoldenC Model、待驗(yàn)證的RTL硬件模型、以及文件比較器。測試視頻序列庫,用于存儲(chǔ)對視頻算法的RTL硬件設(shè)計(jì)進(jìn)行驗(yàn)證所需要的測試序列。在在視頻算法代碼最終版中添加文件輸入輸出代碼,可以生成測試向量生成器。測試向量生成器,用于從測試視頻序列庫中讀取測試序列,并生成測試向量,再將該測試向量輸出給黃金C語言模型和待驗(yàn)證的RTL硬件模型;黃金C語言模型和待驗(yàn)證的RTL硬件模型,用于在接收到測試向量后分別產(chǎn)生輸出,并將各自的輸出均輸出給文件比較器;文件比較器,用于比較黃金C語言模型的輸出與待驗(yàn)證的RTL硬件模型的輸出是否一致,如果一致,則驗(yàn)證通過,如果不一致,則驗(yàn)證失敗。步驟209 在頂層功能驗(yàn)證通過后,利用如圖5所示的FPGA驗(yàn)證子系統(tǒng),對RTL硬件設(shè)計(jì)進(jìn)行FPGA驗(yàn)證;FPGA驗(yàn)證子系統(tǒng)如圖5所示,包括高清播放機(jī)、FPGA開發(fā)板、PC機(jī)上的RTL硬件代碼和交互軟件、以及高清電視。視頻算法的RTL硬件代碼通過JTAG接口下載到FPGA開發(fā)板,高清視頻播放器通過HDMI接口傳輸視頻到FPGA開發(fā)板,該視頻經(jīng)過下載到FPGA板的硬件邏輯進(jìn)行處理,將處理結(jié)果通過LVDS接口傳到高清數(shù)字電視。PC端的交互軟件通過以太網(wǎng)配置SOC系統(tǒng)參數(shù)。開發(fā)流程是否能夠準(zhǔn)確高效地貫徹,取決于兩個(gè)要素,一個(gè)是開發(fā)者,一個(gè)開發(fā)平臺(tái)。開發(fā)者在好的開發(fā)平臺(tái)上進(jìn)行開發(fā),能夠快速地完成設(shè)計(jì)目標(biāo)。本發(fā)明還提出了能貫徹上述開發(fā)流程的開發(fā)平臺(tái)。本發(fā)明所提出的開發(fā)平臺(tái),除了集成了視頻算法開發(fā)和芯片前端設(shè)計(jì)所需要的EDA工具和其他輔助工具以及各種必要的腳本和環(huán)境配置文件等軟件工具資源,并且包括三個(gè)子系統(tǒng),及視頻性能評估系統(tǒng)、RTL硬件驗(yàn)證子系統(tǒng)和FPGA驗(yàn)證子系統(tǒng),使本發(fā)明提出的開發(fā)流程得以準(zhǔn)確高效地執(zhí)行。如圖2所示的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的開發(fā)平臺(tái)由視頻算法性能評估子系統(tǒng)、RTL硬件驗(yàn)證子系統(tǒng)、FPGA驗(yàn)證子系統(tǒng)和聯(lián)合開發(fā)過程中所需要的軟件資源組成。其中,視頻算法性能評估子系統(tǒng)如圖3所示,由測試視頻序列庫、待評估的視頻算法、對比方的視頻處理單元算法、以及主觀視覺評估單元、客觀性能評估單元組成。其中測試視頻序列庫由對視頻算法進(jìn)行性能評估的視頻序列組成。具體由各個(gè)分辨率的通用視頻庫和特定算法評估的視頻庫組成。特定算法評估的視頻庫,針對開發(fā)的不同算法種類,有不同的視頻序列庫,通常為業(yè)界公認(rèn)視頻測試庫。算法主觀視覺評估單元由硬盤錄放機(jī)和兩臺(tái)高清電視組成。如果對比方不止一個(gè),則可以擴(kuò)展為多個(gè)對比方處理單元及多臺(tái)數(shù)字高清電視。視頻算法從測試視頻序列庫中讀取視頻,得到處理后的視頻。經(jīng)視頻算法處理后的視頻分別輸入到主觀視覺評估單元和客觀性能指標(biāo)評估單元??陀^性能指標(biāo)評估單元計(jì)算出待評估的算法處理結(jié)果的信噪比、壓縮比等客觀性能指標(biāo)。主觀視覺評估單元接收到處理后的視頻后,下載到硬盤錄放機(jī),硬盤錄放機(jī)控制將下載的視頻結(jié)果通過LVDS接口顯示到高清電視上。同時(shí),未經(jīng)視頻算法處理的測試視頻經(jīng)過對比方的視頻處理單元,輸出到另一臺(tái)高清電視上顯示。人眼對兩臺(tái)高清電視的結(jié)果進(jìn)行主觀視覺的評估,并輸出評估性能指標(biāo)。RTL驗(yàn)證系統(tǒng)如圖4所示,由測試圖象庫、測試向量生成器、GoldenC Model、待驗(yàn)證的RTL硬件模型、以及文件比較器組成。測試視頻序列庫,用于存儲(chǔ)對視頻算法的RTL硬件設(shè)計(jì)進(jìn)行驗(yàn)證所需要的測試序列。在在視頻算法代碼最終版中添加文件輸入輸出代碼,可以生成測試向量生成器。測試向量生成器,用于從測試視頻序列庫中讀取測試序列,并生成測試向量,再將該測試向量輸出給黃金C語言模型和待驗(yàn)證的RTL硬件模型;黃金C語言模型和待驗(yàn)證的RTL硬件模型,用于在接收到測試向量后分別產(chǎn)生輸出,并將各自的輸出均輸出給文件比較器;文件比較器,用于比較黃金C語言模型的輸出與待驗(yàn)證的RTL硬件模型的輸出是否一致,如果一致,則驗(yàn)證通過,如果不一致,則驗(yàn)證失敗。FPGA驗(yàn)證子系統(tǒng)如圖5所示,由高清播放機(jī)、FPGA開發(fā)板、PC機(jī)上的RTL硬件代碼和交互軟件、以及高清電視組成。視頻算法的RTL硬件代碼通過JTAG接口下載到FPGA開發(fā)板,高清視頻播放器通過HDMI接口傳輸視頻到FPGA開發(fā)板,該視頻經(jīng)過下載到FPGA板的硬件邏輯進(jìn)行處理,將處理結(jié)果通過LVDS接口傳到高清數(shù)字電視。PC端的交互軟件通過以太網(wǎng)配置SOC系統(tǒng)參數(shù)。下面的表1是圖2所示聯(lián)合開發(fā)平臺(tái)所需的軟件資源列表。
權(quán)利要求
1.一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,該方法將視頻算法開發(fā)和硬件實(shí)現(xiàn)分成兩條主線同步進(jìn)行,在視頻算法開發(fā)過程中,對視頻算法的客觀和主觀視覺性能進(jìn)行評估,同時(shí)對視頻算法進(jìn)行硬件架構(gòu)設(shè)計(jì),檢查視頻算法是否滿足硬件約束,一旦發(fā)現(xiàn)硬件架構(gòu)超出了硬件資源的可實(shí)現(xiàn)性范圍,則同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的聯(lián)合優(yōu)化。
2.根據(jù)權(quán)利要求1所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述視頻算法開發(fā)的具體步驟如下步驟101 進(jìn)行功能定義,對要實(shí)現(xiàn)的算法功能和需要滿足的算法性能指標(biāo)進(jìn)行定義;步驟102 視頻算法開發(fā)和編碼;步驟103 接收硬件設(shè)計(jì)人員進(jìn)行硬件可實(shí)現(xiàn)性檢查的反饋結(jié)果,如不滿足硬件可實(shí)現(xiàn)性,則修改算法代碼,如滿足硬件可實(shí)現(xiàn)性,則執(zhí)行步驟104 ;步驟104 對視頻算法進(jìn)行算法性能評估,如果能夠滿足算法性能指標(biāo)要求,則視頻算法代碼編碼結(jié)束,代碼確定;如果不能夠滿足算法性能指標(biāo)要求,則修改算法代碼,直至滿足。
3.根據(jù)權(quán)利要求2所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟101中所述算法性能指標(biāo)包括客觀性能指標(biāo)和主觀視覺性能指標(biāo),客觀性能指標(biāo)包括可以量化的信噪比和壓縮比,主觀視覺性能指標(biāo)是確定在人眼主觀視覺上要達(dá)到或超過的對比方。
4.根據(jù)權(quán)利要求2所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟104中所述對視頻算法進(jìn)行算法性能評估,是利用視頻算法性能評估子系統(tǒng)對視頻算法進(jìn)行算法性能評估,具體評估方法包括對待測試的視頻運(yùn)行視頻算法代碼,得到視頻處理的結(jié)果,對該結(jié)果進(jìn)行評估,檢查客觀性能指標(biāo)和主觀視覺性能指標(biāo)是否達(dá)到步驟101中制定的性能指標(biāo)。
5.根據(jù)權(quán)利要求4所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述主觀視覺性能指標(biāo)的評估方法是比較待評估的處理結(jié)果和對比方的處理結(jié)果,用人眼的主觀視覺來判斷待評估方和對比方的優(yōu)劣。
6.根據(jù)權(quán)利要求4所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述視頻算法性能評估子系統(tǒng)包括測試視頻序列庫、待評估的視頻算法、對比方的視頻處理單元算法、主觀視覺評估單元、以及客觀性能評估單元;其中,測試視頻序列庫由對視頻算法進(jìn)行性能評估的視頻序列組成,具體由各個(gè)分辨率的通用視頻庫和特定算法評估的視頻庫組成;主觀視覺評估單元由多個(gè)對比方處理單元及多臺(tái)數(shù)字高清電視組成。
7.根據(jù)權(quán)利要求6所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述檢查客觀性能指標(biāo)和主觀視覺性能指標(biāo)是否達(dá)到步驟101中制定的性能指標(biāo),包括視頻算法從測試視頻序列庫中讀取視頻,得到處理后的視頻;經(jīng)視頻算法處理后的視頻分別輸入到主觀視覺評估單元和客觀性能指標(biāo)評估單元;客觀性能指標(biāo)評估單元計(jì)算出待評估的算法處理結(jié)果的客觀性能指標(biāo);主觀視覺評估單元接收到處理后的視頻后,下載到硬盤錄放機(jī),硬盤錄放機(jī)控制將下載的視頻結(jié)果通過LVDS接口顯示到高清電視上;同時(shí),未經(jīng)視頻算法處理的測試視頻經(jīng)過對比方的視頻處理單元,輸出到另一臺(tái)高清電視上顯示;人眼對兩臺(tái)高清電視的結(jié)果進(jìn)行主觀視覺的評估,并輸出評估性能指標(biāo)。
8.根據(jù)權(quán)利要求1所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述硬件實(shí)現(xiàn)的具體步驟如下步驟201 進(jìn)行系統(tǒng)定義,對系統(tǒng)資源進(jìn)行描述,制定硬件性能指標(biāo)數(shù)據(jù)帶寬、頻率、硬件規(guī)模和功耗;步驟202 接收視頻算法代碼,對視頻算法代碼進(jìn)行硬件可實(shí)現(xiàn)性代碼風(fēng)格檢查,如果算法代碼風(fēng)格滿足基本設(shè)計(jì)規(guī)范,則執(zhí)行步驟203,如果不滿足,則將修改意見反饋給算法設(shè)計(jì)人員;步驟203 基于算法代碼進(jìn)行硬件架構(gòu)設(shè)計(jì);步驟204 對數(shù)據(jù)帶寬和硬件規(guī)模進(jìn)行預(yù)估;步驟205 如果本次接收的視頻算法代碼同時(shí)滿足硬件可實(shí)現(xiàn)性和算法性能指標(biāo),則執(zhí)行步驟206 ;否則,返回步驟202 ;步驟206 在視頻算法代碼最終版中添加測試向量生成代碼,生成硬件實(shí)現(xiàn)所用到的黃金模型Golden Model ;步驟207 進(jìn)行詳細(xì)的分模塊架構(gòu)設(shè)計(jì)和編碼;步驟208 基于該Golden Model對RTL硬件設(shè)計(jì)進(jìn)行硬件功能仿真驗(yàn)證;步驟209 對RTL硬件設(shè)計(jì)進(jìn)行FPGA驗(yàn)證。
9.根據(jù)權(quán)利要求8所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟202中所述基本設(shè)計(jì)規(guī)范包括1)數(shù)據(jù)類型為整型;2)常數(shù)除法修改為乘和移位;3)盡量少的使用除法器;4)濾波窗口盡量小,這樣能盡量少的使用片內(nèi)緩存;以及5)盡量少地使用迭代算法或減少迭代次數(shù),因?yàn)榈惴óa(chǎn)生的硬件規(guī)模巨大。
10.根據(jù)權(quán)利要求8所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟203中所述基于算法代碼進(jìn)行硬件架構(gòu)設(shè)計(jì),是從算法代碼中提煉出算法的關(guān)鍵模塊和關(guān)鍵路徑進(jìn)行結(jié)構(gòu)設(shè)計(jì),關(guān)鍵模塊為需要相對較多運(yùn)算資源的模塊,關(guān)鍵路徑為連接外部存儲(chǔ),內(nèi)部存儲(chǔ)和關(guān)鍵模塊之間的數(shù)據(jù)通路。
11.根據(jù)權(quán)利要求8所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟204中所述對數(shù)據(jù)帶寬和硬件規(guī)模進(jìn)行預(yù)估,以預(yù)估出1)硬件對外部存儲(chǔ)數(shù)據(jù)帶寬的訪問要求;2)片內(nèi)緩存的使用大?。灰约?)大運(yùn)算量模塊的規(guī)模。
12.根據(jù)權(quán)利要求11所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟204中所述對數(shù)據(jù)帶寬和硬件規(guī)模進(jìn)行預(yù)估之后,還包括如果該預(yù)估值超出了步驟201中制定的硬件資源可實(shí)現(xiàn)范圍,則要同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的優(yōu)化,即將修改意見反饋給算法設(shè)計(jì)人員,算法設(shè)計(jì)人員修改算法代碼進(jìn)行算法層面的優(yōu)化,同時(shí)要返回步驟203,優(yōu)化硬件架構(gòu)設(shè)計(jì);如果該預(yù)估值滿足步驟201制定的硬件可實(shí)現(xiàn)范圍,則本次接收的算法代碼的硬件架構(gòu)設(shè)計(jì)結(jié)束。
13.根據(jù)權(quán)利要求12所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述視頻算法層面的優(yōu)化策略有1)減少數(shù)據(jù)位寬;2)減少濾波器窗口垂直高度;3)刪除對算法性能貢獻(xiàn)微小的模塊;4)減少算法的迭代次數(shù);以及5)減少搜索范圍,或搜索范圍不變但增加步長。
14.根據(jù)權(quán)利要求12所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,所述硬件層面的優(yōu)化策略有1)用分段掃描的方法減少片內(nèi)緩存的大??;2)分時(shí)復(fù)用;以及3)使用片內(nèi)緩存來減少對外部存儲(chǔ)的訪問,從而減少對數(shù)據(jù)帶寬的需求。
15.根據(jù)權(quán)利要求8所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟208中所述基于該Golden Model對RTL硬件設(shè)計(jì)進(jìn)行硬件功能仿真驗(yàn)證,是利用RTL硬件驗(yàn)證子系統(tǒng)實(shí)現(xiàn)的,該RTL硬件驗(yàn)證子系統(tǒng)包括測試圖象庫、測試向量生成器、Golden CModel、待驗(yàn)證的RTL硬件模型、以及文件比較器,其中測試視頻序列庫,用于存儲(chǔ)對視頻算法的RTL硬件設(shè)計(jì)進(jìn)行驗(yàn)證所需要的測試序列;在在視頻算法代碼最終版中添加文件輸入輸出代碼,則生成測試向量生成器;測試向量生成器,用于從測試視頻序列庫中讀取測試序列,并生成測試向量,再將該測試向量輸出給黃金C語言模型和待驗(yàn)證的RTL硬件模型;黃金C語言模型和待驗(yàn)證的RTL硬件模型,用于在接收到測試向量后分別產(chǎn)生輸出,并將各自的輸出均輸出給文件比較器;文件比較器,用于比較黃金C語言模型的輸出與待驗(yàn)證的RTL硬件模型的輸出是否一致,如果一致,則驗(yàn)證通過,如果不一致,則驗(yàn)證失敗。
16.根據(jù)權(quán)利要求8所述的視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,其特征在于,步驟209中所述對RTL硬件設(shè)計(jì)進(jìn)行FPGA驗(yàn)證,是利用FPGA驗(yàn)證子系統(tǒng)實(shí)現(xiàn)的,該FPGA驗(yàn)證子系統(tǒng)包括高清播放機(jī)、FPGA開發(fā)板、PC機(jī)上的RTL硬件代碼和交互軟件、以及高清電視;其中,視頻算法的RTL硬件代碼通過JTAG接口下載到FPGA開發(fā)板,高清視頻播放器通過HDMI接口傳輸視頻到FPGA開發(fā)板,該視頻經(jīng)過下載到FPGA板的硬件邏輯進(jìn)行處理,將處理結(jié)果通過LVDS接口傳到高清數(shù)字電視;PC端的交互軟件通過以太網(wǎng)配置SOC系統(tǒng)參數(shù)。
全文摘要
本發(fā)明公開了一種視頻算法和硬件實(shí)現(xiàn)聯(lián)合開發(fā)的方法,該方法將視頻算法開發(fā)和硬件實(shí)現(xiàn)分成兩條主線同步進(jìn)行,在視頻算法開發(fā)過程中,對視頻算法的客觀和主觀視覺性能進(jìn)行評估,同時(shí)對視頻算法進(jìn)行硬件架構(gòu)設(shè)計(jì),檢查視頻算法是否滿足硬件約束,一旦發(fā)現(xiàn)硬件架構(gòu)超出了硬件資源的可實(shí)現(xiàn)性范圍,則同時(shí)進(jìn)行視頻算法層面和硬件架構(gòu)層面的聯(lián)合優(yōu)化。本發(fā)明還給出了相應(yīng)的優(yōu)化策略,提出了與開發(fā)流程配合的開發(fā)平臺(tái),在開發(fā)流程的每一個(gè)環(huán)節(jié),均有開發(fā)平臺(tái)中的資源給與高效準(zhǔn)確的支持,確保視頻處理芯片開發(fā)能正確快速地完成。本發(fā)明可以用于視頻處理芯片從算法開發(fā)到芯片前端設(shè)計(jì)的快速開發(fā)。
文檔編號(hào)H04N5/14GK102567583SQ201110455740
公開日2012年7月11日 申請日期2011年12月30日 優(yōu)先權(quán)日2011年12月30日
發(fā)明者倪素萍, 張森, 杜學(xué)亮, 林嘯, 蒿杰, 郭若杉 申請人:中國科學(xué)院自動(dòng)化研究所