视频图像的压缩、解压缩方法和用于lcd过驱动的电路的制作方法

文档序号:2570263阅读:250来源:国知局
专利名称:视频图像的压缩、解压缩方法和用于lcd过驱动的电路的制作方法
技术领域
本发明涉及图像处理领域,具体而言,涉及视频图像的压缩、解压缩方法和用于LCD过驱动的电路。

背景技术
由于LCD(Liquid Crystal Display,液晶显示器)的采样保持原理以及液晶分子本身较CRT(Cathode Ray Tube,阴极射线管)的慢响应特性,使得LCD在显示运动视频图像时,会出现运动模糊。为减小运动模糊,普遍采用对LCD的响应时间进行补偿(Response Time Compensation,RTC)作为去运动模糊的方法。其中,过驱动(Over Drive)技术是一种较为简单且十分有效的技术,其原理是根据相邻两帧的图像数据进行过驱动查表。因此OverDrive需要片外RAM来存储至少一帧图像压缩数据,为减小片外RAM容量以及对带宽的需求,需要对当前帧的图像数据进行编码压缩存储,在Over Drive端还需要对前一帧的码流进行解压缩。
为了减小片外RAM的存储开销以及进一步克服存储带宽的需求,高倍数压缩比通常是各种Panel厂家追求的,但考虑到硬件实现的难度以及硬件实现开销,复杂的算法如基于DCT或基于小波变换等在图像编解码软件领域可以获得较高压缩比的去相关压缩算法往往不能胜任。且压缩算法还要保证对各种图像图形都能取得较好的压缩性能,一般来说,压缩解压缩后图像数据与原始图像数据的最大灰度失真不能超过16,否则就能够看到令人讨厌的闪烁现象。目前已有的LCD厂家所公开的压缩比基本上在3.0左右。
为了提高压缩比,则需要较大的分块,例如,2×4的分块,但根据相关技术中的压缩方法,如果分块较大,则压缩性能将下降。


发明内容
本发明旨在提供一种视频图像的压缩、解压缩方法和用于LCD过驱动的电路,能够解决相关技术中在分块较大时压缩性能下降等问题。
根据本发明的一个方面,提供了一种视频图像的压缩方法,包括对上述视频图像进行2×4分块,得到当前块的8个像素点;根据上述当前块的分类结果和梯度信息选择编码规则;使用上述编码规则对上述当前块进行压缩。
根据本发明的另一个方面,提供了一种视频图像的解压缩方法,包括从所接收到的视频图像中获取对当前块进行压缩时使用的编码规则的编码类型;根据上述编码类型使用对应的解码规则对上述当前块进行解压缩。
根据本发明的又一个方面,提供了一种用于LCD过驱动的电路,包括处理单元,压缩单元、缓存单元和解压单元,其中, 上述处理单元包括第一获取模块,用于对视频图像的当前帧进行2×4分块,得到当前块的8个像素点;分析模块,用于获取上述当前块的分类结果和梯度信息; 上述压缩单元包括第一选择模块,用于根据上述当前块的分类结果和梯度信息选择编码规则;压缩模块,用使用上述编码规则对上述当前块进行压缩; 上述缓存单元包括输入模块,用于接收并保存来自压缩单元的当前帧的压缩数据;输出模块,用于将保存的来自压缩单元的上一帧的压缩数据发送给上述解码单元; 上述解压单元包括第二获取模块,用于从上述上一帧的压缩数据中获取在上一帧中压缩当前块时使用的编码规则的类型;第二选择模块,用于根据上述编码规则的类型选择对应的解码规则;解压模块,用于根据上述解码规则对上述上一帧中的当前块进行解压缩。
根据本发明,利用视频图像分块的分类结果和梯度信息选择相应的具有4倍压缩比的编码规则,使得在获得4倍压缩比的同时,保证了压缩性能。



此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中 图1示出了根据本发明实施例的视频图像的压缩方法的流程图; 图2示出了根据本发明实施例的压缩视频图像的详细流程图; 图3示出了根据本发明实施例的视频图像的解压缩方法的流程图; 图4示出了根据本发明实施例的解压缩视频图像的详细流程图; 图5示出了根据本发明实施例的带帧缓冲压缩的LCD过驱动(OverDrive)电路的结构框图。
图6示出了根据本发明实施例的带帧缓冲压缩的LCD过驱动电路的详细结构框图。

