專利名稱:Osd應用軟件的開發(fā)方法、系統(tǒng)及多媒體終端的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及電器領(lǐng)域,具體而言,涉及一種OSD應用軟件的開發(fā)方法、系統(tǒng)及多媒 體終端。
背景技術(shù):
隨著數(shù)字化領(lǐng)域的發(fā)展,數(shù)字化產(chǎn)品層出不窮,尤其是數(shù)字電視機和機頂盒的迅 速普及,帶給人們前所未有的視聽享受。并且,視頻多媒體正以更加快速的發(fā)展速度滲透到 人們的日常生活的各個角落。
OSD應用軟件是電視應用軟件系統(tǒng)中的關(guān)鍵模塊,電視OSD應用軟件的開發(fā)工作 量,約占整個電視應用軟件的2/5左右。對于生產(chǎn)商而言,產(chǎn)品的更新?lián)Q代周期日益縮短, 這就給OSD應用軟件是產(chǎn)品的研發(fā)帶來了巨大的挑戰(zhàn),因此,一種方便可行的研發(fā)工具勢 必會成為研發(fā)工作者的得力助手。
針對上述現(xiàn)有技術(shù)的開發(fā)模型中,無法無縫整合OSD硬件、驅(qū)動及應用,從而導致 軟、硬件系統(tǒng)功能聯(lián)調(diào)效率低、兼容性差的問題,目前尚未提出有效的解決方案。發(fā)明內(nèi)容
本發(fā)明的主要目的在于提供一種OSD應用軟件的開發(fā)方法、系統(tǒng)及多媒體終端, 以解決現(xiàn)有技術(shù)的開發(fā)模型中,無法無縫整合OSD硬件、驅(qū)動及應用,從而導致軟、硬件系 統(tǒng)功能聯(lián)調(diào)效率低、兼容性差的問題。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的一方面,提供了一種OSD應用軟件的開發(fā)系統(tǒng)。
根據(jù)本發(fā)明的OSD應用軟件的開發(fā)系統(tǒng)包括設計單元,用于定制OSD應用軟件的 數(shù)據(jù)結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配;編譯單元,用于編譯數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多 個文件的組合頭文件、源文件以及中間層文件,并將頭文件隨源文件一起編譯成可執(zhí)行文 件;硬件驅(qū)動單元,通過硬件CPU及OSD模塊來接收并運行可執(zhí)行文件;顯示單元,用于顯 示可執(zhí)行文件的運行結(jié)果。
進一步地,系統(tǒng)還包括仿真單元,用于從內(nèi)存中調(diào)用中間層文件,以模擬OSD應 用軟件;調(diào)試單元,用于獲取仿真單元的模擬結(jié)果,調(diào)試模擬結(jié)果。
進一步地,系統(tǒng)還包括資源生成單元,用于根據(jù)OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu)來設計 并生成各種UI資源,以使得設計單元根據(jù)用戶需求選擇資源生成單元中生成的各種UI資 源。
進一步地,系統(tǒng)還包括在設計單元和資源生成單元之間設置定制單元,定制單元 用于在設計單元和資源生成單元之間建立映射關(guān)系,并根據(jù)映射關(guān)系來同步設計單元與資 源生成單元相對應的數(shù)據(jù)。
進一步地,系統(tǒng)還包括驅(qū)動適配單元,設置于設計單元和編譯單元之間,用于為 OSD應用軟件提供用于功能調(diào)用的適配接口,通過適配接口調(diào)用應用軟件的一個或多個功 能函數(shù),其中,驅(qū)動適配單元包括應用適配接口,通過應用適配接口獲取應用軟件的一個或多個功能函數(shù);驅(qū)動適配接口,通過驅(qū)動適配接口獲取可執(zhí)行文件;調(diào)用模塊,設置在應 用適配接口和驅(qū)動適配接口之間,用于通過動態(tài)函數(shù)指針自動調(diào)用可執(zhí)行文件對應的任意 一個或多個功能函數(shù)。
進一步地,調(diào)用模塊所調(diào)用的一個或多個功能函數(shù)包括可重用的通用功能函數(shù)和 根據(jù)OSD硬件芯片屬性來確定的特定功能函數(shù)。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的另一個方面,提供了一種OSD應用軟件的開發(fā)方法。
根據(jù)本發(fā)明的OSD應用軟件的開發(fā)方法包括設計單元定制OSD應用軟件的數(shù)據(jù) 結(jié)構(gòu),數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配;編譯UI資源的數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多個文件的 組合頭文件、源文件以及中間層文件,并將頭文件隨源文件一起編譯成可執(zhí)行文件;通過 硬件CPU及OSD模塊來接收并運行可執(zhí)行文件;顯示可執(zhí)行文件的運行結(jié)果。
進一步地,在編譯UI資源的數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多個文件的組合頭文 件、源文件以及中間層文件,并將頭文件隨源文件一起編譯成可執(zhí)行文件之后,方法還包 括從內(nèi)存中調(diào)用中間層文件,以模擬OSD應用軟件;獲取仿真單元的模擬結(jié)果,并調(diào)試模 擬結(jié)果。
進一步地,在設計單元定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)之前,方法還包括用于根據(jù) OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu)來設計并生成各種UI資源,以使得設計單元根據(jù)用戶需求選擇資 源生成單元中生成的各種UI資源。
進一步地,在設計單元定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)之后,方法還包括在設計單 元和資源生成單元之間建立映射關(guān)系,并根據(jù)映射關(guān)系同步設計單元與資源生成單元相對 應的數(shù)據(jù)。
進一步地,在定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)之后,方法還包括根據(jù)預設條件定義 OSD應用軟件的第一用戶界面的UI資源中的虛擬資源,虛擬資源為UI資源中使用頻率高的 一個或多個元素,其中,UI資源包括圖片背景、菜單以及圖片背景和菜單上的一個或多個 控件;調(diào)用虛擬資源來創(chuàng)建OSD應用軟件的第二用戶界面的UI資源。
進一步地,根據(jù)預設條件定義OSD應用軟件的第一用戶界面的UI資源中的虛擬資 源的步驟包括判斷UI資源中的一個或多個元素的使用頻率是否超過預定次數(shù),其中,如 果超過預定次數(shù),則將使用頻率超過預定次數(shù)的每個元素定義為虛擬資源保存至快速存儲 器中,否則,將使用頻率在預定次數(shù)內(nèi)的每個元素保存至閃存中。
進一步地,調(diào)用虛擬資源來創(chuàng)建OSD應用軟件的第二用戶界面的UI資源的步驟包 括判斷虛擬資源在第一用戶界面上的坐標位置和大小是否與第二用戶界面的UI資源的 坐標位置和大小相同,其中,當坐標位置相同且大小相同時,調(diào)用虛擬資源創(chuàng)建第二用戶界 面的UI資源,否則,退出調(diào)用虛擬資源的步驟。
為了實現(xiàn)上述目的,根據(jù)本發(fā)明的再一方面,提供了一種多媒體終端,該多媒體終 端包括上述任意一種OSD應用軟件的開發(fā)系統(tǒng)。
通過本發(fā)明,采用設計單元,用于定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)與 OSD硬件相匹配;編譯單元,根據(jù)數(shù)據(jù)結(jié)構(gòu)來編譯UI資源以獲取以下一個或多個文件的組 合頭文件、源文件以及中間層文件,并將頭文件隨源文件一起編譯成可執(zhí)行文件;硬件驅(qū) 動單元,通過硬件CPU及OSD模塊來接收并運行可執(zhí)行文件;顯示單元,用于顯示可執(zhí)行文件的運行結(jié)果,解決了現(xiàn)有技術(shù)的開發(fā)模型中,無法無縫整合OSD硬件、驅(qū)動及應用,從而 導致軟、硬件系統(tǒng)功能聯(lián)調(diào)效率低、兼容性差的問題,達到了提高研發(fā)人員的工作效率,節(jié) 省了研發(fā)成本的效果。
此處所說明的附圖用來提供對本發(fā)明的進一步理解,構(gòu)成本申請的一部分,本發(fā) 明的示意性實施例及其說明用于解釋本發(fā)明,并不構(gòu)成對本發(fā)明的不當限定。在附圖中
圖1是根據(jù)本發(fā)明實施例的OSD應用軟件的模型及工具的功能結(jié)構(gòu)示意圖2是根據(jù)本發(fā)明實施例的OSD應用軟件的開發(fā)系統(tǒng)的結(jié)構(gòu)示意圖3是根據(jù)本發(fā)明實施例的OSD應用軟件的開發(fā)方法的流程圖;以及
圖4是根據(jù)本發(fā)明實施例的OSD應用軟件的設計模型與編譯模型的工作流程圖。
具體實施方式
需要說明的是,在不沖突的情況下,本申請中的實施例及實施例中的特征可以相 互組合。下面將參考附圖并結(jié)合實施例來詳細說明本發(fā)明。
本發(fā)明提供了一種OSD應用軟件的開發(fā)系統(tǒng)。圖1是根據(jù)本發(fā)明實施例的OSD應 用軟件的模型及工具的功能結(jié)構(gòu)示意圖。如圖1所示,該功能結(jié)構(gòu)包括OSD模型的設計及 運行過程、軟件的仿真過程,以及自動編譯調(diào)試并顯示的過程。其中,在OSD模型的設計及 運行的過程中,系統(tǒng)對OSD應用軟件的UI資源、框架以及功能模型進行設計,并對設計好的 源代碼進行調(diào)試和運行,生成對應的設計控件以及控件和模版,并通過仿真上述過程中的 文件來實現(xiàn)軟件的仿真過程,從功能上替代SOC OSD硬件,進行純軟件的仿真演示,為調(diào)試 工具提供調(diào)試基礎,進一步的,在自動編譯調(diào)試并顯示的過程中,實現(xiàn)用戶的TV輸入、應用 模型、消息的調(diào)試并進行自動測試,將最終結(jié)果通過視頻顯示。
圖2是根據(jù)本發(fā)明實施例的OSD應用軟件的開發(fā)系統(tǒng)的結(jié)構(gòu)示意圖。如圖2所示, 該OSD應用軟件的開發(fā)系統(tǒng)包括設計單元,用于定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)(例如,可 以是OSD應用軟件的UI資源的數(shù)據(jù)結(jié)構(gòu)),通常情況下根據(jù)用戶需求來定制該數(shù)據(jù)結(jié)構(gòu),且 該數(shù)據(jù)結(jié)構(gòu)(可以是UI資源的數(shù)據(jù)結(jié)構(gòu))與OSD硬件相匹配;編譯單元,根據(jù)數(shù)據(jù)結(jié)構(gòu)來 編譯UI資源以獲取以下一個或多個文件的組合頭文件、源文件以及中間層文件,并將頭 文件隨源文件一起編譯成可執(zhí)行文件;硬件驅(qū)動單元,通過硬件CPU及OSD模塊來接收并運 行可執(zhí)行文件;顯示單元,用于顯示可執(zhí)行文件的運行結(jié)果。
本發(fā)明實施例的開發(fā)系統(tǒng)模型可設計單元實現(xiàn)OSD繪制人員在工具軟件中通過 拖拉控件、設定菜單結(jié)構(gòu)層次屬性來達到OSD UI設計目的,再通過編譯單元編譯輸出對應 代碼源文件,最后可以將生成的源文件自動導入芯片軟件項目,綜合編譯輸出SOC芯片運 行數(shù)據(jù),下載至芯片中,SOC芯片視頻輸出和工具軟件繪制,以及模型中仿真顯示完全一致 的OSD程序。這種在OSD的設計環(huán)節(jié)中,引入設計單元(設計器)及編譯單元(編譯器) 兩個模型,從而提高開發(fā)效率,實現(xiàn)所見即所得的開發(fā)理念。利用上述開發(fā)系統(tǒng)提高了研發(fā) 人員開發(fā)電視OSD應用軟件的效率,節(jié)省了成本。
在上述實施例的基礎上,本發(fā)明的開發(fā)系統(tǒng)還可以包括仿真單元,用于從內(nèi)存中 調(diào)用中間層文件,以模擬OSD應用軟件;調(diào)試單元,用于獲取仿真單元的模擬結(jié)果,調(diào)試模擬結(jié)果。本發(fā)明的編譯單元生成源代碼可依據(jù)OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu),預編譯生成可在 仿真環(huán)境中運行的中間性數(shù)據(jù),經(jīng)過軟件自動化仿真測試,直至應用程序滿足用戶需求。該 實施例多應用于OSD測試工作,尤其在OSD應用軟件的開發(fā)過程中進行測試并調(diào)試,直到滿 足用戶的需求。
基于上述開發(fā)系統(tǒng)的模型,可以將其分為4層。即可視化IDE設計層,在該設計 層可以自行選擇拖拉控件,進行可視化制作菜單的;OSD編譯層可以生成芯片所需要的源 文件(.c文件)和頭文件(.h文件),以及軟件仿真所需要的中間層文件;軟件仿真層是在 Windows下面,可以模擬芯片里OSD菜單的顯示,菜單操作等動作的過程,便于設計人員調(diào) 試;硬件運行層,實現(xiàn)在仿真系統(tǒng)調(diào)試完后,將OSD編譯層生成的.c文件和.h文件加入到 整個工程,通過硬件CPU及OSD模塊對應的編譯器進行編譯生成bin文件,并將該文件下載 至OSD運行芯片中,芯片運行后,OSD輸出和軟件仿真過程中顯示的一樣的菜單。
優(yōu)選的,本發(fā)明的開發(fā)系統(tǒng)還可以包括資源生成單元,用于根據(jù)OSD硬件的驅(qū)動 數(shù)據(jù)結(jié)構(gòu)來設計生成OSD應用軟件上的各種UI資源,以供設計單元使用,使得設計單元根 據(jù)用戶需求選擇資源生成單元中生成的各種UI資源,其中,所述UI資源包括以下一個或多 個元素的組合字庫、字符、窗口、菜單、項目條、背景、控件按鈕以及圖片數(shù)據(jù)。
本發(fā)明的上述開發(fā)系統(tǒng)還可以包括在設計單元和資源生成單元之間設置定制單 元,定制單元用于在設計單元和資源生成單元之間建立映射關(guān)系,并根據(jù)映射關(guān)系來同步 設計單元與資源生成單元相對應的數(shù)據(jù),即實現(xiàn)在設計單元更新OSD應用軟件UI資源的數(shù) 據(jù)結(jié)構(gòu)的時候,同步更新資源生成單元上對應的UI資源,或者,在資源生成單元更新已生 成的UI資源的時候,同步更新設計單元上對應的UI資源的數(shù)據(jù)結(jié)構(gòu)。該步驟實現(xiàn)設計單 元的模版與資源生成單元生成的UI資源之間(例如,控件)的雙重機制引入,即他們之間 建立映射的對應關(guān)系,以實現(xiàn)同步更新的功能,由于模版中的UI資源數(shù)據(jù)都是從生成單元 中拖過來的,故使用本定制單元可以實現(xiàn)當模版發(fā)生修改的時候與其對應的生成單元中的 數(shù)據(jù)也相應性的UI資源的數(shù)據(jù)也自動更新,反之,當修改生成單元中的UI資源的數(shù)據(jù)的時 候,使用該UI資源數(shù)據(jù)的模版中對應的數(shù)據(jù)也對應更新,這種通過項目模版修改及控件定 制方式可以實現(xiàn)OSD應用軟件的靈活擴展。
在本發(fā)明上述開發(fā)系統(tǒng)中還包括驅(qū)動適配單元,設置于設計單元和編譯單元之 間,用于為OSD應用軟件的每個功能提供適配接口,通過適配接口調(diào)用應用軟件的一個或 多個功能函數(shù),其中,驅(qū)動適配單元包括應用適配接口,通過應用適配接口獲取應用軟件 的一個或多個功能函數(shù);驅(qū)動適配接口,通過驅(qū)動適配接口獲取可執(zhí)行文件;調(diào)用模塊,設 置在應用適配接口和驅(qū)動適配接口之間,用于通過動態(tài)函數(shù)指針自動調(diào)用可執(zhí)行文件對應 的任意一個或多個功能函數(shù)。其中,調(diào)用模塊所調(diào)用的一個或多個功能函數(shù)包括可重用的 通用功能函數(shù)和根據(jù)OSD硬件芯片屬性來確定的特定功能函數(shù)。該實施例可以解決于電視 機或電視機機頂盒的OSD應用程序移植性差導致開發(fā)效率低,驗證調(diào)試困難的問題,通過 實現(xiàn)OSD應用程序可移植,達到了提高研發(fā)人員的工作效率,節(jié)省了研發(fā)成本的效果。
上述實施例中的驅(qū)動適配接口還可以包括第一驅(qū)動適配接口,通過第一驅(qū)動適 配接口調(diào)用第一硬件驅(qū)動資源;第二驅(qū)動適配接口,通過第二驅(qū)動適配接口調(diào)用第二硬件 驅(qū)動資源;其中,一個或多個功能函數(shù)包括可重用的通用功能函數(shù)和根據(jù)硬件芯片屬性 來確定的特定功能函數(shù),第一硬件驅(qū)動資源對應調(diào)用通用功能函數(shù),第二硬件驅(qū)動資源對應調(diào)用特定功能函數(shù)。
在該實施例中為設計單元和編譯單元之間引入驅(qū)動適配層,該驅(qū)動適配層提供的 驅(qū)動適配單元可以通過提供適配接口來使得在應用層的應用軟件不修改的情況下,應用層 可以適應各種底層硬件,該系統(tǒng)應用在電視機或電視機機頂盒的OSD軟件中,實現(xiàn)了提高 OSD程序的移植性,在每次新開展項目或者項目改版時,OSD程序不再需要投入大量的人力 物力去針對不同的芯片開發(fā)應用層界面。本發(fā)明的成功應用,可給開發(fā)人員提供快速、準 確、高效的電視OSD應用程序開發(fā)模型及工具,提高了工作效率,節(jié)省了人力和時間成本。
上述實施例應用的驅(qū)動適配層是一個抽象層,可以通過將不同的硬件芯片OSD驅(qū) 動(例如以研發(fā)的2501,2503,觀01型號的主板)(例如是負責顯示的模塊)中,不相同的 接口整理出來,邏輯上可以是區(qū)分成第一驅(qū)動適配接口和第二驅(qū)動適配接口,分別對應調(diào) 用驅(qū)動中單獨封裝的不同性質(zhì)的模塊,針對需要經(jīng)常修改的模塊,設計成對于調(diào)試的人員 是可以配制的,而且是提供源代碼的;而對于各芯片的驅(qū)動中相同的處理模塊,封閉成另外 的被另一個驅(qū)動適配接口調(diào)用的模塊。這類模塊不會修改,以動態(tài)庫方式提供給調(diào)試人員, 不提供源代碼的。這種設計方式提高了研發(fā)人員的開發(fā)效率,在修改模塊較少的情況下,都 可以忽略不計修改的工作量。
本發(fā)明提供了一種OSD應用軟件的開發(fā)方法。圖3是根據(jù)本發(fā)明實施例的OSD應 用軟件的開發(fā)方法的流程圖。如圖3所示,該方法包括如下步驟
步驟S302,通過圖2中的設計單元來實現(xiàn)定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié) 構(gòu)與OSD硬件相匹配,可以根據(jù)用戶需求來定制。該步驟中的OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)可 以是OSD應用軟件的UI資源的數(shù)據(jù)結(jié)構(gòu),該UI資源的數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配。
步驟S304,通過圖2中的編譯單元實現(xiàn)編譯UI資源的數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或 多個文件的組合頭文件、源文件以及中間層文件,并將頭文件、源文件編譯成可執(zhí)行文件。
步驟S306,通過圖2中的硬件驅(qū)動單元來實現(xiàn)通過硬件CPU及OSD模塊來接收并 運行可執(zhí)行文件。
步驟S308,通過圖2中的顯示單元來顯示可執(zhí)行文件的運行結(jié)果。
本發(fā)明這種在OSD的設計環(huán)節(jié)中,引入設計單元(設計器)及編譯單元(編譯器) 兩個模型,從而提高開發(fā)效率,實現(xiàn)所見即所得的開發(fā)理念。利用上述開發(fā)系統(tǒng)提高了研發(fā) 人員開發(fā)電視OSD應用軟件的效率,節(jié)省了成本。
優(yōu)選的,本發(fā)明可以通過圖2中的資源生成單元實現(xiàn)根據(jù)OSD硬件的驅(qū)動數(shù)據(jù)結(jié) 構(gòu)來設計生成OSD應用軟件上的UI資源,以使得設計單元根據(jù)用戶需求選擇資源生成單元 中生成的各種UI資源,UI資源包括以下一個或多個元素的組合字庫、字符、窗口、菜單、項 目條、背景、控件按鈕以及圖片數(shù)據(jù)。該步驟中的圖片數(shù)據(jù)采用位圖UI資源切分、合并方 式,可以滿足基于芯片OCDW設計下OSDUI資源硬件填充需求。該實施例實現(xiàn)為設計單元提 供一個資源數(shù)據(jù)庫,設計單元從該資源數(shù)據(jù)庫中提取需要的UI資源,該資源生成單元根據(jù) 各種OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu)及算法來生成各個UI資源對應的計算機程序代碼,以便設計 單元即時的調(diào)用。
本發(fā)明上述實施例中,在編譯UI資源的數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多個文件的 組合頭文件、源文件以及中間層文件,并將頭文件、源文件編譯成可執(zhí)行文件之后,方法的 實現(xiàn)步驟還可以包括從內(nèi)存中調(diào)用中間層文件,以模擬OSD應用軟件;獲取仿真單元的模擬結(jié)果,并調(diào)試模擬結(jié)果直至應用軟件滿足用戶需求。該實施步驟實現(xiàn)OSD應用軟件的仿 真調(diào)試,之所以可以做到在Windows系統(tǒng)下,以所見至所得的方式,對我們芯片OSD菜單的 調(diào)試。最根本的原因是,在Windows系統(tǒng)下,使用純軟件方式模擬了硬件OSD的功能。詳細 地展開說,硬件OSD之所以能畫出東西來,是操作OSD內(nèi)存(也就是顯存,現(xiàn)在都是雙顯存 的),顯存即FrameBuffer,類似于一個畫布。設計人員可以為每個像素填充它對應的顏色, 就組成了一屏菜單。當然,對于軟硬件的實現(xiàn),有一定的數(shù)據(jù)結(jié)構(gòu)支撐。例如
typedef struct StructOsdCharacterDispIayffords
{
tfford maskMode 1 ;
tfford addr:15;
tByte width:4 ;
tByte bIinkMode 1;
tByte doubIeLow 1;
tByte doubIeHeight 1;
tByte doubIeffidth 1;
tByte foreGround 3 ;
tByte height5 ;
tByte clut5 ;
tByte background 3 ;
} SOCDff ;
上述OSD應用軟件的開發(fā)主機(即PC機)中,通過在PC的顯存(即PC FrameBuffer)中,分配一定的空間,使用 PC 的 Graphic Library 以及 Graphic Device Drivers。針對OSD菜單的操作,可以通過hput Device Drivers來實現(xiàn)捕獲動作,消息處 理翻譯成對應的OSD控制鍵值。從而完全模擬OSD的顯示及操作。
由上述實施例可知,本發(fā)明使用上述開發(fā)方法的OSD應用開發(fā)模型及工具可以包 括 Widget Model、Design Model、Compile Model、Emluator Model、Debugger Model 五 個組件。Widget Model,作用為設計OSD控件,控件設計人員可依據(jù)OSD驅(qū)動數(shù)據(jù)結(jié)構(gòu)及 算法,設計出多種使用控件;Design Model,提供給設計人員的可視化開發(fā)工具,在設計器 中,拖拉控件、設置控件自身及關(guān)聯(lián)屬性,同時定義響應動作類別,從而完成OSD的定制; CompileModel,為編譯模型,可預編譯生成軟件仿真級代碼,供軟件仿真模型調(diào)用。也可編 譯生成源代碼文件,供SOC芯片CPU編譯器生成芯片運行數(shù)據(jù)使用;Emluator Model,為仿 真組件,功能上替代SOC OSD硬件,進行純軟件仿真演示;DebuggerModel,內(nèi)含調(diào)試工具, 可結(jié)合定義響應動作進行調(diào)試。其中,設計單元中的模型模型設計器采用插件系統(tǒng)技術(shù),可 方便、快速進行系統(tǒng)功能的增加、卸載,提高了開發(fā)工作的效率;模型化編譯器可以支持預 處理及組態(tài)編譯功能,支持OSD驅(qū)動數(shù)據(jù)結(jié)構(gòu)自導入及組件更新;通過加入OSD硬件模型, 即可全軟件仿真及自動調(diào)試。
本發(fā)明實施例上述實施例中,在根據(jù)用戶需求選擇UI資源,來定制OSD應用軟件 的數(shù)據(jù)結(jié)構(gòu)之后,方法還可以包括在設計單元和資源生成單元之間建立映射關(guān)系,并根據(jù) 映射關(guān)系同步設計單元與資源生成單元相對應的數(shù)據(jù),實現(xiàn)在設計單元更新OSD應用軟件//mask屬性 //字符地址//字符寬度=實際寬度-寬度偏移量 //0,不閃爍;1,閃爍 //doub IeHeight 為 1, doub IeLow 為 O Il高度縮放,O,不放大;ι,增大一倍 Il寬度縮放,0,不放大;1,增大一倍 //前景色Il字符高度=實際高度-偏移量 //顏色表索引組號 Il背景色的數(shù)據(jù)結(jié)構(gòu)時候,同步更新資源生成單元上對應的UI資源,或者,在資源生成單元更新已 生成的UI資源的時候,同步更新設計單元上對應的UI資源的數(shù)據(jù)結(jié)構(gòu)。該實施例實現(xiàn)在 設計模版(Template)和生成的控件(Widget)之間引入雙重機制,可通過項目模板修改及 控件定制方式,進行OSD擴展。
本發(fā)明實施例上述實施例中,在定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)之后,方法還包括 根據(jù)預設條件定義OSD應用軟件的第一用戶界面的UI資源中的虛擬資源,虛擬資源為UI 資源中使用頻率高的一個或多個元素其中,UI資源包括圖片背景、菜單以及圖片背景和 菜單上的一個或多個控件;調(diào)用虛擬資源來創(chuàng)建OSD應用軟件的第二用戶界面的UI資源。 該實施例通過創(chuàng)建虛擬資源(該虛擬資源為用戶界面上常用的UI資源),來使得在下一個 用戶界面生成時,只需要調(diào)用已有的虛擬資源即可,不需要重復編譯相同的UI資源,這樣 提高了研發(fā)人員的工作效率。
優(yōu)選的,在上述實施例中根據(jù)預設條件定義OSD應用軟件的第一用戶界面的UI 資源中的虛擬資源的步驟可以包括判斷UI資源中的一個或多個元素的使用頻率是否超 過預定次數(shù),其中,當超過預定次數(shù)的時候,將使用頻率超過預定次數(shù)的每個元素定義為虛 擬資源保存至快速存儲器(例如SDRAM)中,否則,將使用頻率在預定次數(shù)內(nèi)的每個元素保 存至閃存FLASH中。該實施例中的自動設置模塊實現(xiàn)一種自動設置算法,系統(tǒng)通過該算法 實現(xiàn)計算UI資源中的各個元素在開發(fā)過程中的使用頻率,對于使用頻率超過一定次數(shù)的 UI資源即設置為虛擬資源,以供另外的用戶界面調(diào)用,優(yōu)化了 CPUUI資源的處理方式。另 外的,該自動設置模塊也可以是手動設置模塊,可以實現(xiàn)在設置界面上選擇UI資源中的一 個或多個元素以獲取虛擬資源,并將虛擬資源保存至SDRAM中,該方法提供一種按照設計 需求在所有的UI資源中選擇虛擬資源的方案,該方案中的虛擬資源基本上可以按照也沒 標準設置或者按照研發(fā)人員的開發(fā)經(jīng)驗進行設置。虛擬資源只是該模型里一個優(yōu)化CPUUI 資源處理的方式,在研發(fā)過程中可以很好的實現(xiàn)UI資源重用,能提高CPUUI資源讀取能力 25-30%。
本發(fā)明實施例中,調(diào)用虛擬資源來創(chuàng)建OSD應用軟件的第二用戶界面的UI資源的 步驟可以包括判斷虛擬資源的在第一用戶界面上的坐標位置和大小是否與第二用戶界面 的UI資源的坐標位置和大小相同,其中,當坐標位置相同且大小相同時,調(diào)用虛擬資源創(chuàng) 建第二用戶界面的UI資源,否則,退出調(diào)用虛擬資源的步驟。該步驟防止系統(tǒng)多次獲取虛 擬資源,降低了處理器的重復操作,提高了工作效率。
綜上所述,本發(fā)明作為電視OSD應用開發(fā)模型及工具,可完全基于軟件仿真環(huán)境 進行調(diào)試,設計人員使用工具所繪制的OSD菜單,通過編譯模型,編譯輸出成對應芯片所需 的位圖UI資源、菜單結(jié)構(gòu)數(shù)據(jù),兼容多種SOC視頻處理芯片。并且具有良好的移植性,可通 過移植軟件適配層,在多種SOC硬件平臺上運行同一個OSD應用程序。
圖4是根據(jù)本發(fā)明實施例的OSD應用軟件的設計模型與編譯模型的工作流程 圖。如圖4所示,虛線1、2、3的步驟圖標表示Compile Model中內(nèi)部數(shù)據(jù)關(guān)系,即Clut, Resource,Data之間的數(shù)據(jù)對應關(guān)系。其中,Compile Model是整個模型中,最為復雜的組 件,為提高Compile對于Design的適配性,同時提高軟件的可移植性,在Compile Model的 設計中,引入面對對象編程模式,所有的功能的實現(xiàn)均面向?qū)ο蟆?br>
同時圖4也展示了一個完整OSD應用軟件的資源創(chuàng)建、UI定制、編譯輸出過程。OSD軟件設計人員,在定制滿足用戶需求的UI時,先在設計器中新建字庫、字符,使用新建 的字符組建字符串,構(gòu)建各種控件(包括但不限于靜態(tài)文本、動態(tài)文本、數(shù)值文本、文本編 輯框、時間控件),同時加入圖片資源、圖片按鈕、進度條以及各種動畫控件。之后,根據(jù)設計 好的菜單父子、結(jié)構(gòu)關(guān)系,新建窗體及菜單,設置靜態(tài)屬性(坐標、大小、類型等),關(guān)聯(lián)繼承 結(jié)構(gòu)層次,至此,完整的UI界面已定制構(gòu)建完成。編譯輸出過程,即點陣數(shù)據(jù)生成、數(shù)組資 源生成、顏色表排列、控件窗體布局,最后生成代碼文件(8個文件對和一個ASM文件,分別 為 OsdData、OsdLut> OsdLutlnfo、OsdResource、OsdString、OsdWidget、Osdltem、OsdMenu 文件對及OsdData. asm文件)。
需要說明的是,在附圖的流程圖示出的步驟可以在諸如一組計算機可執(zhí)行指令的 計算機系統(tǒng)中執(zhí)行,并且,雖然在流程圖中示出了邏輯順序,但是在某些情況下,可以以不 同于此處的順序執(zhí)行所示出或描述的步驟。
本發(fā)明還提供了一種多媒體終端,該多媒體終端可以包括上述任一種OSD應用軟 件的開發(fā)系統(tǒng)。該多媒體終端可以是電視機或電視機機頂盒。即在任意一種多媒體終端上 都可以運行本發(fā)明所涉及到的OSD應用軟件的開發(fā)系統(tǒng),使用該OSD應用軟件的開發(fā)方法 的多媒體終端的開發(fā)過程快速、簡便,在產(chǎn)品開發(fā)及后期維護中有著顯著意義,尤其在電器 產(chǎn)品開發(fā)過程中使用該方法有著操作簡便,易用性高的效果。本發(fā)明涉及到的多媒體終端 可以是電視機、電視機機頂盒或者其他多媒體播放器等電器,使用范圍廣泛,兼容性好。
從以上的實施例描述中,可以看出,本發(fā)明實現(xiàn)了如下技術(shù)效果實現(xiàn)了一種簡潔 高效的OSD應用軟件開發(fā)系統(tǒng),開發(fā)過程中使用所見即所得的方式進行OSD開發(fā),大幅度提 高OSD開發(fā)效率,降低錯誤率。該發(fā)明方法簡單,技術(shù)可行,尤其在研發(fā)過程中具有實用意 義。
顯然,本領(lǐng)域的技術(shù)人員應該明白,上述的本發(fā)明的各模塊或各步驟可以用通用 的計算裝置來實現(xiàn),它們可以集中在單個的計算裝置上,或者分布在多個計算裝置所組成 的網(wǎng)絡上,可選地,它們可以用計算裝置可執(zhí)行的程序代碼來實現(xiàn),從而,可以將它們存儲 在存儲裝置中由計算裝置來執(zhí)行,或者將它們分別制作成多個集成電路模塊,或者將它們 中的多個模塊或步驟制作成單個集成電路模塊來實現(xiàn)。這樣,本發(fā)明不限制于任何特定的 硬件和軟件結(jié)合。
以上所述僅為本發(fā)明的優(yōu)選實施例而已,并不用于限制本發(fā)明,對于本領(lǐng)域的技 術(shù)人員來說,本發(fā)明可以有各種更改和變化。凡在本發(fā)明的精神和原則之內(nèi),所作的任何修 改、等同替換、改進等,均應包含在本發(fā)明的保護范圍之內(nèi)。
權(quán)利要求
1.一種OSD應用軟件的開發(fā)系統(tǒng),其特征在于,包括設計單元,用于定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配; 編譯單元,用于編譯所述數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多個文件的組合頭文件、源文件 以及中間層文件,并將所述頭文件隨所述源文件一起編譯成可執(zhí)行文件; 硬件驅(qū)動單元,通過硬件CPU及OSD模塊來接收并運行所述可執(zhí)行文件; 顯示單元,用于顯示所述可執(zhí)行文件的運行結(jié)果。
2.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括仿真單元,用于從內(nèi)存中調(diào)用所述中間層文件,模擬所述OSD應用軟件在嵌入式平臺 的運行;調(diào)試單元,用于獲取所述仿真單元的模擬結(jié)果,調(diào)試所述模擬結(jié)果。
3.根據(jù)權(quán)利要求1所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括資源生成單元,用于根 據(jù)所述OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu)來設計并生成各種UI資源,以使得所述設計單元根據(jù)用戶 需求選擇所述資源生成單元中生成的所述各種UI資源。
4.根據(jù)權(quán)利要求3所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括在所述設計單元和所述 資源生成單元之間設置定制單元,所述定制單元用于在所述設計單元和所述資源生成單元 之間建立映射關(guān)系,并根據(jù)所述映射關(guān)系來同步所述設計單元與所述資源生成單元相對應 的數(shù)據(jù)。
5.根據(jù)權(quán)利要求1-4中任一項所述的系統(tǒng),其特征在于,所述系統(tǒng)還包括驅(qū)動適配單 元,設置于所述設計單元和所述編譯單元之間,用于為所述OSD應用軟件提供用于功能調(diào) 用的適配接口,通過所述適配接口調(diào)用所述應用軟件的一個或多個功能函數(shù),其中,所述驅(qū) 動適配單元包括應用適配接口,通過所述應用適配接口獲取所述應用軟件的一個或多個功能函數(shù); 驅(qū)動適配接口,通過所述驅(qū)動適配接口獲取所述可執(zhí)行文件;調(diào)用模塊,設置在所述應用適配接口和所述驅(qū)動適配接口之間,用于通過動態(tài)函數(shù)指 針自動調(diào)用所述可執(zhí)行文件對應的任意一個或多個所述功能函數(shù)。
6.根據(jù)權(quán)利要求5所述的系統(tǒng),其特征在于,所述調(diào)用模塊所調(diào)用的一個或多個所述 功能函數(shù)包括可重用的通用功能函數(shù)和根據(jù)OSD硬件芯片屬性來確定的特定功能函數(shù)。
7.—種OSD應用軟件的開發(fā)方法,其特征在于,包括設計單元定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu),所述數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配; 編譯所述數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或多個文件的組合頭文件、源文件以及中間層文 件,并將所述頭文件隨所述源文件一起編譯成可執(zhí)行文件; 通過硬件CPU及OSD模塊來接收并運行所述可執(zhí)行文件; 顯示所述可執(zhí)行文件的運行結(jié)果。
8.根據(jù)權(quán)利要求7所述的方法,其特征在于,在編譯所述數(shù)據(jù)結(jié)構(gòu)以獲取以下一個或 多個文件的組合頭文件、源文件以及中間層文件,并將所述頭文件隨所述源文件一起編譯 成可執(zhí)行文件之后,所述方法還包括從內(nèi)存中調(diào)用所述中間層文件,以模擬所述OSD應用軟件; 獲取所述仿真單元的模擬結(jié)果,并調(diào)試所述模擬結(jié)果。
9.根據(jù)權(quán)利要求7所述的方法,其特征在于,在設計單元定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu)之前,所述方法還包括用于根據(jù)所述OSD硬件的驅(qū)動數(shù)據(jù)結(jié)構(gòu)來設計并生成各種UI資 源,以使得所述設計單元根據(jù)用戶需求選擇所述資源生成單元中生成的所述各種UI資源。
10.根據(jù)權(quán)利要求9所述的方法,其特征在于,在設計單元定制OSD應用軟件的數(shù)據(jù)結(jié) 構(gòu)之后,所述方法還包括在所述設計單元和所述資源生成單元之間建立映射關(guān)系,并根據(jù)所述映射關(guān)系同步所 述設計單元與所述資源生成單元相對應的數(shù)據(jù)。
11.根據(jù)權(quán)利要求7所述的方法,其特征在于,在設計單元定制OSD應用軟件的數(shù)據(jù)結(jié) 構(gòu)之后,所述方法還包括根據(jù)預設條件定義所述OSD應用軟件的第一用戶界面的UI資源中的虛擬資源,所述虛 擬資源為所述UI資源中使用頻率高的一個或多個元素,其中,所述UI資源包括圖片背景、 菜單以及所述圖片背景和所述菜單上的一個或多個控件;調(diào)用所述虛擬資源來創(chuàng)建所述OSD應用軟件的第二用戶界面的UI資源。
12.根據(jù)權(quán)利要求11所述的方法,其特征在于,根據(jù)預設條件定義所述OSD應用軟件的 第一用戶界面的UI資源中的虛擬資源的步驟包括判斷所述UI資源中的一個或多個元素 的使用頻率是否超過預定次數(shù),其中,如果超過所述預定次數(shù),則將所述使用頻率超過所述 預定次數(shù)的每個元素定義為所述虛擬資源保存至快速存儲器中,否則,將使用頻率在所述 預定次數(shù)內(nèi)的每個元素保存至閃存中。
13.根據(jù)權(quán)利要求11所述的方法,其特征在于,調(diào)用所述虛擬資源來創(chuàng)建所述OSD應用 軟件的第二用戶界面的UI資源的步驟包括判斷所述虛擬資源在所述第一用戶界面上的 坐標位置和大小是否與所述第二用戶界面的UI資源的坐標位置和大小相同,其中,當坐標 位置相同且大小相同時,調(diào)用所述虛擬資源創(chuàng)建所述第二用戶界面的UI資源,否則,退出 調(diào)用所述虛擬資源的步驟。
14.一種多媒體終端,其特征在于,包括權(quán)利要求1-6中任意一項所述的OSD應用軟件 的開發(fā)系統(tǒng)。
全文摘要
本發(fā)明公開了一種OSD應用軟件的開發(fā)方法、系統(tǒng)及多媒體終端,其中,該系統(tǒng)包括設計單元,用于定制OSD應用軟件的數(shù)據(jù)結(jié)構(gòu),該數(shù)據(jù)結(jié)構(gòu)與OSD硬件相匹配;編譯單元,根據(jù)數(shù)據(jù)結(jié)構(gòu)來編譯UI資源以獲取以下一個或多個文件的組合頭文件、源文件以及中間層文件,并將頭文件隨源文件一起編譯成可執(zhí)行文件;硬件驅(qū)動單元,通過硬件CPU及OSD模塊來接收并運行可執(zhí)行文件;顯示單元,用于顯示可執(zhí)行文件的運行結(jié)果。通過本發(fā)明,能夠提高研發(fā)人員的工作效率,節(jié)省了研發(fā)成本。
文檔編號G06F9/45GK102043628SQ20101060677
公開日2011年5月4日 申請日期2010年12月24日 優(yōu)先權(quán)日2010年12月24日
發(fā)明者張靜, 曾小光 申請人:青島海信信芯科技有限公司