基于變換向量的點(diǎn)陣字體的放大顯示方法及放大顯示裝置制造方法
【專利摘要】本發(fā)明提供了一種基于變換向量的點(diǎn)陣字體放大顯示方法,包括以下步驟:獲取需要放大顯示的字體;將所述原始點(diǎn)陣字體各點(diǎn)的x軸、y軸坐標(biāo)移動(dòng)預(yù)先計(jì)算的x軸、y軸變換向量,以對(duì)所述原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)在x軸、y軸上進(jìn)行放大變換,從而得到所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù);輸出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。本發(fā)明通過變換裝置和顯示裝置,提高了使用時(shí)鐘主頻較低的MPU的裝置的點(diǎn)陣字體放大速度。
【專利說明】基于變換向量的點(diǎn)陣字體的放大顯示方法及放大顯示裝置
【技術(shù)領(lǐng)域】
[0001]本發(fā)明涉及一種基于變換向量的點(diǎn)陣字體的放大顯示方法及放大顯示裝置。
【背景技術(shù)】
[0002]在一些簡(jiǎn)單、小巧的便攜設(shè)備中,通常都使用液晶屏,以通過點(diǎn)陣字體顯示一些人機(jī)交互信息。以192X64點(diǎn)陣的液晶屏為例,其一行可以顯示12個(gè)16X16的點(diǎn)陣漢字,每屏可以顯示4行共48個(gè)漢字。有時(shí)為了方便老年人使用,需要以更大的字體顯示信息,例如20X20點(diǎn)陣,這樣一行可以顯示8個(gè)漢字,每屏顯示3行共24個(gè)漢字。
[0003]為了實(shí)現(xiàn)點(diǎn)陣字體的放大,在現(xiàn)有技術(shù)中采用字庫(kù)切換的方法,例如,采用分別包含大、小字體的兩個(gè)點(diǎn)陣字庫(kù),在需要放大字體時(shí)只需切換字庫(kù)即可。該方法缺點(diǎn)在于字庫(kù)存儲(chǔ)成本較大。
[0004]現(xiàn)有技術(shù)中另一種放大點(diǎn)陣字體的方法是采用基于浮點(diǎn)運(yùn)算的算法將目標(biāo)點(diǎn)陣字體轉(zhuǎn)換為較大的點(diǎn)陣字體,具體包括如下步驟:定義源點(diǎn)陣空間,根據(jù)目標(biāo)點(diǎn)陣大小分別求出源點(diǎn)陣空間在X、Y方向上的放大比例,接著根據(jù)放大比例計(jì)算確定目標(biāo)點(diǎn)陣空間。該方法通過點(diǎn)陣運(yùn)算實(shí)現(xiàn)點(diǎn)陣字體的放大,這樣可節(jié)省字庫(kù)的存儲(chǔ)成本,但并未考慮到基于不同MPU的運(yùn)算性能針對(duì)性地進(jìn)行優(yōu)化處理。在具體轉(zhuǎn)換過程中,放大比例的計(jì)算次數(shù)依目標(biāo)字體點(diǎn)陣大小而定,舉例來說,如果目標(biāo)字體點(diǎn)陣為20X20的點(diǎn)陣,點(diǎn)陣中的400個(gè)點(diǎn)都需要被計(jì)算到。這樣在需要處理的信息量較大時(shí),會(huì)產(chǎn)生較大的運(yùn)算量。例如對(duì)于192X64的點(diǎn)陣屏而言,每屏可顯示48個(gè)16 X 16點(diǎn)陣的字體,運(yùn)算量為400X48次。對(duì)于32位的MPU來說,由于其自身的運(yùn)算速度較快,雙字運(yùn)算可單指令周期內(nèi)完成,由此實(shí)現(xiàn)的字體轉(zhuǎn)換對(duì)于主頻高于100M的MPU而言,這一轉(zhuǎn)換基本不會(huì)影響用戶的體驗(yàn),但也占用了太多MPU資源,對(duì)于低于100M的MPU而言,這一轉(zhuǎn)換仍然會(huì)有顯示遲鈍感。對(duì)于8位的MPU而言,由于其自身運(yùn)算速度較低,還需要額外消耗更多的MPU時(shí)鐘周期來進(jìn)行字/雙字運(yùn)算,由此會(huì)使用戶明顯感覺到字體顯示的遲鈍,等待顯示的時(shí)間較長(zhǎng),從而影響了用戶體驗(yàn)。此外,由于放大比例的計(jì)算會(huì)產(chǎn)生小數(shù)位取舍的問題,這樣根據(jù)放大比例計(jì)算確定的目標(biāo)點(diǎn)陣空間與實(shí)際目標(biāo)點(diǎn)陣空間之間會(huì)產(chǎn)生一定偏差,即造成放大后的字體與原字體之間存在一定差異,影響放大字體顯示的美觀性。
【發(fā)明內(nèi)容】
[0005]有鑒于此,本發(fā)明的主要目的在于提供一種基于變換向量的點(diǎn)陣字體的放大顯示方法及放大顯示裝置,以解決上述問題。
[0006]本發(fā)明提供的一種基于變換向量的點(diǎn)陣字體放大顯示方法,包括以下步驟:
[0007]A、獲取需要放大顯示的字體;
[0008]B、在預(yù)先存儲(chǔ)的點(diǎn)陣字庫(kù)中查找上述需要放大顯示的字體所對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù);
[0009]C、將所述原始點(diǎn)陣字體各點(diǎn)的X軸、y軸坐標(biāo)移動(dòng)預(yù)設(shè)的X軸、y軸變換向量,以對(duì)所述原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)在X軸、y軸上進(jìn)行放大變換,從而得到所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù);
[0010]D、輸出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
[0011]由上可以看出,上述方法在放大字體時(shí)使用原始點(diǎn)陣字體各點(diǎn)的預(yù)設(shè)變換向量來實(shí)現(xiàn)原始點(diǎn)陣字體各點(diǎn)的在X軸、y軸上的變換,以便在放大字體時(shí)無需執(zhí)行指令周期相對(duì)較長(zhǎng)的用于計(jì)算變換比例的浮點(diǎn)運(yùn)算及固點(diǎn)運(yùn)算,從而降低了點(diǎn)陣字體大小變換過程中的計(jì)算量,進(jìn)而能夠提高字體顯示速度,并提高用戶體驗(yàn)。
[0012]在上述的方法中,所述步驟B包括:
[0013]將所述需要放大顯示的字體對(duì)應(yīng)的字符編碼變換得到所述需要放大顯示的字體的UNICODE編碼,并由該UNICODE編碼在所述點(diǎn)陣字庫(kù)中索引到所述需要放大顯示的字體對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)。
[0014]在上述的方法中,所述預(yù)設(shè)的X軸、y軸變換向量為通過下列過程計(jì)算求出的向量:
[0015]以目標(biāo)字體點(diǎn)陣與原始字體點(diǎn)陣大小差異除目標(biāo)字體點(diǎn)陣大小,求出分割單位長(zhǎng)度;
[0016]按照所述分割單位長(zhǎng)度,將目標(biāo)字體點(diǎn)陣劃分為多個(gè)分割區(qū)域;
[0017]在各分割區(qū)域內(nèi),通過循環(huán)計(jì)算方式獲取分別沿X軸、y軸方向以字體點(diǎn)陣單位長(zhǎng)度依次遞增的向量,并在該循環(huán)計(jì)算的步長(zhǎng)等于所述分割單位長(zhǎng)度的分割點(diǎn)上設(shè)置過濾標(biāo)識(shí)。
[0018]由上可以看出,通過分割區(qū)域確定原始字體點(diǎn)陣中的變換向量替代放大比例來拉伸放大字體,可避免因放大比例計(jì)算而產(chǎn)生的小數(shù)位取舍,由此避免在目標(biāo)點(diǎn)陣空間與實(shí)際目標(biāo)點(diǎn)陣空間之間產(chǎn)生偏差,進(jìn)而解決了放大后的字體與原字體之間存在一定差異,影響放大字體顯示美觀性的問題。
[0019]在上述的方法中,在所述步驟C、D之間還包括以下步驟:
[0020]對(duì)于設(shè)置有過濾標(biāo)識(shí)的新增分割點(diǎn),依據(jù)對(duì)應(yīng)點(diǎn)原始相鄰關(guān)系,對(duì)新增點(diǎn)按照原字形軌跡進(jìn)行取舍。
[0021]由上可以看出,本發(fā)明方法可根據(jù)原始點(diǎn)陣和目標(biāo)點(diǎn)陣大小,按照漢字中心對(duì)稱拉伸放大的原則,計(jì)算出目標(biāo)字體點(diǎn)陣中出現(xiàn)的影響字體顯示效果的新增點(diǎn),并通過對(duì)新增點(diǎn)過濾修復(fù),提高了放大字體的顯示效果。又因?yàn)閷?duì)于這種新增點(diǎn)的判斷計(jì)算是在變換向量計(jì)算過程中實(shí)現(xiàn)的,因此過濾修復(fù)不會(huì)加重字體放大顯示過程的循環(huán)計(jì)算負(fù)擔(dān)。
[0022]在上述的方法中,所述步驟D包括:
[0023]緩存一行或整屏顯示的所述需要放大顯示的字體的點(diǎn)陣數(shù)據(jù),待完成對(duì)所有上述點(diǎn)陣數(shù)據(jù)的緩存后,再將緩存的所有上述點(diǎn)陣數(shù)據(jù)一起輸出。
[0024]由上可以看出,通過先將一行或整屏顯示的顯示字體點(diǎn)陣數(shù)據(jù)緩存至緩沖區(qū),待完成對(duì)這些顯示字體的點(diǎn)陣數(shù)據(jù)的緩存后,再將緩沖區(qū)內(nèi)的所有點(diǎn)陣數(shù)據(jù)輸出至液晶屏幕,可減少液晶屏幕的刷新次數(shù),由此可使顯示快速且穩(wěn)定,避免了單個(gè)顯示字體點(diǎn)陣數(shù)據(jù)依次輸出而造成的屏幕閃爍,提高了用戶體驗(yàn)。
[0025]本發(fā)明還提供了一種點(diǎn)陣字體放大顯示裝置,包括:
[0026]輸入模塊,其用于獲取需要放大顯示的字體;[0027]存儲(chǔ)模塊,其用于存儲(chǔ)點(diǎn)陣字庫(kù)和預(yù)設(shè)的X軸、y軸變換向量;
[0028]變換模塊,其用于在所述點(diǎn)陣字庫(kù)中查找上述需要放大顯示的字體所對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù),并將所述原始點(diǎn)陣字體各點(diǎn)的X軸、y軸坐標(biāo)移動(dòng)所述X軸、y軸變換向量,以對(duì)所述原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)在X軸、y軸上進(jìn)行放大變換,從而得到所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù);
[0029]顯示模塊,其用于輸出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
[0030]在上述的裝置中,還包括:
[0031]過濾模塊,其用于過濾修復(fù)計(jì)算出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
[0032]在上述的裝置中,還包括:
[0033]緩存模塊,其用于緩存一行或整屏顯示的所述需要放大顯示的字體的點(diǎn)陣數(shù)據(jù)。
【專利附圖】
【附圖說明】
[0034]圖1為本發(fā)明的基于變換向量的點(diǎn)陣字體放大顯示方法的流程圖;
[0035]圖2為本發(fā)明的基于變換向量的點(diǎn)陣字體放大顯示裝置的結(jié)構(gòu)圖。
【具體實(shí)施方式】
[0036]下面結(jié)合附圖,詳細(xì)介紹本發(fā)明提供的一種基于變換向量的點(diǎn)陣字體的放大顯示方法及放大顯示裝置。
[0037]點(diǎn)陣字體的放大基于圖形比例放大。漢字從小字體變換到大字體時(shí),保持外形結(jié)構(gòu)不變,也就是說,在放大漢字時(shí)要保持漢字結(jié)構(gòu)左右上下對(duì)稱。
[0038]在實(shí)施本發(fā)明提供的點(diǎn)陣字體放大顯示方法之前,需要執(zhí)行一初始化步驟,包括:根據(jù)預(yù)先存儲(chǔ)的確定大小為(xs,Ys)的點(diǎn)陣字庫(kù)及目標(biāo)字體點(diǎn)陣(xt,Yt)即放大字體點(diǎn)陣區(qū)域的大小計(jì)算原始字體向目標(biāo)字體放大所需的變換向量,具體計(jì)算過程如下:
[0039]以X軸變換向量為例,假設(shè)預(yù)先存儲(chǔ)的原始點(diǎn)陣字體為16X 16點(diǎn)陣字體,目標(biāo)點(diǎn)陣字體為20X20點(diǎn)陣字體,參照下列算法計(jì)算出原始點(diǎn)陣字體各點(diǎn)的變換向量(即原始點(diǎn)陣字體各點(diǎn)向目標(biāo)點(diǎn)陣字體轉(zhuǎn)換所需的變換向量):
[0040]Δ X= (Xt-Xs) //Xt目標(biāo)點(diǎn)陣字體各點(diǎn)的X坐標(biāo),Xs原始點(diǎn)陣字體各點(diǎn)的X坐標(biāo),Δ X字體筆畫分布區(qū)域在X軸上的變化;
[0041]dt=Xt/ Δ χ//與現(xiàn)有技術(shù)中采用放大比例進(jìn)行字體放大的方式不同,在本發(fā)明中,設(shè)置字體橫向分割單位長(zhǎng)度dt,插入分割點(diǎn),由分割點(diǎn)將字體分割為左右上下對(duì)稱的若干分割區(qū)域。例如,對(duì)于20X20的點(diǎn)陣字體而言,由分割點(diǎn)按上述分割單位長(zhǎng)度dt將該字體在橫向上(X軸向)分割為4個(gè)區(qū)域。因?yàn)樽煮w是對(duì)稱結(jié)構(gòu)放大,以字體軸對(duì)稱的左右兩側(cè)各包括長(zhǎng)度為2個(gè)字體橫向分割單位長(zhǎng)度dt的分割區(qū)域;
[0042]
【權(quán)利要求】
1.一種基于變換向量的點(diǎn)陣字體放大顯示方法,其特征在于,包括以下步驟: A、獲取需要放大顯示的字體; B、在預(yù)先存儲(chǔ)的點(diǎn)陣字庫(kù)中查找上述需要放大顯示的字體所對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù); C、將所述原始點(diǎn)陣字體各點(diǎn)的X軸、y軸坐標(biāo)移動(dòng)預(yù)設(shè)的X軸、y軸變換向量,以對(duì)所述原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)在X軸、y軸上進(jìn)行放大變換,從而得到所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù); D、輸出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
2.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述步驟B包括: 將所述需要放大顯示的字體對(duì)應(yīng)的字符編碼變換到所述需要放大顯示的字體的UNICODE編碼,并由該UNICODE編碼在所述點(diǎn)陣字庫(kù)中索引到所述需要放大顯示的字體對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)。
3.根據(jù)權(quán)利要求1所述的方法,其特征在于,所述預(yù)設(shè)的X軸、y軸變換向量為通過下列過程計(jì)算求出的向量: 以目標(biāo)字體點(diǎn)陣與原始字體點(diǎn)陣大小差異除目標(biāo)字體點(diǎn)陣大小,求出分割單位長(zhǎng)度; 按照所述分割單位長(zhǎng)度,將目標(biāo)字體點(diǎn)陣劃分為多個(gè)分割區(qū)域; 在各分割區(qū)域內(nèi),通過循環(huán)計(jì)算方式獲取分別沿X軸、y軸方向以字體點(diǎn)陣單位長(zhǎng)度依次遞增的向量,并在該循環(huán)計(jì)算的步長(zhǎng)等于所述分割單位長(zhǎng)度的分割點(diǎn)上設(shè)置過濾標(biāo)識(shí)。
4.根據(jù)權(quán)利要求3所述的方法,其特征在于,在所述步驟C、D之間還包括以下步驟: 對(duì)于設(shè)置有過濾標(biāo)識(shí)的新增分割點(diǎn),依據(jù)對(duì)應(yīng)點(diǎn)原始相鄰關(guān)系,按照原字形軌跡進(jìn)行取舍。
5.根據(jù)權(quán)利要求1、2、3或4所述的方法,其特征在于,所述步驟D包括: 緩存一行或整屏顯示的所述需要放大顯示的字體的點(diǎn)陣數(shù)據(jù),待完成對(duì)所有上述點(diǎn)陣數(shù)據(jù)的緩存后,再將緩存的所有上述點(diǎn)陣數(shù)據(jù)一起輸出。
6.一種點(diǎn)陣字體放大顯示裝置,其特征在于,包括: 輸入模塊,其用于獲取需要放大顯示的字體; 存儲(chǔ)模塊,其用于存儲(chǔ)點(diǎn)陣字庫(kù)和預(yù)設(shè)的X軸、y軸變換向量; 變換模塊,其用于在所述點(diǎn)陣字庫(kù)中查找上述需要放大顯示的字體所對(duì)應(yīng)的原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù),并將所述原始點(diǎn)陣字體各點(diǎn)的X軸、y軸坐標(biāo)移動(dòng)所述X軸、y軸變換向量,以對(duì)所述原始點(diǎn)陣字體的點(diǎn)陣數(shù)據(jù)在X軸、y軸上進(jìn)行放大變換,從而得到所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù); 顯示模塊,其用于輸出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
7.根據(jù)權(quán)利要求6所述的裝置,其特征在于,還包括: 過濾模塊,其用于過濾修復(fù)計(jì)算出所述需要放大顯示字體的點(diǎn)陣數(shù)據(jù)。
8.根據(jù)權(quán)利要求6或7所述的裝置,其特征在于,還包括: 緩存模塊,其用于緩存一行或整屏顯示的所述需要放大顯示的字體的點(diǎn)陣數(shù)據(jù)。
【文檔編號(hào)】G06F17/30GK103699651SQ201310733321
【公開日】2014年4月2日 申請(qǐng)日期:2013年12月26日 優(yōu)先權(quán)日:2013年12月26日
【發(fā)明者】張軍 申請(qǐng)人:北京海泰方圓科技有限公司