一種嵌入式視頻處理器、系統(tǒng)及構建方法
【技術領域】
[0001]本發(fā)明涉及多媒體處理技術領域,特別涉及一種嵌入式視頻處理器、系統(tǒng)及構建方法。
【背景技術】
[0002]當前,在嵌入式開發(fā)環(huán)境中進行視頻項目的開發(fā)時,可以采用FFmpeg(FFmpeg,即Fast Forward Mpeg)對原始的視頻數(shù)據(jù)進行編碼,以實現(xiàn)對視頻數(shù)據(jù)的壓縮。
[0003]現(xiàn)有的FFmpeg在對視頻數(shù)據(jù)進行編碼時,需要利用CPU的運算資源來進行編碼。然而,由于在嵌入式開發(fā)環(huán)境中,CPU的運算資源是非常有限的,所以,F(xiàn)Fmpeg在進行需消耗大量預算資源的視頻數(shù)據(jù)編碼處理時,會占用嵌入式開發(fā)環(huán)境中大部分的CPU運算資源,從而影響了嵌入式開發(fā)環(huán)境中其他功能模塊的性能。
[0004]綜上所述可以看出,在嵌入式開發(fā)環(huán)境中進行視頻數(shù)據(jù)的編碼處理時,如何降低由于視頻數(shù)據(jù)編碼處理所造成的CPU運算資源消耗是目前亟待解決的問題。
【發(fā)明內容】
[0005]有鑒于此,本發(fā)明的目的在于提供一種嵌入式視頻處理器、系統(tǒng)及構建方法,實現(xiàn)了在嵌入式開發(fā)環(huán)境中進行視頻數(shù)據(jù)的編碼處理時,降低由于視頻數(shù)據(jù)編碼處理所造成的(PU運算資源消耗的目的。其具體方案如下:
[0006]一種嵌入式視頻處理器的構建方法,包括:
[0007]利用目標描述方式,對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器;其中,所述目標描述方式為,與FFmpeg對編解碼器的描述相一致的描述方式;
[0008]利用編碼器注冊工具,將所述自定義的視頻編解碼器注冊到所述FFmpeg中,以得到所述嵌入式視頻處理器;
[0009]其中,所述將所述自定義的視頻編解碼器注冊到所述FFmpeg中的過程包括,將所述自定義的視頻編解碼器添加到所述FFmpeg的視頻編解碼器鏈中。
[0010]優(yōu)選的,所述利用目標描述方式,對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器的過程包括:
[0011]利用所述目標描述方式,對VPU硬件編解碼器進行重新定義,得到所述自定義的視頻編解碼器。
[0012]優(yōu)選的,所述利用編碼器注冊工具,將所述自定義的視頻編解碼器注冊到所述FFmpeg中的過程包括:
[0013]利用REGISTER_ENCDEC (X, x)函數(shù),將所述自定義的視頻編解碼器注冊到所述FFmpeg 中。
[0014]本發(fā)明還公開了一種嵌入式視頻處理器,通過利用所述構建方法進行構建,應用于嵌入式視頻處理系統(tǒng),包括:
[0015]用于獲取視頻采集器采集到的視頻數(shù)據(jù)的FFmpeg ;
[0016]用于獲取所述FFmpeg發(fā)送的所述視頻數(shù)據(jù),對所述視頻數(shù)據(jù)進行硬件編碼處理,得到相應的視頻碼流數(shù)據(jù),并將所述視頻碼流數(shù)據(jù)發(fā)送到所述FFmpeg的硬件編解碼器。
[0017]優(yōu)選的,所述視頻采集器為基于V4L2框架搭建的視頻采集器。
[0018]優(yōu)選的,所述硬件編解碼器為VPU硬件編解碼器。
[0019]優(yōu)選的,所述視頻碼流數(shù)據(jù)的視頻格式為H.264格式。
[0020]本發(fā)明還公開了一種嵌入式視頻處理系統(tǒng),包括所述嵌入式視頻處理器,還包括:
[0021]用于生成流媒體請求的客戶端;
[0022]用于獲取所述FFmpeg發(fā)送的所述視頻碼流數(shù)據(jù),并在接收到所述客戶端發(fā)送的所述流媒體請求后,將所述視頻碼流數(shù)據(jù)發(fā)送到所述客戶端的FFserver。
[0023]優(yōu)選的,所述客戶端為VLC客戶端。
[0024]優(yōu)選的,所述系統(tǒng)還包括:
[0025]用于獲取并存儲所述FFserver發(fā)送的所述視頻碼流數(shù)據(jù)的數(shù)據(jù)緩沖器。
[0026]本發(fā)明中,通過對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器,使得該視頻編解碼器的描述方式與FFmpeg對編解碼器的描述方式是相一致的,這為后續(xù)的將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中打下了關鍵的基礎;然后利用編碼器注冊工具,將上述自定義的視頻編解碼器注冊到FFmpeg中,也即將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中,由此完成了將硬件編解碼器有機地集成到FFmpeg的過程。這樣,當FFmpeg接收到視頻數(shù)據(jù)時,已經(jīng)集成到FFmpeg的硬件編解碼器就可以獲取FFmpeg發(fā)送的視頻數(shù)據(jù),然后對該視頻數(shù)據(jù)進行硬件編碼處理,由于硬件編解碼器的在進行視頻編碼時,主要消耗的是硬件編解碼器內部的運算資源,由此降低了由于視頻數(shù)據(jù)編碼處理所造成的CPU運算資源消耗。
【附圖說明】
[0027]為了更清楚地說明本發(fā)明實施例或現(xiàn)有技術中的技術方案,下面將對實施例或現(xiàn)有技術描述中所需要使用的附圖作簡單地介紹,顯而易見地,下面描述中的附圖僅僅是本發(fā)明的實施例,對于本領域普通技術人員來講,在不付出創(chuàng)造性勞動的前提下,還可以根據(jù)提供的附圖獲得其他的附圖。
[0028]圖1為本發(fā)明實施例公開的一種嵌入式視頻處理器的構建方法流程圖;
[0029]圖2為本發(fā)明實施例公開的一種嵌入式視頻處理器結構示意圖;
[0030]圖3為本發(fā)明實施例公開的一種嵌入式視頻處理系統(tǒng)結構示意圖。
【具體實施方式】
[0031]下面將結合本發(fā)明實施例中的附圖,對本發(fā)明實施例中的技術方案進行清楚、完整地描述,顯然,所描述的實施例僅僅是本發(fā)明一部分實施例,而不是全部的實施例?;诒景l(fā)明中的實施例,本領域普通技術人員在沒有做出創(chuàng)造性勞動前提下所獲得的所有其他實施例,都屬于本發(fā)明保護的范圍。
[0032]本發(fā)明實施例公開了一種嵌入式視頻處理器的構建方法,參見圖1所示,該方法包括:
[0033]步驟SlOl:利用目標描述方式,對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器;其中,目標描述方式為,與FFmpeg對編解碼器的描述相一致的描述方式。
[0034]具體的,上述利用目標描述方式,對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器的過程可以包括,利用目標描述方式,對VPU硬件編解碼器(VPU,即VideoProcessing Unit,視頻處理單元)進行重新定義,得到自定義的視頻編解碼器。
[0035]步驟S102:利用編碼器注冊工具,將自定義的視頻編解碼器注冊到FFmpeg中,以得到嵌入式視頻處理器;其中,將自定義的視頻編解碼器注冊到FFmpeg中的過程包括,將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中。
[0036]具體的,上述利用編碼器注冊工具,將自定義的視頻編解碼器注冊到FFmpeg中的過程可以包括,利用REGISTER_ENCDEC (X,x)函數(shù),將自定義的視頻編解碼器注冊到FFmpeg中,也即是將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中,從而完成了將硬件編解碼器有機地集成到FFmpeg的過程。
[0037]本發(fā)明實施例中,通過對硬件編解碼器進行重新定義,得到自定義的視頻編解碼器,使得該視頻編解碼器的描述方式與FFmpeg對編解碼器的描述方式是相一致的,這為后續(xù)的將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中打下了關鍵的基礎;然后利用編碼器注冊工具,將上述自定義的視頻編解碼器注冊到FFmpeg中,也即將自定義的視頻編解碼器添加到FFmpeg的視頻編解碼器鏈中,由此完成了將硬件編解碼器有機地集成到FFmpeg的過程。這樣,當FFmpeg接收到視頻數(shù)據(jù)時,已經(jīng)集成到FFmpeg的硬件編解碼器就可以獲取FFmpeg發(fā)送的視頻數(shù)據(jù),然后對該視頻數(shù)據(jù)進行硬件編碼處理,由于硬件編解碼器的在進行視頻編碼時,主要消耗的是硬件編解碼器內部的運算資源,由此降低了由于視頻數(shù)據(jù)編碼處理所造成的CPU運算資源消耗。
[0038]本發(fā)明實施例還公開了一種嵌入式視頻處理器,該處理器是通過上一實施例中的構建方法來進行構建的,應用于嵌入式視頻處理系統(tǒng),參見