《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 達芬奇TMS320DM6446的視頻軟件設計
達芬奇TMS320DM6446的視頻軟件設計
來源:微型機與應用2013年第7期
謝文濱,葉水生
(南昌航空大學 信息工程學院,江西 南昌 330063)
摘要: 針對視頻監控系統對實時性和帶寬的高要求,提出以達芬奇異構雙核處理器TMS320DM6446為基礎的解決方案。雙核間的通信和協作是基于編解碼器引擎機制來實現的。ARM子系統負責I/O端口控制、算法調度、圖形用戶界面、網絡傳輸等操作,DSP子系統則實現H.264視頻編解碼。經過研究,實現了視頻軟件設計。該方案實時性較好、部署方便,在視頻監控領域具有較好的應用前景。
Abstract:
Key words :

摘  要: 針對視頻監控系統對實時性和帶寬的高要求,提出以達芬奇異構雙核處理器TMS320DM6446為基礎的解決方案。雙核間的通信和協作是基于編解碼器引擎機制來實現的。ARM子系統負責I/O端口控制、算法調度、圖形用戶界面、網絡傳輸等操作,DSP子系統則實現H.264視頻編解碼。經過研究,實現了視頻軟件設計。該方案實時性較好、部署方便,在視頻監控領域具有較好的應用前景。
關鍵詞: 達芬奇;TMS320DM6446;編解碼器引擎;H.264

 隨著計算機多媒體技術、網絡通信技術、微電子技術、數字信號處理技術的高速發展,嵌入式數字視頻監控系統正迅速深入到學校、銀行、商場、機場、道路交通等領域的安防監控。然而,視頻數據量龐大,如此廣泛的應用,也就需要壓縮率更高的算法。H.264是目前最先進的視頻壓縮標準,具有高壓縮率的同時還具有更強的網絡適應性,它提供了網絡抽象層,使得H.264的文件更容易在不同網絡上傳輸(例如互聯網、WCDMA、CDMA2000等)。為了應對強勁的市場需求,德州儀器(TI)公司推出達芬奇[1](DaVinci)技術的TMS320DM6446處理器,它是一種專門針對數字視頻應用、基于信號處理的解決方案,提供了專業的集成處理器、軟件、工具和支持,以簡化設計過程,加速產品創新,深受開發者青睞。然而,它的開發卻非常復雜,使得許多開發者都未能盡可能地發揮其硬件作用。為此,本設計采用了基于達芬奇技術的TMS320DM6446處理器為開發平臺,介紹了達芬奇平臺的雙核通信機制,并以H.264進行壓縮編碼,設計實現視頻編碼軟件系統。
1 TMS320DM6446雙核通信
 TMS320DM6446集成了TMS320C64x+ DSP核和ARM926EJ-S核。在ARM端基于MontaVista Linux、相關驅動和應用程序來管理芯片與外設的交互,DSP作為ARM的協處理器,主要是基于DSP/BIOS(TI公司的實時操作系統內核)來處理復雜的音視頻編解碼相關的算法。高集成度帶來了開發的復雜性,ARM和DSP間通過DSPLink完成通信,同時需要編解碼引擎Codec Engine和編解碼服務器Codec Server協助完成。
