引论
Yuv在流媒体领域是一个既熟悉又陌生的概念,在转码过程中需要将视频解码成yuv再重新编码以便更改一些参数, 也需要在yuv上做一些处理比如添加水印, 提升亮度,等等。之前也是使用没用重视这个格式, 但现在需要着重处理图片信息就需要深入了解yuv格式,这时候发现对yuv不了解, 这些是怎么存储的,怎么做测试, 怎么对应坐标。Yuv倒底是一个什么格式呢。以此为契机, 着重看了不少文章, 形成了自己的理解, 有不对的地方望指正。
概述
Yuv是一种视频格式, 指亮度和色度分开表示的像素格式, 但这是一个笼统的提法, 它包含了很多不同的格式。本文所有的讲述都是基于8位yuv格式
定义
Yuv分为三个分量, Y 表示亮度 也就是灰度值;uv表示的是色度,描述影像的色彩及饱和度。
显示
Yuv这种格式是一种颜色编码方法, 主要用于电视系统以及模拟视频领域, 没有uv分量一样可以显示完整的图像,只不过是黑白的, 这种是有时播放yuv视频时会出现颜色的闪烁。但是yuv格式不能直接用屏幕进行渲染。手机播放器解码出yuv格式时是通过opengl将yuv格式转换成RGB格式再进行渲染。
Yuv三个主要方面
存储分类
Yuv存储方式有两大分类
1) Packed
每个像素点的y u v是连续交叉存储的, 即将yuv分量连续存储打包成一个宏像素存放在一个数组中
2) Planar
每个像素的y u v 三个分量用三个数组分别存放,也可以在一个数组中, 先连续存储所有的像素的y 紧接着存储所有像素点的u, 再是所有像素点的v 。yuv分别连续存储就像分别放在三个平面上
FOURCC码
要理解yuv格式, 必须要理解FOURCC码, 这是一个什么东东呢
FOURCC是 four character code的缩写, 用于媒体文件中的视频编解码器、压缩格式、颜色或像素格式的标识符,character大小为1byte或者8bit。所以一个FOURCC占用32bits或者4byte, bit和byte区别就不说了。代码中FOURCC是一个32位无符号整数, 由四个ASCII字符连接而成。详细在下面分类中详解。
采样
Yuv的采样有这么几种 444 、422、420 、411等, 平常最常的就是420。
444、420又是什么东西呢, 这就涉及A:B:C表示法
A:B:C表示法
因为yuv这种格式, 拿到所有y值就可以显示整幅画面,但仅是黑白的即灰度图。色度饱合度的采样率比y低, 同时又不会明显降低视觉质量, 这也就是yuv比rgb的优势所在
4:4:4
表示色度没有下采样, 每一个Y对应一组UV分量 即每一个像素都有 y u v 分量, 没有下采样, 跟rgb一样,用的较少。

如图, 圆圈为uv分量,叉为y分量, 它们的对应关系为一对一, 这图好多博客里有, 源自微软对yuv的官方说明, 我看这图也蒙了好久, 这是怎么存的呢, 想了好久这图跟存储没有任何关系,就是代表对应关系,如何存储就是看FOURCC和packed、planar。
4:2:2
表示2:1的水平下采样,没有竖直下采样。每条扫描线包含4个y对应2个u或者v。即每两个Y共用一组UV分量


4:2:0
表示2:1的水平下采样, 2:1的竖直下采样,每四个Y共用一组UV分量, 这4个y不是一条线上的4个是一个正方形的4个,
它有两种对应关系, 一种是mpeg1 一种是mpeg2

上图为mpeg1规定的对应方式


上图为mpeg2规定的对应方式

是不是觉得这两个图是什么鬼啊, 有啥子区别。等等, 别急, 这先按下, 下面对应FOURCC
类型就能懂了, 我也是想了好久。请看下一篇

Yuv重要概念
原点
(0,0)一直是在画布的左上角
跨距
画布的间距, 就是画布的宽度是多少bytes。 以原点算, 跨距是正数

对齐
画布的对齐跟根不同的显示硬件定, 但画布必须是用DWORD对齐

格式资源:
FOURCC格式说明
http://www.fourcc.org/yuv.php
微软格式说明
https://docs.microsoft.com/en-us/previous-versions/aa904813(v=vs.80)?redirectedfrom=MSDN