具体实施例方式 图1示出了根据本发明实施例的视频图像的压缩方法的流程图。如图1所示,根据本发明实施例的视频图像的压缩方法具体包括如下步骤 S102,对上述视频图像进行2×4分块,得到当前块的8个像素点; S104,根据上述当前块的分类结果和梯度信息选择编码规则; S106,使用上述编码规则对上述当前块进行压缩。
这里,可以对当前块中的8个像素点进行分类,得到分类结果;同时,获取当前块的梯度信息。然后,根据所述当前块的分类结果和所述梯度信息选择编码规则具体包括 1)若所述分类结果为所述当前块的8个像素点分类成4种分类色,则选择第一编码规则,例如,第一编码规则为两个2×2分块的ColorBTC并联编码; 2)否则,计算所述当前块的R、G、B分量在水平方向的梯度,得到所述水平方向的梯度的最小值,若所述最小值大于第一门限值(例如,第一门限值可以为16),则选择第二编码规则,例如,第二编码规则为水平大梯度编码; 3)否则,计算所述当前块的R、G、B分量在垂直方向的梯度,得到所述水平方向的梯度和所述垂直方向的梯度之间的最大值,若所述最大值小于第二门限值(例如,第二门限值可以为8),则选择第三编码规则,例如,第三编码规则为针对小梯度图像的梯度增量编码; 4)否则,选择第四编码规则,例如,第四编码规则为ColorBTC级联编码。这里,两个2×2 Color BTC级联编码包括将两个2×2 Color BTC编码的输出分类色C00、C01及C10、C11送入一个2×2 ColorBTC编码中,最后得到2×4分块的两个分类色C0、C1以及8bit分类信息。
进一步,可以通过以下步骤得到所述分类结果 1)对所述当前块进行2×2分块,得到各具有4个像素点的第一分块和第二分块; 2)按R、G、B分量将所述第一分块内的像素点分成两类,得到该两类的分类色C00和C01,并且按R、G、B分量将所述第二分块内的像素点分成两类,得到该两类的分类色C10和C11; 3)对所述分类色C00、C01和C10、C11进行分类,得到最小分类距离的两类分类色C0和C1; 4)若所述最小分类距离大于第三门限值(例如,第三门限值可以为1000),则所述分类结果为所述当前块的8个像素点分类成4种分类色,否则,所述分类结果为所述当前块的8个像素点分类成2种分类色。
所述当前块表示为 相应的,计算所述当前块的R、G、B分量在水平方向的梯度具体包括 ΔR1_x=|R12-R11|,ΔG1_x=|G12-G11|,ΔB1_x=|B12-B11|, ΔR2_x=|R13-R12|,ΔG2_x=|G13-G12|,ΔB2_x=|B13-B12|, ΔR3_x=|R14-R13|,ΔG3_x=|G14-G13|,ΔB3_x=|B14-B13|, ΔR4_x=|R22-R21|,ΔG4_x=|G22-G21|,ΔB4_x=|B22-B21|, ΔR5_x=|R23-R22|,ΔG5_x=|G23-G22|,ΔB5_x=|B23-B22|, ΔR6_x=|R24-R23|,ΔG6_x=|G24-G23|,ΔB6_x=|B24-B23|, 得到所述水平方向的梯度的最小值具体包括 Δ_x_min=min{ΔR1_x,ΔG1_x,ΔB1_x, ΔR2_x,ΔG2_x,ΔB2_x, ΔR3_x,ΔG3_x,ΔB3_x, ΔR4_x,ΔG4_x,ΔB4_x, ΔR5_x,ΔG5_x,ΔB5_x, ΔR6_x,ΔG6_x,ΔB6_x} 计算所述当前块的R、G、B分量在垂直方向的梯度具体包括 ΔR1_y=|R21-R11|,ΔG1_y=|G21-G11|,ΔB1_y=|B21-B11|, ΔR2_y=|R22-R12|,ΔG2_y=|G22-G12|,ΔB2_y=|B22-B12|, ΔR3_y=|R23-R13|,ΔG3_y=|G23-G13|,ΔB3_y=|B23-B13|, ΔR4_y=|R24-R14|,ΔG4_y=|G24-G14|,ΔB4_y=|B24-B14|, 得到所述水平方向的梯度和所述垂直方向的梯度之间的最大值具体包括 Δ_xy_max=max{ΔR1_x,ΔG1_x,ΔB1_x,ΔR2_x,ΔG2_x,ΔB2_x,ΔR3_x,ΔG3_x,ΔB3_x,ΔR4_x,ΔG4_x,ΔB4_x,ΔR5_x,ΔG5_x,ΔB5_x,ΔR6_x,ΔG6_x,ΔB6_x,ΔR1_y,ΔG1_y,ΔB1_y,ΔR2_y,ΔG2_y,ΔB2_y,ΔR3_y,ΔG3_y,ΔB3_y,ΔR4_y,ΔG4_y,ΔB4_y} 下面将详细描述上述的第一编码规则、第二编码规则、第三编码规则、第四编码规则 1)使用所述第一编码规则对所述视频图像进行压缩具体包括 采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、分类色C00中的9bit、分类色C01中的10bit、分类色C10中的9bit、分类色C11中的10bit、4bit第一分类信息Block0class_bit[3:0]以及4bit第二分类信息Block1class_bit[3:0]。
其中,所述第一分类信息Block0class_bit[3:0]表示所述第一分块内的像素点与分类色C00和C01的对应关系,例如,X11(R11,G11,B11)属于分类色C00,而其余三个点属于分类色C01,则Blockoclass_bit[3:0]可以等于4′b0111,其中,0表示分类色C00,1表示分类色C01。
所述第二分类信息Blocklclass_bit[3:0]表示所述第二分块内的像素点与分类色C10和C11的对应关系。例如,X13(R13,G13,B13)和X14(R14,G14,B14)属于分类色C10,而其余两个点属于分类色C11,则Block1class_bit[3:0]可以等于4′b0011,其中,0表示分类色C10,1表示分类色C11。
2)使用所述第四编码规则对所述视频图像进行压缩具体包括 采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、分类色C0中的19bit、分类色C1中的19bit以及8bit第三分类信息Blockclass_bit[7:0]; 可以将上述第一分类信息Block0class_bit[3:0]、第二分类信息Blocklclass_bit[3:0]整合为第三分类信息,例如,可以通过以下公式计算所述第三分类信息Blockclass_bit[7:0] if

