一、什么是YUV
YUV是被欧洲电视系统所采用的一种颜色编码方法(属于PAL),是PAL和SECAM模拟彩色电视制式采用的颜色空间。
YUV主要是用于优化彩色视频信号的传输,使其与早期的黑白电视机相容。采用YUV色彩空间的重要性是它的亮度信号Y和色度信号U、V是分离的。其中“Y”表示明亮度(Luminance或Luma),也就是灰阶值;而“U”和“V” 表示的则是色度(Chrominance或Chroma),作用是描述影像色彩及饱和度,用于指定像素的颜色。如果只有Y信号分量而没有U、V分量,那么这样表示的图像就是黑白灰度图像。
二、YUV采样格式类型
YUV采样格式主要有YUV420,YUV422,YUV411,YUV444四种。其中,YUV411比较常见,其含义为:Y、U、V三个分量采样比为4:1:1,每采样4个Y,分别采样一个U和V。如果每个采样值用8位来保存,那四个像素点只需要保存4+1+1个字节的数据。理论上保存的数据[Y0U0V0][Y1U1V1]…[Y7U7V7]实际映射为[Y0U0V0][Y1U0V0][Y2U0V0][Y3U0V0][Y4U1V1][Y5U1V1][Y6U1V1][Y7U1V1]。注意,这里讨论的不是实际硬件的存储结构,仅站在理论的角度上分析。
YUV420并不意味着没有V分量,而是指是对每行扫描线来说,只有一种色度分量以2:1的抽样率存储,相邻的扫描行存储不同的色度分量。如果一行是4:2:0,那下一行就是4:0:2,再下一行是4:0:2,依此类推。
对于YUV422,每个色差信道的抽样率是亮度信道的一半,所以水平方向的色度抽样率只是4:4:4的一半。
三、YUV420详解
YUV420格式可分为两类:打包(packed)格式和平面(planar)格式。前者将YUV存放在一起,一般将几个像素组成一个宏像素(macro-pixel)。而planar格式将Y、U、V三种像素值分开存储。
YUV420 planar又可分为semi-planar和planar两种。semi-planar与planar的区别在于存储UV的方式有所不同。semi-planar将UV分量绑定在一起,按[U0V0][U1V1]…的格式存储。而planar将UV两种分量分开存储,按[U0U1U2…][V0V1V2…]的方式存储。
例如,对于一个8*1像素大小的图片来说,两种格式的存储方式如下:


假如Y0对应的物理存储地址为0x00,则Y1~Y7地址分别为0x01~0x07。假如U0物理地址为0x20,则对于planar格式,V0U1V1物理地址分别为0x21,0x22,0x23。对于semi-planar格式,U1V0V1物理地址分别为0x21,0x22,0x23。
在实际应用系统(例如arm)中,具体如何获取各个像素分量的值,还得根据提供的技术手册来进行操作。例如,在海思HI3520D中,系统提供了对应的调用库函数来获取存储YUV素值的物理地址,然后要通过函数将地址映射到虚拟地址空间,然后才能对数据进行读取操作。

参考文献:
1,http://baike.baidu.com/link?url=a_ixvpgaaVPqrmeCaWZE4KA3hSDQSYM57DI1lNHI2a68UIFneY5pjPln1dJIhuwbyvwhoCEyj2tdVKpmEPor5a
2,http://blog.csdn.net/sunnylgz/article/details/7580628
3,http://blog.csdn.net/jefry_xdz/article/details/7931018