1.1 Codec Engine
 Codec Engine是處理器間通信的橋梁,是介于ARM側的應用程序和DSP側的算法之間的軟件模塊,可以通過調用一組API集合來調用和運行符合xDAIS標準的算法。Codec Engine包括核心引擎(Core Engine)API和VISA(Video,Image,Speech,Audio)API。其中的VISA API通過stub(ARM端)來訪問核心引擎SPIs(System Programming Interface)和skeleton(DSP端),skeleton訪問核心引擎SPIs和VISA SPIs,VISA SPIs則最終調用具體的算法。因此,Codec Engine的工作是通過完成VISA API的任務來體現的。整體結構如圖1所示。

 

 

 核心引擎操作如下:
 static string engine_name=“videoenc”;//定義引擎名稱
 Engine_Handle ce;//引擎的句柄
 Engine_Error errorcode;//返回引擎打開的狀態信息
 ce=Engine_open(engine_name,NULL,&Engine_Error);
        //打開引擎
 打開一個編解碼引擎之后,就可以創建、控制、處理、刪除具體的算法實例。VISA接口支持4種數據源的處理,分別是視頻、圖像、語音和音頻。
 VISA API應用如下:
 Engine_Handle ce;//引擎的句柄
 static string alg_name=“h264enc”;//定義編碼模塊名稱
 VIDENC_Handle h264Handle;//編碼器句柄
 H264Handle=VIDENC_create(ce,alg_name,NULL);
1.2 Codec Server
 Codec Server是一個二進制文件,集成了編解碼器、框架組件以及相關的系統代碼,可以使用DSP/BIOS作為內核運行在DSP端。Codec Server類似于一個網頁服務器,包括了對客戶請求(ARM端應用程序對DSP端音視頻算法的調度)進行響應的相關DSP/BIOS任務線程,能夠用于創建編解碼器,同時也提供處理器性能信息。
 Codec Engine和Codec Server間的通信就是RPC(遠過程調用)原理在雙核上的實現。ARM端當成客戶機,訪問DSP服務器的算法;而DSP端被當成服務器,響應ARM端應用程序的請求。
2 系統總體結構
 系統基于達芬奇平臺數字媒體處理器TMS320DM6446進行設計,同時結合128MB DDR2 SDRAM內存、視頻解碼器TVP5150、CCD攝像頭、10M/100M標準以太網芯片。系統框圖如圖2所示。

 在ARM端,使用CCD攝像頭實時采集模擬視頻信號,傳入視頻解碼器TVP5150內進行A/D轉換為數字視頻信號,這部分的采集工作由視頻前端VPFE負責。為了使這些數據能被DSP處理,VPFE需要將RGB格式的原始圖像轉換為YUV格式[2]。然后使用DSPLink模塊與DSP端進行通信,并通過Codec Engine調度DSP端的H.264編碼算法,從而得到已編碼的視頻數據?;赥CP/IP協議,將編碼過的數據通過以太網接口EMAC傳輸至遠程管理軟件管理。同時為了驗證H.264編碼的正確性和編碼的質量,調用DSP端的H.264解碼算法對已編碼視頻數據進行解碼操作,最后通過ARM側的視頻后端VPBE將解碼過的視頻數據送到LCD進行顯示。VPBE能將YUV格式的圖像轉換為LCD支持的NTSC或者PAL格式。UART0接口主要用于系統調試,DDR2則是視頻流數據的交換中心。
3 軟件方案設計
 本設計中,以MontaVista Linux操作系統作為軟件開發平臺,基于Linux下視頻設備驅動程序規范V4L2[3](Video for Linux Two)、幀緩沖機制(Frame Buffer)和多線程技術進行視頻應用程序的設計。多線程是一種多任務、并發的工作方式,能夠提高程序響應及CPU的使用率,并能改善程序的結構。本系統軟件設計為5個線程,分別為主線程、顯示線程、采集線程、視頻線程和控制線程。
3.1 主線程
 主線程用于執行必要的初始化,解析用戶程序提供的命令行參數,并根據這些參數的值產生其他線程。初始化任務主要包括視頻標準檢測,使用了幀緩沖設備驅動程序的ioctl(FBIO_GETSTD);用戶命令行參數解析;Codec Engine初始化;創建顯示、采集和視頻三個線程;調用控制線程的函數ctrlThrFxn(),從而主線程轉變為控制線程。控制線程負責用戶接口,可用于響應鍵盤接口輸入的命令;還能在OSD(On-Screen Display,達芬奇平臺的在屏顯示技術)上顯示和更新文字、圖形,使用setOsdTransparency()函數設置OSD窗口的透明度;同時能夠在OSD上繪制按鈕并對文字著色。具體的流程如圖3所示。

