麻豆精品无码国产在线播放,国产亚洲精品成人AA片新蒲金,国模无码大尺度一区二区三区,神马免费午夜福利剧场

一種基于fpga的高速、可變幀視頻顯存設計方法

文檔序號:7810847閱讀:353來源:國知局
一種基于fpga的高速、可變幀視頻顯存設計方法
【專利摘要】本發明公開了一種基于FPGA的高速、可變幀視頻顯存設計方法,包括如下步驟:視頻源端開始發送視頻源數據,DDR存儲器初始化完成,前端異步FIFO接收數據,前端異步FIFO緩存的數據量到達閾值時前端異步FIFO數據寫入DDR存儲器,DDR存儲器數據存滿一幀時DDR存儲器讀出數據到后端異步FIFO,后端異步FIFO數據量到達閾值時啟動點屏模塊將數據送入屏幕;其中,DDR存儲器內部的存儲地址空間按單幀圖像大小劃分成三塊區域分別記為A、B、C,通過DDR控制器控制DDR存儲器的讀寫操作在A、B、C三塊區域之間單次交替進行。優點:可對各種視頻信號進行緩存、高效傳輸和變幀等靈活處理。
【專利說明】-種基于FPGA的高速、可變幀視頻顯存設計方法

【技術領域】
[0001] 本發明涉及一種基于FPGA的高速、可變幀視頻顯存設計方法。

【背景技術】
[0002] 現場可編程邏輯器件FPGA以其高速的處理速度,靈活的設計方式已被廣泛的應 用于各種工程設計中,而DDR存儲器作為FPGA平臺下的功能模塊,憑借其高速的處理能力 使其在視頻顯存解決方案上取得了長足的發展。隨著電子技術的高速發展,顯示設備的功 能越來越多樣化,傳輸的信息量也越來越大,以往的視頻顯存設計方案都難以應對現如今 多樣化的功能需求,而FPGA以其高速、靈活的設計方式,正迎合了這種發展需要。


【發明內容】

