《電子技術應用》
您所在的位置:首頁 > 模擬設計 > 設計應用 > 基于TMS320DM355的VGA視頻采集系統的設計與實現
基于TMS320DM355的VGA視頻采集系統的設計與實現
摘要: 本文提出了以TMS320DM355為核心,對VGA信號進行實時采集及顯示的系統方案。系統采用AD9883芯片將VGA信號數字化,利用FPGA芯片進行時序轉換,修改了DM355的視頻處理前端的驅動,最后利用linux操作系統提供的V4L2,編寫應用程序,實現VGA數據的實時采集,編碼傳輸。
Abstract:
Key words :

  一、 引言

  隨著計算機的廣泛使用,對輸出的VGA信號進行實時監控、存儲及傳輸的應用需求越來越迫切。本文基于Ti公司的TMS320DM355處理器(簡稱DM355)、AD公司的AD9883芯片,結合FPGA技術,提出了一種支持分辨率較高、性能優良的視頻信號采集和接口電路方案。

  該系統對計算機輸出的XGA(1024x768)信號進行實時采集、編碼、傳輸,同時利用ADV7123芯片將VGA信號還原,在本地的顯示器進行輸出,主要應用于視頻會議,視頻教學系統中。由于VGA信號的采集涉及到AD9883[1] [2]芯片和FPGA中信號時序的轉換,及DM355的視頻處理前端(VPFE:Video Processing Front End)驅動的修改,比較復雜,本文將對此作重點闡述。

  二、 系統整體設計

  1. 方案選擇

  本文采用TI公司的達芬奇系列芯片TMS320DM355來實現,這一方案的優點在于:

  1)DM355內部集成了ARM926EJ-S內核、協處理器(MJCP)、視頻處理子系統及多種外設。ARM中移植嵌入式linux后可構成一個良好的基于網絡的嵌入式產品開發平臺,能方便的實現Web服務器的構建和功能的擴展。協處理器(MJCP)可實現對多媒體數據的編解碼。

  2)DM355是一款低功耗的芯片,待機功耗僅為1mW,其電池的使用壽命是當今業界相當的便攜式產品的2倍。

  3)DM355是TI公司的一款中低檔芯片,在滿足性能要求的同時,其價格與同類芯片相比也很有優勢。因此,廣泛應用于數碼相機,IP攝像機,數碼相片,醫學成像及視頻監控系統中。

  DM355的視頻處理子系統包括視頻處理前端(VPFE)和視頻處理后端(VPBE:Video Processing Back End),視頻處理前端[3]用于接收外部傳感器或視頻譯碼器等輸入的圖像信息,由CCD控制器、硬件圖像信號處理器、自動曝光/聚焦模塊H3A和寄存器組成,支持的視頻輸入格式有如下三種:

  1) RAW格式。

  2) BT.656格式。

  3) YUV格式。

  其中,RAW格式對于每個像素點只存儲RGB三原色中某一種顏色的值,在進行色彩還原時因插值運算會導致莫爾紋效應;BT.656格式支持的視頻分辨率太低,因此,本系統的DM355處理器的視頻處理前端采用YUV格式進行視頻采集,須將VGA信號通過硬件電路轉換為YUV信號格式。

  2. 系統總體設計

  圖1所示為VGA視頻采集系統框圖。

  

