新四季網

一種基於水平線填充的2d圖形ip核實現方法

2023-05-20 15:12:06 1

一種基於水平線填充的2d圖形ip核實現方法
【專利摘要】本發明公開了一種基於水平線填充的2D圖形IP核實現方法,應用於2D圖形繪製的硬體加速。直線、三角形、橢圓是二維圖形中的基本圖元,所有複雜場景的二維圖形均可由上述基本圖元經過有限疊加來完成。只需向該部件的接口發送基本圖元的坐標等屬性信息,即可高效的完成整個系統的2D圖形繪製與顯示工作,基於水平線填充的方式能有效提高圖形的生成速度。
【專利說明】-種基於水平線填充的2D圖形IP核實現方法

【技術領域】
[0001] 本發明主要涉及圖形晶片中2D圖形繪製領域,特指一種基於水平線填充的2D圖 形IP核實現方法。

【背景技術】
[0002] 圖形加速技術是指利用專門的軟體或硬體技術來加速圖形在整個系統中的處理, 提高整個系統的工作效率。軟體加速方法,既包括圖形處理算法的不斷改進,也包括對軟體 代碼的優化來提高圖形系統中顯示處理的效率。硬體加速方法,既是通過軟體和硬體工作 的重新劃分,將圖形繪製部分的工作交由專門的硬體單元進行實現。通過硬體單元實現圖 形繪製,將能極大釋放系統中處理器的壓力,提高圖形的生成效率。


【發明內容】

[0003] 本發明要解決的問題就在於:針對現有技術存在的技術問題,本發明提出一種結 構相對簡單、硬體資源消耗不大、執行效率比較高的基於水平線填充的2D圖形繪製的實 現。
[0004] 與現有技術相比,本發明的優點就在於:1、邏輯簡單:本發明提出的基於水平線 填充的2D圖形繪製架構簡單,比較利於硬體的實現;2、性能優良:本發明提出的2D圖形生 成架構中,在圖元預處理模塊採用全流水的方式,因此可以保證圖元生成的快速實現;3、使 用方便:本發明提出的基於水平線填充的2D圖形繪製策略的可重用性較好,滿足OPENGL和 WINDML規範的2D圖形繪製,可以在嵌入式或通用圖形晶片中很方便的移植。

【專利附圖】

【附圖說明】
[0005] 圖1是本發明的2D圖形處理IP核結構示意圖; 圖2是本發明中頂點處理模塊與命令解析模塊、頂點FIFO的邏輯關係圖。

