音视频开发基础知识(二)像素格式转换

绪论

在上篇博客中已经总结了常用的两种像素格式YUV与RGB。本篇博客将用代码来实现两种像素格式间,和两种像素格式的转换。

视频宽高与不同像素格式占用的存储空间

例如:一个视频的视频宽度为Width、高度为Height 那么

像素格式 所占存储空间
RGB16 Width * Height * 2
RGB24 Width * Height * 3
RGB32 Width * Height * 4
YUV420 Width * Height * 1.5
YUV422 Width * Height * 2
YUV444 Width * Height * 3
RGB格式转换
RGB565与RGB24(RGB888)的互转

由前一张博客知道RGB565的存储方式所以可以使用位运算的方法提取出R\G\B数据

void rgb565_to_rgb888(unsigned char *image,unsigned char *image888) 
{
    
          unsigned char R,G,B; 
          B=(*image) & 0x1F;//000BBBBB 
          G=( *(image+1) << 3 ) & 0x38 + ( *image >> 5 ) & 0x07 ;//得到00GGGGGG00 
          R=( *(image+1) >> 3 ) & 0x1F; //得到000RRRRR 
         *(image888+0)=B * 255 / 63; // 把5bits映射到8bits去,有多种算法。 
         *(image888+1)=G * 255 / 127; 
         *(image888+2)=R * 255 / 63; 
         printf(
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值