專利名稱:一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法及裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及圖像轉(zhuǎn)換處理技術(shù)領(lǐng)域,特別是一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)
方法及裝置,具體是對(duì)原始24位圖像信號(hào)轉(zhuǎn)換成18位,16位或者12位圖 像格式時(shí)進(jìn)行的誤差擴(kuò)散處理的方法與裝置。
背景技術(shù):
現(xiàn)有技術(shù)中,由于LCD (液晶)顯示屏的像素位深度一般小于24位, 所以將24位的圖像顯示到LCD顯示屏上時(shí)需要截掉像素信息的低位。比如 將RGB888 (24位)信號(hào)顯示到RGB565 (16位)的液晶(LCD)顯示屏 上,紅色通道要截掉低3位,綠色通道要截掉低2位,藍(lán)色通道要截掉低3 位。而采用簡(jiǎn)單的截位方法,圖像會(huì)產(chǎn)生固定的誤差色塊。
在圖像格式轉(zhuǎn)換處理過程中,去抖動(dòng)是其中重要的一步,通常的數(shù)字圖 像的每個(gè)像素是用RGB (紅綠藍(lán))3個(gè)分量來表示的,通常每個(gè)分量都用8 個(gè)比特來表示(其取值范圍為0-255)。而現(xiàn)在的手持設(shè)備上所用的LCD 一般是12位(RGB分別用4比特表示),16位(R: 5比特,G: 6比特,B:5 比特)或者18位(RGB分別用6比特表示)。如果直接用8比特的高比特 位直接顯示的話,顯示出來的圖像會(huì)出現(xiàn)色塊,影響顯示效果,去抖動(dòng)處理 就是消除這些色塊效果的處理。在硬件的實(shí)現(xiàn)方案中,目前,如圖2所示,公知的去抖動(dòng)的圖像處理模 塊都是首先輸入的原始RGB888信號(hào)進(jìn)行一行的緩存,然后計(jì)算出誤差值, 在向外圍擴(kuò)散。該方法去抖動(dòng)的基本原理是將像素的量化誤差向右,右下, 左下,正下方擴(kuò)散,新的像素值等于原始的像素值加上從各個(gè)方向擴(kuò)散的誤 差值。量化誤差是由新產(chǎn)生的像素點(diǎn)的值進(jìn)行四舍五入所產(chǎn)生的。
以RGB888轉(zhuǎn)化為RGB565為例,對(duì)于坐標(biāo)為(I,J )的像素的紅色(R) 分量而言,截位量化誤差為ERROR—R(I,J)-RIN(I,J)-(((RIN(I,J) 3)+8) 3),其發(fā)散到4個(gè)方向的誤差分別為
R_DIS(I+1,J) = ERROR_R(I,J)*c
R_DIS(I+1,J-1) = ERROR—R(I,J)*d (1)
R_DIS(I,J+1) = ERROR_R(I,J)*a
R_DIS(I+1, J+l) = ERROR_R(I,J)*b
所以,對(duì)于像素(I,J)來說,其生成的新的像素的值為
R一NEW(I,J) = RIN(I,J) + ERROR—R(I,J-l)*a + ERROR_R(I-l,J-l)*b + ERROR_R(I-l,J)*c + ERROR—R(I-l,J+l)*d (2)
該方法中,因?yàn)樵嫉腞GB888信號(hào)用24bits表示一個(gè)像素,所以這樣 的處理方法,Buffer (緩沖器)資源有很大浪費(fèi),同時(shí)抖動(dòng)系數(shù)需要加法 器和移位器結(jié)合實(shí)現(xiàn),因此,大大增加了硬件的成本。
發(fā)明內(nèi)容
本發(fā)明的目的是提供一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法及裝置,應(yīng)用去抖 動(dòng)的誤差擴(kuò)散方法,克服現(xiàn)有方法Buffer資源浪費(fèi)大和硬件成本高的技術(shù) 問題,本方法可以使截位誤差分布到整副圖像,從而避免色塊出現(xiàn)。為了實(shí)現(xiàn)上述發(fā)明目的,本發(fā)明的技術(shù)方案是 一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法,其特征在于該方法步驟是 A:輸入圖像并計(jì)算出當(dāng)前行上各點(diǎn)的擴(kuò)散誤差;
B:擴(kuò)散誤差的計(jì)算結(jié)果存儲(chǔ)在寄存器中,并且將待處理像素點(diǎn)相鄰三 點(diǎn)的擴(kuò)散誤差求和;
C:將相鄰三點(diǎn)的擴(kuò)散誤差求和值存儲(chǔ)在緩存器中;
D:當(dāng)下一行圖像輸入時(shí),利用相鄰三點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出 圖像。
一種裝置,上述的方法,其特征在于它由輸出圖像產(chǎn)生模塊、圖像殘差 計(jì)算模塊、圖像殘差累加模塊、加法器模塊、寄存器和緩沖器組成;其中 該圖像殘差計(jì)算^f莫塊用于計(jì)算圖像輸入當(dāng)前行上各點(diǎn)的擴(kuò)散誤差,并將 其存儲(chǔ)于寄存器;及將待處理像素點(diǎn)相鄰三點(diǎn)的擴(kuò)散誤差求和并將求和值存 儲(chǔ)在緩存器中;
該圖像殘差累加模塊用于當(dāng)下一行圖像輸入時(shí),利用緩沖器中相鄰三點(diǎn) 的擴(kuò)散誤差求和值計(jì)算出輸出圖像;
該輸出圖像產(chǎn)生模塊用于將輸入圖像信息傳送到圖像殘差計(jì)算模塊處 理,并將圖像殘差累加模塊處理后的圖像輸出。 藉由上述技術(shù)方案,本發(fā)明的技術(shù)效果是
1、 本發(fā)明提供一個(gè)特殊的去抖動(dòng)參數(shù),可以不用加法器而直接計(jì)算出 誤差值,同時(shí)將產(chǎn)生的誤差值進(jìn)行緩沖,以減少對(duì)緩沖器的要求。
2、 本發(fā)明能夠有效的節(jié)省緩沖器和其他硬件,從而使系統(tǒng)實(shí)現(xiàn)成本大 大降低。3、本發(fā)明方法可對(duì)原始24位圖像信號(hào)轉(zhuǎn)換成18位,16位或者12位圖 像格式時(shí)進(jìn)行的誤差擴(kuò)散處理。
圖l是本發(fā)明的算法原理圖。
圖2是現(xiàn)有的一般方法的算法原理圖。
圖3是本發(fā)明裝置的結(jié)構(gòu)原理圖。
具體實(shí)施例方式
本發(fā)明提供了一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法,它是在(如圖2)圖像 去抖動(dòng)方法的進(jìn)一步發(fā)展。
本發(fā)明方法的實(shí)現(xiàn)原理仍然以RGB888轉(zhuǎn)化為RGB565為例,對(duì)于坐標(biāo) 為(I,J)的像素的紅色(R)分量而言,截位量化誤差為ERROR—R(I,J)-RIN(I,J) - (((RIN(I,J) 3)+8) 3),其發(fā)散到4個(gè)方向的誤差分別為
R一DIS(I+1,J) 二 ERROR_R(I,J)*c
R一DIS(I+1 , J誦l) = ERROR_R(I,J)*d (1) R—DIS(I,J+1) 二 ERJROR_R(I,J)*a R_DIS(I+1 , J+l) = ERROR—R(I,J)*b 所以,對(duì)于像素(I,J)來說,其生成的新的像素的值為 R_NEW(I,J) = RIN(I,J) + ERROR_R(I,J-l)*a + ERROR_R(I-l,Jl)*b + ERRORJR(I-l,J)*c + ERROR_R(I-l,J+l)*d (2) 將上面等式的后4項(xiàng)的和記為R一EIN(I,J),則
R_NEW(I,J) 二 RIN(I,J) + R一EIN(I,J) (3)若將等式(2)的后三項(xiàng)計(jì)為ERRO_R—IN(I,J),則
R—NEW(I,J) = RIN(I,J) + ERROR—R(I,J-l)*a+ERROR—R_IN(I,J)
(4)
本發(fā)明方法是基于等式(4),如圖1所示,首先對(duì)于輸入的行I-l,算出 等式(2)的后三項(xiàng)和用ERRO_R—IN(I,J)表示,當(dāng)我們要計(jì)算R—NEW(I,J), 只需要從緩存器(Buffer)中取出ERRO—R_IN(I,J),再利用等式(4)計(jì)算既 可。由于我們只需要緩存ERRO信號(hào),比原始信號(hào)校4艮多,所以可以節(jié)省 緩存器(Buffer)資源。對(duì)于綠色(G)分量和藍(lán)色(B)分量的處理類似,區(qū)別在于 計(jì)算G分量的量化誤差時(shí),其移位的位數(shù)為2位。
實(shí)現(xiàn)該方法的裝置結(jié)構(gòu)如圖3所示它由輸出圖像產(chǎn)生模塊l、圖像殘 差計(jì)算模塊2、圖像殘差累加模塊3、加法器模塊4、寄存器5和緩沖器組 成;其中
該圖像殘差計(jì)算模塊2用于計(jì)算圖像輸入當(dāng)前行上各點(diǎn)的擴(kuò)散誤差,并 將其存儲(chǔ)于寄存器(5);及將待處理像素點(diǎn)相鄰三點(diǎn)的擴(kuò)^:誤差求和并將 求和值存儲(chǔ)在緩存器中;
該圖像殘差累加模塊3用于當(dāng)下一行圖像輸入時(shí),利用緩沖器中相鄰三 點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出圖像;
該輸出圖像產(chǎn)生模塊1用于將輸入圖像信息傳送到圖像殘差計(jì)算模塊2 處理,并將圖像殘差累加模塊3處理后的圖像輸出。 本發(fā)明方法的處理流程是
A: Input—Image (輸入圖像)并計(jì)算出當(dāng)前行上各點(diǎn)的擴(kuò)散誤差; B:擴(kuò)散誤差的計(jì)算結(jié)果存儲(chǔ)在寄存器中,并且將待處理像素點(diǎn)相鄰三 點(diǎn)的擴(kuò)散誤差求和;C-.將相鄰三點(diǎn)的擴(kuò)散誤差求和值存儲(chǔ)在緩存器中; D:當(dāng)下一行圖像輸入時(shí),利用相鄰三點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出 圖像。
為了便于硬件i殳計(jì),我們將a, b, c, d的值分別設(shè)為1/2, 1/8, 1/4, 1/8,因此發(fā)散到四個(gè)方向的誤差值只是將分量誤差進(jìn)行移位即可。
運(yùn)用我們的方法實(shí)現(xiàn)的抖動(dòng)模塊當(dāng)輸入為RGB888格式,輸出為RGB565 時(shí),每個(gè)像素所占用的存儲(chǔ)器為3+2+3=8比特,比輸入的像素24比特要節(jié) 約16比特。對(duì)于一幅大的圖像可以節(jié)約比較大的存儲(chǔ)器。
以下再用24位圖像轉(zhuǎn)化為18位圖像R分量為例,詳細(xì)描述模塊的具體 運(yùn)行過程(其他分量或者16位/12位圖像的處理過程類似)
如上所述,24位圖像的R分量都是8比特表示的,而18位圖像的R分 量都是6位表示的。如圖2所示,假設(shè)輸入圖像的第1行第1列的像素的R 分量(8比特)的值為RI[l,l],輸出圖像的值直接取其高6比特為RO[l,l。 兩者的差值ERR1, l=RIl,l_(RO[l,l《2),將ERR[1,1分別乘以3 個(gè)不同的系數(shù)a,c,b用于產(chǎn)生輸出圖像的第l行第2歹'h第2行第1列和第2 行第2列的像素。因此輸出圖像第1行第2列的像素值為
(RI[1,2》2) 2 + ERR[l,l*a,
輸出圖像第2行第1列的像素值為
(RI[1,2J》2)《2 + ERR[l,l*c+ERR[l,2*d,
輸出圖像第1行第2列的像素值為
(RI[1,2》2)《2 + ERR[l,l*b+ERR[l,2I*c+ERR[l,3*d+ERR[2,lj*a 以此類推,輸出圖像第i行第j列的像素值為RI (i,j) + ERR (i,j-l)*a + ERR (i-l,j-l)化+ ERR (i-l,j"c + ERR (i-l,j+l)*d
本實(shí)施例釆用特殊的a,b,c,d參數(shù)(a,b,c,d為殘差擴(kuò)散系數(shù),由算法核 試驗(yàn)所得,對(duì)于不同的應(yīng)用可以配置不同的擴(kuò)散系數(shù),但都遵循以下原則 1,所有方向的殘差系數(shù)相加的和為12,為了硬件的實(shí)施方便,所有的系數(shù)都近似為2的n次方(n二l,-2......)
,使硬件實(shí)現(xiàn)時(shí)避免了乘法器的使用(乘法器在硬件實(shí)現(xiàn)時(shí)是很大的硬件開 銷)。如圖3為本實(shí)施例的硬件實(shí)現(xiàn)框圖,當(dāng)本才莫塊從接收端得到一個(gè)像素 的R分量的值,模塊3從存儲(chǔ)器中提M目對(duì)應(yīng)的殘差值相加送入模塊1,模 塊1把殘差之和與R分量的高6比特相加生成新的輸出像素。同時(shí)模塊2 把輸入像素和輸出像素相減得到新的ERR值,然后乘以不同的a,b,c,d參數(shù) 生成4個(gè)方向上的殘差,然后進(jìn)入存儲(chǔ)器保存。本實(shí)施例采用保存中間殘差 的方法以節(jié)約存儲(chǔ)器的數(shù)量。
綜上所述僅為本發(fā)明的較佳實(shí)施例而已,并非用來限定本發(fā)明的實(shí)施范 圍。即凡依本發(fā)明申請(qǐng)專利范圍的內(nèi)容所作的等效變化與修飾,都應(yīng)為本發(fā) 明的技術(shù)范疇。
權(quán)利要求
1、一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法,其特征在于該方法步驟是A輸入圖像并計(jì)算出當(dāng)前行上各點(diǎn)的擴(kuò)散誤差;B擴(kuò)散誤差的計(jì)算結(jié)果存儲(chǔ)在寄存器中,并且將待處理像素點(diǎn)相鄰三點(diǎn)的擴(kuò)散誤差求和;C將相鄰三點(diǎn)的擴(kuò)散誤差求和值存儲(chǔ)在緩存器中;D當(dāng)下一行圖像輸入時(shí),利用相鄰三點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出圖像。
2、 一種裝置,用于實(shí)施如權(quán)利要求l所述的方法,其特征在于它由輸出圖 像產(chǎn)生模塊(1)、圖像殘差計(jì)算模塊(2)、圖像殘差累加模塊(3)、加法器 模塊(4)、寄存器(5)和緩沖器組成;其中該圖像殘差計(jì)算^t塊(2)用于計(jì)算圖像輸入當(dāng)前行上各點(diǎn)的擴(kuò)散誤差,并 將其存儲(chǔ)于寄存器(5);及將待處理像素點(diǎn)相鄰三點(diǎn)的擴(kuò)散誤差求和并將求和 值存儲(chǔ)在緩存器中;該圖像殘差累加模塊(3)用于當(dāng)下一行圖像輸入時(shí),利用緩沖器中相鄰三 點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出圖像;該輸出圖像產(chǎn)生模塊(1 )用于將輸入圖像信息傳送到圖像殘差計(jì)算模塊(2 ) 處理,并將圖像殘差累加模塊(3)處理后的圖像輸出。
全文摘要
一種硬件實(shí)現(xiàn)的圖像去抖動(dòng)方法,步驟是A輸入圖像并計(jì)算出當(dāng)前行上各點(diǎn)的擴(kuò)散誤差;B擴(kuò)散誤差的計(jì)算結(jié)果存儲(chǔ)在寄存器中,并且將待處理像素點(diǎn)相鄰三點(diǎn)的擴(kuò)散誤差求和;C將相鄰三點(diǎn)的擴(kuò)散誤差求和值存儲(chǔ)在緩存器中;D當(dāng)下一行圖像輸入時(shí),利用相鄰三點(diǎn)的擴(kuò)散誤差求和值計(jì)算出輸出圖像。實(shí)施該方法的裝置由輸出圖像產(chǎn)生模塊、圖像殘差計(jì)算模塊、圖像殘差累加模塊、加法器模塊、寄存器和緩沖器組成。本發(fā)明克服現(xiàn)有方法Buffer資源浪費(fèi)大和硬件成本高的技術(shù)問題,本方法可以使截位誤差分布到整副圖像,從而避免色塊出現(xiàn)。
文檔編號(hào)G09G5/02GK101286302SQ20071003929
公開日2008年10月15日 申請(qǐng)日期2007年4月10日 優(yōu)先權(quán)日2007年4月10日
發(fā)明者楊曉松, 巍 羅, 煜 陳 申請(qǐng)人:智多微電子(上海)有限公司