利用顺序抖动技术处理数字图像的方法

文档序号:7633925阅读:368来源:国知局
专利名称:利用顺序抖动技术处理数字图像的方法
技术领域
本发明主要涉及处理数字图像的技术,更具体地,涉及利用“顺序抖动”技术从高分辨率图像获得低分辨率图像的方法。
背景技术
在数字图像显示设备上呈现的图像质量由显示设备的彩色分辨率和空间分辨率确定。彩色分辨率由存储图像元素(像素)所需的比特数量定义,而空间分辨率由显示设备的像素数量定义。被称为“真彩色”的典型显示系统使显示设备的每一点与直接定义要显示的颜色的数字值关联。例如,像素值可由24比特的数字值代表,也就是,每一基色(R、G、B)的强度由8比特代表。
某些应用需要人们将高彩色分辨率的数字图像转换为较低分辨率的数字图像,例如,人们想要利用小型显示设备和/或想要利用降低尺度的视频存储器来存储定义图像的数据。各种已知技术利用人眼合并相邻像素的色调或彩色值以感知中间色调值或颜色的能力,在即使这些情况下也获得高质量的图像,但是低彩色分辨率实际存在。这些技术之一,称为“顺序抖动”,对于图像的每一基色水平,利用仅具有两个可能强度水平之一的图像元素代表整个强度值范围。通过利用预定门限值的二维矩阵[抖动矩阵]检查图像来进行一个或另一强度水平的选择。每一图像元素值与抖动矩阵的对应门限值相比较,以根据该比较的结果呈现两个预定值之一。抖动矩阵通常是大小为4×4或者8×8的方阵,重复地将其应用于待处理的图像,这样做是要完全覆盖该图像。对于构成图像的所有颜色水平重复相同的操作。
存在很多将顺序抖动技术付诸实践的方法,但是都需要使用复杂的硬件和/或软件系统。
从而强烈地需要一种尽可能少地需要硬件和/或软件资源的方法。
该需要通过根据本发明以第一权利要求中通用术语限定的方法和从属权利要求中说明的一些具体实现方式得到满足。


本发明通过对于下面一些实现方式的说明将变得更加易于理解,利用示例给出的所述说明参考附图,其中图1是表示2×2抖动矩阵配置的示意表示,图2表示如何从图1的2×2抖动矩阵获得4×4抖动矩阵,图3,5和6是表示实现根据本发明的方法的三种途径的框图,图4示意性地表示如何根据像素位置选择两个抖动矩阵的元素,图7是以通用形式表示根据本发明的方法的框图,图8表示分配至图7框图中所示参数的值的表格。
具体实施例方式
如上简述,顺序抖动技术需要单色图像的每一像素值p与门限值t比较。当p<t时,该方法设置p=a,否则p=b,其中a与b是两个可用强度值。门限值对于每一像素位置可以相等(例如,它可以是算术平均,即两个值a和b的平均)或者可根据像素位置具有不同的值。在后一种情况下,即根据位置使用抖动技术时,结果较好。
利用由两个值a和b构成的配置检查图像的规则区域,然后移动该规则区域,直到覆盖整个区域。例如参考图1,利用由2×2元素形成的配置,其可仅为白色或黑色,可以模拟五个不同的灰度色调(GR_TN)定义在0和1之间的可能的灰度水平的区域,其被划分为五个间隔(INT),如图1所示。例如,包括在间隔1/8-3/8的所有灰度水平由色调1/4代表,该1/4色调由从左开始的第二个配置定义。可通过利用门限值矩阵将该技术付诸实践,该门限值矩阵包含间隔上限的规则配置并且定义每一像素位置的门限值。通常间隔是相等的,因此足够定义像素值序列并且将它们安排至抖动矩阵。就图1的示例而言,抖动矩阵是图2中示出的2×2矩阵。作为通用的规则,如果给定n×n矩阵,那么矩阵的值k属于0与n2-1间包括的整数集合并且与每一值k关联的门限值从关系式(2k+1)/2n2获得。为了生成更大的抖动矩阵,可使用递归方法,如图2所示,从根据图1示例的矩阵开始。
让我们考虑根据图3所示的本发明方法的实现形式。假设图像由RGB(红色,绿色,蓝色)表示的三颜色水平或者通道构成,,并且由A表示的发光度(或者亮度)水平或者通道构成,。对于每一水平,执行在关于水平R的框中表示的算法。此算法通过将由in_value_r表示的8-比特强度输入值转换为由Out_r表示的4-比特强度值,实现图像的顺序抖动。
利用相同的n×n元素抖动矩阵处理通道RBA。使用不同的n×n元素抖动矩阵处理通道G(绿色)以考虑人眼对于绿颜色的不同敏感度。优选地,在2与8之间选择n。
作为示例,下面以表格形式提供了可用于本发明方法的四个抖动矩阵。在表格中range=2bit_in-bit_out-1(其中,bit_in和bit_out分别表示输入比特数和输出比特数),elements=dim_Mtx2(其中dim_Mtx表示抖动矩阵的维数),round表示将括号中的表达式舍入至最近整数的运算符,并且每一对位置值(Xvalue,Yvalue),对应矩阵RBA的元素和矩阵G的元素。
2×2抖动矩阵