圖1 VGA視頻采集系統框圖

  1)VGA輸入模塊。將RGB模擬信號及行同步信號(Hsync)、場同步信號(Vsync)輸入給A/D轉換模塊。由于該模塊由模擬電路組成,易產生噪聲,因此布線時接口器件應盡量靠近A/D轉換芯片。

  2)A/D轉換模塊。首先根據行、場同步信號確定采樣的行頻和場頻,接著由行頻和內部寄存器確定像素同步時鐘,然后通過配置AD9883芯片內部的鎖相環(PLL)產生同步時鐘。該模塊可將輸入的VGA模擬信號轉換為8bit×3路的數字視頻信號,并通過一系列寄存器調整圖像的采樣效果。

  3) FPGA轉換控制模塊。一方面FPGA通過I2C總線向AD9883的寄存器寫入控制信息;另一方面將輸入的RGB信號轉換為DM355支持的YUV信號格式,將視頻信號送給DM355的視頻采集前端。

  4)D/A輸出顯示模塊。該模塊采用ADV7123芯片將8bit×3路RGB數字信號還原為模擬信號,并結合行、場同步信號構成VGA信號,供本地計算機顯示輸出。

  三、 系統硬件設計

  1.VGA接口

  VGA是一種D型接口,可傳輸VGA,SVGA,XGA,SXGA等圖像格式。VGA接口共有15條線,分為3組:一是RGB三色模擬信號輸入線;二是RGB三色地線,接地處理;三是時序信號線,分別是行同步信號線(Horizon Synchronizing,HS)和場同步信號線(Vertical Synchronizing,VS),這兩條線控制了VGA的顯示時序。

  顯示器采用逐行掃描的方式進行掃描,陰極射線槍發出的電子束打在涂有熒光粉的屏幕上,產生RGB三基色,由此合成一個彩色圖像。VGA顯示可分為行掃描和場掃描,從屏幕左上方開始掃描,從左到右,由上至下。每行掃描結束時,用行同步信號進行行同步;當整個屏幕的所有行掃描結束后,用場同步信號進行場同步,如圖2所示。在掃描過程中,CRT對電子束進行消隱控制,在消隱過程中不發送電子束。在每行結束后,電子槍回掃的過程進行行消隱;在每場結束后,電子槍回掃的過程進行場消隱,整個屏幕變黑,光柵在這段內重新回到屏幕的左上角,開始下一幀圖像的掃描。

  

圖2 VGA掃描時序

  2. A/D轉換模塊

  本系統的A/D轉換器采用AD9883,該芯片專門用于采集模擬R,G,B信號,將其數字化顯示或作為中間轉換器件使用。該芯片具有采樣精度為8bit×3路通道,最高采樣率為140MSPS/s,300MB的模擬帶寬,支持最高分辨率為SXGA(1280x1024),刷新率為75Hz的視頻信號。基于AD9883的電路可為高清電視提供良好的接口,或作為高性能視頻設備的前端掃描轉換器,它的內部結構如圖3所示,主要包括A/D轉換電路、時鐘產生電路、同步信號產生電路、I2C總線接口四個部分。

  

圖3 AD9883的內部結構圖

  AD9883內部的寄存器通過I2C總線完全可編程,芯片按照寄存器設定的模式進行工作。如AD9883支持多種VGA格式,但不能自動檢測實現自適應,需要通過I2C接口進行寄存器配置,指定芯片采集的視頻格式。

  經AD9883轉換后,數字視頻信號輸出的時序如圖4所示。在數據輸出時鐘DATACK的下降沿對應信號的采樣及量化,量化的數據在時鐘上升沿穩定的輸出;接口電路可在DATACK的上升沿準確地鎖存圖像數據,從而實現數字化圖像的采集。值得注意的是,AD9883有一個數據輸出通道,在輸出數據有效之前必須清空通道,從而導致每行輸出有效數據之前將輸出4組無效的數據,可通過行同步信號HSOUT避免輸出這些無效數據。

  

