像素格式概念

像素格式指的是图像的具体像素用什么所表示。指的是原始数据或者解码之后的数据。

常见像素格式RGB

RGB色彩模式是工业界的一种颜色标准,是通过对红、绿、蓝三个颜色通道的变化以及它们相互之间的叠加来得到各式各样的颜色的,RGB即是代表红、绿、蓝三个通道的颜色,这个标准几乎包括了人类视力所能感知的所有颜色,是目前运用最广的颜色系统之一。而我们显示器能够直接显示的格式就是RGB格式

RGB常见的几种格式区别
RGB16格式

RGB16主要数据格式有RGB556、RGB555
RGB556 每个像素用16位表示,其中R\G\B分别使用5、6、5
RGB555 每个像素用16位表示,其中R\G\B分别使用5、5、5位表示其中多余的一位不使用

//获取高字节的5个bit
R = color & 0xF800;
//获取中间6个bit
G = color & 0x07E0;
//获取低字节5个bit
B = color & 0x001F;

//获取高字节的5个bit
R = color & 0x7C00;
//获取中间5个bit
G = color & 0x03E0;
//获取低字节5个bit
B = color & 0x001F;
RGB24像素格式

RGB24图像,每个颜色用8BIT表示,其中RGB24在内存中排列为BGR\BGR\BGR
其中RGB24是最常用的RGB像素格式

RGB32像素格式

RGB32图像每个像素用32BIT表示,占4个字节,R,G,B分量分别用8个bit表示,存储顺序为B,G,R,最后8个字节保留。注意:在内存中RGB各分量的排列顺序为:BGRA BGRA BGRA …

ARGB32(其中多余的8Bit来表示透明度)


取得各个像素点

R = color & 0x0000FF00;
G = color & 0x00FF0000;
B = color & 0xFF000000;
A = color & 0x000000FF;

常见像素格式YUV

YUV格式简介:

YUV,分为三个分量,“Y”表示明亮度(Luminance或Luma),也就是灰度值而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。

与我们熟知的RGB类似,YUV也是一种颜色编码方法,主要用于电视系统以及模拟视频领域,它将亮度信息(Y)与色彩信息(UV)分离,没有UV信息一样可以显示完整的图像,只不过是黑白的,这样的设计很好地解决了彩色电视机与黑白电视的兼容问题。并且,YUV不像RGB那样要求三个独立的视频信号同时传输,所以用YUV方式传送占用极少的频宽。

YUV存储方式

YUV存储方式有两大类:planar和packed。
对于planar的YUV格式,先连续存储所有像素点的Y,紧接着存储所有像素点的U,随后是所有像素点的V。(如YUV420P)
对于packed的YUV格式,每个像素点的Y,U,V是连续交*存储的。

列如:YUV420与YUV420P,P表示平面存储方法,即先把所以Y存储,再存储U\V。

YUV几种常见采样格式

YUV444

类似与RGB一样的概念,一个像素由一个Y(亮度信息)和一个UV(色度信息)(一般UV成套出现)来表示. 一个像素大小如果为8BIT则为3个字节

YUV422

第一个Y对应一个UV,而第二个Y则与前一个Y的UV对应。即每两个亮度信息共用一个色度信息

YUV420

每4个(不是连续的4个)上下2 * 2 的Y共用一个UV,就每4个亮度信息对应一个色度。且使用X264编码成H264必须为YUV420格式

