一種不同解析度顯示設備同步顯示的系統及方法與流程
2023-07-27 05:19:41

本發明實施例涉及顯示技術領域,尤其涉及一種不同解析度顯示設備同步顯示的系統及方法。
背景技術:
隨著科技的不斷發展,越來越多的用戶對使用多個顯示設備進行圖像或視頻進行同步顯示的需求越來越高。
現有技術中,使用不同解析度的顯示設備對圖像或視頻進行同步顯示時,首先獲取第一類型顯示器的橫向解析度和縱向解析度,將顯示數據保存至第一緩衝模塊,並將保存在第一緩衝模塊的數據發送至第一類型顯示器,第一類型顯示器進行顯示,然後獲取第二類型顯示器的橫向解析度和縱向解析度,並將第一緩衝模塊中保存的數據進行處理後保存至第二緩衝模塊,然後將第二緩衝模塊保存的數據發送至第二類型顯示器進行顯示,從而實現不同解析度的顯示設備對圖像或視頻進行同步顯示。
然而,上述方法中,需要同時使用兩個緩衝模塊,容易受到硬體資源限制,當系統中只有一個緩衝模塊時,則不可同時保存兩個不同的數據。若將同一緩衝模塊中保存的數據發送至兩個不同解析度的顯示器時,會存在顯示數據與顯示設備不匹配,無法對顯示數據進行正常顯示,降低用戶體驗。
技術實現要素:
本發明提供一種不同解析度顯示設備同步顯示的系統及方法,以實現使用不同解析度的顯示設備對圖像或視頻進行同步顯示,不受硬體資源限制,提高用戶體驗。
第一方面,本發明實施例提供了一種不同解析度顯示設備同步顯示的系統,該系統包括:X-sever(X-伺服器)模塊、DDX(Device depentent X,設備相關層)模塊、libdrm(圖形接口)模塊和DRM(Direct Rendering Manager,直接渲染管理)模塊,還包括:
圖像處理模塊,與所述DRM模塊連接,用於根據接收到的所述DRM模塊發送的顯示設備信息處理待顯示數據並將處理後的數據發送至所述DRM模塊;
第一類型顯示設備,與所述DRM模塊連接,用於根據所述DRM模塊控制顯示待顯示數據;
第二類型顯示設備,與所述DRM模塊連接,用於根據所述DRM模塊控制顯示所述處理後的數據。
第二方面,本發明實施例還提供了一種不同解析度顯示設備同步顯示的方法,該方法包括:
X-sever模塊根據第一類型顯示設備的解析度通過DDX模塊向libdrm模塊發送申請framebuffer(幀緩衝)指令並將待顯示數據寫入所述framebuffer;
所述libdrm模塊將所述framebuffer中的待顯示數據發送至DRM模塊;
所述DRM模塊根據預存的顯示設備信息控制顯示設備顯示所述待顯示數據;
其中,所述DRM模塊根據預存的顯示設備信息控制顯示設備顯示所述待顯示數據包括:
若所述DRM模塊根據所述顯示設備信息中顯示設備ID確定顯示設備為第一類型顯示設備,所述DRM模塊控制所述第一類型顯示設備顯示所述framebuffer中的待顯示數據;
若所述DRM模塊根據所述顯示設備信息中顯示設備ID確定顯示設備為第二類型顯示設備,所述DRM模塊根據所述顯示設備信息中的解析度參數將所述顯示設備信息中對應的信息發送至圖像處理模塊;
所述圖像處理模塊根據接收到的所述DRM模塊發送的信息處理所述待顯示數據並將處理後的數據發送至所述DRM模塊;
所述DRM模塊控制所述第二類型顯示設備顯示所述處理後的數據。
本發明提供的系統包括X-sever模塊、DDX模塊、libdrm模塊和DRM模塊以及包括圖像處理模塊、第一類型顯示設備和第二類型顯示設備,可以通過圖像處理模塊,對待顯示數據進行處理,使得處理後的數據與第二類型設備的解析度匹配,並將處理後的數據顯示於第二類型顯示設備中,進而實現在不同類型的顯示設備上同步顯示圖像或視頻,不受硬體資源限制,提高用戶體驗。
附圖說明
圖1為本發明實施例一中的一種不同解析度顯示設備同步顯示的系統的結構框圖;
圖2是本發明實施例二中的一種不同解析度顯示設備同步顯示的方法的流程圖。
具體實施方式
下面結合附圖和實施例對本發明作進一步的詳細說明。可以理解的是,此處所描述的具體實施例僅僅用於解釋本發明,而非對本發明的限定。另外還需要說明的是,為了便於描述,附圖中僅示出了與本發明相關的部分而非全部結構。
實施例一
圖1為本發明實施例一提供的一種不同解析度顯示設備同步顯示的系統的結構框圖,本實施例可適用於使用不同解析度的顯示設備同步顯示的情況,該系統可以執行不同解析度顯示設備同步顯示的方法。參見圖1,該系統具體包括:X-sever模塊110、DDX模塊120、libdrm模塊130和DRM模塊140以及圖像處理模塊150、第一類型顯示設備160和第二類型顯示設備170,其中,
圖像處理模塊150與DRM模塊140連接,用於根據接收到的DRM模塊140發送的顯示設備信息處理待顯示數據並將處理後的數據發送至DRM模塊;第一類型顯示設備160,與DRM模塊140連接,用於根據DRM模塊140控制顯示待顯示數據;第二類型顯示設備170,與DRM模塊140連接,用於根據DRM模塊140控制顯示處理後的數據。
Linux系統中與圖形有關的層次可分為用戶、桌面環境、GUI工具集、顯示服務層、內核層及硬體層。其中,X-Server是Linux系統裡面圖形接口伺服器的簡稱,位於顯示服務層,當用戶、桌面環境和\或GUI工具集產生與圖形相關的操作時,X-Server模塊110根據配置文件中顯示設備的解析度參數通過調用DDX模塊120向libdrm模塊130申請與顯示設備的解析度參數相同的framebuffer,用於存放待顯示數據。
X-Server模塊110申請framebuffer後,libdrm模塊130通過DDX模塊120將framebuffer的地址反饋至X-Server模塊110,從而X-Server模塊110根據framebuffer的地址將待顯示數據寫入framebuffer中。其中,libdrm模塊130封裝圖形相關接口,是連接X-Server模塊110與DRM模塊140的一個中間接口
待顯示數據寫入framebuffer後,libdrm模塊130將framebuffer中的待顯示數據發送至DRM模塊140。
其中,DRM模塊140位於內核層,是一個內核級的設備驅動,可直接控制顯示設備進行圖像或視頻的輸出。
優選的,DRM模塊140中預存有顯示設備信息,其中顯示設備信息包括顯示設備ID、顯示設備類型、解析度參數及其對應關係以及數據處理指令、第一類型顯示設備160與第二類型顯示設備170橫向解析度的比例和縱向解析度的比例。
DRM模塊140可根據預存的顯示設備信息中的顯示設備ID確定顯示設備類型。本發明中包括兩種類型的顯示設備,兩種類型的顯示設備具有不同的解析度參數,其中第一類型顯示設備160為兩種類型的顯示設備中任意一種類型的顯示設備,第二類型顯示設備170為兩種類型的顯示設備中另一種類型的顯示設備。每種類型的顯示設備包括一個或多個,舉例而言,系統中共包括4個顯示設備,其中第一顯示設備和第三顯示設備為第一類型顯示設備160,第二顯示設備和第四顯示設備為第二類型顯示設備170。示例性的,第一顯示設備、第二顯示設備、第三顯示設備和第四顯示設備對應的顯示設備ID依次為ID0、ID1、ID2和ID3,則顯示設備ID可唯一標識顯示設備,並根據與其對應的顯示設備類型,可確定每個顯示設備所屬類型。
優選的,對於不同類型的顯示設備,DRM模塊140進行不同的操作。示例性的,本發明中可在配置文件中設置第一類型顯示設備160的解析度參數,從而X-Server模塊110可根據配置文件中第一類型顯示設備160的解析度參數通過調用DDX模塊120向libdrm模塊130申請與第一類型顯示設備160的解析度參數相同的framebuffer,則若顯示設備為第一類型顯示設備,DRM模塊140控制該設備直接顯示framebuffer中的待顯示數據;若顯示設備為第二類型顯示設備170,由於其解析度參數與framebuffer的大小不匹配,若DRM模塊140直接控制其顯示framebuffer中的待顯示數據,可能導致待顯示數據無法顯示完整,本發明中DRM模塊140可將預存的顯示設備信息中的數據處理指令或將第一類型顯示設備160與第二類型顯示設備170橫向解析度的比例和縱向解析度的比例發送至圖像處理模塊150,圖像處理模塊150根據接收到的DRM模塊140發送的信息對framebuffer中的待顯示數據進行相應處理,並將處理後的數據發送至DRM模塊140,進而DRM模塊140控制該顯示設備顯示處理後的顯示數據。
本實施例的技術方案,通過將系統包括X-sever模塊、DDX模塊、libdrm模塊和DRM模塊以及包括圖像處理模塊、第一類型顯示設備和第二類型顯示設備,實現通過圖像處理模塊對待顯示數據進行處理,使得處理後的數據與第二類型設備的解析度匹配,並將處理後的數據顯示於第二類型顯示設備中,進而實現在不同類型的顯示設備上同步顯示圖像或視頻,不受硬體資源限制,提高用戶體驗。
實施例二
本實施例以上述實施例為基礎,對DRM模塊140與圖像處理模塊150進行進一步優化。其中,DRM模塊140具體用於:
若DRM模塊140根據顯示設備信息中解析度參數確定第一類型顯示設備160的橫向解析度與第二類型顯示設備170的縱向解析度相等且第一類型顯示設備160的縱向解析度與第二類型顯示設備170的橫向解析度相等,DRM模塊140將顯示設備信息中數據處理指令發送至圖像處理模塊150;其中,數據處理指令為旋轉90度;
相應的,圖像處理模塊150具體用於:
圖像處理模塊150根據接收到的數據處理指令,將待顯示數據旋轉90度,,並將處理後的數據發送至DRM模塊140。
顯示設備的解析度參數可用A*B表示,其中A為顯示設備的橫向解析度,B為顯示設備的縱向解析度。示例性的,若DRM模塊140預存的顯示設備信息中第一類型顯示設備160的解析度參數為a*b,第二類型顯示設備170的解析度參數為b*a,則DRM模塊140將預存的顯示設備信息中旋轉90度的數據處理指令發送至圖像處理模塊150,圖像處理模塊150接收到數據處理指令後,將framebuffer中的待顯示數據旋轉90度並將旋轉90度後的數據發送至DRM模塊140,DRM模塊140控制第二類型顯示設備170顯示旋轉90度後的數據。其中,旋轉方向與第二類型顯示設備170相對於第一類型顯示設備160的旋轉方向相同。
本發明實施例的技術方案,通過若DRM模塊根據顯示設備信息中解析度參數確定第一類型顯示設備的橫向解析度與第二類型顯示設備的縱向解析度相等且第一類型顯示設備的縱向解析度與第二類型顯示設備的橫向解析度相等,DRM模塊將顯示設備信息中旋轉90度的數據處理指令發送至圖像處理模塊;圖像處理模塊根據接收到的數據處理指令,將待顯示數據旋轉90度。實現在第一類型顯示設備的橫向解析度與第二類型顯示設備的縱向解析度相等且第一類型顯示設備的縱向解析度與第二類型顯示設備的橫向解析度相等的情況下,將待顯示數據旋轉90度後顯示於第二類型顯示設備中,從而使得處理後的數據與第二類型顯示設備的解析度參數匹配,將需要顯示的圖像或視頻完整顯示在第二類型顯示設備中,實現具有不同解析度參數的不同類型的顯示設備對圖像或視頻同步顯示。
實施例三
本實施例以上述實施例為基礎,對DRM模塊140與圖像處理模塊150進行進一步優化。其中,DRM模塊140具體用於:
若DRM模塊140根據顯示設備信息中解析度參數確定第一類型顯示設備160的橫向解析度與第二類型顯示設備170的縱向解析度不相等或第一類型顯示設備160的縱向解析度與第二類型顯示設備170的橫向解析度不相等,則DRM模塊140將顯示設備信息中第一類型顯示設備160與第二類型顯示設備170橫向解析度的比例和縱向解析度的比例發送至圖像處理模塊150;
相應的,圖像處理模塊150具體用於:
圖像處理模塊150根據橫向解析度的比例和縱向解析度的比例相應調節待顯示數據並將處理後的數據發送至DRM模塊140。
示例性的,若DRM模塊140預存的顯示設備信息中第一類型顯示設備160的解析度參數為a*b,第二類型顯示設備170的解析度參數為c*d,則DRM模塊140將顯示設備信息中第一類型顯示設備160與第二類型顯示設備170橫向解析度的比例a/c和縱向解析度的比例b/d發送至圖像處理模塊150,圖像處理模塊150根據接收到的橫向解析度的比例a/c和縱向解析度的比例b/d相應將framebuffer中的待顯示數據調節,如framebuffer中的待顯示數據所表示的待顯示圖像的解析度參數為e*f,則可根據橫向解析度的比例a/c和縱向解析度的比例b/d將待顯示數據所表示的待顯示圖像橫向解析度e調節為e1=e/(a/c),縱向解析度f調節為f1=f/(b/d)。在framebuffer的大小與第一類型顯示設備160的解析度參數相同的情況下,即e=a和f=b時,則將e調節為c,f調節為d。示例性的,為了在第二類型顯示設備170中更好的顯示圖像,待顯示圖像的橫向解析度與縱向解析度調節的比例可均為橫向解析度的比例a/c和縱向解析度的比例b/d中較小的一個。如a/c>b/d,則將待顯示圖像橫向解析度e調節為e2=e/(b/d),縱向解析度f調節為f2=f/(b/d),實現將待顯示圖像的橫向解析度與縱向解析度調節相同的比例,使得處理後得到的圖像與待顯示圖像不變形,並將調節後的數據發送至DRM模塊140,DRM模塊140控制第二類型顯示設備170顯示調節後的數據。
本領域技術人員可以理解,在其他實施例中可選若DRM模塊140根據顯示設備信息中解析度參數確定第一類型顯示設備160的橫向解析度與第二類型顯示設備170的縱向解析度不相等或第一類型顯示設備160的縱向解析度與第二類型顯示設備170的橫向解析度不相等,則DRM模塊140可選將第一類型顯示設備160的解析度參數和第二類型顯示設備170的解析度參數發送至圖像處理模塊150,圖像處理模塊150根據解析度參數確定第一類型顯示設備160和第二類型顯示設備170橫向解析度的比例和縱向解析度的比例,再相應調節待顯示數據。
本發明實施例的技術方案,通過若DRM模塊根據顯示設備信息中解析度參數確定第一類型顯示設備的橫向解析度與第二類型顯示設備的縱向解析度不相等或第一類型顯示設備的縱向解析度與第二類型顯示設備的橫向解析度不相等,則DRM模塊將顯示設備信息中第一類型顯示設備與第二類型顯示設備橫向解析度的比例和縱向解析度的比例發送至圖像處理模塊;圖像處理模塊根據橫向解析度的比例和縱向解析度的比例相應調節待顯示數據並將處理後的數據發送至DRM模塊。實現在第一類型顯示設備的橫向解析度與第二類型顯示設備的縱向解析度不相等或第一類型顯示設備的縱向解析度與第二類型顯示設備的橫向解析度不相等的情況下,根據第一顯示設備類型與第二顯示設備類型橫向解析度的比例和縱向解析度的比例相應調節待顯示數據,從而使得處理後的數據與第二類型顯示設備的解析度參數匹配,實現具有不同解析度參數的不同類型的顯示設備同步顯示。
實施例四
圖2為本發明實施例四提供的一種不同解析度顯示設備同步顯示的方法的流程圖。本方法可以由不同解析度顯示設備同步顯示的系統執行。參見圖2,該方法包括:
步驟201、X-sever模塊根據第一類型顯示設備的解析度通過DDX模塊向libdrm模塊發送申請framebuffer指令並將待顯示數據寫入framebuffer;
步驟202、libdrm模塊將framebuffer中的待顯示數據發送至DRM模塊;
步驟203、DRM模塊根據顯示設備信息中顯示設備ID確定顯示設備的類型;
步驟204、DRM模塊根據顯示設備信息中顯示設備ID確定顯示設備為第一類型顯示設備,DRM模塊控制第一類型顯示設備顯示framebuffer中的待顯示數據;
步驟205、DRM模塊根據顯示設備信息中顯示設備ID確定顯示設備為第二類型顯示設備,執行步驟206。
步驟206、DRM模塊根據顯示設備信息中解析度參數判斷第一類型顯示設備的橫向解析度與第二類型顯示設備的縱向解析度以及第一類型顯示設備的縱向解析度與第二類型顯示設備的橫向解析度是否相等,若是,執行步驟207,否則,執行步驟210。
步驟207、DRM模塊將顯示設備信息中數據處理指令發送至圖像處理模塊,其中數據處理指令為旋轉90度。
步驟208、圖像處理模塊根據接收到的數據處理指令,將待顯示數據旋轉90度,並將處理後的數據發送至DRM模塊。
步驟209、DRM模塊控制第二類型顯示設備顯示處理後的數據。
步驟210、DRM模塊將顯示設備信息中第一類型顯示設備與第二類型顯示設備橫向解析度的比例和縱向解析度的比例發送至圖像處理模塊。
步驟211、圖像處理模塊根據橫向解析度的比例和縱向解析度的比例相應調節待顯示數據並將處理後的數據發送至DRM模塊,執行步驟209。
上述方法可由本發明任意實施例所提供的系統來執行,具備上述系統相應有益效果。未在本實施例中詳盡描述的技術細節,可參見本發明任意實施例所提供的系統。
注意,上述僅為本發明的較佳實施例及所運用技術原理。本領域技術人員會理解,本發明不限於這裡所述的特定實施例,對本領域技術人員來說能夠進行各種明顯的變化、重新調整和替代而不會脫離本發明的保護範圍。因此,雖然通過以上實施例對本發明進行了較為詳細的說明,但是本發明不僅僅限於以上實施例,在不脫離本發明構思的情況下,還可以包括更多其他等效實施例,而本發明的範圍由所附的權利要求範圍決定。