pixel,Block0class_bit[pixel]==0,Blockclass_bit[pixel]=0 if

pixel,Block0class_bit[pixel]==0,Blockclass_bit[pixel]=1 if

pixel,Block0class_bit[pixel]==1,Blockclass_bit[pixel]=0 if

pixel,Block0class_bit[pixel]==1,Blockclass_bit[pixel]=1 if

pixel,Block1class_bit[pixel]==0,Blockclass_bit[pixel]=0 if

pixel,Block1class_bit[pixel]==0,Blockclass_bit[pixel]=1 if

pixel,Block1class_bit[pixel]==1,Blockclass_bit[pixel]=0 if

pixel,Block1class_bit[pixel]==1,Blockclass_bit[pixel]=1 其中,pixel的取值为0~7,Blockclass_bit[7:0]可以为一个8bit变量,其每一位比特表示当前块中8个像素点中的一个与分类色C0或C1的对应关系,例如,当pixel=0时,Blockclass_bit[pixel]表示第一个像素点;当pixel=2时,Blockclass_bit[pixel]表示第三个像素点。
3)使用所述第二编码规则对所述视频图像进行压缩具体包括 采用48bit码流Codestream表示所述当前块的8个像素点, 其中,所述48bit码流Codestream包括2bit编码类型EncodeType、X11(R11,G11,B11)中的23bit以及X14(R14,G14,B14)中的23bit;或者 所述48bit码流Codestream包括2bit编码类型EncodeType、X21(R21,G21,B21)中的23bit以及X24(R24,G24,B24)中的23bit。
4)使用所述第三编码规则对所述视频图像进行压缩具体包括 采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、X11(R11,G11,B11)中的21bit、1bit梯度方向Grad_dir、3bit第一梯度的补偿标志位rgb_compen_flag0[2:0]、3bit所述第一梯度的梯度增量的符号rgb_delta_sign0[2:0]、2bit所述第一梯度的梯度增量delata0[1:0]、3bit第二梯度的补偿标志位rgb_compen_flag1[2:0]、3bit所述第二梯度的梯度增量的符号rgb_delta_sign1[2:0]、2bit所述第二梯度的梯度增量delata1[1:0]、3bit第三梯度的补偿标志位rgb_compen_flag2[2:0]、3bit所述第三梯度的梯度增量的符号rgb_delta_sign2[2:0]、2bit所述第三梯度的梯度增量delata2[1:0]。
当所述Grad_dir=0时,所述第一梯度表示水平方向X11(R11,G11,B11)与X12(R12,G12,B12)之间的梯度;所述第二梯度表示水平方向X12(R12,G12,B12)与X13(R13,G13,B13)之间的梯度;所述第三梯度表示水平方向X13(R13,G13,B13)与X14(R14,G14,B14)之间的梯度。
当所述Grad_dir=1时,所述第一梯度表示垂直方向X11(R11,G11,B11)与X21(R21,G21,B21)之间的梯度。在实际使用时,可以只使用3bit第一梯度的补偿标志位rgb_compen_flag0[2:0]、3bit所述第一梯度的梯度增量的符号rgb_delta_sign0[2:0]、2bit所述第一梯度的梯度增量delata0[1:0]来表示垂直梯度信息,而不是用其他的变量。
由于对每一个对2*4图像块进行编码,充分考虑到所取图像块可能存在的水平向,垂直向以及三个颜色分量之间的相关性。且在编码过程中 由于采用了上述四种编码方法,可充分兼顾到锐利四色(采用即两个2×2分块的ColorBTC并联编码)、缓变小梯度(采用针对小梯度图像的梯度增量编码),水平向大梯度(采用水平大梯度编码)等实际中各种可能的图像图形结构。因而不会出现对某一种图像块有很大的失真出现。因而,编码方法的完备性可以保证其压缩性能。其中,最大失真是对于锐利四色,由于用9bit来表示一颜色,也即用3bit来表示一颜色分量,因此最大是真即截位失真为16。
图2示出了上述根据本发明实施例的压缩视频图像的详细流程图。如图2所示,对每一个2×4图像数据块,根据该数据块的分类结果和梯度信息,采用对应的编码压缩算法对该数据块进行编码压缩,这里,可以用参数来表示对应的编码类型,例如,EncodeType=2′b00,表示Color BTC并联编码;EncodeType=2′b01,表示ColorBTC级联编码;EncodeType=2′b10,表示水平大梯度编码;EncodeType=2′b11,表示梯度增量编码。然后,对压缩后的码流存储,例如,可以存储到片外RAM。由于每一种压缩算法的码流长度都为48bit,从而保证了4.0倍的固定压缩比。
在图2中,对“分类结果是否满足条件”、“当前块的水平梯度的最小值大于第一门限值”、“当前块的水平梯度和垂直梯度的最大值小于第二门限值”的判断顺序可以任意组合,例如,可以按照如下顺序进行判断首先,判断“当前块的水平梯度的最小值大于第一门限值”;其次,判断“当前块的水平梯度和垂直梯度的最大值小于第二门限值”;然后,判断“分类结果是否满足条件”。对于其他判断顺序,在此不再赘述。
图3示出了根据本发明实施例的视频图像的解压缩方法的流程图。如图3所示,根据本发明实施例的视频图像的解压缩方法主要包括如下步骤 S302,从所接收到的视频图像中获取对当前块进行压缩时使用的编码规则的编码类型; S304,根据上述编码类型使用对应的解码规则对上述当前块进行解压缩。
根据本实施例,为实现4.0倍以上压缩比,采取了较3.0倍压缩比时所采用的2×2分块更大的2×4分块,由于压缩解压缩的对象是具有分块平滑的图像或具有一定规律的线条图形,因此这里讨论的压缩解压缩算法的去相关依据是就是针对2×4分块内图像图形的相关性进行的。由于2×2分块的Color BTC编码的依据是2色分类,因此,这里的2×4分块的压缩算法应最多考虑到4色。
下面首先将结合附图和实施例来介绍2×4分块的压缩编解码原理流程,然后给出其硬件实现电路。
首先,对每一个2×4分块,设该块内图像数据为为使用2×2分块的Color BTC级联算法,需将其分为两个左右相连的2×2子块,对每一个2×2子块通过2×2的Color BTC编码得到其对应的码流{C00,C01,Block0class_bit[3:0]}和{C10,C11,Block1class_bit[3:0]}。
然后,采用2×2分块的Color BTC级联模式,将两个子块的输出结果的两组分类色C00,C01和C10,C11输入一个2×2的Color BTC编码器中,得到一个最终的分类色C0,C1,并且将两个子块的分类信息进行综合得到2×4母块的编码码流{C0,C1,Blockclass_bit[7:0]}。如果判断从两个子块的编码分类色C00,C01和C10,C11经最末端的2×2分块的Color BTC编码的编码误差大于一定的门限,即可认为当前的2×4母块具有4色,直接输出两个子块的码流{C00,C01,Block1class_bit[3:0]}和{C10,C11,Block2class_bit[3:0]},否则认为当前2×4母块可以用2种颜色来分类,输出码流{C0,C1,Blockclass_bit[7:0]}。上面的两种方法都是基于Color BTC编解码,可以概括为4色分类的两个2×2分块的Color BTC的并联,以及2色分类的两个2×2分块的Color BTC级联。
由于采用的是2×4分块,水平向有4个像素点,理论上每个颜色分量在水平向可以有4个灰度阶,因此对于水平向具有较大梯度的颜色分量,如0,85,170,255,不管采用2色分类还是4色分类都会存在较大的分类误差,为了减小大梯度图像的分类误差,采用了大梯度编码,即只存储水平向最左和最右两个点的颜色Color_left(例如,X11(R11,G11,B11)或X21(R21,G21,B21))和Color_right(例如,X14(R14,G14,B14)或X24(R24,G24,B24)),在解码时,中间的灰度通过Color_left和Color_right进行线性插值即可。
与2×2 Color BTC编码一样,对于水平向或垂直向缓变递增递减的小梯度图像,都由于存在着截位误差和无法精细刻画的小梯度变化,如果不采取特殊处理,在最终的测试中会出现台阶现象。为此,对于小梯度灰度图像,和2×2分块3.0倍压缩比的ODC一样,采取了针对梯度图像的小梯度编码压缩方法,存储2×4分块左上角起始点Color_left_top颜色,梯度方向Grad_dir,R、G、B三个颜色分量的补偿标志位rgb_compen_flag,补偿增量的符号delta_sign以及增量大小delta等。与2×2分块相比,当梯度在在垂直向(例如,梯度方向Grad_dir=1),只有一个梯度变化量,然而当梯度在水平向(即梯度方向Grad_dir=0)由于有4个点,因此可以有3个梯度变化量,因此需要表示的梯度码流就增加为3倍。
综上,可以看到,为获得4.0倍的压缩比,我们的压缩算法采用了2×4分块,并根据该2×4分块内的各种可能,充分考虑到最终的压缩解压缩性能,分为4种方法来实现,分别可总结为对于四色的两个并联2×2 Color BTC编码,一般情况下的两个级联2×2Color BTC编码,针对水平向大梯度图像的大梯度编码,针对水平或垂直向灰度渐变图像的小梯度图像编码。
由于压缩比为4.0,因此对于2×4分块共有2×4*3*8=192bit数据,其最终的码流为