音视频开发基础知识(一)像素格式相关推荐

  1. 音视频开发基础知识到进阶剖析

    全网最强音视频开发教学--音视频开发基础知识到进阶剖析 1.要掌握多深的原理才能开始做项目 2.音视频基础有哪些必须掌握的 3.进阶需要学习什么项目 视频讲解如下,点击观看: 全网最强音视频开发--音 ...

  2. 音视频开发基础知识(转载)

    音视频入门前,需要了解下一些基础概念,不必死记硬背,可之后再补再翻阅. 一. 颜色模式 RGB RGB颜色模型的主要目的是在电子系统中检测,表示和显示图像,比如电视和计算机,但是在传统摄影中也有应用. ...

  3. 音视频开发基础知识(2)——最通俗易懂的视频编解码理论知识

    更多音视频知识请关注公众号:进击的代码家 音视频学习项目:LearnVideo AndroidMediaCodecDemo 视频基础概念 像素 **像素是图像的基本单元,一个个像素就组成了图像.你可以 ...

  4. Android音视频开发基础(六):学习MediaCodec API,完成视频H.264的解码

    前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了<Android 音视频从入门到提高 - 任务列表>.本文是Android音视 ...

  5. Android音视频开发基础(七):视频采集-系统API基础

    前言 在Android音视频开发中,网上知识点过于零碎,自学起来难度非常大,不过音视频大牛Jhuster提出了<Android 音视频从入门到提高 - 任务列表>.本文是Android音视 ...

  6. 音视频处理基础知识扫盲:数字视频YUV像素表示法以及视频帧和编解码概念介绍

    专栏:Python基础教程目录 专栏:使用PyQt开发图形界面Python应用 专栏:PyQt+moviepy音视频剪辑实战 专栏:PyQt入门学习 老猿Python博文目录 老猿学5G博文目录 一. ...

  7. 分享即时通讯开发之实时音视频技术基础知识

    随着移动网络速度越来越快.质量越来越来,实时音视频技术已经在各种应用场景下全面开花,语音通话.视频通话.视频会议.远程白板.远程监控等等.实时音视频技术的开发也越来越受到重视,但是由于音视频开发涉及知 ...

  8. 5G时代来临,前端开发工程师必须了解的音视频入门基础知识

    1. 音视频基础 本文将给大家进行音视频基础的常规知识点的梳理.当然,短短的一篇文章并不能让大家立即变成音视频领域的专家,但这些知识点已经基本涵盖了音视频的入门知识.我们将按照下面的内容给大家 音视频 ...

  9. C++音视频开发核心知识,小白入门必看基础知识

    经常收到一些网友的来信或者留言,反馈如下这样的困惑: "我是一名应届毕业生,该如何快速地成长起来" "我只懂 C/C++,是学 Android 开发有前途,还是 iOS ...

最新文章

  1. Not injecting HSTS header since it did not match the requestMatcher HSTS设置问题解决
  2. 分治递归逆序数_[模板] 归并排序 逆序数 分治
  3. StringBuilder的构造方法和append方法
  4. 黄光裕正式获释,公开发表讲话!
  5. java 动态网页_JavaWeb01-动态网页
  6. Excel 2007 Open XML文件结构~~~1
  7. commit git 删除文件夹_Git-git删除文件夹/文件(删除/不删除本地文件/文件夹)
  8. Android merge 标签学习笔记
  9. 七月算法机器学习 7 工作流程与模型调优 Kaggle案例泰坦尼克号问题
  10. php探针作用,X 探针(刘海探针)一款开源又好用的PHP探针
  11. python小学教材全解_小学教材全解五年级数学上人教版
  12. 多线程和高并发的区别
  13. 人工智能——机器学习是什么
  14. 昭阳k20-80拆机过程
  15. 谷歌展示如何通过冗余实现量子纠错; QuantWare推出商用超导量子处理器 | 全球量子科技与工业快讯第二十九期
  16. Fortify代码扫描问题及修复
  17. wisp中远端服务器未响应,ESP8266当中继
  18. 数据结构中的“结点”和“节点”,到该底用哪个?
  19. 老男孩Python全栈9期视频完整版
  20. 数据挖掘实战(9.5)--使用神经网络识别MINIST数据集

热门文章

  1. 全网最全的Scikit-Learn学习手册!
  2. 汽车模糊推理系统实验
  3. 校招面试 - 计算机网络 - (非)对称加密 - 安全传输的基础
  4. c语言初始化字符串 函数 manment,nesC语言参考手册.doc
  5. nesC 语言参考手册
  6. 电商平台运用会员体系运营的好处以及注意事项
  7. oracle 查询表物理大小,oracle查看表实际物理空间使用大小
  8. 初识Python——“Python”
  9. Android根据电话号码取得联系人姓名及头像
  10. 微信小程序获取微信公众号文章2