System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 一种颜色编码方法技术_技高网

一种颜色编码方法技术

技术编号:42049072 阅读:9 留言:0更新日期:2024-07-16 23:30
本发明专利技术公开了一种颜色编码方法,首先获取R、G、B三个颜色分量的整数值,将其量化为0到1区间的值;然后获取R、G、B三个颜色分量分别对亮度的贡献率,计算亮度Y;最后对Y、B、R进行再量化,根据精度要求设置Y、B、R的量化级数,计算再量化后的值。本发明专利技术方法节约了表示色度信息的数据量,实现了数据压缩。

【技术实现步骤摘要】

本专利技术属于图像,具体涉及一种颜色编码方法


技术介绍

1、表示颜色有多种方法,例如rgb、yuv、yiq、ycbcr、lab、hsi等,都称为颜色空间。在数字照相机和摄像机中,采集图像和视频信息的时候通常都是采集rgb信息,然后进行存储或传输。也可以把rgb转换为其他的颜色空间,进行压缩编码。

2、在数字电视领域,通常采用ccir bt.601/709/2020等标准规定的ycbcr颜色空间。ycbcr把颜色分解成亮度和两个色差信号,可以根据人眼对亮度和色差信号的空间分辨能力不同,对色差信号进行下采样,例如4:2:2和4:2:0等,从而降低数字图像和数字视频的数据量,给后续的编码、存储、传输带来方便。在显示器上显示图像和视频的时候,再把ycbcr格式的颜色信息转换成rgb格式。

3、rgb到ycbcr的转换公式如下:

4、y = 0.2990r + 0.5870g + 0.1140b                       (1a)

5、cb = -0.1687r - 0.3313g + 0.5000b                      (1b)

6、cr = 0.5000r - 0.4187g - 0.0813b                       (1c)

7、将公式(1a)、(1b)、(1c)总称为公式(1)。

8、从公式(1)还原rgb的公式如下:

9、b = 1.772cb + y                                      (2a)

10、r = 1.402cr + y                                      (2b)

11、g = (y – 0.2990r – 0.1140b) / 0.5870                     (2c)

12、将公式(2a)、(2b)、(2c)总称为公式(2)。

13、在公式(1)和公式(2)中rgby的取值范围都是[0,1],cb和cr的取值范围都是[-0.5,0.5]。

14、公式(1b)和(1c)其实是来源于b–y和r–y,见如下公式:

15、cb = (b – y)/1.772                                   (3b)

16、cr = (r – y)/1.402                                   (3c)

17、公式(3b)和(3c)是对b-y和r-y进行了缩小。之所以要进行缩小,是因为要把cb和cr的取值区间的长度控制为1。实际上当y的值固定时,b-y和r-y的取值区间的长度都是1。只是当y的值变化时,b-y和r-y的取值区间也跟着变化,造成了b-y和r-y整体的取值区间的长度大于1。

18、因此完全可以根据y的值,动态确定b-y和r-y的取值范围,这样就不需要缩小了,因为缩小以后再进行量化,会损失一部分信息。既然y是已知的,就无需做减法,直接记录b和r更加简单、直接。

19、在ccir bt.601中,规定用8位二进制数表示ycbcr,其中y的量化级数为219级,cb和cr的量化级数为224级。由于公式(1)中蕴含着公式(3b)和(3c)的缩小操作,实际上色差信号的量化步长要更大一些,量化步长大意味着精度较低。实践证明,量化后的ycbcr能够很好的表示颜色,说明色度信息不需要很高的量化精度,也就是说色度信息可以用较低的精度(较大的量化步长)进行整数化。


技术实现思路

1、为了克服现有技术的不足,本专利技术提供了一种颜色编码方法,首先获取r、g、b三个颜色分量的整数值,将其量化为0到1区间的值;然后获取r、g、b三个颜色分量分别对亮度的贡献率,计算亮度y;最后对y、b、r进行再量化,根据精度要求设置y、b、r的量化级数,计算再量化后的值。本专利技术方法节约了表示色度信息的数据量,实现了数据压缩。

2、本专利技术解决其技术问题所采用的技术方案如下:

3、步骤1:获取r、g、b三个颜色分量的整数值,分别记为r1、g1、b1,量化级数为k;则令:

4、r= (r1 + 0.5) / k

5、g = (g1 + 0.5) / k

6、b = (b1 + 0.5) / k

7、得到r、g、b三个颜色分量的浮点值,取值范围都是[0,1];

8、步骤2:获取r、g、b三个颜色分量分别对亮度的贡献率α、β、γ,按照下式计算亮度y:

9、y = α* r+β* g+γ* b

10、其中α、β、γ的取值范围都是[0,1]且α+β+γ=1;

11、步骤3:对y、b、r进行再量化,根据精度要求设置y的量化级数为l,令b的量化级数m=l/(2(1-γ)),r的量化级数n=l/(2(1-α)),按照下式计算再量化后的值:

12、y2 = floor ( y * l)

13、b2 = floor ( b * m)

14、r2 = floor ( r * n)

15、其中,floor(.)表示取小于等于括号内圆点的最大整数。

16、进一步地,所述y2、b2、r2用于恢复r、g、b的公式如下:

17、y = (y 2+ 0.5) / l

18、b = (b2 + 0.5) / m

19、r = (r2 + 0.5) / n

20、g = (y –αr - γb) / β。

21、进一步地,所述y、b、r用于恢复r、g、b的公式如下:

22、g = (y –αr –γb) / β,r和b的值保持不变。

23、进一步地,所述α、β、γ的取值分别为0.299、0.587、0.114时,按照下式实现从ybr到ycbcr的转换:

24、cb = b – y/1.772

25、cr = r – y/1.402。

26、本专利技术的有益效果如下:

27、1、浮点数ybr相较于rgb,用亮度y代替了绿色分量g,符合人类视觉系统对颜色的处理特点;相较于ycbcr,保留了b和r,可以较好的保持颜色信息。

28、2、整数ybr相较于整数ycbcr,在同等精度的条件下,b和r的量化级数比cb和cr少,可以用更少的比特数来编码,可以节约存储空间或传输带宽。

29、3、从ybr到rgb和ycbcr的转换都非常简单。

本文档来自技高网...

【技术保护点】

1.一种颜色编码方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种颜色编码方法,其特征在于,所述Y2、B2、R2用于恢复R、G、B的公式如下:

3.根据权利要求1所述的一种颜色编码方法,其特征在于,所述Y、B、R用于恢复R、G、B的公式如下:

4.根据权利要求1所述的一种颜色编码方法,其特征在于,所述α、β、γ的取值分别为0.299、0.587、0.114时,按照下式实现从YBR到YCbCr的转换:

【技术特征摘要】

1.一种颜色编码方法,其特征在于,包括如下步骤:

2.根据权利要求1所述的一种颜色编码方法,其特征在于,所述y2、b2、r2用于恢复r、g、b的公式如下:

3.根据权利要求1所述的一种颜色编码方法,其特...

【专利技术属性】
技术研发人员:张一平史豪斌
申请(专利权)人:西北工业大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1