圖4 AD9883數據輸出時序圖

  一、 引言

  隨著計算機的廣泛使用,對輸出的VGA信號進行實時監控、存儲及傳輸的應用需求越來越迫切。本文基于Ti公司的TMS320DM355處理器(簡稱DM355)、AD公司的AD9883芯片,結合FPGA技術,提出了一種支持分辨率較高、性能優良的視頻信號采集和接口電路方案。

  該系統對計算機輸出的XGA(1024x768)信號進行實時采集、編碼、傳輸,同時利用ADV7123芯片將VGA信號還原,在本地的顯示器進行輸出,主要應用于視頻會議,視頻教學系統中。由于VGA信號的采集涉及到AD9883[1] [2]芯片和FPGA中信號時序的轉換,及DM355的視頻處理前端(VPFE:Video Processing Front End)驅動的修改,比較復雜,本文將對此作重點闡述。

  二、 系統整體設計

  1. 方案選擇

  本文采用TI公司的達芬奇系列芯片TMS320DM355來實現,這一方案的優點在于:

  1)DM355內部集成了ARM926EJ-S內核、協處理器(MJCP)、視頻處理子系統及多種外設。ARM中移植嵌入式linux后可構成一個良好的基于網絡的嵌入式產品開發平臺,能方便的實現Web服務器的構建和功能的擴展。協處理器(MJCP)可實現對多媒體數據的編解碼。

  2)DM355是一款低功耗的芯片,待機功耗僅為1mW,其電池的使用壽命是當今業界相當的便攜式產品的2倍。

  3)DM355是TI公司的一款中低檔芯片,在滿足性能要求的同時,其價格與同類芯片相比也很有優勢。因此,廣泛應用于數碼相機,IP攝像機,數碼相片,醫學成像及視頻監控系統中。

  DM355的視頻處理子系統包括視頻處理前端(VPFE)和視頻處理后端(VPBE:Video Processing Back End),視頻處理前端[3]用于接收外部傳感器或視頻譯碼器等輸入的圖像信息,由CCD控制器、硬件圖像信號處理器、自動曝光/聚焦模塊H3A和寄存器組成,支持的視頻輸入格式有如下三種:

  1) RAW格式。

  2) BT.656格式。

  3) YUV格式。

  其中,RAW格式對于每個像素點只存儲RGB三原色中某一種顏色的值,在進行色彩還原時因插值運算會導致莫爾紋效應;BT.656格式支持的視頻分辨率太低,因此,本系統的DM355處理器的視頻處理前端采用YUV格式進行視頻采集,須將VGA信號通過硬件電路轉換為YUV信號格式。

  2. 系統總體設計

  圖1所示為VGA視頻采集系統框圖。

  

圖1 VGA視頻采集系統框圖

  1)VGA輸入模塊。將RGB模擬信號及行同步信號(Hsync)、場同步信號(Vsync)輸入給A/D轉換模塊。由于該模塊由模擬電路組成,易產生噪聲,因此布線時接口器件應盡量靠近A/D轉換芯片。

  2)A/D轉換模塊。首先根據行、場同步信號確定采樣的行頻和場頻,接著由行頻和內部寄存器確定像素同步時鐘,然后通過配置AD9883芯片內部的鎖相環(PLL)產生同步時鐘。該模塊可將輸入的VGA模擬信號轉換為8bit×3路的數字視頻信號,并通過一系列寄存器調整圖像的采樣效果。

  3) FPGA轉換控制模塊。一方面FPGA通過I2C總線向AD9883的寄存器寫入控制信息;另一方面將輸入的RGB信號轉換為DM355支持的YUV信號格式,將視頻信號送給DM355的視頻采集前端。

  4)D/A輸出顯示模塊。該模塊采用ADV7123芯片將8bit×3路RGB數字信號還原為模擬信號,并結合行、場同步信號構成VGA信號,供本地計算機顯示輸出。

  三、 系統硬件設計

  1.VGA接口

  VGA是一種D型接口,可傳輸VGA,SVGA,XGA,SXGA等圖像格式。VGA接口共有15條線,分為3組:一是RGB三色模擬信號輸入線;二是RGB三色地線,接地處理;三是時序信號線,分別是行同步信號線(Horizon Synchronizing,HS)和場同步信號線(Vertical Synchronizing,VS),這兩條線控制了VGA的顯示時序。

  顯示器采用逐行掃描的方式進行掃描,陰極射線槍發出的電子束打在涂有熒光粉的屏幕上,產生RGB三基色,由此合成一個彩色圖像。VGA顯示可分為行掃描和場掃描,從屏幕左上方開始掃描,從左到右,由上至下。每行掃描結束時,用行同步信號進行行同步;當整個屏幕的所有行掃描結束后,用場同步信號進行場同步,如圖2所示。在掃描過程中,CRT對電子束進行消隱控制,在消隱過程中不發送電子束。在每行結束后,電子槍回掃的過程進行行消隱;在每場結束后,電子槍回掃的過程進行場消隱,整個屏幕變黑,光柵在這段內重新回到屏幕的左上角,開始下一幀圖像的掃描。

  