3.2 采集線程
 ARM端的采集線程基于V4L2設備驅動程序來獲取實時的視頻緩沖數據,并傳給視頻線程處理。采集線程的流程如下:
?。?)打開視頻采集設備
 fd=open(“/dev/video0”,O_RDWR|O_NONBLOCK,0);
?。?)初始化設備
 首先,查詢設備的性能,獲取視頻采集設備的capability,辨別是否具有視頻輸入特性。
 struct v4l2_capability cap;
 ret=ioctl(fd,VIDIOC_QUERYCAP,&cap);
 然后,選擇視頻輸入的功能。
 int input;
 input=TVP5146_AMUX_SVIDEO;
 ret=ioctl(fd,VIDIOC_S_INPUT,&input);
 設置視頻制式和幀格式。
 struct v4l2_format fmt;
 fmt.type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
 fmt.fmt.pix.pixelformat=V4L2_PIX_FMT_UYVY;
 fmt.fmt.pix.width=IMAGE_WIDTH;
 fmt.fmt.pix.height=IMAGE_HEIGHT;
 fmt.fmt.pix.field=V4L2_FIELD_INTERLACED;
 ret=ioctl(fd,VIDIOC_S_FMT,&fmt);
?。?)設定數據傳輸方式
 采用內存映射模式。在這種模式下,應用程序和驅動程序之間只有指向視頻數據buffer的指針被交換,數據本身不會被復制,提高了效率。
 (4)實際的采集操作
 V4L2中有兩個隊列:輸入和輸出[4]。先把映射好的內存片段入隊,接著開始采集視頻數據并進入read循環,此時應用程序等待輸出隊列被填滿時可以將內存片段出隊,出隊的數據就是攝像頭采集的視頻數據。將出隊的內存片段處理完后重新入隊列尾,這樣可以循環采集。入隊和出隊操作使用V4L2中的VIDIOC_QBUF和VIDIOC_DQBUF的ioctl()函數調用。
 struct v4l2_buffer v4l2buf;
 ioctl(fd,VIDIOC_DQBUF,&v4l2buf);
      //從采集的數據中獲取一個幀緩沖
 ioctl(fd,VIDIOC_QBUF,&v4l2buf);
      //將采集的幀緩沖發回到設備驅動中
 同時,應用程序可以調用VIDIOC_STREAMON的ioctl()來啟動視頻采集,VIDIOC_STREAMOFF的   ioctl()則用來停止視頻采集。
 type=V4L2_BUF_TYPE_VIDEO_CAPTURE;
 ret=ioctl(fd,VIDIOC_STREAMON,&type);
 ret=ioctl(fd,VIDIOC_STREAMOFF,&type);
?。?)關閉設備
 close(fd);
3.3 視頻線程及其交互
 視頻線程基于Codec Engine機制調用DSP端的視頻編碼算法對該數據進行H.264編碼,經過預測、量化、熵編碼等一系列的操作,大幅減小視頻數據的存儲容量,從而降低視頻傳輸對網絡帶寬的需求。已編碼的視頻數據可以存儲在本地硬盤或者基于TCP/IP協議發送至遠程管理軟件管理。同時為了驗證視頻編碼算法的正確性與質量,調用DSP端H.264解碼算法對已編碼數據進行解碼操作,并且送入顯示線程,使用frame buffer機制將其顯示在LCD屏幕上。詳細的交互流程如圖4所示。

 結合達芬奇TMS320DM6446中ARM和DSP處理器各自的優勢,提出了基于H.264壓縮算法的視頻編碼軟件系統的設計方案,實現視頻采集、視頻編解碼、視頻顯示和網絡傳輸等功能,在以后的工作中將加入行為分析和追蹤等功能,以使系統更加智能。本設計可應用于學校、交通、商業、銀行等多個領域,具有較好的前景。