海思开发板中的YUV420格式解析相关推荐

  1. vmware虚拟机中ubuntu系统里设置USB串口连接海思开发板

    vmware虚拟机中ubuntu系统里设置USB串口连接海思开发板 作为海思平台的一个新手,在学习海思开发板时,会因为一个很小的问题折腾半天,但是当解决一个小问题时还是很兴奋的,记录下自己学习过程. ...

  2. 【华为出品】物联网全栈开发实战营第2期来啦!送海思开发板

    物联网一直在改变我们生活的方方面面.可穿戴设备有助于监控我们的偏好.习惯和健康状况.智能家居设备可提高家居的舒适度.安全性和便利性.城市利用连接的数字设备收集的海量数据(数十亿个)来改善城市规划.制造 ...

  3. 海思开发板FFmpeg+Nginx,推流RTMP播放(优秀教程收集+实操整理)

    海思开发板FFmpeg+Nginx推流RTSP播放(优秀教程收集+实操整理) 安装FFmpeg及移植 FFmpeg编译问题收录: static declaration of 'cbrt' follow ...

  4. 海思开发板上添加ftp功能

    海思开发板上添加ftp功能 前言: 本博客是基于海思3520Dv100开发,编译工具链为:arm-hisiv100nptl-linux-gcc 1.下载stupid-ftpd-1.5beta.tar. ...

  5. mysql移植海思_live555 交叉编译移植到海思开发板

    1.首先到它的主页下载一个源码包: http://www.live555.com/liveMedia/public/ 我下载的是latest的,具体什么版本还真不清楚 2.放到linux目录下解压: ...

  6. 配置海思开发板的网络(永久修改)

    刚拿到的海思开发板(我的是hi3516dv300)里面默认的网络配置通常是不可用的(比如默认的网段跟我们自己的不一样.没法ping通外网等),这时候需要我们修改相关的配置文件. 1.可以先用ifcon ...

  7. 海思开发板上挂载额外的存储空间

    注:海思开发板烧写好系统以后,只能使用90M大小的空间,这是在烧写文件系统时创建的.其实还有很大的存储空间没有用到,需要进行挂载. 一.使用如下命令可以查看开发板的存储空间使用情况 df -h 二.查 ...

  8. 如何设置海思开发板的静态IP

    前言 每个类型的开发板设置静态IP(即每次系统boot起来后,ip自动设成想要的IP,不需要每次手动敲入命令ifconf eth0 xxx)的方式不太一样.本文主要是讲海思开发板的设置. 方法 板子的 ...

  9. 海思开发板海图科技测评,海图海思开发板怎么样

    关于海思开发板海图科技的测评,相关关键字:hi3516,hi3519,hi3531,hi3535,hi3536,hi3559,hi3403 最近网络上关于海图的海思开发板宣传的沸沸扬扬,很多人都想要一 ...

最新文章

  1. java 年计算_JAVA计算年/周的问题
  2. 文件读写以及数据处理
  3. SQLITE_ERROR - table sap_capire_bookshop_books has no column named currency
  4. html5和c3属性,H5与C3不得不说的知识点
  5. VC++(关于CTreecontrol控件的用法 )
  6. 从我想,到我做 | 掘金年度征文
  7. 硅谷还是程序员的“圣地”吗?
  8. Centos7 防火墙 ( firewalld ) 和 Selinux 一些简单操作命令
  9. matlab在有限差分法中的应用,MATLAB在有限差分法中的应用
  10. 计算机网络中netbuie,材料内部空隙体积占其总体积的百分率叫做()。A、孔隙率B、填充率C、空隙率D、密实度...
  11. 自适应短视频源码php下载,php在线短视频解析下载API源码
  12. 【人因工程】认知行为可靠性评价浅谈
  13. 查看linux发行版
  14. (三)腾讯云开发工程师TCA题库(题目含详细解析)
  15. 2022年全球与中国太阳传感器市场现状及未来发展趋势
  16. 什么是idc,什么又是idc机房?
  17. 简练软考知识点整理-规划风险管理
  18. Woo获得700万美元资金 并推出AI猎头
  19. homeassistant安装
  20. 【数据结构】连通图、连通分量与强连通图、强连通分量—区别在于强,强强在哪里?

热门文章

  1. 《Web安全攻防 渗透测试实战指南》学习笔记(2) - Sqlmap
  2. 如何邀请媒体记者,保证新闻发布会媒体邀约?
  3. xv6 init process
  4. 【备考干货】一次拿下CISM认证的经验分享
  5. 软件开发中的一方、二方、三方
  6. CSS布局—— float布局和flex布局
  7. python进入桌面路径是什么意思,python获取当前系统的桌面的路径
  8. 【miscellaneous】华为智能视频监控系统设计解决方案
  9. 选择今后的工作学习方向
  10. Unicode 编码转换器 1.0