圖2 VGA掃描時序

  2. A/D轉換模塊

  本系統的A/D轉換器采用AD9883,該芯片專門用于采集模擬R,G,B信號,將其數字化顯示或作為中間轉換器件使用。該芯片具有采樣精度為8bit×3路通道,最高采樣率為140MSPS/s,300MB的模擬帶寬,支持最高分辨率為SXGA(1280x1024),刷新率為75Hz的視頻信號。基于AD9883的電路可為高清電視提供良好的接口,或作為高性能視頻設備的前端掃描轉換器,它的內部結構如圖3所示,主要包括A/D轉換電路、時鐘產生電路、同步信號產生電路、I2C總線接口四個部分。

  

圖3 AD9883的內部結構圖

  AD9883內部的寄存器通過I2C總線完全可編程,芯片按照寄存器設定的模式進行工作。如AD9883支持多種VGA格式,但不能自動檢測實現自適應,需要通過I2C接口進行寄存器配置,指定芯片采集的視頻格式。

  經AD9883轉換后,數字視頻信號輸出的時序如圖4所示。在數據輸出時鐘DATACK的下降沿對應信號的采樣及量化,量化的數據在時鐘上升沿穩定的輸出;接口電路可在DATACK的上升沿準確地鎖存圖像數據,從而實現數字化圖像的采集。值得注意的是,AD9883有一個數據輸出通道,在輸出數據有效之前必須清空通道,從而導致每行輸出有效數據之前將輸出4組無效的數據,可通過行同步信號HSOUT避免輸出這些無效數據。

  

圖4 AD9883數據輸出時序圖

  3.FPGA設計

  本系統采用EP1C3T144C8將輸入的數字化的RGB信號轉換為YUV信號,送給DM355的視頻采集前端。FPGA以AD9883輸出的像素時鐘PCLK作為全局同步時鐘。

  RGB和YUV是兩種常用的色彩空間。RGB色彩空間是采用R,G,B三個色彩分量來表示一個像素,常見的RGB格式有RGB565、RGB555、RGB24,本文中AD9883轉換輸出的數據格式為RGB24,即每個像素用24位表示,RGB分量各使用8位。

  YUV色彩空間是視頻傳輸中常采用的一種方法,其特點為亮度信號與色差信號分離。Y表示亮度信息,U表示藍色色差(即藍色信號與亮度信號的差值),V表示紅色色差(即紅色信號與亮度信號的差值)。常見的YUV格式有YUV 4:4:4,YUV4:2:2,YUV4:2:0,本系統中DM355的視頻處理前端接收的采集信號格式為YUV4:2:2。該格式為每個像素保留Y分量,而UV分量在水平方向上每兩個像素采樣一次,在圖像數據流中,YUV分量排列如下:Y0 U0 Y1 V0 Y2 U1 Y3 V1 Y4 U2 Y5 V2 … …

  圖5所示為FPGA進行色彩轉換的工作框圖,該模塊將輸入的8bit×3路RGB信號轉換為16bit的YUV信號。在YUV 16Bit的工作模式下,在一個時鐘周期內,高八位用于間隔傳遞U分量或V分量,低8位用于傳輸Y分量。

  

圖5 FPGA芯片色彩轉換框圖

  除色彩空間的轉換外,FPGA模塊將像素同步時鐘及行、場同步信號送給A /D轉換模塊及DM355處理器,方便其他模塊進行信號同步操作。

  4.D/A輸出顯示設計

  本設計采用ADV7123作為視頻轉換芯片,將數字視頻信號轉換為VGA模擬信號,供本地計算機顯示輸出。ADV7123具有三路高速、10位輸入的視頻DA轉換器,具有330Mhz的最大采樣速度,與多種高精度的顯示系統兼容,可充分滿足本系統的轉換需求。當RGB三通道的輸入比特數少于10位時,可將高位用于數據比特傳輸,低位接地處理。ADV7123芯片產生三路模擬輸出后,結合FPGA傳來的行、場同步信號完成視頻的顯示。

  四、 系統軟件設計

  1. FPGA軟件設計

  FPGA[4]模塊的軟件設計主要實現以下3方面的功能:

  1)I2C接口配置

  在上一小節中提到,AD9883芯片內部的寄存器通過I2C總線完全可編程,本小節將講述FPGA通過I2C接口對這些寄存器的具體配置。通過這些具體參數的配置,可實現對AD9883視頻采集格式、視頻轉換效果等的控制。

  AD9883內部共25個寄存器,其中00H和14H為只讀寄存器,15~18H為測試用寄存器,01H~13H為功能寄存器。FPGA芯片對主要功能寄存器的配置如表1所示:

 

