基於Hi3559AV100 RFCN實現細節解析-(1)VGS初介紹

  下面隨筆系列將對Hi3559AV100 RFCN實現細節進行解析,由於RFCN用到了VGS加框,所以本篇隨筆將給出VGS視頻圖像子系統的具體說明,便於後面RFCN的細節實現說明。node

  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函數。ide

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);
相關文章
相關標籤/搜索