[0003] 本發明的目的在于克服現有技術的不足,提供了一種基于FPGA的高速、可變幀視 頻顯存設計方法,該設計方法通過DDR控制器來控制DDR存儲器完成視頻的緩存、傳輸和變 幀處理,可對DDR存儲器有限帶寬內的各種視頻信號進行高效傳輸和變幀等靈活處理。
[0004] 本發明是通過以下技術方案實現的:
[0005] -種基于FPGA的高速、可變幀視頻顯存設計方法,包括如下步驟:
[0006] A、利用現場可編程邏輯器件FPGA將視頻源及屏幕連接起來,其中PFGA內設置有 DDR存儲器、控制DDR存儲器的DDR控制器、以及分別連接DDR存儲器輸入端和輸出端的前 端異步FIFO和后端異步FIFO ;
[0007] B、視頻源端開始發送視頻源數據,同時進行DDR存儲器初始化操作;
[0008] C、DDR存儲器初始化完成后,DDR存儲器開始檢測視頻源數據的幀頭,當發現某一 幀的幀頭后開始接收視頻源數據進入前端異步FIFO中;
[0009] D、當前端異步FIFO緩存的數據量到達閾值后開始發送握手信號通知DDR控制器 進行數據讀取,其中前端異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量;
[0010] E、DDR存儲器收到握手信號后開始從前端異步FIFO中讀取并寫入數據,DDR存儲 器內部的存儲地址空間按單幀圖像大小劃分成三塊區域分別記為A、B、C,每塊區域為一幀 圖像大小;當判斷出DDR存儲器接收了一個幀的數據后開始讀操作,將讀出的數據送入后 端異步FIFO中緩存;通過DDR控制器控制DDR存儲器的讀寫操作在A、B、C三塊區域之間單 次交替進行,通過協調單位時間內DDR存儲器讀和寫的次數來平衡前后端的數據傳輸量;
[0011] F、當后端異步FIFO緩存的數據量到達閾值后,啟動點屏模塊,從后端異步FIFO里 取出數據發送給屏幕,后端異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量;其中,讀 取DDR存儲器的A、B、C任一地址空間幀圖像的速度是根據后端點屏模塊送入屏幕的點屏數 據送出速度來決定的,根據需要通過DDR控制器控制點屏幀率高于或低于前端視頻源的幀 率;
[0012] 上述方法需遵循:視頻源每秒數據傳輸量+點屏模塊送入屏幕每秒數據傳輸量 〈DDR存儲器每秒實際處理帶寬,且視頻源每秒進入DDR存儲器數據量和每秒讀出DDR存儲 器數據量分別不能超過DDR存儲器每秒處理能力的一半。
[0013] 作為上述技術方案的優選實施方式,所述步驟E、F中,當選擇提高點屏幀率時, DDR存儲器數據讀取速度會快于寫入速度,當第一幀數據進入DDR存儲器時,首先寫入A地 址空間,當A地址空間寫完一幀數據后,開始將到來的第二幀數據寫入B地址空間,這時A 地址空間內的圖像數據可以讀出送入后端異步FIFO中等待點屏模塊送入屏幕,當A地址空 間讀取完一幀圖像,而B地址空間還沒有寫滿一幀數據時,從A地址空間再次調取這幀數據 送出,根據需要重復這個過程多次,直至B地址空間寫入完第二幀進入圖像;若B地址空間 已寫入完第二幀進入圖像,而A地址空間還沒有讀完一幀數據,這時A地址空間還在被占 用,而B地址空間剛寫入完當前幀的數據,這時視頻源的數據將開始寫入C地址空間;而當 A地址空間讀完這一幀數據后,檢測到B地址空間已經寫入完一幀數據,進而跳轉到B地址 空間進行數據讀取,這時就形成了 B讀取、C寫入的狀態,這等同于A讀取、B寫入時的狀態, 如此循環即可達到提高點屏幀率的效果。
[0014] 作為上述技術方案的優選實施方式,所述步驟E、F中,當選擇降低點屏幀率時,需 要在DDR存儲器寫入時先把A和B地址空間分別寫入完一幀數據,然后再寫入C地址空間的 同時,開始從A地址空間進行第一幀的讀取操作,優先等待A地址空間讀完一幀跳轉后,寫 入才跳轉到A地址空間進行;此時開始B地址空間第二幀的讀取操作,優先等待B地址空間 讀完一幀跳轉后,寫入才跳轉到B地址空間進行;此時開始C地址空間第三幀的讀取操作, 優先等待C地址空間讀完一幀跳轉后,寫入才跳轉到C地址空間進行,如此循環即可達到降 低點屏幀率的效果。
[0015] 作為上述技術方案的優選實施方式,所述步驟E中,DDR存儲器會出現四種可能的 情況:(1)當前端異步FIFO數據存儲未達到閾值,后端異步FIFO數據存儲達到閾值,這時 DDR存儲器不需要進行讀寫操作,為空閑時期;(2)當前端異步FIFO數據存儲達到閾值,而 后端異步FIFO數據存儲也達到閾值,這時DDR存儲器只需要進行寫入操作即可;(3)當前 端異步FIFO數據存儲未達到閾值,后端異步FIFO存儲也未達到閾值,這時DDR存儲器只 需要進行讀出操作即可;(4)當前端異步FIFO數據存儲達到閾值,后端異步FIFO未達到閾 值,這時是DDR存儲器最忙的時候,讀和寫都需要進行操作;此時DDR控制器控制DDR存儲 器采取讀寫單次交替進行的方式進行協調,直到跳出這種忙狀態。
[0016] 作為上述技術方案的優選實施方式,所述步驟E中,DDR存儲器內的A、B、C三塊區 域為三塊獨立地址空間或三塊連續地址空間。
[0017] 作為上述技術方案的優選實施方式,所述DDR存儲器讀取帶寬大于點屏模塊的送 屏帶寬,當出現后端異步FIFO快滿的時候,DDR控制器控制DDR存儲器停止讀取操作等待 點屏模塊將后端異步FIFO中的數據送出到屏幕,從而達到動態平衡。
[0018] 本發明相比現有技術具有以下優點:
[0019] (l)DDR控制器提供了簡單的視頻幀率轉換功能,可以實現在DDR存儲器有效帶寬 內高幀率轉為低幀率或低幀率轉為高幀率的視頻輸出。
[0020] ⑵在DDR存儲器前端和后端分別設置有前端異步FIFO和后端異步FIFO,使得 FIFO的輸入時鐘和輸出時鐘可以完全異步,由于視頻源發送的視頻源數據流與DDR存儲器 寫入數據流的快慢存在不一致的情況,通過前端異步FIFO來進行協調以保證前端數據不 會因為DDR存儲器的操作流程而丟失;同樣,后端異步FIFO是為了協調DDR存儲器讀取帶 寬和點屏模塊的送屏帶寬之間的數據量關系;以使整個過程達到穩定的動態平衡,同時為 DDR存儲器提供了靈活的數據接口。
[0021] (3)本方法中,視頻源每秒數據傳輸量+點屏模塊送入屏幕每秒數據傳輸量〈DDR 存儲器每秒實際處理帶寬,且視頻源每秒進入DDR存儲器數據量和每秒讀出DDR存儲器數 據量分別不能超過DDR存儲器每秒處理能力的一半,且對前端異步FIFO和后端異步FIFO 均設置了下限的閾值,有效防止了前端異步FIFO出現滿溢出以及防止了后端異步FIFO出 現空溢出。
[0022] (4)通過DDR控制器控制DDR存儲器的讀寫操作在A、B、C三塊區域之間單次交替 進行,通過協調單位時間內DDR存儲器讀和寫的次數來平衡前后端的數據傳輸量,從而保 證了數據的穩定傳輸,且DDR存儲器傳輸速率高。