【具體實施方式】
[0006] 如圖1所示,為本設計實現的基於水平線掃描方式的二維圖形IP核實現結構。由 軟體經過編譯處理後,將圖形繪製的命令和圖元的屬性參數經由本地總線接口傳入命令參 數FIFO中。該命令參數FIFO為一個異步FIFO,數據輸入工作在本地總線時鐘下,數據輸出 工作在繪圖時鐘下,一邊接收圖形參數、命令信息,一邊將接收的信息送入命令解析模塊。 命令解析模塊依據信息解碼的結果,分別配置好繪圖參數寄存器,以及確認命令中繪製圖 元的類型,將各圖元的頂點參數進行圖形的預處理後,按順序存入圖元頂點FIFO中。各相 應二維圖形繪製模塊從頂點FIFO中得到各自圖元頂點信息,依據各圖元的繪製算法對外 產生圖元的水平線信息,並存入繪圖FIFO中。水平線填充模塊根據獲得的水平線信息,計 算各條水平線相對於幀存的地址,進而將繪製圖形的水平線經由高速緩存和DDR2控制器 模塊寫入幀存。在二維圖形的繪製模塊中,線段繪製的反走樣處理與位圖處理則是直接經 由高速緩存,將繪製的圖形信息與幀存進行讀寫。
[0007] (1)本地總線接口模塊 本地總線接口實現對模塊內部的讀寫操作。模塊內部實現讀寫繪圖控制寄存器,實現 中斷申請信號,以及命令參數FIFO讀寫接口。繪圖控制寄存器各狀態位包括命令參數FIFO 的狀態和FIFO的剩餘空間、二維IP各模塊的忙狀態、FIFO產生的中斷標誌位中斷申請信 號由兩種狀況產生。一種情況是,FIFO狀態由超過半滿到少於半滿,或者由滿到非滿的狀 態切換產生。用於軟體判斷是否繼續下發命令參數。在該種情況下,除了產生中斷申請信 號外,還需要置位繪圖控制寄存器中相應的中斷信號位,由軟體讀後清除該中斷標誌位。另 一種情況是,由整個核內各子模塊的忙閒狀態的判斷產生。用於軟體繪圖時,進行幀切換的 處理。
[0008] (2 )命令參數FIFO模塊 負責緩存軟體發送的命令參數。內部實現深度為1024個字,字寬為32位的雙時鐘異 步FIFO,寫接口工作在本地總線時鐘,讀接口工作在內部繪圖時鐘。寫接口信號包括寫時 鍾、寫信號、寫數據、滿信號、半滿信號,已使用字數信號。讀接口信號包括讀時鐘、讀信號、 讀數據、空信號。
[0009] (3)命令解析模塊 繪圖及控制命令按照命令數據包方式組織,命令數據包按照32位字寬的格式組織連 續發送。命令數據包有配置參數設置命令和圖形繪製命令兩種格式。配置參數命令包,包 含的數據有圖形前景色、背景色、線寬、填充模式、填充圖案和裁剪區域參數。繪圖命令包, 包含的是圖元類型命令碼、圖元頂點以及頂點個數數據。
[0010] 命令解析模塊依據命令參數配置格式,解析出來的數據如果是配置參數命令包, 則將相應參數信息統一配置到一個寄存器參數配置區域,相關參數寄存器與後續各相關模 塊關聯;如果為繪圖命令包,則根據圖元類型的不同,將數據包中一個圖元所包含的頂點數 據進行組裝,在一個時鐘節拍內將圖元頂點數據發送到頂點預處理模塊。圖元命令包,分別 包括直線段數據包、三角形填充數據包、矩形填充數據包、橢圓填充數據包、橢圓繪製數據 包,以及位圖處理數據包。本模塊處理忙的時候,無法讀取命令參數FIFO中的數據。
[0011] (4 )頂點處理模塊及頂點FIFO 圖元頂點預處理的目的,是確定所繪製圖元是否為一個有效圖元,以及根據不同圖元 繪圖算法的需求,進行圖元頂點位置調整。該模塊劃分為直線頂點預處理模塊、三角形頂點 預處理模塊、矩形頂點預處理模塊、橢圓繪製預處理模塊、橢圓填充預處理模塊,各圖元的 預處理模塊採用流水設計,流水線長度已各基本圖元中流水線最長的橢圓預處理為基準。 頂點FIFO,在圖元繪製模塊與命令頂點預處理模塊之間緩存圖元頂點數據,如此在FIFO未 滿沒有打斷流水線的情況下,將提高整個繪圖IP核的工作效率。頂點FIFO的深度設置為 16行,每行代表一個圖元數據,每個圖元的位寬統一設置為164bits。在FIFO為滿的條件 下,將發出流水線中斷信號,暫停命令解析模塊、頂點預處理模塊的工作。
[0012] (5)繪圖模塊 整個繪圖模塊由線段繪製、矩形填充、三角形填充、橢圓填充、橢圓繪製、位圖處理幾個 單獨的子模塊構成。將頂點FIFO中獲得的圖元數據進行解碼,確定當前需要工作的繪製模 塊,將圖元頂點參數發送至該繪圖模塊中。當前工作的繪圖模塊依據繪製算法,生成圖元的 每條水平線並由繪圖FIFO進行水平線的緩存。
[0013] (6)直線段繪製模塊 依據給定直線的兩端點坐標,進行直線的繪製。該模塊有非反走樣處理的直線段繪 制,以及反走樣處理的直線段繪製兩種模式。對於沒有反走樣處理的直線段繪製,採用 Bresenham算法繪製直線。Bresenham算法的基本思想是通過直線上的當前點以及直線的 方位(不是精確的斜率)以步進的方式確定直線上下一點的位置,直到確定完當前掃描的水 平線結束,才開始下一條水平線的繼續生成。確定了當前水平線的起點和終點位置後,寫入 水平線FIFO中,並根據直線的寬度參數,進行水平線的擴展並發送至水平線FIFO中。
[0014] 對於直線的反走樣處理,採用多點採樣的方式進行處理。該算法的思想,將把線條 當作一個斜向矩形,計算該矩形在所經過的各個像素點上所佔的面積比,將該面積比作為 顯示的alpha值,利用每個象素前景色與背景色的融合處理,淡化直線邊沿的鋸齒現象。按 照多點採樣的算法,擴展為一定寬度的矩形後,水平逐點掃描象素點,計算線段在該像素的 面積佔用比,由高速緩存從幀存中讀出該象素對應位置的背景顏色,再經由高速緩存回傳 到直線繪製模塊中的象素融合模塊進行融合處理,融合結束後,重新寫回高速緩存,由高速 緩存寫入幀存中。由於該算法中進行的矩形擴展和面積比計算需要進行小數的運算,如果 採用浮點運算的方式處理,將需要佔用大量的硬體資源,而進行的象素點掃描是水平直線 的方式進行的,且均是對於整數坐標上的象素點進行採樣,因此,本設計中對於反走樣處理 過程中的算術運算,採用的是16位精度定點數的運算,並且在擴展出矩形後,將頂點轉化 為了包含兩位小數的定點數。這樣的處理,在累積精度損失不大的情況下,減少了大量硬體 資源的消耗。
[0015] (7)三角形填充模塊 將輸入的三個頂點的坐標按照屏幕坐標,從下到上的順序進行重新排列,依次確定出 一個主頂點和兩個次頂點。以主頂點和兩個次頂點為參照點,從下到上的順序同時驅動兩 個線段Bresenham算法控制單元,以步進的方式進行水平線生成,確定三角形每條水平掃 描線的起點、終點坐標。在繪製三角形內部水平掃描線時,出於鄰接三角形相互銜接的需 要,每一條掃描線的最右端一個點不能繪製。在軟體的協助下,可以完成一般多邊形的填 充。
[0016] (8)矩形填充模塊 由輸入的左上、右下兩個頂點坐標確定矩形四個頂點的坐標,以從下到上的順序進行 水平線掃描,得到每條水平線的起點和終點坐標。每生成完一條水平線後,既交由水平填充 模塊進行處理,直到整個矩形填充結束。該模塊的加入,可以快速完成屏幕的清屏操作。
[0017] (9)橢圓繪製與橢圓填充模塊 作為2D圖形加速引擎的一個基本功能單元,橢圓硬體加速單元需要實現的功能有:繪 制完整的橢圓、繪製橢圓弧、支持橢圓區域填充(包括實心填充、圖樣填充)、支持橢圓弧線 寬及虛實線設置等功能。橢圓坐標參數有:矩形邊界左上角、右下坐標及橢圓弧起始點、終 止點坐標。產生的目標橢圓弧內切於矩形上下左右邊界,並由起始點逆時針走向終止點,若 起止點坐標相同則產生一個完整的橢圓;否則則為一段橢圓弧。
[0018] 設計採用整數型中點橢圓生成算法,由狀態機控制算法的硬體實現。該算法是在 水平方向或垂直方向遞進,產生的點組成一段段的水平線、對角線或者垂直線。對於對角線 段和垂直線段可以看成長度為1的水平線段。
[0019] (10)位圖處理模塊 位圖處理模塊根據寄存器參數模塊設置的位圖處理參數,對幀存中相應 的數據進行操作和更新,再寫回到幀存中。本文設計的位圖處理模塊,提供了 快速的帶光柵操作和透明的塊拷貝,圖案填充,顏色擴展操作。操作流程為: ①對從頂點FIFO中獲得的圖元數據解析,得到目的地址數據;②經過DDR2控制器取得源 數據;③根據參數寄存器中配置的位圖處理寄存器,進行相應的數據處理操作,如光柵操 作、顏色擴展等;④處理完畢的數據寫回到目的地址上。整個位圖處理引擎內部分為了接口 單元、數據FIFO、地址產生單元、數據處理單元和字節對齊單元幾個部分。
[0020] (11)繪圖 FIFO 模塊 為一個同步FIFO,緩存產生各圖元的水平線,以便於繪圖模塊內水平線的產生以及後 面的水平填充模塊可以流水作業。依據繪圖模塊提供的輸出水平線有效信號,接收2D各繪 圖功能模塊計算生成的水平線起始、終止點坐標信息,同時加入在水平線中加入圖元的顏 色屬性。依據FIFO內存儲空間的信息,對水平填充模塊產生讀FIFO的請求信號,控制水平 填充模塊從繪圖FIFO中獲取水平線信息。在本FIFO模塊即將滿的情況下,產生FIFO滿信 號,提示繪圖模塊暫時中斷水平線信息的傳遞。當前當FIFO滿信號撤消時,繪圖模塊繼續 傳遞水平線息。
[0021] (12)水平填充模塊 本模塊的功能是將繪圖FIFO中得到的水平線數據與參數寄存器中的裁剪窗口參數 進行比較,保留水平線中存在於裁剪區域內的象素點,根據水平線的起點、終點坐標計算 起、止象素點在SDRAM幀存的物理地址,並將水平線上象素點的前景色參數寫入到高速緩 存中。高速緩存按突發傳輸的方式將數據寫入幀存(突發傳輸數據的大小由高速緩存依據 Cache Line的容量和實際寫入這行的數據量來確定)。
[0022] (13)圖形高速緩存 2D加速引擎與DDR控制器要進行頻繁的、大量的數據交互,其中有些數據的長度較小。 這種對DDR存儲器少量而頻繁的讀/寫操作效率要遠遠低於大長度的突發讀/寫操作的效 率。此外,為了保證顯示控制器以60Hz的屏幕刷新頻率訪問幀存的帶寬需求,所以要盡力 避免2D加速引擎對DDR的零碎訪問而導致的存儲器操作瓶頸。因此,在2D加速引擎和DDR 之間插入高速的圖形數據Cache模塊。圖形Cache控制系統為2D加速引擎提供了一個近 似透明的DDR訪問機制,並且將其對DDR的少量頻繁的訪問變為較大長度的突發操作,這樣 可以有效地提高訪問效率及對DDR存儲帶寬的利用率。
[0023] 圖形高速緩存Cache採用讀、寫Cache分開設計的方法,讀Cache負責緩存繪圖模 塊所需要的位圖、直線反走樣所需顏色數據等相關信息;寫Cache負責緩存各繪圖子模塊 處理完成後要寫到幀存的圖形數據。通過Cache高速緩存,可以大大提高圖形處理模塊對 DDR幀存的讀寫速度。讀、寫Cache容量均設置為64*64個像素大小,即16KB ;每個Cache 行設為64個像素大小,即256Byte,共64行。為了簡化Cache與DDR控制器之間的操作, 讀、寫Cache和DDR幀存之間採用直接映射的地址映射方式。
[0024] (14) DDR2控制器模塊 DDR2控制模塊負責控制幀存與Cache高速緩存之間的數據傳輸,及時將圖形處理模 塊對幀存的更新信息寫入幀存或者將圖形處理模塊所需要的數據寫入高速緩存。本模塊為 一個支持雙通道仲裁讀寫的DDR2控制器接口模塊,分別為圖形讀入通道和圖形輸出通道。
【權利要求】
1. 一種基於水平線填充的2D圖形IP核實現方法,其特徵在於:將直線、三角形、矩形、 橢圓幾個基本圖元的生成由象素點繪製,轉變為將各圖元分解成每條水平線,由水平線的 起點和終點信息完成水平線的填充;水平線填充的過程,採用全流水的形式,加快圖元生成 的效率:(1)、將圖形繪製的命令和圖元的屬性參數經由本地總線接口傳入異步邏輯的命 令參數FIFO中;(2)、經命令解析模塊解碼,配置好繪圖參數寄存器組(主要放置圖元的裁 剪窗口、線寬、虛實線、前景色、背景色、填充圖案、幀存地址定位相關參數),確認繪製圖元 的類型,將各圖元頂點進行圖形繪製的預處理(預先確定所繪製圖元是否為一個有效圖元, 提高繪圖資源利用率,進行圖元頂點位置調整),按順序存入圖元頂點FIFO中;(3)、圖形繪 制模塊從頂點FIFO中得到各自圖元頂點信息,依據各圖元繪製算法對外產生圖元的水平 線;(4)、水平線填充模塊根據獲得的水平線信息,計算各條水平線在幀存中的地址,進而 將繪製圖形的水平線經由高速緩存和DDR2控制器模塊寫入幀存;(5)、直線段的反走樣處 理(多點採樣算法實現)和位圖處理,需要從幀存中獲取數據進行像素處理,直接經由高速 緩存,將繪製的圖形信息與幀存進行數據交互。
2. 在2D加速引擎和DDR之間插入高速的圖形數據Cache模塊,盡力避免2D加速引擎對 DDR的零碎訪問而導致的存儲器操作瓶頸,圖形Cache控制系統將2D加速引擎對DDR的少 量頻繁的訪問變為較大長度的突發操作,有效提高訪問效率及對DDR存儲帶寬的利用率。
【文檔編號】G06T11/20GK104361619SQ201410585077
【公開日】2015年2月18日 申請日期:2014年10月28日 優先權日:2014年10月28日
【發明者】周毅 申請人:長沙景嘉微電子股份有限公司