3*3抖动矩阵


4×4抖动矩阵


8×8抖动矩阵





通过观察上述表格,可以推断出,处理G通道的n×n抖动矩阵具有相同的元素,即用于处理RBA通道的各个n×n抖动矩阵的相同门限值,然而在所述矩阵中,用于处理G通道的抖动矩阵的元素的空间分布与用于处理RBA通道的抖动矩阵的元素的空间分布不同。
还要注意,在上述表格中,抖动矩阵的所有元素以参数形式表达,每一所述元素(除了具有零值的元素外)可作为下列参数的函数获得抖动矩阵的维数、用于输入数字值的比特数量(即,对应于待经抖动处理的数字图像彩色分辨率的比特数量)以及用于输出数字值的比特数量(即,对应于在抖动输出端提供的数字图像彩色分辨率的比特数量)。
门限值,即与组成图像的各个通道像素强度值进行比较的抖动矩阵值,的选择按照下面参考图4解释的方式进行。
定义图像像素位置的坐标由X和Y表示。通过利用构成表示该位置的二进制数最低m比特的二进制数选择该矩阵的门限值,其中m取决于所采用的抖动矩阵的维数。例如,当X=110100Y=110001m=3(8×8抖动矩阵)时,每一坐标的最后三比特,x=100y=001,表示矩阵DithermatrixRBA与DithermatrixG的门限值坐标。在此示例中,门限值由至多七比特构成的二进制数(RBA的抖动矩阵值,G的抖动矩阵值)表示。
当使用2×2抖动矩阵时,一比特足够用于X-坐标并且一比特足够用于Y-坐标,以寻址门限值。另一方面,对于3×3以及4×4抖动矩阵,需要两比特用于X-坐标和两比特用于Y-坐标。
回到图3的框图,使用的符号具有下列含义>>i右移i位,即去除最低i位<<i左移i位,即增加i个等于0的最低位>=大于或等于DIFF差分COMP比较MUX复用连线上的4,8,12表示在这些线上发送的二进制数的比特数量。
a和b构成各种功能块的输入值的二进制数(通常每一块不同)。
出于更好地理解图3中所示算法的目的,考虑根据下例的各种运算是有用的,其中,in_value_r=10101110并且“RBA的抖动矩阵值”=0111。
1.将输入值In_value_r=10101110左移四位b=1010111000002.在DIFF1中计算b-aa=10101110b=101011100000b-a=1010001100103.b-a(运算2的结果)右移八位10104.将运算3的结果左移四位10100000并且在DIFF2中计算a-b(10101110-10100000)在输出端的新a1110。
5.在DIFF3中计算a-b(1110-1010)DIFF3输出端的新a01006.比较DIFF3输出端的a与“RBA的抖动矩阵值”(=0111)如果大于或等于COMP的输出=1否则
COMP的输出=0在此示例中COMP的输出=07.当操作3的结果(1010)不同于1111(等于十进制计法的15)时结果等于1否则结果等于0该结果引导复用器MUX1进行下列逻辑当它等于1时,选择运算6的结果,当它等于0时,选择值0。
在此示例中,结果等于0。
MUX1的输出引导复用器MUX2。
8.MUX2的逻辑进入值选择0运算3得到的值(1010)选择1运算3得到的值增加一个单位(1011);根据运算7的结果(在此示例中等于0)在这两个值间进行选择,因此在MUX2的输出端,我们得到值10109.MUX3的逻辑进入值选择0in_value_r右移四位(1010)选择1运算8的结果(1010)根据Enable的值(示例Enable=1,Out_r=1010)在这两个值间进行选择。
从抖动矩阵G提取的“G的抖动矩阵值”被用于G通道。
现在我们考虑由图5表示的根据本发明的方法的第二实现形式。在这种情况下,再一次地,图像由四个通道(RGBA)构成,并且对于每一通道执行在方框中关于通道R说明的算法。这次该算法通过将八-比特强度值(再一次地由in_value_r表示)转换为五-比特强度值(再一次地由Out_r表示),执行图像的顺序抖动。
一个相同的n×n元素抖动矩阵用于处理通道RBA,而另一n×n元素抖动矩阵用于通道G。
在图5中,再次使用具有相同含义的图3所示的记号与符号。图5还包含表示求和的记号ADD。
在这种情况下,再一次地,考虑特定示例形式中的各个运算可能是有用的,其中in_value_r=10101110并且“RBA的抖动矩阵值”=0111。
1.计算b-aa=101011100(通过将In_value_r左移一位获得)b=101011100000000(通过将In_value_r左移七位获得)在DIFF1的输出端b-a=1010101101001002.将DIFF1的输出右移10位结果101013.左移两位,左移八位,并在ADD中求和10101+1010100+1010100000000=1010101101001。
4.将ADD的输出右移五位,并且DIFF2中计算a-ba=10101110b=10101011a-b=115.比较。当DIFF2的输出大于或等于“RBA的抖动矩阵值”时结果等于1,
否则结果等于0。
在此示例中,输出DIFF2=11并且“RBA的抖动矩阵值”=0111,因此结果等于0。
6.当运算2的结果不同于11111(等于十进制计法的31)时结果等于1,否则结果等于0。
在此示例中,结果等于1。
该结果用于引导复用器MUX1。
MUX1的逻辑在运算6的结果等于一的情况下,选择运算5的结果。
在运算6的结果等于零的情况下,选择值0。
在此示例中,运算6的结果等于1,并因此选择0。
MUX1的输出用于引导复用器MUX2。
7.MUX2的逻辑进入值选择0运算2的结果(10101)选择1运算2的结果增加一个单位(10110)。
根据运算6的结果在这两个值间进行选择(在此示例中等于0),因此在MUX2的输出端,我们得到值10101)。
9.MUX3的逻辑进入值选择0in_value_r右移三位(10101)选择1运算7的结果(10101)。
根据Enable的值(示例Enable=1,Out_r=10101)在这两个值间进行选择。
从抖动矩阵G提取的“G的抖动矩阵值”被用于G通道。
在由图6表示的根据本发明的方法的第三实现方式中,图像类似地由四个通道(RGBA)构造。对于每一通道执行在方框中关于通道R说明的顺序抖动算法。在这种情况下,由每通道八比特组成的图像被转换为每通道六比特图像。一个相同的n×n元素抖动矩阵被用于三个通道RBA,而另一n×n元素抖动矩阵被用于通道G。
图6中使用的记号和符号与图5中使用的相同。
将参考通道R说明关于特定示例的各种运算。我们考虑输入强度值in_value_r=10101110并且抖动矩阵值等于0111的情况。
1.在DIFF1中计算a-ba=101011100(通过将in_value_r左移一位获得)b=1010111000000000(通过将in_value_r左移八位获得)在DIFF1的输出端b-a=10101100101001002.在DIFF2中计算a-ba=1010110010100100b=10101110在DIFF2的输出端a-b=10101011111101103.将DIFF2的输出右移10位结果1010104.前面运算结果左移两位和左移八位并且求和结果110101000结果210101000000000在ADD的输出端,和10101010101000
5.将ADD的输出右移六位并在DIFF3中计算a-bb=10101010a=10101110在DIFF3的输出端a-b=1006.比较当DIFF3的输出大于或等于“RBA的抖动矩阵值”(0111)时结果等于1否则结果等于0。
在此示例中(100小于0111)结果=0。
7.当运算3的结果不同于111111(等于十进制计法的63)时结果等于1否则结果等于0在此示例中(101010!=11111)结果等于1。
该运算的结果用于引导复用器MUX1。
MUX1的逻辑在运算7的结果等于1的情况下,选择运算6的结果,在运算7的结果等于0的情况下,选择值0。
在此示例中,运算7的结果等于1,因此选择落在值0,这是运算6的结果。
然后MUX1的输出被用于引导复用器MUX2。
8.MUX2的逻辑进入值选择零运算3的结果(101010)选择1运算3的结果增加一个单位(101011);根据运算7的结果在这两个值间进行选择(在此示例中等于0),因此在MUX2的输出端,我们得到值101010。
9.MUX3的逻辑进入值选择0in_value_r右移两位(101011)选择1运算8的结果(101010)。
根据Enable的值(示例Enable=1,Out_r=101010)在这两个值间进行选择。
从抖动矩阵G提取的“G的抖动矩阵值”被用于G通道。
上述三种实现形式可由单个布图(图7所示)表示,其中各种功能块由参数控制,这些参数如图8的表格所示可呈现不同的值。示出的布图指处理通道R的算法,但对于处理其它通道也有效,在通道G情况下的唯一变化是采用“G的抖动矩阵值”而不是“RBA的抖动矩阵值”。
如图8表格中所示改变参数,可获得在图3、5和6中表示的算法,将八-比特输入图像分别转换为四、五和六比特的输出图像。
上述实现形式使用的记号与符号相同,仅增加运算符,由ADD/DIFF表示,这些运算符根据参数(C3)的值(+或-)执行求和或差分功能。
作为一般的规则,可通过比较由应用图7的算法获得的低分辨率图像与由应用作为示例的常规顺序抖动方法获得的等效低分辨率图像的启发式方法来选择这些参数。当然在现阶段,必须使用复杂的硬件系统和/或复杂的软件。但是一旦选定了参数,图7的算法比其常规的对应方法更有优势,因为它基于简单的运算(向右和向左“移位”),这些运算可以非常高速地执行,并且不需要复杂的硬件系统或者复杂的软件。
权利要求
1.一种用于处理具有第一彩色分辨率并由N×M像素形成的起始图像,获得具有第二彩色分辨率的输出图像的顺序抖动方法,所述第二分辨率小于所述第一彩色分辨率,所述起始图像适于被分解为分别为R(红色)、B(蓝色)和G(绿色)的三彩色通道以及亮度通道(A),所述方法包括以下步骤-预先安排第一和第二抖动矩阵,每一所述矩阵包括以j行和j列排列的多个门限值,其中j小于N和M,-向该起始图像的R、B和A通道重复应用该第一抖动矩阵并向该起始图像的G通道重复应用该第二抖动矩阵,以比较组成所述通道的像素的每一的值与属于各个抖动矩阵的所选各个门限值;其中所述第一与第二抖动矩阵包括相同的门限值,所述门限值在所述两个矩阵中具有不同的空间分辨率。
2.根据权利要求1的所述顺序抖动方法,所述第一和第二抖动矩阵的所述门限值中的每一可表达为下列参数的函数抖动矩阵的维数,定义所述起始图像彩色分辨率的比特数量以及定义所述输出图像彩色分辨率的比特数量。
3.根据权利要求1的所述顺序抖动方法,包括以下步骤-向起始图像的通道的每一像素值施加由图7的示意布图表示的算法,以获得输出图像的各个通道的像素值,其中in_value_r表示起始图像的待处理像素值,Out_r表示输出图像的像素值,并且“抖动矩阵值”表示从正在被处理的特定像素的抖动矩阵中选择的门限值,->>n与<<n分别表示从二进制输入数字截短最低n位形成所述截短运算的运算以及向该二进制输入数字增加n位零值作为最低位的运算,-+和-分别表示求和与相减的运算,-块MUX表示复用运算,->=表示比较运算,-!=具有“不同于”的含义,并且其中C1-C5和n1-n10是参数,可根据利用上述步骤获得的输出图像与具有所述输出图像的相同彩色分辨率并利用样本方法获得的等效图像之间的比较,利用预定标准选择这些参数。
4.根据权利要求3的所述方法,其中参数C1-C5和n1-n10呈现下表中所示的值,
其中“8至6”,“8至5”以及“8至4”表示由八-比特像素构成的图像分别转换至六-比特,五-比特以及四-比特图像,其中与参数C3关联的符号+或-表示在应用参数C3的块中执行的运算分别是求和或者差分。
5.根据权利要求1的所述顺序抖动方法,其中针对起始图像中具有坐标X,Y的每一像素,通过利用以对应数字值表示所述X和Y坐标获得的m个最低位,从所述矩阵之一选择所述各自的门限值,其中m是整数,其取决于所述抖动矩阵的所述之一的维数。
全文摘要
应用顺序抖动方法,以降低由通道R(红色)、G(绿色)、B(蓝色)表示的图像的彩色分辨率,因此提供第一与第二抖动矩阵,它们包括相同的门限值,但以不同的空间分布排列。第一抖动矩阵应用于R、B和A通道,而第二抖动矩阵应用于G通道。
文档编号H04N7/26GK1969534SQ200580005377
公开日2007年5月23日 申请日期2005年2月16日 优先权日2004年2月18日
发明者皮耶尔·路易吉·加尔代拉, 马西米利亚诺·巴罗内, 加里·斯威特, 达尼洛·帕乌, 斯蒂芬·希尔, 西蒙·戈达 申请人:St微电子公司, St微电子有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1