專利名稱:屏幕顯示控制系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及屏幕顯示控制系統(tǒng),尤其涉及一種對包括視頻層與圖形層在內(nèi)的多層數(shù)據(jù)進(jìn)行混合的屏幕顯示控制系統(tǒng)。
背景技術(shù):
視頻傳送過程中,在MPEG2碼流解碼成圖片送到電視信號編碼器進(jìn)行編碼顯示之前,通常需要和OSD(on screen display屏幕顯示對象)、圖形用戶界面(Graphic User Interface;GUI)、字幕等數(shù)據(jù)等預(yù)先混合成一張圖片,然后再送入電視信號編碼器按場掃描速率進(jìn)行顯示。OSD(on screen display)、圖形用戶界面(Graphic User Interface;GUI)、字幕等數(shù)據(jù)通常是零散存放在SDRAM中,在這里可以統(tǒng)稱為圖形層。傳統(tǒng)的做法是把圖形層以鏈表的形式組織在SDRAM中,并提供一個支持鏈表操作的專用硬件DMA來負(fù)責(zé)自動加載這些數(shù)據(jù)進(jìn)硬件供混合操作。再以場掃描速率的頻率通過硬件DMA從SDRAM中反復(fù)加載到混合硬件。如圖1所示,例如對三層OSD層進(jìn)行處理,利用開始指針start_pointer啟動專用DMA。專用DMA首先從SDRAM中加載鏈表的第一個節(jié)點(diǎn)OSD1層進(jìn)混合引擎,并顯示OSD1層在屏幕上;然后加載第二個節(jié)點(diǎn)OSD2層,并顯示OSD2層在屏幕上;依次類推。DMA根據(jù)起始指針加載第一個節(jié)點(diǎn)OSD1層。第二個節(jié)點(diǎn)OSD2層之后的其他OSD層節(jié)點(diǎn)均由DMA依照鏈接指針依次加載。根據(jù)視頻顯示幀率的要求,通常整個鏈表在1秒之內(nèi)會被反復(fù)加載25次或者30次。
當(dāng)圖形層區(qū)域沒有覆蓋整個屏幕并且顯示效果比較簡單時,需要從SDRAM搬運(yùn)的數(shù)據(jù)相對比較少,采用鏈表形式可以在一定程度上節(jié)省SDRAM帶寬。由于TV屏幕顯示通常采用行掃描方式,因此,鏈表的做法有一個比較明顯的缺點(diǎn)相鄰兩個矩形圖形層區(qū)域在屏幕縱坐標(biāo)上不能有重疊行。這意味著,例如圖2所示的有行重疊的兩個OSD層,必須先合并成一個大的圖形層節(jié)點(diǎn)才能加入鏈表中。
鏈表操作的第二個缺點(diǎn)是實(shí)現(xiàn)graphic層的機(jī)制只能由OSD鏈表機(jī)制來擔(dān)當(dāng),如果支持OSD鏈表機(jī)制的專用DMA只有一個,則硬件只能支持1層graphic層。如果想支持更多的graphic層,就不得不增加圖形層的專用DMA,目前有的方案已經(jīng)提供多至4個OSD專用DMA,但這顯然比較浪費(fèi)硬件資源。
另一種方案是采用多個窗口來實(shí)現(xiàn)混合。這種方案中,對應(yīng)于每一層圖形數(shù)據(jù),如OSD、GUI、字幕等分別配置一個窗口,這樣,即使有行重疊的圖形層,也可以進(jìn)行混合。并且,這種方案中同時對于視頻、光標(biāo)、背景等數(shù)據(jù),也是每一層均分別配置一個窗口。這樣做雖然可以在一定程度上節(jié)省帶寬,但卻限制了總的混合層數(shù)。使得集成電路實(shí)現(xiàn)的面積擴(kuò)大,不利于成本的降低。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種對視頻層與圖形層等多層數(shù)據(jù)進(jìn)行混合的屏幕顯示控制系統(tǒng),它可以將有重疊行或重疊區(qū)域的多層數(shù)據(jù)進(jìn)行混合。并且,該屏幕顯示控制系統(tǒng)利用較少的硬件就能實(shí)現(xiàn)無限層次的混合。
根據(jù)本發(fā)明的屏幕顯示控制系統(tǒng),包括2D模塊,用以對包含OSD層、GUI層和字幕層在內(nèi)的多層數(shù)據(jù)進(jìn)行alpha預(yù)混合,形成全屏的圖形層;以及混合模塊,用以對預(yù)混合形成的圖形層進(jìn)行RGB域到Y(jié)UV域的轉(zhuǎn)換,并將轉(zhuǎn)換后的圖形層與視頻層進(jìn)行alpha混合后形成YUV域的數(shù)據(jù)。
本發(fā)明為簡化設(shè)計,充分利用了一個可以支持兩張圖片進(jìn)行alpha混合操作并可多次重復(fù)操作的2D模塊,以形成一層單一的圖形層。同時在混合模塊中可以對視頻層、光標(biāo)層、以及2D模塊送出的圖形層等數(shù)據(jù)層,分別配置一個窗口。本發(fā)明的2D模塊中完全去掉了OSD鏈表機(jī)制及其相應(yīng)的專用DMA,并能有效地進(jìn)行重疊部分的混合,無需要求過多的硬件配置就能實(shí)現(xiàn)無限多層的混合。
以下附圖為對本發(fā)明示例性實(shí)施例的輔助說明,結(jié)合以下附圖對本發(fā)明實(shí)施例的闡述,是為進(jìn)一步揭示本發(fā)明的特征所在,但并不限制本發(fā)明,圖中相同的參照號代表相應(yīng)的元件、部件或步驟。其中圖1為現(xiàn)有技術(shù)中對三層OSD進(jìn)行處理的工作示意圖。
圖2為現(xiàn)有技術(shù)中對兩層有部分交錯的OSD進(jìn)行處理的工作示意圖。
圖3是本發(fā)明一個實(shí)施例中屏幕顯示控制系統(tǒng)的結(jié)構(gòu)框圖。
圖4為本發(fā)明一個實(shí)施例的2D模塊結(jié)構(gòu)框圖。
圖5為本發(fā)明一個實(shí)施例的2D模塊工作狀態(tài)機(jī)示意圖。
圖6為本發(fā)明一個實(shí)施例的混合模塊的系統(tǒng)引擎結(jié)構(gòu)示意圖。
圖7為圖6所示混合模塊中一個屏幕坐標(biāo)掃描裝置的工作模式示意圖。
圖8為本發(fā)明一個實(shí)施例的混合模塊的結(jié)構(gòu)框圖。
圖9為圖8所示混合模塊的工作狀態(tài)機(jī)的示意圖。
圖10為本發(fā)明的混合模塊中窗口判斷裝置的結(jié)構(gòu)示意圖。
圖11為本發(fā)明的混合模塊中一個讀緩沖裝置的內(nèi)部結(jié)構(gòu)與周邊交互信號示意圖。
圖12為本發(fā)明的屏幕顯示混合方法的一個實(shí)施例的流程圖。
圖13為本發(fā)明的屏幕顯示混合方法的另一個實(shí)施例的流程圖。
具體實(shí)施例方式
在MPEG-2解碼中,通常GUI、OSD和字幕等都是以零散形式存貯在SDRAM中。本發(fā)明為簡化DVB標(biāo)準(zhǔn)中的分層模型,將GUI層、OSD層和字幕層等零散內(nèi)容在送入混合模塊之前進(jìn)行預(yù)先混合,形成一個全屏的圖形層,并存回SDRAM中。本發(fā)明可以通過一個2D模塊對GUI層、OSD層和字幕層等SDRAM中的零散內(nèi)容預(yù)先進(jìn)行alpha混合形成一個全屏的圖形層。
圖3是本發(fā)明一個實(shí)施例中屏幕顯示控制系統(tǒng)的結(jié)構(gòu)簡圖。如圖3所示,這個屏幕顯示控制系統(tǒng)主要包括兩個部分2D模塊11和混合模塊12。2D模塊可以預(yù)先把零散內(nèi)容進(jìn)行alpha混合形成一個全屏的圖形層。SDRAM中的零散內(nèi)容包括GUI層、OSD層和字幕層等,其中每一種都可具有多層,如OSD1層、OSD2層等。在本發(fā)明的一個實(shí)施例中,可以允許支持多種象素格式的GUI層、OSD層和字幕層等,如RGB565,ARGB3454,ARGB4444,ARGB32等格式?;旌夏K可以把預(yù)先混合好的圖形層進(jìn)行RGB到Y(jié)UV的轉(zhuǎn)換后與視頻層進(jìn)行混合。最后把混合得到的YUV域的數(shù)據(jù)送入電視信號編碼器,進(jìn)行屏幕顯示。
圖4是本發(fā)明一個實(shí)施例中2D模塊的硬件結(jié)構(gòu)框圖。2D模塊利用數(shù)據(jù)DMA111從SDRAM中取出數(shù)據(jù),并把數(shù)據(jù)送入源緩沖器。圖中2D模塊設(shè)置了第一源緩沖器113和第二源緩沖器114,這樣,數(shù)據(jù)DMA從SDRAM中取數(shù)據(jù)時,可以一次取兩層數(shù)據(jù)分別送入第一源緩沖器和第二源緩沖器。第一源緩沖器和第二源緩沖器中的數(shù)據(jù)隨后進(jìn)入2Dalpha混合單元116中進(jìn)行預(yù)先混合。在本發(fā)明的實(shí)施例中,第一源緩沖器和第二源緩沖器與2Dalpha混合單元之間可以設(shè)置格式轉(zhuǎn)換單元115,以支持各種象素格式的數(shù)據(jù)層。這樣可以允許圖形層支持多種小存儲位寬的象素格式,從而在一定程度上降低帶寬的需求。根據(jù)本發(fā)明的一個實(shí)施例,如圖4所示,格式轉(zhuǎn)換單元115包括格式轉(zhuǎn)換器1151和1153,可以把如RGB565,ARGB3454,ARGB4444,ARGB32等象素格式在內(nèi)的多種格式統(tǒng)一轉(zhuǎn)換成例如ARGB32象素格式。這樣,2Dalpha混合單元可以在例如ARGB32這一種格式下進(jìn)行預(yù)先混合。圖4所示的實(shí)施例中,調(diào)色板1152與格式轉(zhuǎn)換器1151并行設(shè)置在第一源緩沖器與2Dalpha混合單元之間,類似地,調(diào)色板可在第一源緩沖器和第二源緩沖器與2Dalpha混合單元之間進(jìn)行一些格式種類的象素格式轉(zhuǎn)換,例如把8位ARGB32索引、8位AYUV32索引等轉(zhuǎn)換成ARGB32格式??梢岳斫獾氖牵c2Dalpha混合單元之間的格式轉(zhuǎn)換單元除了本實(shí)施例中列出的格式轉(zhuǎn)換器和調(diào)色板外,還可以配置其它的裝置來進(jìn)行各種象素格式的轉(zhuǎn)換。
2Dalpha混合單元對第一源緩沖器和第二源緩沖器中經(jīng)過格式轉(zhuǎn)換的象素進(jìn)行ALPHA混合操作。通??梢圆扇∪缦鹿竭M(jìn)行計算dst=A*src1+(1-A)*src2=A*(src1-src2)+src2公式中src1和src2分別表示參與混合的層,在此為第一源緩沖器和第二源緩沖器中經(jīng)過格式轉(zhuǎn)換的象素層。假設(shè)src1在src2的上面,其中A為alpha值,表示“不透明度”,取值范圍為0~1,取值為0時,表示完全透明;取值為1時,表示完全不透明。
2Dalpha混合單元可以包含2Dalpha值調(diào)整邏輯,用來調(diào)整ALPHA值。例如,對于某象素點(diǎn),src1為GUI層,src2為OSD層,當(dāng)OSD層數(shù)據(jù)在GUI層上方時,2Dalpha值調(diào)整邏輯把ALPHA值設(shè)為0,則該象素點(diǎn)在混合后OSD層完全覆蓋GUI層。
2Dalpha混合單元將混合好的數(shù)據(jù)送到2D輸出FIFO117中。2D輸出FIFO117與2D返回FIFO112相連接,2D返回FIFO中的數(shù)據(jù)經(jīng)由數(shù)據(jù)DMA送回到SDRAM中。當(dāng)需要利用2D模塊進(jìn)行多層混合,例如三層或三層以上的混合時,2D輸出FIFO的數(shù)據(jù)可以經(jīng)2D返回FIFO送加到SDRAM中,再由數(shù)據(jù)DMA重新送入2D模塊中與SDRAM中的其它層進(jìn)行混合,這樣重復(fù)利用可支持二層ALPHA混合的2D模塊就可實(shí)現(xiàn)多層的混合。
2D模塊中由配置寄存器20來控制系統(tǒng)引擎的工作。配置寄存器接收來自CPU的控制命令,通過中斷通訊機(jī)制來實(shí)現(xiàn)對2D模塊工作引擎的控制。配置寄存器的工作狀態(tài)機(jī)如圖5所示。它包括4種狀態(tài)開始21、空閑23、工作25和中斷服務(wù)程序27狀態(tài)。開始狀態(tài)下,由CPU發(fā)出開始命令給配置寄存器,并配置好其它所有的2D寄存器。隨后,2D模塊進(jìn)入空閑狀態(tài)??臻e狀態(tài)下,如果配置寄存器接收到CPU發(fā)出的將engine_start寄存器置1的信號,配置寄存器將進(jìn)入工作狀態(tài)啟動2D模塊的系統(tǒng)引擎開始工作。2D模塊在工作狀態(tài)下,如果接收到CPU發(fā)出的中斷命令,就會進(jìn)入中斷服務(wù)程序(ISR)狀態(tài)進(jìn)行等待。中斷服務(wù)程序(ISR)下,配置寄存器如果接收到engine_start寄存器置1的信號,則重新返回工作狀態(tài)繼續(xù)工作;如果接收到engine_start寄存器為0的信號,則回到空閑狀態(tài)。
圖6為本發(fā)明一個實(shí)施例的混合模塊的系統(tǒng)引擎結(jié)構(gòu)示意圖。系統(tǒng)引擎包括屏幕坐標(biāo)掃描裝置31、第一矩形窗口裝置33、第二矩形窗口裝置34、讀緩沖裝置35、轉(zhuǎn)換裝置36,以及ALPHA混合裝置37。屏幕坐標(biāo)掃描裝置掃描整個屏幕,并發(fā)出坐標(biāo)掃描流給第一矩形窗口裝置和第二矩形窗口裝置。第一矩形窗口裝置和第二矩形窗口裝置利用窗口機(jī)制,根據(jù)坐標(biāo)掃描流判斷當(dāng)前掃描象素位于哪一個窗口。讀緩沖裝置根據(jù)第一矩形窗口裝置和第二矩形窗口裝置的判斷結(jié)果讀取當(dāng)前屏幕數(shù)據(jù)。第一矩形窗口裝置送出的數(shù)據(jù)定義為臨時層。轉(zhuǎn)換裝置對臨時層數(shù)據(jù)進(jìn)行RGB到Y(jié)UV的格式轉(zhuǎn)換。ALPHA混合裝置對當(dāng)前坐標(biāo)上的視頻象素和臨時層象素進(jìn)行ALPHA混合操作。
圖7為屏幕坐標(biāo)掃描裝置的工作模式示意圖。整個屏幕通??梢远x為一個屏幕坐標(biāo)系,如圖7所示,左上角定義為原點(diǎn)(0,0),向右為x軸的正軸,向下為y軸的正軸。
窗口機(jī)制中的“窗口”是指在這樣的屏幕坐標(biāo)系里面的一個區(qū)域。在本發(fā)明的一個實(shí)施例中,這個區(qū)域?yàn)榫匦螀^(qū)域,它可以由左上角的位置坐標(biāo)和右下角的位置坐標(biāo)來唯一的指定。例如,對應(yīng)于視頻層的顯示區(qū)域,視頻窗口可以由兩個位置坐標(biāo)(Xv1,Yv1)和(Xv2,Yv2)來確定;對應(yīng)于背景層的顯示區(qū)域,背景窗口可由兩個位置坐標(biāo)(Xb1,Yb1)和(Xb2,Yb2)來確定等等。
屏幕坐標(biāo)掃描裝置根據(jù)電視信號編碼器的行場掃描時序,從整個屏幕的左上角開始掃描,直到屏幕的右下角結(jié)束。在奇場的時候掃描奇數(shù)行,在偶場的時候掃描偶數(shù)行。屏幕坐標(biāo)掃描裝置根據(jù)視頻的掃描時序掃描屏幕的同時,穩(wěn)定地發(fā)出坐標(biāo)掃描流。
屏幕坐標(biāo)掃描裝置中設(shè)有水平計數(shù)器和垂直計數(shù)器(未圖示)。水平計數(shù)器沿水平方向?qū)ζ聊挥嫈?shù),垂直計數(shù)器沿垂直方向?qū)ζ聊挥嫈?shù)。這里以640*480的屏幕掃描面積為例來加以說明?;旌夏K采用幀模式進(jìn)行計數(shù)時,水平計數(shù)器的計數(shù)從0到639每次累加1,垂直計數(shù)從0到479每次累加1。混合模塊采用場模式進(jìn)行計數(shù)時,整個屏幕分為奇、偶兩場,首先計數(shù)奇場,再計數(shù)偶場。計數(shù)奇場時,水平計數(shù)器的計數(shù)從0到639每次加1,垂直計數(shù)從0到478每次累加2;計數(shù)偶場時,水平計數(shù)器的計數(shù)從0到639每次加1,垂直計數(shù)從1到479每次累加2。圖5為本發(fā)明一個實(shí)施例的混合模塊的結(jié)構(gòu)框圖。控制寄存器38接收來自CPU(未圖示)的命令信號并控制系統(tǒng)引擎的工作??刂萍拇嫫鞯墓ぷ鳡顟B(tài)機(jī)可參見圖6,包括4種狀態(tài)開始狀態(tài)61、空閑狀態(tài)63、工作狀態(tài)65和錯誤處理狀態(tài)67。在混合模塊開始工作時,首先由CPU寫入控制寄存器,給其中的start(開始)寄存器(未圖示)賦值1,混合模塊就從開始狀態(tài)進(jìn)入到空閑狀態(tài)。在空閑狀態(tài)下,當(dāng)混合模塊檢測到同步信號VSYNC,則重裝影子寄存器(未圖示),并進(jìn)入工作狀態(tài),系統(tǒng)引擎開始進(jìn)行混合工作。當(dāng)混合模塊搬運(yùn)完畢當(dāng)前幀的數(shù)據(jù)后,收到DMA_finish為1的信號,進(jìn)入錯誤處理狀態(tài),在這個狀態(tài)里將把所有的輸入FIFO做一次清空操作,防止有上一幀因?yàn)槌鲥e而殘留的數(shù)據(jù),從而隔離了每一幀相互之間的影響,達(dá)到糾錯的目的。錯誤處理狀態(tài)5個周期后自動返回到空閑狀態(tài)。
在本發(fā)明的一個實(shí)施例中,按照前面的描述,對于GUI層、OSD層和字幕層等零散內(nèi)容可以在送入混合模塊之前由2D模塊進(jìn)行預(yù)先混合,形成一個全屏的圖形層,并存回SDRAM中。因此,第一矩形窗口模塊例如可以直接對背景層、圖形層和光標(biāo)層進(jìn)行三選一的選擇。第一矩形窗口裝置33和第二矩形窗口裝置34分別為其中的各個層配備一個窗口判斷裝置70(參見圖10)。換句話說,在本實(shí)施例中,對于圖形層可配置一個圖形層窗口判斷裝置,對于光標(biāo)層可配置一個光標(biāo)層窗口判斷裝置。在屏幕掃描前,對應(yīng)于圖形層和光標(biāo)層每一層數(shù)據(jù)的顯示區(qū)域分別設(shè)置了一個窗口,可稱為圖形窗口331和光標(biāo)窗口332。各個窗口均含有上述的窗口判斷裝置。圖形窗口由兩個位置坐標(biāo)(Xg1,Yg1)和(Xg2,Yg2)來確定;光標(biāo)窗口由兩個位置坐標(biāo)(Xc1,Yc1)和(Xc2,Yc2)來確定。圖形窗口和光標(biāo)窗口的位置坐標(biāo)在每幀圖像開始時輸入窗口判斷裝置。圖10為窗口判斷裝置的結(jié)構(gòu)示意圖。圖10中每個窗口判斷裝置設(shè)有窗口位置坐標(biāo)寄存器701和窗口比較裝置702。窗口位置坐標(biāo)寄存器可以存放定義窗口的位置坐標(biāo),如圖形窗口的兩個位置坐標(biāo)(Xg1,Yg1)和(Xg2,Yg2),光標(biāo)窗口的兩個位置坐標(biāo)(Xc1,Yc1)和(Xc2,Yc2)。
第二矩形窗口裝置可對視頻層數(shù)據(jù)進(jìn)行判斷,與第一矩形窗口裝置原理類似,其中的視頻窗口341含有視頻層窗口判斷裝置70。視頻窗口341可由兩個位置坐標(biāo)(Xv1,Yv1)和(Xv2,Yv2)來確定。視頻層窗口判斷裝置70也設(shè)有窗口位置坐標(biāo)寄存器701和窗口比較裝置702。視頻窗口的位置坐標(biāo)(Xv1,Yv1)和(Xv2,Yv2)在每幀圖像開始時輸入窗口判斷裝置的窗口位置坐標(biāo)寄存器。
屏幕坐標(biāo)掃描裝置送出的坐標(biāo)掃描流并行地通過視頻層窗口判斷裝置、圖形層窗口判斷裝置、光標(biāo)層窗口判斷裝置。每個窗口判斷裝置中的窗口比較裝置對坐標(biāo)掃描流和各個窗口的位置坐標(biāo)分別進(jìn)行比較。例如,視頻層窗口判斷裝置將坐標(biāo)掃描流與視頻層窗口的位置坐標(biāo)(Xv1,Yv1)和(Xv2,Yv2)進(jìn)行比較,判斷當(dāng)前的掃描象素是否位于視頻窗口之內(nèi)。如果當(dāng)前掃描象素(X,Y),滿足該落入條件,落入兩個位置坐標(biāo)(Xv1,Yv1)和(Xv2,Yv2)之間,即Xv1≤X≤Xv2;Yv1≤Y≤Yv2則當(dāng)前掃描象素落入該窗口之內(nèi)。
第二矩形窗口裝置設(shè)有視頻FIFO 342,可以接收來自視頻解碼器的視頻數(shù)據(jù)。當(dāng)視頻層窗口判斷裝置判斷出當(dāng)前掃描象素落入視頻窗口之內(nèi),視頻層窗口判斷裝置產(chǎn)生視頻窗口有效信號xy_in_video,并將該信號送入讀緩沖裝置。相應(yīng)地,讀緩沖裝置從視頻FIFO中加載視頻象素。
第一矩形窗口裝置設(shè)有圖形FIFO 334與圖形DMA 333。圖形DMA可以從外部存儲器中搬運(yùn)圖形數(shù)據(jù),并存放在圖形FIFO中。外部存儲器可以是SDRAM等。當(dāng)圖形層窗口判斷裝置判斷出當(dāng)前掃描象素落入圖形窗口之內(nèi),圖形層窗口判斷裝置產(chǎn)生圖形窗口有效信號xy_in_graphic,并將該信號送入讀緩沖裝置。相應(yīng)地,讀緩沖裝置從圖形FIFO中加載圖形象素。
光標(biāo)數(shù)據(jù)和背景數(shù)據(jù)均為混合模塊的系統(tǒng)引擎內(nèi)置。例如,在本發(fā)明的一個實(shí)施例中,讀緩沖裝置中包含可存放光標(biāo)數(shù)據(jù)的小容量SRAM和存放背景數(shù)據(jù)的寄存器,光標(biāo)數(shù)據(jù)和背景數(shù)據(jù)存放在讀緩沖裝置內(nèi)。寄存器中背景數(shù)據(jù)的值可以適當(dāng)調(diào)整來改變背景的顏色。當(dāng)光標(biāo)層窗口判斷裝置判斷出當(dāng)前掃描象素落入光標(biāo)窗口之內(nèi),光標(biāo)層窗口判斷裝置產(chǎn)生光標(biāo)窗口有效信號xy_in_cursor,并將該信號送入讀緩沖裝置。相應(yīng)地,讀緩沖裝置從系統(tǒng)引擎內(nèi)部模塊中加載光標(biāo)數(shù)據(jù)。如果當(dāng)前選擇背景層輸入,則讀緩沖裝置從系統(tǒng)引擎內(nèi)部模塊中加載背景數(shù)據(jù)。
在本發(fā)明一個實(shí)施例的系統(tǒng)定義中,當(dāng)數(shù)據(jù)均未出現(xiàn)時以背景來填充。背景層不配置專門的窗口判斷裝置,只在當(dāng)圖形、光標(biāo)與視頻窗口均無數(shù)據(jù)輸入時,認(rèn)為當(dāng)前掃描象素落入背景窗口,而選擇背景層輸入。
在本發(fā)明的其他實(shí)施例中,第一矩形窗口裝置可以對圖形層和光標(biāo)層進(jìn)行二選一的選擇。背景層則放在第二矩形窗口裝置中處理。當(dāng)?shù)诙匦未翱谘b置中的視頻層窗口判斷裝置判斷出當(dāng)前坐標(biāo)掃描象素不落在視頻層窗口,就認(rèn)為當(dāng)前掃描象素落入背景窗口,而選擇背景層輸入。
圖11為讀緩沖裝置的內(nèi)部結(jié)構(gòu)與周邊交互信號示意圖。讀緩沖裝置35具有輸入寄存器351和輸出寄存器353,并設(shè)有協(xié)議解析裝置355協(xié)調(diào)輸入寄存器和輸出寄存器中數(shù)據(jù)的讀取和發(fā)送。輸入寄存器可暫時存放從前面的第一矩形窗口裝置和第二矩形窗口裝置中接收的信號,如視頻窗口有效信號xy_in_video、光標(biāo)窗口有效信號xy_in_cursor等。對于圖形FIFO和視頻FIFO,當(dāng)FIFO中當(dāng)前需要輸出的數(shù)據(jù)已經(jīng)放在FIFO端口上,等待下級模塊讀取時,圖形FIFO的圖形等待信號G_fifo_lasting為高,或者視頻FIFO的視頻等待信號V_fifo_lasting為高。協(xié)議解析裝置如果同時接收到圖形窗口有效信號xy_in_graphic和有效的圖形可讀信號G_fifo_lasting,會發(fā)出一個對應(yīng)該圖形FIFO的圖形可讀信號G_fifo_reading,并取走圖形FIFO端口上的數(shù)據(jù)。如果協(xié)議解析裝置同時接收到視頻窗口有效信號xy_in_video和視頻等待信號V_fifo_lasting時,會發(fā)出一個對應(yīng)該圖形FIFO的圖形可讀信號V_fifo_reading,并取走視頻FIFO端口上的數(shù)據(jù)。
讀緩沖裝置同時與轉(zhuǎn)換裝置和ALPHA混合裝置相連接。轉(zhuǎn)換裝置可以把RGB格式的數(shù)據(jù)轉(zhuǎn)換到Y(jié)UV格式。在本發(fā)明的一個實(shí)施例中,當(dāng)讀緩沖裝置中的數(shù)據(jù)為臨時層時,即背景層、圖形層和光標(biāo)層時,該數(shù)據(jù)先送入轉(zhuǎn)換裝置,從RGB格式轉(zhuǎn)換到Y(jié)UV格式,再送入ALPHA混合裝置。當(dāng)讀緩沖裝置中的數(shù)據(jù)為視頻層時,該數(shù)據(jù)直接送入ALPHA混合裝置。
ALPHA混合裝置對當(dāng)前坐標(biāo)上的視頻象素和臨時層象素進(jìn)行ALPHA混合操作。通??梢圆扇∪缦鹿竭M(jìn)行計算dst=A*src1+(1-A)*src2=A*(src1-src2)+src2公式中src1和src2分別表示參與混合的層,假設(shè)src1在src2的上面,其中A為ALPHA值,表示“不透明度”,取值范圍為0~1,取值為0時,表示完全透明;取值為1時,表示完全不透明。
ALPHA混合裝置可以包含ALPHA值調(diào)整裝置(未圖示),用來調(diào)整ALPHA值。例如,對于某象素點(diǎn),src1為圖形層,src2為視頻層,當(dāng)視頻層數(shù)據(jù)在圖形層上方時,ALPHA值調(diào)整裝置把ALPHA值設(shè)為0,則該象素點(diǎn)在混合后視頻層完全覆蓋圖形層。
圖12為本發(fā)明一個實(shí)施例的屏幕顯示混合方法流程圖,按圖12所示,本發(fā)明的混合方法包括以下步驟步驟S1.設(shè)置多個窗口,并為每個窗口定義窗口位置坐標(biāo)。多個窗口中包括視頻窗口、圖形窗口和光標(biāo)窗口。
步驟S2.掃描屏幕,并送坐標(biāo)掃描流到第一和第二矩形窗口裝置。在本實(shí)施例中,屏幕坐標(biāo)掃描裝置對屏幕進(jìn)行掃描,并把得到的當(dāng)前掃描象素以坐標(biāo)掃描流的形式送往第一矩形窗口裝置和第二矩形窗口裝置。
步驟S3.當(dāng)前掃描象素與上述第一矩形窗口裝置和第二矩形窗口裝置中各窗口的窗口位置坐標(biāo)進(jìn)行比較,以確定當(dāng)前掃描象素所在的窗口。在本實(shí)施例中,第一矩形窗口裝置和第二矩形窗口裝置分別將當(dāng)前掃描象素與模塊中各窗口的窗口位置坐標(biāo)進(jìn)行比較,以確定當(dāng)前掃描象素所在的窗口,其中第一矩形窗口裝置對圖形、光標(biāo)、背景等數(shù)據(jù)進(jìn)行多選一的選擇,形成一層臨時層,第二矩形窗口裝置將當(dāng)前掃描象素與視頻窗口進(jìn)行比較,以確定當(dāng)前掃描象素是否位于視頻窗口。
步驟S4.按照當(dāng)前掃描象素所在窗口,傳輸數(shù)據(jù)到讀緩沖裝置。在本實(shí)施例中,如果當(dāng)前掃描象素在圖形窗口,第一矩形窗口裝置從圖形FIFO中傳輸圖形數(shù)據(jù)到讀緩沖裝置;如果當(dāng)前掃描象素在視頻窗口,第二矩形窗口裝置從視頻FIFO中傳輸視頻數(shù)據(jù)到讀緩沖裝置;如果當(dāng)前掃描象素在光標(biāo)窗口,就直接從系統(tǒng)引擎中讀取光標(biāo)數(shù)據(jù)到讀緩沖裝置,如果當(dāng)前掃描象素不落在已定義的坐標(biāo)窗口,則從系統(tǒng)引擎中讀取背景數(shù)據(jù)到讀緩沖裝置。
步驟S5.判斷讀緩沖裝置中的數(shù)據(jù)是否為臨時層。在本實(shí)施例中,當(dāng)判斷讀緩沖裝置中的數(shù)據(jù)為臨時層時,即背景、圖形或光標(biāo)數(shù)據(jù)時,在步驟S6,將該數(shù)據(jù)先送入轉(zhuǎn)換裝置,從RGB格式轉(zhuǎn)換到Y(jié)UV格式,再送入ALPHA混合裝置;當(dāng)判斷讀緩沖裝置中的數(shù)據(jù)不為臨時層時,即默認(rèn)為視頻層時,該數(shù)據(jù)直接送入ALPHA混合裝置。
步驟S6.ALPHA混合。在本實(shí)施例中,把YUV域的臨時層數(shù)據(jù)與視頻層數(shù)據(jù)進(jìn)行ALPHA混合。
步驟S2中,屏幕坐標(biāo)掃描裝置根據(jù)視頻的奇偶場時序,穩(wěn)定地發(fā)出坐標(biāo)掃描流,該坐標(biāo)流掃描并行地通過各矩形窗口裝置處理,從而判斷出當(dāng)前掃描象素是位于哪一個窗口之內(nèi)。
步驟S4中系統(tǒng)引擎中的背景數(shù)據(jù)先由軟件設(shè)置在RGB格式,再從系統(tǒng)引擎中讀取到讀緩沖裝置。
步驟S6中背景層、圖形層和光標(biāo)層在硬件路徑上共用一個RGB顏色域到Y(jié)UV顏色域的轉(zhuǎn)換引擎。
圖13為本發(fā)明另一個實(shí)施例的屏幕顯示混合方法流程圖,與圖12所示實(shí)施例的不同之處在于,其中的背景層不作為臨時層,而是在系統(tǒng)引擎中由軟件直接設(shè)置為YUV格式,不需要進(jìn)行RGB到Y(jié)UV的轉(zhuǎn)換,就可從系統(tǒng)引擎中讀取到讀緩沖裝置,直接參與ALPHA混合操作。按圖13所示,該實(shí)施例的混合方法的步驟S3′中其中第一矩形窗口裝置僅對圖形、光標(biāo)等數(shù)據(jù)進(jìn)行多選一的選擇,形成一層臨時層。
作為一種變換,在本發(fā)明的一個實(shí)施例中,上述的混合模塊也可以用傳統(tǒng)的鏈表形式的模塊或多窗口形式的模塊來替代。
上述實(shí)施例只是為了進(jìn)一步更清楚地描述本發(fā)明,而非對本發(fā)明的限制。應(yīng)該可以理解,本發(fā)明并不限于以上實(shí)施例所做的闡述,任何基于本發(fā)明的修改和本發(fā)明的等同物都應(yīng)涵蓋在本發(fā)明的權(quán)利要求的精神和范圍之內(nèi)。
權(quán)利要求
1.一種屏幕顯示控制系統(tǒng),包括2D模塊,用以對包含OSD層、GUI層和字幕層在內(nèi)的多層數(shù)據(jù)進(jìn)行alpha預(yù)混合,形成全屏的圖形層;混合模塊,用以對預(yù)混合形成的圖形層進(jìn)行RGB域到Y(jié)UV域的轉(zhuǎn)換,并將轉(zhuǎn)換后的圖形層與視頻層進(jìn)行alpha混合后形成YUV域的數(shù)據(jù)。
2.如權(quán)利要求1所述的屏幕顯示控制系統(tǒng),其特征在于,所述2D模塊包括數(shù)據(jù)DMA,用以從SDRAM中取出包含OSD層、GUI層和字幕層在內(nèi)的多層數(shù)據(jù);多個源緩沖器,分別從數(shù)據(jù)DMA接收不同層的數(shù)據(jù);2D alpha混合單元,對來自多個源緩沖器的不同層的數(shù)據(jù)進(jìn)行alpha預(yù)混合;2D輸出FIFO和2D返回FIFO,用以將預(yù)混合后的數(shù)據(jù)經(jīng)由數(shù)據(jù)DMA送回到SDRAM。
3.如權(quán)利要求2所述的屏幕顯示控制系統(tǒng),其特征在于,所述2D模塊還包括用以將不同的像素格式轉(zhuǎn)換成統(tǒng)一的像素格式的格式轉(zhuǎn)換單元。
4.如權(quán)利要求1所述的屏幕顯示控制系統(tǒng),其特征在于,所述混合模塊包括屏幕坐標(biāo)掃描裝置,掃描屏幕,產(chǎn)生以坐標(biāo)掃描流形式的當(dāng)前掃描像素;第一矩形窗口裝置,根據(jù)所述坐標(biāo)掃描流判斷當(dāng)前掃描像素位于包括圖形窗口和光標(biāo)窗口在內(nèi)的多個窗口中的一個窗口,并對包括圖形層和光標(biāo)層在內(nèi)的數(shù)據(jù)進(jìn)行多選一的選擇形成一個RGB域的臨時層;第二矩形窗口裝置,根據(jù)所述坐標(biāo)掃描流判斷當(dāng)前掃描像素位于一個視頻窗口;讀緩沖裝置,根據(jù)當(dāng)前掃描像素所在的窗口,分別從第一矩形窗口裝置接收所傳輸?shù)膱D形層數(shù)據(jù)和從第二矩形窗口裝置接收所傳輸?shù)囊曨l層數(shù)據(jù);轉(zhuǎn)換裝置,對所述的RGB域的臨時層數(shù)據(jù)進(jìn)行RGB域到Y(jié)UV域的格式轉(zhuǎn)換;Alpha混合裝置,對YUV域的臨時層數(shù)據(jù)與視頻層數(shù)據(jù)進(jìn)行Alpha混合。
5.如權(quán)利要求4所述的屏幕顯示控制系統(tǒng),其特征在于,所述RGB域的臨時層是對包括圖形層,光標(biāo)層和背景層在內(nèi)的數(shù)據(jù)進(jìn)行多選一的選擇形成的RGB域的臨時層。
6.如權(quán)利要求4或5所述的屏幕顯示控制系統(tǒng),其特征在于,所述窗口含有窗口判斷裝置,該窗口判斷裝置包括用以存放窗口位置坐標(biāo)的窗口位置坐標(biāo)寄存器,以及用以對所述坐標(biāo)掃描流和所述窗口位置坐標(biāo)進(jìn)行比較的窗口比較裝置。
7.如權(quán)利要求4或5所述的屏幕顯示控制系統(tǒng),其特征在于,所述讀緩沖裝置包括用以存放光標(biāo)層數(shù)據(jù)和/或背景層數(shù)據(jù)的存儲器。
8.如權(quán)利要求4或5所述的屏幕顯示控制系統(tǒng),其特征在于,所述RGB域的臨時層是對包括圖形層,光標(biāo)層和背景層在內(nèi)的數(shù)據(jù)進(jìn)行多選一的選擇形成的RGB域的臨時層。
9.如權(quán)利要求4或5所述的屏幕顯示控制系統(tǒng),其特征在于,所述讀緩沖裝置包括輸入寄存器、輸出寄存器以及用以協(xié)調(diào)輸入寄存器和輸出寄存器中數(shù)據(jù)的讀取和發(fā)送的協(xié)議解析裝置。
10.如權(quán)利要求1所述的屏幕顯示控制系統(tǒng),其特征在于,所述混合模塊為鏈表形式的混合模塊或多窗口形式的混合模塊。
全文摘要
屏幕顯示控制系統(tǒng),包括2D模塊,用以對包含OSD層、GUI層和字幕層在內(nèi)的多層數(shù)據(jù)進(jìn)行alpha預(yù)混合,形成全屏的圖形層;以及混合模塊,用以對預(yù)混合形成的圖形層進(jìn)行RGB域到Y(jié)UV域的轉(zhuǎn)換,并將轉(zhuǎn)換后的圖形層與視頻層進(jìn)行alpha混合后形成YUV域的數(shù)據(jù)。本發(fā)明充分利用了一個可以支持兩張圖片進(jìn)行alpha混合操作并可多次重復(fù)操作的2D模塊,以形成一層單一的圖形層。同時在混合模塊中可以對視頻層、光標(biāo)層、以及2D模塊送出的圖形層等數(shù)據(jù)層,分別配置一個窗口。本發(fā)明的2D模塊中完全去掉了OSD鏈表機(jī)制及其相應(yīng)的專用DMA,并能有效地進(jìn)行重疊部分的混合,無需要求過多的硬件配置就能實(shí)現(xiàn)無限多層的混合。
文檔編號H04N5/445GK1964442SQ20051011014
公開日2007年5月16日 申請日期2005年11月9日 優(yōu)先權(quán)日2005年11月9日
發(fā)明者周振亞, 袁焱 申請人:上海奇碼數(shù)字信息有限公司