同类文章

一種新型多功能組合攝影箱的製作方法

一種新型多功能組合攝影箱的製作方法【專利摘要】本實用新型公開了一種新型多功能組合攝影箱,包括敞開式箱體和前攝影蓋,在箱體頂部設有移動式光源盒,在箱體底部設有LED脫影板,LED脫影板放置在底板上;移動式光源盒包括上蓋,上蓋內設有光源,上蓋部設有磨沙透光片,磨沙透光片將光源封閉在上蓋內;所述LED脫影

壓縮模式圖樣重疊檢測方法與裝置與流程

本發明涉及通信領域,特別涉及一種壓縮模式圖樣重疊檢測方法與裝置。背景技術:在寬帶碼分多址(WCDMA,WidebandCodeDivisionMultipleAccess)系統頻分復用(FDD,FrequencyDivisionDuplex)模式下,為了進行異頻硬切換、FDD到時分復用(TDD,Ti

個性化檯曆的製作方法

專利名稱::個性化檯曆的製作方法技術領域::本實用新型涉及一種檯曆,尤其涉及一種既顯示月曆、又能插入照片的個性化檯曆,屬於生活文化藝術用品領域。背景技術::公知的立式檯曆每頁皆由月曆和畫面兩部分構成,這兩部分都是事先印刷好,固定而不能更換的。畫面或為風景,或為模特、明星。功能單一局限性較大。特別是畫

一種實現縮放的視頻解碼方法

專利名稱:一種實現縮放的視頻解碼方法技術領域:本發明涉及視頻信號處理領域,特別是一種實現縮放的視頻解碼方法。背景技術: Mpeg標準是由運動圖像專家組(Moving Picture Expert Group,MPEG)開發的用於視頻和音頻壓縮的一系列演進的標準。按照Mpeg標準,視頻圖像壓縮編碼後包

基於加熱模壓的纖維增強PBT複合材料成型工藝的製作方法

本發明涉及一種基於加熱模壓的纖維增強pbt複合材料成型工藝。背景技術:熱塑性複合材料與傳統熱固性複合材料相比其具有較好的韌性和抗衝擊性能,此外其還具有可回收利用等優點。熱塑性塑料在液態時流動能力差,使得其與纖維結合浸潤困難。環狀對苯二甲酸丁二醇酯(cbt)是一種環狀預聚物,該材料力學性能差不適合做纖

一種pe滾塑儲槽的製作方法

專利名稱:一種pe滾塑儲槽的製作方法技術領域:一種PE滾塑儲槽一、 技術領域 本實用新型涉及一種PE滾塑儲槽,主要用於化工、染料、醫藥、農藥、冶金、稀土、機械、電子、電力、環保、紡織、釀造、釀造、食品、給水、排水等行業儲存液體使用。二、 背景技術 目前,化工液體耐腐蝕貯運設備,普遍使用傳統的玻璃鋼容

釘的製作方法

專利名稱:釘的製作方法技術領域:本實用新型涉及一種釘,尤其涉及一種可提供方便拔除的鐵(鋼)釘。背景技術:考慮到廢木材回收後再加工利用作業的方便性與安全性,根據環保規定,廢木材的回收是必須將釘於廢木材上的鐵(鋼)釘拔除。如圖1、圖2所示,目前用以釘入木材的鐵(鋼)釘10主要是在一釘體11的一端形成一尖

直流氧噴裝置的製作方法

專利名稱:直流氧噴裝置的製作方法技術領域:本實用新型涉及ー種醫療器械,具體地說是ー種直流氧噴裝置。背景技術:臨床上的放療過程極易造成患者的局部皮膚損傷和炎症,被稱為「放射性皮炎」。目前對於放射性皮炎的主要治療措施是塗抹藥膏,而放射性皮炎患者多伴有局部疼痛,對於止痛,多是通過ロ服或靜脈注射進行止痛治療

新型熱網閥門操作手輪的製作方法

專利名稱:新型熱網閥門操作手輪的製作方法技術領域:新型熱網閥門操作手輪技術領域:本實用新型涉及一種新型熱網閥門操作手輪,屬於機械領域。背景技術::閥門作為流體控制裝置應用廣泛,手輪傳動的閥門使用比例佔90%以上。國家標準中提及手輪所起作用為傳動功能,不作為閥門的運輸、起吊裝置,不承受軸向力。現有閥門

用來自動讀取管狀容器所載識別碼的裝置的製作方法

專利名稱:用來自動讀取管狀容器所載識別碼的裝置的製作方法背景技術:1-本發明所屬領域本發明涉及一種用來自動讀取管狀容器所載識別碼的裝置,其中的管狀容器被放在循環於配送鏈上的文檔匣或託架裝置中。本發明特別適用於,然而並非僅僅專用於,對引入自動分析系統的血液樣本試管之類的自動識別。本發明還涉及專為實現讀