1 AD9883寄存器配置

 

功能

寄存器

配置值

鎖相環分頻控制

01H

F0H

時鐘產生器控制

03H

70H

04H

80H

箝位控制

05H

09H

 

 

增益和偏置控制

08H

90H

09H

90H

0aH

90H

0bH

80H

0cH

80H

0dH

80H

 

  2)RGB與YUV的轉換

  本系統中的FPGA模塊的另一功能是將RGB信號轉換為YUV信號,二者轉換的公式為(RGB取值范圍均為0-255):

  (式 1)

  由于FPGA芯片進行浮點運算時,運算步驟繁瑣并且硬件資源消耗較大,故將式1中的參數均乘以256后取整,轉換如下:

  (式2)

  經過運算后,得到式2中的Y’,U’,V’分量后,分別取數據的高八位即為Y,U,V分量的實際值。

  3)VPFE接口時序的實現

  由于AD9883芯片輸出的同步信號與DM355要求的輸入同步信號格式不匹配,因此需要將同步信號進行轉換。AD9883芯片輸出的同步信號周期包括行消隱前肩、行消隱后肩、同步信號和圖像數據四個部分,而實際傳輸給DM355的視頻處理前端的信號僅包括同步信號和圖像數據兩個部分,因此需要對信號周期進行轉換,如圖6所示。

  

圖6 VGA行、場同步時序示意圖

  2.DM355軟件設計

  1)視頻處理前端驅動的修改

  為了采集轉換后的YUV信號,本文對DM355的視頻處理前端的驅動進行了修改,配置視頻采集設備的工作模式為YUV輸入模式。主要修改的驅動文件為dm355_vpfe.c,部分代碼解析如下:

  static vpfe_obj vpfe_device_ycbcr = {

  ……

  .vwin = {0,0,1024,768},//VPFE_WIN_VGA,

  .bounds = {0,0,1024,768},//VPFE_WIN_VGA,

  //設置采集的YUV信號的分辨率

  .pixelaspect = VPFE_PIXELASPECT_NTSC,

  .pixelfmt = V4L2_PIX_FMT_UYVY,

  .field = V4L2_FIELD_NONE,

  //設置V4L2的工作模式為逐行掃描格式

  ……

  .capture_device = TVP5146,

  .ccdc_params_ycbcr = {

  .pix_fmt = CCDC_PIXFMT_YCBCR_16BIT,

  //采用16位數據總線傳輸YUV信號

  ……

  .bt656_enable = FALSE,

  //不采用BT.656采集模式

  .pix_order = CCDC_PIXORDER_CBYCRY,

  .buf_type = CCDC_BUFTYPE_FLD_SEPARATED

  //該設置相對于CCDC_BUFTYPE_FLD_INTERLEAVED而言,設置buffer為獨立的

  },

  .tvp5146_params = {

  .mode = TVP5146_MODE_AUTO,

  .amuxmode = TVP5146_AMUX_COMPOSITE,

  .enablebt656sync = FALSE,

  //不采用BT.656同步模式

  .data_width = TVP5146_WIDTH_16BIT

  //數據總線寬度為16bit

  },

  .irqlock = SPIN_LOCK_UNLOCKED

  };

  2)視頻信號采集程序設計

  在DM355的應用程序設計中,視音頻數據的采集、編碼、輸出分別通過Capture Thread,Video Thread, Writer Thread獨立線程來實現。其中,視頻采集線程的主要作用是對采集設備進行初始化,開辟緩沖區,以幀為單位往其中寫入數據,為Video Thread做準備。

  視頻采集程序通過調用V4L2[5](Video For Linux 2)來實現,V4L2是Linux中提供的關于視頻設備的內核驅動,它為針對視頻設備的應用程序變成提供一系列的接口函數,如VIDIOC_REQBUFS,分配內存;VIDIOC_QUERYBUF,將VIDIOC_REQBUFS中分配的數據緩存轉換成物理地址;VIDIOC_QUERYCAP,查詢采集設備功能;VIDIOC_S_FMT,設置當前驅動的視頻捕獲格式;VIDIOC_STREAMON,開始視頻采集等。

  

