YUV420及YUV422格式的采集存储方式

简介:

4:4:4 格式,每像素 32 位  (单位像素占的字节数: (4+4+4)/4 = 3)

色度信号的分辨率和亮度信号的分辨率是相同的

FOURCC 码(Directshow:FOURCC 码是一个 32 位、不带正负号的整数,它是通过串联四个 ASCII 字符创建而成的,MAKEFOURCC('Y','U','Y','2');)为 AYUV。4:4:4 格式是一个打包格式,其中每个像素都被编码为四个连续字节,AYUV 内存布局组织顺序如下所示。(标记了 A 的字节包含 alpha 的值)。

 

Increasing Memory Addresses

------------------------------------------------------------------------------------->

| U0 | V0 | Y0 | A0 |    | U1 | V1 | Y1 | A1 |   | U2 | V2 | Y2 | A2 |  ......

4:2:2 格式,每像素 16 位(单位像素占的字节数: (4+2+2)/4 = 2)

色度信号的扫描线数量和亮度信号一样多,但是每条扫描线上的色度采样点数却只有亮度信号的一半。

(1):YUY2

在 YUY2 格式中,数据可被视为一个不带正负号的 char 值组成的数组,其中第一个字节包含第一个 Y 样例,第二个字节包含第一个 U (Cb) 样例,第三个字节包含第二个 Y 样例,第四个字节包含第一个 V (Cr) 样例,YUY2 内存布局如下图 所示。如果该图像被看作由两个 little-endian WORD 值组成的数组,则第一个 WORD 在最低有效位 (LSB) 中包含 Y0,在最高有效位 (MSB) 中包含 U。第二个 WORD 在 LSB 中包含 Y1,在 MSB 中包含 V。

Increasing Memory Addresses

------------------------------------------------------------------------------------->

| Y0 | V0 | Y1 | V0 |    | Y2 | U1 | Y3 | V1 |   | Y4 | U2 | Y5 | V2 |  ......

 

(2):UYVY

此格式与 YUY2 相同,只是字节顺序是与之相反的 — 就是说,色度字节和灯光字节是翻转的。如果该图像被看作由两个 little-endian WORD 值组成的数组,则第一个 WORD 在 LSB 中包含 U,在 MSB 中包含 Y0,第二个 WORD 在 LSB 中包含 V,在 MSB 中包含 Y1。UYVY 内存布局如下图 所示。

 

 

Increasing Memory Addresses

------------------------------------------------------------------------------------->

| U0 | Y0 | V0 | Y1 |    | U1 | Y2 | V1 | Y3 |   | U2 | Y4 | V2 | Y5 |  ......

 

4:2:0 格式,每像素 16 位(单位像素占的字节数: (4+1+1)/4 = 1.5)

无论是横向还是纵向,色度信号的分辨率都只有亮度信号的一半

所有 Y 样例都会作为不带正负号的 char 值组成的数组首先显示在内存中。后面跟着所有 V (Cr) 样例,然后是所有 U (Cb) 样例。它也有两种存储格式。

(1)

Increasing Memory Addresses

------------------------------------------------------------------------------------->

 

| Y0 | Y1 | Y2 | Y3| ...... 

| U0 | U1 | ...... 

| V0 | V1 | ......

(2)

Increasing Memory Addresses

------------------------------------------------------------------------------------->

| Y0 | Y1 | Y2 | Y3| ...... 

| V0 | V1 | ...... 

| U0 | U1 | ......

目录
相关文章
|
安全 Linux
Linux中ldd命令的依赖复制技巧
`ldd`命令的依赖复制技巧在特定的场合下非常有用,但它也需要细心的处理和充分的测试,以确保在新环境中的稳定运行。此外,这种做法虽然方便,但在长期维护和安全更新方面可能会带来额外的负担。
334 0
|
Java
Java中绘制K线图
要在Java中绘制K线图,可以使用JavaFX库。JavaFX是一个用于构建富客户端应用程序的平台,它提供了丰富的图形和动画功能。
350 0
|
12月前
|
网络协议 Unix Linux
精选2款C#/.NET开源且功能强大的网络通信框架
精选2款C#/.NET开源且功能强大的网络通信框架
416 0
|
机器学习/深度学习 API 算法框架/工具
残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)
残差网络(ResNet) -深度学习(Residual Networks (ResNet) – Deep Learning)
561 0
|
弹性计算 固态存储 大数据
阿里云服务器多少钱一年?2024年7月最新租用价格表曝光!
阿里云2024年服务器租用费用更新,轻量应用服务器2核2G3M带宽年费82元,折合6.8元/月;2核4G5M带宽ECS优惠价199元/年。新老用户同享99元/年的2核2G经济型e实例,4核16G游戏服务器70元/月,8核32G服务器160元/月。GPU服务器gn6v、gn6i等最高配置月费4685.20元起。续费折扣根据时长,最长享3折优惠。按小时计费,如通用型u1-c1m4.large 0.45元/小时。带宽和云盘亦有多种计费选项。详情参见阿里云官网。
915 4
|
Java 编译器 C语言
【C/C++】 switch-case 详解/全面总结
关于 C语言/C++ 中,switch-case 的尽量详细和全面的解释与总结
3738 0
|
Linux C语言
Linux系统下获取系统的CPU占用率(C语言代码)
Linux系统下获取系统的CPU占用率(C语言代码)
2012 0
Linux系统下获取系统的CPU占用率(C语言代码)
|
网络协议 Linux iOS开发
【VsCode】1.70.0 新版本好用功能分享 :代码函数名称浏览时固定(功能原称 sticky Scroll)
在Code 1.70.0 以后,新增功能:sticky Scroll 。 效果描述: 在浏览长函数的时候,可以将函数的名称定义部分固定在顶栏,类似冻结窗口,方便查看函数功能,不必再跳转。
902 0