下面隨筆系列將對Hi3559AV100 RFCN實作細節進行決議,因為RFCN用到了VGS加框,因此本篇隨筆將給出VGS視頻影像子系統的具體說明,便于后面RFCN的細節實作說明,
VGS 是視頻圖形子系統,全稱為 Video Graphics Sub-System,支持對一幅輸入影像進行處理,如進行縮放、像素格式轉換、視頻存盤格式轉換、壓縮/解壓、打 COVER、打 OSD、畫線、旋轉、動態范圍轉換等處理,基本概念
job
VGS 管理 task 的結構,一個 job 里可以包含多個 task,VGS 保證 task 按照添加到job 的順序執行,并且保證一個 job 里的所 task一次性提交硬體執行,用戶可以在加載 VGS ko 時設定模塊引數(max_vgs_job)來設定 VGS 支持的最大 job 數,job 數取值范圍為[20, 400],Linux 默認為 128, Huawei LiteOS 默認值為 64,task
對一幅影像完成具體的一個或多個操作,比如打 OSD、縮放或像素格式轉換等,用戶可以在加載 VGS ko 時設定模塊引數(max_vgs_task)來設定 VGS 支持的最大 task 數,task 數取值范圍為[20, 800],Linux 默認為 200, Huawei LiteOS 默認值為 100,node
VGS 硬體的最小執行單位,一個 task 對應一個或多個 node,node 中包含硬體作業需要的資訊,比如源影像地址,目標影像地址,操作型別等,并按照硬體要求的形式組織,用戶可以在加載 VGS ko 時設定模塊引數(max_vgs_node)來設定VGS 支持的最大 node 數,node 數取值范圍為[20, 800],Linux 默認為 200, Huawei LiteOS 默認值為 100,bVgsHdrSupport
HDR 模塊引數,取值范圍[0, 1],0 為關閉(默認關閉 HDR),HDR 關閉時 VGS只支持 SDR8 和 SDR10,用戶可以在加載 VGS ko 時設定模塊引數(bVgsHdrSupport)來設定 VGS 是否支持 HDR,此模塊引數僅用于Hi3559AV100,vgs_en[VGS_IP_NUM]
VGS 硬體開關,用戶可以在加載 VGS ko 時設定模塊引數(vgs_en)來設定 VGSIP 開啟或關閉,默認所 IP 都開啟,當 VGS_IP_NUM 為 2 時,只支持開啟或關閉 VGS1,插 ko 后 VGS0 始終打開;當 VGS_IP_NUM 為 1 時,該引數無效,插ko 后 VGS0 始終打開,HANDLE
任務句柄,標識一個 job,功能介紹
VGS 的功能主要縮放、打 OSD、打 COVER、畫線、像素格式轉換、視頻存盤格式轉換、壓縮/解壓、旋轉、低功耗策略、動態范圍轉換,RFCN實作VGS涉及相關函式
在畫框函式實作下:SAMPLE_COMM_SVP_NNIE_FillRect,涉及如下VGS函式,
1 //啟動一個 job, 2 3 HI_MPI_VGS_BeginJob(&VgsHandle); 4 5 //往一個已經啟動的 job 里添加打 COVER task, task屬性必須滿足VGS的能力, 6 s32Ret = HI_MPI_VGS_AddCoverTask(VgsHandle, &stVgsTask, &stVgsAddCover); 7 8 //提交一個 job, 9 s32Ret = HI_MPI_VGS_EndJob(VgsHandle);
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/265075.html
標籤:其他
