綠茵吧足球游戲網fmdf11豎行頭像包版參考設計說明_第1頁
綠茵吧足球游戲網fmdf11豎行頭像包版參考設計說明_第2頁
綠茵吧足球游戲網fmdf11豎行頭像包版參考設計說明_第3頁
綠茵吧足球游戲網fmdf11豎行頭像包版參考設計說明_第4頁
綠茵吧足球游戲網fmdf11豎行頭像包版參考設計說明_第5頁
已閱讀5頁,還剩35頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

本文以Hi3559V100描述為例,未有特殊說明,Hi3556V100與Hi3559V100

數據容量(RAM容0b000、X1例如:00X表示000或001;1XX表示

前 流 Master初始 Slave初始 HAL適 WIFI模塊適 ReferenceSample中Flash分 圖1-1功能模塊層 圖1-2模式切換流 圖1-3初始化/去初始化流 圖1-4設置編碼格式流 圖1-5基本流 圖1-6流程 圖1-7基于場景自適應的拍照流 圖1-8處理示例流 圖1-9參數布局示意 圖1-10主要界 圖1- 圖3-1開機性能統(tǒng)計信息示 圖3-2Flash分區(qū)對比說 圖3-3ReferenceSample內存占用說 DV、DashCam。下面以DV為例,對總體框架和各功能模塊做了簡介。流局在master端程序,運行在Linux核(A7)上;業(yè)務布局在slave端程序,運行在LiteOS核(A17)上。master端程序程序包含參數模塊、UI、HTTPServer、 塊、工作模式、模塊、模塊、拍照模塊、回放模塊、流、文件管理、程??蓞⒖肌禜i3559V100/Hi3556V100SDK需要說明參考設計分為普通版本和快速啟動版本,兩個版本的master端程序是一致common│││││//│//││build│product││├──│││build│││halHAL│││├──init_mastermaster│││├── │││parameters│││rootfs││└──│ ├── ├── ├── vodHttpServer ├──│ //UVC└── 第一種是數據通路變更或參數變更,例如單拍模式切換到模式,這種場景需要去初始化模塊,以新模式的參數重新初始化;第二種是參數不變,例如1080P60普通切換到1080P循環(huán),12M的5連拍換到12M的定時拍,這種場景不發(fā)生變化,僅對或拍照任務的相YN 模式啟停接口封裝了和拍照業(yè)務的啟動和停止處理流程,在不同的場景下,會根另外,在縮時這個特殊模式下,調用模式啟動接口會移除流,因為縮時采用的是單幀請求的編碼方式,編無法產生連續(xù)的幀數據??s時停止后模塊代碼位于dv_reference\source\workmode\init\hi_product_workmode_init.c和在開關機流程、模式切換流程和/點播啟停流程中使用;第二類是配置項接口,包一個互逆的流程,按照以下順序調用mapi提供的接口來實現:在快速啟動版本中,slave包含了初始化流程,因此這部分代碼是 LiteOSAPP和LinuxAPP初始化都通用的代碼,因此把它們合二為一,共用一份初始化代碼,位于 dv_reference\source\workmode\host和dv_reference\source\workmode\slave 譯選項(OS_TYPE:= 用,例如子碼流編碼既作為小分辨率碼流,又作為實時流。和公用同一個編,這樣在或啟動停止時,為了不互相影響,需要在參考設計增加一組計數的編碼啟停封裝接口(HI_PDT_Media_VencStart和H_PDT_Meda_ec口,重復啟動只增加計數;在外部業(yè)務停止編碼時移除計數,當計數時調用venc化,流程如圖1-4所示。

同 的流程如圖1-5所示。編

道、文件后綴類型以及錄制倍速參數,普通設置倍速為1。參考設計實現的循環(huán)方式是采用5個文件為一組的組內循環(huán)方式,即開啟循環(huán)錄接口中體現。相比于普通,循環(huán)只需要在處理函數中添加組內文件計數 的目標幀率30fps為例,如果縮時間隔時間是2s,那么編 以倍速speed=目標幀率30÷實際幀率0.5=60,實際 與縮時剛好相反,實際的效果是慢動作。慢速的流程與普 相同,只需要在創(chuàng)建主碼流任務時設置倍速為需要慢放的速度即可。以錄制文件的目標幀率30fps為例,如果編 幀率30÷實際幀率240=1/8,實際 出來的文件就是1/8倍慢放的效果。

任務的同時,啟動了間隔拍照的任務,間隔拍照參考“多 拍照模塊代碼位于dv_reference\source\workmode\src\hi_product_photo.c和模式。的基本流程如圖1-6所示,不同模式依賴上下文模塊初始化流程和銷 步驟1.啟動任務步驟2.設置VCap屬性,HI_MAPI_VCap_SetSnapAttr,設置當前拍照屬性幀率為Sensor幀率,幀數為1。步驟3.啟動VCap,HI_MAPI_VCap_Trigger*2隔3秒一張。步驟3.停止時,銷毀定時器。HI_Timer_Destroy。步驟1.啟動任務步驟2.設置VCap屬性,HI_MAPI_VCap_SetSnapAttr,對于10p/1s設置當前拍照屬性為NORM模式下對應的拍照屬性,其中普通拍照參數對應的幀率為10,總幀數10。步驟3.啟動VCap,HI_MAPI_VCap_Trigger連拍模式:觸發(fā)拍照后,按照一定的速率拍攝連續(xù),例如5幀每s的速率抓步驟1.啟動任務步驟2.設置VCap屬性,HI_MAPI_VCap_SetSnapAttr,對于10p/1s設置當前拍照屬性為NORM模式下對應的拍照屬性,其中普通拍照參數對應的幀率為10,總幀數10。步驟3.啟動VCap NORMAL:只有在NORMAL模式下,可以手動設置調節(jié)值Exposure,快門HDR場景,為普通拍照或者長拍照觸發(fā)觸發(fā)設置HDR步驟1.啟動任務步驟2.設置VCap屬性為HI_MPP_SNAP_MODE_PROTUNE,設置幀數為推薦幀數(一般為3幀),對于每一幀的屬性設置,一般為一幀長,一幀正常,一幀3.VProcPHOTO_PROC_TYPE_HDR處理,以及相關算法參步驟4.啟動VCap

步驟1.啟動任務步驟2.設置VCap屬性為HI_MPP_SNAP_MODE_NORMAL,幀數為場景推薦幀數(一般為5幀),調用HI_MAPI_VCap_SetSnapAttr;步驟4.啟動VCap步驟1.啟動任務步驟2.設置VCap屬性為HI_MPP_SNAP_MODE_PROTUNE,幀數為場景推薦幀數(一般為1幀),對每一幀的參數設置為場景推薦參數,調用步驟3.啟動VCapHI_MAPI_VCap_Trigger步驟1.啟動任務步驟2.設置VCap屬性為HI_MPP_SNAP_MODE_PROTUNE,幀數為場景推薦幀數(一般為5幀),設置每一幀的參數為場景推薦參數,調用步驟4.啟動VCap產品層在界面設置拍照場景后,僅代表后續(xù)拍照采用的場景,并未對VCap以及 文件瀏覽對應代碼為filelist_page.c,filelist_page.xml,以scrollgrid控件為實現主要DATArownum="2"colnum="2"224個單元格;scrollgrid可scrollgridcol表示,cellcolnum="5"5個",field="thumbnail:string:256;grptype:string:8;duration:string:16; 第1列為縮略圖路徑,縮略圖為*.THM,縮略圖就用*.JPG,HIGV會從2normmp4,slowmp4loopmp4,single,burstcontinu,lapse;第3列為持續(xù)時長或文件數量字符串;colbinddb="yes“col XX_GetTypeIcon(),經 onv="SCROLL_GRID_GetTypeIcon于選中狀態(tài)則執(zhí)行勾選操作(勾選的Group索引都會放在鏈表中,否則回放文件。流文件較大,考慮到性能和效果,回放采用的小碼流文件(LRV)進行回pause/resumeseek操作?;胤盼募r會啟動ndk的音頻輸出dv_reference\source\eventproc,該模塊是參考設計各業(yè)務模塊的消息集散中心。在系統(tǒng)初始化時,向各個模塊接收函數,其主要功能是接受消息并將其記錄到消息處理隊列中,模塊內部有一個輪詢處理線依次

dv_reference\source\devmng,該模塊包含主要外設的初始wifi,按鍵,LCD屏等。同時對上層提供開關屏幕、wifi開關、自動關機產品層原始的參數保存在ini文件中,位于 sensor配置參數,例如config_product_media_4k2k30_rec.ini,該參數僅在4K2K@30fps的錄件中,一個是通用參數config mon.ini(包含音頻屬性、OSD屬性、rotate屬性、ldc屬性、編碼格式等另一個是特定模式的參數config_product_media_xxx.ini(包含分辨率,幀率,通路綁定關系等兩部分參體通路綁定關系。具體修改方法參考2.2“ini參數使用和修改方法”。 這部分代碼位于dv_reference\product\hi3559\parameters\ini2bin,編譯成一個獨立的分區(qū)或參數文件,這部分代碼位于dv_reference\source\param flash中,開機后在uboot下加載paramdef到參數區(qū)進行使用,具體方案參考dv_reference\source\storagemngSD卡設備請自行替換格式化工具,比如dosfstools。文件管理模塊代碼位于dv_reference\source\filemng ,該模塊封裝了middleware的filemgr接口,包含文件管理初始化流程,同時對組文件列表的操作進行了進一步封流

流模塊代碼位于dv_reference\source\streamserver,該模塊主要功能是提供網絡實時流。在模式下可以主碼碼流,而在拍照模式只能子碼 HTTPServerHTTPServer80端口的StreamServer繼續(xù)處理流程。如果是非流請求,則會當普通的http請求消息處理,這部分的處理流程參考1.3.15“HTTPServer”。├──│ .c├──├──│ //利用*.xml布局,├──│├──higv_cextfile.h利用*.xml,xml2binskin,viewID│ │ │└──├──├──│├──││└──│ │└── └──├──│├──││└── │└── UI └──└──├── ├── ├── SD 戶端發(fā)送消息,例如{"mode":10,"state":1,"event":2,"pasttime":3}。有四類主工作模式:0Photo,1Multi,2Record,3 10Burst12Continuous20212223+拍24消息中的state表示是否處于工作狀態(tài):正在Timelapsehi_key_mng.c中的_key_check()線程定期循環(huán)檢測,檢測到相應的按鍵定的onkeydown、onkeyup函數。Window或View在顯示并激活后才能接收按鍵在顯示時會調用HOME_PAGE_OnShow(),隱藏時調用HOME_PAGE_OnHide(),HOME_PAGE_OnShow()中會啟動定時器,定時器到期時,HIGV回調HOME_PAGE_OnTimer(),在此會刷新界面,由于定時器是的,為了定期刷_PAGE的顯示在中鍵(HIGV_KEY_F2)分支中處理;的啟停、拍照在右鍵(HIGV_KEY_F1)HOME_PAGE_OnGestureFling處理,中將其轉換成按鍵。界面刷新由HOME_PAGE_Refresh統(tǒng)一處理,根據當前的工用此刷新函數。HIGVUI管理是單線程操作,在線程中不能直接調用HI_GV_Widget_Show、HI_GV_Widget_Active等函數,所以如果需要異步刷新,可以向HOME_PAGE發(fā)送,例如HI_GV_Msg_SendAsync(HOME_PAGE,HIGV_MSG_EVENT,UI_EVENT_REFRESH_HOME_PAGE,0),之后HIGV回調HOME_PAGE_OnEvent,在其中調用刷新函數。后兩個參數(HIGV_MSG_EVENT和Master置了USB網卡,但在快速啟動版本中,需要手動調用/komod/USB2.0net進行USB驅動加載。啟動main_app。mmcAPP中根據啟動需要加載mmcko。Slave HI_PDTCustomMsg 如果不需要快速啟動,則無需調用錄,主要用于接收http消息(其中包含http流消息的分發(fā)處理,另一部分位于dv_reference\source\vodhttp報文解析和處理,包含模式切換、HALWIFIWifiHI_HAL_WIFI_Initwifi驅動、HI_HAL_WIFI_Deinit關閉wifi、HI_HAL_WIFI_GetParam功能為獲取wifi屬性、HI_HAL_WIFI_SetParam功能為設置wifi屬性,請根據自身單板所用的wifi組件,將對應的函數實現即可。ini例1.修改主碼流的編碼格式 4K30模式的小碼流屬于特定模式的屬性,需要修改指定模式對應的配置文件config_product_media_4k2k30_rec.ini,在[venc.x]中找到type類型為Sub 器,修改res_width和res_height,同時bufsize大小需滿足修改后的分辨率,具體計算方式請參考《HiMAPIV1.0處理開發(fā)參考》文檔中4.4節(jié)HI_VENC_TYPE_ATTR_S數據類型的注意事項。屏,只需要將config mon.ini中的rotate_type改為0即可以下是CFG_OSD_ON開關說明:LiteOSMMZ以下是 試LiteOS用。說明:此宏開關關閉后,LinuxAPP/LiteOSAPP中的所有DEBUG/WARN在調試期間,如果CFG_DEBUG_LOG_ON開關為yes,可以在 LiteOS端,輸入TIME_STAMP標記來進行統(tǒng)計和查看。說明:此功能打開后,會統(tǒng)計啟動時間,并且對啟動性能無影響。Linux5S在代碼中添加“TIME_STAMP;”來添加統(tǒng)計信息。mini-ubootstart.Stimer2_init函數調用開始統(tǒng)記,否則從LiteOSAPP的os_init_debug_timer2函數調用開始統(tǒng)記。? ? ? ? APP? Linuxfunc:TIME_STAMPustype所在的啟動階段打在LiteOS端,也可以通過命令time_stamp來打印啟動時間,使在業(yè)務運行期間,如果有需要優(yōu)化運行性能,也可以通過TIME_STAMP標記來進行統(tǒng)計和查數文件。RAW_PARAM方式需要在FLASH分區(qū)中有"ra "paramdef"三個分區(qū),每個分區(qū)至少占用一個塊,在nandFLASH上需要考慮壞塊問題,因此一般配置為1+3即至少4個塊。在LinuxAPP代碼中,每個分區(qū)目前

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論