一種基于色彩退化的有限調(diào)色板生成方法
【技術(shù)領(lǐng)域】
[0001] 本發(fā)明涉及基于色彩退化的有限調(diào)色板生成方法。
【背景技術(shù)】
[0002] 目前圖像顯示領(lǐng)域最常用的色彩空間是RGB色彩空間,不同的圖片存儲(chǔ)格式有不 同的顏色表示方法,對(duì)于真彩圖像每一個(gè)字節(jié)表示一個(gè)顏色通道,對(duì)于256色圖像會(huì)有一 個(gè)256種顏色的調(diào)色板,而圖像的每個(gè)像素則用一個(gè)字節(jié)來(lái)表示調(diào)色板的索引,這可以大 大節(jié)省空間,帶來(lái)的代價(jià)是圖片顯示的效果會(huì)比真彩色差。
[0003] 隨著計(jì)算機(jī)內(nèi)存容量的不斷提升,許多領(lǐng)域完全不用調(diào)色板了,然而在許多嵌入 式領(lǐng)域,由于內(nèi)存資源的限制256色圖像格式依然使用廣泛,甚至在一些低端的芯片上所 有的圖片共用一個(gè)調(diào)色板,在圖片的色彩空間相差很大而且需要比較好的顯示效果的場(chǎng) 合,調(diào)色板的生成就尤為重要,一個(gè)好的調(diào)色板可以利用盡可能少的空間實(shí)現(xiàn)盡可能好的 圖片顯示效果,這對(duì)有限調(diào)色板場(chǎng)合非常有用。
[0004] 然而,目前還沒(méi)有好的調(diào)色板生成方法來(lái)解決這類有限調(diào)色板生成,尤其是多張 圖片共用同一個(gè)調(diào)色板的調(diào)色板生成方法,使用傳統(tǒng)的調(diào)色板生成算法生成的調(diào)色板是所 有圖片綜合考慮的平均結(jié)果,然而這在圖片顯示權(quán)重有差異的情況下,圖片顯示效果差,它 不能根據(jù)圖片的顯示權(quán)值對(duì)調(diào)色板生成算法進(jìn)行調(diào)整,這使得一些并不重要的圖片占據(jù)了 多余的調(diào)色板空間而一些重要的圖片卻由于調(diào)色板空間限制不能實(shí)現(xiàn)更好的顯示效果,
[0005] 綜上所述,現(xiàn)有技術(shù)由于調(diào)色板數(shù)目的限制導(dǎo)致圖片的顯示效果差以及由于大量 圖片導(dǎo)致圖片的顯示效果差,所以提出一種基于色彩退化的有限調(diào)色板生成方法是十分必 要的。
【發(fā)明內(nèi)容】
[0006] 本發(fā)明的目的是為了解決現(xiàn)有圖片的顯示效果差的問(wèn)題,而提出了一種基于色彩 退化的有限調(diào)色板生成方法。
[0007] 上述的發(fā)明目的是通過(guò)以下技術(shù)方案實(shí)現(xiàn)的:
[0008] 步驟一、利用改進(jìn)的八叉樹(shù)色彩退化算法實(shí)現(xiàn)指定數(shù)量的調(diào)色板生成算法;
[0009] 步驟二、利用指定數(shù)量的調(diào)色板生成算法結(jié)合圖片的顯示權(quán)值生成所有圖片共用 的有限調(diào)色板。
[0010] 發(fā)明效果
[0011] 采用本發(fā)明的一種基于色彩退化的有限調(diào)色板生成方法,
[0012] 1.改進(jìn)的色彩退化算法充分考慮了圖片的顏色統(tǒng)計(jì)特性,使得每次被縮減的顏色 代價(jià)最小,即顏色值的損失最小,每個(gè)圖片設(shè)置顯示權(quán)值,不僅可以綜合考慮所有圖片的顏 色特性,還可以指定不同的圖片具有不同的顯示優(yōu)先級(jí),對(duì)于需要色彩豐富的圖片使用多 的調(diào)色板,而對(duì)于色彩相對(duì)少的圖片使用少的調(diào)色板,解決了生成調(diào)色板的過(guò)程中圖片的 顯示效果不會(huì)由于調(diào)色板數(shù)目的限制導(dǎo)致圖片的顯示效果差的問(wèn)題。
[0013] 2.使用帶索引的最小堆來(lái)實(shí)現(xiàn)顏色的退化算法,保證了算法的執(zhí)行時(shí)間短,對(duì)大 量圖片進(jìn)行調(diào)色板生成調(diào)試時(shí)是非常有幫助的,解決了在生成調(diào)色板的過(guò)程中圖片的顯示 效果由于大量圖片導(dǎo)致圖片的顯示效果差的問(wèn)題。
[0014] 本發(fā)明解決了以往有限調(diào)色板圖片顯示效果差的問(wèn)題,利用帶索引的最小堆保證 算法的執(zhí)行效率高,有限調(diào)試板生成效果可認(rèn)為調(diào)整,使得在顯示權(quán)重偏差比較大的場(chǎng)景 圖片顯示效果比以往的技術(shù)顯示效果提高30% -50%,算法的運(yùn)行時(shí)間和以前是相同的。
[0015] 總而言之,本方法使得有限調(diào)色板生成在應(yīng)對(duì)不同圖片具有不同顯示優(yōu)先級(jí)的情 況也具有良好的顯示效果,不會(huì)因?yàn)橛捎诰C合考慮所有圖片而導(dǎo)致某些細(xì)膩的圖片顯示效 果差的問(wèn)題。
【附圖說(shuō)明】
[0016] 圖1為利用改進(jìn)的八叉樹(shù)色彩退化算法實(shí)現(xiàn)指定數(shù)量的調(diào)色板生成算法的流程 圖;
[0017]圖2為利用指定數(shù)量的調(diào)色板生成算法結(jié)合圖片的權(quán)值生成所有圖片共用的有 限調(diào)色板的流程圖;
[0018]圖3為實(shí)施例一中利用改進(jìn)的八叉樹(shù)色彩退化算法在不同數(shù)量調(diào)色板下的算法 執(zhí)行效果圖,a為測(cè)試圖片的原圖,b為測(cè)試圖片在調(diào)試板數(shù)量為256個(gè)的算法執(zhí)行效果圖, c為測(cè)試圖片在調(diào)試板數(shù)量為128個(gè)的算法執(zhí)行效果圖,d為測(cè)試圖片在調(diào)試板數(shù)量為64 個(gè)的算法執(zhí)行效果圖,e為測(cè)試圖片在調(diào)試板數(shù)量為32個(gè)的算法執(zhí)行效果圖,f為測(cè)試圖片 在調(diào)試板數(shù)量為16個(gè)的算法執(zhí)行效果圖;
[0019] 圖4為實(shí)施例二中的原始圖像,a為0? bmp的圖像效果圖,b為1. bmp的圖像效 果圖,c為2. bmp的圖像效果圖,d為3. bmp的圖像效果圖,e為4. bmp的圖像效果圖,f為 5. bmp的圖像效果圖,g為6. bmp的圖像效果圖,h為7. bmp的圖像效果圖;
[0020] 圖5為不利用本方法對(duì)圖四進(jìn)行生成調(diào)色板生成后形成的效果圖像,a為0. bmp 的圖像效果圖,b為1. bmp的圖像效果圖,c為2. bmp的圖像效果圖,d為3. bmp的圖像效 果圖,e為4. bmp的圖像效果圖,f為5. bmp的圖像效果圖,g為6. bmp的圖像效果圖,h為 7. bmp的圖像效果圖;
[0021] 圖6為實(shí)施例二中利用本方法對(duì)圖四進(jìn)行生成調(diào)色板后形成的效果圖像,a為 0? bmp的圖像效果圖,b為1. bmp的圖像效果圖,c為2. bmp的圖像效果圖,d為3. bmp的圖 像效果圖,e為4. bmp的圖像效果圖,f為5. bmp的圖像效果圖,g為6. bmp的圖像效果圖, h為7. bmp的圖像效果圖。
【具體實(shí)施方式】
【具體實(shí)施方式】 [0022] 一:一種基于色彩退化的有限調(diào)色板生成方法,其特征在于,一種基 于色彩退化的有限調(diào)色板生成方法具體是按以下步驟進(jìn)行的:
[0023] 步驟一、利用改進(jìn)的八叉樹(shù)色彩退化算法實(shí)現(xiàn)指定數(shù)量的調(diào)色板生成算法;
[0024] 步驟二、利用指定數(shù)量的調(diào)色板生成算法結(jié)合圖片的顯示權(quán)值生成所有圖片共用 的有限調(diào)色板。
[0025]
【具體實(shí)施方式】二:結(jié)合圖1說(shuō)明本實(shí)施方式,本實(shí)施方式與【具體實(shí)施方式】一不同 的是,所述步驟一中利用改進(jìn)的八叉樹(shù)色彩退化算法實(shí)現(xiàn)指定數(shù)量的調(diào)色板生成算法;具 體過(guò)程為:
[0026] 改進(jìn)的八叉樹(shù)色彩退化算法按如下步驟實(shí)現(xiàn):
[0027] 步驟一一、選擇圖片的一個(gè)像素記為pixel i為第幾個(gè)像素,其RGB值記為 pg,pb,pg,p b為RGB的三個(gè)顏色通道,每個(gè)顏色通道有8位,1,2, 3,4, 5,6, 7,8,即每個(gè) 顏色通道位的索引位置為j(l < j < 8),j為第幾位,每一位對(duì)應(yīng)一層子樹(shù)節(jié)點(diǎn),最后一位 加一層葉子節(jié)點(diǎn),即每個(gè)顏色通道有8+1層節(jié)點(diǎn),對(duì)應(yīng)樹(shù)的深度為8+1,記錄顏色值,每一位 有0, 1兩種選擇,由于RGB有三個(gè)顏色通道,所以每一位有2~3 = 8種選擇,每一種選擇對(duì)應(yīng) 一個(gè)子樹(shù)節(jié)點(diǎn),即每一位對(duì)應(yīng)八個(gè)子樹(shù)節(jié)點(diǎn),構(gòu)成了八叉樹(shù),全局的最大調(diào)色板數(shù)量為C;
[0028] 其中,所述C為正整數(shù),匕為像素的紅色分量值,p像素的綠色分量值,pb為像 素的藍(lán)色分量值;
[0029] 比如一個(gè)像素:
[0030] R:10001111 G:01001111 B:00101111
[0031] 第一個(gè)節(jié)點(diǎn):1〈〈2+0〈〈1+0 = 4,所以子樹(shù)在八叉樹(shù)的4叉上。進(jìn)入這個(gè)子樹(shù)
[0032] 第二個(gè)節(jié)點(diǎn):0〈〈2+1〈〈1+0 = 2,子樹(shù)在2叉上,進(jìn)入這個(gè)子樹(shù)
[0033] 第三個(gè)節(jié)點(diǎn):0〈〈2+0〈〈1+1 = 1子樹(shù)在1叉上,同理遍歷8個(gè)位,就構(gòu)建好了 8個(gè) 子樹(shù),最后一個(gè)是葉子節(jié)點(diǎn),他會(huì)記錄rgb值。當(dāng)然有可能有些子樹(shù)已經(jīng)構(gòu)建好了,就計(jì)數(shù) 加一,還有可能葉子節(jié)點(diǎn)(最后的調(diào)試版)超過(guò)了最大值,就需要合并;
[0034] 步驟一二、遍歷顏色通道位的索引位置,若index = (pr[j] < < 3) | (pg[j] < < 2) |pb[j]節(jié)點(diǎn)為子樹(shù)節(jié)點(diǎn)或空節(jié)點(diǎn),則創(chuàng)建新的index = (pjj] < < 3) | (pg[j] << 2) |pb[j]節(jié)點(diǎn),
[0035] 若index = (p』j] << 3) | (pg[j] <<