本發(fā)明涉及圖像處理領(lǐng)域,具體涉及一種圖像處理裝置及方法。
背景技術(shù):
隨著計算機技術(shù)的發(fā)展,要實現(xiàn)hdmi超高清輸出,需要顯示引擎具有更高的頻率。更高頻率意味著選擇更高的工藝,意味著寄存器間的組合邏輯更少,路徑更短;更高的工藝意味著流片成本更高,風(fēng)險更大。有必要尋找一種現(xiàn)有工藝條件下實現(xiàn)超高清視頻輸出的方法。
現(xiàn)有技術(shù)中進行“圖像分塊多核心拼接技術(shù)”多采用圖像分塊處理,例如,水平分割或垂直分割,其必然帶來邊界處理問題。如圖14所示,現(xiàn)有分塊技術(shù),使用多取源的方式解決邊界問題,實現(xiàn)目標圖片無縫拼接,這種技術(shù)需要對邊界進行處理。對于現(xiàn)有技術(shù)中的軟件實現(xiàn)方案,除了存在需要邊界處理的問題之外,同時還需要ddr緩存中間運算結(jié)果,勢必帶來了帶寬的增加。另外,對于采用垂直分割的現(xiàn)有技術(shù)方案,無論采用軟件實現(xiàn),還是硬件實現(xiàn),都需要ddr緩存中間運算結(jié)果,也增加了帶寬消耗。對于超高清視頻,帶寬是非常緊張的。
技術(shù)實現(xiàn)要素:
本發(fā)明要解決的技術(shù)問題在于,針對現(xiàn)有技術(shù)的上述缺陷,提供一種圖像處理裝置,克服邊界處理以及帶寬消耗大的缺陷。
本發(fā)明解決其技術(shù)問題所采用的技術(shù)方案是:提供一種圖像處理裝置,包括源數(shù)據(jù)行緩存模塊、目標圖像數(shù)據(jù)行計算模塊和目標圖像拼接模塊,源數(shù)據(jù)行緩存模塊計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并緩存;目標圖像數(shù)據(jù)行計算模塊包括n個顯示引擎,所述n個顯示引擎同時根據(jù)所述源數(shù)據(jù)行緩存模塊緩存的源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù);目標圖像拼接模塊根據(jù)所述目標圖像數(shù)據(jù)行計算模塊輸出的數(shù)據(jù)行進行圖像拼接,輸出所述目標圖像;其中,所述n為大于等于1的正整數(shù)。
所述源數(shù)據(jù)行緩存模塊計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并緩存由硬件電路完成。
所述源數(shù)據(jù)行緩存模塊包括源數(shù)據(jù)行號計算器、源數(shù)據(jù)行提取器和源數(shù)據(jù)行緩存,源數(shù)據(jù)行號計算器根據(jù)所述n個顯示引擎輸出的目標圖像的行號計算所述n個顯示引擎所需的源數(shù)據(jù)行的行號;源數(shù)據(jù)行提取器根據(jù)所述源數(shù)據(jù)行的行號在所述輸入圖像中提取數(shù)據(jù)行并緩存;源數(shù)據(jù)行緩存用于緩存所述源數(shù)據(jù)行提取器提取的輸入圖像中數(shù)據(jù)行。
所述源數(shù)據(jù)行號計算器根據(jù)所述n個顯示引擎輸出的目標圖像的行號計算所述n個顯示引擎所需的源數(shù)據(jù)行號包括:所述n個顯示引擎輸出目標圖像的行號乘縮放因子加0后取整的對應(yīng)所述輸入圖像中的行號,并根據(jù)濾波階數(shù)m在所述輸入圖像中連續(xù)向后再取m-1行。
所述縮放因子為所述輸入圖像的行數(shù)除以所述目標圖像的行數(shù)。
所述源數(shù)據(jù)行提取器緩存的源數(shù)據(jù)行包括:所述源數(shù)據(jù)行號計算器計算所需的源數(shù)據(jù)行的并集。
所述目標圖像數(shù)據(jù)行計算模塊中的所述n個顯示引擎同時根據(jù)所述源數(shù)據(jù)行緩存模塊緩存的源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù)由硬件電路完成。
所述n個顯示引擎中的第j個顯示引擎輸出所述目標圖像的第j,n+j,2n+j,3n+j...行數(shù)據(jù),直至所述目標圖像數(shù)據(jù)行計算模塊輸出所述目標圖像最后一行數(shù)據(jù),j為小于等于所述n的正整數(shù)。
所述目標圖像拼接模塊包括第一緩存組和第二緩存組,所述第一緩存組和第二緩存組分別包括所述n個緩存,所述第一緩存組和第二緩存組對所述目標圖像數(shù)據(jù)行計算模塊輸出的數(shù)據(jù)行執(zhí)行乒乓存儲傳輸。
所述第一緩存組和所述第二緩存組包括第一sram組和第二sram組,所述第一sram組和第二sram組分別包括所述n個sram。
本發(fā)明還提供一種圖像處理方法,包括以下步驟:計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并保存;n個處理器同時根據(jù)所述源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù);根據(jù)所述n個處理器輸出的數(shù)據(jù)行進行圖像拼接,輸出目標圖像;其中,所述n為大于等于1的正整數(shù)。
所述讀取并保存輸入圖像中用于計算的源數(shù)據(jù)行包括:根據(jù)所述n個處理器輸出的目標圖像的行號計算所述n個處理器所需的源數(shù)據(jù)行的行號,根據(jù)所述源數(shù)據(jù)行的行號在所述輸入圖像中提取數(shù)據(jù)行并保存。
所述根據(jù)所述n個處理器輸出的目標圖像的行號計算所述n個處理器所需的源數(shù)據(jù)行號包括:所述n個處理器輸出目標圖像的行號乘縮放因子加0后取整的對應(yīng)所述輸入圖像中的行號,并根據(jù)濾波階數(shù)m在所述輸入圖像中連續(xù)向后再取m-1行。
所述縮放因子為所述輸入圖像的行數(shù)除以所述目標圖像的行數(shù)。
所述根據(jù)所述源數(shù)據(jù)行號在所述輸入圖像中提取的數(shù)據(jù)行包括:所述n個處理器完成計算所需的源數(shù)據(jù)行的并集。
所述n個處理器中的第j個顯示引擎輸出所述目標圖像的第j,n+j,2n+j,3n+j...行數(shù)據(jù),直至輸出所述目標圖像最后一行數(shù)據(jù),j為小于等于所述n的正整數(shù)。
根據(jù)所述n個處理器輸出的數(shù)據(jù)行進行圖像拼接包括:接收所述n個處理器計算的所述目標圖像的n個數(shù)據(jù)行并保存至第一緩存組,所述第一緩存組按行輸出所述n個數(shù)據(jù)行,同時第二緩存組接收所述目標圖像的下一組n個數(shù)據(jù)行并保存;所述第一緩存組和所述第二緩存組對所述n個處理器計算的所述目標圖像的n個數(shù)據(jù)行執(zhí)行乒乓存儲傳輸。
本發(fā)明的有益效果在于,通過提供一種實時在線的圖像分塊處理裝置,多核共享緩存(buffer),不同的目標圖像輸出行由不同的顯示引擎運算產(chǎn)生,按行輸出目標圖像數(shù)據(jù),無需多核處理中間結(jié)果的ddr緩存,實現(xiàn)圖像在線分塊和在線拼接成,達到無邊界處理問題及降低帶寬消耗的效果。本發(fā)明的圖像處理方法,通過多核共享緩存(buffer),不同的目標圖像輸出行由不同的核運算產(chǎn)生,按行輸出目標圖像數(shù)據(jù),使得圖像拼接無邊界處理問題。
附圖說明
下面將結(jié)合附圖及實施例對本發(fā)明作進一步說明,附圖中:
圖1是本發(fā)明一實施例的圖像處理裝置100框圖;
圖2是本發(fā)明一實施例的源數(shù)據(jù)行緩存模塊200電路框圖;
圖3是本發(fā)明一實施例的圖像處理裝置300框圖;
圖4是本發(fā)明一實施例的雙核圖像處理裝置400框圖;
圖5是本發(fā)明一實施例的雙核圖像處理裝置的源數(shù)據(jù)行緩存模塊的源數(shù)據(jù)行提取分配流程示意圖;
圖6是本發(fā)明一實施例的雙核圖像處理裝置在縮放因子為1時的源數(shù)據(jù)行緩存模塊的源數(shù)據(jù)行提取分配流程示意圖;
圖7是本發(fā)明一實施例的雙核圖像處理裝置在縮放因子小于1時的源數(shù)據(jù)行緩存模塊的源數(shù)據(jù)行提取分配流程示意圖;
圖8是本發(fā)明一實施例的雙核圖像處理裝置在縮放因子等于4時的源數(shù)據(jù)行緩存模塊的源數(shù)據(jù)行提取分配流程示意圖;
圖9是本發(fā)明一實施例的雙核圖像處理裝置的目標圖像拼接模塊的工作流程示意圖;
圖10是本發(fā)明一實施例的雙核圖像處理裝置的目標圖像拼接模塊的乒乓buffer工作流程示意圖;
圖11是本發(fā)明一實施例的三核圖像處理裝置500框圖;
圖12是本發(fā)明一實施例的四核圖像處理裝置600框圖;
圖13是本發(fā)明一實施例的圖像處理方法700的流程框圖;
圖14是現(xiàn)有技術(shù)的圖像處理裝置框圖;
具體實施方式
現(xiàn)結(jié)合附圖,對本發(fā)明的較佳實施例作詳細說明。
如圖1所示,是本發(fā)明一實施例的圖像處理裝置100框圖。本實施例的圖像拼接裝置100包括源數(shù)據(jù)行緩存模塊101、目標圖像數(shù)據(jù)行計算模塊103和目標圖像拼接模塊105。源數(shù)據(jù)行緩存模塊101計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并緩存,在具體實施方式中,可緩存在sram組成的行緩存器(linebuffer)中;目標圖像數(shù)據(jù)行計算模塊103可包括n個顯示引擎(de,displayengine),所述n個顯示引擎同時根據(jù)所述源數(shù)據(jù)行緩存模塊緩存的源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù),例如,n可取2,則目標圖像數(shù)據(jù)行計算模塊包括2個顯示引擎de0和de1,de0可輸出目標圖像的奇數(shù)行數(shù)據(jù),de1可輸出目標圖像的偶數(shù)行數(shù)據(jù);本發(fā)明通過變更,可兼容n核分塊在線拼接,并不局限于雙核心。本發(fā)明中的顯示引擎可以是現(xiàn)有技術(shù)的任何圖像計算模塊,可由處理器(例如cpu、dsp等)運行軟件代碼來完成,也可由硬件電路(例如fpga、ic等)完成。目標圖像拼接模塊105根據(jù)目標圖像數(shù)據(jù)行計算模塊103輸出的數(shù)據(jù)行進行圖像拼接,輸出目標圖像;其中,n可為大于等于1的正整數(shù)。通過源數(shù)據(jù)行緩存共享,多顯示引擎同時計算,按行輸出,不同的目標圖像數(shù)據(jù)行由不同的顯示引擎運算產(chǎn)生,其中de0至den共享緩存,de0至den通過讀取共享緩存中的共享源數(shù)據(jù)進行運算,產(chǎn)生目標圖像中的數(shù)據(jù),在線按行拼接,節(jié)省帶寬,兼容軟件單核配置流程,無需軟件配置修改消耗,無水平邊界處理,節(jié)省邊界帶寬消耗。本發(fā)明的技術(shù)方案不局限于超高清視頻,對于高清、標清等多種視頻都適用。
在一實施方式中,源數(shù)據(jù)行緩存模塊計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并緩存可由硬件電路完成,例如,可采用fpga來實現(xiàn)該模塊的功能,也可設(shè)計集成電路來完成該模塊的功能。采用硬件電路完成源數(shù)據(jù)行緩存模塊的功能,可以實現(xiàn)在線數(shù)據(jù)傳輸與存儲,節(jié)省帶寬,提升圖像處理裝置的運行速度。
圖2是本發(fā)明一實施例的源數(shù)據(jù)行緩存模塊200電路框圖,包括源數(shù)據(jù)行號計算器201、源數(shù)據(jù)行提取器203和源數(shù)據(jù)行緩存205,源數(shù)據(jù)行號計算器201可根據(jù)n個顯示引擎輸出的目標圖像的行號計算n個顯示引擎所需的源數(shù)據(jù)行的行號,源數(shù)據(jù)行提取器203可根據(jù)源數(shù)據(jù)行的行號在輸入圖像中提取數(shù)據(jù)行,并將所述數(shù)據(jù)行緩存在源數(shù)據(jù)行緩存205中。在其他實施方式中,也可以采用處理器(例如cpu、gpu等)運行軟件代碼的方式實現(xiàn)源數(shù)據(jù)行緩存模塊的功能。
在一實施方式中,源數(shù)據(jù)行號計算器201根據(jù)n個顯示引擎輸出的目標圖像的行號計算n個顯示引擎所需的源數(shù)據(jù)行的行號的具體計算方法可為:n個顯示引擎輸出目標圖像的行號乘縮放因子加0后取整的對應(yīng)輸入圖像中的行號,并根據(jù)濾波階數(shù)m在輸入圖像中連續(xù)向后再取m-1行,即在n個顯示引擎輸出目標圖像的行號乘縮放因子加0后取整對應(yīng)輸入圖像中的行號后連續(xù)再去m-1行,濾波階數(shù)m可以是有限長單位沖激響應(yīng)濾波器(fir)濾波器的濾波階數(shù)。在具體實施方式中,縮放因子可為輸入圖像的行數(shù)除以目標圖像的行數(shù)。
在一實施方式中,源數(shù)據(jù)行提取器203緩存的源數(shù)據(jù)行可為源數(shù)據(jù)行號計算器計算所需的源數(shù)據(jù)行的并集??晒?jié)省源數(shù)據(jù)行緩存模塊的緩存。在具體實施方式中,源數(shù)據(jù)行提取器203可包括sram,即使用sram作為源數(shù)據(jù)行緩存。
在一實施方式中,目標圖像數(shù)據(jù)行計算模塊中的所述n個顯示引擎同時根據(jù)所述源數(shù)據(jù)行緩存模塊緩存的源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù)可由硬件電路完成,例如可采用fpga來實現(xiàn)該模塊的功能,也可設(shè)計集成電路來完成該模塊的功能。采用硬件電路完成目標圖像數(shù)據(jù)行計算模塊的功能,可以實現(xiàn)在線數(shù)據(jù)傳輸與存儲,節(jié)省帶寬,提升圖像處理裝置的運行速度。
在具體實施方式中,n個顯示引擎中的第j個顯示引擎可輸出目標圖像的第j,n+j,2n+j,3n+j...行數(shù)據(jù),直至所述目標圖像數(shù)據(jù)行計算模塊輸出所述目標圖像最后一行數(shù)據(jù),j為小于等于所述n的正整數(shù)。在具體實施方式中,n個顯示引擎首先計算輸出目標圖像的第0至n-1行數(shù)據(jù),第二次輸出目標圖像的第n至2n-1行數(shù)據(jù),第三次輸出目標圖像的第2n至3n-1行數(shù)據(jù),直至所述目標圖像數(shù)據(jù)行計算模塊輸出所述目標圖像最后一行數(shù)據(jù)。在其他實施方式中,也可以采用處理器(例如cpu、gpu等)運行軟件代碼的方式實現(xiàn)目標圖像數(shù)據(jù)行計算模塊的功能。
在一實施方式中,目標圖像拼接模塊可包括第一緩存組和第二緩存組,第一緩存組和第二緩存組分別包括n個緩存,在具體實施方式中,每個緩存的大小可為輸出圖像每個數(shù)據(jù)行的寬度,第一緩存組和第二緩存組對目標圖像數(shù)據(jù)行計算模塊輸出的數(shù)據(jù)行執(zhí)行乒乓存儲傳輸。在具體實施方式中,乒乓存儲傳輸是指:第一緩存組首先接收目標圖像數(shù)據(jù)行計算模塊計算的目標圖像的第0至n-1行數(shù)據(jù),在第一緩存組輸出目標圖像的第0至n-1行數(shù)據(jù)時,第二緩存組同時接收目標圖像數(shù)據(jù)行計算模塊計算的目標圖像的第n至2n-1行數(shù)據(jù),當?shù)谝痪彺娼M輸出目標圖像的第0至n-1行數(shù)據(jù)后,第二緩存組輸出目標圖像數(shù)據(jù)行計算模塊計算的目標圖像的第n至2n-1行數(shù)據(jù),同時第一緩存組接收目標圖像的第2n至3n-1行數(shù)據(jù),第一緩存組和第二緩存組這樣交替對目標圖像數(shù)據(jù)行計算模塊計算的目標圖像的數(shù)據(jù)行進行緩存和輸出,直至輸出目標圖像最后一行數(shù)據(jù)。
在一實施方式中,第一緩存組和第二緩存組可包括第一sram組和第二sram組,第一sram組和第二sram組對目標圖像數(shù)據(jù)行計算模塊輸出的數(shù)據(jù)行執(zhí)行乒乓存儲傳輸。在具體實施方式中,每個sram的大小可為輸出圖像每個數(shù)據(jù)行的寬度。
圖3是本發(fā)明一實施例的圖像處理裝置300框圖。輸入圖像可保存在ddr中,源數(shù)據(jù)行緩存模塊301首先根據(jù)目標圖像的輸出行計算輸出圖像中的源數(shù)據(jù)行的行號,再根據(jù)所述行號從輸入圖像中提取用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并緩存,源數(shù)據(jù)行可緩存在行緩存(linebuffer)中,在具體實施方式中,linebuffer可由sram組成;顯示圖像數(shù)據(jù)行計算模塊303中的n個顯示引擎de0至den-1同時根據(jù)行緩存內(nèi)緩存的源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù);目標圖像拼接模塊305根據(jù)顯示引擎de0至den-1輸出的數(shù)據(jù)行進行圖像拼接,并輸出目標圖像。多顯示引擎buffer共享、不同的目標圖像數(shù)據(jù)行由不同的顯示引擎運算產(chǎn)生并按行輸出,產(chǎn)生了右邊目標尺寸圖中的數(shù)據(jù)。其中,目標圖中de0行的數(shù)據(jù)由de0運算產(chǎn)生,目標圖中den-1行的數(shù)據(jù)由den-1運算產(chǎn)生。
在具體實施方式中,n可取2。下面以n取2,即雙核處理架構(gòu)為例進行說明。如圖4所示,是本發(fā)明一實施例的雙核圖像處理裝置400框圖,包括源數(shù)據(jù)行緩存模塊401、目標圖像數(shù)據(jù)行計算模塊403和目標圖像拼接模塊405,目標圖像數(shù)據(jù)行計算模塊403包括兩個顯示引擎de0和de1,de0輸出奇數(shù)行,de1輸出偶數(shù)行。
以de0/de1采用2tap垂直縮放為例說明,即顯示引擎的濾波階數(shù)m為2,如圖5所示,源數(shù)據(jù)行緩存模塊401中的line_buffer數(shù)據(jù)共享單元用于緩存從輸入圖像中讀取用于計算目標圖像的源數(shù)據(jù)行。源數(shù)據(jù)行緩存模塊401首先要計算用于計算目標圖像的源數(shù)據(jù)的行號,在具體實施方式中,可采用如下公式:
int(i*scal+0);
int(i*scal+1);
i為de0輸出的行號,scal為縮放因子,scal可以輸入圖像垂直行數(shù)除以目標圖像垂直行數(shù)。其中,de0需要的源數(shù)據(jù)行號可為int(i*scal+0)和int(i*scal+1),de1需要的源數(shù)據(jù)行號可為int((i+1)*scal+0)和int((i+1)*scal+1)。
比如,對于3tap垂直縮放的情況,即顯示引擎的濾波階數(shù)m為3,可采用如下計算公式計算源數(shù)據(jù)行的行號,
int(i*scal+0);
int(i*scal+1);
int(i*scal+2);
對于4tap垂直縮放的情況,即顯示引擎的濾波階數(shù)m為4,可采用如下計算公式計算源數(shù)據(jù)行的行號,
int(i*scal+0);
int(i*scal+1);
int(i*scal+2);
int(i*scal+3);
當scal等于1,即目標圖像尺寸與輸入圖像尺寸相同(1:1)時,如圖6所示,de0在1:1輸出時需要i+0和i+1行輸入圖像源數(shù)據(jù),de1則需要i+1和i+2行源數(shù)據(jù),其中,i為de0輸出的目標圖像的行號,那么換算成輸入圖像源數(shù)據(jù)行為i+0,i+1,i+2,使用共享line_buffer的方式,i+1行數(shù)據(jù)不需要重復(fù)讀取,直接在line_buffer中使用,節(jié)省了linebuffer的開銷。
當scal小于1且大于0時,即目標圖像尺寸比輸入圖像尺寸大(放大)時,如圖7所示,de0/de1在放大輸出時,在計算輸出圖像數(shù)據(jù)行對應(yīng)的在輸入圖像中所需的數(shù)據(jù)行時,可能會重復(fù)利用輸入圖像數(shù)據(jù)行,de0輸出時需要i+0和i+1行輸入圖像源數(shù)據(jù),de1也需要i+0和i+1行源數(shù)據(jù)。例如,采用2tap垂直縮放,當scal=1/4時,首先根據(jù)int(i*scal+0)和int(i*scal+1)計算輸出圖像第1行對應(yīng)輸入圖像的數(shù)據(jù)行,計算結(jié)果是需要輸入圖像中第1和第2行;接下來根據(jù)int(i*scal+0)和int(i*scal+1)計算輸出圖像第2行對應(yīng)輸入圖像的數(shù)據(jù)行,計算結(jié)果仍然是輸入圖像的第1和第2行數(shù)據(jù)。de1在某些放大倍數(shù)下,甚至取數(shù)與de0完全一致,也有不一致的情況,此時與scal等于1類似。
當scal大于1時,目標圖像尺寸比輸入圖像尺寸小(縮小)時,如圖8所示,例如采用2tap垂直縮放,scal等于4,首先根據(jù)int(i*scal+0)和int(i*scal+1)計算輸出圖像第4行對應(yīng)輸入圖像的數(shù)據(jù)行,如圖8所示,計算結(jié)果是需要輸入圖像中第16和第17行;接下來根據(jù)int(i*scal+0)和int(i*scal+1)計算輸出圖像第5行對應(yīng)輸入圖像的數(shù)據(jù)行,計算結(jié)果是輸入圖像的第20和第21行數(shù)據(jù),此時de0和de1沒有共享數(shù)據(jù)。也就是說,在縮小情況下,計算輸出圖像每一行的數(shù)據(jù),都不會出現(xiàn)顯示引擎重復(fù)使用輸入圖像數(shù)據(jù)行的情況。
當de0和de1完成運算之后,如圖9所示,拼接單元可包括buffer0,buffer1,buffer2,buffer3,第一緩存組可包括buffer0,buffer1,第二緩存組可包括buffer2,buffer3。拼接單元把de0和de1輸出的數(shù)據(jù)行重排,使de0和de1按目標圖像行寬的2倍的塊數(shù)據(jù)輸入變成按行掃描數(shù)據(jù)輸出,其中,buffer0,buffer1,buffer2,buffer3為目標圖像行寬度的buffer,通過buffer拼接,實現(xiàn)了目標圖像行寬度的輸出。在具體實施方式中,拼接單元的緩存(buffer)的總數(shù)可以目標圖像數(shù)據(jù)行計算模塊中的顯示引擎(de)的個數(shù)的2倍。
在具體實施方式中,可使用乒乓buffer,如圖10所示。de0和de1計算完成之后,分別將數(shù)據(jù)行結(jié)果line0和line1寫入拼接單元的第一緩存組的buffer0和buffer1中,接著將buffer0和buffer1中的line0和line1輸出,同時第二緩存組的buffer2和buffer3中寫入了de0和de1計算的line2和line3,待line0和line1輸出后,line2和line3輸出,同時buffer0和buffer1中寫入了de0和de1計算的line4和line5,直至計算完目標圖像的所有數(shù)據(jù)行,即完成目標圖像的輸出。在線分塊拼接,無需ddr緩存,節(jié)省了帶寬。
本發(fā)明通過變更兼容n核分塊在線拼接,并不局限于雙核。以三核為例,,如圖11所示,即圖像處理裝置包含三個顯示引擎de0、de1和de2:其中de0輸出0,3,6…行,de1輸出1,4,7…行,de2輸出2,5,8…行。以四核為例,如圖12所示,即圖像處理裝置包含三個顯示引擎de0、de1和de2:其中de0輸出0,4,8…行,de1輸出1,5,9…行,de2輸出2,6,10…行,de3輸出3,7,11…行。以n核為例:其中de0輸出0,n,2n…行,de1輸出1,n+1,2n+1…行,de2輸出2,n+2,2n+2…行,de3輸出3,n+3,2n+3…行,de4輸出4,n+4,2n+4…行,de5輸出5,n+5,2n+5…行,dej輸出j,n+j,2n+j…行(j<=n)。
圖13是本發(fā)明一實施例的圖像處理方法700流程框圖。步驟701首先計算并讀取輸入圖像中用于計算目標圖像數(shù)據(jù)行的源數(shù)據(jù)行并保存,在具體實施方式中,可緩存在sram組成的行緩存器(linebuffer)中;步驟703中n個處理器同時根據(jù)源數(shù)據(jù)行分別計算目標圖像中對應(yīng)行的數(shù)據(jù),n可為大于等于1的正整數(shù);步驟705根據(jù)所述n個處理器輸出的數(shù)據(jù)行進行圖像拼接;步驟707輸出目標圖像。在具體實施方式中,所述n個處理器可以是cpu、gpu或者顯示引擎等處理器。通過源數(shù)據(jù)行緩存共享,多處理器同時計算,按行輸出,不同的目標圖像數(shù)據(jù)行由不同的處理器運算產(chǎn)生,產(chǎn)生目標圖像中的數(shù)據(jù),兼容軟件單核配置流程,無需軟件配置修改消耗,無水平邊界處理。
在一實施方式中,讀取輸入圖像中用于計算的源數(shù)據(jù)行并保存可包括:根據(jù)n個處理器輸出的目標圖像的行號計算n個處理器所需的源數(shù)據(jù)行的行號,根據(jù)源數(shù)據(jù)行的行號在輸入圖像中提取數(shù)據(jù)行并保存。在具體實施方式中,縮放因子可為所述輸入圖像的行數(shù)除以所述目標圖像的行數(shù)。
在一實施方式中,根據(jù)n個處理器輸出的目標圖像的行號計算n個處理器所需的源數(shù)據(jù)行的行號可包括:n個處理器輸出目標圖像的行號乘縮放因子加0后取整的對應(yīng)輸入圖像中的行號,并根據(jù)濾波階數(shù)m在所述輸入圖像中繼續(xù)向后再去m-1行,即在n個顯示引擎輸出目標圖像的行號乘縮放因子加0后取整對應(yīng)輸入圖像中的行號后連續(xù)再取m-1行,濾波階數(shù)m可以是有限長單位沖激響應(yīng)濾波器(fir)濾波器的濾波階數(shù)。在具體實施方式中,在一實施方式中,縮放因子可為輸入圖像的行數(shù)除以目標圖像的行數(shù)。
在一實施方式中,根據(jù)源數(shù)據(jù)行號在所述輸入圖像中提取的數(shù)據(jù)行可包括:n個處理器完成計算所需的源數(shù)據(jù)行的并集??晒?jié)省緩存源數(shù)據(jù)行的緩存。
在一實施方式中,n個處理器中的第j個處理器可輸出目標圖像的第j,n+j,2n+j,3n+j...行數(shù)據(jù),直至輸出所述目標圖像最后一行數(shù)據(jù),j為小于等于所述n的正整數(shù)。
在一實施方式中,n個處理器輸出的數(shù)據(jù)行進行圖像拼接可包括:接收n個處理器計算的目標圖像的n個數(shù)據(jù)行并保存至第一緩存組,第一緩存組按行輸出所述n個數(shù)據(jù)行,同時第二緩存組接收目標圖像的下一組n個數(shù)據(jù)行并保存;第一緩存組和第二緩存組對n個處理器計算的目標圖像的n個數(shù)據(jù)行執(zhí)行乒乓存儲傳輸。直至計算完目標圖像的所有數(shù)據(jù)行,即完成目標圖像的輸出。在線分塊拼接,無需ddr緩存,節(jié)省了帶寬。
應(yīng)當理解的是,以上實施例僅用以說明本發(fā)明的技術(shù)方案,而非對其限制,對本領(lǐng)域技術(shù)人員來說,可以對上述實施例所記載的技術(shù)方案進行修改,或者對其中部分技術(shù)特征進行等同替換;而所有這些修改和替換,都應(yīng)屬于本發(fā)明所附權(quán)利要求的保護范圍。