10 12 14bit图像存储格式

目前大多数图像和视频是采用每个像素8bit的方式存储,恰好是一个字节的长度。随着图像和视频向超高清方向发展,8bit已经不能满足对画质和色彩的需求。已经出现了每个像素用10bit、12bit、14bit的应用,由于它们无法用1个字节表示,如果使用2个字节又会浪费空间,所有需要将每个像素拆分表示。

一般将每像素10bit的RGB和YUV图像分别表示为PRGB10和PYUV10,每像素12bit的RGB和YUV图像分别表示为PRGB12和PYUV12,每像素10bit的RGB和YUV图像分别表示为PRGB14和PYUV14。下面分别介绍其在内存中的存储方式。

PRGB10和PYUV10

对于10bit的图像,要将连续的4个像素(按从左到右从上到下的顺序)用5个字节表示。图像的像素数需要是4的整数倍。

其在内存中的存储方式如图:

第1个像素:低8位为第1个字节,高2位在第2个字节的低2位。

第2个像素:低6位为第2个字节高6位,高4位在第3个字节的低4位。

第3个像素:低4位为第3个字节高4位,高6位在第4个字节的低6位。

第4个像素:低2位为第4个字节高2位,高8位在第5个字节。

从内存中读出像素的方式如上式所示。


PRGB12和PYUV12

对于12bit的图像,要将连续的2个像素(按从左到右从上到下的顺序)用3个字节表示。图像的像素数需要是2的整数倍。

其在内存中的存储方式如图:

第1个像素:低8位为第1个字节,高4位在第2个字节的低4位。

第2个像素:低4位为第2个字节高4位,高8位在第3个字节。

从内存中读出像素的方式如下式:


PRGB14和PYUV14

对于14bit的图像,要将连续的4个像素(按从左到右从上到下的顺序)用7个字节表示。图像的像素数需要是4的整数倍。

其在内存中的存储方式如图:

第1个像素:低8位为第1个字节,高6位在第2个字节的低6位。

第2个像素:低2位为第2个字节高2位,第3-10位在第3字节,高4位在第4个字节的低4位。

第3个像素:低4位为第4个字节高4位,第3-10位在第5字节,高2位在第6个字节的低2位。

第4个像素:低6位为第6个字节高6位,高8位在第7个字节。

从内存中读出像素的方式如下式:

以上便是10bit、12bit、14bit图像在内存中的存储格式和读取方法。

关于14bit的数据读取似乎有些问题。应该如下读取:

for (i = 0; i < width*height / 4; i++)
	{
		Raw_16bit_img[4 * i] = (Raw_14bit[7 * i] | ((Raw_14bit[7 * i + 1] & 0x3f) << 8));
		Raw_16bit_img[4 * i + 1] = (((Raw_14bit[7 * i + 1] & 0xc0) >> 6) | ((Raw_14bit[7 * i + 2] & 0xff) << 2) | ((Raw_14bit[7 * i + 3] & 0x0f) << 10));
		Raw_16bit_img[4 * i + 2] = (((Raw_14bit[7 * i + 3] & 0xf0) >> 4) | ((Raw_14bit[7 * i + 4] & 0xff) << 4) | ((Raw_14bit[7 * i + 5] & 0x03) << 12));
		Raw_16bit_img[4 * i + 3] = (((Raw_14bit[7 * i + 5] & 0xfc) >> 2) | (Raw_14bit[7 * i + 6] << 6));
	}

感兴趣的可以关注微信公众号Video Coding
————————————————
版权声明:本文为CSDN博主「Dillon2015」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/Dillon2015/article/details/103285757/

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值