高密度可編程FIFO存儲(chǔ)器在視頻圖像中的應(yīng)用
1) 幀同步: 在一些任務(wù)中需要幀同步(例如,通過以太網(wǎng)傳輸和接收時(shí),當(dāng)碼流速度不斷變化而解碼器需要一個(gè)恒速的傳輸流)。雖然存儲(chǔ)器對(duì)同步的要求似乎很小,但當(dāng)涉及到多個(gè)碼流時(shí)它可能很顯著。這種同步可以由一個(gè)異步FIFO實(shí)現(xiàn)。
2) 幀存儲(chǔ): 幀存儲(chǔ)在這些地方需要:任何暫時(shí)的處理如幀率轉(zhuǎn)換,數(shù)碼變焦(縮放),或執(zhí)行去隔行。儲(chǔ)存的幀數(shù)量隨著需要的臨時(shí)信息數(shù)目增加而增加。當(dāng)視頻數(shù)據(jù)按照本來的順序時(shí),幀緩存也必須是“先進(jìn)先出”。
通過上面的討論,我們可以說,所有的儲(chǔ)存和同步都可以使用FIFO實(shí)現(xiàn)。那么理想的FIFO應(yīng)該是多大的呢?一個(gè)典型的1080p 幀,10位 4:2:2格式將需要存儲(chǔ)器大小為39.55M位(每行像素?cái)?shù)*每幀行數(shù)*每像素比特?cái)?shù)= 1920*1080*20)。預(yù)計(jì)總?cè)萘靠梢酝ㄟ^需要存儲(chǔ)的幀數(shù)乘以這個(gè)數(shù)字。典型的視頻處理算法需要存儲(chǔ)2到3幀,這意味著總?cè)萘恳_(dá)到120M位。由于不可能有如此大的基于片上SRAM的FIFO存儲(chǔ)器,一般的方法是使用一個(gè)DRAM來緩存這個(gè)數(shù)據(jù)。
高密度FIFO -傳統(tǒng)的實(shí)施和及其復(fù)雜性。
幀緩存就是高密度FIFO,傳統(tǒng)上使用外部DDR SDRAM實(shí)現(xiàn)。舉例說明一個(gè)典型的視頻處理應(yīng)用和這些FIFO如何實(shí)現(xiàn)。
圖3顯示了一個(gè)典型情況的數(shù)據(jù)路徑,有4種不同來源的視頻流需要顯示在同一個(gè)顯示器上。四個(gè)以1080p60(24位RGB)分辨率捕捉視頻的高清相機(jī)使用一個(gè)cameralink接口連接到系統(tǒng)上。色彩空間轉(zhuǎn)換 (從RGB到Y(jié)CbCr)及色度采樣降低(從4:4:4到4:2:2)后,橫向和縱向幀按比例減少,并儲(chǔ)存在DDR2 SDRAM里。存儲(chǔ)的幀可以按要求讀回和定位,結(jié)果幀和融合幀然后提高采樣速度和色彩空間轉(zhuǎn)換為通過LVDS連接來驅(qū)動(dòng)面板。
讓我們看看存儲(chǔ)器大小和帶寬要求:
(i) 大小要求:
盡管這里沒有涉及到時(shí)間處理,為了避免一個(gè)源的兩幀被分開儲(chǔ)存,這樣當(dāng)一幀正在寫時(shí),另一個(gè)幀可能要讀回來。兩幀圖像的大小是((1920 * 1080 * 16)/ 4)* 2 ~ = 63.3M位。
(ii)帶寬要求:
由于讀和寫路徑為復(fù)用的,所需帶寬是讀、寫路徑帶寬之和。
寫路徑頻率=(每個(gè)客戶端頻率)*( 客戶端數(shù)量)=(148.5/4 )* 4 = 148.5MHz
讀路徑頻率=輸出幀分辨率頻率= 148.5MHz。
實(shí)際的工作頻率為( (讀頻率+寫頻率) / 2 +其它開銷),因?yàn)榻涌诠ぷ髟陔p數(shù)據(jù)速率,并且還有一些其它開銷,如DRAM存儲(chǔ)器刷新周期、bank地址切換等等。假設(shè)為80%的效率,那么將在185MHz的頻率運(yùn)行。
(iii)內(nèi)存接口大小和I / O需求:
當(dāng)畫面以16位4:2:2格式存儲(chǔ)時(shí),一個(gè)16位接口就足夠了。根據(jù)計(jì)算,F(xiàn)PGA 的I/O總數(shù)的為46:
時(shí)鐘引腳(2個(gè)用于差分時(shí)鐘,1個(gè)用于時(shí)鐘使能)= 3引腳
命令引腳(片選,RAS, CAS, WE)= 4引腳
地址引腳(14個(gè)地址線、3個(gè) bank地址線)= 17引腳
數(shù)據(jù)線(X16接口)= 16引腳
數(shù)據(jù)選通及分離(4個(gè)引腳用于2微分DQS,2個(gè)用于分離數(shù)據(jù))= 6引腳
高密度FIFO -離散的存儲(chǔ)器:
現(xiàn)在讓我們看看使用離散可編程高密度FIFO的實(shí)現(xiàn)方式和特性定義,這樣DDR2 SDRAM存儲(chǔ)器就可以由簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)便可以由簡(jiǎn)單的數(shù)據(jù)存儲(chǔ)代替。
(i)多隊(duì)列特點(diǎn):
如果FIFO存儲(chǔ)器定義為一個(gè)單一塊的內(nèi)存,那么寫多個(gè)視頻流是不可能的。因此,F(xiàn)IFO必須能夠配置并分成多個(gè)隊(duì)列。在上文的例子中,有四種不同的畫面要寫,并且四個(gè)幀必須同時(shí)從不同的隊(duì)列同時(shí)。因此,我們的應(yīng)用需要至少八個(gè)隊(duì)列。
(ii)分離和重傳:
有可能從一個(gè)標(biāo)準(zhǔn)的FIFO曾經(jīng)讀過的數(shù)據(jù)又從FIFO丟失了。FIFO指針可以重新編程,允許任何幀都可以根據(jù)需求多次讀出。
圖4顯示了賽普拉斯CYFX072VXXX HD-FIFO的框圖。
圖5給出了使用賽普拉斯HDFIFO替代DDR2芯片的應(yīng)用案例。
評(píng)論