參考文獻
[1] 王銘銘,方千山,顏佳泉,等.圖像處理和達芬奇技術在紡紗斷線檢測中的應用[J].微型機與應用,2012,31(17):44-45.
[2] HAN Peicen, YE Zhaohui,  YANG Shiyuan. The Design and Implementation of Network Video Surveillance System Based on Davinci Chips[C]. Qingdao China:Advances in Information Technology and Education,2011,201:296-302.
[3] Bill Dirks. Video for Linux Two[EB/OL].(2003-6-26)http://www.thedirks.org/v4l2.
[4] 趙勇,袁譽樂,丁銳.DAVINCI技術原理與應用指南[M].南京:東南大學出版社,2008.

此內容為AET網站原創,未經授權禁止轉載。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          欧美成人免费全部| 久久偷看各类wc女厕嘘嘘偷窃| 国产精品vip| 亚洲欧美国产另类| a4yy欧美一区二区三区| 欧美色图五月天| 日韩一级大片| 国产精品老牛| 国产精品性做久久久久久| 欧美成人tv| 久久综合图片| 欧美精品久久99| 亚洲午夜精品久久久久久app| 玖玖视频精品| 欧美日韩三级在线| 在线亚洲欧美专区二区| 狠狠色2019综合网| 国产欧美日韩一区二区三区在线观看| 久久精品观看| 国产精品久久久久久久久久尿| 亚洲看片免费| 久久国产视频网站| 亚洲一区二区日本| 国产日韩精品视频一区| 国内欧美视频一区二区| 国产精品免费小视频| 国产精品海角社区在线观看| 亚洲综合色自拍一区| 国产欧美 在线欧美| 欧美精品一区二区三区蜜臀| 亚洲精品久久久久久一区二区| 亚洲黄色免费网站| 国产主播一区二区三区四区| 在线成人欧美| 国产日韩欧美一二三区| 欧美无乱码久久久免费午夜一区| 亚洲国产一二三| 欧美女同视频| 在线一区视频| 久久狠狠久久综合桃花| 欧美亚韩一区| 国产欧美日韩中文字幕在线| 亚洲破处大片| 91久久夜色精品国产九色| 亚洲免费一在线| 国产精品欧美在线| 欧美精品亚洲二区| 日韩写真视频在线观看| 午夜精品久久99蜜桃的功能介绍| 欧美精品日韩综合在线| 农夫在线精品视频免费观看| 亚洲男人的天堂在线观看| 国产精品久久久久久户外露出| 亚洲国产精品国自产拍av秋霞| 欧美午夜片在线免费观看| 亚洲人体1000| 一本一道久久综合狠狠老精东影业| 国产一区二区日韩| 国产精品第一页第二页第三页| 国产精品99久久久久久久女警| 99视频在线观看一区三区| 国产一区导航| 亚洲欧洲日韩女同| 伊人一区二区三区久久精品| 亚洲第一搞黄网站| 欧美伊人影院| 国产亚洲欧美日韩精品| 欧美精品一卡二卡| 免费观看30秒视频久久| 欧美一区二视频| 国产精品乱码一区二三区小蝌蚪| 久久亚洲国产成人| 国产精品久久亚洲7777| 国产偷国产偷精品高清尤物| 欧美三级韩国三级日本三斤| 亚洲视频在线观看网站| 99精品国产高清一区二区| 日韩一二在线观看| 在线一区二区视频| 欧美亚一区二区| 亚洲精品国产精品国自产观看浪潮| 国产在线精品一区二区夜色| 欧美日韩专区在线| 一区二区三区av| 黄色国产精品一区二区三区| 国产最新精品精品你懂的| 亚洲国产婷婷香蕉久久久久久| 国产精品美女主播| 欧美一区二区在线视频| 国产精品成人观看视频国产奇米| 亚洲精品日产精品乱码不卡| 欧美精品在线观看| 亚洲午夜精品福利| 红桃视频国产一区| 欧美一级欧美一级在线播放| 欧美成人一区二区在线| 欧美黄色一级视频| 先锋资源久久| 亚洲精品视频二区| 欧美日韩一区在线播放| 国产日韩精品在线播放| 欧美伦理影院| 免费视频一区二区三区在线观看| 欧美一区二区三区四区在线观看| 亚洲激情偷拍| 欧美午夜电影完整版| 亚洲欧美日韩另类精品一区二区三区| 日韩视频在线播放| 亚洲一区三区在线观看| 国产欧美短视频| 日韩视频在线你懂得| 国产欧美激情| 亚洲国产精品热久久| 欧美日韩1区2区3区| 亚洲大片一区二区三区| 欧美人在线视频| 久久精品99| 韩国v欧美v日本v亚洲v| 国产亚洲二区| 欧美成人午夜剧场免费观看| 久久久青草婷婷精品综合日韩| 欧美日韩国产在线播放网站| 欧美日韩亚洲一区二区| 亚洲国产日韩综合一区| 欧美激情精品久久久六区热门| 欧美一激情一区二区三区| 久久久久久婷| 亚洲美女黄色| 欧美一级理论性理论a| 亚洲精品一区二| 久久亚洲高清| 久久天天躁夜夜躁狠狠躁2022| 久久嫩草精品久久久久| 欧美视频在线观看一区二区| 国产一区二区三区久久久| 亚洲欧美在线网| 国产一区二区三区直播精品电影| 欧美精品1区2区| 亚洲综合视频一区| 亚洲激情在线观看| 亚洲精品在线免费| 久久精品欧美日韩| 国产主播喷水一区二区| 欧美精品一区二区三区久久久竹菊| 美女精品国产| 久久免费国产精品| 免费高清在线一区| 亚洲激情社区| 久久蜜桃av一区精品变态类天堂| 欧美一区二区三区视频在线| 亚洲经典自拍| 在线精品在线| 欧美国产日本韩| 欧美在线综合视频| 亚洲自拍偷拍视频| 国产精品嫩草久久久久| 一区二区三区日韩在线观看| 欧美一区二视频在线免费观看| 久久久久久久综合狠狠综合| 欧美第一黄色网| 国产午夜亚洲精品羞羞网站| 久久精品国产清自在天天线| 日韩一级大片| 国产亚洲欧洲| 欧美在线视频导航| 国内外成人在线视频| 欧美诱惑福利视频| 欧美在线91| 国产精品一区久久久久| 亚洲日产国产精品| 亚洲国产精品福利| 国产日韩欧美综合| 99re6这里只有精品视频在线观看| 亚洲精选一区| 亚洲系列中文字幕| 国产午夜精品久久久久久免费视| 激情伊人五月天久久综合| 好吊色欧美一区二区三区视频| 日韩视频在线免费| 国产欧美在线观看| 久久精品亚洲精品国产欧美kt∨| 午夜久久福利| 亚洲国产成人久久| 亚洲午夜伦理| 欧美激情一区二区三区| 欧美日韩国产精品专区| 久久精品亚洲一区二区| 亚洲欧美变态国产另类| 久久精品国产v日韩v亚洲| 国产日韩精品久久| 久久久蜜臀国产一区二区| 在线日韩中文字幕| 欧美精品自拍偷拍动漫精品| 日韩视频在线观看一区二区| 一区视频在线播放| 久久久国产91| 香蕉成人啪国产精品视频综合网| 在线午夜精品| 亚洲免费视频成人| 欧美成人一区二免费视频软件| 91久久久久久久久久久久久| 欧美日韩免费一区二区三区| 美女黄毛**国产精品啪啪| 国产免费成人av| 久久久国产精品一区二区中文| 99精品99久久久久久宅男| 欧美性色综合| 亚洲欧美日韩第一区| 一区二区精品国产| 99精品欧美一区| 欧美天堂亚洲电影院在线观看| 欧美日韩一区二区在线视频| 在线亚洲激情| 美女精品一区| 亚洲婷婷综合色高清在线| 国产亚洲激情视频在线| 亚洲高清视频在线| 亚洲啪啪91| 夜夜嗨一区二区三区| 一区二区三区日韩精品| 亚洲乱码国产乱码精品精98午夜| 国产一区二区三区久久久| 久久夜色精品亚洲噜噜国产mv| 国产一区av在线| 久久综合九色综合网站| 欧美一区日本一区韩国一区| 快射av在线播放一区| 欧美日韩综合在线| 国产美女精品一区二区三区| 国产一区二区三区av电影| 欧美二区在线| 久久久亚洲综合| 欧美一区三区三区高中清蜜桃| 国产精品卡一卡二| 亚洲午夜黄色| 国产色爱av资源综合区| 亚洲日本视频| 国内精品久久久| 午夜视频一区| 中文在线资源观看视频网站免费不卡| 在线播放亚洲一区| 午夜精品久久久久久久久久久久| 国外成人免费视频| 亚洲人成免费| 欧美激情1区| 麻豆成人av| 巨乳诱惑日韩免费av| 亚洲一区二区精品视频| 国产日韩欧美亚洲| 六月丁香综合| 伊人久久大香线| 国产精品一区二区三区观看| 亚洲午夜一二三区视频| 国产精品久久久久av| 国产精品丝袜白浆摸在线| 最新成人在线| 国产揄拍国内精品对白| 久久精品日产第一区二区三区| 狠狠爱www人成狠狠爱综合网| 亚洲一级高清| 一本色道久久综合狠狠躁的推荐| 在线免费观看日本一区| 欧美激情精品久久久久久变态| 中日韩男男gay无套| 亚洲欧洲一区二区在线观看| 欧美国产一区视频在线观看| 国产精品成人av性教育| 亚洲国产aⅴ天堂久久| 国产精品v欧美精品v日韩精品| 欧美另类变人与禽xxxxx| 国产精品一级| 小黄鸭精品密入口导航| 精品成人在线视频| 久久中文精品| 欧美福利专区| 欧美日韩一二三四五区| 欧美日韩专区在线| 欧美国产日韩亚洲一区| 一区二区高清视频在线观看| 欧美日韩第一页| 午夜精品三级视频福利| 国产精品日韩欧美一区二区三区| 99视频一区| 亚洲深夜影院| 久久久免费观看视频| 欧美一区三区三区高中清蜜桃| 欧美亚洲专区| 在线视频精品一区| 欧美精品 国产精品| 一区二区在线观看视频| 欧美视频在线观看一区二区| 一区二区三区蜜桃网| 欧美一区二区三区视频免费播放| 国内精品久久久久国产盗摄免费观看完整版| 欧美高清在线视频观看不卡| 国产精品日韩久久久| 国产精品一区亚洲| 欧美区一区二| 亚洲精品在线一区二区| 久久国产夜色精品鲁鲁99| 久久久久国产一区二区三区| 欧美激情aⅴ一区二区三区| 久久成人这里只有精品| 久久综合九色九九| 欧美视频在线观看视频极品| 亚洲国产日韩一区二区| 先锋影音国产精品| 91久久夜色精品国产九色| 99视频有精品| 国产九区一区在线| 国产在线视频欧美| 久久久久久欧美| 欧美丝袜一区二区三区| 狠狠爱成人网| 久久精品理论片| 午夜亚洲性色福利视频| 久久狠狠久久综合桃花| 欧美日韩免费网站| 欧美激情片在线观看| 国产午夜亚洲精品不卡| 好吊成人免视频| 国产一区在线观看视频| 国产精品日本| 久久久久久久久久码影片| 亚洲女人av| 久久香蕉国产线看观看网| 欧美日韩在线视频观看| 欧美日韩第一区|