摘要:本文實現了一個基于DM6467的標清和高清的視頻監控系統,包括標清/高清模擬視頻輸入輸出、H.264標清/高清視頻編碼、AAC音頻編解碼、H.264標清/高清視頻實時解碼和基于TCP協議的網絡傳輸等功能,其不僅滿足不同情況下的視頻監控需求,還具有良好的可重構性和可擴展性。本文主要討論了系統硬件和軟件的設計。
關鍵詞:達芬奇技術;DM6467;視頻監控
DOI: 10.3969/j.issn.1005-5517.2013.1.015
然后依次創建Rendezvous同步機制和其他三個線程。主要工作流程為:
第一步,初始化一個互斥鎖,用于保護全局變量;
第二步,調用CERuntime_init和TraceUtil_start完成對Codec Engine的初始化,必須在調用Codec Engine的API函數之前執行;
第三步,調用Rendezvous_open打開線程同步機制;
第四步,采用FIFO機制創建視頻編碼線程和數據采集線程、寫文件線程各自的管道通信并創建這三個線程;
最后,主線程的任務結束轉化成控制線程,可實現暫停播放、調整OSD透明度等功能。
(2)數據采集線程
數據采集線程主要任務是通過VPIF得到一幀視頻數據并利用VDCE模塊做4:2:2—>4:2:0的格式轉換,存儲轉換后數據的內存由視頻線程提供。
(3)視頻編碼線程
視頻編碼線程主要工作流程為:
第一步,調用Engine_open打開一個解碼Engine實例,同時返回一個hEngine指針,供以后Engine函數使用;
第二步,調用VIDENC1_create,參數使用hEngine指針,創建一個符合H.264算法的解碼實例,返回值是一個hEncode指針,這個指針供以后所有Codec Engine的API調用;
第三步,調用Memory_alloc函數為編碼前4:2:0的數據分配連續內存(供數據采集線程使用);
最后,先得到一幀4:2:0的圖像,