由于涉及4种编码方法,因此,编码类型EncodeType用2bit来表示。下面给出其详细的码流构成 1)Color BTC并联编码(也称为,锐利4色Color BTC并联编码) Codestream={EncodeType(2′b00),C00 (9bits),C01 (10bit),Block0class_bit[3:0],C10(9bits),C11(10bit),Block1class_bit[3:0]}。
其中,Block0class_bit[3:0]为4bit第一分类信息,Block1class_bit[3:0]为4bit第二分类信息,C00(9bits)表示分类色C00中的9bit,C01(10bit)表示分类色C01中的10bit,C10(9bits)表示分类色C10中的9bit,C11(10bit)表示分类色C11中的10bit。
其中,所述第一分类信息Block0class_bit[3:0]表示所述第一分块内的像素点与分类色C00和C01的对应关系,例如,X11(R11,G11,B11)属于分类色C00,而其余三个点属于分类色C01,则Block0class_bit[3:0]可以等于0111,其中,0表示分类色C00,1表示分类色C01。
所述第二分类信息Block1class_bit[3:0]表示所述第二分块内的像素点与分类色C10和C11的对应关系。例如,X13(R13,G13,B13)和X14(R14,G14,B14)属于分类色C10,而其余两个点属于分类色C11,则Block1class_bit[3:0]可以等于4′b0011,其中,0表示分类色C10,1表示分类色C11。
2)Color BTC级联编码 Codestream={EncodeType(2′b01),C0 (19bits),C1 (19bits),Blockclass_bit[7:0]}。
其中,C0(19bits)表示为分类色C0中的19bit,C1(19bits)表示为分类色C1中的19bit,Blockclass_bit[7:0]表示8bit第三分类信息。
3)水平大梯度图像编码 Codestream={EncodeType(2′b 10),Color_left (23bits),Color_right(23bits)}。
其中,Color_left(23bits)表示为水平向最左边的点的颜色(例如,X11(R11,G11,B11)或X21(R21,G21,B21))中的23bit,Color_right(23bits)表示为水平向最右边的点的颜色中的23bit(例如,X14(R14,G14,B14)或X24(R24,G24,B24))。
4)梯度增量编码(也称为渐变图像的小梯度编码) Codestream={EncodeType(2′b11),Color_left_top(21bits),Grad_Dir(1bit),rgb_compen_flag0[2:0],rgb_delta_sign0[2:0],delata0[1:0],rgb_compen_flag1[2:0],rgb_delta_sign1[2:0],delata2[1:0],rgb_compen_flag2[2:0],rgb_delta_sign2[2:0],delata2[1:0]}, 其中,EncodeType(2′b11)表示2bit 编码类型,Color_left_top(21bits)表示X11(R11,G11,B11)中的21bit,rgb_compen_flag0[2:0]表示3bit水平方向第一梯度的补偿标志位(其中,第一梯度可以为X12与X11之间的梯度),rgb_delta_sign0[2:0]表示为3bit水平方向第一梯度的梯度增量的符号,delata0[1:0]表示2bit水平方向第一梯度的梯度增量,rgb_compen_flag1[2:0]表示3bit水平方向第二梯度的补偿标志位(其中,第二梯度可以为X13与X12之间的梯度)、rgb_delta_sign1[2:0]表示3bit水平方向第二梯度的梯度增量的符号、delata1[1:0]表示2bit水平方向第二梯度的梯度增量、rgb_compen_flag2[2:0]表示3bit水平方向第三梯度的补偿标志位(其中,第三梯度可以为X14与X13之间的梯度)、rgb_delta_sign2[2:0]表示3bit水平方向第三梯度的梯度增量的符号、delata2[1:0]表示2bit水平方向第三梯度的梯度增量。
对于并联Color BTC编码,由于一种颜色最少用9位存储,也即每一个颜色分量用3bit来表示,因此,最大的截位误差为16. 当梯度方向沿垂直方向时,只利用第一个梯度间隔。且由于存在R,G,B三个分量,因此用3bit来表示R,G,B三个分量的补偿标志位以及补偿符号位。梯度增量用2bits来表示,因此可表示的梯度范围为[-3,3]。
例如,如果Grad_dir=0,rgb_compen_flag1[2:0]=3′b101,rgb_delta_sign1[2:0]=3′b100,delata2[1:0]=2′b10.则表示水平向第二个梯度(例如,X12与X13之间的梯度,X22与X23之间的梯度),R和B分量存在梯度解码时需要补偿,G分量不需要补偿,且R分量梯度为-2,B分量梯度为+2。
上面给出了2×4分块具有4.0倍压缩比的详细编码压缩算法,由于算法根据2×4分块内图像数据的各种情况,结合Over Drive对压缩解压缩性能的需求分为4种情况,因此其本质上包括4个编码器,根据当前块内数据的特征分类选取对应的2bit编码类型,接着填充对应的码流。
相应地,在解码端,首先获得对应块的码流,然后根据码流块中的编码类型,选择对应的解码方法。
图4示出了根据本发明实施例的解压缩视频图像的详细流程图。首先,获取与具有48bit的当前块对应的压缩码流,获取编码类型。然后,根据编码类型使用对应的解码方法对该压缩码流进行解压缩。如果依然存在压缩码流未解压缩,则重复前两个步骤,直到解压完所有的压缩码流。
下面是4种解码重建的为代码表示 assign EncodeType=Codestream[47:46]; //For EncodeType==00 assign Color00=Codestream[45:37]; assign Color01=Codestream[36:27]; assign Class0_bit=Codestream[26:23]; assign Color10=Codestream[22:14]; assign Color11=Codestream[13:4]; assign Class1_bit=Codestream[3:0]; //For EncodeType==01 assign Color0=Codestream[45:27]; assign Color1=Codestream[26:8]; assign Class_bit=Codestream[7:0]; //For EncodeType==10 assign Color_left=Codestream[45:23]; assign Color_right=Codestream[22:0]; //For EncodeType==11 assign Color_left_top=Codestream[45:25]; assign Grad_Dir=Codestream[24]; assign rgb_compen_flag0=Codestream[23:21]; assign rgb_delta_sign0=Codestream[20:18]; assign delata0=Codestream[17:16]; assign rgb_compen_flag1=Codestream[15:13]; assign rgb_delta_sign1=Codestream[12:10]; assign delatal=Codestream[9:8]; assign rgb_compen_flag2=Codestream[7:5]; assign rgb_delta_sign2=Codestream[4:2]; assign delata2=Codestream[1:0]; 当EncodeType==00时,2×4分块内8个数据点解码重建为 当EncodeType==01时,2×4分块内8个数据点解码重建为 当EncodeType==10时,2×4分块内8个数据点解码重建为 当EncodeType==11时且梯度方向为垂直方向即Grad Dir==1′b0时,垂直向梯度增量 2×4分块内8个数据点解码重建为 当EncodeType==11时且梯度方向为水平方向即Grad_Dir==1′b1时,水平向的三个梯度增量为 2×4分块内8个数据点解码重建为 上面给出了基于2×4分块的具有4.0倍压缩比的视频图像的压缩方法和解压缩方法,根据2×4数据块内R,G,B像素数据的可能存在的各种情况划分为4种情况采用四种对应的编解码器,并给出了每一种编码器码流的构成以及根据解码码流的解码重建过程。由于每一种编码器的码流都为48bit,因而保证了固定的4.0倍压缩比。
与2×2分块3.0倍压缩比的ODC压缩算法相比,分块的水平尺寸在水平向扩大了1倍,原则上应该获得6.0倍的压缩比,但为了满足Over Drive本身对压缩性能的需求,考虑到水平向存在的多灰阶,实际上的压缩比4.0。也就是说分块尺寸的增大,由于考虑到了更大的空间相关性,可以获得压缩性能的改善,但随着分块尺寸的进一步增大,没有获得与增大的分块尺寸相应的压缩性能,而是有一个极限。这可从信息论中的率失真理论加以解释,分块尺寸的增加,由于考虑到更多的统计数据,能够使其概率统计特性更加接近信源的真实概率,因而就能够获得更加接近信息熵的压缩极限。
另外,由于所采用的这4种编解码压缩算法都是有损的,和2×2分块3.0倍压缩比的ODC电路一样需要一静态判断保护电路,即为了防止在静态区域,由于有损压缩而进行Over Drive,需要对当前帧的当前块编码码流,与从片外RAM读回的前一帧对应分块的码流进行比较,如果码流相同,就认为是静态块,不进行OverDrive,直接输出当前帧对应块数据即可,否则认为是运动块,输出Over Drive增强数据. 图5示出了根据本发明实施例的带帧缓存的LCD过驱动电路的结构框图。如图5所示,该用于LCD过驱动的电路主要包括处理单元502,压缩单元504、缓存单元506和解压单元508,其中, 所述处理单元502包括第一获取模块,用于对视频图像的当前帧进行2×4分块,得到当前块的8个像素点;分析模块,用于获取所述当前块的分类结果和梯度信息; 所述压缩单元504包括第一选择模块,用于根据所述当前块的分类结果和梯度信息选择编码规则;压缩模块,用使用所述编码规则对所述当前块进行压缩; 缓存单元506包括输入模块,用于接收并保存来自压缩单元的当前帧的压缩数据;输出模块,用于将保存的来自压缩单元的上一帧的压缩数据发送给所述解码单元; 所述解压单元508包括第二获取模块,用于从所述上一帧的压缩数据中获取在上一帧中压缩当前块时使用的编码规则的类型;第二选择模块,用于根据所述编码规则的类型选择对应的解码规则;解压模块,用于根据所述解码规则对所述上一帧中的当前块进行解压缩。
图6示出了根据本发明实施例的带帧缓冲压缩的LCD过驱动电路的详细结构框图。如图6所示,根据本发明实施例的图像处理电路可以为实际应用中的一个完整带帧缓冲压缩的Over Drive硬件电路,其具体包括当前帧数据的压缩模块,前一帧数据的解压缩模块,压缩数据及解压缩数据的片外存储DDR调度模块,静态块判断的码流比较模块,Over Drive LUT查找表模块。
其中,In(Blocki),In-1(Blocki)为当前帧视频对应块数据以及前一帧对应块的解压数据;Iod(Blocki)为OverDrive LUT得到的数据,I′(Blocki)为最终的输出显示数据;Coden(Blocki),Coden-1(Blocki)分别为当前帧对应块的压缩码流以及从片外RAM读取的前一帧对应块的压缩码流。
如图5和图6所示的根据本发明实施例的图像处理电路可以使用上述的视频图像压缩和解压缩的方法来实现在获得4倍压缩比的同时,保证了压缩性能。
根据本发明,利用视频图像分块的分类结果和梯度信息选择相应的具有4倍压缩比的编码规则,使得在获得4倍压缩比的同时,保证了压缩性能。
显然,本领域的技术人员应该明白,上述的本发明的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而可以将它们存储在存储装置中由计算装置来执行,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本发明不限制于任何特定的硬件和软件结合。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
权利要求
1.一种视频图像的压缩方法,其特征在于,包括
对所述视频图像进行2×4分块,得到当前块的8个像素点;
根据所述当前块的分类结果和梯度信息选择编码规则;
使用所述编码规则对所述当前块进行压缩。
2.根据权利要求1所述的方法,其特征在于,根据所述当前块的分类结果和所述梯度信息选择编码规则具体包括
若所述分类结果为所述当前块的8个像素点分类成4种分类色,则选择第一编码规则;
否则,计算所述当前块的R、G、B分量在水平方向的梯度,得到所述水平方向的梯度的最小值,若所述最小值大于第一门限值,则选择第二编码规则;
否则,计算所述当前块的R、G、B分量在垂直方向的梯度,得到所述水平方向的梯度和所述垂直方向的梯度之间的最大值,若所述最大值小于第二门限值,则选择第三编码规则;
否则,选择第四编码规则。
3.根据权利要求2所述的方法,其特征在于,通过以下步骤得到所述分类结果
对所述当前块进行2×2分块,得到各具有4个像素点的第一分块和第二分块;
按R、G、B分量将所述第一分块内的像素点分成两类,得到该两类的分类色C00和C01,并且按R、G、B分量将所述第二分块内的像素点分成两类,得到该两类的分类色C10和C11;
对所述分类色C00、C01和C10、C11进行分类,得到最小分类距离的两类分类色C0和C1;
若所述最小分类距离大于第三门限值,则所述分类结果为所述当前块的8个像素点分类成4种分类色,否则,所述分类结果为所述当前块的8个像素点分类成2种分类色。
4.根据权利要求2所述的方法,其特征在于,所述当前块表示为
计算所述当前块的R、G、B分量在水平方向的梯度具体包括
ΔR1_x=|R12-R11|,ΔG1_x=|G12-G11|,ΔB1_x=|B12-B11|,
ΔR2_x=|R13-R12|,ΔG2_x=|G13-G12|,ΔB2_x=|B13-B12|,
ΔR3_x=|R14-R13|,ΔG3_x=|G14-G13|,ΔB3_x=|B14-B13|,
ΔR4_x=|R22-R21|,ΔG4_x=|G22-G21|,ΔB4_x=|B22-B21|,
ΔR5_x=|R23-R22|,ΔG5_x=|G23-G22|,ΔB5_x=|B23-B22|,
ΔR6_x=|R24-R23|,ΔG6_x=|G24-G33|,ΔB6_x=|B24-B23|,
得到所述水平方向的梯度的最小值具体包括
Δ_x_min=min{ΔR1_x,ΔG1_x,ΔB1_x,
ΔR2_x,ΔG2_x,ΔB2_x,
ΔR3_x,ΔG3_x,ΔB3_x,
ΔR4_x,ΔG4_x,ΔB4_x,。
ΔR5_x,ΔG5_x,ΔB5_x,
ΔR6_x,ΔG6_x,ΔB6_x}
5.根据权利要求4所述的方法,其特征在于,所述当前块表示为
计算所述当前块的R、G、B分量在垂直方向的梯度具体包括
ΔR1_y=|R21-R11|,ΔG1_y=|G21-G11|,ΔB1_y=|B21-B11|,
ΔR2_y=|R22-R12|,ΔG2_y=|G22-G12|,ΔB2_y=|B22-B12|,
ΔR3_y=|R23-R13|,ΔG3_y=|G23-G13|,ΔB3_y=|B23-B13|,
ΔR4_y=|R24-R14|,ΔG4_y=|G24-G14|,ΔB4_y=|B24-B14|,
得到所述水平方向的梯度和所述垂直方向的梯度之间的最大值具体包括
Δ_xy_max=max{ΔR1_x,ΔG1_x,ΔB1_x,
ΔR2_x,ΔG2_x,ΔB2_x,
ΔR3_x,ΔG3_x,ΔB3_x,
ΔR4_x,ΔG4_x,ΔB4_x,
ΔR5_x,ΔG5_x,ΔB5_x,
ΔR6_x,ΔG6_x,ΔB6_x,。
ΔR1_y,ΔG1_y,ΔB1_y,
ΔR2_y,ΔG2_y,ΔB2_y,
ΔR3_y,ΔG3_y,ΔB3_y,
ΔR4_y,ΔG4_y,ΔB4_y}
6.根据权利要求3所述的方法,其特征在于,使用所述第一编码规则对所述视频图像进行压缩具体包括
采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、分类色C00中的9bit、分类色C01中的10bit、分类色C10中的9bit、分类色C11中的10bit、4bit第一分类信息Block0class_bit[3:0]以及4bit第二分类信息Block1class_bit[3:0];
其中,所述第一分类信息Block0class_bit[3:0]表示所述第一分块内的像素点与分类色C00和C01的对应关系;
所述第二分类信息Block1class_bit[3:0]表示所述第二分块内的像素点与分类色C10和C11的对应关系。
7.根据权利要求3所述的方法,其特征在于,使用所述第四编码规则对所述视频图像进行压缩具体包括
采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、分类色C0中的19bit、分类色C1中的19bit以及8bit第三分类信息Blockclass_bit[7:0];
通过以下公式计算所述第三分类信息Blockclass_bit[7:0],
其中,pixel的取值为0~7,Blockclass_bit[7:0]为一个8bit变量,Blockclass_bit[7:0]中的各个比特表示当前块中8个像素 点中的一个与分类色C0或C1的对应关系。
8.根据权利要求2所述的方法,其特征在于,所述当前块表示为
使用所述第二编码规则对所述视频图像进行压缩具体包括
采用48bit码流Codestream表示所述当前块的8个像素点,
其中,所述48bit码流Codestream包括2bit编码类型EncodeType、X11(R11,G11,B11)中的23bit以及X14(R14,G14,B14)中的23bit;或者
所述48bit码流Codestream包括2bit编码类型EncodeType、X21(R21,G21,B21)中的23bit以及X24(R24,G24,B24)中的23bit。
9.根据权利要求2所述的方法,其特征在于,所述当前块表示为
使用所述第三编码规则对所述视频图像进行压缩具体包括
采用48bit码流Codestream表示所述当前块的8个像素点,其中,所述48bit码流Codestream包括2bit编码类型EncodeType、X11(R11,G11,B11)中的21bit、1bit梯度方向Grad_dir、3bit第一梯度的补偿标志位rgb_compen_flag0[2:0]、3bit所述第一梯度的梯度增量的符号rgb_delta_sign0[2:0]、2bit所述第一梯度的梯度增量delata0[1:0]、3bit第二梯度的补偿标志位rgb_compen_flag1[2:0]、3bit所述第二梯度的梯度增量的符号rgb_delta_sign1[2:0]、2bit所述第二梯度的梯度增量delata1[1:0]、3bit第三梯度的补偿标志位rgb_compen_flag2[2:0]、3bit所述第三梯度的梯度增量的符号rgb_delta_sign2[2:0]、2bit所述第三梯度的梯度增量delata2[1:0]。
10.根据权利要求9所述的方法,其特征在于,当所述Grad_dir=0时,所述第一梯度表示水平方向X11(R11,G11,B11)与X12(R12,G12,B12)之间的梯度;所述第二梯度表示水平方向X12(R12,G12,B12)与X13(R13,G13,B13)之间的梯度;所述第三梯度表示水平方向X13(R13,G13,B13)与X14(R14,G14,B14)之间的梯度。
11.根据权利要求9所述的方法,其特征在于,当所述Grad_dir=1时,所述第一梯度表示垂直方向X11(R11,G11,B11)与X21(R21,G21,B21)之间的梯度。
12.一种视频图像的解压缩方法,其特征在于,包括
从所接收到的视频图像中获取对当前块进行压缩时使用的编码规则的编码类型;
根据所述编码类型使用对应的解码规则对所述当前块进行解压缩。
13.一种用于LCD过驱动的电路,其特征在于,包括处理单元,压缩单元、缓存单元和解压单元,其中,
所述处理单元包括
第一获取模块,用于对视频图像的当前帧进行2×4分块,得到当前块的8个像素点;
分析模块,用于获取所述当前块的分类结果和梯度信息;
所述压缩单元包括
第一选择模块,用于根据所述当前块的分类结果和梯度信息选择编码规则;
压缩模块,用使用所述编码规则对所述当前块进行压缩;
所述缓存单元包括
输入模块,用于接收并保存来自压缩单元的当前帧的压缩数据;
输出模块,用于将保存的来自压缩单元的上一帧的压缩数据发送给所述解码单元;所述解压单元包括
第二获取模块,用于从所述上一帧的压缩数据中获取在上一帧中压缩当前块时使用的编码规则的类型;
第二选择模块,用于根据所述编码规则的类型选择对应的解码规则;
解压模块,用于根据所述解码规则对所述上一帧中的当前块进行解压缩。
全文摘要
本发明提供了一种视频图像的压缩、解压缩方法和用于LCD过驱动的电路,其中,该视频图像的压缩方法包括对上述视频图像进行2×4分块,得到当前块的8个像素点;根据上述当前块的分类结果和梯度信息选择编码规则;使用上述编码规则对上述当前块进行压缩。根据本发明,利用视频图像分块的分类结果和梯度信息选择相应的具有4倍压缩比的编码规则,使得在获得4倍压缩比的同时,保证了压缩性能。
文档编号G09G3/36GK101765009SQ20091024408
公开日2010年6月30日 申请日期2009年12月28日 优先权日2009年12月28日
发明者张文超 申请人:硅谷数模半导体(北京)有限公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1