AXI4S視頻IP介紹及系統(tǒng)設(shè)計(jì)指南(一)
本文主要介紹使用AXI4S(AXI4-Stream)接口的視頻IP細(xì)節(jié)。
介紹
本文總結(jié)了AXI4S接口視頻協(xié)議,該協(xié)議在視頻IP中的應(yīng)用,其中AXI協(xié)議參考:
對(duì)于做過(guò)BT.1120總線的,這部分學(xué)習(xí)起來(lái)一點(diǎn)問(wèn)題沒(méi)有,只不過(guò)信號(hào)名稱稍微修改了一下。
1.1 AXI4-Stream 信號(hào)接口
AXI4S攜帶實(shí)際的視頻數(shù)據(jù)(無(wú)行場(chǎng)消隱),由主機(jī)和從機(jī)接口驅(qū)動(dòng),如Figure 1-1所示。
Figure 1‐1:具有多個(gè)AXI4S從(輸入)和主(輸出)接口的視頻IP
空白時(shí)段(行場(chǎng)消隱)、音頻數(shù)據(jù)和輔助數(shù)據(jù)包不會(huì)通過(guò)AXI4-Stream上的視頻協(xié)議傳輸。Table 1-1 和Table 1-2 中列出AXI4S接口視頻IP需要的所有信號(hào)。
Table 1-1 顯示了輸入(從)側(cè)連接器的接口信號(hào)名稱和功能。為了避免命名沖突,對(duì)于具有多個(gè)AXI4S輸入接口的IP,信號(hào)前綴s_axis_video應(yīng)該附加到s_axis_videok,其中k是各個(gè)輸入AXI4S的索引;例如,對(duì)于流0,axis_video_tvalid變?yōu)閟_axis_video0_tvalid,對(duì)于流1,變?yōu)閟_axis_video1_tvalid。
Table 1‐1:AXI4S視頻協(xié)議輸入(從機(jī))接口信號(hào)
Table 1-2 顯示了輸出(主)側(cè)的接口信號(hào)名稱和功能。類似地,對(duì)于具有多個(gè)AXI4-Stream輸出接口的IP,信號(hào)前綴m_axis_video應(yīng)該附加到m_axis_videok 之后,其中k是各個(gè)輸出AXI4-Stream的索引;例如,對(duì)于流0,axis_video_tvalid變?yōu)閙_axis_video0_tvalid,對(duì)于流1,變?yōu)閙_axis_video1_tvalid。
Table 1‐2:AXI4S視頻協(xié)議輸出(主機(jī))接口信號(hào)
1.1.1 READY/VALID 握手
每當(dāng)就緒(READY)、有效(VALID)、ACLKEN和ARESETn信號(hào)在ACLK的上升沿為高電平時(shí),就會(huì)發(fā)生有效傳輸,如Figure 1-2所示。
Figure 1‐2:就緒/有效握手示例,新幀開(kāi)始
在有效傳輸期間,數(shù)據(jù)僅攜帶有效視頻數(shù)據(jù)。AXI4S上的視頻不會(huì)傳輸空白時(shí)段(行場(chǎng)消隱)和輔助數(shù)據(jù)包。
1.1.2 幀開(kāi)始信號(hào)(start of frame (SOF))
幀開(kāi)始(SOF)信號(hào)通過(guò)AXI4S TUSER0信號(hào)進(jìn)行物理傳輸,表示視頻場(chǎng)或幀的第一個(gè)像素。SOF脈沖是一個(gè)有效的事務(wù)寬度,并且必須與場(chǎng)或幀的第一個(gè)像素一致(Figure 1-2).SOF充當(dāng)幀同步信號(hào),允許下游內(nèi)核重新初始化,并檢測(cè)場(chǎng)或幀的第一個(gè)像素。
1.1.3 行尾信號(hào)(End of Line Signal)
行尾(The end of line,EOL)信號(hào)通過(guò)AXI4S TLAST信號(hào)進(jìn)行物理傳輸,表示一行的最后一個(gè)像素。EOL脈沖是一個(gè)有效的事務(wù)寬度,并且必須與掃描線的最后一個(gè)像素一致(Figure 1-3).
Figure 1‐3:EOL和SOF信號(hào)的使用
1.2 數(shù)據(jù)格式
為了傳輸視頻數(shù)據(jù),數(shù)據(jù)格式對(duì)物理數(shù)據(jù)信號(hào)的邏輯信道子集進(jìn)行編碼。視頻模塊之間的AXI4S接口可以有助于使用不同精度(例如,每個(gè)顏色通道8、10或12位)和/或不同格式(例如,RGB或YUV 420)以及每個(gè)數(shù)據(jù)拍不同數(shù)量的像素來(lái)傳輸視頻。
總結(jié)就是,數(shù)據(jù)格式通過(guò)AXIS接口的TDATA信號(hào)線傳輸,根據(jù)傳輸?shù)囊曨l格式改變信號(hào)線的寬度。
1.2.1 AXI4-Stream 特定參數(shù)化
視頻IP配置參數(shù)在第3章的IP參數(shù)化中描述。AXI4S接口視頻協(xié)議的具體參數(shù)在Table 1-3中列出。
Table 1‐3:AXI4-Stream 特定參數(shù)化
C_tk_AXIS_TDATA_WIDTH參數(shù)確定AXI4S接口tk上可變寬度接口信號(hào)TDATA的寬度,其中接口類型t可以具有指定主或從接口的值[m,s],而可選整數(shù)k指定接口ID。通常,C_tk_AXIS_TDATA_WIDTH是分量數(shù)據(jù)寬度、每個(gè)數(shù)據(jù)拍的像素/樣本數(shù)以及實(shí)際視頻格式使用的分量數(shù)的函數(shù)。
組件數(shù)據(jù)寬度的推薦參數(shù)名稱是C_tk_DATA_WIDTH??蛇x的格式參數(shù)C_tk_VIDEO_FORMAT可以幫助IP使用HDL函數(shù)確定數(shù)據(jù)中存在的顏色成分的數(shù)量。視頻IP通常在輸入接口上需要特定的格式,并且可以在IP中硬編碼顏色分量通道的數(shù)量。然而,當(dāng)C_tk_VIDEO_FORMAT(由主接口上的默認(rèn)值設(shè)置)在HDL設(shè)計(jì)中傳播到從接口時(shí),IP源代碼可以使用斷言執(zhí)行DRC,以確保AXI4S視頻接口由以預(yù)期格式編碼的視頻驅(qū)動(dòng)。
1.2.1 編碼
數(shù)據(jù)位使用[N-1:0]位編號(hào)慣例(N-1至0)表示。數(shù)據(jù)的隱式子字段的組成部分應(yīng)該緊密地打包在一起;例如,DW=10位RGB數(shù)據(jù)打包成30位。如有必要,打包后的數(shù)據(jù)字應(yīng)使用最高有效位(msb)進(jìn)行零填充,使數(shù)據(jù)寬度使是8的倍數(shù)整數(shù),如Figure 1-4所示。
Figure 1‐4:多像素TDATA的視頻數(shù)據(jù)填充
不同格式的詳細(xì)表示在Table 1-4中列出,其中DW = C_DATA_WIDTH,VF = C_VIDEO_FORMAT。
Table 1‐4:C_tk_MAX_SAMPLES_PER_CLOCK =1的視頻格式代碼和數(shù)據(jù)表示
注:對(duì)于42和40格式中的任何一種,Cb(或U)和Cr(或V)樣本被分割到兩個(gè)數(shù)據(jù)拍上,但只能在每個(gè)時(shí)鐘一個(gè)樣本的模式下進(jìn)行。第一個(gè)數(shù)據(jù)拍保持Cb(或U);第二個(gè)數(shù)據(jù)拍保持Cr(或V)。換句話說(shuō),幀的第一個(gè)有效像素包含[Cb0:Y0],下一個(gè)像素包含[Cr0:Y1]。40格式在42格式的基礎(chǔ)上增加了垂直子采樣,這是通過(guò)省略每隔一行的色度數(shù)據(jù)在AXI4-Stream上的視頻中實(shí)現(xiàn)的(和BT.1120完全類似)。
注:拜耳傳感器數(shù)據(jù)也稱為原始數(shù)據(jù),一般為RAW8/RAW10/RAW12/RAW14/RAW16等格式。
1.2.1.1 多個(gè)像素編碼-靜態(tài)TDATA配置
當(dāng)AXI4S攜帶多個(gè)樣本/像素時(shí),像素應(yīng)該從最低有效位(LSB)打包到MSB,例如,最低有效像素應(yīng)該對(duì)應(yīng)于掃描線中最左邊的像素,或者對(duì)應(yīng)于時(shí)間上最早捕獲的像素。例如,如果每個(gè)數(shù)據(jù)拍發(fā)送4個(gè)樣本/像素,則第一個(gè)樣本位于最低有效位,第四個(gè)樣本位于最高有效位。
當(dāng)使用AXI4-Stream上的視頻協(xié)議傳輸多個(gè)像素或樣本時(shí),與各個(gè)像素相關(guān)的顏色分量按照下式排列,Table 1-5給出了用于傳輸視頻模式0、1、2、3、12的兩個(gè)像素的例子。像素?cái)?shù)據(jù)被連續(xù)打包,像素之間沒(méi)有任何填充。當(dāng)N*DW不是8的倍數(shù)整數(shù)時(shí),視頻數(shù)據(jù)在msb上補(bǔ)零,如Figure 1-5所示。
如果行大小不能被每個(gè)數(shù)據(jù)拍的像素/樣本數(shù)整除,則行的最后一拍應(yīng)使用LSB。然后,該行最后一個(gè)數(shù)據(jù)拍的msb中未使用的像素應(yīng)補(bǔ)零。
Figure 1‐5:TDATA的視頻數(shù)據(jù)填充 Table 1‐5:視頻格式代碼和數(shù)據(jù)表示
1.2.1.2 多像素編碼動(dòng)態(tài)TDATA配置
對(duì)于視頻IP可以動(dòng)態(tài)改變顏色分量寬度、視頻格式或每個(gè)數(shù)據(jù)拍的像素/樣本數(shù)量的應(yīng)用,像素和分量應(yīng)該保持在由用于實(shí)例化的通用參數(shù)確定的靜態(tài)位置。例如,如果只有一個(gè)像素通過(guò)支持每個(gè)數(shù)據(jù)拍最多兩個(gè)像素的接口傳輸,則樣本/像素應(yīng)該與最低有效像素位置對(duì)齊。同樣,如果每個(gè)器件只有8位通過(guò)為每個(gè)器件產(chǎn)生的10位接口傳輸,則有效位應(yīng)MSB對(duì)齊,LSB用零填充。
Figure 1-6 和 Figure 1-9中顯示了三個(gè)示例。
重要提示:盡管本規(guī)范支持動(dòng)態(tài)更改每個(gè)數(shù)據(jù)拍的像素/樣本數(shù),但不建議這樣做,因?yàn)椴⒎撬蠭P都支持此功能。
Figure 1‐6:每個(gè)數(shù)據(jù)拍一個(gè)像素,每個(gè)器件8位,每個(gè)數(shù)據(jù)拍兩個(gè)像素,每個(gè)器件總線10位
Figure 1‐7:每個(gè)數(shù)據(jù)拍2個(gè)像素,每個(gè)器件8位,每個(gè)數(shù)據(jù)拍2個(gè)像素,每個(gè)器件總線10位
Figure 1-8.捕獲RGB888(具有三個(gè)分量的像素,分量寬度為8)。
Figure 1‐8:每個(gè)數(shù)據(jù)拍兩個(gè)像素,每個(gè)分量八位(RGB888,VF碼2),每個(gè)數(shù)據(jù)拍兩個(gè)像素,每個(gè)分量總線14位
注意事項(xiàng):
每個(gè)G、B、R元件位于14位空間,MSB對(duì)齊。
Figure 1-9.捕獲RAW14(具有單個(gè)組件的像素,組件寬度為14)。
Figure 1‐9:每個(gè)數(shù)據(jù)拍兩個(gè)像素,每個(gè)元件14位(RAW14,VF代碼12),每個(gè)數(shù)據(jù)拍兩個(gè)像素,每個(gè)元件總線14位
注意事項(xiàng):
雖然RAW14可能僅使用較低的28位,但完整的AXI4S接口仍然是88位,因?yàn)樵谔幚韯?dòng)態(tài)TDATA時(shí),如果需要,它必須能夠以每種顏色完整的14位切換到RGB。下游邏輯必須意識(shí)到這一點(diǎn),并應(yīng)提供適當(dāng)?shù)目偩€接口,然后在內(nèi)部丟棄不使用的位。
比較Figure 1-8 和Figure 1-9中的兩種數(shù)據(jù)類型組件寬度,RAW14,VF Code 2數(shù)據(jù)類型具有14位組件和RGB888 (VF Code 2) 8位組件。
因此,RGB888元件在14位元件總線上以MSB對(duì)齊、LSB補(bǔ)零的方式放置。此外,RAW14像素緊密地封裝在一起。
1.2.2 多像素編碼示例
AXI4S視頻接口支持每時(shí)鐘雙像素或四像素,對(duì)于RGB、YUV444和YUV420色彩空間,每個(gè)分量有8位、10位、12位和16位。當(dāng)參數(shù)“每個(gè)組件的最大位數(shù)”設(shè)置為16時(shí),F(xiàn)igure 1-10 顯示了完全符合AXI4S視頻協(xié)議的每時(shí)鐘四像素?cái)?shù)據(jù)格式。
Figure 1‐10:四像素?cái)?shù)據(jù)格式(每個(gè)分量的最大位數(shù)= 16)
每時(shí)鐘雙像素的數(shù)據(jù)格式完全兼容AXI4S視頻協(xié)議,如Figure 1-11所示。
Figure 1‐11:雙像素?cái)?shù)據(jù)格式(每個(gè)組件的最大位數(shù)= 16)
當(dāng)參數(shù)“每個(gè)分量的最大比特?cái)?shù)”設(shè)置為12時(shí),每個(gè)分量的實(shí)際比特?cái)?shù)大于12的視頻格式將被截?cái)酁槊總€(gè)分量的最大比特?cái)?shù)。剩余的最低有效位被丟棄。如果每個(gè)器件的實(shí)際位數(shù)小于Vivado IDE中設(shè)置的每個(gè)器件的最大位數(shù),則所有位都以MSB對(duì)齊方式傳輸,其余LSB位以0填充。這適用于所有每個(gè)組件的最大位數(shù)設(shè)置。
舉例來(lái)說(shuō),當(dāng)每個(gè)組件的最大比特?cái)?shù)被設(shè)置為12時(shí),F(xiàn)igure 1-12 顯示了完全符合AXI4S視頻協(xié)議的每時(shí)鐘四像素?cái)?shù)據(jù)格式。
完全兼容的每時(shí)鐘雙像素AXI4S視頻協(xié)議的數(shù)據(jù)格式如Figure 1-13所示。
Figure 1‐12: 四像素?cái)?shù)據(jù)格式(每個(gè)分量的最大位數(shù)= 12)
Figure 1‐13:雙像素?cái)?shù)據(jù)格式(每個(gè)組件的最大位數(shù)= 12)
當(dāng)參數(shù)“每個(gè)分量的最大比特?cái)?shù)”設(shè)置為12時(shí),每個(gè)分量的實(shí)際比特?cái)?shù)大于12的視頻格式將被截?cái)酁槊總€(gè)分量的最大比特?cái)?shù)。剩余的最低有效位被丟棄。如果每個(gè)器件的實(shí)際位數(shù)小于Vivado IDE中設(shè)置的每個(gè)器件的最大位數(shù),則所有位都以MSB對(duì)齊方式傳輸,其余LSB位以0填充。這適用于所有每個(gè)組件的最大位數(shù)設(shè)置。
Table 1‐6:每個(gè)組件支持的最大位數(shù)
舉例來(lái)說(shuō),當(dāng)每個(gè)組件的最大比特?cái)?shù)被設(shè)置為12時(shí),F(xiàn)igure 1-14 顯示了完全符合AXI4S視頻協(xié)議的每時(shí)鐘四像素?cái)?shù)據(jù)格式。完全兼容的每時(shí)鐘雙像素AXI4S視頻協(xié)議的數(shù)據(jù)格式如Figure 1-15所示。
Figure 1‐14: 四像素?cái)?shù)據(jù)格式(每個(gè)分量的最大位數(shù)= 12)
Figure 1‐15:雙像素?cái)?shù)據(jù)格式(每個(gè)組件的最大位數(shù)= 12)
視頻接口還可以傳輸YUV420色彩空間中的四像素和雙像素。
類似地,對(duì)于YUV 40深色(10、12或16位),數(shù)據(jù)表示是相同的。唯一的區(qū)別是每個(gè)組件攜帶更多的位(10、12和16)。當(dāng)使用AXI4-Stream傳輸時(shí),數(shù)據(jù)表示需要符合UG934中定義的協(xié)議。借助重新映射功能,相同的原生視頻數(shù)據(jù)將被轉(zhuǎn)換為AXI4S格式,如Figure 1-16所示。40格式在42格式的基礎(chǔ)上增加了垂直子采樣,這是通過(guò)省略每隔一行的色度數(shù)據(jù)在AXI4-Stream上的視頻中實(shí)現(xiàn)的。
Figure 1‐16: YUV 40 AXIS流視頻數(shù)據(jù)(每時(shí)鐘雙像素)
注意:對(duì)于RGB/YUV444/YUV422,視頻數(shù)據(jù)直接從AXI4S映射到原生視頻接口,沒(méi)有任何行緩沖。因此,F(xiàn)igure 1-12 到Figure 1-15 通常表示AXI4S和本地視頻的數(shù)據(jù)接口。圖中省略了控制信號(hào)。
該子系統(tǒng)利用配置參數(shù)、每個(gè)元件的最大位數(shù)和每個(gè)時(shí)鐘的像素?cái)?shù),提供了構(gòu)建系統(tǒng)的充分靈活性。設(shè)置這些參數(shù),以便目標(biāo)設(shè)備支持視頻時(shí)鐘和鏈路時(shí)鐘。例如,當(dāng)選擇每時(shí)鐘雙像素時(shí),與每時(shí)鐘四像素設(shè)計(jì)相比,AXI4S視頻需要以更高的時(shí)鐘速率運(yùn)行。在這種情況下,系統(tǒng)更難滿足定時(shí)要求。因此,對(duì)于旨在發(fā)送更高視頻分辨率的設(shè)計(jì),建議使用每時(shí)鐘四像素?cái)?shù)據(jù)映射。
某些視頻分辨率(例如720p60)的水平定時(shí)參數(shù)(1650)不是4的倍數(shù)。在這種情況下,必須選擇每時(shí)鐘雙像素?cái)?shù)據(jù)映射。
審核編輯:郭婷
-
連接器
+關(guān)注
關(guān)注
99文章
15369瀏覽量
140322 -
接口
+關(guān)注
關(guān)注
33文章
8992瀏覽量
153664
原文標(biāo)題:1.2 數(shù)據(jù)格式
文章出處:【微信號(hào):Open_FPGA,微信公眾號(hào):OpenFPGA】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
NVMe IP高速傳輸卻不依賴XDMA設(shè)計(jì)之三:系統(tǒng)架構(gòu)

RDMA簡(jiǎn)介8之AXI 總線協(xié)議分析1
NVMe IP之AXI4總線分析
NVMe控制器IP設(shè)計(jì)系列之接口轉(zhuǎn)換模塊

NVMe控制器IP設(shè)計(jì)之接口轉(zhuǎn)換
一文詳解Video In to AXI4-Stream IP核

AXI 接口設(shè)計(jì)避坑指南:AXI接口筆記

ZYNQ基礎(chǔ)---AXI DMA使用

HDMI接口如何實(shí)現(xiàn)4K視頻傳輸
使用dp接口播放4K視頻的技巧
AMBA AXI4接口協(xié)議概述

Xilinx NVMe AXI4主機(jī)控制器,AXI4接口高性能版本介紹

評(píng)論