【專利附圖】

【附圖說明】
[0023] 圖1是本發明的視頻顯存設計方法流程圖。
[0024] 圖2是本發明的視頻顯存設計框圖。

【具體實施方式】
[0025] 下面對本發明的實施例作詳細說明,本實施例在以本發明技術方案為前提下進行 實施,給出了詳細的實施方式和具體的操作過程,但本發明的保護范圍不限于下述的實施 例。
[0026] 請參見圖1、圖2,本實施例提供的一種基于FPGA的高速、可變幀視頻顯存設計方 法,包括如下步驟:
[0027] A、利用現場可編程邏輯器件FPGA將視頻源及屏幕連接起來,其中PFGA內設置有 DDR存儲器、控制DDR存儲器的DDR控制器、以及分別連接DDR存儲器輸入端和輸出端的前 端異步FIFO和后端異步FIFO ;
[0028] B、視頻源端開始發送視頻源數據,同時進行DDR存儲器初始化操作;
[0029] C、DDR存儲器在上電時需要進行配置和校驗等一系列操作,這將占用大概200us 以上的操作時間,等到DDR存儲器初始化完成后,DDR存儲器開始檢測視頻源數據的幀頭, 當發現某一幀的幀頭后開始接收視頻源數據進入前端異步FIFO中;
[0030] D、當前端異步FIFO緩存的數據量到達閾值后開始發送握手信號通知DDR控制器 進行數據讀取,由于DDR存儲器讀取數據速度相對于視頻源進入數據的速度來說要快,因 此需給前端異步FIFO設置一個存儲下限的閾值,保證前端異步FIFO不會空溢出,其中前端 異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量;
[0031] E、DDR存儲器收到握手信號后開始從前端異步FIFO中讀取并寫入數據,DDR存儲 器內部的存儲地址空間按單幀圖像大小劃分成三塊區域分別記為A、B、C,每塊區域為一幀 圖像大小;當判斷出DDR存儲器接收了一個幀的數據后開始讀操作,將讀出的數據送入后 端異步FIFO中緩存;通過DDR控制器控制DDR存儲器的讀寫操作在A、B、C三塊區域之間單 次交替進行,通過協調單位時間內DDR存儲器讀和寫的次數來平衡前后端的數據傳輸量;
[0032] F、當后端異步FIFO緩存的數據量到達閾值后,啟動點屏模塊,從后端異步FIFO里 取出數據發送給屏幕,后端異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量;其中,讀 取DDR存儲器的A、B、C任一地址空間幀圖像的速度是根據后端點屏模塊送入屏幕的點屏數 據送出速度來決定的,根據需要通過DDR控制器控制點屏幀率高于或低于前端視頻源的幀 率;
[0033] 上述方法中需遵循:視頻源每秒數據傳輸量+點屏模塊送入屏幕每秒數據傳輸量 〈DDR存儲器每秒實際處理帶寬,且視頻源每秒進入DDR存儲器數據量和每秒讀出DDR存儲 器數據量分別不能超過DDR存儲器每秒處理能力的一半,這是為了防止前端異步FIFO出現 滿溢出和防止后端異步FIFO出現空溢出。
[0034] 其中,步驟E、F中,當選擇提高點屏幀率時,DDR存儲器數據讀取速度會快于寫入 速度,當第一幀數據進入DDR存儲器時,首先寫入A地址空間,當A地址空間寫完一幀數據 后,開始將到來的第二幀數據寫入B地址空間,這時A地址空間內的圖像數據可以讀出送入 后端異步FIFO中等待點屏模塊送入屏幕,當A地址空間讀取完一幀圖像,很可能B地址空 間還沒有寫滿一幀數據時,這時可從A地址空間再次調取這幀數據送出,根據需要重復這 個過程多次,這跟提幀的比率有關,而由于提幀的比率可能不是整數比,例如從25幀提到 60幀,這就會導致B地址空間寫入完第二幀進入圖像時,A地址空間還沒有讀完一幀數據, 這時A地址空間還在被占用,而B地址空間剛寫入完當前幀的數據,因此需要開辟C地址空 間來協調這個關系,這時視頻源的數據將開始寫入C地址空間;而當A地址空間讀完這一幀 數據后,檢測到B地址空間已經寫入完一幀數據,進而跳轉到B地址空間進行數據讀取,這 時就形成了 B讀取、C寫入的狀態,這等同于A讀取、B寫入時的狀態,如此循環即可達到提 高點屏幀率的效果。
[0035] 其中,步驟E、F中,當選擇降低點屏幀率時,DDR存儲器數據讀取速度會慢于寫入 速度,需要在DDR存儲器寫入時先把A和B地址空間分別寫入完一幀數據,然后再寫入C地 址空間的同時,開始從A地址空間進行第一幀的讀取操作,優先等待A地址空間讀完一幀跳 轉后,寫入才跳轉到A地址空間進行;此時開始B地址空間第二幀的讀取操作,優先等待B 地址空間讀完一幀跳轉后,寫入才跳轉到B地址空間進行;此時開始C地址空間第三幀的讀 取操作,優先等待C地址空間讀完一幀跳轉后,寫入才跳轉到C地址空間進行,如此循環即 可達到降低點屏幀率的效果。
[0036] 步驟E中,DDR存儲器內的A、B、C三塊區域可以是三塊連續地址空間,也可以是三 塊獨立的地址空間。連續地址空間比較節省地址空間,提高存儲空間的利用率,但是程序中 三塊區域的起始地址需要進行計算得到,而且為固定位置,繼承性不強;而獨立地址空間雖 然便于修改但是比較占用地址空間,對于存儲空間較小的DDR存儲器不適用;因此可根據 DDR存儲器的存儲空間來自行選擇。運行過程中,DDR存儲器會出現四種可能的情況:(1)當 前端異步FIFO數據存儲未達到閾值,后端異步FIFO數據存儲達到閾值,這時DDR存儲器不 需要進行讀寫操作,為空閑時期;(2)當前端異步FIFO數據存儲達到閾值,而后端異步FIFO 數據存儲也達到閾值,這時DDR存儲器只需要進行寫入操作即可;(3)當前端異步FIFO數 據存儲未達到閾值,后端異步FIFO存儲也未達到閾值,這時DDR存儲器只需要進行讀出操 作即可;(4)當前端異步FIFO數據存儲達到閾值,后端異步FIFO未達到閾值,這時是DDR存 儲器最忙的時候,讀和寫都需要進行操作;此時DDR控制器控制DDR存儲器采取讀寫單次交 替進行的方式進行協調,直到跳出這種忙狀態。
[0037] 步驟F中,后端異步FIFO也是為了協調DDR存儲器讀取帶寬和點屏模塊的送屏帶 寬之間的數據量關系。DDR存儲器讀取帶寬大于點屏模塊的送屏帶寬,為了防止出現點屏模 塊送屏時后端異步FIFO內沒有數據可送的情況,當出現后端異步FIFO快滿的時候,DDR控 制器控制DDR存儲器停止讀取操作等待點屏模塊將后端異步FIFO中的數據送出到屏幕,從 而達到動態平衡。
[0038] 以上僅為本發明的較佳實施例而已,并不用以限制本發明,凡在本發明的精神和 原則之內所作的任何修改、等同替換和改進等,均應包含在本發明的保護范圍之內。
【權利要求】
1. 一種基于FPGA的高速、可變幀視頻顯存設計方法,其特征在于,包括如下步驟: A、 利用現場可編程邏輯器件FPGA將視頻源及屏幕連接起來,其中PFGA內設置有DDR 存儲器、控制DDR存儲器的DDR控制器、以及分別連接DDR存儲器輸入端和輸出端的前端異 步FIFO和后端異步FIFO ; B、 視頻源端開始發送視頻源數據,同時進行DDR存儲器初始化操作; C、 DDR存儲器初始化完成后,DDR存儲器開始檢測視頻源數據的幀頭,當發現某一幀的 幀頭后開始接收視頻源數據進入前端異步FIFO中; D、 當前端異步FIFO緩存的數據量到達閾值后開始發送握手信號通知DDR控制器進行 數據讀取,其中前端異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量; E、 DDR存儲器收到握手信號后開始從前端異步FIFO中讀取并寫入數據,DDR存儲器內 部的存儲地址空間按單幀圖像大小劃分成三塊區域分別記為A、B、C,每塊區域為一幀圖像 大小;當判斷出DDR存儲器接收了一個幀的數據后開始讀操作,將讀出的數據送入后端異 步FIFO中緩存;通過DDR控制器控制DDR存儲器的讀寫操作在A、B、C三塊區域之間單次 交替進行,通過協調單位時間內DDR存儲器讀和寫的次數來平衡前后端的數據傳輸量; F、 當后端異步FIFO緩存的數據量到達閾值后,啟動點屏模塊,從后端異步FIFO里取出 數據發送給屏幕,后端異步FIFO的閾值為DDR存儲器單次突發的讀寫數據量;其中,讀取 DDR存儲器的A、B、C任一地址空間幀圖像的速度是根據后端點屏模塊送入屏幕的點屏數 據送出速度來決定的,根據需要通過DDR控制器控制點屏幀率高于或低于前端視頻源的幀 率; 上述方法需遵循:視頻源每秒數據傳輸量+點屏模塊送入屏幕每秒數據傳輸量〈DDR存 儲器每秒實際處理帶寬,且視頻源每秒進入DDR存儲器數據量和每秒讀出DDR存儲器數據 量分別不能超過DDR存儲器每秒處理能力的一半。
2. 如權利要求1所述的一種基于FPGA的高速、可變幀視頻顯存設計方法,其特征在于, 所述步驟E、F中,當選擇提高點屏幀率時,DDR存儲器數據讀取速度會快于寫入速度,當第 一幀數據進入DDR存儲器時,首先寫入A地址空間,當A地址空間寫完一幀數據后,開始將 到來的第二幀數據寫入B地址空間,這時A地址空間內的圖像數據可以讀出送入后端異步 FIFO中等待點屏模塊送入屏幕,當A地址空間讀取完一幀圖像,而B地址空間還沒有寫滿一 幀數據時,從A地址空間再次調取這幀數據送出,根據需要重復這個過程多次,直至B地址 空間寫入完第二幀進入圖像;若B地址空間已寫入完第二幀進入圖像,而A地址空間還沒有 讀完一幀數據,這時A地址空間還在被占用,而B地址空間剛寫入完當前幀的數據,這時視 頻源的數據將開始寫入C地址空間;而當A地址空間讀完這一幀數據后,檢測到B地址空間 已經寫入完一幀數據,進而跳轉到B地址空間進行數據讀取,這時就形成了 B讀取、C寫入 的狀態,這等同于A讀取、B寫入時的狀態,如此循環即可達到提高點屏幀率的效果。
3. 如權利要求1所述的一種基于FPGA的高速、可變幀視頻顯存設計方法,其特征在于, 所述步驟E、F中,當選擇降低點屏幀率時,需要在DDR存儲器寫入時先把A和B地址空間分 別寫入完一幀數據,然后再寫入C地址空間的同時,開始從A地址空間進行第一幀的讀取操 作,優先等待A地址空間讀完一幀跳轉后,寫入才跳轉到A地址空間進行;此時開始B地址 空間第二幀的讀取操作,優先等待B地址空間讀完一幀跳轉后,寫入才跳轉到B地址空間進 行;此時開始C地址空間第三幀的讀取操作,優先等待C地址空間讀完一幀跳轉后,寫入才 跳轉到C地址空間進行,如此循環即可達到降低點屏幀率的效果。
4. 如權利要求1至3任一所述的一種基于FPGA的高速、可變幀視頻顯存設計方法,其 特征在于,所述步驟E中,DDR存儲器會出現四種可能的情況:(1)當前端異步FIFO數據存 儲未達到閾值,后端異步FIFO數據存儲達到閾值,這時DDR存儲器不需要進行讀寫操作, 為空閑時期;(2)當前端異步FIFO數據存儲達到閾值,而后端異步FIFO數據存儲也達到閾 值,這時DDR存儲器只需要進行寫入操作即可;(3)當前端異步FIFO數據存儲未達到閾值, 后端異步FIFO存儲也未達到閾值,這時DDR存儲器只需要進行讀出操作即可;(4)當前端 異步FIFO數據存儲達到閾值,后端異步FIFO未達到閾值,這時是DDR存儲器最忙的時候, 讀和寫都需要進行操作;此時DDR控制器控制DDR存儲器采取讀寫單次交替進行的方式進 行協調,直到跳出這種忙狀態。
5. 如權利要求4所述的一種基于FPGA的高速、可變幀視頻顯存設計方法,其特征在于, 所述步驟E中,DDR存儲器內的A、B、C三塊區域為三塊獨立地址空間或三塊連續地址空間。
6. 如權利要求5所述的一種基于FPGA的高速、可變幀視頻顯存設計方法,其特征在于, 所述DDR存儲器讀取帶寬大于點屏模塊的送屏帶寬,當出現后端異步FIFO快滿的時候,DDR 控制器控制DDR存儲器停止讀取操作等待點屏模塊將后端異步FIFO中的數據送出到屏幕, 從而達到動態平衡。
【文檔編號】H04N7/01GK104125424SQ201410384239
【公開日】2014年10月29日 申請日期:2014年8月6日 優先權日:2014年8月6日
【發明者】王杰, 徐涵 申請人:中航華東光電(上海)有限公司
網友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點贊!
1
主站蜘蛛池模板: 叶城县| 德钦县| 大丰市| 莆田市| 镇沅| 湘潭市| 郸城县| 商城县| 江永县| 揭西县| 宜川县| 东宁县| 山阴县| 永年县| 怀来县| 新竹市| 澄城县| 吐鲁番市| 修武县| 汤阴县| 阜城县| 舟曲县| 雷山县| 望江县| 涿州市| 富顺县| 洪洞县| 贵阳市| 交口县| 全南县| 远安县| 万荣县| 虞城县| 贵阳市| 西宁市| 台中市| 海兴县| 六安市| 武胜县| 观塘区| 凌海市|