專利名稱:一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法與裝置的制作方法
技術(shù)領(lǐng)域:
本發(fā)明涉及一種圖像信號(hào)去抖動(dòng)處理方法與裝置,特別涉及一種用于對(duì)格式轉(zhuǎn)換后的圖像信號(hào)進(jìn)行誤差擴(kuò)散的去抖動(dòng)處理方法與裝置。
背景技術(shù):
由于液晶顯示屏(LCD)的像素位深度一般小于24位,所以將24位的圖像顯示到液晶顯示屏上時(shí)需要截掉低位的像素信息。以RGB565液晶顯示屏為例,565表示紅色(R)、綠色(G)和藍(lán)色(B)通道的位數(shù)分別為5、6、5位,RGB三個(gè)色彩通道的位數(shù)相加等于16,即表示該信號(hào)具有16位(bit)。若將24位的RGB888信號(hào)顯示到16位的RGB565液晶顯示屏上,由于8位的R通道信號(hào)只能顯示5位,故需要截掉低3位的信號(hào),同樣的,G通道要截掉低2位,B通道要截掉低3位。如果僅采用簡單的截位方法,會(huì)使圖像產(chǎn)生固定的誤差色塊,因此,現(xiàn)有技術(shù)中通常采用去抖動(dòng)的誤差擴(kuò)散方法,使截位量化誤差分布到整個(gè)圖像,從而避免誤差色塊的出現(xiàn)。
如圖1(a)所示,去抖動(dòng)圖像處理的基本原理是將圖像中每一個(gè)像素的截位量化誤差分別向右側(cè)及右下、正下、左下方(統(tǒng)稱為下方)擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定。該截位量化誤差的一般計(jì)算公式為ERROR_C(i,j)=C_IN(i,j)-(((C_IN(i,j)>>n)+2n)<<n)(1)其中,C_IN(i,j)表示坐標(biāo)為(i,j)的像素的某一色彩分量的輸入值,C可以用R、G、B來代替;n表示該色彩分量需要截位的位數(shù);>>n表示右移n位,<<n表示左移n位。
以RGB888信號(hào)轉(zhuǎn)換為RGB565信號(hào)為例,則圖像信號(hào)中坐標(biāo)為(i,j)的像素的各個(gè)色彩分量所產(chǎn)生的截位量化誤差分別為R分量ERROR_R(i,j)=R_IN(i,j)-(((R_IN(i,j)>>3)+8)<<3);
G分量ERROR_G(i,j)=G_IN(i,j)-(((G_IN(i,j)>>2)+4)<<2);B分量ERROR_B(i,j)=B_IN(i,j)-(((B_IN(i,j)>>3)+8)<<3)。
下面僅針對(duì)R分量的誤差擴(kuò)散作說明,G、B分量依此類推,則坐標(biāo)為(i,j)的像素發(fā)散并疊加到周圍相鄰像素上的擴(kuò)散誤差為右側(cè)R_DIS(i,j+1)=ERROR_R(i,j)*a右下R_DIS(i+1,j+1)=ERROR_R(i,j)*b正下R_DIS(i+1,j)=ERROR_R(i,j)*c左下R_DIS(i+1,j-1)=ERROR_R(i,j)*d(2)如圖1(b)所示,對(duì)于圖像信號(hào)中的任一像素(i,j)而言,位于其左側(cè)、左上、正上和右上方的四個(gè)像素(i,j-1)、(i-1,j-1)、(i-1,j)和(i-1,j+1)分別向其進(jìn)行了誤差擴(kuò)散。這些擴(kuò)散誤差疊加到該原始像素(i,j)上,即得到經(jīng)去抖動(dòng)處理后的新的像素值R_NEW(i,j)=R_IN(i,j)+ERROR_R(i,j-1)*a+ERROR_R(i-1,j-1)*b+ERROR_R(i-1,j)*c+ERROR_R(i-1,j+1)*d(3)現(xiàn)有的去抖動(dòng)圖像處理方法即按照上述原理,首先對(duì)原始的RGB888信號(hào)中的像素(24位)進(jìn)行一行的緩存,再根據(jù)抖動(dòng)系數(shù)a、b、c、d分別計(jì)算出各個(gè)方向上的擴(kuò)散誤差,最后將這些擴(kuò)散誤差疊加到周圍的像素上以生成新的像素值。通常,將抖動(dòng)系數(shù)的值設(shè)為7/16、3/16、5/16和1/16,根據(jù)公式(1)和(2)計(jì)算擴(kuò)散誤差時(shí)必須通過移位器和乘法器共同完成,硬件結(jié)構(gòu)較為復(fù)雜。此外,由于傳統(tǒng)的去抖動(dòng)圖像處理方法必須對(duì)原始的24位信號(hào)進(jìn)行緩存,故占用的緩存空間較大,造成資源浪費(fèi)。
發(fā)明內(nèi)容
本發(fā)明的目的在于提供一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法與裝置,它不但能簡化硬件結(jié)構(gòu),僅采用移位器即可完成擴(kuò)散誤差的計(jì)算,而且能大大節(jié)約緩存器的存儲(chǔ)資源。
本發(fā)明的目的是這樣實(shí)現(xiàn)的一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法,其中,圖像信號(hào)的每一個(gè)像素均向右側(cè)、右下、正下和左下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定,其實(shí)質(zhì)性特點(diǎn)在于,所述的方法包括下列步驟(1)接收第i-1行圖像輸入信號(hào),分別計(jì)算該行中坐標(biāo)為(i-1,j-1)、(i-1,j)及(i-1,j+1)的相鄰三個(gè)像素的擴(kuò)散誤差,其中,i、j均為非負(fù)整數(shù);(2)將步驟(1)中相鄰三個(gè)像素的擴(kuò)散誤差的和作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器中;(3)接收第i行圖像輸入信號(hào),計(jì)算坐標(biāo)為(i,j-1)的像素的擴(kuò)散誤差,并結(jié)合誤差信號(hào)ERRO以及坐標(biāo)為(i,j)的像素的值,計(jì)算出像素(i,j)經(jīng)去抖動(dòng)處理后的新的值;以及(4)對(duì)i、j取不同的值,重復(fù)上述步驟(1)至(3),直到該圖像中的每一個(gè)像素都經(jīng)過去抖動(dòng)處理為止。
在上述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法中,所述的各方向上的抖動(dòng)系數(shù)a、b、c、d分別取值為1/2、1/8、1/4和1/8。
本發(fā)明的另一解決方案是提供一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置,它包括一誤差計(jì)算單元、一緩存器和一圖像生成單元,圖像信號(hào)分別輸入至該誤差計(jì)算單元和該圖像生成單元,圖像信號(hào)中的每一個(gè)像素均向右側(cè)、右下、正下和左下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定,所述的誤差計(jì)算單元將同一行的圖像信號(hào)中相鄰的三個(gè)像素的擴(kuò)散誤差的和作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器中,當(dāng)下一行圖像信號(hào)輸入后,該圖像生成單元利用輸入信號(hào)和誤差信號(hào)ERRO計(jì)算出經(jīng)去抖動(dòng)處理后的新的圖像信號(hào)并輸出。
在上述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置中,所述的誤差計(jì)算單元由移位器和加法器構(gòu)成。
在上述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置中,所述的各方向上的抖動(dòng)系數(shù)a、b、c、d分別取值為1/2、1/8、1/4和1/8。
本發(fā)明的去抖動(dòng)處理方法與裝置通過采用約減后的抖動(dòng)系數(shù),使誤差擴(kuò)散過程僅使用移位器即可實(shí)現(xiàn),省去了乘法器,簡化了硬件結(jié)構(gòu)。同時(shí),通過將誤差信號(hào)ERRO而非原始信號(hào)存儲(chǔ)于緩存器中,可以大大節(jié)省緩存器的存儲(chǔ)資源,達(dá)到降低硬件成本的效果。
本發(fā)明的方法流程及裝置結(jié)構(gòu)由以下的實(shí)施例及附圖給出。
圖1(a)和圖1(b)為去抖動(dòng)圖像處理方法的原理圖;圖2為本發(fā)明的去抖動(dòng)處理裝置的結(jié)構(gòu)圖;圖3為本發(fā)明的去抖動(dòng)處理方法的工作流程圖;圖4為本發(fā)明一較佳實(shí)施例的去抖動(dòng)處理裝置的電路框圖。
具體實(shí)施例方式
以下將結(jié)合附圖對(duì)本發(fā)明的一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法與裝置作進(jìn)一步的詳細(xì)描述。
參見圖1(a)和圖1(b),本發(fā)明的去抖動(dòng)處理方法與現(xiàn)有的去抖動(dòng)處理方法具有相同的原理,即圖像信號(hào)中的每一個(gè)像素均向右側(cè)、右下、正下和左下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定,以某一像素的R分量為例,該像素經(jīng)去抖動(dòng)處理后的新的R分量值也符合前述的計(jì)算公式R_NEW(i,j)=R_IN(i,j)+ERROR_R(i,j-1)*a+ERROR_R(i-1,j-1)*b+ERROR_R(i-1,j)*c+ERROR_R(i-1,j+1)*d(3)由于等式(3)的后三項(xiàng)表示同一行相鄰三個(gè)像素的擴(kuò)散誤差,可將其合并處理,若將后三項(xiàng)的和計(jì)為一個(gè)誤差信號(hào)ERRO_R(i,j),則上述等式(3)變?yōu)镽_NEW(i,j)=R_IN(i,j)+ERROR_R(i,j-1)*a+ERRO_R(i,j)(4)本發(fā)明的去抖動(dòng)處理方法即是基于等式(4),通過將誤差信號(hào)ERRO_R(i,j)存儲(chǔ)于緩存器中,再結(jié)合R_IN(i,j)以及ERROR_R(i,j-1)*a的值計(jì)算出每一個(gè)像素經(jīng)去抖動(dòng)處理后的新的值。
參見圖2和圖3,詳細(xì)說明本發(fā)明的去抖動(dòng)處理方法和裝置的工作流程。為了說明方便,采用像素的坐標(biāo)值來指示像素的位置,如果出現(xiàn)負(fù)坐標(biāo),則說明該像素不存在。
以RGB888信號(hào)轉(zhuǎn)換到RGB565信號(hào)為例,若要計(jì)算任一像素(i,j)(i、j均為非負(fù)整數(shù))經(jīng)去抖動(dòng)處理后的值,則需經(jīng)過以下各步驟首先,由誤差計(jì)算單元(1)接收第i-1行圖像輸入信號(hào)(步驟S10),利用公式(1)和(2)計(jì)算出像素(i,j)上方相鄰的三個(gè)像素(i-1,j-1)、(i-1,j)、(i-1,j+1)對(duì)其貢獻(xiàn)的擴(kuò)散誤差(步驟S20),然后,將三個(gè)擴(kuò)散誤差求和,并作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器(2)中(步驟S30)。于本實(shí)施例中,由于R、G、B分量的移位位數(shù)分別為3、2、3,故R分量的誤差信號(hào)ERRO_R(i,j)占用3bit空間,G、B分量的誤差信號(hào)ERRO_G(i,j)、ERRO_B(i,j)分別占用2bit和3bit,對(duì)于一個(gè)像素而言,其占用的緩存器空間僅為3+2+3=8bit。
當(dāng)誤差計(jì)算單元(1)和圖像生成單元(3)接收到第i行圖像輸入信號(hào)后(步驟S40),由誤差計(jì)算單元(1)計(jì)算像素(i,j)左側(cè)相鄰的像素(i,j-1)對(duì)其貢獻(xiàn)的擴(kuò)散誤差。圖像生成單元(3)從緩存器(2)中讀取之前存儲(chǔ)的誤差信號(hào)ERRO,并結(jié)合像素(i,j)的輸入值以及像素(i,j-1)的擴(kuò)散誤差,利用等式(4)計(jì)算出像素(i,j)經(jīng)去抖動(dòng)處理后的新的值(步驟S50)。
由于i、j是任意的非負(fù)整數(shù),通過改變i、j的取值可以對(duì)圖像中每一個(gè)像素進(jìn)行去抖動(dòng)處理,一般的處理順序是從圖像左上角的(0,0)像素開始向右移動(dòng),完成一行的誤差信號(hào)計(jì)算和緩存后再下移一行進(jìn)行處理,如此向右、向下逐行擴(kuò)散,直到所有像素都經(jīng)過去抖動(dòng)處理為止。
參見圖4,其顯示本發(fā)明一較佳實(shí)施例的去抖動(dòng)處理裝置的電路框圖。圖中,空心圈P5代表任一需要進(jìn)行去抖動(dòng)處理的像素;實(shí)心圈P1-P4代表與P5相鄰并且向P5貢獻(xiàn)擴(kuò)散誤差的四個(gè)像素,其中,P1、P2、P3為P5上一行的像素,P4為與P5同行的像素。為了簡化硬件結(jié)構(gòu),特將P1、P2、P3、P4對(duì)P5進(jìn)行誤差擴(kuò)散所采用的抖動(dòng)系數(shù)b、c、d、a設(shè)置為1/8、1/4、1/8和1/2。
首先,需要利用公式(1)和(2)計(jì)算P5上方相鄰三個(gè)像素對(duì)其貢獻(xiàn)的擴(kuò)散誤差。將抖動(dòng)系數(shù)b、c、d的值代入公式后,得到P1、P2、P3對(duì)P5貢獻(xiàn)的擴(kuò)散誤差分別為ERROR(P1)*1/8、ERROR(P2)*1/4以及ERROR(P3)*1/8。
對(duì)于一個(gè)二進(jìn)制數(shù)而言,乘以1/8可以通過右移3位實(shí)現(xiàn),乘以1/4可以通過右移2位實(shí)現(xiàn)。因此,在計(jì)算上述三個(gè)擴(kuò)散誤差時(shí),只需采用移位器對(duì)ERROR(P1)、ERROR(P2)及ERROR(P3)信號(hào)分別右移3位、2位和3位,無需使用乘法器即可完成運(yùn)算,簡化了硬件結(jié)構(gòu)。經(jīng)過移位器輸出的三個(gè)擴(kuò)散誤差輸入至加法器求和,并將求和結(jié)果ERRO(8bit)存儲(chǔ)于緩存器(Buffer)中,比現(xiàn)有技術(shù)的24bit節(jié)省16bit。
當(dāng)下一行圖像信號(hào)輸入后,從Buffer中取出ERRO,并和P5的像素值以及P4對(duì)P5貢獻(xiàn)的擴(kuò)散誤差一起,經(jīng)由加法器疊加輸出,該輸出信號(hào)P5’即為P5經(jīng)去抖動(dòng)處理后的新的值。其中,由于抖動(dòng)系數(shù)a取值為1/2,故P4對(duì)P5貢獻(xiàn)的擴(kuò)散誤差只需將ERROR(P4)信號(hào)右移1位即可獲得。
本發(fā)明的一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法與裝置適用于多種不同格式的截位處理,若將RGB888信號(hào)顯示到RGB666液晶顯示屏上時(shí),則各色彩通道均要截掉低2位,僅需將“n=2”代入前述公式(1)至(4)即可進(jìn)行去抖動(dòng)處理,其中,計(jì)算每一個(gè)像素的新值時(shí),所需占用的緩存空間僅為2+2+2=6bit。同樣地,當(dāng)RGB888信號(hào)轉(zhuǎn)換為RGB444信號(hào)時(shí),也可按照同樣的操作流程進(jìn)行去抖動(dòng)處理,其占用的緩存空間為4+4+4=12bit,均比現(xiàn)有技術(shù)的24bit節(jié)省一半以上的存儲(chǔ)空間,大大節(jié)省了存儲(chǔ)器資源。
權(quán)利要求
1.一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法,其中,圖像信號(hào)的每一個(gè)像素均向右側(cè)、右下、正下和左下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定,其特征在于,所述的方法包括下列步驟(1)接收第i-1行圖像輸入信號(hào),分別計(jì)算該行中坐標(biāo)為(i-1,j-1)、(i-1,j)及(i-1,j+1)的相鄰三個(gè)像素的擴(kuò)散誤差,其中,i、j均為非負(fù)整數(shù);(2)將步驟(1)中相鄰三個(gè)像素的擴(kuò)散誤差的和作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器中;(3)接收第i行圖像輸入信號(hào),計(jì)算坐標(biāo)為(i,j-1)的像素的擴(kuò)散誤差,并結(jié)合誤差信號(hào)ERRO以及坐標(biāo)為(i,j)的像素的值,計(jì)算出像素(i,j)經(jīng)去抖動(dòng)處理后的新的值;以及(4)對(duì)i、j取不同的值,重復(fù)上述步驟(1)至(3),直到該圖像中的每一個(gè)像素都經(jīng)過去抖動(dòng)處理為止。
2.如權(quán)利要求1所述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的方法,其特征在于所述的各方向上的抖動(dòng)系數(shù)a、b、c、d分別取值為1/2、1/8、1/4和1/8。
3.一種用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置,包括一誤差計(jì)算單元(1)、一緩存器(2)和一圖像生成單元(3),圖像信號(hào)分別輸入至該誤差計(jì)算單元(1)和該圖像生成單元(3),圖像信號(hào)中的每一個(gè)像素均向右側(cè)、右下、正下和左下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)a、b、c、d確定,其特征在于所述的誤差計(jì)算單元(1)將同一行的圖像信號(hào)中相鄰的三個(gè)像素的擴(kuò)散誤差的和作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器(2)中,當(dāng)下一行圖像信號(hào)輸入后,該圖像生成單元(3)利用輸入信號(hào)和誤差信號(hào)ERRO計(jì)算出經(jīng)去抖動(dòng)處理后的新的圖像信號(hào)并輸出。
4.如權(quán)利要求3所述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置,其特征在于所述的誤差計(jì)算單元(1)由移位器和加法器構(gòu)成。
5.如權(quán)利要求3所述的用于對(duì)圖像信號(hào)進(jìn)行去抖動(dòng)處理的裝置,其特征在于所述的各方向上的抖動(dòng)系數(shù)a、b、c、d分別取值為1/2、1/8、1/4和1/8。
全文摘要
一種用于對(duì)格式轉(zhuǎn)換后的圖像信號(hào)進(jìn)行誤差擴(kuò)散的去抖動(dòng)處理方法與裝置。現(xiàn)有的去抖動(dòng)處理方法存在緩存器資源浪費(fèi),硬件結(jié)構(gòu)復(fù)雜等問題。本發(fā)明的去抖動(dòng)處理裝置包括誤差計(jì)算單元、緩存器和圖像生成單元,圖像信號(hào)分別輸入至誤差計(jì)算單元和圖像生成單元,圖像信號(hào)中的每一個(gè)像素均向右側(cè)和下方進(jìn)行誤差擴(kuò)散,產(chǎn)生的擴(kuò)散誤差由該像素的值和各方向上的抖動(dòng)系數(shù)確定,誤差計(jì)算單元將同一行的圖像信號(hào)中相鄰三個(gè)像素的擴(kuò)散誤差的和作為一個(gè)誤差信號(hào)ERRO存儲(chǔ)于緩存器中,當(dāng)下一行圖像信號(hào)輸入后,圖像生成單元利用輸入信號(hào)和誤差信號(hào)ERRO計(jì)算出經(jīng)去抖動(dòng)處理后的新的圖像信號(hào)并輸出。利用本發(fā)明的方法與裝置可以減少緩存空間,簡化硬件結(jié)構(gòu)。
文檔編號(hào)H04N5/14GK1905626SQ200610029648
公開日2007年1月31日 申請(qǐng)日期2006年8月2日 優(yōu)先權(quán)日2006年8月2日
發(fā)明者羅巍, 楊曉松, 陳煜 申請(qǐng)人:智多微電子(上海)有限公司