圖7采集設備初始化流程圖

  圖7為視頻采集線程對采集設備進行初始化的流程圖。在Linux中,視頻采集設備的設備文件名為/dev/video0,可通過函數open(“/dev/video0”, O_RDWR | O_NONBLOCK, 0)來打開視頻設備。打開設備文件后,利用ioctl函數,設置不同的V4L2參數,來調用底層的V4L2驅動程序,獲取視頻采集設備的參數,根據實際應用需求設置視頻格式,同時為采集設備分配幀緩沖區, 并將該緩沖區映射到用戶空間。這樣,當緩沖區中存儲了一幀視頻數據后,VIDIOC_DQBUF就把數據從緩沖區中讀取出來,VIDIOC_DQBUF把數據放入視頻數據緩存隊列繼續下一幀的采集。當接收到結束采集命令時,通過ioctl函數發送VIDIOC_STREAMOFF命令,停止視頻采集。

  五、系統測試和結束語

  本系統對VGA信號采集成功后,利用MPEG4算法進行編碼,并利用開源的JRTP庫實現網絡傳輸功能,客戶端可實時觀看和存儲接收到的碼流。在進行VGA信號采集編碼的同時,可利用ADV7123芯片將VGA信號還原,在本地的顯示器進行輸出。經過實驗測試,本系統具有較好的實時性,解碼后的圖像主觀質量也很好。

  本文提出的基于TMS320DM355處理器,采用AD9883和ADV7123轉換芯片,結合FPGA技術的VGA信號采集方案,能夠對XGA信號進行實時采集。該系統可廣泛應用于雷達、天氣預報、航空航天、通信等領域的圖像數據實時記錄。

  【參考文獻】

  [1] Analog Devices.AD9883A/AD9883A Data sheet[EB/OL].2007. http://www.analog.com/static /imported- files/data_sheets/ AD9883A.pdf.

  [2] 胡建民,郭太良,林志賢。 AD9883 在平板顯示視頻接口中的應用[J]。現代電子技術, 2007(2):25-27.

  [3] Texas Instruments Incorporated. TMS320DM35x digital media system-on-chip video processing front end (VPFE) RG spruf71a[EB/OL]。[2009-08-10]。 http://focus.ti.com/lit/ug /spruf71a/spruf71a.pdf 。

  [4] 朱文偉,許忠仁,基于FPGA 的V GA 圖像控制器的設計與實現[J ] 。 貴州大學學報:自然科學版,2009 ,30 (2) :109- 111.

  [5] SCHIMEK Michael H,DIRKS Bill,VERKUIL Hans,et al. Video for Linux Two API specification [EB/OL]。 [2009-10-20].http://www.soezblog.com/plate/web/bookmarkmsg.jsp?UI =cherng64&CI =368&p =1&BI=199102.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 2022麻豆福利午夜久久 | 久久成人a毛片免费观看网站 | 成人h网站在线观看 | 欧美色图五月天 | 免费观看www视频 | 黄色短视频在线播放 | 插插插日日日 | 中国国产一国产一级毛片视频 | 国产一级在线 | 欧美一级中文字幕 | 久久久99精品久久久 | 精品久久久久久中文字幕一区 | 国产性一交一乱一伦一色一情 | 日本国产精品 | 国产精品视频第一区二区三区 | 黄视频网址| 日本一区二区三区四区 | 久久网站免费 | 美女一区二区在线观看 | 99精品国内不卡在线观看 | 97国内精品久久久久久久影视 | 五月婷婷网址 | 成人欧美精品一区二区不卡 | 日韩欧美视频一区二区在线观看 | 成人精品免费网站 | 视频1区 | 青久久 | 午夜国产精品视频 | 久草国产精品 | 99爱免费观看视频在线 | 欧美精品1区2区 | 激情五月网站 | 日韩亚洲综合精品国产 | 99久久精品国产亚洲 | 97视频在线观看免费播放 | 日韩视频欧美视频 | 国产一区二区三区精品久久呦 | 热久久网站 | 丁香花在线高清免费观看 | 久久男女 | 国产精品成人一区二区三区 |