專利名稱:一種視頻圖像的視窗切換控制方法及系統(tǒng)的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及通信技術(shù),尤其涉及視頻通信中視頻圖像的視窗切換控制方法及系統(tǒng)。
背景技術(shù):
如圖1所示,在視頻通信中,視頻數(shù)據(jù)是通過視頻數(shù)據(jù)幀的方式傳輸?shù)?,每一幀就相?dāng)一幅視頻畫面,獲取視頻數(shù)據(jù)后,對(duì)每一幀視頻數(shù)據(jù)進(jìn)行解碼,然后將數(shù)據(jù)以圖像的方式顯示。
現(xiàn)有的視頻通信應(yīng)用中,視頻通信是一項(xiàng)非常廣泛的應(yīng)用,對(duì)于用戶而言,直接面對(duì)的就是視頻通信中顯示出來視圖質(zhì)量,所以在這一方面,各大視頻通信軟件都在努力改進(jìn)其技術(shù),以求達(dá)到更清晰的顯示以及更好的用戶體驗(yàn)。而在技術(shù)實(shí)現(xiàn)方面,通常需要對(duì)視頻圖像做大量的處理以獲得優(yōu)質(zhì)的畫面,這些處理無疑會(huì)加重CPU的負(fù)擔(dān),由于在視頻通信過程中,需要處理的視頻數(shù)據(jù)將是海量的,所以優(yōu)質(zhì)的畫面將伴隨著高CPU的消耗。為了使對(duì)視頻數(shù)據(jù)的處理達(dá)到最高的效率,通常在畫面顯示方面,大都使用Windows GDI或者DirectX技術(shù)。
為了在Windows操作系統(tǒng)上作畫,微軟創(chuàng)造了圖形設(shè)備接口,簡稱為GDI(Graphics Device Interface),它是類、函數(shù)、變量和常量的集合,或者說是在應(yīng)用程序中繪畫所需要的絕大部分對(duì)象。Windows圖形設(shè)備接口是Windows系統(tǒng)中的圖形核心模塊,以GDI.EXE形式提供給開發(fā)者使用。Windows中的圖形基本上是由GDI.EXE中的函數(shù)來處理的,它的主要特點(diǎn)是在輸出設(shè)備上支持與設(shè)備無關(guān)的圖形。
DirectX是微軟公司提供的另一套優(yōu)秀的應(yīng)用程序編程接口(APIs),用于聯(lián)系應(yīng)用程序和硬件自身,它對(duì)發(fā)展Windows平臺(tái)下的多媒體應(yīng)用程序和電腦游戲起到了關(guān)鍵的作用。DirectX組件包括DirectDraw、DirectSound、DirectPlay、Direct3D、DirectInput、DirectSetup、AutoPlay等。
DirectX組件是允許直接控制計(jì)算機(jī)硬件設(shè)備的軟件,可用于不同的語言和多種平臺(tái),支持從繪制象素到高級(jí)三維圖像,從播放簡單聲音到數(shù)字音樂。
各視頻通信軟件根據(jù)自己的需要以及技術(shù)實(shí)力選擇不同的技術(shù),而現(xiàn)有的主流視頻通信產(chǎn)品或者視頻通信軟件中,大都采用Windows GDI技術(shù),從而滿足其單純對(duì)圖像的顯示功能而不提供更多的圖像處理功能。
由于現(xiàn)有的主流視頻通信產(chǎn)品或者視頻通信軟件都不提供全屏顯示功能,所以無法就某種具體的產(chǎn)品或者技術(shù)提出比較,但是可以就顯示技術(shù)的應(yīng)用做一些相關(guān)的比較。例如Windows GDI的視圖放大和DirectX技術(shù)在游戲中的全屏功能比較如下1.如前所述,因?yàn)閃indows GDI在圖像的縮放等處理方面會(huì)耗費(fèi)很多的CPU資源,因此使用Windows GDI進(jìn)行視圖放大將導(dǎo)致CPU的使用率變得很高;2.DirectX技術(shù)在實(shí)現(xiàn)全屏功能的時(shí)候,將進(jìn)入獨(dú)占模式,這就此表示一旦獲得設(shè)備,就不允許其它程序獲取設(shè)備,并獨(dú)占鍵盤鼠標(biāo)事件等。這樣用戶就無法在全屏的模式下對(duì)其它程序操作,極為不便。而且在全屏與非全屏模式的切換過程中,需要耗費(fèi)好幾秒的時(shí)間,通常還需要改變顯示器的分辨率設(shè)置,對(duì)于使用者而言,會(huì)體驗(yàn)到圖像非常不流暢并出現(xiàn)閃爍。
發(fā)明內(nèi)容
本發(fā)明公開一種視頻通信視頻圖像的視窗切換控制方法及系統(tǒng),以解決現(xiàn)有視頻通信中無法全屏化顯示的問題。
本發(fā)明所述視頻通信視頻圖像處理方法包括如下步驟A、當(dāng)用戶切換到全屏視窗顯示時(shí)獲取顯示屏尺寸參數(shù)并創(chuàng)建全屏視窗;B、根據(jù)顯示屏尺寸參數(shù)和視頻圖像尺寸參數(shù)確定視頻圖像放大倍數(shù)并輸入視頻圖像處理模塊;C、視頻圖像處理模塊根據(jù)放大倍數(shù)將原始視頻圖像放大到所述全屏視窗上并顯示。
所述步驟C之后還包括如下步驟D、當(dāng)用戶切換到原始視窗顯示時(shí)創(chuàng)建原始視窗;E、將視頻圖像放大倍數(shù)設(shè)置為1并輸入視頻圖像處理模塊;F、視頻圖像處理模塊根據(jù)所述放大倍數(shù)將原始視頻圖像還原到所述原始視窗上并顯示。
所述步驟B和步驟C之間、步驟E或F之間分別還包括如下步驟逐幀獲取視頻數(shù)據(jù)幀;解碼視頻數(shù)據(jù)幀并將解碼出的視頻數(shù)據(jù)送入視頻圖像處理模塊;視頻圖像處理模塊根據(jù)所述視頻數(shù)據(jù)還原所述原始視頻圖像。
所述步驟C或步驟F中還包括銷毀切換之前使用的視窗。
所述的尺寸參數(shù)包括長度、和/或?qū)挾?、?或?qū)蔷€長度,所述的放大倍數(shù)包括視頻圖像長度放大倍數(shù)、和/或?qū)挾确糯蟊稊?shù)、和/或?qū)蔷€長度放大倍數(shù)。
一種視頻圖像的視窗切換控制系統(tǒng),包括視頻通信管理模塊和連接所述視頻通信管理模塊的視頻圖像處理模塊,所述視頻通信管理模塊包括用戶切換操作指令識(shí)別子模塊,用于識(shí)別用戶的切換操作指令為全屏視窗顯示或原始視窗顯示并輸出對(duì)應(yīng)的控制信號(hào);視窗管理子模塊,根據(jù)所述控制信號(hào)創(chuàng)建全屏視窗或原始視窗,確定對(duì)應(yīng)的視頻圖像放大倍數(shù)并將所述放大倍數(shù)輸入視頻圖像處理模塊,以及銷毀切換之前使用的視窗;視頻圖像處理模塊根據(jù)放大倍數(shù)將原始視頻圖像放大到全屏視窗上并顯示,或者還原到原始視窗上并顯示。
所述視頻通信管理模塊還包括
視頻圖像處理模塊調(diào)用子模塊,連接在所述用戶指令識(shí)別子模塊和視頻圖像處理模塊之間,用于根據(jù)控制信號(hào)調(diào)用視頻圖像處理模塊;視頻數(shù)據(jù)幀獲取子模塊、用于提取視頻數(shù)據(jù)幀并輸入視頻數(shù)據(jù)幀解碼子模塊;視頻數(shù)據(jù)幀解碼子模塊,用于解碼視頻數(shù)據(jù)幀并將解碼出的視頻數(shù)據(jù)輸入視頻圖像處理模塊。
所述視頻通信管理模塊還包括用戶切換操作捕獲模塊,用于捕獲用戶切換操作指令并輸入所述用戶切換操作指令識(shí)別子模塊;顯示存儲(chǔ)模塊,連接所述視窗管理子模塊,用于保存所述全屏視窗或原始視窗;顯示模塊,連接所述顯示存儲(chǔ)模塊,用于顯示所述全屏視窗或原始視窗。
所述視窗管理子模塊還包括視頻視窗創(chuàng)建單元,用于創(chuàng)建所述全屏視窗或原始視窗;圖像放大倍數(shù)計(jì)算單元,用于計(jì)算進(jìn)行全屏視頻視窗顯示時(shí)視頻圖像的放大倍數(shù);以及視頻視窗銷毀單元,用于銷毀切換之前使用的視窗。
所述視頻圖像處理系統(tǒng)還包括系統(tǒng)參數(shù)存儲(chǔ)模塊,連接所述圖像放大倍數(shù)計(jì)算單元,用于保存顯示屏的尺寸參數(shù)。
所述視頻圖像處理模塊為DirectX視頻圖像處理模塊。
本發(fā)明的有益效果如下本發(fā)明提供的視頻通信視頻圖像處理方法及系統(tǒng),利用DirectX技術(shù),在視頻通信聊天中實(shí)現(xiàn)了視頻圖像的全屏顯示以及全屏與視窗之間的快速切換,并降低了全屏顯示過程中CPU的使用率,讓用戶享受更好的視覺體驗(yàn)。
圖1視頻數(shù)據(jù)幀處理流程示意圖;圖2為本發(fā)明所述視頻通信視頻圖像處理方法原理示意圖;圖3為本發(fā)明所述視頻通信視頻圖像處理系統(tǒng)結(jié)構(gòu)示意圖。
具體實(shí)施例方式
本發(fā)明提供了一種視頻通信中的圖像處理方法及系統(tǒng),利用DirectX圖像處理技術(shù),在視頻通信中實(shí)現(xiàn)了視頻圖像的全屏顯示以及全屏與原始視窗之間的快速切換,并且降低了全屏顯示過程中CPU的使用率,本發(fā)明技術(shù)構(gòu)思如圖2所示,包括1、當(dāng)用戶啟動(dòng)視頻通信管理模塊時(shí),視頻通信管理模塊創(chuàng)建原始視窗并存入顯示內(nèi)存,然后調(diào)用DirectX圖像處理模塊,將原始視窗位置信息和放大倍數(shù)送入DirectX圖像處理模塊,這時(shí)放大倍數(shù)被置為1,視頻通信管理模塊逐幀獲取并解碼數(shù)據(jù)幀后輸入DirectX圖像處理模塊,解碼結(jié)果中包括圖像的尺寸信息,由DirectX圖像處理模塊逐個(gè)根據(jù)數(shù)據(jù)還原圖像并按照原始圖像大小繪制到原始視頻視窗上,并直接調(diào)用顯示器顯示。
2、當(dāng)用戶切換到全屏顯示時(shí),具體處理包括首先需要通過系統(tǒng)函數(shù)獲取屏幕的長和寬,然后根據(jù)這個(gè)尺寸建立一個(gè)窗口,此時(shí)的窗口將覆蓋整個(gè)屏幕,此窗口稱為全屏化窗口,將全屏視窗存入顯示內(nèi)存并將位置信息輸入DirectX圖像處理模塊;建立好全屏化窗口后,需要將原始的視頻視圖放大到全屏尺寸。通過屏幕長度和原始視頻長度,可以獲得長度放大倍數(shù),通過屏幕寬度和原始視頻寬度,可以獲得寬度放大倍數(shù),將放大倍數(shù)也輸入到DirectX圖像處理模塊,然后再使用DirectX的放大處理將原始視頻顯示放大到全屏視窗上;最后,DirectX圖像處理模塊再把全屏化窗口作為視頻顯示的窗口,則可以得到一個(gè)全屏視圖的體驗(yàn);然后銷毀原始視窗。
除了根據(jù)長度放大倍數(shù)和/或?qū)挾确糯蟊稊?shù)確定圖像放大后的尺寸外,還可以根據(jù)視頻圖像對(duì)角線長度放大倍數(shù)來確定。
3、當(dāng)用戶再次切換回原始視窗時(shí),則返回步驟1重新創(chuàng)建原始視窗顯示并銷毀全屏視窗。
由于窗口的創(chuàng)建和銷毀是一件非常迅速的事情,對(duì)于用戶而言,這樣的全屏與非全屏切換是非常流暢的體驗(yàn)。而且由于是窗口實(shí)現(xiàn)全屏,用戶在全屏化視頻通信的過程中,可以并行調(diào)用其他程序,處理其他事務(wù),兩者互不影響。同時(shí)自建的窗口可以獲得窗口上的所有消息,還可以根據(jù)消息增加各種工具條的顯示,擴(kuò)展更多的功能。
如圖3所示,實(shí)現(xiàn)本發(fā)明所述方法的視頻圖像處理系統(tǒng)包括用戶操作指令捕獲模塊,用于根據(jù)系統(tǒng)消息捕獲用戶鼠標(biāo)操作;視頻通信管理模塊,用于提供視頻通信界面管理視頻通信過程;顯示存儲(chǔ)模塊和連接顯示存儲(chǔ)模塊的顯示器,以及連接在存儲(chǔ)模塊和視頻通信管理模塊之間的DirectX處理模塊;其中,視頻通信管理模塊具體包括視頻數(shù)據(jù)幀獲取子模塊,用于獲取視頻數(shù)據(jù)幀;視頻數(shù)據(jù)解碼子模塊,用于解碼視頻數(shù)據(jù)幀;用戶操作指令識(shí)別模塊,連接用戶操作指令捕獲模塊,用于識(shí)別用戶操作指令并輸出相應(yīng)的控制信號(hào);視窗管理子模塊,連接所述用戶指令識(shí)別子模塊,用于根據(jù)用戶視窗切換操作指令創(chuàng)建目標(biāo)視頻視窗并存入顯示存儲(chǔ)模塊,同時(shí)計(jì)算視頻圖像的放大倍數(shù),并將該放大倍數(shù)和目標(biāo)視頻視窗的存儲(chǔ)位置信息輸入DirectX處理模塊,以及銷毀創(chuàng)建視頻視窗之前的使用的視頻視窗;DirectX調(diào)用子模塊,連接用戶指令識(shí)別子模塊和DirectX處理模塊之間,用于根據(jù)用戶啟動(dòng)視頻通信管理模塊的操作指令調(diào)用DirectX處理模塊;工作過程為視頻幀獲取子模塊根據(jù)用戶啟動(dòng)視頻通信管理模塊的操作指令逐幀獲取視頻數(shù)據(jù)幀并輸入視頻數(shù)據(jù)解碼子模塊,視頻數(shù)據(jù)解碼子模塊將解碼后的視頻數(shù)據(jù)輸入DirectX處理模塊,DirectX處理模塊根據(jù)視頻數(shù)據(jù)逐個(gè)還原視頻圖像并將視頻圖像根據(jù)放大倍數(shù)繪制到視頻視窗上后通過顯示器顯示。
并且,視窗管理子模塊可以包括如下功能單元視頻視窗創(chuàng)建單元,用于創(chuàng)建視頻視窗;圖像放大倍數(shù)計(jì)算單元,用于計(jì)算圖像放大倍數(shù);以及視頻視窗銷毀單元,用于銷毀當(dāng)前視頻視窗之前使用的視頻視窗。
所述處理系統(tǒng)還包括系統(tǒng)參數(shù)存儲(chǔ)模塊,連接所述圖像放大倍數(shù)計(jì)算單元,用于保存顯示屏的尺寸參數(shù)。
上述系統(tǒng)中,用戶操作指令捕獲模塊捕獲用戶的鼠標(biāo)操作并輸入用戶指令識(shí)別子模塊,用戶指令識(shí)別子模塊識(shí)別用戶的不同操作指令,啟動(dòng)相應(yīng)的功能子模塊或單元進(jìn)行視頻圖像處理,具體包括當(dāng)用戶啟動(dòng)視頻管理模塊時(shí),默認(rèn)用戶為原始視窗顯示,則指示DirectX調(diào)用子模塊建立接口調(diào)用DirectX處理模塊,同時(shí)指示視頻視窗管理子模塊創(chuàng)建原始視頻視窗、計(jì)算放大倍數(shù)并輸入DirectX處理模塊,指示視頻獲取子模塊獲取視頻數(shù)據(jù)接入輸入到DirectX處理模塊進(jìn)行圖像處理并顯示;當(dāng)用戶切換到全屏顯示時(shí),創(chuàng)建全屏視窗并顯示的步驟基本相同,不同之處在于需要從系統(tǒng)參數(shù)存儲(chǔ)模塊中獲取顯示屏尺寸參數(shù),以及銷毀原始視窗的步驟;當(dāng)用戶再次切換回原始視窗時(shí),重新創(chuàng)建原始視窗進(jìn)行顯示并銷毀全屏視窗。
顯然,本領(lǐng)域的技術(shù)人員可以對(duì)本發(fā)明進(jìn)行各種改動(dòng)和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權(quán)利要求及其等同技術(shù)的范圍之內(nèi),則本發(fā)明也意圖包含這些改動(dòng)和變型在內(nèi)。
權(quán)利要求
1.一種視頻圖像的視窗切換控制方法,其特征在于,包括如下步驟A、當(dāng)用戶切換到全屏視窗顯示時(shí)獲取顯示屏尺寸參數(shù)并創(chuàng)建全屏視窗;B、根據(jù)顯示屏尺寸參數(shù)和視頻圖像尺寸參數(shù)確定視頻圖像放大倍數(shù)并輸入視頻圖像處理模塊;C、視頻圖像處理模塊根據(jù)放大倍數(shù)將原始視頻圖像放大到所述全屏視窗上并顯示。
2.如權(quán)利要求1所述的方法,其特征在于,所述步驟C之后還包括如下步驟D、當(dāng)用戶切換到原始視窗顯示時(shí)創(chuàng)建原始視窗;E、將視頻圖像放大倍數(shù)設(shè)置為1并輸入視頻圖像處理模塊;F、視頻圖像處理模塊根據(jù)所述放大倍數(shù)將原始視頻圖像還原到所述原始視窗上并顯示。
3.如權(quán)利要求2所述的方法,其特征在于,所述步驟B和步驟C之間、步驟E或F之間分別還包括如下步驟逐幀獲取視頻數(shù)據(jù)幀;解碼視頻數(shù)據(jù)幀并將解碼出的視頻數(shù)據(jù)送入視頻圖像處理模塊;視頻圖像處理模塊根據(jù)所述視頻數(shù)據(jù)還原所述原始視頻圖像。
4.如權(quán)利要求3所述的方法,其特征在于,所述視頻圖像處理模塊為DirectX視頻圖像處理模塊。
5.如權(quán)利要求2所述的方法,其特征在于,所述步驟C或步驟F中還包括銷毀切換之前使用的視窗。
6.如權(quán)利要求1所述的方法,其特征在于,所述的尺寸參數(shù)包括長度、和/或?qū)挾取⒑?或?qū)蔷€長度,所述的放大倍數(shù)包括視頻圖像長度放大倍數(shù)、和/或?qū)挾确糯蟊稊?shù)、和/或?qū)蔷€長度放大倍數(shù)。
7.一種視頻圖像的視窗切換控制系統(tǒng),包括視頻通信管理模塊和連接所述視頻通信管理模塊的視頻圖像處理模塊,其特征在于,所述視頻通信管理模塊包括用戶切換操作指令識(shí)別子模塊,用于識(shí)別用戶的切換操作指令為全屏視窗顯示或原始視窗顯示并輸出對(duì)應(yīng)的控制信號(hào);視窗管理子模塊,根據(jù)所述控制信號(hào)創(chuàng)建全屏視窗或原始視窗,確定對(duì)應(yīng)的視頻圖像放大倍數(shù)并將所述放大倍數(shù)輸入視頻圖像處理模塊,以及銷毀切換之前使用的視窗;視頻圖像處理模塊根據(jù)放大倍數(shù)將原始視頻圖像放大到全屏視窗上并顯示,或者還原到原始視窗上并顯示。
8.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述視頻通信管理模塊還包括視頻圖像處理模塊調(diào)用子模塊,連接在所述用戶指令識(shí)別子模塊和視頻圖像處理模塊之間,用于根據(jù)控制信號(hào)調(diào)用視頻圖像處理模塊;視頻數(shù)據(jù)幀獲取子模塊、用于提取視頻數(shù)據(jù)幀并輸入視頻數(shù)據(jù)幀解碼子模塊;視頻數(shù)據(jù)幀解碼子模塊,用于解碼視頻數(shù)據(jù)幀并將解碼出的視頻數(shù)據(jù)輸入視頻圖像處理模塊。
9.如權(quán)利要求8所述的系統(tǒng),其特征在于,所述視頻通信管理模塊還包括用戶切換操作捕獲模塊,用于捕獲用戶切換操作指令并輸入所述用戶切換操作指令識(shí)別子模塊;顯示存儲(chǔ)模塊,連接所述視窗管理子模塊,用于保存所述全屏視窗或原始視窗;顯示模塊,連接所述顯示存儲(chǔ)模塊,用于顯示所述全屏視窗或原始視窗。
10.如權(quán)利要求7所述的系統(tǒng),其特征在于,所述視窗管理子模塊還包括視頻視窗創(chuàng)建單元,用于創(chuàng)建所述全屏視窗或原始視窗;圖像放大倍數(shù)計(jì)算單元,用于計(jì)算進(jìn)行全屏視頻視窗顯示時(shí)視頻圖像的放大倍數(shù);以及視頻視窗銷毀單元,用于銷毀切換之前使用的視窗。
11.如權(quán)利要求10所述的系統(tǒng),其特征在于,所述視頻圖像處理系統(tǒng)還包括系統(tǒng)參數(shù)存儲(chǔ)模塊,連接所述圖像放大倍數(shù)計(jì)算單元,用于保存顯示屏的尺寸參數(shù)。
12.如權(quán)利要求7~11任意之一所述的系統(tǒng),其特征在于,所述視頻圖像處理模塊為DirectX視頻圖像處理模塊。
全文摘要
本發(fā)明涉及通信技術(shù),尤其涉及視頻通信中視頻圖像的視窗切換控制方法及系統(tǒng),所述方法包括根據(jù)用戶的全屏顯示切換操作或原始視窗顯示操作創(chuàng)建相應(yīng)的視頻視窗,并調(diào)用視頻圖像處理模塊將視頻圖像放大或還原到視頻視窗上并顯示;所述系統(tǒng)包括用戶操作指令捕獲模塊、視頻通信管理模塊、顯示存儲(chǔ)模塊、連接該顯示存儲(chǔ)模塊的顯示模塊、連接在存儲(chǔ)模塊和視頻通信管理模塊之間的視頻圖像處理模塊,所述視頻通信管理模塊包括視頻數(shù)據(jù)幀獲取子模塊、視頻數(shù)據(jù)解碼子模塊,其中,視頻通信管理模塊還包括用戶操作指令識(shí)別子模塊、視窗管理子模塊;應(yīng)用本發(fā)明所述方法及系統(tǒng),實(shí)現(xiàn)了視頻通信視頻圖像的全屏顯示及快速切換。
文檔編號(hào)H04N7/14GK1968395SQ20051011486
公開日2007年5月23日 申請(qǐng)日期2005年11月17日 優(yōu)先權(quán)日2005年11月17日
發(fā)明者龔毅 申請(qǐng)人:騰訊科技(深圳)有限公司