10bit YUV数据在内存中的存储格式

本文探讨了10bit YUV数据在内存中的存储格式,通常采用每个像素16bit,其中6bit为padding的方式。按照SMPTE 274M标准,8bit YUV转换为10bit是通过乘以2^(n-8)。通过转换示例和文件大小验证,揭示了10bit YUV的数据特点,并推荐了一个10bit YUV播放器。
摘要由CSDN通过智能技术生成

我们知道为了获得更好的动态范围,除了常见的8bit yuv外,还有10bit,16bit这样的yuv数据。8bit的yuv数据还好理解,每一个像素8bit,在内存中自然也就是一个字节一个字节的存储咯,16bit的也类似,每一个像素对应两个字节,在内存中存起来也非常方便,那么10bit呢?

在不做任何调查的情况下,我们可以凭直觉猜想有两种存储方式:
1.每个像素依然占用16bit两个字节,但是其中6个bit是padding,补0
2.每个像素实打实地占用10bit,各个像素交织在一起,没法整齐地分布在字节中

第一种方式便于运算处理,但是有存储冗余,第二种方式则没有冗余,但是计算起来就很麻烦了。事实上,10bit是采用第一种方式存储在内存中的,也就是说,为了高动态范围,牺牲了一点压缩效率,但也获得了运算性能的加成,大概就是多媒体技术里无处不在的trade off了。

下面来详细说说是如何存储的,并且以实例进行验证。

参考这里的文档:
10-bit and 1

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

zhanghui_cuc

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值