https://docs.microsoft.com/en-us/windows/desktop/medfound/recommended-8-bit-yuv-formats-for-video-rendering

音视频 yuv视频格式详解(一)相关推荐

  1. 音视频开发---MP4格式详解

    mp4文件格式之fragment mp4 简称为FMP4 与常见mp4有区别 ffmpeg -formats DE mp3 MP3 (MPEG audio layer 3) E mp4 MP4 (MP ...

  2. 各种音视频编解码学习详解之 编解码学习笔记(三):Mpeg系列——Mpeg 1和Mpeg 2

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解很多小的篇幅,方便阅读.大神博客传送门: ...

  3. Ffmpeg快速命令使用 Ffmpeg选项详解 Ffmepg格式详解 常见视频文件格式详解

    http://www.ffmpeg.com.cn/index.php/%E9%A6%96%E9%A1%B5 Ffmpeg快速命令使用 From Ffmpeg工程组 Jump to: navigatio ...

  4. 音视频编解码学习详解

    音视频编解码学习详解 目录(?)[+] 编解码学习笔记二codec类型 编解码学习笔记三Mpeg系列Mpeg 1和Mpeg 2 编解码学习笔记四Mpeg系列Mpeg 4 编解码学习笔记五Mpeg系列A ...

  5. 各种音视频编解码学习详解之 编解码学习笔记(四):Mpeg系列——Mpeg 4

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  6. 各种音视频编解码学习详解之 编解码学习笔记(十三):容器

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  7. 各种音视频编解码学习详解之 编解码学习笔记(八):Real系列

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  8. 音视频入门-11-PNG文件格式详解

    音视频入门文章目录 PNG 文件格式解析 PNG 图像格式文件由一个 8 字节的 PNG 文件署名域和 3 个以上的后续数据块(IHDR.IDAT.IEND)组成. PNG 文件包括 8 字节文件署名 ...

  9. 各种音视频编解码学习详解之 编解码学习笔记(六):H.26x系列

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

  10. 各种音视频编解码学习详解之 编解码学习笔记(十):Ogg系列

    最近在研究音视频编解码这一块儿,看到@bitbit大神写的[各种音视频编解码学习详解]这篇文章,非常感谢,佩服的五体投地.奈何大神这边文章太长,在这里我把它分解成很多小的篇幅,方便阅读.大神博客传送门 ...

最新文章

  1. 完美解决:You are using pip version 9.0.1, however version 18.0 is available.
  2. 解决Tomcat v8.0 Server at localhost failed to start.
  3. Spring集成–配置Web服务客户端超时
  4. if laytpl 非_Layui-神奇的layui.laytpl
  5. c语言文件归并问题_通知:土地有变!土地归并:每亩补9万?明年起:合村并镇!能否启动?1个好消息!...
  6. ParNew垃圾回收器总结
  7. Windows10系统的MSDN下载和通过U盘进行安装的步骤(亲测有效)
  8. Cesium加载GeoJson数据
  9. 手把手教你安装黑苹果之openCore-0.6.3 EFI制作全过程,非常详细
  10. Windows环境下安装Ruby教程
  11. PMP备考之路 - 汪博士第十二章(项目采购管理)
  12. pcie数据反_理解PCIE链路反转和极性反转
  13. Mongodb修改器
  14. 中国移动5G智慧港口独立专网
  15. python程序代码
  16. 不放心把手机邮寄给苹果直营店怎么办?换电池还有其他绝招!
  17. 大佬是如何从头写一篇顶级论文的?
  18. VirtualBox - 自动调整屏幕大小,设置虚机自适应显示器
  19. 定时使用Tushare下载日线交易数据到Sqlite3数据库
  20. 『主动些,你与“开源”才有故事可言』—— 新晋 PMC 成员端正强专访

热门文章

  1. EPS文件格式及其与PDF、SVG格式转换分析C#
  2. mysql workbench 连接_使用MySQLWorkBench连接数据库
  3. 长城数艺:推进文化艺术品数字化发展,引领书画数字藏品
  4. 贵金属白银行情走势图缘何强势?
  5. 【PTA】多边形周长计算(继承)
  6. 前苹果员工诈骗超 1.2 亿元!任职 10 年,行骗 7 年,最高将获 25 年监禁
  7. DNS直接解析域名与泛域名解析
  8. Python基础知识- 定义函数
  9. js,e.pageX、pageY模态框拖动
  10. transformer with mot